Fix documentation dependencies
[senf.git] / SConstruct
index a972bf4..b7484c1 100644 (file)
@@ -1,8 +1,6 @@
 # -*- python -*-
 
 import sys, glob, os.path, fnmatch
-sys.path.append(Dir('#/senfscons').abspath)
-sys.path.append(Dir('#/doclib').abspath)
 import SENFSCons, senfutil
 
 ###########################################################################
@@ -11,14 +9,14 @@ import SENFSCons, senfutil
 env = Environment()
 
 # Load all the local SCons tools
-env.Tool('Doxygen', [ 'senfscons' ])
-env.Tool('Dia2Png', [ 'senfscons' ])
-env.Tool('PkgDraw', [ 'senfscons' ])
-env.Tool('InstallSubdir', [ 'senfscons' ])
-env.Tool('CopyToDir', [ 'senfscons' ])
-env.Tool('Boost', [ 'senfscons' ])
-env.Tool('CombinedObject', [ 'senfscons' ])
-env.Tool('PhonyTarget', [ 'senfscons' ])
+env.Tool('Doxygen')
+env.Tool('Dia2Png')
+env.Tool('PkgDraw')
+env.Tool('InstallSubdir')
+env.Tool('CopyToDir')
+env.Tool('Boost')
+env.Tool('CombinedObject')
+env.Tool('PhonyTarget')
 
 env.Help("""
 Additional top-level build targets:
@@ -52,7 +50,7 @@ env.Append(
    ENV                    = { 'PATH' : os.environ.get('PATH') },
    CLEAN_PATTERNS         = [ '*~', '#*#', '*.pyc', 'semantic.cache', '.sconsign*', '.sconsign' ],
 
-   CPPPATH                = [ '#/include' ],
+   CPPPATH                = [ '#' ],
    LOCALLIBDIR            = '#',
    LIBPATH                = [ '$LOCALLIBDIR' ],
    LIBS                   = [ '$LIBSENF$LIBADDSUFFIX', 'rt', '$BOOSTREGEXLIB', 
@@ -60,11 +58,11 @@ env.Append(
    TEST_EXTRA_LIBS        = [  ],
 
    PREFIX                 = '/usr/local',
-   LIBINSTALLDIR          = '$PREFIX/lib',
-   BININSTALLDIR          = '$PREFIX/bin',
-   INCLUDEINSTALLDIR      = '$PREFIX/include',
+   LIBINSTALLDIR          = '$PREFIX',
+   BININSTALLDIR          = '$PREFIX',
+   INCLUDEINSTALLDIR      = '$PREFIX',
    OBJINSTALLDIR          = '$LIBINSTALLDIR',
-   DOCINSTALLDIR          = '$PREFIX/doc',
+   DOCINSTALLDIR          = '$PREFIX/docs',
    CPP_INCLUDE_EXTENSIONS = [ '.h', '.hh', '.ih', '.mpp', '.cci', '.ct', '.cti' ],
    CPP_EXCLUDE_EXTENSIONS = [ '.test.hh' ],
 
@@ -113,26 +111,18 @@ Export('env')
 if not os.path.exists("Doxyfile.local"):
     Execute(Touch("Doxyfile.local"))
 
-# Create local_config.h
-if not env.GetOption('clean') and not os.path.exists("local_config.hh"):
-    Execute(Touch("local_config.hh"))
-
 if not env.GetOption('clean') and not os.path.exists(".prepare-stamp") \
    and not os.environ.get("SCONS") and COMMAND_LINE_TARGETS != [ 'prepare' ]:
     env.Execute([ "scons prepare" ])
 
-# Load SConscripts. Need to load some first (they change the global environment)
-initSConscripts = [ 
-    "debian/SConscript",
-    "doclib/SConscript",
-]
-
-SConscript(initSConscripts)
-
-if os.path.exists('SConscript.local'):
-    SConscript('SConscript.local')
+# Load SConscripts
 
-SConscript(list(set(glob.glob("*/SConscript")) - set(initSConscripts)))
+SConscript("debian/SConscript")
+if os.path.exists('SConscript.local') : SConscript('SConscript.local')
+SConscript("senf/SConscript")
+SConscript("Examples/SConscript")
+SConscript("HowTos/SConscript")
+SConscript("doclib/SConscript")
 
 ###########################################################################
 # Define build targets
@@ -141,10 +131,9 @@ SConscript(list(set(glob.glob("*/SConscript")) - set(initSConscripts)))
 env.Depends(SENFSCons.Doxygen(env), env.Value(env['ENV']['REVISION']))
 
 #### libsenf.a
-libsenf = env.Library(env.subst("$LIBSENF$LIBADDSUFFIX"), env['ALLOBJECTS'])
+libsenf = env.Library("$LOCALLIBDIR/${LIBSENF}${LIBADDSUFFIX}", env['ALLOBJECTS'])
 env.Default(libsenf)
 
-env.InstallSubdir(target = '$INCLUDEINSTALLDIR', source = [ 'config.hh' ])
 env.Install('$LIBINSTALLDIR', libsenf)
 
 #### install_all, default, all_tests, all
@@ -179,6 +168,7 @@ if env.GetOption('clean'):
                        for path, subdirs, files in os.walk('.')
                        for pattern in env['CLEAN_PATTERNS']
                        for f in fnmatch.filter(files,pattern) ])
+    env.Clean('all', '.')
 
 if not env.GetOption('clean') and not os.path.exists(".prepare-stamp"):
     Execute(Touch(".prepare-stamp"))