The branch, master has been updated via 21b0d5e pidl: use $CC -E if $CPP is not defined, if both undefined use cpp via 301d59c build: use CPP and CC values when calling pidl via 8733738 build: introduce SAMBA_CHECK_PYTHON_HEADERS via 672c48b build: finishing fixing broken libiconv on hpux from 1f2518d s4 libcli: Add libcli_echo lib and torture test
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 21b0d5e3b10711e6ce3bfad0c1ee2da09a60e232 Author: Matthieu Patou <m...@matws.net> Date: Fri Dec 10 02:03:40 2010 +0300 pidl: use $CC -E if $CPP is not defined, if both undefined use cpp Autobuild-User: Matthieu Patou <m...@samba.org> Autobuild-Date: Fri Dec 10 01:26:44 CET 2010 on sn-devel-104 commit 301d59caf2ee6f49e108b748b0e38221dec9bb96 Author: Matthieu Patou <m...@matws.net> Date: Fri Dec 10 02:36:24 2010 +0300 build: use CPP and CC values when calling pidl commit 87337383572324e3d1d00ed710614ebe217aa2b2 Author: Matthieu Patou <m...@matws.net> Date: Fri Dec 10 01:42:32 2010 +0300 build: introduce SAMBA_CHECK_PYTHON_HEADERS This function is a wrapper around waf's check_python_header. It avoids searching more than once for the headers bringing a small speed improvement and a better lisibility of the logs. But it's mainly to avoid a nasty bug when python libraries are in path pointed by python_LIBPL (ie. /usr/local/lib/python2.6/config/) instead of python_LIBDIR (ie. /usr/local/lib). On the first call waf will correctly find that in order to link with python libs it needs to add -L$python_LIBPL. But on the next calls of check_python_headers, waf will use both the current library path value (ie. -L/usr/local/lib/python2.6/config) and -L$python_LIBDIR (ie. /usr/local/lib/) which will make him beleive that python libraries are in $python_LIBDIR which at the end will make the final link test fails in check_python_headers as it will not use the good directory. So by avoiding calling check_python_headers more than once we avoid making waf fooling itself. commit 672c48b763ce3d53dc93cce1c73f3f1ced1147e8 Author: Matthieu Patou <m...@matws.net> Date: Thu Dec 9 23:31:16 2010 +0300 build: finishing fixing broken libiconv on hpux ----------------------------------------------------------------------- Summary of changes: buildtools/wafsamba/samba_autoconf.py | 9 +++++++++ buildtools/wafsamba/samba_pidl.py | 11 ++++++++++- buildtools/wafsamba/samba_python.py | 9 +++++++++ lib/talloc/wscript | 2 +- lib/tdb/wscript | 2 +- lib/tevent/wscript | 2 +- lib/util/charset/wscript_configure | 2 ++ pidl/lib/Parse/Pidl/IDL.pm | 10 ++++++++-- source4/wscript | 2 +- 9 files changed, 42 insertions(+), 7 deletions(-) Changeset truncated at 500 lines: diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py index b6d0b35..1babe7b 100644 --- a/buildtools/wafsamba/samba_autoconf.py +++ b/buildtools/wafsamba/samba_autoconf.py @@ -448,10 +448,19 @@ def CHECK_LDFLAGS(conf, ldflags): @conf +def CONFIG_GET(conf, option): + '''return True if a configuration option was found''' + if (option in conf.env): + return conf.env[option] + else: + return None + +...@conf def CONFIG_SET(conf, option): '''return True if a configuration option was found''' return (option in conf.env) and (conf.env[option] != ()) Build.BuildContext.CONFIG_SET = CONFIG_SET +Build.BuildContext.CONFIG_GET = CONFIG_GET def library_flags(conf, libs): diff --git a/buildtools/wafsamba/samba_pidl.py b/buildtools/wafsamba/samba_pidl.py index 902d4c6..6476211 100644 --- a/buildtools/wafsamba/samba_pidl.py +++ b/buildtools/wafsamba/samba_pidl.py @@ -58,7 +58,16 @@ def SAMBA_PIDL(bld, pname, source, pidl_src_nodes = bld.pidl_files_cache # the cd .. is needed because pidl currently is sensitive to the directory it is run in - t = bld(rule='cd .. && ${PERL} "${PIDL}" --quiet ${OPTIONS} --outputdir ${OUTPUTDIR} -- "${SRC[0].abspath(env)}"', + cpp = "" + cc = "" + if bld.CONFIG_SET("CPP"): + cpp = "CPP=%s" % bld.CONFIG_GET("CPP") + if bld.CONFIG_SET("CC"): + if isinstance(bld.CONFIG_GET("CC"), list): + cc = "CC=%s" % bld.CONFIG_GET("CC")[0] + else: + cc = "CC=%s" % bld.CONFIG_GET("CC") + t = bld(rule='cd .. && %s %s ${PERL} "${PIDL}" --quiet ${OPTIONS} --outputdir ${OUTPUTDIR} -- "${SRC[0].abspath(env)}"' % (cpp, cc), ext_out = '.c', before = 'cc', on_results = True, diff --git a/buildtools/wafsamba/samba_python.py b/buildtools/wafsamba/samba_python.py index ad09981..a663b19 100644 --- a/buildtools/wafsamba/samba_python.py +++ b/buildtools/wafsamba/samba_python.py @@ -4,6 +4,15 @@ import Build from samba_utils import * from samba_autoconf import * +from Configure import conf +...@conf +def SAMBA_CHECK_PYTHON_HEADERS(conf, mandatory=True): + if conf.env["python_headers_checked"] == []: + conf.check_python_headers(mandatory) + conf.env["python_headers_checked"] = "yes" + else: + conf.msg("python headers", "using cache") + def SAMBA_PYTHON(bld, name, source='', diff --git a/lib/talloc/wscript b/lib/talloc/wscript index 6316aba..49eac6e 100644 --- a/lib/talloc/wscript +++ b/lib/talloc/wscript @@ -59,7 +59,7 @@ def configure(conf): # also disable if we don't have the python libs installed conf.check_tool('python') conf.check_python_version((2,4,2)) - conf.check_python_headers(mandatory=False) + conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=False) if not conf.env.HAVE_PYTHON_H: Logs.warn('Disabling pytalloc-util as python devel libs not found') conf.env.disable_python = True diff --git a/lib/tdb/wscript b/lib/tdb/wscript index fadd24f..f00d119 100644 --- a/lib/tdb/wscript +++ b/lib/tdb/wscript @@ -47,7 +47,7 @@ def configure(conf): # also disable if we don't have the python libs installed conf.check_tool('python') conf.check_python_version((2,4,2)) - conf.check_python_headers(mandatory=False) + conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=False) if not conf.env.HAVE_PYTHON_H: Logs.warn('Disabling pytdb as python devel libs not found') conf.env.disable_python = True diff --git a/lib/tevent/wscript b/lib/tevent/wscript index 14c4c60..58ef87e 100644 --- a/lib/tevent/wscript +++ b/lib/tevent/wscript @@ -48,7 +48,7 @@ def configure(conf): # also disable if we don't have the python libs installed conf.check_tool('python') conf.check_python_version((2,4,2)) - conf.check_python_headers(mandatory=False) + conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=False) if not conf.env.HAVE_PYTHON_H: Logs.warn('Disabling pytevent as python devel libs not found') conf.env.disable_python = True diff --git a/lib/util/charset/wscript_configure b/lib/util/charset/wscript_configure index 346d585..e38f22b 100644 --- a/lib/util/charset/wscript_configure +++ b/lib/util/charset/wscript_configure @@ -15,5 +15,7 @@ if (conf.CHECK_FUNCS_IN('iconv_open', 'iconv', checklibc=False, headers='iconv.h if conf.env['HAVE_LIBICONV']: if conf.CHECK_FUNCS('mbrtowc', headers='wchar.h'): conf.DEFINE('HAVE_NATIVE_ICONV', 1) + elif conf.env.get['LIB_ICONV']: + del conf.env['LIB_ICONV'] else: conf.DEFINE('HAVE_NATIVE_ICONV', 1) diff --git a/pidl/lib/Parse/Pidl/IDL.pm b/pidl/lib/Parse/Pidl/IDL.pm index de605c7..bafa2ce 100644 --- a/pidl/lib/Parse/Pidl/IDL.pm +++ b/pidl/lib/Parse/Pidl/IDL.pm @@ -2619,11 +2619,17 @@ sub parse_file($$) my $saved_delim = $/; undef $/; my $cpp = $ENV{CPP}; + my $options = ""; if (! defined $cpp) { - $cpp = "cpp"; + if (defined $ENV{CC}) { + $cpp = "$ENV{CC}"; + $options = "-E"; + } else { + $cpp = "cpp"; + } } my $includes = join('',map { " -I$_" } @$incdirs); - my $data = `$cpp -D__PIDL__$includes -xc "$filename"`; + my $data = `$cpp $options -D__PIDL__$includes -xc "$filename"`; $/ = $saved_delim; return parse_string($data, $filename); diff --git a/source4/wscript b/source4/wscript index dabca7f..fb04919 100644 --- a/source4/wscript +++ b/source4/wscript @@ -74,7 +74,7 @@ def configure(conf): # enable tool to build python extensions conf.check_tool('python') conf.check_python_version((2,4,2)) - conf.check_python_headers(mandatory=True) + conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=True) if sys.platform == 'darwin' and not conf.env['HAVE_ENVIRON_DECL']: # Mac OSX needs to have this and it's also needed that the python is compiled with this -- Samba Shared Repository