util: Build samba-util without unresolved symbols.
authorBrad Hards <bradh@frogmouth.net>
Thu, 14 Apr 2011 06:12:19 +0000 (16:12 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 16 Apr 2011 10:29:33 +0000 (12:29 +0200)
This is useful for the Samba4 case where external users otherwise need to link to
(private) libsamba-util-common.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User: Andrew Bartlett <abartlet@samba.org>
Autobuild-Date: Sat Apr 16 12:29:33 CEST 2011 on sn-devel-104

lib/util/wscript_build

index 1186cd7c102e3a225901b19bd7d925fc2bdd105a..93827bcf5ba7ba418747693380dcb2c4fc7d0a53 100755 (executable)
@@ -1,38 +1,65 @@
 #!/usr/bin/env python
 
-# as we move files into common between samba-util and samba-util3, move them here.
-# Both samba-util and samba-util3 depend on this private library
-bld.SAMBA_LIBRARY('samba-util-common',
-                  source='''talloc_stack.c smb_threads.c xfile.c data_blob.c
-                  util_file.c time.c rbtree.c rfc1738.c select.c
-                  genrand.c fsusage.c blocking.c become_daemon.c
-                  signal.c system.c params.c util.c util_id.c util_net.c
-                  util_strlist.c idtree.c debug.c fault.c base64.c
-                  util_str_common.c''',
-                  public_deps='talloc pthread LIBCRYPTO',
-                  # until we get all the dependencies in this library in common
-                  # we need to allow this library to be built with unresolved symbols
-                  allow_undefined_symbols=True,
-                  local_include=False,
-                  public_headers='debug.h',
-                  header_path= [('*', 'util') ],
-                  private_library=True
-                  )
-
-if bld.env._SAMBA_BUILD_ == 4:
-    bld.SAMBA_LIBRARY('samba-util',
-                      source='''dprintf.c
-                      ms_fnmatch.c parmlist.c substitute.c util_str.c
-                      ''',
-                      deps='samba-util-common DYNCONFIG',
-                      public_deps='talloc CHARSET execinfo uid_wrapper',
-                      public_headers='attr.h byteorder.h data_blob.h memory.h safe_string.h time.h talloc_stack.h xfile.h dlinklist.h util.h',
-                      header_path= [ ('dlinklist.h util.h', '.'), ('*', 'util') ],
-                      local_include=False,
-                      vnum='0.0.1',
-                      pc_files='samba-util.pc'
-                      )
-
+common_util_sources = '''talloc_stack.c smb_threads.c xfile.c data_blob.c
+                    util_file.c time.c rbtree.c rfc1738.c select.c
+                    genrand.c fsusage.c blocking.c become_daemon.c
+                    signal.c system.c params.c util.c util_id.c util_net.c
+                    util_strlist.c idtree.c debug.c fault.c base64.c
+                    util_str_common.c'''
+
+common_util_headers = 'debug.h'
+common_util_public_deps = 'talloc pthread LIBCRYPTO'
+s4_util_sources = '''dprintf.c ms_fnmatch.c parmlist.c substitute.c util_str.c'''
+s4_util_deps = 'DYNCONFIG'
+s4_util_public_deps = 'talloc CHARSET execinfo uid_wrapper'
+s4_util_public_headers = 'attr.h byteorder.h data_blob.h memory.h safe_string.h time.h talloc_stack.h xfile.h dlinklist.h util.h'
+s4_util_header_path = [ ('dlinklist.h util.h', '.'), ('*', 'util') ]
+
+if bld.env.enable_s3build or bld.env._SAMBA_BUILD_ == 3:
+    # as we move files into common between samba-util and samba-util3, move them here.
+    # Both samba-util and samba-util3 depend on this private library
+    bld.SAMBA_LIBRARY('samba-util-common',
+                    source=common_util_sources,
+                    public_deps=common_util_public_deps,
+                    # until we get all the dependencies in this library in common
+                    # we need to allow this library to be built with unresolved symbols
+                    allow_undefined_symbols=True,
+                    local_include=False,
+                    public_headers=common_util_headers,
+                    header_path= [('*', 'util') ],
+                    private_library=True
+                    )
+
+    if bld.env._SAMBA_BUILD_ == 4:
+        bld.SAMBA_LIBRARY('samba-util',
+                        source=s4_util_sources,
+                        deps=s4_util_deps + ' samba-util-common',
+                        public_deps=s4_util_public_deps,
+                        public_headers=s4_util_public_headers,
+                        header_path= s4_util_header_path,
+                        local_include=False,
+                        vnum='0.0.1',
+                        pc_files='samba-util.pc'
+                        )
+
+else:
+    if bld.env._SAMBA_BUILD_ == 4:
+        bld.SAMBA_LIBRARY('samba-util',
+                        source=s4_util_sources + " " + common_util_sources,
+                        deps=s4_util_deps,
+                        public_deps=s4_util_public_deps + ' ' + common_util_public_deps,
+                        public_headers=s4_util_public_headers + ' ' + common_util_headers,
+                        header_path= s4_util_header_path,
+                        local_include=False,
+                        vnum='0.0.1',
+                        pc_files='samba-util.pc'
+                        )
+
+    # dummy subsystem for avoid wider deps changes.
+    bld.SAMBA_SUBSYSTEM('samba-util-common',
+                        source=[],
+                        deps='samba-util',
+                        local_include=False,)
 
 bld.SAMBA_LIBRARY('asn1util',
                   source='asn1.c',