added auto-generation of the IDL interface tables. This makes two less
[ira/wip.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 [ -d librpc/gen_rpc ] || mkdir -p librpc/gen_rpc || exit 1
7
8 ( cd build/pidl && make ) || exit 1
9
10 PIDL="build/pidl/pidl.pl --output librpc/gen_ndr/ndr_ --parse --header --parser --client librpc/gen_rpc/rpc_"
11 TABLES="build/pidl/tables.pl --output librpc/gen_ndr/tables"
12
13 if [ x$FULLBUILD = xFULL ]; then
14       echo Rebuilding all idl files in librpc/idl
15       $PIDL librpc/idl/*.idl || exit 1
16
17       echo Rebuilding IDL tables
18       $TABLES librpc/gen_ndr/ndr_*.h
19       exit 0
20 fi
21
22 list=""
23
24 for f in librpc/idl/*.idl; do
25     basename=`basename $f .idl`
26     if [ "$f" -nt librpc/gen_ndr/ndr_$basename.c ]; then
27         list="$list $f"
28     fi
29 done
30
31 if [ "x$list" != x ]; then
32     $PIDL $list || exit 1
33 fi
34
35 exit 0