Fix the build process to work with the SCons V0.96.1 workaround
g0dil [Tue, 11 Sep 2007 07:33:22 +0000 (07:33 +0000)]
git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@436 270642c3-0616-0410-b53a-bc976706d245

SConstruct
doclib/SConscript
senfscons/Doxygen.py
senfscons/SENFSCons.py

index 8d97ecb..c98eb46 100644 (file)
@@ -6,6 +6,8 @@ import SENFSCons
 
 ###########################################################################
 
+# This hack is needed for SCons V 0.96.1 compatibility. In current SCons versions
+# we can just use 'env.AlwaysBuild(env.Alias(target), [], action)'
 def PhonyTarget(env, target, action):
     env.AlwaysBuild(env.Command(target + '.phony', 'SConstruct', env.Action(action)))
     env.Alias(target, target + '.phony')
@@ -129,6 +131,9 @@ libsenf = env.Library(
     SENFSCons.LibPath('senf'),
     Flatten([ env.File(SENFSCons.LibPath(lib)).sources for lib in env['ALLLIBS'] ]))
 env.Default(libsenf)
+env.Clean('all', 'libsenf.a')
+env.Alias('all', 'libsenf.a')
+
 env.Alias('install_all', env.Install('$LIBINSTALLDIR', libsenf))
 
 env.Clean('all', [ os.path.join(path,f)
index e45344d..cdb9cd6 100644 (file)
@@ -186,3 +186,5 @@ env.Alias('install_all',
                                                   'search_functions.php',
                                                   'search_paths.php',
                                                   'senf.css' ] ))
+
+env.Clean('all', 'doxy-header.html') # I should not need this but I do ...
index 0e8dd24..e5b7b79 100644 (file)
@@ -248,6 +248,10 @@ class DoxyfileParser:
       return self._items
 
 def DoxyfileParse(env,file):
+   # We don't parse source files which do not contain the word 'doxyfile'. SCons will
+   # pass other dependencies to DoxyfileParse which are not doxyfiles ... grmpf ...
+   if not 'doxyfile' in file.lower():
+      return {}
    ENV = {}
    ENV.update(env.get("ENV",{}))
    ENV['TOPDIR'] = env.Dir('#').abspath
index 74e035d..623c9d7 100644 (file)
@@ -291,7 +291,7 @@ def StandardTargets(env):
 #
 # \ingroup target
 def GlobalTargets(env):
-    env.Depends(env.Alias('all'),'#')
+    env.Alias('all', [ 'default', 'all_tests', 'all_docs' ])
 
 ## \brief Return path of a built library within $LOCALLIBDIR
 # \internal
@@ -587,6 +587,7 @@ def Lib(env, library, sources, testSources = None, LIBS = [], OBJECTS = [], no_i
         lib = env.Library(env.File(LibPath(library)),objects)
         env.Default(lib)
         env.Append(ALLLIBS = library)
+        env.Alias('default', lib)
         install = InstallWithSources(env, lib, '$LIBINSTALLDIR', sources, testSources, no_includes)
         env.Alias('install_all', install)
     return lib
@@ -598,6 +599,7 @@ def Object(env, target, sources, testSources = None, LIBS = [], OBJECTS = [], no
     if objects:
         ob = env.Command(target+".o", objects, "ld -r -o $TARGET $SOURCES")
         env.Default(ob)
+        env.Alias('default', ob)
         install = InstallWithSources(env, ob, '$OBJINSTALLDIR', sources, testSources, no_includes)
         env.Alias('install_all', install)
     return ob
@@ -621,6 +623,7 @@ def Binary(env, binary, sources, testSources = None, LIBS = [], OBJECTS = [], no
         program = progEnv.Program(target=binary,source=objects+OBJECTS)
         env.Default(program)
         env.Depends(program, [ env.File(LibPath(x)) for x in LIBS ])
+        env.Alias('default', program)
         install = InstallWithSources(env, program, '$BININSTALLDIR', sources, testSources,
                                      no_includes)
         env.Alias('install_all', install)
@@ -629,6 +632,7 @@ def Binary(env, binary, sources, testSources = None, LIBS = [], OBJECTS = [], no
 def AllIncludesHH(env, headers):
     headers.sort()
     file(env.File("all_includes.hh").abspath,"w").write("".join([ '#include "%s"\n' % f
-                                                                  for f in headers ]))
-    env.Clean('all','all_includes.hh')
+                                                                       for f in headers ]))
+    env.Alias('all', 'all_includes.hh')
+    env.Clean('all', 'all_includes.hh')