summaryrefslogtreecommitdiffstats
path: root/lib/et/compile_et.sh.in
blob: 3cba7c7d5adf3719efd5779ac2ad5280c0b8a344 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/sh
#
#

AWK=@AWK@
DIR=@datadir@/et

if test "$1" = "--build-tree" ; then
    shift;
    DIR="$ET_DIR"
fi

if test "x$1" = x ; then
    echo "Usage: compile_et file"
    exit 1
fi

for as_var in \
  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
  LC_TELEPHONE LC_TIME
do
  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
    eval $as_var=C; export $as_var
  else
    $as_unset $as_var
  fi
done

if test -n "$_ET_DIR_OVERRIDE" ; then
    DIR="$_ET_DIR_OVERRIDE";
fi

if test ! -f "$DIR/et_h.awk" || test ! -f "$DIR/et_c.awk" ; then
    echo "compile_et: Couldn't find compile_et's template files."
    exit 1
fi

ROOT=`echo $1 | sed -e s/.et$//`
BASE=`basename $ROOT`

if test ! -f "$ROOT.et" ; then
    echo "compile_et: $ROOT.et: File not found"
    exit 1;
fi

$AWK -f "${DIR}/et_h.awk" "outfile=${BASE}.h.$$" "outfn=${BASE}.h" "$ROOT.et"
if test -f ${BASE}.h && cmp -s ${BASE}.h.$$ ${BASE}.h ; then
    rm -f ${BASE}.h.$$
else
    mv -f ${BASE}.h.$$ ${BASE}.h
    chmod a-w ${BASE}.h
fi
$AWK -f "${DIR}/et_c.awk" "outfile=${BASE}.c.$$" "outfn=${BASE}.c" "$ROOT.et"
if test -f ${BASE}.c && cmp -s ${BASE}.c.$$ ${BASE}.c ; then
    rm -f ${BASE}.c.$$
else
    mv -f ${BASE}.c.$$ ${BASE}.c
    chmod a-w ${BASE}.c
fi