#!/usr/bin/env python # top level waf build script for samba4 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" # 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.AUTOCLEANUP_STALE_FILES() # enable building of public headers in the build tree 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'] # 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) bld.SAMBA_MKVERSION('version.h') # bld.ENABLE_MAGIC_ORDERING() bld.RECURSE('lib/replace') bld.RECURSE('lib/talloc') bld.RECURSE('lib/tdb') bld.RECURSE('lib/tevent') bld.RECURSE('source4/lib/ldb') bld.RECURSE('source4/dynconfig') bld.RECURSE('lib/util/charset') bld.RECURSE('source4/scripting/python') bld.RECURSE('source4/param') bld.RECURSE('source4/librpc') bld.RECURSE('source4/dsdb') bld.RECURSE('source4/smbd') bld.RECURSE('source4/cluster') bld.RECURSE('source4/smbd') bld.RECURSE('source4/libnet') bld.RECURSE('source4/auth') bld.RECURSE('auth') 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('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/stream') bld.RECURSE('lib/util') 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('source4/lib/com') bld.RECURSE('source4/dns_server') bld.RECURSE('source4/echo_server') bld.RECURSE('source4/smb_server') bld.RECURSE('source4/rpc_server') bld.RECURSE('source4/ldap_server') bld.RECURSE('source4/web_server') bld.RECURSE('source4/winbind') 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/libcli') bld.RECURSE('libcli/smb') bld.RECURSE('libcli/cldap') bld.RECURSE('lib/subunit/c') bld.RECURSE('source4/kdc') bld.RECURSE('lib/smbconf') bld.RECURSE('lib/async_req') bld.RECURSE('libcli/security') bld.RECURSE('libcli/ldap') bld.RECURSE('libcli/nbt') bld.RECURSE('libcli/netlogon') bld.RECURSE('libcli/auth') bld.RECURSE('libcli/drsuapi') bld.RECURSE('libcli/echo') bld.RECURSE('libcli/samsync') bld.RECURSE('libcli/registry') bld.RECURSE('source4/lib/policy') bld.RECURSE('libcli/named_pipe_auth') bld.RECURSE('source4/heimdal_build') bld.RECURSE('libcli/smbreadline') bld.RECURSE('codepages') bld.RECURSE('source4/setup') bld.RECURSE('source4/scripting') bld.RECURSE('pidl') bld.RECURSE('lib') bld.RECURSE('libds/common') if bld.env.enable_s3build: bld.RECURSE('source3') bld.RECURSE('testsuite/headers') # install some extra empty directories bld.INSTALL_DIRS("", "${LOCKDIR} ${SYSCONFDIR} ${LOCKDIR} ${PIDDIR} ${LOCALSTATEDIR}/lib ${PRIVATEDIR}/smbd.tmp/messaging") bld.SYMBOL_CHECK()