lib: talloc: Allow destructors to reparent the object they're called on.
[metze/samba/wip.git] / wscript
diff --git a/wscript b/wscript
index a9954ed6cf5ddb3490c9475c20eee5ee6f448692..85620d6ab6e41f3b9999167c5250aa5f15d819fd 100644 (file)
--- a/wscript
+++ b/wscript
@@ -56,6 +56,14 @@ 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')
+
     gr = opt.option_group('developer options')
 
     opt.add_option('--disable-ntdb',
@@ -82,7 +90,7 @@ def configure(conf):
 
     conf.RECURSE('lib/replace')
 
-    conf.find_program('perl', var='PERL', mandatory=True)
+    conf.SAMBA_CHECK_PERL(mandatory=True)
     conf.find_program('xsltproc', var='XSLTPROC')
 
     conf.SAMBA_CHECK_PYTHON(mandatory=True)
@@ -168,6 +176,15 @@ 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
 
 def etags(ctx):
     '''build TAGS file using etags'''