* support multiple interfaces in one IDL file in pidl
[sfrench/samba-autobuild/.git] / source4 / script / build_idl.sh
1 #!/bin/sh
2
3 FULLBUILD=$1
4
5 [ -d librpc/gen_ndr ] || mkdir -p librpc/gen_ndr || exit 1
6
7 ( cd build/pidl && make ) || exit 1
8
9 PIDL="build/pidl/pidl.pl --output librpc/gen_ndr/ndr_ --parse --header --parser"
10 TABLES="build/pidl/tables.pl --output librpc/gen_ndr/tables"
11
12 if [ x$FULLBUILD = xFULL ]; then
13       echo Rebuilding all idl files in librpc/idl
14       $PIDL librpc/idl/*.idl || exit 1
15
16       echo Rebuilding IDL tables
17       $TABLES librpc/gen_ndr/ndr_*.h || exit 1
18       exit 0
19 fi
20
21 list=""
22
23 for f in librpc/idl/*.idl; do
24     basename=`basename $f .idl`
25     if [ "$f" -nt librpc/gen_ndr/ndr_$basename.c ]; then
26         list="$list $f"
27     fi
28 done
29
30 if [ "x$list" != x ]; then
31     $PIDL $list || exit 1
32     $TABLES librpc/gen_ndr/ndr_*.h || exit 1
33 fi
34
35 exit 0