X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senfscons%2FSENFSCons.py;h=623c9d7b81c2b8de2cce81a67b43b425e650b8ff;hb=54fe6b70dd2c783a37f4bbd62a166160adae0e0f;hp=0719475ea083232dbe3ff2be476b69310f07d726;hpb=e898f807e2bdd260a0967051829fe307e2e4a0bd;p=senf.git diff --git a/senfscons/SENFSCons.py b/senfscons/SENFSCons.py index 0719475..623c9d7 100644 --- a/senfscons/SENFSCons.py +++ b/senfscons/SENFSCons.py @@ -118,7 +118,7 @@ def Finalizer(f): # libraries are provided by the distribution, you probably don't need # to specify any parameters. If your configuration is more complex, # refer to the Boost.Build +# href="http://www.boost.org/tools/build/v2/index.html">Boost.Build # documentation for a definition of the terms used above (toolset, # variant, runtime ...). # @@ -245,10 +245,13 @@ def MakeEnvironment(): CPPDEFINES = [ 'NDEBUG' ]) else: env.Append(CXXFLAGS = [ '-O0', '-g', '-fno-inline' ], + # The boost-regex library is not compiled with _GLIBCXX_DEBUG so this fails. + # CPPDEFINES = [ '_GLIBCXX_DEBUG' ], LINKFLAGS = [ '-g' ]) env.Append(CPPDEFINES = [ '$EXTRA_DEFINES' ], - LIBS = [ '$EXTRA_LIBS' ]) + LIBS = [ '$EXTRA_LIBS' ], + ALLLIBS = []) return env @@ -288,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 @@ -345,6 +348,13 @@ def Objects(env, sources, testSources = None, LIBS = [], OBJECTS = []): return objects +def InstallIncludeFiles(env, files): + target = env.Dir(env['INCLUDEINSTALLDIR']) + base = env.Dir(env['INSTALL_BASE']) + for f in files: + src = env.File(f) + env.Alias('install_all', env.Install(target.Dir(src.dir.get_path(base)), src)) + def InstallWithSources(env, targets, dir, sources, testSources = [], no_includes = False): if type(sources) is type(()): sources, testSources = sources @@ -362,7 +372,6 @@ def InstallWithSources(env, targets, dir, sources, testSources = [], no_includes source = targets if testSources: source.append( env.File('.test.bin') ) - installs.append(env.InstallIncludes( target = target, source = targets, @@ -578,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 @@ -589,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 @@ -612,7 +623,16 @@ 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) return program + +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') +