s3-waf: Add winbindd to its own wscript_build file (already exists)
[Samba.git] / source3 / wscript_build
blobee5337aa269955830c70831a7732b9a05bfaaa23
1 #!/usr/bin/env python
3 from samba_utils import *
4 import samba_version, samba3
6 LIBS='ICONV'
8 config_h = "../include/config.h"
10 bld.SAMBA_BLDOPTIONS('smbd/build_options.c')
12 t = bld.SAMBA_GENERATOR('build_env.h',
13 source='script/build_env.sh',
14 target='include/build_env.h',
15 rule='${SRC} ${SRCDIR} ${BUILDDIR} ${CC} > ${TGT}')
16 # todo: work out what is really wanted here
17 t.env.SRCDIR = bld.path.abspath()
18 t.env.BUILDDIR = bld.path.abspath()
20 bld.SETUP_BUILD_GROUPS()
22 ######################## SUBSYSTEMS #################################
24 bld.SAMBA3_LIBRARY('netapi',
25 source='''lib/netapi/netapi.c
26 lib/netapi/cm.c
27 lib/netapi/libnetapi.c
28 lib/netapi/joindomain.c
29 lib/netapi/serverinfo.c
30 lib/netapi/wkstainfo.c
31 lib/netapi/getdc.c
32 lib/netapi/user.c
33 lib/netapi/group.c
34 lib/netapi/localgroup.c
35 lib/netapi/samr.c
36 lib/netapi/sid.c
37 lib/netapi/share.c
38 lib/netapi/file.c
39 lib/netapi/shutdown.c
40 lib/netapi/netlogon.c''',
41 public_deps='''
42 talloc
43 util_cmdline
44 msrpc3
45 ads
46 NDR_LIBNETAPI
47 LIBNET
48 RPC_CLIENT_SCHANNEL
49 libcli_netlogon3
50 LIBCLI_SAMR
51 INIT_SAMR
52 auth
53 ''',
54 public_headers='../source3/lib/netapi/netapi.h',
55 pc_files='libnet/netapi.pc',
56 vnum='0')
58 bld.SAMBA3_LIBRARY('gse',
59 source='librpc/crypto/gse_krb5.c librpc/crypto/gse.c',
60 deps='krb5samba gensec param KRBCLIENT secrets3',
61 private_library=True)
63 bld.SAMBA3_LIBRARY('msrpc3',
64 source='''rpc_client/cli_pipe.c
65 rpc_client/rpc_transport_np.c
66 rpc_client/rpc_transport_sock.c
67 rpc_client/rpc_transport_tstream.c
68 librpc/rpc/dcerpc_helpers.c''',
69 deps='''ndr ndr-standard
70 RPC_NDR_EPMAPPER NTLMSSP_COMMON COMMON_SCHANNEL LIBCLI_AUTH
71 LIBTSOCKET gse dcerpc-binding
72 libsmb ndr-table NETLOGON_CREDS_CLI
73 ''',
74 private_library=True)
76 bld.SAMBA3_LIBRARY('gpo',
77 source='''../libgpo/gpo_ldap.c
78 ../libgpo/gpo_ini.c
79 ../libgpo/gpo_util.c
80 ../libgpo/gpo_fetch.c
81 libgpo/gpo_filesync.c
82 ../libgpo/gpo_sec.c
83 libgpo/gpo_reg.c''',
84 deps='talloc ads TOKEN_UTIL gpext auth',
85 private_library=True)
87 bld.SAMBA3_SUBSYSTEM('AVAHI',
88 source='lib/avahi.c smbd/avahi_register.c',
89 deps='avahi-common avahi-client',
90 enabled=bld.env.with_avahi)
92 bld.SAMBA3_SUBSYSTEM('GROUPDB',
93 source='groupdb/mapping.c groupdb/mapping_tdb.c',
94 deps='tdb')
96 bld.SAMBA3_SUBSYSTEM('TLDAP',
97 source='''lib/tldap.c
98 lib/tldap_util.c
99 lib/tldap_gensec_bind.c
100 ''',
101 deps='asn1util LIBTSOCKET samba3util')
103 # libpdb.so should not expose internal symbols that are only usable
104 # to the statically linked modules that are merged into libpdb.
105 # Note that we always filter these symbols out in libpdb, even
106 # when modules are not linked statically. In the latter case
107 # symbols will not be present in the libpdb anyway so no hurt is
108 # done to the version script.
109 private_pdb_match = []
110 private_pdb_match.append('!idmap_init')
111 private_pdb_match.append('!idmap_sids_to_xids')
112 private_pdb_match.append('!idmap_xids_to_sids')
114 ldapsam_pdb_match = ['!priv2ld', '!smbldap_search_domain_info',
115 '!ldapsam_*', '!groupmap_attr_list*', '!get_userattr_list',
116 '!dominfo_attr_list', '!get_attr_key2string',
117 '!sidmap_attr_list', '!attrib_map_*', '!idpool_attr_list',
118 '!get_attr_list']
119 private_pdb_match.append('!pdb_nds_*')
120 private_pdb_match.append('!pdb_ldapsam_init*')
121 private_pdb_match.append('!pdb_*_init')
122 private_pdb_match = private_pdb_match + ldapsam_pdb_match
124 bld.SAMBA3_LIBRARY('samba-passdb',
125 source='',
126 deps='pdb',
127 private_library=False,
128 grouping_library=True,
129 pc_files=[],
130 public_headers_install=True,
131 public_headers='''
132 include/passdb.h
133 passdb/machine_sid.h
134 passdb/lookup_sid.h''',
135 abi_match=private_pdb_match,
136 abi_directory='passdb/ABI',
137 vnum='0.25.0')
139 bld.SAMBA3_SUBSYSTEM('pdb',
140 source='''passdb/pdb_get_set.c
141 passdb/passdb.c
142 lib/util_wellknown.c
143 lib/util_builtin.c
144 passdb/pdb_compat.c
145 lib/util_sid_passdb.c
146 lib/util_unixsids.c
147 passdb/lookup_sid.c
148 passdb/login_cache.c
149 passdb/account_pol.c
150 lib/privileges.c
151 lib/util_nscd.c
152 lib/winbind_util.c
153 passdb/pdb_util.c
154 passdb/pdb_interface.c
155 passdb/pdb_secrets.c
156 passdb/pdb_unixid.c''',
157 deps='secrets3 GROUPDB SERVER_MUTEX wbclient LIBCLI_AUTH flag_mapping samba-credentials')
159 bld.SAMBA3_LIBRARY('smbldaphelper',
160 source='passdb/pdb_ldap_schema.c passdb/pdb_ldap_util.c',
161 deps='smbldap secrets3',
162 allow_undefined_symbols=True,
163 enabled=bld.CONFIG_SET('HAVE_LDAP'),
164 private_library=True)
166 bld.SAMBA3_SUBSYSTEM('SERVER_MUTEX',
167 source='lib/server_mutex.c',
168 deps='talloc')
170 bld.SAMBA3_SUBSYSTEM('param',
171 source='''param/loadparm.c
172 lib/sharesec.c
173 lib/ldap_debug_handler.c
174 lib/util_names.c''',
175 deps='''samba-util
176 PARAM_UTIL
177 ldap
178 lber
179 LOADPARM_CTX
180 samba3core
181 smbconf
182 param_local.h
183 param_global.h
184 cups''')
186 # this includes only the low level parse code, not stuff
187 # that requires knowledge of security contexts
188 bld.SAMBA3_SUBSYSTEM('REG_PARSE_PRS',
189 source='registry/reg_parse_prs.c')
191 bld.SAMBA3_SUBSYSTEM('REGFIO',
192 source='registry/regfio.c',
193 deps='samba-util REG_PARSE_PRS')
195 bld.SAMBA3_SUBSYSTEM('REG_API_REGF',
196 source='registry/reg_api_regf.c',
197 deps='samba-util')
199 bld.SAMBA3_LIBRARY('smbregistry',
200 source='''registry/reg_api.c
201 registry/reg_dispatcher.c
202 registry/reg_cachehook.c
203 registry/reg_objects.c
204 registry/reg_util_internal.c
205 lib/util_nttoken.c
206 registry/reg_backend_db.c
207 registry/reg_parse_internal.c
208 lib/cbuf.c
209 lib/srprs.c
210 registry/reg_init_basic.c''',
211 deps='''
212 smbd_shim
213 tdb-wrap3
214 NDR_SECURITY
215 util_tdb
216 talloc
217 replace
218 util_reg
219 samba-util
220 samba-security
221 errors3
222 dbwrap
223 samba3-util
224 ''',
225 allow_undefined_symbols=True,
226 private_library=True)
228 bld.SAMBA3_SUBSYSTEM('REG_SMBCONF',
229 source='''registry/reg_backend_smbconf.c
230 registry/reg_init_smbconf.c
231 registry/reg_util_token.c
232 registry/reg_api_util.c''',
233 deps='smbregistry')
235 bld.SAMBA3_SUBSYSTEM('REG_FULL',
236 source='''registry/reg_backend_printing.c
237 registry/reg_backend_shares.c
238 registry/reg_backend_netlogon_params.c
239 registry/reg_backend_prod_options.c
240 registry/reg_backend_tcpip_params.c
241 registry/reg_backend_hkpt_params.c
242 registry/reg_backend_current_version.c
243 registry/reg_backend_perflib.c
244 registry/reg_init_full.c
245 registry/reg_perfcount.c''',
246 deps='REG_SMBCONF tdb-wrap3')
248 bld.SAMBA3_LIBRARY('popt_samba3',
249 source='lib/popt_common.c',
250 deps='popt samba-util util_cmdline',
251 private_library=True)
253 bld.SAMBA3_LIBRARY('util_cmdline',
254 source='lib/util_cmdline.c',
255 deps='secrets3',
256 private_library=True)
258 bld.SAMBA3_SUBSYSTEM('KRBCLIENT',
259 source='libads/kerberos.c libads/ads_status.c',
260 public_deps='krb5samba asn1util k5crypto gssapi LIBTSOCKET CLDAP LIBNMB')
262 bld.SAMBA3_SUBSYSTEM('samba3util',
263 source='''lib/system.c
264 lib/sendfile.c
265 lib/recvfile.c
266 lib/time.c
267 lib/util_sid.c
268 lib/util_specialsids.c
269 lib/util_file.c
270 lib/util.c
271 lib/util_path.c
272 lib/util_procid.c
273 lib/util_sock.c
274 lib/util_tsock.c
275 lib/util_transfer_file.c
276 lib/sys_popen.c
277 lib/sock_exec.c''',
278 deps='ndr LIBTSOCKET samba-security NDR_SECURITY samba-util util_tdb sys_rw iov_buf')
280 if bld.env.with_ctdb:
281 SAMBA_CLUSTER_SUPPORT_SOURCES='''
282 lib/cluster_support.c
283 lib/dbwrap/dbwrap_ctdb.c
284 lib/messages_ctdbd.c
285 lib/ctdbd_conn.c
287 SAMBA_CLUSTER_SUPPORT_DEPS='''
288 talloc
289 tevent
292 else:
293 SAMBA_CLUSTER_SUPPORT_SOURCES='''
294 lib/cluster_support.c
295 lib/ctdb_dummy.c
297 SAMBA_CLUSTER_SUPPORT_DEPS='''
298 talloc
299 tevent
302 bld.SAMBA3_LIBRARY('samba-cluster-support',
303 source=SAMBA_CLUSTER_SUPPORT_SOURCES,
304 deps=SAMBA_CLUSTER_SUPPORT_DEPS,
305 allow_undefined_symbols=True,
306 private_library=True)
308 bld.SAMBA3_SUBSYSTEM('TDB_LIB',
309 source='''lib/dbwrap/dbwrap_open.c
310 lib/dbwrap/dbwrap_watch.c
311 lib/g_lock.c''',
312 deps='dbwrap samba-cluster-support')
314 bld.SAMBA3_LIBRARY('messages_dgm',
315 source='''lib/messages_dgm.c lib/messages_dgm_ref.c''',
316 deps='''talloc samba-debug PTHREADPOOL msghdr genrand''',
317 private_library=True)
319 bld.SAMBA3_LIBRARY('messages_util',
320 source='''lib/messages_util.c''',
321 deps='samba-util',
322 private_library=True)
324 bld.SAMBA3_SUBSYSTEM('samba3core',
325 source='''lib/messages.c
326 lib/util_cluster.c
327 lib/id_cache.c
328 lib/talloc_dict.c
329 lib/serverid.c
330 lib/server_id_watch.c
331 lib/server_id_db_util.c
332 lib/addrchange.c
333 ../lib/util/debug_s3.c
334 lib/dumpcore.c
335 lib/interface.c
336 lib/username.c
337 lib/access.c lib/smbrun.c
338 lib/wins_srv.c
339 lib/substitute.c
340 lib/substitute_generic.c
341 lib/ms_fnmatch.c
342 lib/tallocmsg.c
343 lib/dmallocmsg.c
344 intl/lang_tdb.c
345 lib/gencache.c
346 lib/util_event.c
347 lib/server_contexts.c
348 lib/server_prefork.c
349 lib/server_prefork_util.c
350 lib/ldap_escape.c
351 lib/fncall.c
352 libads/krb5_errs.c
353 lib/system_smbd.c
354 lib/audit.c
355 lib/tevent_wait.c
356 lib/idmap_cache.c
357 lib/util_ea.c
358 lib/background.c
359 lib/cleanupdb.c''',
360 deps='''
361 samba3util
362 LIBTSOCKET
363 NDR_MESSAGING
364 LIBASYNC_REQ
365 UTIL_PW
366 SAMBA_VERSION
367 PTHREADPOOL
368 interfaces
369 param
370 dbwrap
371 samba3-util
372 errors3
373 server_id_db
374 messages_util
375 messages_dgm
376 talloc_report
377 TDB_LIB''')
379 bld.SAMBA3_LIBRARY('smbd_shim',
380 source='''lib/smbd_shim.c''',
381 deps='talloc',
382 private_library=True)
384 bld.SAMBA3_SUBSYSTEM('auth_generic',
385 source='libsmb/auth_generic.c',
386 deps='gse gensec')
388 bld.SAMBA3_LIBRARY('libsmb',
389 source='''libsmb/clientgen.c
390 libsmb/cliconnect.c
391 libsmb/clifile.c
392 libsmb/clispnego.c
393 libsmb/clirap.c
394 libsmb/clierror.c
395 libsmb/climessage.c
396 libsmb/clireadwrite.c
397 libsmb/clilist.c
398 libsmb/cliprint.c
399 libsmb/clitrans.c
400 libsmb/clisecdesc.c
401 libsmb/clidgram.c
402 libsmb/clistr.c
403 libsmb/cliquota.c
404 libsmb/clifsinfo.c
405 libsmb/clidfs.c
406 libsmb/clioplock.c
407 libsmb/clirap2.c
408 libsmb/async_smb.c
409 libsmb/reparse_symlink.c
410 libsmb/clisymlink.c
411 libsmb/smbsock_connect.c
412 libsmb/cli_smb2_fnum.c''',
413 deps='''
414 auth_generic
415 CLDAP
416 LIBNMB
417 SPNEGO_PARSE
418 LIBTSOCKET
419 KRBCLIENT
420 NDR_IOCTL
421 cli_smb_common
422 util_cmdline
423 tevent''',
424 private_library=True)
426 bld.SAMBA3_SUBSYSTEM('CLDAP',
427 source='libads/cldap.c',
428 deps='cli-ldap-common cli_cldap LIBTSOCKET')
430 # NOTE: The secrets3 library is a low level library used by several subsystems.
431 # PLEASE DO NOT make it depend on high level libraries like PDB, if you are
432 # doing that your design is wrong and needs changing. -SSS
433 bld.SAMBA3_LIBRARY('secrets3',
434 source='''passdb/secrets.c
435 passdb/machine_account_secrets.c
436 passdb/machine_sid.c
437 passdb/secrets_lsa.c''',
438 deps='NDR_SECRETS param samba3util dbwrap',
439 private_library=True)
441 bld.SAMBA3_LIBRARY('smbldap',
442 source='lib/smbldap.c',
443 deps='ldap lber samba-util param',
444 enabled=bld.CONFIG_SET("HAVE_LDAP"),
445 private_library=False,
446 abi_directory='lib/ABI',
447 abi_match='smbldap_*',
448 pc_files=[],
449 vnum='0',
450 public_headers='include/smbldap.h include/smb_ldap.h')
452 bld.SAMBA3_LIBRARY('ads',
453 source='''libads/ldap.c
454 libads/sasl.c
455 libads/sasl_wrapping.c
456 libads/krb5_setpw.c
457 libads/kerberos_util.c
458 libads/ldap_user.c
459 libads/ads_struct.c
460 libads/kerberos_keytab.c
461 libads/disp_sec.c
462 libads/ldap_utils.c
463 libads/ldap_schema.c
464 libads/util.c
465 libads/ndr.c''',
466 deps='cli-ldap-common krb5samba ldap lber KRBCLIENT param LIBNMB libsmb DCUTIL smbldap',
467 private_library=True)
469 bld.SAMBA3_SUBSYSTEM('LIBADS_SERVER',
470 source='libads/authdata.c',
471 deps='SERVER_MUTEX ndr-krb5pac krb5samba gssapi')
473 bld.SAMBA3_SUBSYSTEM('LIBADS_PRINTER',
474 source='libads/ldap_printer.c',
475 deps='samba-util krb5samba')
477 bld.SAMBA3_LIBRARY('smbconf',
478 source='''lib/smbconf/smbconf_init.c
479 lib/smbconf/smbconf_reg.c''',
480 deps='''
481 CHARSET3
482 LIBSMBCONF
483 REG_SMBCONF
484 SAMBA_VERSION
486 charset
487 cli_smb_common
488 errors3
489 param
490 samba-util
491 smbregistry
492 talloc
493 util_reg''',
494 public_headers='../lib/smbconf/smbconf.h',
495 pc_files=[],
496 vnum='0')
498 bld.SAMBA3_LIBRARY('smbd_conn',
499 source='smbd/conn.c',
500 deps='samba3-util samba-util',
501 private_library=True)
503 bld.SAMBA3_SUBSYSTEM('sysquotas',
504 source='''
505 lib/sysquotas.c
506 lib/sysquotas_linux.c
507 lib/sysquotas_xfs.c
508 lib/sysquotas_4A.c
509 lib/sysquotas_4B.c
510 lib/sysquotas_nfs.c
511 ''',
512 allow_warnings=True,
513 deps='samba3-util samba-util')
515 NOTIFY_SOURCES=''
516 NOTIFY_DEPS=''
518 if bld.CONFIG_SET("HAVE_INOTIFY"):
519 NOTIFY_SOURCES += ' smbd/notify_inotify.c'
521 if bld.CONFIG_SET('SAMBA_FAM_LIBS'):
522 NOTIFY_SOURCES += ' smbd/notify_fam.c'
523 NOTIFY_DEPS += ' ' + bld.CONFIG_GET('SAMBA_FAM_LIBS')
525 bld.SAMBA3_LIBRARY('smbd_base',
526 source='''
527 smbd/server_reload.c
528 smbd/files.c
529 smbd/connection.c
530 smbd/utmp.c
531 smbd/session.c
532 smbd/dfree.c
533 smbd/dir.c
534 smbd/password.c
535 smbd/conn_msg.c
536 smbd/conn_idle.c
537 smbd/share_access.c
538 smbd/fileio.c
539 smbd/ipc.c
540 smbd/lanman.c
541 smbd/negprot.c
542 smbd/message.c
543 smbd/nttrans.c
544 smbd/pipes.c
545 smbd/reply.c
546 smbd/sesssetup.c
547 smbd/trans2.c
548 smbd/uid.c
549 smbd/dosmode.c
550 smbd/filename.c
551 smbd/open.c
552 smbd/close.c
553 smbd/blocking.c
554 smbd/sec_ctx.c
555 smbd/srvstr.c
556 smbd/vfs.c
557 smbd/perfcount.c
558 smbd/statcache.c
559 smbd/seal.c
560 smbd/posix_acls.c
561 lib/sysacls.c
562 smbd/process.c
563 smbd/service.c
564 smbd/error.c
565 printing/printspoolss.c
566 printing/spoolssd.c
567 lib/sessionid_tdb.c
568 lib/conn_tdb.c
569 smbd/fake_file.c
570 smbd/quotas.c
571 smbd/ntquotas.c
572 smbd/msdfs.c
573 smbd/aio.c smbd/statvfs.c
574 smbd/dmapi.c
575 smbd/signing.c
576 smbd/file_access.c
577 smbd/dnsregister.c smbd/globals.c
578 smbd/smb2_server.c
579 smbd/smb2_glue.c
580 smbd/smb2_negprot.c
581 smbd/smb2_sesssetup.c
582 smbd/smb2_tcon.c
583 smbd/smb2_create.c
584 smbd/smb2_close.c
585 smbd/smb2_flush.c
586 smbd/smb2_read.c
587 smbd/smb2_write.c
588 smbd/smb2_lock.c
589 smbd/smb2_ioctl.c
590 smbd/smb2_ioctl_dfs.c
591 smbd/smb2_ioctl_filesys.c
592 smbd/smb2_ioctl_named_pipe.c
593 smbd/smb2_ioctl_network_fs.c
594 smbd/smb2_keepalive.c
595 smbd/smb2_query_directory.c
596 smbd/smb2_notify.c
597 smbd/smb2_getinfo.c
598 smbd/smb2_setinfo.c
599 smbd/smb2_break.c
600 smbd/smbXsrv_version.c
601 smbd/smbXsrv_client.c
602 smbd/smbXsrv_session.c
603 smbd/smbXsrv_tcon.c
604 smbd/smbXsrv_open.c
605 smbd/server_exit.c
606 smbd/durable.c
607 smbd/scavenger.c
608 smbd/mangle.c
609 smbd/mangle_hash.c
610 smbd/mangle_hash2.c
611 smbd/oplock.c
612 smbd/oplock_irix.c
613 smbd/oplock_linux.c
614 smbd/notify.c
615 smbd/notify_msg.c
616 smbd/build_options.c''' + NOTIFY_SOURCES,
617 deps='''
618 talloc
619 tevent
621 libsmb
622 msrpc3
624 vfs_default
625 vfs_posixacl
626 inotify
627 popt_samba3
628 samba3core
629 smbd_conn
630 param_service
631 AVAHI
632 PRINTBASE
633 PROFILE
634 LOCKING
635 LIBADS_SERVER
636 LIBAFS
637 RPC_SERVICE
638 NDR_SMBXSRV
639 LEASES_DB
640 sysquotas
641 NDR_SMB_ACL
642 netapi
643 NDR_IOCTL
644 notifyd
645 ''' +
646 bld.env['dmapi_lib'] +
647 bld.env['legacy_quota_libs'] +
648 NOTIFY_DEPS,
649 private_library=True)
651 bld.SAMBA3_SUBSYSTEM('LOCKING',
652 source='''locking/locking.c
653 locking/brlock.c
654 locking/posix.c
655 locking/share_mode_lock.c''',
656 deps='''
658 talloc
659 LEASES_DB
660 NDR_OPEN_FILES
661 FNAME_UTIL''')
663 bld.SAMBA3_SUBSYSTEM('LEASES_DB',
664 source='locking/leases_db.c',
665 deps='NDR_LEASES_DB')
667 if bld.CONFIG_GET("WITH_PROFILE"):
668 bld.SAMBA3_SUBSYSTEM('PROFILE',
669 source='profile/profile.c',
670 deps='samba-util')
671 else:
672 bld.SAMBA3_SUBSYSTEM('PROFILE',
673 source='profile/profile_dummy.c',
674 deps='')
676 bld.SAMBA3_SUBSYSTEM('PRINTBASE',
677 source='''printing/notify.c printing/printing_db.c''',
678 deps='samba-util tdb')
680 bld.SAMBA3_SUBSYSTEM('PRINTBACKEND',
681 source='''printing/printing.c
682 printing/nt_printing.c
683 printing/nt_printing_tdb.c
684 printing/nt_printing_migrate_internal.c
685 printing/nt_printing_ads.c
686 printing/queue_process.c''',
687 deps='PRINTBASE LIBADS_PRINTER tdb printing_migrate')
689 bld.SAMBA3_LIBRARY('printing_migrate',
690 source='printing/nt_printing_migrate.c rpc_client/cli_winreg_spoolss.c printing/nt_printing_os2.c',
691 deps='NDR_NTPRINTING cli_spoolss RPC_NDR_WINREG LIBCLI_WINREG param',
692 private_library=True)
694 bld.SAMBA3_SUBSYSTEM('PRINTING',
695 source='''printing/pcap.c
696 printing/print_svid.c
697 printing/print_aix.c
698 printing/print_cups.c
699 printing/print_generic.c
700 printing/lpq_parse.c
701 printing/load.c
702 printing/print_standard.c
703 printing/print_iprint.c
704 printing/printer_list.c''',
705 deps='NDR_PRINTCAP tdb cups')
707 bld.SAMBA3_SUBSYSTEM('FNAME_UTIL',
708 source='lib/filename_util.c',
709 deps='samba-util')
711 bld.SAMBA3_SUBSYSTEM('LIBNET',
712 source='libnet/libnet_join.c',
713 deps='NDR_LIBNET_JOIN INIT_SAMR net_keytab pdb')
715 bld.SAMBA3_LIBRARY('net_keytab',
716 source='libnet/libnet_keytab.c',
717 deps='krb5samba ads',
718 private_library=True)
721 bld.SAMBA3_SUBSYSTEM('LIBNET_DSSYNC',
722 source='''libnet/libnet_dssync.c
723 libnet/libnet_dssync_passdb.c
724 libnet/libnet_dssync_keytab.c''',
725 deps='LIBNET RPC_NDR_DRSUAPI')
727 bld.SAMBA3_SUBSYSTEM('LIBNET_SAMSYNC',
728 source='''libnet/libnet_samsync.c
729 libnet/libnet_samsync_ldif.c
730 libnet/libnet_samsync_passdb.c
731 libnet/libnet_samsync_display.c
732 libnet/libnet_samsync_keytab.c''',
733 deps='LIBNET LIBCLI_SAMSYNC')
735 bld.SAMBA3_SUBSYSTEM('LIBEVENTLOG',
736 source='lib/eventlog/eventlog.c',
737 deps='NDR_EVENTLOG tdb')
739 bld.SAMBA3_SUBSYSTEM('LIBNMB',
740 source='''libsmb/unexpected.c
741 libsmb/namecache.c
742 libsmb/nmblib.c
743 libsmb/namequery.c
744 libsmb/conncache.c
745 libads/sitename_cache.c''',
746 deps='LIBTSOCKET samba3util addns lmhosts resolv')
748 bld.SAMBA3_SUBSYSTEM('SERVICES',
749 source='''services/svc_spoolss.c
750 services/svc_rcinit.c
751 services/svc_winreg_glue.c
752 services/svc_netlogon.c
753 services/svc_winreg.c
754 services/svc_wins.c''',
755 deps='samba-util')
757 bld.SAMBA3_SUBSYSTEM('PLAINTEXT_AUTH',
758 source='''auth/pampass.c auth/pass_check.c''',
759 deps='pam PAM_ERRORS')
761 bld.SAMBA3_SUBSYSTEM('PASSCHANGE',
762 source='libsmb/passchange.c',
763 deps='''LIBCLI_SAMR
764 INIT_LSA
765 msrpc3
766 krb5samba''')
768 bld.SAMBA3_SUBSYSTEM('SAMBA_VERSION',
769 source='lib/version.c',
770 deps='samba-util')
772 bld.SAMBA3_SUBSYSTEM('SLCACHE',
773 source='libsmb/samlogon_cache.c',
774 deps='samba-util tdb')
776 bld.SAMBA3_SUBSYSTEM('DCUTIL',
777 source='''libsmb/namequery_dc.c
778 libsmb/trustdom_cache.c
779 libsmb/dsgetdcname.c''',
780 deps='ads msrpc3 libcli_lsa3')
782 bld.SAMBA3_LIBRARY('trusts_util',
783 source='libsmb/trusts_util.c',
784 deps='libcli_netlogon3 msrpc3 samba-passdb',
785 private_library=True)
787 bld.SAMBA3_SUBSYSTEM('tdb-wrap3',
788 source='lib/util_tdb.c',
789 deps='talloc samba3-util')
791 bld.SAMBA3_LIBRARY('samba3-util',
792 source='''lib/util_sec.c lib/util_str.c lib/adt_tree.c lib/util_malloc.c lib/namearray.c lib/file_id.c''',
793 deps='samba-util charset',
794 private_library=True)
796 bld.SAMBA_LIBRARY('xattr_tdb',
797 source='lib/xattr_tdb.c',
798 deps='NDR_XATTR dbwrap samba3-util',
799 private_library=True)
801 bld.SAMBA3_LIBRARY('CHARSET3',
802 source='''lib/charcnv.c lib/fstring.c''',
803 public_deps='ICONV_WRAPPER charset',
804 deps='samba-util samba3-util',
805 private_library=True)
807 bld.SAMBA3_SUBSYSTEM('errors3',
808 source='libsmb/errormap.c libsmb/smberr.c lib/errmap_unix.c',
809 deps='samba-errors')
811 bld.SAMBA3_SUBSYSTEM('LIBCLI_SAMR',
812 source='rpc_client/cli_samr.c',
813 deps='RPC_NDR_SAMR')
815 bld.SAMBA3_LIBRARY('libcli_lsa3',
816 source='rpc_client/cli_lsarpc.c',
817 deps='RPC_NDR_LSA INIT_LSA',
818 private_library=True)
820 bld.SAMBA3_LIBRARY('libcli_netlogon3',
821 source='rpc_client/cli_netlogon.c rpc_client/util_netlogon.c',
822 deps='msrpc3 RPC_NDR_NETLOGON INIT_NETLOGON cliauth param NETLOGON_CREDS_CLI',
823 private_library=True)
825 bld.SAMBA3_LIBRARY('cli_spoolss',
826 source='''rpc_client/cli_spoolss.c
827 rpc_client/init_spoolss.c''',
828 deps='RPC_NDR_SPOOLSS param secrets3',
829 private_library=True)
831 bld.SAMBA3_SUBSYSTEM('LIBCLI_WINREG',
832 source='rpc_client/cli_winreg.c',
833 deps='RPC_NDR_WINREG')
835 bld.SAMBA3_SUBSYSTEM('LIBCLI_WINREG_INTERNAL',
836 source='rpc_client/cli_winreg_int.c',
837 deps='LIBCLI_WINREG RPC_SERVER')
839 bld.SAMBA3_SUBSYSTEM('RPC_CLIENT_SCHANNEL',
840 source='rpc_client/cli_pipe_schannel.c',
841 deps='samba-util krb5samba')
843 bld.SAMBA3_SUBSYSTEM('INIT_LSA',
844 source='rpc_client/init_lsa.c',
845 deps='samba-util')
847 bld.SAMBA3_SUBSYSTEM('INIT_NETLOGON',
848 source='rpc_client/init_netlogon.c',
849 deps='samba-util')
851 bld.SAMBA3_SUBSYSTEM('INIT_SAMR',
852 source='rpc_client/init_samr.c',
853 deps='samba-util')
855 bld.SAMBA3_SUBSYSTEM('LIBLSA',
856 source='lib/lsa.c')
858 ########################## BINARIES #################################
860 bld.SAMBA3_BINARY('smbd/smbd',
861 source='smbd/server.c smbd/smbd_cleanupd.c',
862 deps='''
863 smbd_base
864 EPMD
865 LSASD
866 FSSD
867 MDSSD
868 ''',
869 install_path='${SBINDIR}')
872 bld.SAMBA3_SUBSYSTEM('TDB_VALIDATE',
873 source='lib/tdb_validate.c',
874 deps='samba-util')
877 bld.SAMBA3_BINARY('client/smbclient',
878 source='''client/client.c
879 client/clitar.c
880 client/dnsbrowse.c''',
881 deps='''
882 talloc
883 popt_samba3
884 param
885 ndr-standard
886 SMBREADLINE
887 libsmb
888 msrpc3
889 RPC_NDR_SRVSVC
890 cli_smb_common
891 archive
892 ''')
894 bld.SAMBA3_BINARY('smbspool',
895 source='client/smbspool.c',
896 deps='''
897 talloc
898 popt_samba3
899 param
900 libsmb
901 samba3core''')
903 bld.SAMBA3_BINARY('smbspool_krb5_wrapper',
904 source='client/smbspool_krb5_wrapper.c',
905 deps='''
906 DYNCONFIG
907 cups
908 ''',
909 install_path='${LIBEXECDIR}/samba',
910 enabled=bld.CONFIG_SET('HAVE_CUPS'))
912 bld.SAMBA3_BINARY('locktest2',
913 source='torture/locktest2.c',
914 deps='''
915 talloc
916 param
917 libsmb
918 LOCKING''',
919 install=False)
921 smbstatus_source = 'utils/status.c smbd/notify_msg.c'
923 if bld.CONFIG_GET("WITH_PROFILE"):
924 smbstatus_source += ' utils/status_profile.c'
925 else:
926 smbstatus_source += ' utils/status_profile_dummy.c'
928 bld.SAMBA3_BINARY('smbstatus',
929 source=smbstatus_source,
930 deps='''
931 talloc
932 param
933 popt_samba3
934 smbd_base
935 LOCKING
936 PROFILE''')
938 bld.SAMBA3_BINARY('smbtorture' + bld.env.suffix3,
939 source='''torture/torture.c
940 torture/nbio.c
941 torture/scanner.c
942 torture/utable.c
943 torture/denytest.c
944 torture/mangle_test.c
945 torture/nbench.c
946 torture/test_async_echo.c
947 torture/test_addrchange.c
948 torture/test_posix_append.c
949 torture/test_nttrans_create.c
950 torture/test_nttrans_fsctl.c
951 torture/test_case_insensitive.c
952 torture/test_notify_online.c
953 torture/test_chain3.c
954 torture/test_smb2.c
955 torture/test_authinfo_structs.c
956 torture/test_smbsock_any_connect.c
957 torture/test_cleanup.c
958 torture/test_notify.c
959 lib/tevent_barrier.c
960 torture/test_dbwrap_watch.c
961 torture/test_idmap_tdb_common.c
962 torture/test_dbwrap_ctdb.c
963 torture/test_buffersize.c
964 torture/test_messaging_read.c
965 torture/test_messaging_fd_passing.c
966 torture/test_oplock_cancel.c
967 torture/test_pthreadpool_tevent.c
968 torture/bench_pthreadpool.c
969 torture/wbc_async.c''',
970 deps='''
971 talloc
972 param
973 libsmb
974 msrpc3
975 TLDAP
976 RPC_NDR_ECHO
977 WB_REQTRANS
978 LOCKING
979 NDR_OPEN_FILES
980 idmap
981 IDMAP_TDB_COMMON
982 samba-cluster-support
983 ''',
984 cflags='-DWINBINDD_SOCKET_DIR=\"%s\"' % bld.env.WINBINDD_SOCKET_DIR,
985 install=False)
987 bld.SAMBA3_BINARY('smbconftort',
988 source='lib/smbconf/testsuite.c',
989 deps='''
990 talloc
991 param
992 popt_samba3''',
993 install=False)
995 bld.SAMBA3_BINARY('replacetort',
996 source='../lib/replace/test/main.c',
997 deps='replace replace-test',
998 install=False)
1000 bld.SAMBA3_BINARY('msgtest',
1001 source='torture/msgtest.c',
1002 deps='''
1003 talloc
1004 param''',
1005 install=False)
1007 bld.SAMBA3_BINARY('msg_sink',
1008 source='torture/msg_sink.c',
1009 deps='''
1010 talloc
1011 param''',
1012 install=False)
1014 bld.SAMBA3_BINARY('msg_source',
1015 source='torture/msg_source.c',
1016 deps='''
1017 talloc
1018 param''',
1019 install=False)
1021 bld.SAMBA3_BINARY('pdbtest',
1022 source='torture/pdbtest.c',
1023 deps='''
1024 talloc
1026 popt_samba3
1027 AUTH_COMMON
1028 auth''',
1029 install=False)
1031 bld.SAMBA3_BINARY('vfstest',
1032 source='''torture/cmd_vfs.c
1033 torture/vfstest.c
1034 torture/vfstest_chain.c''',
1035 deps='''
1037 popt_samba3
1038 SMBREADLINE''',
1039 install=False)
1041 bld.SAMBA3_BINARY('versiontest',
1042 source='lib/version_test.c',
1043 deps='''
1044 SAMBA_VERSION
1045 param''',
1046 install=False)
1048 bld.SAMBA3_BINARY('timelimit',
1049 source='script/tests/timelimit.c',
1050 install=False)
1052 bld.SAMBA3_BINARY('rpc_open_tcp',
1053 source='torture/rpc_open_tcp.c',
1054 deps='''
1055 talloc
1056 msrpc3''',
1057 install=False)
1059 bld.SAMBA3_BINARY('vlp',
1060 source='printing/tests/vlp.c',
1061 deps='''
1062 talloc
1063 param''',
1064 install=False)
1066 bld.SAMBA3_PYTHON('pysmbd',
1067 source='smbd/pysmbd.c',
1068 deps='smbd_base pyrpc_util pytalloc-util',
1069 realname='samba/samba3/smbd.so'
1072 bld.SAMBA3_PYTHON('pylibsmb',
1073 source='libsmb/pylibsmb.c',
1074 deps='smbclient samba-credentials pycredentials',
1075 realname='samba/samba3/libsmb_samba_internal.so'
1078 bld.SAMBA3_BINARY('spotlight2sparql',
1079 source='''
1080 rpc_server/mdssvc/sparql_parser_test.c
1081 rpc_server/mdssvc/sparql_parser.c
1082 rpc_server/mdssvc/sparql_lexer.c
1083 rpc_server/mdssvc/sparql_mapping.c''',
1084 deps='samba3-util talloc ' + bld.env['libtracker'],
1085 enabled=bld.env.with_spotlight,
1086 install=False)
1088 ########################## INCLUDES #################################
1090 bld.RECURSE('auth')
1091 bld.RECURSE('libgpo/gpext')
1092 bld.RECURSE('lib/pthreadpool')
1093 bld.RECURSE('librpc')
1094 bld.RECURSE('librpc/idl')
1095 bld.RECURSE('libsmb')
1096 bld.RECURSE('modules')
1097 bld.RECURSE('param')
1098 bld.RECURSE('passdb')
1099 bld.RECURSE('rpc_server')
1100 bld.RECURSE('script')
1101 bld.RECURSE('winbindd')
1102 bld.RECURSE('../examples/auth')
1103 bld.RECURSE('../examples/libsmbclient')
1104 bld.RECURSE('../examples/pdb')
1105 bld.RECURSE('../examples/VFS')
1106 bld.RECURSE('../examples/fuse')
1107 bld.RECURSE('lib/netapi/tests')
1108 bld.RECURSE('lib/netapi/examples')
1109 bld.RECURSE('smbd/notifyd')
1110 bld.RECURSE('rpcclient')
1111 bld.RECURSE('utils')
1112 bld.RECURSE('nmbd')
1114 bld.ENFORCE_GROUP_ORDERING()
1115 bld.CHECK_PROJECT_RULES()