summaryrefslogtreecommitdiffstats
path: root/source3/wscript_build
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--source3/wscript_build1315
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()
+