* reduced the number of grammer conflicts a lot using (arbitrary)
[ira/wip.git] / source / 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 if [ ! -f build/pidl/idl.pm -o build/pidl/idl.yp -nt build/pidl/idl.pm ]; then
8     echo Rebuilding IDL parser
9     ( cd build/pidl && make ) || exit 1;
10 fi
11
12 PIDL="build/pidl/pidl.pl --output librpc/gen_ndr/ndr_ --parse --header --parser"
13 TABLES="build/pidl/tables.pl --output librpc/gen_ndr/tables"
14
15 if [ x$FULLBUILD = xFULL ]; then
16       echo Rebuilding all idl files in librpc/idl
17       $PIDL librpc/idl/*.idl || exit 1
18
19       echo Rebuilding IDL tables
20       $TABLES librpc/gen_ndr/ndr_*.h || exit 1
21       exit 0
22 fi
23
24 list=""
25
26 for f in librpc/idl/*.idl; do
27     basename=`basename $f .idl`
28     if [ "$f" -nt librpc/gen_ndr/ndr_$basename.c ]; then
29         list="$list $f"
30     fi
31 done
32
33 if [ "x$list" != x ]; then
34     $PIDL $list || exit 1
35     $TABLES librpc/gen_ndr/ndr_*.h || exit 1
36 fi
37
38 exit 0