s4:rpc_server: use helper variables to access 'struct dcesrv_auth' in dcerpc_server.c
[samba.git] / wscript_build
index a6e2cab..a0563bf 100644 (file)
@@ -2,15 +2,14 @@
 
 # top level waf build script for samba4
 
+from waflib import Options
 import os
 srcdir = "."
 
 import samba_version
 
-# mark this as a top level build, for source3 rules
-bld.env.toplevel_build = True
-bld.env.use_intree_heimdal = True
 bld.env.suffix3 = "3"
+bld.env.suffix4 = "4"
 
 # create separate build groups for building the asn1 and et compiler, then
 # building the C from ASN1 and IDL, and finally the main build process
@@ -22,27 +21,35 @@ bld.env.build_public_headers = 'include/public'
 
 # these are includes which appear in public headers, but with #ifdef conditional
 # compilation, so they are safe
-bld.env.public_headers_skip = ['param/param_proto.h', 'lib/ldb_compat.h']
+bld.env.public_headers_skip = ['lib/param/param_proto.h', 'lib/param/param_functions.h']
 
-# force headers to use SAMBA4 rules
-bld.env.public_headers_replace = { '#if _SAMBA_BUILD_ == 4' : '#if 1 /* _SAMBA_BUILD_ == 4 */' }
-
-samba_version.load_version(bld.env, is_install=bld.is_install)
+version=samba_version.load_version(bld.env, is_install=bld.is_install)
 bld.SAMBA_MKVERSION('version.h')
 
 # bld.ENABLE_MAGIC_ORDERING()
 
+bld.env.ABS_TOP_SRCDIR = bld.srcnode.abspath() + '/docs-xml'
+bld.env.ABS_TOP_BUILDDIR = bld.srcnode.abspath() + '/bin/default/docs-xml'
+bld.CONFIGURE_FILE('docs-xml/build/catalog.xml',
+                   ABS_TOP_BUILDDIR = bld.env.ABS_TOP_BUILDDIR,
+                   ABS_TOP_SRCDIR=bld.env.ABS_TOP_SRCDIR)
+bld.env.DOC_VERSION=version.STRING
+bld.CONFIGURE_FILE('docs-xml/build/DTD/samba.build.version',
+                   DOC_VERSION=bld.env.DOC_VERSION)
+bld.RECURSE('docs-xml')
+
 bld.RECURSE('lib/replace')
 bld.RECURSE('lib/socket')
 bld.RECURSE('lib/talloc')
-bld.RECURSE('lib/tdb')
 bld.RECURSE('lib/tevent')
-bld.RECURSE('lib/ccan')
-bld.RECURSE('lib/tdb_compat')
-bld.RECURSE('source4/lib/ldb')
-bld.RECURSE('source4/dynconfig')
+bld.RECURSE('lib/texpect')
+bld.RECURSE('lib/addns')
+bld.RECURSE('lib/ldb')
+bld.RECURSE('lib/param')
+bld.RECURSE('lib/audit_logging')
+bld.RECURSE('dynconfig')
 bld.RECURSE('lib/util/charset')
-bld.RECURSE('source4/scripting/python')
+bld.RECURSE('python')
 bld.RECURSE('source4/param')
 bld.RECURSE('source4/librpc')
 bld.RECURSE('source4/dsdb')
@@ -53,29 +60,28 @@ bld.RECURSE('source4/libnet')
 bld.RECURSE('source4/auth')
 bld.RECURSE('auth')
 bld.RECURSE('auth/kerberos')
-bld.RECURSE('lib/iniparser/src')
 bld.RECURSE('nsswitch')
 bld.RECURSE('nsswitch/libwbclient')
 bld.RECURSE('source4/lib/samba3')
 bld.RECURSE('source4/lib/socket')
-bld.RECURSE('source4/lib/ldb-samba')
+bld.RECURSE('lib/ldb-samba')
 bld.RECURSE('source4/lib/tls')
 bld.RECURSE('source4/lib/registry')
 bld.RECURSE('source4/lib/messaging')
 bld.RECURSE('source4/lib/events')
 bld.RECURSE('source4/lib/cmdline')
-bld.RECURSE('lib/socket_wrapper')
-bld.RECURSE('lib/nss_wrapper')
-bld.RECURSE('lib/uid_wrapper')
-bld.RECURSE('lib/popt')
+bld.RECURSE('source4/lib/http')
+if bld.CHECK_FOR_THIRD_PARTY():
+    bld.RECURSE('third_party')
 bld.RECURSE('source4/lib/stream')
+bld.RECURSE('lib/afs')
 bld.RECURSE('lib/util')
+bld.RECURSE('lib/tdb_wrap')
 bld.RECURSE('lib/tdr')
 bld.RECURSE('lib/tsocket')
 bld.RECURSE('lib/crypto')
 bld.RECURSE('lib/torture')
-bld.RECURSE('lib/zlib')
-bld.RECURSE('source4/lib')
+bld.RECURSE('libgpo')
 bld.RECURSE('source4/lib/com')
 bld.RECURSE('source4/dns_server')
 bld.RECURSE('source4/echo_server')
@@ -88,45 +94,65 @@ bld.RECURSE('source4/nbt_server')
 bld.RECURSE('source4/wrepl_server')
 bld.RECURSE('source4/cldap_server')
 bld.RECURSE('source4/ntp_signd')
-bld.RECURSE('source4/samba_tool')
 bld.RECURSE('source4/utils')
 bld.RECURSE('source4/ntvfs')
-bld.RECURSE('source4/ntptr')
 bld.RECURSE('source4/torture')
 bld.RECURSE('librpc')
-bld.RECURSE('source4/client')
+bld.RECURSE('source4')
 bld.RECURSE('source4/libcli')
 bld.RECURSE('libcli/smb')
 bld.RECURSE('libcli/util')
 bld.RECURSE('libcli/cldap')
-bld.RECURSE('lib/subunit/c')
-bld.RECURSE('source4/kdc')
 bld.RECURSE('lib/smbconf')
 bld.RECURSE('lib/async_req')
+bld.RECURSE('lib/dbwrap')
 bld.RECURSE('libcli/security')
 bld.RECURSE('libcli/ldap')
 bld.RECURSE('libcli/nbt')
 bld.RECURSE('libcli/netlogon')
 bld.RECURSE('libcli/auth')
+bld.RECURSE('libcli/lsarpc')
 bld.RECURSE('libcli/drsuapi')
 bld.RECURSE('libcli/echo')
+bld.RECURSE('libcli/dns')
 bld.RECURSE('libcli/samsync')
 bld.RECURSE('libcli/registry')
+bld.RECURSE('lib/mscat')
 bld.RECURSE('source4/lib/policy')
 bld.RECURSE('libcli/named_pipe_auth')
-bld.RECURSE('source4/heimdal_build')
+if bld.CONFIG_GET('ENABLE_SELFTEST'):
+    bld.RECURSE('testsuite/unittests')
+
+if bld.CONFIG_GET('KRB5_VENDOR') in (None, 'heimdal'):
+    if bld.CONFIG_GET("HEIMDAL_KRB5_CONFIG") and bld.CONFIG_GET("USING_SYSTEM_KRB5"):
+        # When both HEIMDAL_KRB5_CONFIG and KRB5_CONFIG are set and not equal,
+        # it means one is Heimdal-specific (krb5-config.heimdal, for example)
+        # and there is system heimdal
+        bld.PROCESS_SEPARATE_RULE('system_heimdal')
+    else:
+        bld.PROCESS_SEPARATE_RULE('embedded_heimdal')
+else:
+    bld.PROCESS_SEPARATE_RULE('system_mitkrb5')
+
 bld.RECURSE('libcli/smbreadline')
-bld.RECURSE('codepages')
-bld.RECURSE('source4/setup')
+if bld.AD_DC_BUILD_IS_ENABLED():
+    bld.RECURSE('source4/setup')
+    bld.RECURSE('source4/kdc')
+if bld.env.with_ctdb:
+    bld.RECURSE('ctdb')
 bld.RECURSE('source4/scripting')
 bld.RECURSE('pidl')
 bld.RECURSE('lib')
 bld.RECURSE('libds/common')
+bld.RECURSE('lib/pthreadpool')
 bld.RECURSE('source3')
+bld.RECURSE('dfs_server')
+bld.RECURSE('file_server')
+bld.RECURSE('lib/krb5_wrap')
+bld.RECURSE('packaging')
 
 bld.RECURSE('testsuite/headers')
 
-# install some extra empty directories
-bld.INSTALL_DIRS("", "${LOCKDIR} ${STATEDIR} ${CACHEDIR} ${SWATDIR} ${SYSCONFDIR} ${PIDDIR} ${LOCALSTATEDIR}/lib ${PRIVATEDIR}/smbd.tmp/messaging ${CODEPAGEDIR} ${LOGFILEBASE} ${SETUPDIR}")
-
 bld.SYMBOL_CHECK()
+bld.DUP_SYMBOL_CHECK()
+