s4-waf: cleanup use of LIBPOPT vs popt dependency
authorAndrew Tridgell <tridge@samba.org>
Sun, 28 Mar 2010 06:05:30 +0000 (17:05 +1100)
committerAndrew Tridgell <tridge@samba.org>
Tue, 6 Apr 2010 10:27:13 +0000 (20:27 +1000)
16 files changed:
buildtools/wafsamba/samba_bundled.py
lib/popt/wscript
lib/replace/wscript
libcli/nbt/wscript_build
nsswitch/wscript_build
source4/client/wscript_build
source4/lib/cmdline/wscript_build
source4/lib/ldb/wscript
source4/lib/registry/wscript_build
source4/lib/wmi/wscript_build
source4/librpc/wscript_build
source4/smbd/wscript_build
source4/torture/wscript_build
source4/utils/net/wscript_build
source4/utils/wscript_build
source4/wscript

index 2a6d75f7c9baa99d1a1ff59a3fbe5d68007895f4..6e3753a7908e1161383e3301b4983018b456022d 100644 (file)
@@ -42,15 +42,27 @@ def BUNDLED_EXTENSION_DEFAULT(opt, extension, noextenion=''):
 Options.Handler.BUNDLED_EXTENSION_DEFAULT = BUNDLED_EXTENSION_DEFAULT
 
 
+@runonce
 @conf
-def CHECK_BUNDLED_SYSTEM(conf, libname, minversion='0.0.0'):
+def CHECK_BUNDLED_SYSTEM(conf, libname, minversion='0.0.0',
+                         checkfunctions=None, headers=None):
     if 'ALL' in conf.env.BUNDLED_LIBS or libname in conf.env.BUNDLED_LIBS:
         return False
+    found = 'FOUND_SYSTEMLIB_%s' % libname
+    if found in conf.env:
+        return conf.env[found]
+    # try pkgconfig first
     if conf.check_cfg(package=libname,
                       args='"%s >= %s" --cflags --libs' % (libname, minversion),
                       msg='Checking for system %s >= %s' % (libname, minversion)):
         conf.SET_TARGET_TYPE(libname, 'SYSLIB')
+        conf.env[found] = True
         return True
+    if checkfunctions is not None:
+        if conf.CHECK_FUNCS_IN(checkfunctions, libname, headers=headers):
+            conf.env[found] = True
+            return True
+    conf.env[found] = False
     if 'NONE' in conf.env.BUNDLED_LIBS or '!'+libname in conf.env.BUNDLED_LIBS:
         print('ERROR: System library %s of version %s not found, and bundling disabled' % (libname, minversion))
         sys.exit(1)
index 88eed81c9298e6d4f318c701c8ba11177675e963..425402ebe737120c99b46d740f43cff11d581657 100644 (file)
@@ -2,23 +2,17 @@
 
 import Options
 
-def set_options(opt):
-    opt.add_option('--with-included-popt',
-                   help=("use bundled popt library, not from system"),
-                   action="store_true", dest='INCLUDED_POPT', default=False)
-
 def configure(conf):
     conf.CHECK_HEADERS('float.h')
-    if not Options.options.INCLUDED_POPT:
-        if conf.CHECK_FUNCS_IN('poptGetContext', 'popt', headers='popt.h'):
-            conf.DEFINE('HAVE_SYSTEM_POPT', 1)
+
+    if conf.CHECK_BUNDLED_SYSTEM('popt', checkfunctions='poptGetContext', headers='popt.h'):
+        conf.define('USING_SYSTEM_POPT', 1)
 
 def build(bld):
-    if not bld.CONFIG_SET('HAVE_SYSTEM_POPT'):
-        bld.SAMBA_SUBSYSTEM('LIBPOPT',
-                            source='findme.c popt.c poptconfig.c popthelp.c poptparse.c',
-                            cflags='-DDBL_EPSILON=__DBL_EPSILON__'
-                            )
-        bld.TARGET_ALIAS('LIBPOPT', 'popt')
-    else:
-        bld.TARGET_ALIAS('popt', 'LIBPOPT')
+    if bld.CONFIG_SET('USING_SYSTEM_POPT'):
+        return
+
+    bld.SAMBA_LIBRARY('popt',
+                      source='findme.c popt.c poptconfig.c popthelp.c poptparse.c',
+                      cflags='-DDBL_EPSILON=__DBL_EPSILON__'
+                      )
index d5f2b0dce949186720c3541e4be6a1b490a2fd7f..134cb76f4985583293a5d4b8e151df962600263d 100644 (file)
@@ -40,7 +40,7 @@ def configure(conf):
     conf.CHECK_HEADERS('windows.h winsock2.h ws2tcpip.h')
     conf.CHECK_HEADERS('libintl.h errno.h')
     conf.CHECK_HEADERS('gcrypt.h getopt.h iconv.h')
-    conf.CHECK_HEADERS('sys/inotify.h memory.h nss.h popt.h sasl/sasl.h')
+    conf.CHECK_HEADERS('sys/inotify.h memory.h nss.h sasl/sasl.h')
     conf.CHECK_HEADERS('security/pam_appl.h sys/inotify.h zlib.h asm/unistd.h')
     conf.CHECK_HEADERS('aio.h sys/unistd.h rpc/rpc.h rpc/nettype.h alloca.h float.h')
 
@@ -127,7 +127,6 @@ def configure(conf):
 
     conf.CHECK_FUNCS_IN('dlopen dlsym dlerror dlclose', 'dl',
                         checklibc=True, headers='dlfcn.h dl.h')
-    conf.CHECK_FUNCS_IN('poptGetContext', 'popt')
 
     conf.CHECK_FUNCS_IN('fdatasync', 'rt', checklibc=True)
 
index 7da0706d95b84021f9d1c1116da9e2076a2ae446..6d31ba62143e94a4149ddd46b7b753452c7d8a2c 100644 (file)
@@ -20,7 +20,7 @@ bld.SAMBA_BINARY('nmblookup',
        source='tools/nmblookup.c',
        manpages='man/nmblookup.1',
        installdir='BINDIR',
-       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL LIBCLI_NBT LIBPOPT POPT_SAMBA LIBNETIF LIBCLI_RESOLVE'
+       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL LIBCLI_NBT popt POPT_SAMBA LIBNETIF LIBCLI_RESOLVE'
        )
 
 
index 760b86e01c75c60c2e2b5bd61a37030ad039ee88..dd40cc1857e38d274e566b0b61b94b0bf451dd59 100644 (file)
@@ -20,6 +20,6 @@ bld.SAMBA_BINARY('nsstest',
 bld.SAMBA_BINARY('wbinfo',
        source='wbinfo.c',
        installdir='BINDIR',
-       deps='LIBSAMBA-UTIL LIBREPLACE_EXT LIBCLI_AUTH LIBPOPT POPT_SAMBA LIBWINBIND-CLIENT LIBWBCLIENT tevent UTIL_TEVENT LIBASYNC_REQ UID_WRAPPER'
+       deps='LIBSAMBA-UTIL LIBREPLACE_EXT LIBCLI_AUTH popt POPT_SAMBA LIBWINBIND-CLIENT LIBWBCLIENT tevent UTIL_TEVENT LIBASYNC_REQ UID_WRAPPER'
        )
 
index ac409619f1901203a7fcb1c30dd0427d10869d27..08dc90c961d67b77ca83363fb9c288cae190a572 100644 (file)
@@ -3,13 +3,13 @@
 bld.SAMBA_BINARY('smbclient',
        source='client.c',
        installdir='BINDIR',
-       deps='LIBSAMBA-HOSTCONFIG SMBREADLINE LIBSAMBA-UTIL LIBCLI_SMB RPC_NDR_SRVSVC LIBCLI_LSA LIBPOPT POPT_SAMBA POPT_CREDENTIALS LIBCLI_RAW'
+       deps='LIBSAMBA-HOSTCONFIG SMBREADLINE LIBSAMBA-UTIL LIBCLI_SMB RPC_NDR_SRVSVC LIBCLI_LSA popt POPT_SAMBA POPT_CREDENTIALS LIBCLI_RAW'
        )
 
 
 bld.SAMBA_BINARY('cifsdd',
        source='cifsdd.c cifsddio.c',
        installdir='BINDIR',
-       deps='LIBSAMBA-HOSTCONFIG LIBCLI_SMB LIBPOPT POPT_SAMBA POPT_CREDENTIALS'
+       deps='LIBSAMBA-HOSTCONFIG LIBCLI_SMB popt POPT_SAMBA POPT_CREDENTIALS'
        )
 
index 4494c7d2eb91495bf318b437502d6cadbdea307f..0229089167aad638da6cd6c5e026ac494b64f695 100644 (file)
@@ -3,12 +3,12 @@
 bld.SAMBA_SUBSYSTEM('LIBCMDLINE_CREDENTIALS',
        source='credentials.c',
        autoproto='credentials.h',
-       public_deps='CREDENTIALS LIBPOPT'
+       public_deps='CREDENTIALS popt'
        )
 
 bld.SAMBA_SUBSYSTEM('POPT_SAMBA',
        source='popt_common.c',
-       public_deps='LIBPOPT',
+       public_deps='popt',
        public_headers='popt_common.h:popt.h',
         header_path='samba',
         deps='talloc'
@@ -18,7 +18,7 @@ bld.SAMBA_SUBSYSTEM('POPT_SAMBA',
 bld.SAMBA_SUBSYSTEM('POPT_CREDENTIALS',
        source='popt_credentials.c',
        autoproto='popt_credentials.h',
-       public_deps='CREDENTIALS LIBCMDLINE_CREDENTIALS LIBPOPT',
+       public_deps='CREDENTIALS LIBCMDLINE_CREDENTIALS popt',
        deps='LIBSAMBA-UTIL'
        )
 
index 97e345b8346303fb24e1d7f98cbd6e60e156a898..e0269d76077380033a67221fb08e2b54fdb20035 100644 (file)
@@ -11,6 +11,7 @@ import wafsamba
 
 LIBTDB_DIR= srcdir + '/lib/tdb'
 LIBTEVENT_DIR= srcdir + '/lib/tevent'
+LIBPOPT_DIR= srcdir + '/lib/popt'
 
 def set_options(opt):
     opt.BUILTIN_DEFAULT('replace')
@@ -21,6 +22,7 @@ def set_options(opt):
 def configure(conf):
     conf.sub_config(LIBTDB_DIR)
     conf.sub_config(LIBTEVENT_DIR)
+    conf.sub_config(LIBPOPT_DIR)
     # where does the default LIBDIR end up? in conf.env somewhere?
     #
     conf.CONFIG_PATH('LDB_MODULESDIR', conf.SUBST_ENV_VAR('MODULESDIR') + '/ldb')
@@ -39,6 +41,7 @@ def configure(conf):
 def build(bld):
     bld.BUILD_SUBDIR(LIBTDB_DIR)
     bld.BUILD_SUBDIR(LIBTEVENT_DIR)
+    bld.BUILD_SUBDIR(LIBPOPT_DIR)
 
     # in Samba4 we build some extra modules, and add extra
     # capabilities to the ldb cmdline tools
index 16276674f69e5b7ee3fdb93e196278a2b9666bd8..66f2aa86d57dad8f8cb3849bf581141eda69218f 100644 (file)
@@ -30,7 +30,7 @@ bld.SAMBA_BINARY('regdiff',
        source='tools/regdiff.c',
        manpages='man/regdiff.1',
        installdir='BINDIR',
-       deps='LIBSAMBA-HOSTCONFIG registry LIBPOPT POPT_SAMBA POPT_CREDENTIALS'
+       deps='LIBSAMBA-HOSTCONFIG registry popt POPT_SAMBA POPT_CREDENTIALS'
        )
 
 
@@ -38,7 +38,7 @@ bld.SAMBA_BINARY('regpatch',
        source='tools/regpatch.c',
        manpages='man/regpatch.1',
        installdir='BINDIR',
-       deps='LIBSAMBA-HOSTCONFIG registry LIBPOPT POPT_SAMBA POPT_CREDENTIALS registry_common'
+       deps='LIBSAMBA-HOSTCONFIG registry popt POPT_SAMBA POPT_CREDENTIALS registry_common'
        )
 
 
@@ -46,7 +46,7 @@ bld.SAMBA_BINARY('regshell',
        source='tools/regshell.c',
        manpages='man/regshell.1',
        installdir='BINDIR',
-       deps='LIBSAMBA-HOSTCONFIG LIBPOPT registry POPT_SAMBA POPT_CREDENTIALS SMBREADLINE registry_common'
+       deps='LIBSAMBA-HOSTCONFIG popt registry POPT_SAMBA POPT_CREDENTIALS SMBREADLINE registry_common'
        )
 
 
@@ -54,7 +54,7 @@ bld.SAMBA_BINARY('regtree',
        source='tools/regtree.c',
        manpages='man/regtree.1',
        installdir='BINDIR',
-       deps='LIBSAMBA-HOSTCONFIG LIBPOPT registry POPT_SAMBA POPT_CREDENTIALS registry_common'
+       deps='LIBSAMBA-HOSTCONFIG popt registry POPT_SAMBA POPT_CREDENTIALS registry_common'
        )
 
 
index 04ef860d6760dfd770fb5a1f16d317d194d87eb2..fd8c17a667bc0c5a419b72fc18f54385b179182f 100644 (file)
@@ -13,14 +13,14 @@ bld.SAMBA_SUBSYSTEM('WMI',
 bld.SAMBA_BINARY('wmic',
        source='tools/wmic.c',
        installdir='BINDIR',
-       deps='POPT_SAMBA POPT_CREDENTIALS LIBPOPT WMI'
+       deps='POPT_SAMBA POPT_CREDENTIALS popt WMI'
        )
 
 
 bld.SAMBA_BINARY('wmis',
        source='tools/wmis.c',
        installdir='BINDIR',
-       deps='POPT_SAMBA POPT_CREDENTIALS LIBPOPT WMI'
+       deps='POPT_SAMBA POPT_CREDENTIALS popt WMI'
        )
 
 
index 5328d1da2caacf3a03a154ea7fd2fdb846ed2e79..538d9636c36bc6b74d3af54f6482ef4978371a56 100644 (file)
@@ -18,7 +18,7 @@ bld.SAMBA_BINARY('ndrdump',
        source='../../librpc/tools/ndrdump.c',
        manpages='../../librpc/tools/ndrdump.1',
        installdir='BINDIR',
-       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL LIBPOPT POPT_SAMBA NDR_TABLE LIBSAMBA-ERRORS'
+       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL popt POPT_SAMBA NDR_TABLE LIBSAMBA-ERRORS'
        )
 
 
index da49ddb8a414f8679805ea44c38a3c12da978b5e..6c7a6dee03cf6b634b4f2f61fc9921f7f27990fc 100644 (file)
@@ -23,7 +23,7 @@ bld.SAMBA_BINARY('samba',
        installdir='SBINDIR',
         subsystem_name='service',
        deps='''LIBEVENTS process_model service LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL POPT_SAMBA PIDFILE
-                LIBPOPT gensec registry ntptr ntvfs share CLUSTER DCESRV''',
+                popt gensec registry ntptr ntvfs share CLUSTER DCESRV''',
         needs_python=True,
         install_path='${SBINDIR}'
        )
index aee3ff41799dfccdfe53fa514e2b615374d4b80d..abed55bf7b2066be9576f1d1b91f7e63af930a20 100644 (file)
@@ -139,7 +139,7 @@ bld.SAMBA_BINARY('smbtorture',
        manpages='man/smbtorture.1',
        public_headers='smbtorture.h',
        installdir='BINDIR',
-       deps='torture LIBPOPT POPT_SAMBA POPT_CREDENTIALS dcerpc LIBCLI_SMB SMBREADLINE ' + TORTURE_MODULES,
+       deps='torture popt POPT_SAMBA POPT_CREDENTIALS dcerpc LIBCLI_SMB SMBREADLINE ' + TORTURE_MODULES,
         needs_python=True
        )
 
@@ -148,7 +148,7 @@ bld.SAMBA_BINARY('gentest',
        source='gentest.c',
        manpages='man/gentest.1',
        installdir='BINDIR',
-       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL LIBPOPT POPT_SAMBA POPT_CREDENTIALS LIBCLI_SMB LIBCLI_RAW'
+       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL popt POPT_SAMBA POPT_CREDENTIALS LIBCLI_SMB LIBCLI_RAW'
        )
 
 
@@ -156,7 +156,7 @@ bld.SAMBA_BINARY('masktest',
        source='masktest.c',
        manpages='man/masktest.1',
        installdir='BINDIR',
-       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL LIBPOPT POPT_SAMBA POPT_CREDENTIALS LIBCLI_SMB'
+       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL popt POPT_SAMBA POPT_CREDENTIALS LIBCLI_SMB'
        )
 
 
@@ -167,7 +167,7 @@ bld.SAMBA_BINARY('locktest',
        #cflags='--coverage',
        # GCOV='1',
        manpages='man/locktest.1',
-       deps='LIBPOPT POPT_SAMBA POPT_CREDENTIALS LIBSAMBA-UTIL LIBCLI_SMB LIBSAMBA-HOSTCONFIG',
+       deps='popt POPT_SAMBA POPT_CREDENTIALS LIBSAMBA-UTIL LIBCLI_SMB LIBSAMBA-HOSTCONFIG',
        installdir='BINDIR'
        )
 
index 9845be44cc0d608f4c7103d2793ae1b7cdb4c210..7c7e6ad4cb3838cbaa3da2dcdd0b206e34ee9228 100644 (file)
@@ -13,7 +13,7 @@ bld.SAMBA_BINARY('net',
        source='net.c net_machinepw.c net_password.c net_time.c net_join.c net_vampire.c net_user.c net_export_keytab.c',
        autoproto='net_proto.h',
        installdir='BINDIR',
-       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL LIBSAMBA-NET LIBPOPT POPT_SAMBA POPT_CREDENTIALS net_drs',
+       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL LIBSAMBA-NET popt POPT_SAMBA POPT_CREDENTIALS net_drs',
         needs_python=True
        )
 
index 6e43425e98b23ef12837ad4450b288c39bac5bb7..9b44c853337335bbe17ba7ba6035922b962aaf66 100644 (file)
@@ -8,7 +8,7 @@ bld.SAMBA_BINARY('ntlm_auth',
        source='ntlm_auth.c',
        manpages='man/ntlm_auth.1',
        installdir='BINDIR',
-       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL LIBPOPT POPT_SAMBA POPT_CREDENTIALS gensec LIBCLI_RESOLVE auth ntlm_check MESSAGING LIBEVENTS service',
+       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL popt POPT_SAMBA POPT_CREDENTIALS gensec LIBCLI_RESOLVE auth ntlm_check MESSAGING LIBEVENTS service',
         needs_python=True
        )
 
@@ -23,7 +23,7 @@ bld.SAMBA_BINARY('setnttoken',
 bld.SAMBA_BINARY('testparm',
        source='testparm.c',
        installdir='BINDIR',
-       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL LIBPOPT samba_socket POPT_SAMBA LIBCLI_RESOLVE CHARSET'
+       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL popt samba_socket POPT_SAMBA LIBCLI_RESOLVE CHARSET'
        )
 
 
index d8361398f4aab387af8751d3aadf8ec990623957..c191dd1b0dccc13b510e7409d6d69821778df3a5 100644 (file)
@@ -19,7 +19,6 @@ def set_options(opt):
     opt.recurse('../lib/nss_wrapper')
     opt.recurse('../lib/socket_wrapper')
     opt.recurse('../lib/uid_wrapper')
-    opt.recurse('../lib/popt')
     opt.recurse('../pidl')
 
 def configure(conf):