diff options
Diffstat (limited to '')
-rw-r--r-- | source3/wscript_build | 1315 |
1 files changed, 1315 insertions, 0 deletions
diff --git a/source3/wscript_build b/source3/wscript_build new file mode 100644 index 0000000..0d0c44f --- /dev/null +++ b/source3/wscript_build @@ -0,0 +1,1315 @@ +#!/usr/bin/env python + +LIBS='ICONV' + +config_h = "../include/config.h" + +bld.SAMBA_BLDOPTIONS('smbd/build_options.c') + +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''', + deps='CREDENTIALS_CMDLINE', + public_deps=''' + talloc + 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='1.0.0') + +bld.SAMBA3_LIBRARY('gse', + source='librpc/crypto/gse_krb5.c librpc/crypto/gse.c', + deps='krb5samba gensec smbconf 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 + rpc_client/local_np.c + librpc/rpc/dcerpc_helpers.c + ''', + deps=''' + ndr + ndr-standard + RPC_NDR_EPMAPPER + NTLMSSP_COMMON + COMMON_SCHANNEL + LIBCLI_AUTH + LIBTSOCKET + npa_tstream + gse + dcerpc-binding + libsmb + ndr-table + NETLOGON_CREDS_CLI + ''', + 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') + +bld.SAMBA3_SUBSYSTEM('TLDAP', + source=''' + lib/tldap.c + lib/tldap_util.c + lib/tldap_gensec_bind.c + ''', + deps=''' + asn1util + LIBTSOCKET + samba3util + ''') + +bld.SAMBA3_BINARY('test_tldap', + source='lib/test_tldap.c', + deps=''' + asn1util + LIBTSOCKET + samba3util + smbconf + cmocka + ''', + for_selftest=True) + +# 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. +private_pdb_match = [] +private_pdb_match.append('!idmap_init') +private_pdb_match.append('!idmap_sids_to_xids') +private_pdb_match.append('!idmap_xids_to_sids') + +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_ldapsam_init*') +private_pdb_match.append('!pdb_*_init') +private_pdb_match = private_pdb_match + ldapsam_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.28.0') + +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''', + deps=''' + secrets3 + GROUPDB + SERVER_MUTEX + wbclient + LIBCLI_AUTH + flag_mapping + samba-credentials + samba-modules + nscd + ''') + +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'), + private_library=True) + +bld.SAMBA3_SUBSYSTEM('SERVER_MUTEX', + source='lib/server_mutex.c', + deps='talloc') + +# this includes only the low level parse code, not stuff +# that requires knowledge of security contexts +bld.SAMBA3_SUBSYSTEM('REG_PARSE_PRS', + source='registry/reg_parse_prs.c') + +bld.SAMBA3_SUBSYSTEM('REGFIO', + source='registry/regfio.c', + deps='samba-util REG_PARSE_PRS') + +bld.SAMBA_BINARY('test_registry_regfio', + source='registry/tests/test_regfio.c', + deps='cmocka samba3-util smbconf REGFIO', + local_include=False, + for_selftest=True) + +# Do not link against this use 'smbconf' +bld.SAMBA3_SUBSYSTEM('SMBREGISTRY', + source=''' + registry/reg_api.c + registry/reg_dispatcher.c + registry/reg_cachehook.c + registry/reg_objects.c + registry/reg_util_internal.c + lib/util_nttoken.c + registry/reg_backend_db.c + registry/reg_parse_internal.c + registry/reg_parse.c + lib/srprs.c + registry/reg_init_basic.c + ''', + deps=''' + smbd_shim + tdb-wrap3 + NDR_SECURITY + util_tdb + talloc + replace + util_reg + samba-util + samba-security + errors3 + dbwrap + samba3-util + ''') + +# Do not link against this use 'smbconf' +bld.SAMBA3_SUBSYSTEM('REG_SMBCONF', + source=''' + registry/reg_backend_smbconf.c + registry/reg_init_smbconf.c + registry/reg_util_token.c + registry/reg_api_util.c + ''', + deps='SMBREGISTRY') + +bld.SAMBA3_LIBRARY('REG_FULL',private_library=True, + source=''' + registry/reg_backend_printing.c + registry/reg_backend_shares.c + registry/reg_backend_netlogon_params.c + registry/reg_backend_prod_options.c + registry/reg_backend_tcpip_params.c + registry/reg_backend_hkpt_params.c + registry/reg_backend_current_version.c + registry/reg_backend_perflib.c + registry/reg_init_full.c + registry/reg_perfcount.c''', + deps=''' + smbconf + tdb-wrap3 + REG_PARSE_PRS + pdb + ''') + +bld.SAMBA3_LIBRARY('cmdline_contexts', + source='lib/cmdline_contexts.c', + deps='samba3core', + private_library=True) + +bld.SAMBA3_SUBSYSTEM('KRBCLIENT', + source='libads/kerberos.c libads/ads_status.c', + public_deps='krb5samba asn1util k5crypto gssapi LIBTSOCKET CLDAP LIBNMB') + +bld.SAMBA3_SUBSYSTEM('samba3util', + source=''' + lib/system.c + lib/sendfile.c + lib/recvfile.c + lib/time.c + lib/util_sid.c + lib/util_specialsids.c + lib/util_file.c + lib/util.c + lib/util_path.c + lib/util_matching.c + lib/util_procid.c + lib/util_sock.c + lib/util_tsock.c + lib/util_transfer_file.c + lib/util_macstreams.c + ''', + deps=''' + CHARSET3 + ndr + LIBTSOCKET + samba-security + NDR_SECURITY + samba-util + util_tdb + sys_rw + iov_buf + ''') + +if bld.env.with_ctdb: + SAMBA_CLUSTER_SUPPORT_SOURCES=''' + lib/cluster_support.c + lib/dbwrap/dbwrap_ctdb.c + lib/messages_ctdb.c + lib/messages_ctdb_ref.c + lib/ctdbd_conn.c + ''' + SAMBA_CLUSTER_SUPPORT_DEPS=''' + talloc + tevent + tdb + ''' +else: + SAMBA_CLUSTER_SUPPORT_SOURCES=''' + lib/cluster_support.c + lib/ctdb_dummy.c + ''' + SAMBA_CLUSTER_SUPPORT_DEPS=''' + talloc + tevent + ''' + +bld.SAMBA3_LIBRARY('samba-cluster-support', + source=SAMBA_CLUSTER_SUPPORT_SOURCES, + deps=SAMBA_CLUSTER_SUPPORT_DEPS, + allow_undefined_symbols=True, + private_library=True) + +bld.SAMBA3_SUBSYSTEM('TDB_LIB', + source=''' + lib/dbwrap/dbwrap_open.c + lib/dbwrap/dbwrap_watch.c + lib/g_lock.c + ''', + deps=''' + dbwrap + samba-cluster-support + ''') + +bld.SAMBA3_LIBRARY('messages_util', + source='''lib/messages_util.c''', + deps='samba-util', + private_library=True) + +bld.SAMBA3_SUBSYSTEM('samba3core', + source=''' + lib/messages.c + lib/util_cluster.c + lib/id_cache.c + lib/serverid.c + lib/server_id_watch.c + lib/server_id_db_util.c + lib/addrchange.c + ../lib/util/debug_s3.c + lib/dumpcore.c + lib/interface.c + lib/username.c + lib/smbrun.c + lib/wins_srv.c + lib/substitute.c + lib/substitute_generic.c + lib/ms_fnmatch.c + lib/tallocmsg.c + lib/dmallocmsg.c + lib/gencache.c + lib/util_event.c + lib/global_contexts.c + lib/ldap_escape.c + lib/system_smbd.c + lib/audit.c + lib/idmap_cache.c + lib/namemap_cache.c + lib/util_ea.c + lib/background.c + ''', + deps=''' + samba3util + LIBTSOCKET + NDR_MESSAGING + LIBASYNC_REQ + UTIL_PW + SAMBA_VERSION + PTHREADPOOL + interfaces + smbconf + dbwrap + samba3-util + errors3 + server_id_db + messages_util + messages_dgm + talloc_report_printf + access + TDB_LIB + z + ''') + +bld.SAMBA3_LIBRARY('smbd_shim', + source='''lib/smbd_shim.c''', + deps='talloc', + private_library=True) + +bld.SAMBA3_SUBSYSTEM('auth_generic', + source='libsmb/auth_generic.c', + deps='gse gensec') + +bld.SAMBA3_LIBRARY('libsmb', + source=''' + libsmb/clientgen.c + libsmb/cliconnect.c + libsmb/clifile.c + libsmb/clispnego.c + libsmb/clirap.c + libsmb/clierror.c + libsmb/climessage.c + libsmb/clireadwrite.c + libsmb/clilist.c + libsmb/cliprint.c + libsmb/clitrans.c + libsmb/clisecdesc.c + libsmb/clistr.c + libsmb/cliquota.c + libsmb/clifsinfo.c + libsmb/clidfs.c + libsmb/clioplock.c + libsmb/async_smb.c + libsmb/clisymlink.c + libsmb/smbsock_connect.c + libsmb/cli_smb2_fnum.c + ''', + deps=''' + auth_generic + CLDAP + LIBNMB + SPNEGO_PARSE + LIBTSOCKET + KRBCLIENT + NDR_IOCTL + NDR_QUOTA + cli_smb_common + tevent + ''', + private_library=True) + +bld.SAMBA3_SUBSYSTEM('CLDAP', + source='libads/cldap.c', + deps='cli-ldap-common cli_cldap LIBTSOCKET') + +# NOTE: The secrets3 library is a low level library used by several subsystems. +# PLEASE DO NOT make it depend on high level libraries like PDB, if you are +# doing that your design is wrong and needs changing. -SSS +bld.SAMBA3_LIBRARY('secrets3', + source=''' + passdb/secrets.c + passdb/machine_account_secrets.c + passdb/machine_sid.c + passdb/secrets_lsa.c + ''', + deps=''' + NDR_SECRETS + smbconf + samba3util + dbwrap + krb5samba + LIBCLI_AUTH + samba-credentials + ''', + private_library=True) + +bld.SAMBA3_LIBRARY('smbldap', + source='lib/smbldap.c', + deps='ldap lber samba-util smbconf', + enabled=bld.CONFIG_SET("HAVE_LDAP"), + private_library=False, + abi_directory='lib/ABI', + abi_match='smbldap_*', + pc_files=[], + vnum='2.1.0', + public_headers='include/smbldap.h include/smb_ldap.h') + +bld.SAMBA3_LIBRARY('ads', + source=''' + libads/ldap.c + libads/sasl.c + libads/sasl_wrapping.c + libads/krb5_setpw.c + libads/kerberos_util.c + libads/ldap_user.c + libads/ads_struct.c + libads/kerberos_keytab.c + libads/disp_sec.c + libads/ldap_utils.c + libads/ldap_schema.c + libads/util.c + libads/ndr.c + libads/net_ads_setspn.c + ''', + deps=''' + cli-ldap-common + krb5samba + krb5 + ldap + lber + KRBCLIENT + smbconf + LIBNMB + libsmb + DCUTIL + smbldap + trusts_util + ''', + private_library=True) + +bld.SAMBA3_SUBSYSTEM('LIBADS_SERVER', + source='libads/authdata.c', + deps='SERVER_MUTEX ndr-krb5pac krb5samba gssapi') + +bld.SAMBA3_SUBSYSTEM('LIBADS_PRINTER', + source='libads/ldap_printer.c', + deps='samba-util krb5samba') + +# Only smbconf should link against this subsystem, else we will create +# a circular dependency. +bld.SAMBA3_SUBSYSTEM('SMBCONF_PARAM', + source=''' + param/loadparm.c + lib/sharesec.c + lib/ldap_debug_handler.c + lib/util_names.c + ''', + deps=''' + samba-util + PARAM_UTIL + ldap + lber + LOADPARM_CTX + samba3core + param_local.h + param_global.h + cups + ''') + +bld.SAMBA3_LIBRARY('smbconf', + source=''' + lib/smbconf/smbconf_init.c + lib/smbconf/smbconf_reg.c + ''', + deps=''' + LIBSMBCONF + REG_SMBCONF + SAMBA_VERSION + cap + charset + samba-hostconfig + SMBCONF_PARAM + samba-util + talloc + util_reg + ''', + public_headers='../lib/smbconf/smbconf.h', + pc_files=[], + vnum='0.0.1') + +bld.SAMBA3_SUBSYSTEM('sysquotas', + source=''' + lib/sysquotas.c + lib/sysquotas_linux.c + lib/sysquotas_xfs.c + lib/sysquotas_4A.c + lib/sysquotas_4B.c + lib/sysquotas_jfs2.c + lib/sysquotas_nfs.c + ''', + allow_warnings=True, + deps='samba3-util samba-util tirpc') + +NOTIFY_SOURCES='' +NOTIFY_DEPS='' + +if bld.CONFIG_SET("HAVE_INOTIFY"): + NOTIFY_SOURCES += ' smbd/notify_inotify.c' + +if bld.CONFIG_SET('SAMBA_FAM_LIBS'): + NOTIFY_SOURCES += ' smbd/notify_fam.c' + NOTIFY_DEPS += ' ' + bld.CONFIG_GET('SAMBA_FAM_LIBS') + +if bld.CONFIG_SET('WITH_SMB1SERVER'): + SMB1_SOURCES = ''' + smbd/smb1_message.c + smbd/smb1_sesssetup.c + smbd/smb1_lanman.c + smbd/smb1_utils.c + smbd/smb1_aio.c + smbd/smb1_ipc.c + smbd/smb1_negprot.c + smbd/smb1_nttrans.c + smbd/smb1_oplock.c + smbd/smb1_pipes.c + smbd/smb1_reply.c + smbd/smb1_service.c + smbd/smb1_signing.c + smbd/smb1_process.c + smbd/smb1_trans2.c + ''' +else: + SMB1_SOURCES = '' + +bld.SAMBA3_LIBRARY('smbd_base', + source=''' + smbd/server_reload.c + smbd/files.c + smbd/connection.c + smbd/utmp.c + smbd/session.c + smbd/dfree.c + smbd/dir.c + smbd/password.c + smbd/conn_msg.c + smbd/conn_idle.c + smbd/share_access.c + smbd/fileio.c + smbd/smb2_ipc.c + smbd/smb2_nttrans.c + smbd/smb2_pipes.c + smbd/smb2_reply.c + smbd/smb2_trans2.c + smbd/uid.c + smbd/dosmode.c + smbd/filename.c + smbd/open.c + smbd/close.c + smbd/blocking.c + smbd/sec_ctx.c + smbd/srvstr.c + smbd/vfs.c + smbd/perfcount.c + smbd/statcache.c + smbd/seal.c + smbd/posix_acls.c + lib/sysacls.c + smbd/smb2_process.c + smbd/smb2_service.c + smbd/error.c + printing/printspoolss.c + printing/rap_jobid.c + printing/load.c + printing/printer_list.c + lib/sessionid_tdb.c + lib/cleanupdb.c + smbd/fake_file.c + smbd/quotas.c + smbd/ntquotas.c + smbd/msdfs.c + smbd/smb2_aio.c smbd/statvfs.c + smbd/dmapi.c + smbd/smb2_signing.c + smbd/file_access.c + smbd/dnsregister.c smbd/globals.c + smbd/smb2_server.c + smbd/smb2_glue.c + smbd/smb2_negprot.c + smbd/smb2_sesssetup.c + smbd/smb2_tcon.c + smbd/smb2_create.c + smbd/smb2_close.c + smbd/smb2_flush.c + smbd/smb2_read.c + smbd/smb2_write.c + smbd/smb2_lock.c + smbd/smb2_ioctl.c + smbd/smb2_ioctl_dfs.c + smbd/smb2_ioctl_filesys.c + smbd/smb2_ioctl_named_pipe.c + smbd/smb2_ioctl_network_fs.c + smbd/smb2_ioctl_smbtorture.c + smbd/smb2_keepalive.c + smbd/smb2_query_directory.c + smbd/smb2_notify.c + smbd/smb2_getinfo.c + smbd/smb2_setinfo.c + smbd/smb2_break.c + smbd/smb2_posix.c + smbd/smbXsrv_version.c + smbd/smbXsrv_client.c + smbd/smbXsrv_session.c + smbd/smbXsrv_tcon.c + smbd/smbXsrv_open.c + smbd/server_exit.c + smbd/durable.c + smbd/scavenger.c + smbd/mangle.c + smbd/mangle_hash.c + smbd/mangle_hash2.c + smbd/smb2_oplock.c + smbd/oplock_linux.c + smbd/notify.c + smbd/notify_msg.c + smbd/build_options.c + smbd/conn.c + rpc_server/srv_pipe_hnd.c + rpc_server/rpc_ncacn_np.c + ''' + NOTIFY_SOURCES + SMB1_SOURCES, + deps=''' + talloc + tevent + pdb + libsmb + msrpc3 + vfs + vfs_default + vfs_posixacl + inotify + samba3core + param_service + AVAHI + PROFILE + LOCKING + LIBADS_SERVER + LIBAFS + NDR_SMBXSRV + LEASES_DB + LEASES_UTIL + sysquotas + NDR_SMB_ACL + netapi + NDR_IOCTL + notifyd + vfs_acl_common + NDR_QUOTA + GNUTLS_HELPERS + fd_handle + cli_spoolss + ''' + + bld.env['dmapi_lib'] + + bld.env['legacy_quota_libs'] + + NOTIFY_DEPS, + private_library=True) + +bld.SAMBA3_SUBSYSTEM('LOCKING', + source=''' + locking/locking.c + locking/brlock.c + locking/posix.c + locking/share_mode_lock.c + ''', + deps=''' + tdb + talloc + LEASES_DB + LEASES_UTIL + NDR_OPEN_FILES + FNAME_UTIL + fd_handle + ''') + +bld.SAMBA3_SUBSYSTEM('LEASES_DB', + source='locking/leases_db.c', + deps='NDR_LEASES_DB') + +bld.SAMBA3_SUBSYSTEM('LEASES_UTIL', + source='locking/leases_util.c', + deps='NDR_OPEN_FILES') + +if bld.CONFIG_GET("WITH_PROFILE"): + bld.SAMBA3_SUBSYSTEM('PROFILE', + source='profile/profile.c', + deps=''' + samba-util + gnutls + ''') +else: + bld.SAMBA3_SUBSYSTEM('PROFILE', + source='profile/profile_dummy.c', + deps='') + +bld.SAMBA3_SUBSYSTEM('PRINTBASE', + source=''' + printing/notify.c + printing/printing_db.c + ''', + deps=''' + samba-util + tdb + ''') + +bld.SAMBA3_SUBSYSTEM('PRINTBACKEND', + source=''' + printing/printing.c + printing/nt_printing.c + printing/nt_printing_tdb.c + printing/nt_printing_migrate_internal.c + printing/nt_printing_ads.c + printing/queue_process.c + ''', + deps=''' + PRINTBASE + LIBADS_PRINTER + tdb + printing_migrate + ''') + +bld.SAMBA3_LIBRARY('printing_migrate', + source=''' + printing/nt_printing_migrate.c + rpc_client/cli_winreg_spoolss.c + printing/nt_printing_os2.c + ''', + deps=''' + NDR_NTPRINTING + cli_spoolss + RPC_NDR_WINREG + LIBCLI_WINREG + smbconf + ''', + private_library=True) + +bld.SAMBA3_SUBSYSTEM('PRINTING', + source=''' + printing/pcap.c + printing/print_svid.c + printing/print_aix.c + printing/print_cups.c + printing/print_generic.c + printing/lpq_parse.c + printing/print_standard.c + printing/print_iprint.c + ''', + deps=''' + NDR_PRINTCAP + dbwrap + tdb-wrap3 + SMBCONF_PARAM + PRINTBASE + smbd_base + cups + ''') + +bld.SAMBA_BINARY('samba-bgqd', + source='printing/samba-bgqd.c', + deps=''' + samba3core + CMDLINE_S3 + AUTH_COMMON + RPC_SPOOLSS + ''', + install_path='${LIBEXECDIR}/samba') + +bld.SAMBA3_SUBSYSTEM('FNAME_UTIL', + source='lib/filename_util.c', + deps='samba-util') + +bld.SAMBA3_SUBSYSTEM('LIBNET', + source='libnet/libnet_join.c libnet/libnet_join_offline.c', + deps='NDR_LIBNET_JOIN INIT_SAMR net_keytab pdb') + +bld.SAMBA3_LIBRARY('net_keytab', + source='libnet/libnet_keytab.c', + deps='krb5samba ads', + private_library=True) + + +bld.SAMBA3_SUBSYSTEM('LIBNET_DSSYNC', + source=''' + libnet/libnet_dssync.c + libnet/libnet_dssync_passdb.c + libnet/libnet_dssync_keytab.c + ''', + deps=''' + LIBNET + RPC_NDR_DRSUAPI + ''') + +bld.SAMBA3_SUBSYSTEM('LIBEVENTLOG', + source='lib/eventlog/eventlog.c', + deps='NDR_EVENTLOG tdb') + +bld.SAMBA3_SUBSYSTEM('LIBNMB', + source=''' + libsmb/unexpected.c + libsmb/namecache.c + libsmb/nmblib.c + libsmb/clidgram.c + libsmb/namequery.c + libsmb/conncache.c + libads/sitename_cache.c + ''', + deps=''' + LIBTSOCKET + LIBCLI_NETLOGON + samba3util + addns + lmhosts + resolv + ''') + +bld.SAMBA3_SUBSYSTEM('SERVICES', + source=''' + services/svc_spoolss.c + services/svc_rcinit.c + services/svc_winreg_glue.c + services/svc_netlogon.c + services/svc_winreg.c + services/svc_wins.c + ''', + deps='samba-util') + +bld.SAMBA3_SUBSYSTEM('PLAINTEXT_AUTH', + source=''' + auth/pampass.c + auth/pass_check.c + ''', + deps=''' + crypt + pam + PAM_ERRORS + ''') + +bld.SAMBA3_SUBSYSTEM('PASSCHANGE', + source='libsmb/passchange.c', + deps=''' + LIBCLI_SAMR + INIT_LSA + msrpc3 + krb5samba + ''') + +bld.SAMBA3_SUBSYSTEM('SAMBA_VERSION', + source='lib/version.c', + deps='samba-util') + +bld.SAMBA3_SUBSYSTEM('SLCACHE', + source='libsmb/samlogon_cache.c', + deps=''' + samba-util + tdb + ''') + +bld.SAMBA3_SUBSYSTEM('dsgetdcname', + source=''' + libsmb/dsgetdcname.c + ''', + deps=''' + CLDAP + LIBNMB + ''') + +bld.SAMBA3_SUBSYSTEM('DCUTIL', + source=''' + libsmb/namequery_dc.c + ''', + deps=''' + ads + dsgetdcname + msrpc3 + libcli_lsa3 + ''') + +bld.SAMBA3_LIBRARY('trusts_util', + source='libsmb/trusts_util.c', + deps=''' + libcli_netlogon3 + msrpc3 + samba-passdb + ''', + private_library=True) + +bld.SAMBA3_SUBSYSTEM('tdb-wrap3', + source='lib/util_tdb.c', + deps='talloc samba3-util') + +bld.SAMBA3_LIBRARY('samba3-util', + source=''' + lib/util_sec.c + lib/util_str.c + lib/adt_tree.c + lib/util_malloc.c + lib/namearray.c + lib/file_id.c + lib/cbuf.c + lib/per_thread_cwd.c + ''', + deps=''' + samba-util + charset + ''', + private_library=True) + +bld.SAMBA_LIBRARY('xattr_tdb', + source='lib/xattr_tdb.c', + deps='NDR_XATTR dbwrap samba3-util', + private_library=True) + +bld.SAMBA3_LIBRARY('CHARSET3', + source=''' + lib/charcnv.c + lib/fstring.c + ''', + public_deps=''' + ICONV_WRAPPER + charset + ''', + deps=''' + samba-util + samba3-util + ''', + private_library=True) + +bld.SAMBA3_SUBSYSTEM('errors3', + source=''' + libsmb/errormap.c + libsmb/smberr.c + lib/errmap_unix.c + ''', + deps='samba-errors') + +bld.SAMBA3_SUBSYSTEM('LIBCLI_SAMR', + source='rpc_client/cli_samr.c', + deps='RPC_NDR_SAMR INIT_SAMR') + +bld.SAMBA3_LIBRARY('libcli_lsa3', + source='rpc_client/cli_lsarpc.c', + deps='RPC_NDR_LSA INIT_LSA', + private_library=True) + +bld.SAMBA3_LIBRARY('libcli_netlogon3', + source=''' + rpc_client/cli_netlogon.c + rpc_client/util_netlogon.c + ''', + deps=''' + msrpc3 + RPC_NDR_NETLOGON + cliauth + smbconf + NETLOGON_CREDS_CLI''', + private_library=True) + +bld.SAMBA3_LIBRARY('cli_spoolss', + source=''' + rpc_client/cli_spoolss.c + rpc_client/init_spoolss.c + ''', + deps=''' + RPC_NDR_SPOOLSS + smbconf + secrets3 + gensec + ''', + private_library=True) + +bld.SAMBA3_SUBSYSTEM('LIBCLI_WINREG', + source='rpc_client/cli_winreg.c', + deps='RPC_NDR_WINREG') + +bld.SAMBA3_SUBSYSTEM('LIBCLI_WINREG_INTERNAL', + source='rpc_client/cli_winreg_int.c', + deps='LIBCLI_WINREG RPC_SERVER') + +bld.SAMBA3_SUBSYSTEM('RPC_CLIENT_SCHANNEL', + source='rpc_client/cli_pipe_schannel.c', + deps='samba-util krb5samba') + +bld.SAMBA3_SUBSYSTEM('RPCCLI_MDSSVC', + source=''' + rpc_client/cli_mdssvc.c + rpc_client/cli_mdssvc_util.c + ''', + deps='mdssvc RPC_NDR_MDSSVC') + +bld.SAMBA3_SUBSYSTEM('INIT_LSA', + source='rpc_client/init_lsa.c', + deps='samba-util') + +bld.SAMBA3_SUBSYSTEM('INIT_SAMR', + source='rpc_client/init_samr.c', + deps='samba-util GNUTLS_HELPERS') + +bld.SAMBA3_SUBSYSTEM('LIBLSA', + source='lib/lsa.c') + +bld.SAMBA3_SUBSYSTEM('tevent-glib-glue', + source='lib/tevent_glib_glue.c', + deps='glib-2.0', + enabled=bld.CONFIG_SET('WITH_TEVENT_GLIB_GLUE'), +) + +bld.SAMBA3_SUBSYSTEM('ADOUBLE', + source='lib/adouble.c', + deps='STRING_REPLACE') + +bld.SAMBA3_BINARY('test_adouble', + source='lib/test_adouble.c', + deps='smbd_base STRING_REPLACE cmocka', + for_selftest=True) + +bld.SAMBA3_SUBSYSTEM('STRING_REPLACE', + source='lib/string_replace.c') + +bld.SAMBA3_SUBSYSTEM('fd_handle', + source='smbd/fd_handle.c') + +########################## BINARIES ################################# + +bld.SAMBA3_BINARY('smbd/smbd', + source='smbd/server.c smbd/smbd_cleanupd.c', + deps=''' + CMDLINE_S3 + smbd_base + REG_FULL + ''', + install_path='${SBINDIR}') + + +bld.SAMBA3_SUBSYSTEM('TDB_VALIDATE', + source='lib/tdb_validate.c', + deps='samba-util') + + +bld.SAMBA3_BINARY('client/smbclient', + source=''' + client/client.c + client/clitar.c + client/dnsbrowse.c + ''', + deps=''' + talloc + CMDLINE_S3 + smbconf + ndr-standard + SMBREADLINE + libsmb + msrpc3 + RPC_NDR_SRVSVC + cli_smb_common + archive + ''') + +bld.SAMBA3_BINARY('smbspool', + source='client/smbspool.c', + deps=''' + talloc + smbconf + libsmb + samba3core + ''') + +bld.SAMBA3_BINARY('smbspool_krb5_wrapper', + source='client/smbspool_krb5_wrapper.c', + deps=''' + DYNCONFIG + cups + krb5samba + ''', + install_path='${LIBEXECDIR}/samba', + enabled=bld.CONFIG_SET('HAVE_CUPS')) + +bld.SAMBA3_BINARY('smbspool_argv_wrapper', + source='script/tests/smbspool_argv_wrapper.c', + for_selftest=True) + +bld.SAMBA3_BINARY('smbconftort', + source='lib/smbconf/testsuite.c', + deps=''' + talloc + smbconf + CMDLINE_S3 + ''', + for_selftest=True) + +bld.SAMBA3_BINARY('test_mdsparser_es', + source=''' + rpc_server/mdssvc/test_mdsparser_es.c + rpc_server/mdssvc/es_parser.y + rpc_server/mdssvc/es_lexer.l + rpc_server/mdssvc/es_mapping.c + ''', + deps=''' + samba3-util + talloc + smbconf + jansson + cmocka + CMDLINE_S3 + ''', + enabled=bld.env.spotlight_backend_es, + for_selftest=True) + +bld.SAMBA3_BINARY('versiontest', + source='lib/version_test.c', + deps=''' + SAMBA_VERSION + smbconf + ''', + install=False) + +bld.SAMBA3_BINARY('timelimit', + source='script/tests/timelimit.c', + for_selftest=True) + +bld.SAMBA3_BINARY('vlp', + source='printing/tests/vlp.c', + deps=''' + talloc + smbconf + ''', + for_selftest=True) + + +pyrpc_util = bld.pyembed_libname('pyrpc_util') +pytalloc_util = bld.pyembed_libname('pytalloc-util') +bld.SAMBA3_PYTHON('pysmbd', + source='smbd/pysmbd.c', + deps=' '.join(['smbd_base', pyrpc_util, pytalloc_util]), + realname='samba/samba3/smbd.so' + ) + +pycredentials = 'pycredentials' +bld.SAMBA3_PYTHON('pylibsmb', + source='libsmb/pylibsmb.c', + deps='smbclient samba-credentials %s' % pycredentials, + realname='samba/samba3/libsmb_samba_cwrapper.so' + ) + +bld.SAMBA3_PYTHON('pymdscli', + source='rpc_client/py_mdscli.c', + deps=' '.join(['RPCCLI_MDSSVC', pytalloc_util, pyrpc_util]), + realname='samba/samba3/mdscli.so') + +bld.SAMBA3_PYTHON('pys3smbconf', + source='lib/smbconf/pys3smbconf.c', + deps='smbconf', + realname='samba/samba3/smbconf.so') + +bld.SAMBA3_BINARY('spotlight2sparql', + source=''' + rpc_server/mdssvc/sparql_parser_test.c + rpc_server/mdssvc/sparql_parser.y + rpc_server/mdssvc/sparql_lexer.l + rpc_server/mdssvc/sparql_mapping.c''', + deps='samba3-util talloc ' + bld.env['libtracker'], + enabled=bld.env.spotlight_backend_tracker, + install=False) + +bld.SAMBA3_BINARY('spotlight2es', + source=''' + rpc_server/mdssvc/es_parser_test.c + rpc_server/mdssvc/es_parser.y + rpc_server/mdssvc/es_lexer.l + rpc_server/mdssvc/es_mapping.c''', + deps='samba3-util talloc jansson smbconf', + enabled=bld.env.spotlight_backend_es, + install=False) + +bld.SAMBA3_BINARY('tevent_glib_glue_test', + source='lib/tevent_glib_glue_tests.c', + deps=''' + talloc + libsmb + tevent-glib-glue''', + enabled=bld.CONFIG_SET('WITH_TEVENT_GLIB_GLUE'), + for_selftest=True) + +bld.SAMBA3_BINARY('tevent_glib_tracker', + source='utils/async-tracker.c', + deps=''' + talloc + libsmb + CMDLINE_S3 + tevent-glib-glue ''' + bld.env['libtracker'], + enabled=bld.CONFIG_SET('HAVE_TRACKER') and bld.CONFIG_SET('WITH_TEVENT_GLIB_GLUE'), + install=False) + +########################## INCLUDES ################################# + +bld.RECURSE('auth') +bld.RECURSE('libgpo/gpext') +bld.RECURSE('librpc') +bld.RECURSE('librpc/idl') +bld.RECURSE('libsmb') +bld.RECURSE('modules') +bld.RECURSE('param') +bld.RECURSE('passdb') +bld.RECURSE('rpc_server') +bld.RECURSE('script') +bld.RECURSE('winbindd') +bld.RECURSE('../examples/libsmbclient') +bld.RECURSE('../examples/pdb') +bld.RECURSE('../examples/VFS') +bld.RECURSE('../examples/fuse') +bld.RECURSE('../examples/winexe') +bld.RECURSE('lib/netapi/tests') +bld.RECURSE('lib/netapi/examples') +bld.RECURSE('smbd/notifyd') +bld.RECURSE('rpcclient') +bld.RECURSE('utils') +bld.RECURSE('nmbd') +bld.RECURSE('lib/util') +bld.RECURSE('torture') + +bld.ENFORCE_GROUP_ORDERING() +bld.CHECK_PROJECT_RULES() + |