X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=SConstruct;h=584c3217db81e498db5ae4be3ad67ec3faf994e7;hb=c505c034e5fdc932c02aa3dc3847a5551011d87e;hp=579a0ad3618b1c6bb8ab4dad25065c00f31fdc95;hpb=6410821f3a63f5ed9fc716c53c891d3bd19b7954;p=senf.git diff --git a/SConstruct b/SConstruct index 579a0ad..584c321 100644 --- a/SConstruct +++ b/SConstruct @@ -59,10 +59,8 @@ Some unit tests will only run when executed to 'root'. """) env.Append( - ENV = { 'PATH' : os.environ.get('PATH'), - 'HOME' : os.environ.get('HOME'), - 'SSH_AGENT_PID': os.environ.get('SSH_AGENT_PID'), - 'SSH_AUTH_SOCK': os.environ.get('SSH_AUTH_SOCK') }, + IMPORT_ENV = [ 'PATH', 'HOME', 'SSH_*', 'SENF*', 'CCACHE_*', 'DISTCC_*' ], + CLEAN_PATTERNS = [ '*~', '#*#', '*.pyc', 'semantic.cache', '.sconsign*', '.sconf_temp' ], @@ -97,7 +95,7 @@ env.Append( INLINE_OPTS_NORMAL = [ '-finline-limit=5000' ], INLINE_OPTS = [ '$INLINE_OPTS_NORMAL' ], CXXFLAGS = [ '-Wall', '-Woverloaded-virtual', '-Wno-long-long', '$INLINE_OPTS', - '-pipe', '$CXXFLAGS_' ], + '-pipe', '$CXXFLAGS_', '-fno-strict-aliasing' ], CXXFLAGS_ = senfutil.BuildTypeOptions('CXXFLAGS'), CXXFLAGS_final = [ '-O3' ], CXXFLAGS_normal = [ '-O2', '-g' ], @@ -106,7 +104,7 @@ env.Append( CPPDEFINES = [ '$expandLogOption', '$CPPDEFINES_' ], expandLogOption = senfutil.expandLogOption, CPPDEFINES_ = senfutil.BuildTypeOptions('CPPDEFINES'), - CPPDEFINES_final = [ ], + CPPDEFINES_final = [ 'SENF_PPI_NOTRACE', 'BOOST_NO_MT' ], CPPDEFINES_normal = [ 'SENF_DEBUG' ], CPPDEFINES_debug = [ '$CPPDEFINES_normal' ], @@ -117,17 +115,14 @@ env.Append( LINKFLAGS_debug = [ '-g' ], ) -# Add all UNIX env vars starting with 'SENF' to the execution environment -env.Append( ENV = dict(((k,v) for k,v in os.environ.iteritems() if k.startswith("SENF"))) ) - env.SetDefault( LIBSENF = "senf", LCOV = "lcov", GENHTML = "genhtml", VALGRIND = "valgrind", SCONSBIN = env.File("#/tools/scons"), - SCONSARGS = [ '-Q', '-j$CONCURRENCY_LEVEL', 'debug=$debug', 'final=$final' ] + \ - [ '%s=%s' % (k,v) for k,v in ARGUMENTS.iteritems() ], + SCONSARGS = ([ '-Q', '-j$CONCURRENCY_LEVEL' ] + + [ '%s=%s' % (k,v) for k,v in ARGUMENTS.iteritems() ]), SCONS = "@$SCONSBIN $SCONSARGS", CONCURRENCY_LEVEL = env.GetOption('num_jobs') or 1, TOPDIR = env.Dir('#').abspath, @@ -136,6 +131,10 @@ env.SetDefault( FLAVOR = '', ) +env.Replace( + _defines = senfutil.expandDefines +) + # Set variables from command line senfutil.parseArguments( env, @@ -145,6 +144,12 @@ senfutil.parseArguments( BoolVariable('sparse_tests', 'Link tests against object files and not the senf lib', False) ) +# Add UNIX env vars matching IMPORT_ENV patterns into the execution environment +env.Append( ENV = dict(( (k,v) + for pattern in env['IMPORT_ENV'] + for k,v in os.environ.iteritems() + if fnmatch.fnmatchcase(k,pattern) )) ) + if 'test_changes' in COMMAND_LINE_TARGETS and not env.has_key('only_tests'): import SparseTestHack env['only_tests'] = " ".join(x.abspath for x in SparseTestHack.findSCMChanges(env)) @@ -171,14 +176,12 @@ def CheckValgrindWildcards(context): context.Result( ret[0] ) return ret[0] -# Default configuration (boost stuff) -senfutil.Configure(env) +def customChecks(conf): + conf.env.Replace( + HAVE_VALGRIND = conf.CheckValgrind() and conf.CheckValgrindWildcards() + ) -conf = env.Configure(clean=False, help=False, custom_tests = senfconf.Tests()) -env.Replace( - HAVE_VALGRIND = conf.CheckValgrind() and conf.CheckValgrindWildcards() -) -conf.Finish() +senfutil.Configure(env, customChecks) # Only add this here, after all configure checks have run @@ -223,10 +226,12 @@ if env['sparse_tests']: #### install_all, default, all_tests, all env.Install('${SCONSINSTALLDIR}', [ 'site_scons/__init__.py', 'site_scons/senfutil.py', + 'site_scons/senfconf.py', 'site_scons/yaptu.py' ]) env.InstallDir('${SCONSINSTALLDIR}', [ 'site_scons/site_tools', 'site_scons/lib' ], FILTER_SUFFIXES=[ '','.css','.pl','.py','.sh','.sty','.xml','.xsl','.yap' ]) -env.Install('${INCLUDEINSTALLDIR}', 'boost') +env.Install('${INCLUDEINSTALLDIR}', 'boost_ext') +env.Install('${INCLUDEINSTALLDIR}/senf', 'senf/boost_intrusive') env.Alias('install_all', env.FindInstalledFiles()) env.Alias('default', DEFAULT_TARGETS)