From 7628cb7da1d2b1f5bcdacecfd27866aad8b199a2 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 20 Mar 2010 17:17:56 +1100 Subject: build: cope with multiple libs in CHECK_FUNCS_IN() --- buildtools/wafsamba/samba_autoconf.py | 20 ++++++++++---------- lib/replace/wscript | 3 ++- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py index 028f5f269a..6ad188b760 100644 --- a/buildtools/wafsamba/samba_autoconf.py +++ b/buildtools/wafsamba/samba_autoconf.py @@ -299,21 +299,21 @@ def CHECK_FUNCS_IN(conf, list, library, mandatory=False, checklibc=False): SET_TARGET_TYPE(conf, library, 'EMPTY') return True - if not conf.check(lib=library, uselib_store=library): - conf.ASSERT(not mandatory, - "Mandatory library '%s' not found for functions '%s'" % (library, list)) - # if it isn't a mandatory library, then remove it from dependency lists - SET_TARGET_TYPE(conf, library, 'EMPTY') - return False - - conf.define('HAVE_LIB%s' % string.replace(library.upper(),'-','_'), 1) + for lib in TO_LIST(library): + if not conf.check(lib=lib, uselib_store=lib): + conf.ASSERT(not mandatory, + "Mandatory library '%s' not found for functions '%s'" % (library, list)) + # if it isn't a mandatory library, then remove it from dependency lists + SET_TARGET_TYPE(conf, library, 'EMPTY') + return False + conf.define('HAVE_LIB%s' % string.replace(lib.upper(),'-','_'), 1) + conf.env['LIB_' + lib.upper()] = lib + LOCAL_CACHE_SET(conf, 'TARGET_TYPE', lib, 'SYSLIB') ret = True for f in remaining: if not conf.check(function_name=f, lib=library, header_name=conf.env.hlist): ret = False - conf.env['LIB_' + library.upper()] = library - LOCAL_CACHE_SET(conf, 'TARGET_TYPE', library, 'SYSLIB') return ret diff --git a/lib/replace/wscript b/lib/replace/wscript index 036df59352..560a699060 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -189,7 +189,6 @@ def configure(conf): conf.CHECK_FUNCS('asprintf vasprintf setenv unsetenv strnlen strtoull __strtoull') conf.CHECK_FUNCS('strtouq strtoll __strtoll strtoq memmem printf memset memcpy') conf.CHECK_FUNCS('connect gethostbyname if_nametoindex socketpair') - conf.CHECK_FUNCS('inet_ntoa inet_aton inet_ntop inet_pton') conf.CHECK_FUNCS('dirfd getdirentries getdents syslog getaddrinfo freeaddrinfo') conf.CHECK_FUNCS('gai_strerror get_current_dir_name') conf.CHECK_FUNCS('timegm getifaddrs freeifaddrs mmap setgroups setsid') @@ -197,6 +196,8 @@ def configure(conf): conf.CHECK_FUNCS('getpwent_r getpwnam_r getpwuid_r epoll_create') + conf.CHECK_FUNCS_IN('inet_ntoa inet_aton inet_ntop inet_pton', 'socket nsl') + conf.CHECK_FUNCS_IN('dlopen dlsym dlerror dlclose', 'dl', checklibc=True) conf.CHECK_FUNCS_IN('poptGetContext', 'popt') conf.CHECK_FUNCS_IN('res_search', 'resolv', checklibc=True) -- cgit