+#!/usr/bin/env python
+
# top level waf build script for samba4
+import os
+srcdir = ".."
+
# 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
bld.SETUP_BUILD_GROUPS()
+bld.SAMBA_MKVERSION('version.h')
-bld.PREDECLARE('LIBNDR', 'LIBRARY')
-bld.PREDECLARE('LIBSAMBA-UTIL', 'LIBRARY')
-bld.PREDECLARE('torture', 'LIBRARY')
-bld.PREDECLARE('TORTURE_RAW', 'MODULE')
-bld.PREDECLARE('TORTURE_RAP', 'MODULE')
-bld.PREDECLARE('TORTURE_LDAP', 'MODULE')
-bld.PREDECLARE('python_dcerpc_misc', 'PYTHON')
-bld.PREDECLARE('python_dcerpc_security', 'PYTHON')
-bld.PREDECLARE('pycredentials', 'PYTHON')
-bld.PREDECLARE('pyauth', 'PYTHON')
-bld.PREDECLARE('gensec', 'LIBRARY')
-bld.PREDECLARE('registry', 'LIBRARY')
-bld.PREDECLARE('HEIMDAL_HDB_ASN1', 'ASN1')
-bld.PREDECLARE('HEIMDAL_SPNEGO_ASN1', 'ASN1')
-bld.PREDECLARE('HEIMDAL_GSSAPI_ASN1', 'ASN1')
-bld.PREDECLARE('HEIMDAL_KRB5_ASN1', 'ASN1')
-bld.PREDECLARE('HEIMDAL_DIGEST_ASN1', 'ASN1')
-bld.PREDECLARE('HEIMDAL_PKCS8_ASN1', 'ASN1')
-bld.PREDECLARE('HEIMDAL_PKCS9_ASN1', 'ASN1')
-bld.PREDECLARE('HEIMDAL_PKCS12_ASN1', 'ASN1')
-bld.PREDECLARE('HEIMDAL_RFC2459_ASN1', 'ASN1')
-bld.PREDECLARE('HEIMDAL_PKINIT_ASN1', 'ASN1')
-bld.PREDECLARE('HEIMDAL_CMS_ASN1', 'ASN1')
-bld.PREDECLARE('HEIMDAL_OCSP_ASN1', 'ASN1')
-bld.PREDECLARE('HEIMDAL_KX509_ASN1', 'ASN1')
-bld.PREDECLARE('HEIMDAL_PKCS10_ASN1', 'ASN1')
+# bld.ENABLE_MAGIC_ORDERING()
-# missing subsystems
-bld.SAMBA_SUBSYSTEM('pyldb_util', '')
-bld.SAMBA_SUBSYSTEM('pyldb', '')
-bld.SAMBA_SUBSYSTEM('LIBPOPT', '')
-bld.SAMBA_SUBSYSTEM('LIBCLI_SMB2', '')
-bld.SAMBA_SUBSYSTEM('dcerpc_mgmt', '')
-bld.SAMBA_SUBSYSTEM('TORTURE_LDB_MODULE', '')
-bld.SAMBA_SUBSYSTEM('INTL', '')
-bld.SAMBA_SUBSYSTEM('NDR_SAMR', '')
-bld.SAMBA_SUBSYSTEM('LIBLDB_CMDLINE', '')
-bld.SAMBA_SUBSYSTEM('NETAPI', '')
-bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
-bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
-bld.SAMBA_SUBSYSTEM('SMBREADLINE', '')
-bld.SAMBA_SUBSYSTEM('OPENPTY', '')
-bld.SAMBA_SUBSYSTEM('SMBCLIENT', '')
-bld.SAMBA_SUBSYSTEM('BLKID', '')
-bld.SAMBA_SUBSYSTEM('LIBTEVENT_EXT', '')
-bld.SAMBA_SUBSYSTEM('LIBTEVENT_EXT', '')
-bld.SAMBA_SUBSYSTEM('PTHREAD', '')
-bld.SAMBA_SUBSYSTEM('CRYPT', '')
-bld.SAMBA_SUBSYSTEM('PAM', '')
-bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
-bld.SAMBA_SUBSYSTEM('SASL', '')
+# we don't always use consistent names for our subsystems.
+# this sets up some aliases
+bld.TARGET_ALIAS('attr', 'XATTR')
+bld.TARGET_ALIAS('sasl2', 'SASL')
+bld.TARGET_ALIAS('RPC_NDR_SRVSVC', 'NDR_SRVSVC')
+bld.TARGET_ALIAS('RPC_NDR_MGMT', 'dcerpc_mgmt')
+
+# missing subsystems - need looking at
+bld.SAMBA_SUBSYSTEM('INTL', '') # external gettext library
+bld.SAMBA_SUBSYSTEM('NETAPI', '') # for external libnet
+bld.SAMBA_SUBSYSTEM('OPENPTY', '') # external openpty library
+bld.SAMBA_SUBSYSTEM('SMBCLIENT', '') # for external libsmbclient
+bld.SAMBA_SUBSYSTEM('BLKID', '') # blkid library from e2fsprogs
+bld.SAMBA_SUBSYSTEM('SETPROCTITLE', '') # external setproctitle library
+
+# subsystems that are confirmed to be missing. These should
+# be removed from the build completely when we only have
+# one build system
+bld.SAMBA_SUBSYSTEM('DCOM_PROXY_DCOM', '')
bld.SAMBA_SUBSYSTEM('smbcalls', '')
-bld.SAMBA_SUBSYSTEM('SMBREADLINE', '')
-bld.SAMBA_SUBSYSTEM('SMBREADLINE', '')
-bld.SAMBA_SUBSYSTEM('SETPROCTITLE', '')
-bld.SAMBA_SUBSYSTEM('ZLIB', '')
-bld.SAMBA_SUBSYSTEM('NDR_SRVSVC', '')
-bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
-bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
-bld.SAMBA_SUBSYSTEM('SETPROCTITLE', '')
-bld.SAMBA_SUBSYSTEM('HDB_LDB', '')
-bld.SAMBA_SUBSYSTEM('ICONV', '')
bld.SAMBA_SUBSYSTEM('NDR_MISC', '')
+bld.SAMBA_SUBSYSTEM('NDR_SAMR', '')
+bld.SAMBA_SUBSYSTEM('SCHANNELDB', '')
+bld.SAMBA_SUBSYSTEM('pyldb_util', '')
+bld.SAMBA_SUBSYSTEM('TORTURE_LDB_MODULE', '')
+
bld.BUILD_SUBDIR('../lib/replace')
bld.BUILD_SUBDIR('../lib/talloc')
bld.BUILD_SUBDIR('dynconfig')
bld.BUILD_SUBDIR('../lib/util/charset')
bld.BUILD_SUBDIR('scripting/python')
+bld.BUILD_SUBDIR('../lib/subunit/python')
bld.BUILD_SUBDIR('param')
bld.BUILD_SUBDIR('librpc')
bld.BUILD_SUBDIR('dsdb')
bld.BUILD_SUBDIR('../lib/socket_wrapper')
bld.BUILD_SUBDIR('../lib/nss_wrapper')
bld.BUILD_SUBDIR('../lib/uid_wrapper')
+bld.BUILD_SUBDIR('../lib/popt')
bld.BUILD_SUBDIR('lib/stream')
bld.BUILD_SUBDIR('../lib/util')
bld.BUILD_SUBDIR('../lib/tdr')
bld.BUILD_SUBDIR('../lib/tsocket')
bld.BUILD_SUBDIR('../lib/crypto')
bld.BUILD_SUBDIR('../lib/torture')
+bld.BUILD_SUBDIR('../lib/zlib')
bld.BUILD_SUBDIR('lib')
bld.BUILD_SUBDIR('lib/com')
bld.BUILD_SUBDIR('smb_server')
bld.BUILD_SUBDIR('../libgpo')
bld.BUILD_SUBDIR('../libcli/named_pipe_auth')
bld.BUILD_SUBDIR('heimdal_build')
-
-bld.CHECK_DEPENDENCIES()
+bld.BUILD_SUBDIR('lib/smbreadline')
+bld.BUILD_SUBDIR('../codepages')
+bld.BUILD_SUBDIR('setup')
+bld.BUILD_SUBDIR('scripting')
+bld.BUILD_SUBDIR('../pidl')