X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=wscript;h=47b7b50639fda67bd8bd13ba8a7eeed55dfee330;hb=a9331e482c0120d70386edb69d924b1c77fa28c7;hp=dad54d1c6cba2878d14091c33863f01808a00dd0;hpb=41333f92d0c78e44a524f2248f5ae641ad59abf3;p=mat%2Fsamba.git diff --git a/wscript b/wscript index dad54d1c6c..47b7b50639 100644 --- a/wscript +++ b/wscript @@ -12,7 +12,7 @@ import wafsamba, Options, samba_dist, Scripting, Utils, samba_version samba_dist.DIST_DIRS('.') -samba_dist.DIST_BLACKLIST('.gitignore .bzrignore source4/selftest/provisions/alpha13') +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,6 +56,22 @@ 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) + 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') + gr = opt.option_group('developer options') @@ -140,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"): @@ -160,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''' @@ -229,13 +264,6 @@ def dist(): os.system(srcdir + "/release-scripts/build-manpages-nogit") samba_dist.DIST_FILES('bin/docs:docs', extend=True) - os.system(srcdir + "/source3/autogen.sh") - samba_dist.DIST_FILES('source3/configure', extend=True) - samba_dist.DIST_FILES('source3/autoconf', extend=True) - samba_dist.DIST_FILES('source3/include/autoconf', extend=True) - samba_dist.DIST_FILES('examples/VFS/configure', extend=True) - samba_dist.DIST_FILES('examples/VFS/module_config.h.in', extend=True) - if sambaversion.IS_SNAPSHOT: # write .distversion file and add to tar if not os.path.isdir(blddir):