Update SENF to compile using g++ 4.3.2 (Ubuntu 8.10)
[senf.git] / senfscons / SENFSCons.py
index 94b1b1c..7f08d0b 100644 (file)
@@ -25,6 +25,7 @@
 import os.path, glob
 import SCons.Options, SCons.Environment, SCons.Script.SConscript, SCons.Node.FS
 import SCons.Defaults, SCons.Action
+from SCons.Script import *
 
 ## \defgroup use Predefined Framework Configurators
 #
@@ -252,7 +253,7 @@ def MakeEnvironment():
         # The boost-regex library is not compiled with _GLIBCXX_DEBUG so this fails:
         #          CPPDEFINES = [ '_GLIBCXX_DEBUG' ],
         env.Append(CXXFLAGS = [ '-O0', '-g' ],
-                   CPPDEFINES = [ 'SENF_DEBUG' ],
+                   CPPDEFINES = { 'SENF_DEBUG': ''},
                    LINKFLAGS = [ '-g', '-rdynamic' ])
 
     env.Append(CPPDEFINES = [ '$EXTRA_DEFINES' ],
@@ -316,7 +317,8 @@ def Test(env, sources, LIBS = [], OBJECTS = []):
     if compileTestSources:
         test.extend(env.CompileCheck(source = compileTestSources))
     env.Alias('all_tests', test)
-    env.Alias(env.File('test'), test)
+    env.Command(env.File('test'), test, [])
+    #env.Alias(env.File('test'), test)
     
 
 ## \brief Build object files
@@ -347,10 +349,10 @@ def Objects(env, sources, testSources = None, LIBS = [], OBJECTS = [], no_includ
     if sources:
         obsources = [ source
                       for source in sources
-                      if not str(source).endswith('.o') ]
+                      if type(source) is type('') and not source.endswith('.o') ]
         objects = [ source
                     for source in sources
-                    if str(source).endswith('.o') ]
+                    if type(source) is not type('') or source.endswith('.o') ]
         if obsources:
             objects += env.Object(obsources)
 
@@ -370,7 +372,8 @@ def Objects(env, sources, testSources = None, LIBS = [], OBJECTS = [], no_includ
         # Hmm ... here I'd like to use an Alias instead of a file
         # however the alias does not seem to live in the subdirectory
         # which breaks 'scons -u test'
-        env.Alias(env.File('test'), test)
+        env.Command(env.File('test'), test, [])
+        #env.Alias(env.File('test'), test)
 
     return objects
 
@@ -451,6 +454,8 @@ def InstallWithSources(env, targets, dir, sources, testSources = [], no_includes
 #
 # \ingroup target
 def Doxygen(env, doxyfile = "Doxyfile", extra_sources = []):
+    if not 'all' in BUILD_TARGETS and not 'doc' in BUILD_TARGETS and not 'all_docs' in BUILD_TARGETS:
+        return []
     # ARGHHH !!! without the [:] we are changing the target list
     #        ||| WITHIN THE DOXYGEN BUILDER
     docs = env.Doxygen(doxyfile)[:]
@@ -649,7 +654,7 @@ def Binary(env, binary, sources, testSources = None, LIBS = [], OBJECTS = [], no
     objects = Objects(env,sources,testSources,LIBS=LIBS,OBJECTS=OBJECTS)
     program = None
     if objects:
-        progEnv = env.Copy()
+        progEnv = env.Clone()
         progEnv.Prepend(LIBS = [ x + '$LIBADDSUFFIX' for x in LIBS ])
         program = progEnv.ProgramNoScan(target=binary,source=objects+OBJECTS)
         env.Default(program)