diff options
-rw-r--r-- | source4/build/m4/check_cc.m4 | 14 | ||||
-rw-r--r-- | source4/build/m4/check_perl.m4 | 3 | ||||
-rw-r--r-- | source4/build/smb_build/makefile.pm | 4 | ||||
-rwxr-xr-x | source4/script/build_idl.sh | 4 |
4 files changed, 22 insertions, 3 deletions
diff --git a/source4/build/m4/check_cc.m4 b/source4/build/m4/check_cc.m4 index 68e938b794..947112f4b6 100644 --- a/source4/build/m4/check_cc.m4 +++ b/source4/build/m4/check_cc.m4 @@ -67,6 +67,20 @@ if test x"$samba_cv_immediate_structures" = x"yes"; then AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES,1,[Whether the compiler supports immediate structures]) fi +############################################ +# check if the compiler can handle negative enum values +AC_CACHE_CHECK([that the C compiler understands negative enum values],SMB_BUILD_CC_NEGATIVE_ENUM_VALUES, [ + AC_TRY_COMPILE([ +#include <stdio.h>], +[ + enum negative_values { NEGATIVE_VALUE = 0xFFFFFFFF }; +], + SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=yes,SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=no)]) +if test x"$SMB_BUILD_CC_NEGATIVE_ENUM_VALUES" != x"yes"; then + AC_MSG_WARN([using --unit-enums for pidl]) + PIDL_ARGS="$PIDL_ARGS --uint-enums" +fi + AC_MSG_CHECKING([for test routines]) AC_TRY_RUN([#include "${srcdir-.}/build/tests/trivial.c"], AC_MSG_RESULT(yes), diff --git a/source4/build/m4/check_perl.m4 b/source4/build/m4/check_perl.m4 index 5f5f614f84..5e493db875 100644 --- a/source4/build/m4/check_perl.m4 +++ b/source4/build/m4/check_perl.m4 @@ -13,3 +13,6 @@ fi if test x"$debug" = x"yes";then PERL="$PERL -W" fi + +PIDL_ARGS="" +AC_SUBST(PIDL_ARGS) diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 0367124e64..b14991a840 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -130,10 +130,10 @@ sub _prepare_IDL($) return << '__EOD__'; idl_full: build/pidl/idl.pm - CPP="@CPP@" PERL="$(PERL)" script/build_idl.sh FULL + CPP="@CPP@" PERL="$(PERL)" script/build_idl.sh FULL @PIDL_ARGS@ idl: build/pidl/idl.pm - @CPP="@CPP@" PERL="$(PERL)" script/build_idl.sh PARTIAL + @CPP="@CPP@" PERL="$(PERL)" script/build_idl.sh PARTIAL @PIDL_ARGS@ 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 d15a9add31..2018d70d2b 100755 --- a/source4/script/build_idl.sh +++ b/source4/script/build_idl.sh @@ -1,10 +1,12 @@ #!/bin/sh FULLBUILD=$1 +shift 1 +PIDL_EXTRA_ARGS="$*" [ -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 --client --dcom-proxy --com-header --swig --odl" +PIDL="$PERL ./build/pidl/pidl.pl --output librpc/gen_ndr/ndr_ --parse --header --parser --server --client --dcom-proxy --com-header --swig --odl $PIDL_EXTRA_ARGS" if [ x$FULLBUILD = xFULL ]; then echo Rebuilding all idl files in librpc/idl |