s4-smbtorture: Make test names lowercase and dot-separated.
[samba.git] / source3 / script / build_idl.sh
old mode 100644 (file)
new mode 100755 (executable)
index 77f37d8..8f88588
@@ -1,18 +1,27 @@
 #!/bin/sh
 
-PIDL_ARGS="--outputdir librpc/gen_ndr --header --ndr-parser --samba3-ndr-server --samba3-ndr-client --"
-PIDL_EXTRA_ARGS="$*"
+if [ "$1" = "--full" ]; then
+       FULL=1
+       shift 1
+else
+       FULL=0
+fi
+
+ARGS="--includedir=../librpc/idl --outputdir $PIDL_OUTPUTDIR --header --ndr-parser --samba3-ndr-server --samba3-ndr-client $PIDL_ARGS --"
+IDL_FILES="$*"
 
 oldpwd=`pwd`
 cd ${srcdir}
 
-[ -d librpc/gen_ndr ] || mkdir -p librpc/gen_ndr || exit 1
+[ -d $PIDL_OUTPUTDIR ] || mkdir -p $PIDL_OUTPUTDIR || exit 1
 
-if [ -z "$PIDL" ] ; then
-    PIDL=pidl
-fi
+PIDL="$PIDL $ARGS"
 
-PIDL="$PIDL ${PIDL_ARGS} ${PIDL_EXTRA_ARGS}"
+if [ $FULL = 1 ]; then
+       echo "Rebuilding all idl files"
+       $PIDL $IDL_FILES || exit 1
+       exit 0
+fi
 
 ##
 ## Find newer files rather than rebuild all of them
@@ -20,16 +29,20 @@ PIDL="$PIDL ${PIDL_ARGS} ${PIDL_EXTRA_ARGS}"
 
 list=""
 for f in ${IDL_FILES}; do
-       basename=`basename $f .idl`
-       ndr="librpc/gen_ndr/ndr_$basename.c"
-
-       if [ -f $ndr ] && false; then
-               if [ "x`find librpc/idl/$f -newer $ndr -print`" = "xlibrpc/idl/$f" ]; then
-                       list="$list librpc/idl/$f"
-               fi
-       else 
-               list="$list librpc/idl/$f"
-       fi
+        b=`basename $f .idl`
+       outfiles="cli_$b.c $b.h ndr_$b.h srv_$b.c"
+       outfiles="$outfiles cli_$b.h ndr_$b.c srv_$b.h"
+
+       for o in $outfiles; do
+           [ -f $PIDL_OUTPUTDIR/$o ] || {
+               list="$list $f"
+               break
+           }
+           test "`find $f -newer $PIDL_OUTPUTDIR/$o`" != "" && {
+               list="$list $f"
+               break
+           }
+       done
 done
 
 ##
@@ -41,20 +54,6 @@ if [ "x$list" != x ]; then
        $PIDL $list || exit 1
 fi
 
-##
-## Do miscellaneous cleanup
-##
-
-for f in librpc/gen_ndr/ndr_*.c; do
-       cat $f | sed -e 's/^static //g' > $f.new
-       /bin/mv -f $f.new $f
-done
-
-touch librpc/gen_ndr/ndr_dcerpc.h
-
-echo Generating librpc/gen_ndr/tables.c
-./librpc/tables.pl --output=librpc/gen_ndr/tables.c librpc/gen_ndr/*.h > librpc/gen_ndr/tables.c
-
 cd ${oldpwd}
 
 exit 0