Theodore Ts'o | 3839e65 | 1997-04-26 13:21:57 +0000 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # |
| 3 | # |
Theodore Ts'o | b6b65c3 | 2006-10-22 00:14:26 -0400 | [diff] [blame] | 4 | |
| 5 | datarootdir=@datarootdir@ |
Theodore Ts'o | 3839e65 | 1997-04-26 13:21:57 +0000 | [diff] [blame] | 6 | AWK=@AWK@ |
Theodore Ts'o | e5fa0e3 | 1998-04-01 02:18:45 +0000 | [diff] [blame] | 7 | DIR="${DIR-@datadir@/et}" |
Theodore Ts'o | 7eb0669 | 2001-09-16 23:29:17 -0400 | [diff] [blame] | 8 | ET_DIR="@ET_DIR@" |
Theodore Ts'o | e5fa0e3 | 1998-04-01 02:18:45 +0000 | [diff] [blame] | 9 | |
Theodore Ts'o | 91835c1 | 2003-03-30 22:26:13 -0500 | [diff] [blame] | 10 | if test "$1" = "--build-tree" ; then |
| 11 | shift; |
| 12 | DIR="$ET_DIR" |
| 13 | fi |
| 14 | |
Theodore Ts'o | e5fa0e3 | 1998-04-01 02:18:45 +0000 | [diff] [blame] | 15 | if test "x$1" = x ; then |
| 16 | echo "Usage: compile_et file" |
| 17 | exit 1 |
| 18 | fi |
| 19 | |
Theodore Ts'o | 05155f9 | 2006-11-12 10:43:31 -0500 | [diff] [blame] | 20 | for as_var in \ |
| 21 | LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ |
| 22 | LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ |
| 23 | LC_TELEPHONE LC_TIME |
| 24 | do |
| 25 | if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then |
| 26 | eval $as_var=C; export $as_var |
| 27 | else |
| 28 | $as_unset $as_var |
| 29 | fi |
| 30 | done |
| 31 | |
Theodore Ts'o | 56eb4d4 | 2004-09-17 19:54:22 -0400 | [diff] [blame] | 32 | if test ! -f "$DIR/et_h.awk" || test ! -f "$DIR/et_c.awk" ; then |
Theodore Ts'o | 7eb0669 | 2001-09-16 23:29:17 -0400 | [diff] [blame] | 33 | DIR="$ET_DIR" |
Theodore Ts'o | e5fa0e3 | 1998-04-01 02:18:45 +0000 | [diff] [blame] | 34 | # echo "Falling back to $DIR..." |
Theodore Ts'o | 56eb4d4 | 2004-09-17 19:54:22 -0400 | [diff] [blame] | 35 | if test ! -f "$DIR/et_h.awk" || test ! -f "$DIR/et_c.awk" ; then |
Theodore Ts'o | e5fa0e3 | 1998-04-01 02:18:45 +0000 | [diff] [blame] | 36 | echo "compile_et: Couldn't find compile_et's template files." |
| 37 | exit 1 |
| 38 | fi |
| 39 | fi |
Theodore Ts'o | 3839e65 | 1997-04-26 13:21:57 +0000 | [diff] [blame] | 40 | |
| 41 | ROOT=`echo $1 | sed -e s/.et$//` |
| 42 | BASE=`basename $ROOT` |
| 43 | |
Theodore Ts'o | 7eb0669 | 2001-09-16 23:29:17 -0400 | [diff] [blame] | 44 | if test ! -f "$ROOT.et" ; then |
Theodore Ts'o | e5fa0e3 | 1998-04-01 02:18:45 +0000 | [diff] [blame] | 45 | echo "compile_et: $ROOT.et: File not found" |
| 46 | exit 1; |
| 47 | fi |
| 48 | |
Theodore Ts'o | 153b449 | 2005-05-06 09:42:34 -0400 | [diff] [blame] | 49 | $AWK -f "${DIR}/et_h.awk" "outfile=${BASE}.h.$$" "outfn=${BASE}.h" "$ROOT.et" |
| 50 | if test -f ${BASE}.h && cmp -s ${BASE}.h.$$ ${BASE}.h ; then |
Andreas Dilger | 3f5ef96 | 2006-08-05 14:41:00 -0400 | [diff] [blame] | 51 | rm -f ${BASE}.h.$$ |
Theodore Ts'o | 153b449 | 2005-05-06 09:42:34 -0400 | [diff] [blame] | 52 | else |
Andreas Dilger | 3f5ef96 | 2006-08-05 14:41:00 -0400 | [diff] [blame] | 53 | mv -f ${BASE}.h.$$ ${BASE}.h |
| 54 | chmod -w ${BASE}.h |
Theodore Ts'o | 153b449 | 2005-05-06 09:42:34 -0400 | [diff] [blame] | 55 | fi |
| 56 | $AWK -f "${DIR}/et_c.awk" "outfile=${BASE}.c.$$" "outfn=${BASE}.c" "$ROOT.et" |
| 57 | if test -f ${BASE}.c && cmp -s ${BASE}.c.$$ ${BASE}.c ; then |
Andreas Dilger | 3f5ef96 | 2006-08-05 14:41:00 -0400 | [diff] [blame] | 58 | rm -f ${BASE}.c.$$ |
Theodore Ts'o | 153b449 | 2005-05-06 09:42:34 -0400 | [diff] [blame] | 59 | else |
Andreas Dilger | 3f5ef96 | 2006-08-05 14:41:00 -0400 | [diff] [blame] | 60 | mv -f ${BASE}.c.$$ ${BASE}.c |
| 61 | chmod -w ${BASE}.c |
Theodore Ts'o | 153b449 | 2005-05-06 09:42:34 -0400 | [diff] [blame] | 62 | fi |