Fixed the patchfile tests and tidy up the patchfile backends.
[Samba.git] / source4 / script / lex_compile.sh
blob9bba7257b191238255b6b6d8f86e6a3b13f12780
1 #!/bin/sh
3 LEX="$1"
4 SRC="$2"
5 DEST="$3"
6 shift 3
7 ARGS="$*"
9 dir=`dirname $SRC`
10 file=`basename $SRC`
11 base=`basename $SRC .l`
12 if [ -z "$LEX" ]; then
13 # if $DEST is more recent than $SRC, we can just touch
14 # otherwise we touch but print out warnings
15 if [ -r $DEST ]; then
16 if [ x`find $SRC -newer $DEST -print` = x$SRC ]; then
17 echo "warning: lex not found - cannot generate $SRC => $DEST" >&2
18 echo "warning: lex not found - only updating the timestamp of $DEST" >&2
20 touch $DEST;
21 exit;
23 echo "error: lex not found - cannot generate $SRC => $DEST" >&2
24 exit 1;
26 # if $DEST is more recent than $SRC, we can just touch
27 if [ -r $DEST ]; then
28 if [ x`find $SRC -newer $DEST -print` != x$SRC ]; then
29 touch $DEST;
30 exit;
33 TOP=`pwd`
34 if cd $dir && $LEX $ARGS $file; then
35 if [ -r $base.yy.c ];then
36 # we must guarantee that config.h comes first
37 echo "#include \"config.h\"" > $base.c
38 sed -e "s|$base\.yy\.c|$DEST|" $base.yy.c >> $base.c
39 rm -f $base.yy.c
40 elif [ -r $base.c ];then
41 # we must guarantee that config.h comes first
42 mv $base.c $base.c.tmp
43 echo "#include \"config.h\"" > $base.c
44 sed -e "s|$base\.yy\.c|$DEST|" $base.c.tmp >> $base.c
45 rm -f $base.c.tmp
46 elif [ ! -r base.c ]; then
47 echo "$base.c nor $base.yy.c generated."
48 exit 1
51 cd $TOP