#!/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
                    )

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,
                      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',
                  deps='talloc samba-util-common',
                  private_library=True,
                  local_include=False)


bld.SAMBA_SUBSYSTEM('UNIX_PRIVS',
	source='unix_privs.c',
	autoproto='unix_privs.h',
	deps='replace talloc',
	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_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
                  )