s3: Fix Coverity ID 242700 Dereference before null check
[Samba.git] / librpc / build_idl.sh
blob35acd1f24e2bce1b87da5adf52bc9bf6b231a61b
1 #!/bin/sh
3 if [ "$1" = "--full" ]; then
4 FULL=1
5 shift 1
6 else
7 FULL=0
8 fi
10 ARGS="--outputdir $PIDL_OUTPUTDIR --header --ndr-parser --samba3-ndr-server --server --client --python --dcom-proxy --com-header $PIDL_ARGS --"
11 IDL_FILES="$*"
13 oldpwd=`pwd`
14 cd ${srcdir}
16 [ -d $PIDL_OUTPUTDIR ] || mkdir -p $PIDL_OUTPUTDIR || exit 1
18 PIDL_DIR=`dirname $PIDL`
19 PIDL_CMD="$PIDL $ARGS"
21 if [ $FULL = 1 ]; then
22 echo "Rebuilding all idl files"
23 $PIDL_CMD $IDL_FILES || exit 1
24 exit 0
28 ## Find newer files rather than rebuild all of them. Also handle the case
29 ## where the pidl compiler itself is newer.
31 PIDL_NEWEST=$(ls -rt $(find $PIDL_DIR -type f) | tail -n -1)
33 list=""
34 for f in ${IDL_FILES}; do
35 b=`basename $f .idl`
36 outfiles="$b.h ndr_${b}_c.c ndr_$b.h ndr_${b}_s.c srv_$b.c"
37 outfiles="$outfiles ndr_$b.c ndr_${b}_c.h py_$b.c srv_$b.h"
39 for o in $outfiles; do
40 [ -f $PIDL_OUTPUTDIR/$o ] || {
41 list="$list $f"
42 break
44 test "`find $f -newer $PIDL_OUTPUTDIR/$o`" != "" && {
45 list="$list $f"
46 break
48 test "`find $PIDL_NEWEST -newer $PIDL_OUTPUTDIR/$o`" != "" && {
49 list="$list $f"
50 break
52 done
53 done
56 ## generate the ndr stubs
59 if [ "x$list" != x ]; then
60 # echo "${PIDL_CMD} ${list}"
61 $PIDL_CMD $list || exit 1
64 cd ${oldpwd}
66 exit 0