s3-waf: finally make SO_PEERCRED configure check work with stricter CFLAGS.
[gd/samba-autobuild/.git] / source3 / wscript
index 316427649934c0d9e070a8e0e6bbde9862b8aa21..1f4e7c37cfb058975c5f1fac1c4bd00886cd0881 100644 (file)
@@ -125,6 +125,7 @@ def configure(conf):
         conf.RECURSE('../lib/zlib')
         conf.RECURSE('../libcli/smbreadline')
         conf.RECURSE('../lib/util')
+        conf.RECURSE('../lib/util/charset')
 
         conf.ADD_EXTRA_INCLUDES('''#source3 #source3/include #lib/replace #lib''')
         if not conf.env.USING_SYSTEM_TDB:
@@ -351,7 +352,7 @@ utimensat vsyslog _write __write __xstat
         conf.ADD_CFLAGS('-fno-common')
     elif (host_os.rfind('freebsd') > -1):
         if conf.CHECK_HEADERS('sunacl.h'):
-            conf.define('HAVE_FREEBSD_SUNACL_H', '1')
+            conf.DEFINE('HAVE_FREEBSD_SUNACL_H', '1')
             conf.CHECK_FUNCS_IN('acl', 'sunacl')
         conf.DEFINE('STAT_ST_BLOCKSIZE', '512')
     elif (host_os.rfind('netbsd') > -1):
@@ -441,13 +442,12 @@ return acl_get_perm_np(permset_d, perm);
     conf.CHECK_DECLS('readahead', headers='fcntl.h', always=True)
 
     conf.CHECK_CODE('''
-               #include <sys/types.h>
-               #include <sys/socket.h>],
                struct ucred cred;
                socklen_t cred_len;
                int ret = getsockopt(0, SOL_SOCKET, SO_PEERCRED, &cred, &cred_len);''',
                'HAVE_PEERCRED',
-               msg="Checking whether we can use SO_PEERCRED to get socket credentials")
+               msg="Checking whether we can use SO_PEERCRED to get socket credentials",
+               headers='sys/types.h sys/socket.h')
 
     conf.CHECK_CODE('''
                #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
@@ -1713,6 +1713,9 @@ main() {
     if conf.CHECK_HEADERS('gpfs_gpl.h'):
         conf.DEFINE('HAVE_GPFS', '1')
 
+    # Note that all charset 'modules' must actually be static, due to dependency loop issues 
+    # if we include the module loader in iconv
+
     default_static_modules=TO_LIST('''pdb_smbpasswd pdb_tdbsam pdb_wbc_sam
                                       auth_sam auth_unix auth_winbind auth_wbc auth_server
                                       auth_domain auth_builtin vfs_default
@@ -1721,16 +1724,19 @@ main() {
 
     default_shared_modules=TO_LIST('''vfs_recycle vfs_audit vfs_extd_audit vfs_full_audit vfs_netatalk
                                       vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap
-                                      vfs_expand_msdfs vfs_shadow_copy vfs_shadow_copy2 charset_CP850
-                                      charset_CP437 auth_script vfs_readahead vfs_xattr_tdb
+                                      vfs_expand_msdfs vfs_shadow_copy vfs_shadow_copy2 
+                                      auth_script vfs_readahead vfs_xattr_tdb
                                       vfs_streams_xattr vfs_streams_depot vfs_acl_xattr vfs_acl_tdb
                                       vfs_smb_traffic_analyzer vfs_preopen vfs_catia vfs_scannedonly
                                       vfs_crossrename vfs_linux_xfs_sgid
                                       vfs_time_audit idmap_autorid''')
 
     if Options.options.developer:
-        default_static_modules.extend(TO_LIST('pdb_ads auth_netlogond'))
-        default_shared_modules.extend(TO_LIST('charset_weird perfcount_test'))
+        default_static_modules.extend(TO_LIST('pdb_ads auth_netlogond charset_weird'))
+        default_shared_modules.extend(TO_LIST('perfcount_test'))
+
+    if Options.options.developer or not conf.CONFIG_SET('HAVE_NATIVE_ICONV'):
+        default_static_modules.extend(TO_LIST('charset_CP850 charset_CP437'))
 
     if conf.env.toplevel_build:
         default_static_modules.extend(TO_LIST('pdb_samba4 auth_samba4'))
@@ -1754,7 +1760,7 @@ main() {
         default_static_modules.extend(TO_LIST('pdb_ldap idmap_ldap'))
 
     if conf.CONFIG_SET('DARWINOS'):
-       default_shared_modules.extend(TO_LIST('charset_macosxfs'))
+       default_static_modules.extend(TO_LIST('charset_macosxfs'))
 
     if conf.CONFIG_SET('HAVE_GPFS'):
        default_shared_modules.extend(TO_LIST('vfs_gpfs vfs_gpfs_hsm_notify'))