allow overriding optimization flags completely
authorNils Philippsen <nils@tiptoe.de>
Mon, 28 Oct 2013 08:32:37 +0000 (09:32 +0100)
committerNils Philippsen <nils@tiptoe.de>
Mon, 28 Oct 2013 08:32:37 +0000 (09:32 +0100)
If an optimization level ("-O<something>") is present in the argument
for --arch, do not prepend default optimization flags.

wscript

diff --git a/wscript b/wscript
index 3d016326d5901266d80d06817483f08dd318d675..de83023783424853aa987531be7cefe71ffa25e9 100644 (file)
--- a/wscript
+++ b/wscript
@@ -303,13 +303,22 @@ def set_compiler_flags (conf,opt):
     # prepend boiler plate optimization flags that work on all architectures
     #
 
-    optimization_flags[:0] = [
-            "-O3",
-            "-fomit-frame-pointer",
-            "-ffast-math",
-            "-fstrength-reduce",
-            "-pipe"
-            ]
+    optimization_flags[:0] = ["-pipe"]
+
+    # don't prepend optimization flags if "-O<something>" is present
+    prepend_opt_flags = True
+    for flag in optimization_flags:
+        if flag.startswith("-O"):
+            prepend_opt_flags = False
+            break
+
+    if prepend_opt_flags:
+        optimization_flags[:0] = [
+                "-O3",
+                "-fomit-frame-pointer",
+                "-ffast-math",
+                "-fstrength-reduce"
+                ]
 
     if opt.debug:
         conf.env.append_value('CFLAGS', debug_flags)