diff options
author | Andrew Tridgell <tridge@samba.org> | 2010-03-17 20:40:03 +1100 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2010-04-06 20:26:42 +1000 |
commit | dd05b6512ab2d5c8fc2d0fe18fcd19b62fee6f01 (patch) | |
tree | 24f0ad89ac92052b10c51f2e28f90c4fc7f81d64 | |
parent | 54e26fcb48e385cf62161cd62f102dd34d1c6b3b (diff) | |
download | samba-dd05b6512ab2d5c8fc2d0fe18fcd19b62fee6f01.tar.gz samba-dd05b6512ab2d5c8fc2d0fe18fcd19b62fee6f01.tar.bz2 samba-dd05b6512ab2d5c8fc2d0fe18fcd19b62fee6f01.zip |
build: improve autoconf macros
- enable headers to be specified
- enable both forms of DECL check
- more libreplace checks
- more heimdal checks
- more sysdep checks
-rw-r--r-- | buildtools/wafsamba/samba_autoconf.py | 31 | ||||
-rw-r--r-- | lib/replace/wscript | 3 | ||||
-rw-r--r-- | source4/heimdal_build/wscript_configure | 4 | ||||
-rw-r--r-- | source4/ntvfs/sysdep/wscript_configure | 6 |
4 files changed, 35 insertions, 9 deletions
diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py index 73ea4360a6..e5073a16ec 100644 --- a/buildtools/wafsamba/samba_autoconf.py +++ b/buildtools/wafsamba/samba_autoconf.py @@ -55,14 +55,26 @@ def CHECK_TYPE(conf, t, alternate): return False @conf -def CHECK_VARIABLE(conf, v, define=None, always=False): +def CHECK_VARIABLE(conf, v, define=None, always=False, headers=None): hdrs='' - for h in conf.env.hlist: + if headers is not None: + hlist = headers.split() + else: + hlist = conf.env.hlist + for h in hlist: hdrs += '#include <%s>\n' % h if define is None: define = 'HAVE_%s' % v.upper() if conf.check(fragment= - '%s\nint main(void) {void *_x; _x=(void *)&%s; return 0;}\n' % (hdrs, v), + ''' + %s + int main(void) { + #ifndef %s + void *_x; _x=(void *)&%s; + #endif + return 0; + }\n + ''' % (hdrs, v, v), execute=0, msg="Checking for variable %s" % v): conf.DEFINE(define, 1) @@ -72,12 +84,19 @@ def CHECK_VARIABLE(conf, v, define=None, always=False): return False @conf -def CHECK_DECLS(conf, vars): +def CHECK_DECLS(conf, vars, reverse=False, headers=None): '''check a list of variable declarations, using the HAVE_DECL_xxx form - of define''' + of define + + When reverse==True then use HAVE_xxx_DECL instead of HAVE_DECL_xxx + ''' ret = True for v in vars.split(): - if not CHECK_VARIABLE(conf, v, define='HAVE_DECL_%s' % v.upper()): + if not reverse: + define='HAVE_DECL_%s' % v.upper() + else: + define='HAVE_%s_DECL' % v.upper() + if not CHECK_VARIABLE(conf, v, define=define, headers=headers): ret = False return ret diff --git a/lib/replace/wscript b/lib/replace/wscript index 4ca33fa93a..067b80edea 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -131,6 +131,9 @@ def configure(conf): conf.CHECK_DECLS('snprintf vsnprintf asprintf vasprintf') + conf.CHECK_DECLS('dirfd environ errno getgrent_r getpwent_r', reverse=True) + conf.CHECK_DECLS('pread pwrite setenv setresgid setresuid', reverse=True) + conf.check_cc(fragment=''' #include <stdarg.h> va_list ap1,ap2; diff --git a/source4/heimdal_build/wscript_configure b/source4/heimdal_build/wscript_configure index c53cd39d72..37e243cf66 100644 --- a/source4/heimdal_build/wscript_configure +++ b/source4/heimdal_build/wscript_configure @@ -24,7 +24,9 @@ conf.DEFINE('VOID_RETSIGTYPE', 1) conf.CHECK_VARIABLE('h_errno') # strangely enough, we need it with another define too -conf.CHECK_VARIABLE('h_errno', define='HAVE_DECL_H_ERRNO') +conf.CHECK_DECLS('h_errno') + +conf.CHECK_DECLS('_res') conf.CHECK_HEADERS('arpa/nameser.h dns.h') conf.CHECK_FUNCS_IN('res_search res_nsearch res_ndestroy dns_search dn_expand', 'resolv') diff --git a/source4/ntvfs/sysdep/wscript_configure b/source4/ntvfs/sysdep/wscript_configure index 2d2064843e..6cfa4abe91 100644 --- a/source4/ntvfs/sysdep/wscript_configure +++ b/source4/ntvfs/sysdep/wscript_configure @@ -3,5 +3,7 @@ conf.CHECK_HEADERS('linux/inotify.h asm/unistd.h sys/inotify.h', add_headers=Fal conf.CHECK_FUNCS('inotify_init') conf.CHECK_VARIABLE('__NR_inotify_init') -conf.CHECK_VARIABLE('F_SETLEASE') -conf.CHECK_VARIABLE('SA_SIGINFO') +conf.CHECK_DECLS('F_SETLEASE', headers='linux/fcntl.h', reverse=True) +conf.CHECK_DECLS('SA_SIGINFO', headers='signal.h', reverse=True) + +conf.CHECK_DECLS('__NR_inotify_init', reverse=True, headers='asm/unistd.h') |