#!/usr/bin/env python
-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.c util_str_common.c substitute.c ms_fnmatch.c'''
-
-common_util_headers = 'debug.h'
-common_util_public_deps = 'talloc pthread LIBCRYPTO CHARSET'
-s4_util_sources = '''dprintf.c parmlist.c'''
-s4_util_deps = 'DYNCONFIG'
-s4_util_public_deps = 'talloc 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 string_wrappers.h'
-s4_util_header_path = [ ('dlinklist.h util.h', '.'), ('*', 'util') ]
-
-if 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
- )
+# Please add any new SAMBA_SUBSYSTEM/SAMBA_LIBRARY to the bottom of the file
+# unless they are also required to build standalone ctdb.
+
+bld.SAMBA_LIBRARY('time-basic',
+ source='time_basic.c',
+ deps='replace',
+ private_library=True,
+ local_include=False)
+
+bld.SAMBA_SUBSYSTEM('tini',
+ source='tini.c',
+ deps='',
+ local_include=False)
+
+bld.SAMBA_SUBSYSTEM('tiniparser',
+ source='tiniparser.c',
+ deps='tini',
+ local_include=False)
+
+bld.SAMBA_SUBSYSTEM('strv',
+ source='strv.c',
+ deps='talloc',
+ local_include=False)
+
+bld.SAMBA_SUBSYSTEM('close-low-fd',
+ source='close_low_fd.c',
+ deps='replace',
+ local_include=False)
+
+samba_debug_add_deps = ''
+samba_debug_add_inc = ''
+
+if bld.CONFIG_SET('HAVE_GPFS'):
+ bld.SAMBA_SUBSYSTEM('gpfswrap',
+ source='gpfswrap.c',
+ deps='replace',
+ local_include=False,
+ includes=bld.CONFIG_GET('CPPPATH_GPFS'))
+ samba_debug_add_deps += ' gpfswrap'
+ samba_debug_add_inc += bld.CONFIG_GET('CPPPATH_GPFS')
+
+bld.SAMBA_LIBRARY('samba-debug',
+ source='debug.c',
+ deps='replace time-basic close-low-fd talloc socket-blocking' + samba_debug_add_deps,
+ public_deps='systemd systemd-journal lttng-ust',
+ local_include=False,
+ includes=samba_debug_add_inc,
+ private_library=True)
+
+bld.SAMBA_LIBRARY('socket-blocking',
+ source='blocking.c',
+ local_include=False,
+ private_library=True)
+
+bld.SAMBA_LIBRARY('talloc_report',
+ source='talloc_report.c',
+ local_include=False,
+ public_deps='talloc',
+ private_library=True
+ )
+
+bld.SAMBA_SUBSYSTEM('samba-util-core',
+ source='''xfile.c data_blob.c util_file.c time.c
+ signal.c util.c idtree.c fault.c
+ substitute.c util_process.c util_strlist.c
+ strv_util.c''',
+ deps='''time-basic samba-debug socket-blocking talloc
+ tevent execinfo pthread strv''',
+ local_include=False)
+
+bld.SAMBA_LIBRARY('iov_buf',
+ source='iov_buf.c',
+ local_include=False,
+ private_library=True)
+
+bld.SAMBA_LIBRARY('msghdr',
+ source='msghdr.c',
+ deps='replace iov_buf',
+ local_include=False,
+ private_library=True)
+
+bld.SAMBA_LIBRARY('sys_rw',
+ source='sys_rw.c sys_rw_data.c',
+ deps='replace iov_buf',
+ local_include=False,
+ private_library=True)
+
+if bld.env.SAMBA_UTIL_CORE_ONLY:
+
+ bld.SAMBA_LIBRARY('tevent-util',
+ source='tevent_unix.c',
+ local_include=False,
+ deps='tevent',
+ private_library=True)
else:
- 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,
+
+ bld.env.public_headers_skip.append('charset_compat.h')
+
+ bld.SAMBA_LIBRARY('genrand',
+ source='genrand.c',
+ deps='replace socket-blocking sys_rw',
local_include=False,
- vnum='0.0.1',
- pc_files='samba-util.pc'
- )
+ private_library=True)
- # dummy subsystem for avoid wider deps changes.
- bld.SAMBA_SUBSYSTEM('samba-util-common',
- source=[],
- deps='samba-util',
- local_include=False,)
+ bld.SAMBA_BINARY('genrandperf',
+ source='tests/genrandperf.c',
+ deps='genrand replace',
+ local_include=False,
+ install=False)
-bld.SAMBA_LIBRARY('asn1util',
- source='asn1.c',
- deps='talloc samba-util-common',
- private_library=True,
- local_include=False)
+ bld.SAMBA_LIBRARY('samba-util',
+ source='''talloc_stack.c smb_threads.c
+ rbtree.c rfc1738.c become_daemon.c system.c select.c getpass.c
+ genrand_util.c fsusage.c
+ params.c util_id.c util_net.c
+ util_strlist_v3.c util_paths.c
+ idtree_random.c base64.c
+ util_str.c util_str_common.c ms_fnmatch.c
+ server_id.c dprintf.c bitmap.c pidfile.c
+ tevent_debug.c memcache.c unix_match.c''',
+ deps='samba-util-core DYNCONFIG close-low-fd tini tiniparser genrand',
+ public_deps='talloc tevent execinfo pthread LIBCRYPTO charset util_setid systemd systemd-daemon',
+ public_headers='debug.h attr.h byteorder.h data_blob.h memory.h safe_string.h time.h talloc_stack.h xfile.h string_wrappers.h idtree.h idtree_random.h blocking.h signal.h substitute.h fault.h genrand.h',
+ header_path= [ ('dlinklist.h samba_util.h', '.'), ('*', 'util') ],
+ local_include=False,
+ vnum='0.0.1',
+ pc_files='samba-util.pc'
+ )
+ bld.SAMBA_LIBRARY('samba-modules',
+ source='modules.c',
+ deps='samba-errors samba-util',
+ local_include=False,
+ private_library=True)
-bld.SAMBA_SUBSYSTEM('UNIX_PRIVS',
- source='unix_privs.c',
- autoproto='unix_privs.h',
- deps='replace talloc',
- local_include=False,
- )
+ bld.SAMBA_LIBRARY('asn1util',
+ source='asn1.c',
+ deps='talloc samba-util',
+ private_library=True,
+ local_include=False)
-bld.SAMBA_LIBRARY('wrap_xattr',
- source='wrap_xattr.c',
- public_deps='attr',
- deps='talloc',
- local_include=False,
- private_library=True
- )
+ bld.SAMBA_SUBSYSTEM('UNIX_PRIVS',
+ source='unix_privs.c',
+ autoproto='unix_privs.h',
+ deps='replace talloc',
+ local_include=False,
+ )
-bld.SAMBA_LIBRARY('UTIL_TDB',
- source='util_tdb.c',
- local_include=False,
- public_deps='tdb talloc',
- private_library=True
- )
-
-bld.SAMBA_SUBSYSTEM('UTIL_TEVENT',
- source='tevent_unix.c tevent_ntstatus.c tevent_werror.c',
- local_include=False,
- public_deps='tevent',
- public_headers='tevent_ntstatus.h tevent_unix.h tevent_werror.h',
- header_path=[ ('*', 'util') ],
- )
-
-
-if bld.env._SAMBA_BUILD_ == 4:
- bld.SAMBA_SUBSYSTEM('util_ldb',
- source='util_ldb.c',
- local_include=False,
- public_deps='ldb',
- public_headers='util_ldb.h'
- )
-
-
-bld.SAMBA_SUBSYSTEM('UTIL_RUNCMD',
- source='util_runcmd.c',
- local_include=False,
- public_deps='tevent'
- )
-
-bld.SAMBA_SUBSYSTEM('UTIL_PW',
- source='util_pw.c',
- local_include=False,
- public_deps='talloc'
- )
-
-
-bld.SAMBA_LIBRARY('tdb-wrap',
- source='tdb_wrap.c',
- deps='tdb talloc samba-util',
- private_library=True,
- local_include=False
- )
+ bld.SAMBA_LIBRARY('util_tdb',
+ source='util_tdb.c',
+ local_include=False,
+ public_deps='tdb talloc',
+ private_library=True
+ )
+ bld.SAMBA_LIBRARY('tevent-util',
+ source='tevent_unix.c tevent_ntstatus.c tevent_werror.c',
+ local_include=False,
+ public_deps='tevent samba-errors',
+ public_headers='tevent_ntstatus.h tevent_unix.h tevent_werror.h',
+ header_path=[ ('*', 'util') ],
+ pc_files=[],
+ vnum='0.0.1'
+ )
+
+ bld.SAMBA_LIBRARY('util_setid',
+ source='setid.c',
+ local_include=False,
+ private_library=True
+ )
+
+ bld.SAMBA_SUBSYSTEM('util_ldb',
+ source='util_ldb.c',
+ local_include=False,
+ public_deps='ldb',
+ public_headers='util_ldb.h'
+ )
+
+
+ bld.SAMBA_SUBSYSTEM('UTIL_RUNCMD',
+ source='util_runcmd.c',
+ local_include=False,
+ public_deps='tevent'
+ )
+
+ bld.SAMBA_SUBSYSTEM('UTIL_PW',
+ source='util_pw.c',
+ local_include=False,
+ public_deps='talloc'
+ )
+
+ bld.SAMBA_LIBRARY('server_id_db',
+ source='server_id_db.c',
+ deps='talloc tdb strv util_tdb tdb-wrap samba-util',
+ local_include=False,
+ private_library=True)