summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/build/smb_build/check_path.m419
-rw-r--r--source4/build/smb_build/makefile.pl7
-rwxr-xr-xsource4/script/build_idl.sh7
3 files changed, 32 insertions, 1 deletions
diff --git a/source4/build/smb_build/check_path.m4 b/source4/build/smb_build/check_path.m4
index bfd15d3d8c..5ceda46d87 100644
--- a/source4/build/smb_build/check_path.m4
+++ b/source4/build/smb_build/check_path.m4
@@ -107,6 +107,24 @@ AC_ARG_WITH(logfilebase,
;;
esac])
+#################################################
+# set configuration directory location
+eparserdir=""
+
+AC_ARG_WITH(eparserdir,
+[ --with-eparserdir=DIR Where to put output for the Ethereal/PIDL plugin],
+[ case "$withval" in
+ yes|no)
+ #
+ # Just in case anybody does it
+ #
+ AC_MSG_ERROR([--with-eparserdir called without argument])
+ ;;
+ * )
+ eparserdir="$withval"
+ ;;
+ esac])
+
AC_SUBST(configdir)
AC_SUBST(lockdir)
AC_SUBST(piddir)
@@ -114,6 +132,7 @@ AC_SUBST(logfilebase)
AC_SUBST(privatedir)
AC_SUBST(bindir)
AC_SUBST(sbindir)
+AC_SUBST(eparserdir)
debug=no
AC_ARG_ENABLE(debug,
diff --git a/source4/build/smb_build/makefile.pl b/source4/build/smb_build/makefile.pl
index 9664728e93..a5e86e76f0 100644
--- a/source4/build/smb_build/makefile.pl
+++ b/source4/build/smb_build/makefile.pl
@@ -29,6 +29,7 @@ exec_prefix=\@exec_prefix\@
VPATH=\@srcdir\@
srcdir=\@srcdir\@
builddir=\@builddir\@
+eparserdir=\@eparserdir\@
BASEDIR= \@prefix\@
BINDIR = \@bindir\@
@@ -37,6 +38,7 @@ LIBDIR = \@libdir\@
CONFIGDIR = \@configdir\@
VARDIR = \@localstatedir\@
+
# The permissions to give the executables
INSTALLPERMS = 0755
@@ -125,7 +127,10 @@ idl_full: build/pidl/idl.pm
CPP=\"\@CPP\@\" PERL=\"\$(PERL)\" script/build_idl.sh FULL
idl: build/pidl/idl.pm
- \@CPP=\"\@CPP\@\" script/build_idl.sh
+ \@CPP=\"\@CPP\@\" script/build_idl.sh PARTIAL
+
+eparser_idl: build/pidl/idl.pm
+ CPP=\"\@CPP\@\" PERL=\"\$(PERL)\" EPARSERPREFIX=\"\$(eparserdir)\" script/build_idl.sh EPARSER
build/pidl/idl.pm: build/pidl/idl.yp
-yapp -s build/pidl/idl.yp
diff --git a/source4/script/build_idl.sh b/source4/script/build_idl.sh
index ec67c0aec0..6e4e049cb7 100755
--- a/source4/script/build_idl.sh
+++ b/source4/script/build_idl.sh
@@ -5,6 +5,7 @@ FULLBUILD=$1
[ -d librpc/gen_ndr ] || mkdir -p librpc/gen_ndr || exit 1
PIDL="$PERL ./build/pidl/pidl.pl --output librpc/gen_ndr/ndr_ --parse --header --parser --server"
+EPARSERPIDL="$PERL ./build/pidl/pidl.pl --output $EPARSERPREFIX/ndr_ --parse --header --eparser"
TABLES="$PERL ./build/pidl/tables.pl --output librpc/gen_ndr/tables"
if [ x$FULLBUILD = xFULL ]; then
@@ -16,6 +17,12 @@ if [ x$FULLBUILD = xFULL ]; then
exit 0
fi
+if [ x$FULLBUILD = xEPARSER ]; then
+ echo Rebuilding all idl files in librpc/idl
+ $EPARSERPIDL librpc/idl/*.idl || exit 1
+ exit 0
+fi
+
list=""
for f in librpc/idl/*.idl; do