X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=wscript;h=47b7b50639fda67bd8bd13ba8a7eeed55dfee330;hb=36f4f72060b44e0b2d4563a24f9e811a8fe87eef;hp=37c25de4dd1944ed3a1547bcff45289c7971b600;hpb=3b3d7bb6029bf7c89abec0fb0b455a6154b0d0bf;p=mat%2Fsamba.git diff --git a/wscript b/wscript old mode 100755 new mode 100644 index 37c25de4dd..47b7b50639 --- a/wscript +++ b/wscript @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#!/usr/bin/env python srcdir = '.' blddir = 'bin' @@ -12,7 +12,7 @@ import wafsamba, Options, samba_dist, Scripting, Utils, samba_version samba_dist.DIST_DIRS('.') -samba_dist.DIST_BLACKLIST('.gitignore .bzrignore') +samba_dist.DIST_BLACKLIST('.gitignore .bzrignore source4/selftest/provisions/alpha13 source4/selftest/provisions/release-4-0-0/') # install in /usr/local/samba by default Options.default_prefix = '/usr/local/samba' @@ -56,11 +56,23 @@ def set_options(opt): help='disable AD DC functionality (enables Samba 4 client and Samba 3 code base).', action='store_true', dest='without_ad_dc', default=False) - gr = opt.option_group('developer options') + opt.add_option('--with-pie', + help=("Build Position Independent Executables " + + "(default if supported by compiler)"), + action="store_true", dest='enable_pie') + opt.add_option('--without-pie', + help=("Disable Position Independent Executable builds"), + action="store_false", dest='enable_pie') + + opt.add_option('--with-relro', + help=("Build with full RELocation Read-Only (RELRO)" + + "(default if supported by compiler)"), + action="store_true", dest='enable_relro') + opt.add_option('--without-relro', + help=("Disable RELRO builds"), + action="store_false", dest='enable_relro') - opt.add_option('--disable-ntdb', - help=("disable ntdb"), - action="store_true", dest='disable_ntdb', default=False) + gr = opt.option_group('developer options') opt.tool_options('python') # options for disabling pyc or pyo compilation @@ -82,13 +94,10 @@ def configure(conf): 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(mandatory=True, version=(2,5,0)) conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=True) if sys.platform == 'darwin' and not conf.env['HAVE_ENVIRON_DECL']: @@ -123,11 +132,7 @@ def configure(conf): conf.RECURSE('source4/ntvfs/sysdep') conf.RECURSE('lib/util') conf.RECURSE('lib/ccan') - conf.env.disable_ntdb = getattr(Options.options, 'disable_ntdb', False) - if not Options.options.disable_ntdb: - conf.RECURSE('lib/ntdb') - else: - conf.DEFINE('DISABLE_NTDB', 1) + conf.RECURSE('lib/ntdb') conf.RECURSE('lib/zlib') conf.RECURSE('lib/util/charset') conf.RECURSE('source4/auth') @@ -151,7 +156,7 @@ def configure(conf): # allows us to find problems on our development hosts faster. # It also results in faster load time. - if sys.platform != "openbsd4": + if not sys.platform.startswith("openbsd"): conf.env.asneeded_ldflags = conf.ADD_LDFLAGS('-Wl,--as-needed', testflags=True) if not conf.CHECK_NEED_LC("-lc not needed"): @@ -171,6 +176,25 @@ def configure(conf): conf.SAMBA_CONFIG_H('include/config.h') + if Options.options.enable_pie != False: + if Options.options.enable_pie == True: + need_pie = True + else: + # not specified, only build PIEs if supported by compiler + need_pie = False + if conf.check_cc(cflags='-fPIE', ldflags='-pie', mandatory=need_pie, + msg="Checking compiler for PIE support"): + conf.env['ENABLE_PIE'] = True + + if Options.options.enable_relro != False: + if Options.options.enable_relro == True: + need_relro = True + else: + # not specified, only build RELROs if supported by compiler + need_relro = False + if conf.check_cc(cflags='', ldflags='-Wl,-z,relro,-z,now', mandatory=need_relro, + msg="Checking compiler for full RELRO support"): + conf.env['ENABLE_RELRO'] = True def etags(ctx): '''build TAGS file using etags''' @@ -237,6 +261,9 @@ def dist(): '''makes a tarball for distribution''' sambaversion = samba_version.load_version(env=None) + os.system(srcdir + "/release-scripts/build-manpages-nogit") + samba_dist.DIST_FILES('bin/docs:docs', extend=True) + if sambaversion.IS_SNAPSHOT: # write .distversion file and add to tar if not os.path.isdir(blddir): @@ -246,7 +273,7 @@ def dist(): distveroption = field + '=' + str(sambaversion.vcs_fields[field]) distversionf.write(distveroption + '\n') distversionf.flush() - samba_dist.DIST_FILES('%s:.distversion' % distversionf.name) + samba_dist.DIST_FILES('%s:.distversion' % distversionf.name, extend=True) samba_dist.dist() distversionf.close()