r4471: Running 'make eparser_idl' doesn't need --header anymore.
[samba.git] / source / script / build_idl.sh
index 159cd1b36cabc7f9af6ca712626e47731c8b1755..6c028283085d1f80beccb82ae031ce120545e102 100755 (executable)
@@ -4,24 +4,18 @@ FULLBUILD=$1
 
 [ -d librpc/gen_ndr ] || mkdir -p librpc/gen_ndr || exit 1
 
-if [ ! -f build/pidl/idl.pm -o build/pidl/idl.yp -nt build/pidl/idl.pm ]; then
-    if `which yapp`; then
-       echo Rebuilding IDL parser
-       ( cd build/pidl && make ) || exit 1;
-    else 
-       echo "warning: yapp is not installed";
-    fi
-fi
-
-PIDL="build/pidl/pidl.pl --output librpc/gen_ndr/ndr_ --parse --header --parser"
-TABLES="build/pidl/tables.pl --output librpc/gen_ndr/tables"
+PIDL="$PERL ./build/pidl/pidl.pl --output librpc/gen_ndr/ndr_ --parse --header --parser --server --client"
+EPARSERPIDL="$PERL ./build/pidl/pidl.pl --output $EPARSERPREFIX/ndr_ --parse --eparser"
 
 if [ x$FULLBUILD = xFULL ]; then
       echo Rebuilding all idl files in librpc/idl
       $PIDL librpc/idl/*.idl || exit 1
+      exit 0
+fi
 
-      echo Rebuilding IDL tables
-      $TABLES librpc/gen_ndr/ndr_*.h || exit 1
+if [ x$FULLBUILD = xEPARSER ]; then
+      echo Rebuilding all idl files in librpc/idl
+      $EPARSERPIDL librpc/idl/*.idl || exit 1
       exit 0
 fi
 
@@ -29,14 +23,19 @@ list=""
 
 for f in librpc/idl/*.idl; do
     basename=`basename $f .idl`
-    if [ "$f" -nt librpc/gen_ndr/ndr_$basename.c ]; then
-       list="$list $f"
+    ndr="librpc/gen_ndr/ndr_$basename.c"
+    # blergh - most shells don't have the -nt function
+    if [ -f $ndr ]; then
+       if [ x`find $f -newer $ndr -print` = x$f ]; then
+           list="$list $f"
+       fi
+    else 
+        list="$list $f"
     fi
 done
 
 if [ "x$list" != x ]; then
     $PIDL $list || exit 1
-    $TABLES librpc/gen_ndr/ndr_*.h || exit 1
 fi
 
 exit 0