1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00
samba-mirror/source3/wscript_build

1294 lines
45 KiB
Plaintext
Raw Normal View History

#!/usr/bin/env python
2010-03-25 15:58:35 +03:00
LIBS='ICONV'
config_h = "../include/config.h"
bld.SAMBA_BLDOPTIONS('smbd/build_options.c')
bld.SETUP_BUILD_GROUPS()
2010-04-18 11:30:59 +04:00
######################## 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',
2012-01-24 20:44:32 +04:00
public_deps='''
talloc
msrpc3
ads
NDR_LIBNETAPI
LIBNET
RPC_CLIENT_SCHANNEL
libcli_netlogon3
LIBCLI_SAMR
INIT_SAMR
auth
2012-01-24 20:44:32 +04:00
''',
public_headers='../source3/lib/netapi/netapi.h',
pc_files='libnet/netapi.pc',
vnum='1.0.0')
2010-05-11 12:30:25 +04:00
bld.SAMBA3_LIBRARY('gse',
source='librpc/crypto/gse_krb5.c librpc/crypto/gse.c',
deps='krb5samba gensec smbconf KRBCLIENT secrets3',
private_library=True)
2011-05-14 23:54:57 +04:00
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
''',
2011-05-14 23:54:57 +04:00
private_library=True)
bld.SAMBA3_SUBSYSTEM('AVAHI',
source='''
lib/avahi.c
smbd/avahi_register.c
''',
deps='''
avahi-common
avahi-client
''',
2010-05-28 17:56:32 +04:00
enabled=bld.env.with_avahi)
bld.SAMBA3_SUBSYSTEM('GROUPDB',
source='''
groupdb/mapping.c
groupdb/mapping_tdb.c
''',
deps='tdb')
2010-04-18 11:30:59 +04:00
bld.SAMBA3_SUBSYSTEM('TLDAP',
source='''
lib/tldap.c
lib/tldap_util.c
lib/tldap_gensec_bind.c
''',
deps='''
asn1util
LIBTSOCKET
samba3util
''')
2010-04-18 11:30:59 +04:00
bld.SAMBA3_BINARY('test_tldap',
source='lib/test_tldap.c',
deps='''
asn1util
LIBTSOCKET
samba3util
smbconf
cmocka
''',
build: Do not build selftest binaries for builds without --enable-selftest Add new for_selftest option to SAMBA_BINARY() and SAMBA3_BINARY() This allows us to be much more consistent (at least in the core Samba) and documents clearly why the binary should not be installed. Not modified are - test_lp_load - notifyd-tests - gendrandperf - test* from examples/libsmbclient - dbwrap_torture - split_tokens - locktest2 - msgtest - msg_sink - msg_source - versiontest - rpc_open_tcp - test_headers As these are not tested in selftest so any change would also be untested. Of course they probably should be added in a different MR. Also not modified (because they are not tests, nor part of the build system) are: - smb2mount - notifydd - log2pacp - debug2html - smbfilter - destroy_netlogon_creds_cli - spotlight2* - tevent_glib_tracker These do however appear to be untested. For now, the source4 forked client tools are left unchanged: - smbclient4 - nmblookup4 Finally, the heimdal binaries are left as install=False as they are either part of the build system or end-user tools that we just don't want to install. These are however tested. The motivation is commit like c34ec003b7d45aa4196ff93a0ac29694b25e5309 and da87fa998ab71328f30bcdf5b41aee8675aee48a, which are both totally correct but are not needed if the selftest is not run on MacOS. There are likely other platforms or build environments where building our test binaries is more pain than valuable, see for example also https://lists.samba.org/archive/samba/2019-November/227137.html Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Isaac Boukris <iboukris@samba.org> Autobuild-User(master): Isaac Boukris <iboukris@samba.org> Autobuild-Date(master): Fri Nov 22 11:48:59 UTC 2019 on sn-devel-184
2019-11-22 00:06:57 +03:00
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
''')
2010-04-18 11:30:59 +04:00
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,
build: Do not build selftest binaries for builds without --enable-selftest Add new for_selftest option to SAMBA_BINARY() and SAMBA3_BINARY() This allows us to be much more consistent (at least in the core Samba) and documents clearly why the binary should not be installed. Not modified are - test_lp_load - notifyd-tests - gendrandperf - test* from examples/libsmbclient - dbwrap_torture - split_tokens - locktest2 - msgtest - msg_sink - msg_source - versiontest - rpc_open_tcp - test_headers As these are not tested in selftest so any change would also be untested. Of course they probably should be added in a different MR. Also not modified (because they are not tests, nor part of the build system) are: - smb2mount - notifydd - log2pacp - debug2html - smbfilter - destroy_netlogon_creds_cli - spotlight2* - tevent_glib_tracker These do however appear to be untested. For now, the source4 forked client tools are left unchanged: - smbclient4 - nmblookup4 Finally, the heimdal binaries are left as install=False as they are either part of the build system or end-user tools that we just don't want to install. These are however tested. The motivation is commit like c34ec003b7d45aa4196ff93a0ac29694b25e5309 and da87fa998ab71328f30bcdf5b41aee8675aee48a, which are both totally correct but are not needed if the selftest is not run on MacOS. There are likely other platforms or build environments where building our test binaries is more pain than valuable, see for example also https://lists.samba.org/archive/samba/2019-November/227137.html Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Isaac Boukris <iboukris@samba.org> Autobuild-User(master): Isaac Boukris <iboukris@samba.org> Autobuild-Date(master): Fri Nov 22 11:48:59 UTC 2019 on sn-devel-184
2019-11-22 00:06:57 +03:00
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
''')
2010-10-20 04:17:41 +04:00
# 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')
2010-10-20 04:17:41 +04:00
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
''')
2010-10-20 04:17:41 +04:00
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)
2010-05-11 19:11:41 +04:00
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')
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')
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/ipc.c
smbd/lanman.c
smbd/negprot.c
smbd/message.c
smbd/nttrans.c
smbd/pipes.c
smbd/reply.c
smbd/sesssetup.c
smbd/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/process.c
smbd/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/aio.c smbd/statvfs.c
smbd/dmapi.c
smbd/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/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/oplock.c
smbd/oplock_linux.c
smbd/notify.c
smbd/notify_msg.c
smbd/build_options.c
smbd/smb1_utils.c
smbd/conn.c
rpc_server/srv_pipe_hnd.c
rpc_server/rpc_ncacn_np.c
''' + NOTIFY_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)
2011-05-30 11:42:06 +04:00
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)
2011-07-25 23:23:31 +04:00
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')
2010-04-18 11:30:59 +04:00
########################## 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
''')
2010-05-26 16:09:39 +04:00
bld.SAMBA3_BINARY('smbspool',
source='client/smbspool.c',
deps='''
talloc
smbconf
libsmb
samba3core
''')
2010-04-12 01:01:29 +04:00
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',
build: Do not build selftest binaries for builds without --enable-selftest Add new for_selftest option to SAMBA_BINARY() and SAMBA3_BINARY() This allows us to be much more consistent (at least in the core Samba) and documents clearly why the binary should not be installed. Not modified are - test_lp_load - notifyd-tests - gendrandperf - test* from examples/libsmbclient - dbwrap_torture - split_tokens - locktest2 - msgtest - msg_sink - msg_source - versiontest - rpc_open_tcp - test_headers As these are not tested in selftest so any change would also be untested. Of course they probably should be added in a different MR. Also not modified (because they are not tests, nor part of the build system) are: - smb2mount - notifydd - log2pacp - debug2html - smbfilter - destroy_netlogon_creds_cli - spotlight2* - tevent_glib_tracker These do however appear to be untested. For now, the source4 forked client tools are left unchanged: - smbclient4 - nmblookup4 Finally, the heimdal binaries are left as install=False as they are either part of the build system or end-user tools that we just don't want to install. These are however tested. The motivation is commit like c34ec003b7d45aa4196ff93a0ac29694b25e5309 and da87fa998ab71328f30bcdf5b41aee8675aee48a, which are both totally correct but are not needed if the selftest is not run on MacOS. There are likely other platforms or build environments where building our test binaries is more pain than valuable, see for example also https://lists.samba.org/archive/samba/2019-November/227137.html Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Isaac Boukris <iboukris@samba.org> Autobuild-User(master): Isaac Boukris <iboukris@samba.org> Autobuild-Date(master): Fri Nov 22 11:48:59 UTC 2019 on sn-devel-184
2019-11-22 00:06:57 +03:00
for_selftest=True)
bld.SAMBA3_BINARY('smbconftort',
source='lib/smbconf/testsuite.c',
deps='''
talloc
smbconf
CMDLINE_S3
''',
build: Do not build selftest binaries for builds without --enable-selftest Add new for_selftest option to SAMBA_BINARY() and SAMBA3_BINARY() This allows us to be much more consistent (at least in the core Samba) and documents clearly why the binary should not be installed. Not modified are - test_lp_load - notifyd-tests - gendrandperf - test* from examples/libsmbclient - dbwrap_torture - split_tokens - locktest2 - msgtest - msg_sink - msg_source - versiontest - rpc_open_tcp - test_headers As these are not tested in selftest so any change would also be untested. Of course they probably should be added in a different MR. Also not modified (because they are not tests, nor part of the build system) are: - smb2mount - notifydd - log2pacp - debug2html - smbfilter - destroy_netlogon_creds_cli - spotlight2* - tevent_glib_tracker These do however appear to be untested. For now, the source4 forked client tools are left unchanged: - smbclient4 - nmblookup4 Finally, the heimdal binaries are left as install=False as they are either part of the build system or end-user tools that we just don't want to install. These are however tested. The motivation is commit like c34ec003b7d45aa4196ff93a0ac29694b25e5309 and da87fa998ab71328f30bcdf5b41aee8675aee48a, which are both totally correct but are not needed if the selftest is not run on MacOS. There are likely other platforms or build environments where building our test binaries is more pain than valuable, see for example also https://lists.samba.org/archive/samba/2019-November/227137.html Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Isaac Boukris <iboukris@samba.org> Autobuild-User(master): Isaac Boukris <iboukris@samba.org> Autobuild-Date(master): Fri Nov 22 11:48:59 UTC 2019 on sn-devel-184
2019-11-22 00:06:57 +03:00
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,
build: Do not build selftest binaries for builds without --enable-selftest Add new for_selftest option to SAMBA_BINARY() and SAMBA3_BINARY() This allows us to be much more consistent (at least in the core Samba) and documents clearly why the binary should not be installed. Not modified are - test_lp_load - notifyd-tests - gendrandperf - test* from examples/libsmbclient - dbwrap_torture - split_tokens - locktest2 - msgtest - msg_sink - msg_source - versiontest - rpc_open_tcp - test_headers As these are not tested in selftest so any change would also be untested. Of course they probably should be added in a different MR. Also not modified (because they are not tests, nor part of the build system) are: - smb2mount - notifydd - log2pacp - debug2html - smbfilter - destroy_netlogon_creds_cli - spotlight2* - tevent_glib_tracker These do however appear to be untested. For now, the source4 forked client tools are left unchanged: - smbclient4 - nmblookup4 Finally, the heimdal binaries are left as install=False as they are either part of the build system or end-user tools that we just don't want to install. These are however tested. The motivation is commit like c34ec003b7d45aa4196ff93a0ac29694b25e5309 and da87fa998ab71328f30bcdf5b41aee8675aee48a, which are both totally correct but are not needed if the selftest is not run on MacOS. There are likely other platforms or build environments where building our test binaries is more pain than valuable, see for example also https://lists.samba.org/archive/samba/2019-November/227137.html Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Isaac Boukris <iboukris@samba.org> Autobuild-User(master): Isaac Boukris <iboukris@samba.org> Autobuild-Date(master): Fri Nov 22 11:48:59 UTC 2019 on sn-devel-184
2019-11-22 00:06:57 +03:00
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',
build: Do not build selftest binaries for builds without --enable-selftest Add new for_selftest option to SAMBA_BINARY() and SAMBA3_BINARY() This allows us to be much more consistent (at least in the core Samba) and documents clearly why the binary should not be installed. Not modified are - test_lp_load - notifyd-tests - gendrandperf - test* from examples/libsmbclient - dbwrap_torture - split_tokens - locktest2 - msgtest - msg_sink - msg_source - versiontest - rpc_open_tcp - test_headers As these are not tested in selftest so any change would also be untested. Of course they probably should be added in a different MR. Also not modified (because they are not tests, nor part of the build system) are: - smb2mount - notifydd - log2pacp - debug2html - smbfilter - destroy_netlogon_creds_cli - spotlight2* - tevent_glib_tracker These do however appear to be untested. For now, the source4 forked client tools are left unchanged: - smbclient4 - nmblookup4 Finally, the heimdal binaries are left as install=False as they are either part of the build system or end-user tools that we just don't want to install. These are however tested. The motivation is commit like c34ec003b7d45aa4196ff93a0ac29694b25e5309 and da87fa998ab71328f30bcdf5b41aee8675aee48a, which are both totally correct but are not needed if the selftest is not run on MacOS. There are likely other platforms or build environments where building our test binaries is more pain than valuable, see for example also https://lists.samba.org/archive/samba/2019-November/227137.html Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Isaac Boukris <iboukris@samba.org> Autobuild-User(master): Isaac Boukris <iboukris@samba.org> Autobuild-Date(master): Fri Nov 22 11:48:59 UTC 2019 on sn-devel-184
2019-11-22 00:06:57 +03:00
for_selftest=True)
bld.SAMBA3_BINARY('vlp',
source='printing/tests/vlp.c',
deps='''
talloc
smbconf
''',
build: Do not build selftest binaries for builds without --enable-selftest Add new for_selftest option to SAMBA_BINARY() and SAMBA3_BINARY() This allows us to be much more consistent (at least in the core Samba) and documents clearly why the binary should not be installed. Not modified are - test_lp_load - notifyd-tests - gendrandperf - test* from examples/libsmbclient - dbwrap_torture - split_tokens - locktest2 - msgtest - msg_sink - msg_source - versiontest - rpc_open_tcp - test_headers As these are not tested in selftest so any change would also be untested. Of course they probably should be added in a different MR. Also not modified (because they are not tests, nor part of the build system) are: - smb2mount - notifydd - log2pacp - debug2html - smbfilter - destroy_netlogon_creds_cli - spotlight2* - tevent_glib_tracker These do however appear to be untested. For now, the source4 forked client tools are left unchanged: - smbclient4 - nmblookup4 Finally, the heimdal binaries are left as install=False as they are either part of the build system or end-user tools that we just don't want to install. These are however tested. The motivation is commit like c34ec003b7d45aa4196ff93a0ac29694b25e5309 and da87fa998ab71328f30bcdf5b41aee8675aee48a, which are both totally correct but are not needed if the selftest is not run on MacOS. There are likely other platforms or build environments where building our test binaries is more pain than valuable, see for example also https://lists.samba.org/archive/samba/2019-November/227137.html Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Isaac Boukris <iboukris@samba.org> Autobuild-User(master): Isaac Boukris <iboukris@samba.org> Autobuild-Date(master): Fri Nov 22 11:48:59 UTC 2019 on sn-devel-184
2019-11-22 00:06:57 +03:00
for_selftest=True)
2010-09-29 10:48:49 +04:00
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_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'),
build: Do not build selftest binaries for builds without --enable-selftest Add new for_selftest option to SAMBA_BINARY() and SAMBA3_BINARY() This allows us to be much more consistent (at least in the core Samba) and documents clearly why the binary should not be installed. Not modified are - test_lp_load - notifyd-tests - gendrandperf - test* from examples/libsmbclient - dbwrap_torture - split_tokens - locktest2 - msgtest - msg_sink - msg_source - versiontest - rpc_open_tcp - test_headers As these are not tested in selftest so any change would also be untested. Of course they probably should be added in a different MR. Also not modified (because they are not tests, nor part of the build system) are: - smb2mount - notifydd - log2pacp - debug2html - smbfilter - destroy_netlogon_creds_cli - spotlight2* - tevent_glib_tracker These do however appear to be untested. For now, the source4 forked client tools are left unchanged: - smbclient4 - nmblookup4 Finally, the heimdal binaries are left as install=False as they are either part of the build system or end-user tools that we just don't want to install. These are however tested. The motivation is commit like c34ec003b7d45aa4196ff93a0ac29694b25e5309 and da87fa998ab71328f30bcdf5b41aee8675aee48a, which are both totally correct but are not needed if the selftest is not run on MacOS. There are likely other platforms or build environments where building our test binaries is more pain than valuable, see for example also https://lists.samba.org/archive/samba/2019-November/227137.html Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Isaac Boukris <iboukris@samba.org> Autobuild-User(master): Isaac Boukris <iboukris@samba.org> Autobuild-Date(master): Fri Nov 22 11:48:59 UTC 2019 on sn-devel-184
2019-11-22 00:06:57 +03:00
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)
2010-04-18 16:43:01 +04:00
########################## INCLUDES #################################
2010-04-18 11:30:59 +04:00
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()