#!/bin/sh
#
#

datarootdir=@datarootdir@
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
