action='store_true', dest='without_ad_dc', default=False)
opt.add_option('--with-pie',
- help=("Build Position Independent Executables (default)"),
- action="store_true", dest='enable_pie', default=True)
+ 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')
conf.SAMBA_CONFIG_H('include/config.h')
- if Options.options.enable_pie == True:
- conf.check_cc(cflags='-fPIE', ldflags='-pie', mandatory=True,
- msg="Checking compiler for PIE support")
- conf.env['ENABLE_PIE'] = True
+ 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'''
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):