3 # top level waf build script for samba4
5 from waflib
import Options
14 # create separate build groups for building the asn1 and et compiler, then
15 # building the C from ASN1 and IDL, and finally the main build process
16 bld
.SETUP_BUILD_GROUPS()
17 bld
.AUTOCLEANUP_STALE_FILES()
19 # enable building of public headers in the build tree
20 bld
.env
.build_public_headers
= 'include/public'
22 # these are includes which appear in public headers, but with #ifdef conditional
23 # compilation, so they are safe
24 bld
.env
.public_headers_skip
= ['lib/param/param_proto.h', 'lib/param/param_functions.h']
26 version
=samba_version
.load_version(bld
.env
, is_install
=bld
.is_install
)
27 bld
.SAMBA_MKVERSION('version.h')
29 # bld.ENABLE_MAGIC_ORDERING()
31 bld
.env
.ABS_TOP_SRCDIR
= bld
.srcnode
.abspath() + '/docs-xml'
32 bld
.env
.ABS_TOP_BUILDDIR
= bld
.bldnode
.abspath() + '/docs-xml'
33 bld
.CONFIGURE_FILE('docs-xml/build/catalog.xml',
34 ABS_TOP_BUILDDIR
= bld
.env
.ABS_TOP_BUILDDIR
,
35 ABS_TOP_SRCDIR
=bld
.env
.ABS_TOP_SRCDIR
)
36 bld
.env
.DOC_VERSION
=version
.STRING
37 bld
.CONFIGURE_FILE('docs-xml/build/DTD/samba.build.version',
38 DOC_VERSION
=bld
.env
.DOC_VERSION
)
39 bld
.RECURSE('docs-xml')
41 # This needs to be earlier than anything containing IDL
42 # That in turn allows the build rules for fuzz_ndr_X to be
44 bld
.RECURSE('lib/fuzzing')
46 bld
.RECURSE('lib/replace')
47 bld
.RECURSE('lib/socket')
48 bld
.RECURSE('lib/talloc')
49 bld
.RECURSE('lib/tevent')
50 bld
.RECURSE('lib/texpect')
51 bld
.RECURSE('lib/addns')
52 bld
.RECURSE('lib/ldb')
53 bld
.RECURSE('lib/param')
54 bld
.RECURSE('lib/printer_driver')
55 bld
.RECURSE('lib/audit_logging')
56 bld
.RECURSE('lib/messaging')
57 bld
.RECURSE('dynconfig')
58 bld
.RECURSE('lib/util/charset')
60 bld
.RECURSE('source4/param')
61 bld
.RECURSE('source4/librpc')
62 bld
.RECURSE('source4/dsdb')
63 bld
.RECURSE('source4/samba')
64 bld
.RECURSE('source4/cluster')
65 bld
.RECURSE('source4/libnet')
66 bld
.RECURSE('source4/auth')
68 bld
.RECURSE('auth/kerberos')
69 bld
.RECURSE('nsswitch')
70 bld
.RECURSE('nsswitch/libwbclient')
71 bld
.RECURSE('source4/lib/samba3')
72 bld
.RECURSE('source4/lib/socket')
73 bld
.RECURSE('lib/ldb-samba')
74 bld
.RECURSE('source4/lib/tls')
75 bld
.RECURSE('source4/lib/registry')
76 bld
.RECURSE('source4/lib/messaging')
77 bld
.RECURSE('source4/lib/events')
78 bld
.RECURSE('source4/lib/cmdline')
79 if bld
.CHECK_FOR_THIRD_PARTY():
80 bld
.RECURSE('third_party')
81 bld
.RECURSE('source4/lib/stream')
82 bld
.RECURSE('lib/afs')
83 bld
.RECURSE('lib/util')
84 bld
.RECURSE('lib/tdb_wrap')
85 bld
.RECURSE('lib/tdr')
86 bld
.RECURSE('lib/tsocket')
87 bld
.RECURSE('lib/crypto')
88 bld
.RECURSE('lib/torture')
90 bld
.RECURSE('source4/lib/com')
91 bld
.RECURSE('source4/dns_server')
92 bld
.RECURSE('source4/echo_server')
93 bld
.RECURSE('source4/smb_server')
94 bld
.RECURSE('source4/rpc_server')
95 bld
.RECURSE('source4/ldap_server')
96 bld
.RECURSE('source4/winbind')
97 bld
.RECURSE('source4/nbt_server')
98 bld
.RECURSE('source4/wrepl_server')
99 bld
.RECURSE('source4/cldap_server')
100 bld
.RECURSE('source4/ntp_signd')
101 bld
.RECURSE('source4/utils/oLschema2ldif')
102 bld
.RECURSE('source4/ntvfs')
103 bld
.RECURSE('source4/torture')
104 bld
.RECURSE('librpc')
105 bld
.RECURSE('source4')
106 bld
.RECURSE('source4/libcli')
107 bld
.RECURSE('libcli/smb')
108 bld
.RECURSE('libcli/util')
109 bld
.RECURSE('libcli/cldap')
110 bld
.RECURSE('lib/smbconf')
111 bld
.RECURSE('lib/async_req')
112 bld
.RECURSE('lib/dbwrap')
113 bld
.RECURSE('libcli/security')
114 bld
.RECURSE('libcli/ldap')
115 bld
.RECURSE('libcli/nbt')
116 bld
.RECURSE('libcli/netlogon')
117 bld
.RECURSE('libcli/auth')
118 bld
.RECURSE('libcli/lsarpc')
119 bld
.RECURSE('libcli/drsuapi')
120 bld
.RECURSE('libcli/echo')
121 bld
.RECURSE('libcli/dns')
122 bld
.RECURSE('libcli/samsync')
123 bld
.RECURSE('libcli/registry')
124 bld
.RECURSE('libcli/http')
125 bld
.RECURSE('lib/mscat')
126 bld
.RECURSE('source4/lib/policy')
127 bld
.RECURSE('libcli/named_pipe_auth')
128 if bld
.CONFIG_GET('ENABLE_SELFTEST'):
129 bld
.RECURSE('testsuite/unittests')
131 if bld
.CONFIG_GET('KRB5_VENDOR') in (None, 'heimdal'):
132 if bld
.CONFIG_GET("HEIMDAL_KRB5_CONFIG") and bld
.CONFIG_GET("USING_SYSTEM_KRB5"):
133 # When both HEIMDAL_KRB5_CONFIG and KRB5_CONFIG are set and not equal,
134 # it means one is Heimdal-specific (krb5-config.heimdal, for example)
135 # and there is system heimdal
136 bld
.PROCESS_SEPARATE_RULE('system_heimdal')
138 bld
.PROCESS_SEPARATE_RULE('embedded_heimdal')
140 bld
.PROCESS_SEPARATE_RULE('system_mitkrb5')
142 bld
.RECURSE('libcli/smbreadline')
143 if bld
.AD_DC_BUILD_IS_ENABLED():
144 bld
.RECURSE('source4/setup')
145 bld
.RECURSE('source4/kdc')
146 if bld
.env
.with_ctdb
:
148 bld
.RECURSE('source4/scripting')
151 bld
.RECURSE('libds/common')
152 bld
.RECURSE('lib/pthreadpool')
153 bld
.RECURSE('source3')
154 bld
.RECURSE('dfs_server')
155 bld
.RECURSE('file_server')
156 bld
.RECURSE('lib/krb5_wrap')
157 bld
.RECURSE('packaging')
159 bld
.RECURSE('testsuite/headers')
162 bld
.DUP_SYMBOL_CHECK()