minor fixes for clang++
[senf.git] / site_scons / senfutil.py
index 0abb05e..da24b19 100644 (file)
@@ -54,8 +54,8 @@ Special command line parameters:
     for k,v in ARGLIST:
         if not unknv.has_key(k) : continue
         if k.endswith('+'):
-            env.Append(**{k[:-1]: [v]})
-            env.Append(ARGUMENT_VARIABLES = {k[:-1]:[v]})
+            env.Append(**{k[:-1]: v})
+            env.Append(ARGUMENT_VARIABLES = {k[:-1]:v})
         else:
             env.Replace(**{k: v})
             env.Append(ARGUMENT_VARIABLES = {k:v})
@@ -169,7 +169,8 @@ def SetupForSENF(env, senf_path = [], flavor=None):
         CXXFLAGS          = [ '-Wno-long-long', '-fno-strict-aliasing' ],
         LINKFLAGS         = [ '-rdynamic' ],
         LIBS              = [ 'senf$LIBADDSUFFIX', 'rt', '$BOOSTREGEXLIB',
-                              '$BOOSTSIGNALSLIB', '$BOOSTFSLIB' ],
+                              '$BOOSTSIGNALSLIB', '$BOOSTFSLIB', '$BOOSTSYSTEMLIB',
+                              '$BOOSTDATETIMELIB' ],
         )
 
     try:
@@ -224,12 +225,16 @@ def DefaultOptions(env):
 
     # Set nice default options
     env.Append(
-        CXXFLAGS         = [ '-Wall', '-Woverloaded-virtual',  "${profile and '-pg' or None}" ],
-        CXXFLAGS_final   = [ '-O3' ],
+        CXXFLAGS_CLANG   = [ '-Wno-unneeded-internal-declaration' ], # needed for BOOST_PARAMETER_KEYWORD
+        CXXFLAGS         = [ '-Wall', '-Woverloaded-virtual',  "${profile and '-pg' or None}",
+                             '${str(CXX).split("/")[-1] == "clang++" and "$CXXFLAGS_CLANG" or None}' ],
+        CXXFLAGS_final   = [ '-O3', '-fno-threadsafe-statics', '-fno-stack-protector',
+                               "${profile and ' ' or '-ffunction-sections'}" ],
         CXXFLAGS_normal  = [ '-O2', '-g' ],
         CXXFLAGS_debug   = [ '-O0', '-g' ],
 
         LINKFLAGS        = [ "${profile and '-pg' or None}" ],
+        LINKFLAGS_final  = [ "${profile and ' ' or '-Wl,--gc-sections'}" ],
         LINKFLAGS_normal = [ '-Wl,-S' ],
         LINKFLAGS_debug  = [ '-g' ],
     )