X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=SConstruct;h=584c3217db81e498db5ae4be3ad67ec3faf994e7;hb=c505c034e5fdc932c02aa3dc3847a5551011d87e;hp=f781e5c459802a2051ed28750a6ec8f540ac5526;hpb=2c20f7f9f7aca88cf6a5f70056d488fe5836b674;p=senf.git diff --git a/SConstruct b/SConstruct index f781e5c..584c321 100644 --- a/SConstruct +++ b/SConstruct @@ -59,11 +59,10 @@ 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') }, - CLEAN_PATTERNS = [ '*~', '#*#', '*.pyc', 'semantic.cache', '.sconsign*' ], + IMPORT_ENV = [ 'PATH', 'HOME', 'SSH_*', 'SENF*', 'CCACHE_*', 'DISTCC_*' ], + + CLEAN_PATTERNS = [ '*~', '#*#', '*.pyc', 'semantic.cache', '.sconsign*', + '.sconf_temp' ], BUILDDIR = '${FLAVOR and "#/build/$FLAVOR" or "#"}', CPPPATH = [ '#', '$BUILDDIR', @@ -96,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' ], @@ -105,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' ], @@ -116,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, @@ -135,6 +131,10 @@ env.SetDefault( FLAVOR = '', ) +env.Replace( + _defines = senfutil.expandDefines +) + # Set variables from command line senfutil.parseArguments( env, @@ -144,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)) @@ -154,30 +160,28 @@ Export('env') ########################################################################### # Configure -# Default configuration (boost stuff) -senfutil.Configure(env) - @senfconf.Test def CheckValgrind(context): context.Message( "Checking for valgrind... " ) - ret = context.TryAction(['valgrind --version >$TARGET']) + ret = context.TryAction(['$VALGRIND --version >$TARGET']) context.Result( ret[1].strip() or False ) return ret[0] @senfconf.Test def CheckValgrindWildcards(context): context.Message( "Checking whether valgrind supports '...' wildcards in suppressions... " ) - ret = context.TryAction(['valgrind --suppressions=$SOURCE /bin/true'], + ret = context.TryAction(['$VALGRIND --suppressions=$SOURCE /bin/true'], "{\n test_suppression\n Memcheck:Addr4\n ...\n fun:foo\n}\n", ".sup") context.Result( ret[0] ) return ret[0] -conf = env.Configure(clean=False, help=False, custom_tests = senfconf.Tests()) -env.Replace( - HAVE_VALGRIND = conf.CheckValgrind() and conf.CheckValgrindWildcards() -) -conf.Finish() +def customChecks(conf): + conf.env.Replace( + HAVE_VALGRIND = conf.CheckValgrind() and conf.CheckValgrindWildcards() + ) + +senfutil.Configure(env, customChecks) # Only add this here, after all configure checks have run @@ -222,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)