build: Reduce build systems to just top level waf and autoconf
authorAndrew Bartlett <abartlet@samba.org>
Thu, 1 Sep 2011 02:45:38 +0000 (12:45 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 7 Oct 2011 06:42:03 +0000 (17:42 +1100)
The s3-waf build system is a key component of the top level build, but
with this commit is is no longer available directly.  This reduces the
number of build system combinations in master as we prepare for the
Samba 4.0 release.

Andrew Bartlett

13 files changed:
buildtools/wafsamba/samba3.py
buildtools/wafsamba/samba_autoconf.py
dynconfig/wscript
lib/util/wscript_build
libcli/nbt/wscript_build
libcli/security/wscript_build
source3/autogen-waf.sh [deleted file]
source3/passdb/wscript_build
source3/selftest/wscript [deleted file]
source3/wscript
source3/wscript_build
wscript
wscript_build

index b2a3655d133aaf57da10476868b698a5ffd550cc..1426029839719eede8830fe0377a4201273db1c4 100644 (file)
@@ -52,7 +52,7 @@ def s3_fix_kwargs(bld, kwargs):
 
     # the extra_includes list is relative to the source3 directory
     extra_includes = [ '.', 'include', 'lib', '../lib/tdb_compat' ]
-    if bld.env.use_intree_heimdal:
+    if not bld.CONFIG_SET("USING_SYSTEM_KRB5"):
         extra_includes += [ '../source4/heimdal/lib/com_err',
                             '../source4/heimdal/lib/gssapi',
                             '../source4/heimdal_build' ]
index 207d7320b95445b250c72a4fc75087025b01372a..909e836fdb045581592815d230487a44affb45a7 100644 (file)
@@ -599,8 +599,7 @@ def SAMBA_CONFIG_H(conf, path=None):
         # we add these here to ensure that -Wstrict-prototypes is not set during configure
         conf.ADD_CFLAGS('-Wall -g -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-align -Wwrite-strings -Werror-implicit-function-declaration -Wformat=2 -Wno-format-y2k -Wmissing-prototypes -fno-common',
                         testflags=True)
-        if os.getenv('TOPLEVEL_BUILD'):
-            conf.ADD_CFLAGS('-Wcast-qual', testflags=True)
+        conf.ADD_CFLAGS('-Wcast-qual', testflags=True)
         conf.env.DEVELOPER_MODE = True
 
     if Options.options.picky_developer:
index e9815e0376f945dc6fafa11f318f5a2ab4e272d7..28f6e8dfc7e170f817b151d04562f5f196ecb6b3 100755 (executable)
@@ -357,8 +357,6 @@ Build.BuildContext.dynconfig_cflags = dynconfig_cflags
 def build(bld):
     cflags = bld.dynconfig_cflags()
     version_header = 'version.h'
-    if not os.getenv('TOPLEVEL_BUILD'):
-        version_header = 'include/version.h'
     bld.SAMBA_SUBSYSTEM('DYNCONFIG',
                         'dynconfig.c',
                         deps='replace talloc',
index f4bd8852311ec8012dc7c1ea49024dcbd682e8a1..8b4901a7dee4deaf982b84348d23d9b79f94e4b8 100755 (executable)
@@ -65,13 +65,12 @@ bld.SAMBA_LIBRARY('tevent-util',
        )
 
 
-if bld.env._SAMBA_BUILD_ == 4:
-       bld.SAMBA_SUBSYSTEM('util_ldb',
-               source='util_ldb.c',
-               local_include=False,
-               public_deps='ldb',
-               public_headers='util_ldb.h'
-               )
+bld.SAMBA_SUBSYSTEM('util_ldb',
+                   source='util_ldb.c',
+                   local_include=False,
+                   public_deps='ldb',
+                   public_headers='util_ldb.h'
+                   )
 
 
 bld.SAMBA_SUBSYSTEM('UTIL_RUNCMD',
index 2c70a1d775aec364cadeeda9481ef10de5d36f8d..b531dba4695adef95653b3ed4dd2c5642d469934 100644 (file)
@@ -11,22 +11,21 @@ bld.SAMBA_SUBSYSTEM('lmhosts',
                     deps='replace talloc'
                     )
 
-if bld.env._SAMBA_BUILD_ == 4:
-    bld.SAMBA_LIBRARY('cli-nbt',
-                      source='nbtsocket.c namequery.c nameregister.c namerefresh.c namerelease.c',
-                      public_deps='ndr NDR_NBT tevent tevent-util NDR_SECURITY samba_socket samba-util lmhosts',
-                      private_library=True
-                      )
+bld.SAMBA_LIBRARY('cli-nbt',
+                  source='nbtsocket.c namequery.c nameregister.c namerefresh.c namerelease.c',
+                  public_deps='ndr NDR_NBT tevent tevent-util NDR_SECURITY samba_socket samba-util lmhosts',
+                  private_library=True
+                  )
 
-    bld.SAMBA_BINARY('nmblookup',
-                     source='tools/nmblookup.c',
-                     manpages='man/nmblookup.1',
-                     deps='samba-hostconfig samba-util cli-nbt popt POPT_SAMBA netif LIBCLI_RESOLVE'
-                     )
+bld.SAMBA_BINARY('nmblookup',
+                 source='tools/nmblookup.c',
+                 manpages='man/nmblookup.1',
+                 deps='samba-hostconfig samba-util cli-nbt popt POPT_SAMBA netif LIBCLI_RESOLVE'
+                 )
 
-    bld.SAMBA_PYTHON('python_netbios',
-                     source='pynbt.c',
-                     public_deps='cli-nbt DYNCONFIG samba-hostconfig',
-                     realname='samba/netbios.so'
-                     )
+bld.SAMBA_PYTHON('python_netbios',
+                 source='pynbt.c',
+                 public_deps='cli-nbt DYNCONFIG samba-hostconfig',
+                 realname='samba/netbios.so'
+                 )
 
index 940ee700f26bd30c119a906a0b0bda23483f58d5..f3b654e9835cc6764ce88b680779191c8f990c58 100644 (file)
@@ -7,9 +7,8 @@ bld.SAMBA_LIBRARY('security',
                   deps='talloc ndr NDR_SECURITY'
                   )
 
-if getattr(bld.env, '_SAMBA_BUILD_', 0) == 4:
-    bld.SAMBA_PYTHON('pysecurity',
-                     source='pysecurity.c',
-                     deps='security pytalloc-util',
-                     realname='samba/security.so'
-                     )
+bld.SAMBA_PYTHON('pysecurity',
+                 source='pysecurity.c',
+                 deps='security pytalloc-util',
+                 realname='samba/security.so'
+                 )
diff --git a/source3/autogen-waf.sh b/source3/autogen-waf.sh
deleted file mode 100755 (executable)
index 432b523..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-p=`dirname $0`
-
-echo "Setting up for waf build"
-
-echo "Looking for the buildtools directory"
-
-d="buildtools"
-while test \! -d "$p/$d"; do d="../$d"; done
-
-echo "Found buildtools in $p/$d"
-
-echo "Setting up configure"
-rm -f $p/configure $p/include/config*.h*
-sed "s|BUILDTOOLS|$d|g;s|BUILDPATH|$p|g" < "$p/$d/scripts/configure.waf" > $p/configure
-chmod +x $p/configure
-
-echo "Setting up Makefile"
-rm -f $p/makefile $p/Makefile
-sed "s|BUILDTOOLS|$d|g" < "$p/$d/scripts/Makefile.waf" > $p/Makefile
-
-echo "done. Now run $p/configure or $p/configure.developer then make."
-if [ $p != "." ]; then
-       echo "Notice: The build invoke path is not 'source3'! Use make with the parameter"
-       echo "-C <'source3' path>. Example: make -C source3 all"
-fi
index 49c8154bb11ead58634827c288ee4e14b82b6fdc..b18d87308332e6829acdedac899206c74065437a 100644 (file)
@@ -53,10 +53,9 @@ bld.SAMBA3_MODULE('pdb_samba4',
                   internal_module=bld.SAMBA3_IS_STATIC_MODULE('pdb_samba4'),
                   enabled=bld.SAMBA3_IS_ENABLED_MODULE('pdb_samba4'))
 
-if bld.env.toplevel_build:
-    bld.SAMBA3_PYTHON('pypassdb',
-                      source='py_passdb.c',
-                      deps='pdb',
-                      public_deps='samba-util tdb talloc pyrpc_util',
-                      realname='samba/samba3/passdb.so'
-                      )
+bld.SAMBA3_PYTHON('pypassdb',
+                  source='py_passdb.c',
+                  deps='pdb',
+                  public_deps='samba-util tdb talloc pyrpc_util',
+                  realname='samba/samba3/passdb.so'
+                  )
diff --git a/source3/selftest/wscript b/source3/selftest/wscript
deleted file mode 100644 (file)
index 1a26688..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-#!/usr/bin/env python
-# vim: expandtab ft=python
-
-# selftest main code.
-
-import Scripting, os, Options, Utils, Environment, optparse, sys
-from samba_utils import *
-from samba_autoconf import *
-
-def set_options(opt):
-
-    opt.add_option('--enable-selftest',
-                   help=("enable options necessary for selftest (default=no)"),
-                   action="store_true", dest='enable_selftest', default=False)
-    opt.add_option('--with-selftest-prefix',
-                   help=("specify location of selftest directory (default=./st)"),
-                   action="store", dest='SELFTEST_PREFIX', default='./st')
-
-    opt.ADD_COMMAND('test', cmd_test)
-    opt.ADD_COMMAND('testonly', cmd_testonly)
-
-    gr = opt.add_option_group('test options')
-
-    gr.add_option('--load-list', 
-                  help=("Load a test id list from a text file"),
-                  action="store", dest='LOAD_LIST', default=None)
-    gr.add_option('--list', 
-                  help=("List available tests"),
-                  action="store_true", dest='LIST', default=False)
-    gr.add_option('--tests',
-                  help=("wildcard pattern of tests to run"),
-                  action="store", dest='TESTS', default='')
-    gr.add_option('--filtered-subunit',
-                  help=("output (xfail) filtered subunit"),
-                  action="store_true", dest='FILTERED_SUBUNIT', default=False)
-    gr.add_option('--quick',
-                  help=("enable only quick tests"),
-                  action="store_true", dest='QUICKTEST', default=False)
-    gr.add_option('--slow',
-                  help=("enable the really slow tests"),
-                  action="store_true", dest='SLOWTEST', default=False)
-    gr.add_option('--testenv',
-                  help=("start a terminal with the test environment setup"),
-                  action="store_true", dest='TESTENV', default=False)
-    gr.add_option('--valgrind',
-                  help=("use valgrind on client programs in the tests"),
-                  action="store_true", dest='VALGRIND', default=False)
-    gr.add_option('--valgrind-log',
-                  help=("where to put the valgrind log"),
-                  action="store", dest='VALGRINDLOG', default=None)
-    gr.add_option('--valgrind-server',
-                  help=("use valgrind on the server in the tests (opens an xterm)"),
-                  action="store_true", dest='VALGRIND_SERVER', default=False)
-    gr.add_option('--screen',
-                  help=("run the samba servers in screen sessions"),
-                  action="store_true", dest='SCREEN', default=False)
-    gr.add_option('--gdbtest',
-                  help=("run the servers within a gdb window"),
-                  action="store_true", dest='GDBTEST', default=False)
-    gr.add_option('--fail-immediately',
-                  help=("stop tests on first failure"),
-                  action="store_true", dest='FAIL_IMMEDIATELY', default=False)
-    gr.add_option('--socket-wrapper-pcap',
-                  help=("create a pcap file for each failing test"),
-                  action="store_true", dest='SOCKET_WRAPPER_PCAP', default=False)
-    gr.add_option('--socket-wrapper-keep-pcap',
-                  help=("create a pcap file for all individual test"),
-                  action="store_true", dest='SOCKET_WRAPPER_KEEP_PCAP', default=False)
-
-def configure(conf):
-    conf.env.SELFTEST_PREFIX = Options.options.SELFTEST_PREFIX
-
-def cmd_testonly(opt):
-    '''run tests without doing a build first'''
-    env = LOAD_ENVIRONMENT()
-    opt.env = env
-
-    if (not CONFIG_SET(opt, 'NSS_WRAPPER') or
-#        not CONFIG_SET(opt, 'UID_WRAPPER') or
-        not CONFIG_SET(opt, 'SOCKET_WRAPPER')):
-        print("ERROR: You must use --enable-selftest to enable selftest")
-        sys.exit(1)
-
-    os.environ['SAMBA_SELFTEST'] = '1'
-
-    env.TESTS  = Options.options.TESTS
-
-    env.SUBUNIT_FORMATTER = os.getenv('SUBUNIT_FORMATTER')
-    if not env.SUBUNIT_FORMATTER:
-        env.SUBUNIT_FORMATTER = '${PYTHON} -u ${srcdir}/selftest/format-subunit --prefix=${SELFTEST_PREFIX} --immediate'
-    env.FILTER_XFAIL = '${PYTHON} -u ${srcdir}/selftest/filter-subunit --expected-failures=${srcdir}/source3/selftest/knownfail'
-
-    if Options.options.FAIL_IMMEDIATELY:
-        env.FILTER_XFAIL += ' --fail-immediately'
-
-    env.FORMAT_TEST_OUTPUT = '${SUBUNIT_FORMATTER}'
-
-    # clean any previous temporary files
-    os.system("rm -rf %s/tmp" % env.SELFTEST_PREFIX);
-
-    # put all command line options in the environment as TESTENV_*=*
-    for o in dir(Options.options):
-        if o[0:1] != '_':
-            os.environ['TESTENV_%s' % o.upper()] = str(getattr(Options.options, o, ''))
-
-    binary_mappings = ('smbtorture3:smbtorture,' +
-                       'nmblookup3:nmblookup,' +
-                       'smbclient3:smbclient,' +
-                       'ntlm_auth3:ntlm_auth')
-
-    env.OPTIONS = '--binary-mapping=' + binary_mappings
-    if not Options.options.SLOWTEST:
-        env.OPTIONS += ' --exclude=${srcdir}/source3/selftest/slow'
-    if Options.options.QUICKTEST:
-        env.OPTIONS += ' --quick --include=${srcdir}/source3/selftest/quick'
-    if Options.options.LOAD_LIST:
-        env.OPTIONS += ' --load-list=%s' % Options.options.LOAD_LIST
-    if Options.options.TESTENV:
-        env.OPTIONS += ' --testenv'
-    if Options.options.SOCKET_WRAPPER_PCAP:
-        env.OPTIONS += ' --socket-wrapper-pcap'
-    if Options.options.SOCKET_WRAPPER_KEEP_PCAP:
-        env.OPTIONS += ' --socket-wrapper-keep-pcap'
-    if Options.options.LIST:
-        env.OPTIONS += ' --list'
-    if os.environ.get('RUN_FROM_BUILD_FARM') is not None:
-        env.FILTER_OPTIONS = '${FILTER_XFAIL} --strip-passed-output'
-    else:
-        env.FILTER_OPTIONS = '${FILTER_XFAIL}'
-
-    if Options.options.VALGRIND:
-        os.environ['VALGRIND'] = 'valgrind -q --num-callers=30'
-        if Options.options.VALGRINDLOG is not None:
-            os.environ['VALGRIND'] += ' --log-file=%s' % Options.options.VALGRINDLOG
-
-    server_wrapper=''
-
-    if Options.options.VALGRIND_SERVER:
-        server_wrapper = '${srcdir}/selftest/valgrind_run _DUMMY=X'
-    elif Options.options.GDBTEST:
-        server_wrapper = '${srcdir}/selftest/gdb_run _DUMMY=X'
-
-    if Options.options.SCREEN:
-        server_wrapper = '${srcdir}/selftest/in_screen %s' % server_wrapper
-        os.environ['TERMINAL'] = EXPAND_VARIABLES(opt, '${srcdir}/selftest/in_screen')
-    elif server_wrapper != '':
-        server_wrapper = 'xterm -n server -l -e %s' % server_wrapper
-
-    if server_wrapper != '':
-        os.environ['SAMBA_VALGRIND'] = EXPAND_VARIABLES(opt, server_wrapper)
-
-    # this is needed for systems without rpath, or with rpath disabled
-    ADD_LD_LIBRARY_PATH('bin/shared')
-    ADD_LD_LIBRARY_PATH('bin/shared/private')
-
-    # if we are using a system version of ldb then we need to tell it to
-    # load modules from our modules path
-    if env.USING_SYSTEM_LDB:
-        os.environ['LDB_MODULES_PATH'] = 'bin/modules/ldb'
-
-    # tell build system where to find config.h
-    os.environ['CONFIG_H'] = 'bin/default/source3/include/config.h'
-    os.environ['VFSLIBDIR'] = os.path.abspath('bin/modules/vfs')
-    os.environ['NSS_WRAPPER_WINBIND_SO_PATH'] = os.path.abspath('bin/default/nsswitch/libnss-winbind.so')
-
-    st_done = os.path.join(env.SELFTEST_PREFIX, 'st_done')
-    if os.path.exists(st_done):
-        os.unlink(st_done)
-
-    if not os.path.isdir(env.SELFTEST_PREFIX):
-        os.makedirs(env.SELFTEST_PREFIX, int('755', 8))
-
-    # We use the full path rather than relative path because it cause problems on some plateforms (ie. solaris 8).
-    cmd = '(${PERL} ${srcdir}/selftest/selftest.pl --target=samba3 --prefix=${SELFTEST_PREFIX} --srcdir=${srcdir} --exclude=${srcdir}/source3/selftest/skip --testlist="${srcdir}/source3/selftest/tests.py|" ${OPTIONS} --socket-wrapper ${TESTS} && touch ${SELFTEST_PREFIX}/st_done) | ${FILTER_OPTIONS} | tee ${SELFTEST_PREFIX}/subunit'
-    if os.environ.get('RUN_FROM_BUILD_FARM') is None and not Options.options.FILTERED_SUBUNIT:
-        cmd += ' | ${FORMAT_TEST_OUTPUT}'
-    else:
-        cmd += ' | ${PYTHON} -u ${srcdir}/selftest/filter-subunit'
-    cmd = EXPAND_VARIABLES(opt, cmd)
-
-    print("test: running %s" % cmd)
-    ret = RUN_COMMAND(cmd, env=env)
-    if os.path.exists(".testrepository"):
-        # "testr load -q" isn't
-        cmd = 'testr load -q < ${SELFTEST_PREFIX}/subunit > /dev/null'
-        cmd = EXPAND_VARIABLES(opt, cmd)
-        RUN_COMMAND(cmd, env=env)
-
-    if ret != 0:
-        print("ERROR: test failed with exit code %d" % ret)
-        sys.exit(ret)
-
-    if not os.path.exists(st_done):
-        print("ERROR: test command failed to complete")
-        sys.exit(1)
-
-
-########################################################################
-# main test entry point
-def cmd_test(opt):
-    '''Run the test suite (see test options below)'''
-    Scripting.commands.append('build')
-    Scripting.commands.append('testonly')
index bb0354af8fdd57e0dc5b020d223dc5c08e815fed..f725b623fabcf3b30bf8877cec8ac0ff3e4149cd 100644 (file)
@@ -1,10 +1,6 @@
 #! /usr/bin/env python
 
-srcdir = '..'
-blddir = 'bin'
-
-APPNAME='samba'
-VERSION=None
+srcdir=".."
 
 import sys, os
 from optparse import SUPPRESS_HELP
@@ -18,17 +14,6 @@ import samba3
 Options.default_prefix = '/usr/local/samba'
 
 def set_options(opt):
-    if not os.getenv('TOPLEVEL_BUILD'):
-        opt.BUILTIN_DEFAULT('NONE')
-        opt.PRIVATE_EXTENSION_DEFAULT('s3')
-        opt.RECURSE('../lib/replace')
-        opt.RECURSE('../dynconfig')
-        opt.RECURSE('selftest')
-        opt.RECURSE('../lib/nss_wrapper')
-        opt.RECURSE('../lib/uid_wrapper')
-        opt.RECURSE('../lib/socket_wrapper')
-        opt.RECURSE('../lib/tevent')
-        opt.RECURSE('../lib/tdb_compat')
 
     opt.add_option('--with-static-modules',
                    help=("Comma-separated list of names of modules to statically link in"),
@@ -43,7 +28,7 @@ def set_options(opt):
     opt.SAMBA3_ADD_OPTION('winbind')
     opt.SAMBA3_ADD_OPTION('swat')
     opt.SAMBA3_ADD_OPTION('ads')
-    opt.SAMBA3_ADD_OPTION('krb5')
+    opt.SAMBA3_ADD_OPTION('mit-krb5-checks', default=False)
     opt.SAMBA3_ADD_OPTION('ldap')
     opt.SAMBA3_ADD_OPTION('cups', with_name="enable", without_name="disable")
     opt.SAMBA3_ADD_OPTION('iprint', with_name="enable", without_name="disable")
@@ -78,13 +63,6 @@ def set_options(opt):
 def configure(conf):
     from samba_utils import TO_LIST
 
-    if not conf.env.toplevel_build:
-        version = samba_version.load_version(env=conf.env)
-        conf.DEFINE('CONFIG_H_IS_FROM_SAMBA', 1)
-        conf.DEFINE('_SAMBA_WAF_BUILD_', version.MAJOR)
-        conf.DEFINE('_SAMBA_BUILD_', version.MAJOR, add_to_cflags=True)
-        conf.DEFINE('HAVE_CONFIG_H', 1, add_to_cflags=True)
-
     if Options.options.developer:
         conf.ADD_CFLAGS('-DDEVELOPER -DDEBUG_PASSWORD')
         conf.env.developer = True
@@ -92,52 +70,6 @@ def configure(conf):
     if Options.options.with_swat:
         conf.env['build_swat'] = True
 
-    if not conf.env.toplevel_build:
-
-        conf.RECURSE('../lib/replace')
-
-        conf.find_program('python', var='PYTHON', mandatory=True)
-        conf.find_program('perl', var='PERL', mandatory=True)
-        conf.find_program('xsltproc', var='XSLTPROC')
-
-        # enable tool to build python extensions
-        conf.check_tool('python')
-        conf.check_python_version((2,4,2))
-        conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=True)
-
-        if sys.platform == 'darwin' and not conf.env['HAVE_ENVIRON_DECL']:
-            # Mac OSX needs to have this and it's also needed that the python is compiled with this
-            # otherwise you face errors about common symbols
-            if not conf.CHECK_SHLIB_W_PYTHON("Checking if -fno-common is needed"):
-                conf.ADD_CFLAGS('-fno-common')
-            if not conf.CHECK_SHLIB_W_PYTHON("Checking if -undefined dynamic_lookup is not need"):
-                conf.env.append_value('shlib_LINKFLAGS', ['-undefined', 'dynamic_lookup'])
-        if int(conf.env['PYTHON_VERSION'][0]) >= 3:
-           raise Utils.WafError('Python version 3.x is not supported by Samba yet')
-
-        conf.RECURSE('../dynconfig')
-        conf.RECURSE('../lib/ccan')
-        conf.RECURSE('../lib/tdb_compat')
-        conf.RECURSE('../lib/talloc')
-        conf.RECURSE('../lib/tevent')
-        conf.RECURSE('../lib/popt')
-        conf.RECURSE('../lib/nss_wrapper')
-        conf.RECURSE('../lib/socket_wrapper')
-        conf.RECURSE('../lib/zlib')
-        conf.RECURSE('../libcli/smbreadline')
-        conf.RECURSE('../lib/util')
-        conf.RECURSE('../lib/util/charset')
-
-        conf.ADD_EXTRA_INCLUDES('''#source3 #source3/include #lib/replace #lib''')
-        if not conf.env.USING_SYSTEM_TDB:
-            conf.ADD_EXTRA_INCLUDES('#lib/tdb_compat')
-        if not conf.env.USING_SYSTEM_TEVENT:
-            conf.ADD_EXTRA_INCLUDES('#lib/tevent')
-        if not conf.env.USING_SYSTEM_TALLOC:
-            conf.ADD_EXTRA_INCLUDES('#lib/talloc')
-        if not conf.env.USING_SYSTEM_POPT:
-            conf.ADD_EXTRA_INCLUDES('#lib/popt')
-
     conf.ADD_LDFLAGS("-Wl,--export-dynamic", testflags=True)
 
     conf.CHECK_HEADERS('execinfo.h libexc.h libunwind.h netdb.h')
@@ -637,7 +569,7 @@ msg.msg_acctrightslen = sizeof(fd);
 
     # Check for kerberos
     have_gssapi=False
-    if Options.options.with_krb5 and not conf.env.toplevel_build:
+    if Options.options.with_mit_krb5_checks and conf.env.developer:
         Logs.info("Looking for kerberos features")
         conf.find_program('krb5-config', var='KRB5_CONFIG')
         if conf.env.KRB5_CONFIG:
@@ -830,12 +762,6 @@ return krb5_kt_resolve(context, "WRFILE:api", &keytab);
         'HAVE_KRB5_DEPRECATED_WITH_IDENTIFIER', addmain=False,
         link=False,
         msg="Checking for KRB5_DEPRECATED define taking an identifier")
-    elif not conf.env.toplevel_build:
-        conf.SET_TARGET_TYPE('krb5', 'EMPTY')
-        conf.SET_TARGET_TYPE('gssapi', 'EMPTY')
-        conf.SET_TARGET_TYPE('gssapi_krb5', 'EMPTY')
-        conf.SET_TARGET_TYPE('com_err', 'EMPTY')
-        conf.SET_TARGET_TYPE('k5crypto', 'EMPTY')
 
     if Options.options.with_ads:
         use_ads=True
@@ -1736,8 +1662,7 @@ main() {
         default_static_modules.extend(TO_LIST('pdb_ads auth_netlogond charset_weird'))
         default_shared_modules.extend(TO_LIST('perfcount_test'))
 
-    if conf.env.toplevel_build:
-        default_static_modules.extend(TO_LIST('pdb_samba4 auth_samba4'))
+    default_static_modules.extend(TO_LIST('pdb_samba4 auth_samba4'))
 
     if Options.options.with_acl_support and conf.CONFIG_SET('HAVE_POSIX_ACLS'):
         default_static_modules.extend(TO_LIST('vfs_posixacl'))
@@ -1821,12 +1746,6 @@ main() {
                 conf.DEFINE('%s_init' % entry, 'samba_init_module')
                 conf.env[shared_env].append('%s' % entry)
 
-    if not os.getenv('TOPLEVEL_BUILD'):
-        # we don't want PYTHONDIR in config.h, as otherwise changing
-        # --prefix causes a complete rebuild
-        del(conf.env.defines['PYTHONDIR'])
-        del(conf.env.defines['PYTHONARCHDIR'])
-
     conf.SAMBA_CONFIG_H('include/config.h')
 
 def ctags(ctx):
@@ -1837,12 +1756,3 @@ def ctags(ctx):
     print("Running: %s" % cmd)
     os.system(cmd)
 
-if not os.getenv('TOPLEVEL_BUILD'):
-    def wildcard_cmd(cmd):
-        '''called on a unknown command'''
-        from samba_wildcard import run_named_build_task
-        run_named_build_task(cmd)
-    def main():
-        from samba_wildcard import wildcard_main
-        wildcard_main(wildcard_cmd)
-    Scripting.main = main
index 6d8402ea71c4e689df1f288cfe87b0fbeb88b6b1..41ff19159ac9c44ca44555b1e53d97181e88ec1a 100755 (executable)
@@ -634,10 +634,7 @@ SPLIT_TOKENS_SRC = 'utils/split_tokens.c'
 
 LIBS='ICONV'
 
-if bld.env.toplevel_build:
-    config_h = "../include/config.h"
-else:
-    config_h = "include/config.h"
+config_h = "../include/config.h"
 
 bld.SAMBA_BLDOPTIONS('smbd/build_options.c')
 
@@ -651,15 +648,6 @@ t.env.BUILDDIR = bld.path.abspath()
 
 bld.SETUP_BUILD_GROUPS()
 
-if not bld.env.toplevel_build:
-    # when using a toplevel build, these are already supplied
-    samba_version.load_version(bld.env)
-    bld.SAMBA_MKVERSION('include/version.h')
-    bld.RECURSE('../lib/replace')
-    bld.RECURSE('../dynconfig')
-    bld.env.suffix3 = ''
-
-
 ######################## SUBSYSTEMS #################################
 
 bld.SAMBA3_LIBRARY('netapi',
@@ -744,11 +732,10 @@ bld.SAMBA3_SUBSYSTEM('PARAM_UTIL',
                     source=PARAM_UTIL_SRC,
                     deps='samba-util')
 
-if bld.env.toplevel_build:
-    bld.SAMBA3_SUBSYSTEM('LOADPARM_CTX',
-                         source='param/loadparm_ctx.c',
-                         deps='''s3_param_h param''',
-                         vars=locals())
+bld.SAMBA3_SUBSYSTEM('LOADPARM_CTX',
+                     source='param/loadparm_ctx.c',
+                     deps='''s3_param_h param''',
+                     vars=locals())
 
 bld.SAMBA_GENERATOR('param/param_global_h',
                     source= 'param/loadparm.c ../script/mkparamdefs.pl',
@@ -759,12 +746,11 @@ bld.SAMBA3_SUBSYSTEM('param',
                    source=PARAM_WITHOUT_REG_SRC,
                    deps='samba-util PARAM_UTIL smbd_conn ldap lber LOADPARM_CTX samba3core smbconf param_local_h param/param_global_h''')
 
-if bld.env.toplevel_build:
-    bld.SAMBA3_PYTHON('pys3param',
-                      source='param/pyparam.c',
-                      deps='param',
-                      public_deps='samba-hostconfig pytalloc-util talloc',
-                      realname='samba/samba3/param.so')
+bld.SAMBA3_PYTHON('pys3param',
+                  source='param/pyparam.c',
+                  deps='param',
+                  public_deps='samba-hostconfig pytalloc-util talloc',
+                  realname='samba/samba3/param.so')
     
 bld.SAMBA3_SUBSYSTEM('param_service',
                      source='param/service.c',
@@ -1419,60 +1405,8 @@ swat_dir = os.path.join(bld.curdir, '../swat')
 swat_files = recursive_dirlist(swat_dir, swat_dir, '*')
 bld.INSTALL_FILES('${SWATDIR}', swat_files, base_name='../swat')
 
-# additional compatibility rules.
-# these rules allow us to have a common set of waf rules for toplevel and source3
-# builds. Effectively these are build rule aliases
-
-if not bld.env.toplevel_build:
-    bld.SAMBA3_SUBSYSTEM('POPT_SAMBA', source='', deps='popt_samba3')
-    bld.SAMBA3_SUBSYSTEM('ldb3',
-                        source='lib/ldb_compat.c',
-                        deps='samba-util')
-    bld.SAMBA3_SUBSYSTEM('ldb', source='', deps='ldb3')
-    bld.SAMBA3_SUBSYSTEM('dcerpc', '', deps='tevent-util')
-    bld.SAMBA3_SUBSYSTEM('cli-ldap', '', deps='tevent-util')
-    bld.SAMBA3_SUBSYSTEM('LOADPARM_CTX', '')
-
 ########################## INCLUDES #################################
 
-bld.RECURSE('../lib/util/charset')
-bld.RECURSE('../auth')
-bld.RECURSE('../auth/kerberos')
-bld.RECURSE('../lib/addns')
-bld.RECURSE('../lib/async_req')
-bld.RECURSE('../lib/ccan')
-bld.RECURSE('../lib/socket')
-bld.RECURSE('../lib/param')
-bld.RECURSE('../libcli/auth')
-bld.RECURSE('../libcli/drsuapi')
-bld.RECURSE('../libcli/ldap')
-bld.RECURSE('../libcli/cldap')
-bld.RECURSE('../libcli/named_pipe_auth')
-bld.RECURSE('../libcli/netlogon')
-bld.RECURSE('../libcli/samsync')
-bld.RECURSE('../libcli/security')
-bld.RECURSE('../libcli/smb')
-bld.RECURSE('../libcli/util')
-bld.RECURSE('../libcli/smbreadline')
-bld.RECURSE('../libcli/nbt')
-bld.RECURSE('../libcli/registry')
-bld.RECURSE('../lib/crypto')
-bld.RECURSE('../lib/iniparser/src')
-bld.RECURSE('../lib/nss_wrapper')
-bld.RECURSE('../lib/popt')
-bld.RECURSE('../librpc')
-bld.RECURSE('../lib/smbconf')
-bld.RECURSE('../lib/socket_wrapper')
-bld.RECURSE('../lib/uid_wrapper')
-bld.RECURSE('../lib/talloc')
-bld.RECURSE('../lib/tdb_compat')
-bld.RECURSE('../lib/util')
-bld.RECURSE('../lib/tevent')
-bld.RECURSE('../lib/tsocket')
-bld.RECURSE('../lib/zlib')
-bld.RECURSE('../libds/common')
-bld.RECURSE('../nsswitch')
-bld.RECURSE('../nsswitch/libwbclient')
 bld.RECURSE('auth')
 bld.RECURSE('libgpo/gpext')
 bld.RECURSE('lib/pthreadpool')
diff --git a/wscript b/wscript
index 1b50baf241cd518bb96a270bcd32c1ca99800b4d..214c398e70bc6fa179756d850d1132e4cd7d0e9b 100755 (executable)
--- a/wscript
+++ b/wscript
@@ -16,8 +16,6 @@ samba_dist.DIST_DIRS('.')
 # install in /usr/local/samba by default
 Options.default_prefix = '/usr/local/samba'
 
-os.environ['TOPLEVEL_BUILD'] = '1'
-
 def set_options(opt):
     opt.BUILTIN_DEFAULT('NONE')
     opt.PRIVATE_EXTENSION_DEFAULT('samba4')
@@ -42,7 +40,6 @@ def set_options(opt):
 
 
 def configure(conf):
-    conf.env.toplevel_build = True
     version = samba_version.load_version(env=conf.env)
 
     conf.DEFINE('CONFIG_H_IS_FROM_SAMBA', 1)
index 4f61820224436c68bbd43710de68c370f7c9ce98..87b78a3f77ecfaa5571ac659fcabacd5506d60a9 100644 (file)
@@ -7,9 +7,6 @@ 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
@@ -33,6 +30,7 @@ bld.RECURSE('lib/replace')
 bld.RECURSE('lib/socket')
 bld.RECURSE('lib/talloc')
 bld.RECURSE('lib/tevent')
+bld.RECURSE('lib/addns')
 bld.RECURSE('lib/ccan')
 bld.RECURSE('lib/tdb_compat')
 bld.RECURSE('lib/ldb')