diff options
Diffstat (limited to 'source3/script/build_idl.sh')
-rw-r--r-- | source3/script/build_idl.sh | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/source3/script/build_idl.sh b/source3/script/build_idl.sh index 62941f4bc5..aeea78be36 100644 --- a/source3/script/build_idl.sh +++ b/source3/script/build_idl.sh @@ -1,6 +1,6 @@ #!/bin/sh -PIDL_ARGS="--outputdir ${srcdir}/librpc/gen_ndr --header --ndr-parser --" +PIDL_ARGS="--outputdir librpc/gen_ndr --header --ndr-parser --" PIDL_EXTRA_ARGS="$*" oldpwd=`pwd` @@ -10,12 +10,16 @@ cd ${srcdir} PIDL="$PERL pidl/pidl ${PIDL_ARGS} ${PIDL_EXTRA_ARGS}" +## +## Find newer files rather than rebuild all of them +## + list="" for f in ${IDL_FILES}; do basename=`basename $f .idl` ndr="librpc/gen_ndr/ndr_$basename.c" - if [ -f $ndr ]; then + if [ -f $ndr && 0 ]; then if [ "x`find librpc/idl/$f -newer $ndr -print`" = "xlibrpc/idl/$f" ]; then list="$list librpc/idl/$f" fi @@ -24,12 +28,24 @@ for f in ${IDL_FILES}; do fi done +## +## generate the ndr stubs +## + if [ "x$list" != x ]; then + echo "${PIDL} ${list}" $PIDL $list || exit 1 fi +## +## Do miscellaneous cleanup +## + for f in librpc/gen_ndr/ndr_*.c; do - cat $f | sed 's/^static //g' | sed 's/^_PUBLIC_ //g' > $f.new + cat $f | sed -e 's/^static //g' \ + -e 's/^_PUBLIC_ //g' \ + -e 's/#include <stdint.h>//g' \ + -e 's/#include <stdbool.h>//g' > $f.new /bin/mv -f $f.new $f done @@ -38,3 +54,4 @@ touch librpc/gen_ndr/ndr_dcerpc.h cd ${oldpwd} exit 0 + |