../librpc/gen_ndr/ndr_misc.c
../librpc/gen_ndr/ndr_security.c
../librpc/ndr/ndr_sec_helper.c
- librpc/ndr/ndr_string.c
+ ../librpc/ndr/ndr_string.c
../librpc/ndr/uuid.c
librpc/ndr/util.c
../librpc/gen_ndr/ndr_dcerpc.c'''
LIBTEVENT_SRC0 = ''
-CHARSET_STATIC = ''
-
PTHREADPOOL_SRC = ''
-AUTH_STATIC = ''
-
LIBREPLACE_SRCS = ''
SOCKET_WRAPPER_SRCS = ''
READLINE_SRC = '''lib/readline.c'''
-# Also depends on ${SECRETS_SRC} ${LIBSAMBA_SRC}
-# Be sure to include them into your application
POPT_LIB_SRC = '''lib/popt_common.c'''
PARAM_WITHOUT_REG_SRC = '''param/loadparm.c param/util.c lib/sharesec.c lib/ldap_debug_handler.c'''
libaddns/dnsgss.c libaddns/dnsmarshall.c'''
LIBADDNS_SRC = '''${LIBADDNS_SRC0} ${SOCKET_WRAPPER_SRC}'''
+GPEXT_STATIC = ''
+GPEXT_REGISTRY_SRC = 'libgpo/gpext/registry.c'
+GPEXT_SCRIPTS_SRC = 'libgpo/gpext/scripts.c'
+GPEXT_SECURITY_SRC = 'libgpo/gpext/security.c'
+
GPEXT_SRC = '''../libgpo/gpext/gpext.c ${GPEXT_STATIC}'''
LIBGPO_SRC0 = '''../libgpo/gpo_ldap.c ../libgpo/gpo_ini.c ../libgpo/gpo_util.c
../librpc/ndr/ndr_krb5pac.c
../librpc/gen_ndr/ndr_krb5pac.c'''
-SECRETS_SRC = '''librpc/gen_ndr/ndr_secrets.c'''
-
LIBNBT_SRC = '''../libcli/nbt/nbtname.c
../libcli/netlogon.c
../libcli/ndr_netlogon.c
LIBSMB_ERR_SRC1 = '''../libcli/auth/smbdes.c ../libcli/auth/smbencrypt.c ../libcli/auth/msrpc_parse.c ../libcli/auth/session.c'''
-LIBSMB_ERR_SRC = '''${LIBSMB_ERR_SRC0} ${LIBSMB_ERR_SRC1}
- ${RPC_PARSE_SRC1}
- ${SECRETS_SRC}'''
+LIBSMB_ERR_SRC = '${LIBSMB_ERR_SRC0} ${LIBSMB_ERR_SRC1} ${RPC_PARSE_SRC1}'
LIBSMB_SRC0 = '''
../libcli/auth/ntlm_check.c
LIBCLI_LDAP_NDR_SRC = '''../libcli/ldap/ldap_ndr.c'''
CLDAP_SRC = '''libads/cldap.c
- ../libcli/cldap/cldap.c
+ ../libcli/cldap/cldap.c lib/ldb_compat.c
../lib/util/idtree.c
${LIBCLI_LDAP_MESSAGE_SRC} ${LIBCLI_LDAP_NDR_SRC}'''
#
# registry-related objects
#
-UTIL_REG_SRC = '''lib/util_reg.c'''
+UTIL_REG_SRC = '''../libcli/registry/util_reg.c'''
UTIL_REG_API_SRC = '''lib/util_reg_api.c'''
REG_INIT_BASIC_SRC = '''registry/reg_init_basic.c'''
LIB_EVENTLOG_SRC = '''lib/eventlog/eventlog.c'''
+RPC_STATIC = ''
+
RPC_LSA_SRC = '''rpc_server/srv_lsa_nt.c ../librpc/gen_ndr/srv_lsa.c'''
RPC_NETLOG_SRC = '''rpc_server/srv_netlog_nt.c
PASSDB_GET_SET_SRC = '''passdb/pdb_get_set.c'''
-#FIXME: Hack around the missing AC_MODULE
-PDB_STATIC = 'passdb/pdb_tdb.c'
+PDB_STATIC = ''
+PDB_TDBSAM_SRC = 'passdb/pdb_tdb.c'
+PDB_LDAP_SRC = 'passdb/pdb_ldap.c'
+PDB_ADS_SRC = 'passdb/pdb_ads.c'
+PDB_SMBPASSWD_SRC = 'passdb/pdb_smbpasswd.c'
+PDB_WBC_SAM_SRC = 'passdb/pdb_wbc_sam.c'
-PASSDB_MODULES_SRC = '''passdb/pdb_wbc_sam.c passdb/pdb_ads.c
-passdb/pdb_smbpasswd.c passdb/secrets.c passdb/machine_sid.c'''
-#passdb/pdb_ldap.c passdb/pdb_nds.c'''
+SECRETS_SRC = '''passdb/secrets.c passdb/machine_account_secrets.c
+ passdb/machine_sid.c librpc/gen_ndr/ndr_secrets.c'''
PASSDB_SRC = '''${PASSDB_GET_SET_SRC} passdb/passdb.c passdb/pdb_interface.c
passdb/util_wellknown.c passdb/util_builtin.c passdb/pdb_compat.c
passdb/util_unixsids.c passdb/lookup_sid.c
passdb/login_cache.c ${PDB_STATIC}
- lib/account_pol.c ${PRIVILEGES_SRC} ${PASSDB_MODULES_SRC}
+ passdb/account_pol.c ${PRIVILEGES_SRC}
lib/util_nscd.c lib/winbind_util.c ${SERVER_MUTEX_SRC}'''
#FIXME: lib/winbind_util.c probably is not part of PASSDB_SRC
-
-
-EXTRA_SRC = ''
-
-AUTH_SRC1 = '''${AUTH_BUILTIN_SRC} ${AUTH_DOMAIN_SRC} ${AUTH_SAM_SRC}
-${AUTH_SERVER_SRC} ${AUTH_UNIX_SRC} ${AUTH_WINBIND_SRC}
-${AUTH_WBC_SRC} ${AUTH_SCRIPT_SRC} ${AUTH_NETLOGOND_SRC}'''
-
-DEVEL_HELP_WEIRD_SRC = '''modules/weird.c'''
-CP850_SRC = '''modules/CP850.c'''
-CP437_SRC = '''modules/CP437.c'''
-CHARSET_MACOSXFS_SRC = '''modules/charset_macosxfs.c'''
+CHARSET_STATIC = ''
+CHARSET_WEIRD_SRC = 'modules/weird.c'
+CHARSET_CP850_SRC = 'modules/CP850.c'
+CHARSET_CP437_SRC = 'modules/CP437.c'
+CHARSET_MACOSXFS_SRC = 'modules/charset_macosxfs.c'
GROUPDB_SRC = '''groupdb/mapping.c groupdb/mapping_tdb.c'''
FNAME_UTIL_SRC = '''smbd/filename_util.c'''
+VFS_STATIC = ''
VFS_DEFAULT_SRC = '''modules/vfs_default.c'''
VFS_AUDIT_SRC = '''modules/vfs_audit.c'''
VFS_EXTD_AUDIT_SRC = '''modules/vfs_extd_audit.c'''
modules/onefs_open.c modules/onefs_streams.c modules/onefs_dir.c
modules/onefs_cbrl.c modules/onefs_notify.c modules/onefs_config.c'''
VFS_ONEFS_SHADOW_COPY_SRC = 'modules/vfs_onefs_shadow_copy.c modules/onefs_shadow_copy.c'
-PERFCOUNT_ONEFS_SRC = 'modules/perfcount_onefs.c'
-PERFCOUNT_TEST_SRC = 'modules/perfcount_test.c'
VFS_DIRSORT_SRC = 'modules/vfs_dirsort.c'
VFS_SCANNEDONLY_SRC = 'modules/vfs_scannedonly.c'
VFS_CROSSRENAME_SRC = 'modules/vfs_crossrename.c'
AUTH_SCRIPT_SRC = 'auth/auth_script.c'
AUTH_NETLOGOND_SRC = 'auth/auth_netlogond.c'
-AUTH_SRC = '''${AUTH_SRC1} auth/auth.c ${AUTH_STATIC} auth/auth_util.c auth/token_util.c
+AUTH_STATIC = ''
+AUTH_SRC = '''${AUTH_STATIC} auth/auth.c auth/auth_util.c auth/token_util.c
auth/auth_compat.c auth/auth_ntlmssp.c auth/user_info.c auth/check_samsec.c
auth/server_info.c auth/server_info_sam.c
${PLAINTEXT_AUTH_SRC} ${SLCACHE_SRC} ${DCUTIL_SRC}'''
#FIXME: set IDMAP_STATIC during configuration
IDMAP_STATIC=''
-
IDMAP_SRC = 'winbindd/idmap.c winbindd/idmap_util.c ${IDMAP_STATIC}'
#FIXME: set NSS_INFO_STATIC during configuration
NSS_INFO_STATIC = ''
+NSS_INFO_TEMPLATE_SRC = 'winbindd/nss_info_template.c'
NSS_INFO_SRC = 'winbindd/nss_info.c ${NSS_INFO_STATIC}'
IDMAP_HASH_SRC = '''winbindd/idmap_hash/idmap_hash.c
winbindd/idmap_adex/gc_util.c
winbindd/idmap_adex/domain_util.c'''
+PERFCOUNT_STATIC = ''
+PERFCOUNT_ONEFS_SRC = 'modules/perfcount_onefs.c'
+PERFCOUNT_TEST_SRC = 'modules/perfcount_test.c'
+
WINBINDD_SRC1 = '''winbindd/winbindd.c
winbindd/winbindd_group.c
winbindd/winbindd_util.c
winbindd/winbindd_pam_logoff.c
winbindd/winbindd_pam_chauthtok.c
winbindd/winbindd_pam_auth_crap.c
- winbindd/nss_info_template.c
+ winbindd/winbindd_pam_chng_pswd_auth_crap.c
+ winbindd/winbindd_event.c
auth/token_util.c
auth/check_samsec.c
auth/server_info.c
WINBINDD_SRC = '''${WINBINDD_SRC1}
${LIBMSRPC_SRC} ${LIBMSRPC_GEN_SRC} ${RPC_PARSE_SRC}
- ${PROFILE_SRC} ${SLCACHE_SRC} ${SMBLDAP_SRC}
+ ${PROFILE_SRC} ${SLCACHE_SRC}
${LIBADS_SRC}
${DCUTIL_SRC} ${IDMAP_SRC} ${NSS_INFO_SRC}
${AFS_SRC} ${AFS_SETTOKEN_SRC}
${LIBADS_SERVER_SRC}
${TDB_VALIDATE_SRC}'''
-LDB_COMMON_SRC = '''lib/ldb/common/ldb.c lib/ldb/common/ldb_ldif.c lib/ldb/common/ldb_parse.c
- lib/ldb/common/ldb_msg.c lib/ldb/common/ldb_utf8.c lib/ldb/common/ldb_debug.c
- lib/ldb/common/ldb_modules.c lib/ldb/common/ldb_dn.c lib/ldb/common/ldb_match.c
- lib/ldb/common/ldb_attributes.c lib/ldb/common/attrib_handlers.c
- lib/ldb/common/ldb_controls.c lib/ldb/common/qsort.c'''
-
-LDB_TDB_SRC = '''lib/ldb/ldb_tdb/ldb_tdb.c lib/ldb/ldb_tdb/ldb_pack.c lib/ldb/ldb_tdb/ldb_search.c
- lib/ldb/ldb_tdb/ldb_index.c lib/ldb/ldb_tdb/ldb_cache.c lib/ldb/ldb_tdb/ldb_tdb_wrap.c'''
-
-LDB_MODULES_SRC = '''lib/ldb/modules/operational.c lib/ldb/modules/rdn_name.c
- lib/ldb/modules/objectclass.c lib/ldb/modules/paged_results.c
- lib/ldb/modules/sort.c lib/ldb/modules/asq.c'''
-
-# Todo, check for this during configuration
-LDB_LDAP_SRC = ''
-
-LDB_SRC = '${LDB_COMMON_SRC} ${LDB_TDB_SRC} ${LDB_LDAP_SRC} ${LDB_MODULES_SRC}'
-
-LDB_CMDLINE_SRC = '''${PARAM_SRC} ${LIB_SRC} ${LIB_DUMMY_SRC} ${LIBSMB_ERR_SRC0}
- ${LIBSMB_ERR_SRC1} ${RPC_PARSE_SRC1} ${SECRETS_SRC} ${LDB_SRC}
- lib/ldb/tools/cmdline.c'''
-
-LDBEDIT_SRC = '${LDB_CMDLINE_SRC} lib/ldb/tools/ldbedit.c'
-LDBSEARCH_SRC = '${LDB_CMDLINE_SRC} lib/ldb/tools/ldbsearch.c'
-LDBADD_SRC = '${LDB_CMDLINE_SRC} lib/ldb/tools/ldbadd.c'
-LDBDEL_SRC = '${LDB_CMDLINE_SRC} lib/ldb/tools/ldbdel.c'
-LDBMODIFY_SRC = '${LDB_CMDLINE_SRC} lib/ldb/tools/ldbmodify.c'
-LDBRENAME_SRC = '${LDB_CMDLINE_SRC} lib/ldb/tools/ldbrename.c'
-
LIBNET_SRC = 'libnet/libnet_join.c libnet/libnet_keytab.c librpc/gen_ndr/ndr_libnet_join.c'
LIBSMBCONF_SRC = '''../lib/smbconf/smbconf.c ../lib/smbconf/smbconf_util.c
smbd/smb2_setinfo.c
smbd/smb2_break.c
../libcli/smb/smb2_create_blob.c
- ${MANGLE_SRC} ${VFS_DEFAULT_SRC}'''
+ ${MANGLE_SRC} ${VFS_STATIC}'''
SMBD_SRC_BASE = '''${SMBD_SRC_SRV}
${RPC_SERVER_SRC} ${RPC_PARSE_SRC}
${LIBMSRPC_SRC}
${LIBMSRPC_GEN_SRC} ${AVAHI_SRC} ${LIBADS_SRC}
${LIBADS_SERVER_SRC} ${REG_FULL_SRC}
- ${BUILDOPT_SRC} ${SMBLDAP_SRC}
+ ${BUILDOPT_SRC}
${LIBNET_SRC} ${LIBSMBCONF_SRC}
${RPC_LSA_SRC}
${RPC_NETLOG_SRC} ${RPC_SAMR_SRC}
PRINTING_SRC = '''printing/pcap.c printing/print_svid.c printing/print_aix.c
printing/print_cups.c printing/print_generic.c
- printing/lpq_parse.c printing/load.c
+ printing/lpq_parse.c printing/load.c printing/print_standard.c
printing/print_iprint.c'''
PRINTBASE_SRC = '''printing/notify.c printing/printing_db.c'''
SWAT_SRC = '''${SWAT_SRC1} ${PRINTING_SRC} ${PRINTBASE_SRC}
${LOCKING_SRC}
${PLAINTEXT_AUTH_SRC}
- ${SMBLDAP_SRC} ${RPC_PARSE_SRC} ${LIBMSRPC_GEN_SRC} ${LIBMSRPC_SRC}
+ ${RPC_PARSE_SRC} ${LIBMSRPC_GEN_SRC} ${LIBMSRPC_SRC}
${PASSCHANGE_SRC} ${FNAME_UTIL_SRC}'''
WBINFO_SRC = '../nsswitch/wbinfo.c ${AFS_SETTOKEN_SRC}'
print "SBINDIR=%s" % bld.env.SBINDIR
bld.RECURSE('build')
+bld.RECURSE('../librpc/idl')
+bld.RECURSE('librpc/idl')
+
bld.SAMBA_MKVERSION('include/version.h')
+for prefix in bld.env.MODULE_PREFIXES:
+ static_key = "%s_STATIC" % prefix.upper()
+ shared_key = "%s_SHARED" % prefix.upper()
+
+ # Set up the static modules
+ static_src = locals()[static_key]
+ for module in bld.env[static_key]:
+ static_src += "${%s_SRC} " % module
+ # for some reason static_src doesn't seem to be a reference, so save it
+ # back to the locals
+ locals()[static_key] = static_src
+
+ # Set up subsystems for the shared modules
+ for module in bld.env[shared_key]:
+ bld.SAMBA_SUBSYSTEM(module,
+ source="${%s_SRC}" % module,
+ vars=locals())
+
######################## SUBSYSTEMS #################################
bld.SAMBA_SUBSYSTEM('WBCOMMON',
bld.SAMBA_SUBSYSTEM('PASSDB',
source=PASSDB_SRC,
- deps='GROUPDB TLDAP',
- vars=locals())
-
-bld.SAMBA_SUBSYSTEM('LDB',
- source=LDB_SRC,
- includes='lib',
+ deps='GROUPDB TLDAP SECRETS',
vars=locals())
bld.SAMBA_SUBSYSTEM('PARAM_WITHOUT_REG',
bld.SAMBA_SUBSYSTEM('LIBSMB_ERR',
source=LIBSMB_ERR_SRC,
+ deps='SECRETS SMBLDAP',
vars=locals())
bld.SAMBA_SUBSYSTEM('LIBSAMBA',
deps='LIBSAMBA ZLIB',
vars=locals())
+bld.SAMBA_SUBSYSTEM('SECRETS',
+ source=SECRETS_SRC,
+ vars=locals())
+
+bld.SAMBA_SUBSYSTEM('SMBLDAP',
+ source=SMBLDAP_SRC,
+ deps='ldap lber',
+ vars=locals())
+
########################## BINARIES #################################
bld.SAMBA_BINARY('smbd/smbd',
source=SMBD_SRC,
deps='''tdb DYNCONFIG tevent dl krb5 ldap gssapi gssapi_krb5
- NSS_WRAPPER LIBWBCLIENT crypt nsl cups cap resolv ZLIB PASSDB LDB
+ NSS_WRAPPER LIBWBCLIENT crypt nsl cups cap resolv ZLIB PASSDB
PARAM_WITHOUT_REG LIBS LIBSMB POPT_SAMBA KRBCLIENT''',
- includes='lib',
install_path='${SBINDIR}',
vars=locals())
bld.SAMBA_BINARY('nmbd/nmbd',
source=NMBD_SRC,
deps='''talloc tdb tevent ZLIB cap resolv LIBWBCLIENT dl
- NSS_WRAPPER DYNCONFIG PASSDB LDB PARAM ldap LIB_NONSMBD LIBSMB
+ NSS_WRAPPER DYNCONFIG PASSDB PARAM ldap LIB_NONSMBD LIBSMB
POPT_SAMBA KRBCLIENT''',
- includes='lib ../lib/tdb/include',
install_path='${SBINDIR}',
vars=locals())
bld.SAMBA_BINARY('winbindd/winbindd',
source=WINBINDD_SRC,
deps='''talloc tdb tevent cap dl DYNCONFIG ZLIB NSS_WRAPPER
- LIBWBCLIENT PASSDB ldap resolv LDB PARAM LIB_NONSMBD LIBSMB
+ LIBWBCLIENT PASSDB ldap resolv PARAM LIB_NONSMBD LIBSMB
POPT_SAMBA KRBCLIENT''',
- includes='lib',
- enabled=Options.options.with_winbind,
+ enabled=bld.env.build_winbind,
install_path='${SBINDIR}',
vars=locals())
bld.SAMBA_BINARY('web/swat',
source=SWAT_SRC,
- deps='''talloc tevent DYNCONFIG LIBS LIBSMB LIBWBCLIENT PARAM
- LIB_NONSMBD resolv LDB PASSDB POPT_SAMBA KRBCLIENT''',
- includes='lib',
- enabled=Options.options.with_swat,
+ deps='''talloc tevent cap DYNCONFIG LIBS LIBSMB LIBWBCLIENT PARAM
+ LIB_NONSMBD resolv PASSDB POPT_SAMBA KRBCLIENT''',
+ enabled=bld.env.build_swat,
install_path='${SBINDIR}',
vars=locals())
deps='''talloc LIBWBCLIENT DYNCONFIG tevent cap
NSS_WRAPPER ASN1_UTIL LIBTSOCKET PASSDB ldap PARAM LIB_NONSMBD
LIBSAMBA POPT_SAMBA''',
- includes='lib ../lib/tdb/include',
vars=locals())
bld.SAMBA_BINARY('testparm',
bld.SAMBA_BINARY('eventlogadm',
source=EVTLOGADM_SRC,
- deps='''talloc tevent POPT_SAMBA DYNCONFIG LIBS PARAM
+ deps='''talloc tevent cap POPT_SAMBA DYNCONFIG LIBS PARAM
LIB_NONSMBD LIBSMB_ERR PASSDB LIBWBCLIENT''',
vars=locals())