#!/usr/bin/env python
from samba_utils import *
import samba_version, samba3
LIBS='ICONV'
config_h = "../include/config.h"
bld.SAMBA_BLDOPTIONS('smbd/build_options.c')
t = bld.SAMBA_GENERATOR('build_env.h',
source='script/build_env.sh',
target='include/build_env.h',
rule='${SRC} ${SRCDIR} ${BUILDDIR} ${CC} > ${TGT}')
# todo: work out what is really wanted here
t.env.SRCDIR = bld.path.abspath()
t.env.BUILDDIR = bld.path.abspath()
bld.SETUP_BUILD_GROUPS()
######################## SUBSYSTEMS #################################
bld.SAMBA3_LIBRARY('netapi',
source='''lib/netapi/netapi.c
lib/netapi/cm.c
lib/netapi/libnetapi.c
lib/netapi/joindomain.c
lib/netapi/serverinfo.c
lib/netapi/wkstainfo.c
lib/netapi/getdc.c
lib/netapi/user.c
lib/netapi/group.c
lib/netapi/localgroup.c
lib/netapi/samr.c
lib/netapi/sid.c
lib/netapi/share.c
lib/netapi/file.c
lib/netapi/shutdown.c
lib/netapi/netlogon.c''',
public_deps='''
talloc
util_cmdline
msrpc3
ads
NDR_LIBNETAPI
LIBNET
RPC_CLIENT_SCHANNEL
libcli_netlogon3
LIBCLI_SAMR
INIT_SAMR
auth
''',
public_headers='../source3/lib/netapi/netapi.h',
pc_files='libnet/netapi.pc',
vnum='0')
bld.SAMBA3_LIBRARY('gse',
source='librpc/crypto/gse_krb5.c librpc/crypto/gse.c',
deps='krb5samba gensec param KRBCLIENT secrets3',
private_library=True)
bld.SAMBA3_LIBRARY('msrpc3',
source='''rpc_client/cli_pipe.c
rpc_client/rpc_transport_np.c
rpc_client/rpc_transport_sock.c
rpc_client/rpc_transport_tstream.c
librpc/rpc/dcerpc_helpers.c''',
deps='''ndr ndr-standard
RPC_NDR_EPMAPPER NTLMSSP_COMMON COMMON_SCHANNEL LIBCLI_AUTH
LIBTSOCKET gse dcerpc-binding
libsmb ndr-table NETLOGON_CREDS_CLI
''',
private_library=True)
bld.SAMBA3_LIBRARY('gpo',
source='''../libgpo/gpo_ldap.c
../libgpo/gpo_ini.c
../libgpo/gpo_util.c
../libgpo/gpo_fetch.c
libgpo/gpo_filesync.c
../libgpo/gpo_sec.c
libgpo/gpo_reg.c''',
deps='talloc ads TOKEN_UTIL gpext auth',
private_library=True)
bld.SAMBA3_SUBSYSTEM('AVAHI',
source='lib/avahi.c smbd/avahi_register.c',
deps='avahi-common avahi-client',
enabled=bld.env.with_avahi)
bld.SAMBA3_SUBSYSTEM('GROUPDB',
source='groupdb/mapping.c groupdb/mapping_tdb.c',
deps='tdb_compat')
bld.SAMBA3_SUBSYSTEM('TLDAP',
source='''lib/tldap.c
lib/tldap_util.c
lib/util_tsock.c''',
deps='asn1util LIBTSOCKET')
# libpdb.so should not expose internal symbols that are only usable
# to the statically linked modules that are merged into libpdb.
# Note that we always filter these symbols out in libpdb, even
# when modules are not linked statically. In the latter case
# symbols will not be present in the libpdb anyway so no hurt is
# done to the version script.
static_pdb_match = ['tdbsam', 'smbpasswd', 'wbc_sam']
private_pdb_match = []
# AD DC module when linked statically will pull in few source4/winbind
# dependencies which are not used outside AD DC module
static_pdb_match.append('samba_dsdb')
private_pdb_match.append('!idmap_init')
private_pdb_match.append('!idmap_sids_to_xids')
private_pdb_match.append('!idmap_xids_to_sids')
# ldap module is actually three modules merged together: ldapsam, ipa, and nds
static_pdb_match = static_pdb_match + ['ldap', 'ipa', 'nds']
ldapsam_pdb_match = ['!priv2ld', '!smbldap_search_domain_info',
'!ldapsam_*', '!groupmap_attr_list*', '!get_userattr_list',
'!dominfo_attr_list', '!get_attr_key2string',
'!sidmap_attr_list', '!attrib_map_*', '!idpool_attr_list',
'!get_attr_list']
private_pdb_match.append('!pdb_nds_*')
private_pdb_match.append('!pdb_init_ldapsam')
private_pdb_match.append('!pdb_ldapsam_init*')
private_pdb_match = private_pdb_match + ldapsam_pdb_match
private_pdb_match = private_pdb_match + map(lambda x: '!pdb_%s_init' % x, static_pdb_match)
bld.SAMBA3_LIBRARY('samba-passdb',
source='',
deps='pdb',
private_library=False,
grouping_library=True,
pc_files=[],
public_headers_install=True,
public_headers='''
include/passdb.h
passdb/machine_sid.h
passdb/lookup_sid.h''',
abi_match=private_pdb_match,
abi_directory='passdb/ABI',
vnum='0.24.1')
bld.SAMBA3_SUBSYSTEM('pdb',
source='''passdb/pdb_get_set.c
passdb/passdb.c
lib/util_wellknown.c
lib/util_builtin.c
passdb/pdb_compat.c
lib/util_sid_passdb.c
lib/util_unixsids.c
passdb/lookup_sid.c
passdb/login_cache.c
passdb/account_pol.c
lib/privileges.c
lib/util_nscd.c
lib/winbind_util.c
passdb/pdb_util.c
passdb/pdb_interface.c
passdb/pdb_secrets.c
passdb/pdb_unixid.c''',
deps='secrets3 GROUPDB SERVER_MUTEX wbclient LIBCLI_AUTH flag_mapping samba-credentials')
bld.SAMBA3_LIBRARY('smbldaphelper',
source='passdb/pdb_ldap_schema.c passdb/pdb_ldap_util.c',
deps='smbldap secrets3',
allow_undefined_symbols=True,
enabled=bld.CONFIG_SET('HAVE_LDAP'),
|