Fix 'scons clean' dependencies
[senf.git] / senfscons / SENFSCons.py
index 623c9d7..753f692 100644 (file)
@@ -51,6 +51,7 @@ SCONS_TOOLS = [
     "Dia2Png",
     "CopyToDir",
     "InstallIncludes",
+    "ProgramNoScan",
 ]
 
 opts = None
@@ -349,6 +350,9 @@ def Objects(env, sources, testSources = None, LIBS = [], OBJECTS = []):
     return objects
 
 def InstallIncludeFiles(env, files):
+    # Hrmpf ... why do I need this in 0.97??
+    if env.GetOption('clean'):
+        return
     target = env.Dir(env['INCLUDEINSTALLDIR'])
     base = env.Dir(env['INSTALL_BASE'])
     for f in files:
@@ -363,8 +367,7 @@ def InstallWithSources(env, targets, dir, sources, testSources = [], no_includes
     if type(testSources) is not type([]):
         testSources = [ testSources ]
 
-    installs = []
-    installs.append( env.Install(dir, targets) )
+    installs = [ env.Install(dir, targets) ]
 
     if not no_includes:
         target = env.Dir(env['INCLUDEINSTALLDIR']).Dir(
@@ -500,8 +503,8 @@ def Doxygen(env, doxyfile = "Doxyfile", extra_sources = []):
     l = len(env.Dir('#').abspath)
     if htmlnode:
         env.Alias('install_all',
-                  env.Install( '$DOCINSTALLDIR' + htmlnode.dir.dir.abspath[l:],
-                               htmlnode.dir ))
+                  env.Command('$DOCINSTALLDIR' + htmlnode.dir.abspath[l:], htmlnode.dir,
+                              [ SCons.Defaults.Copy('$TARGET','$SOURCE') ]))
     if tagnode:
         env.Alias('install_all',
                   env.Install( '$DOCINSTALLDIR' + tagnode.dir.abspath[l:],
@@ -620,7 +623,7 @@ def Binary(env, binary, sources, testSources = None, LIBS = [], OBJECTS = [], no
     if objects:
         progEnv = env.Copy()
         progEnv.Prepend(LIBS = LIBS)
-        program = progEnv.Program(target=binary,source=objects+OBJECTS)
+        program = progEnv.ProgramNoScan(target=binary,source=objects+OBJECTS)
         env.Default(program)
         env.Depends(program, [ env.File(LibPath(x)) for x in LIBS ])
         env.Alias('default', program)
@@ -631,8 +634,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.Alias('all', 'all_includes.hh')
-    env.Clean('all', 'all_includes.hh')
-    
+    target = env.File("all_includes.hh")
+    file(target.abspath,"w").write("".join([ '#include "%s"\n' % f
+                                             for f in headers ]))
+    env.Clean('all', target)