X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=SConstruct;h=045c091c4a88410ea50cc863f741e8cd882e4438;hb=79564b90f6c9f7cd0bc5b11a6146bb7067b11a75;hp=435bfb492a26b8f5ec4bcce9e997076aa9b44324;hpb=1469adc35a0c8bd8b5c7a505fedd823cc1a79a7f;p=senf.git diff --git a/SConstruct b/SConstruct index 435bfb4..045c091 100644 --- a/SConstruct +++ b/SConstruct @@ -17,25 +17,44 @@ senfutil.loadTools(env) env.Help(""" Additional top-level build targets: -prepare Create all target files not part of the repository -default Build all default targets (like calling scons with no arguments) -examples Build all examples -all_tests Build and run unit tests for all modules -all_docs Build documentation for all modules -all Build everything -install_all Install SENF into $$PREFIX -deb Build debian source and binary package -debsrc Build debian source package -debbin Build debian binary package -linklint Check links of doxygen documentation with 'linklint' -fixlinks Fix broken links in doxygen documentation -all_valgrinds Run all tests under valgrind/memcheck -lcov Generate test coverage output in doc/lcov and lcov.info +prepare Create all target files not part of the repository +default Build all default targets (like calling scons with no arguments) +examples Build all examples +all_tests Build and run unit tests for all modules +test_changes Build tests only for files with local changes (queries svn or git) +all_docs Build documentation for all modules +all Build everything +install_all Install SENF into $$PREFIX +deb Build debian source and binary package +debsrc Build debian source package +debbin Build debian binary package +linklint Check links of doxygen documentation with 'linklint' +fixlinks Fix broken links in doxygen documentation +all_valgrinds Run all tests under valgrind/memcheck +lcov Generate test coverage output in doc/lcov and lcov.info You may execute targets on a remote host (if the directory layout is the same) by calling scons @[@] + +Some more elaborate unit tests may be enabled by setting appropritate variables +in the shell (unix) environment + +SENF_TIMING_CRITICAL_TESTS + Enables unit tests which depend on timing measurements. These + unit tests should only be run on a single core and an otherwise + idle system. + +SENF_WLAN_TEST_INTERFACE + WLAN interface to use for testing. The interface should not be + actively in use. + +SENF_ETH_TEST_INTERFACE + Ethernet interface to use for testing. The interface should not + be actively in use. + +Some unit tests will only run when executed to 'root'. """) env.Append( @@ -96,12 +115,16 @@ 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", SCONSBIN = env.File("#/tools/scons"), - SCONSARGS = [ '-Q', '-j$CONCURRENCY_LEVEL', 'debug=$debug', 'final=$final' ], + SCONSARGS = [ '-Q', '-j$CONCURRENCY_LEVEL', 'debug=$debug', 'final=$final' ] + \ + [ '%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, @@ -110,6 +133,11 @@ env.SetDefault( FLAVOR = '', ) +# ugly hack for ubuntu karmic +# ToDo: auto-configure alike support +if os.path.exists('/usr/lib/libboost_regex-mt.so'): + env.Append( BOOST_VARIANT = '-mt' ) + # Set variables from command line senfutil.parseArguments( env, @@ -120,7 +148,8 @@ senfutil.parseArguments( ) if 'test_changes' in COMMAND_LINE_TARGETS and not env.has_key('only_tests'): - env['only_tests'] = " ".join(x.abspath for x in SparseTestHack.findSCMChanges()) + import SparseTestHack + env['only_tests'] = " ".join(x.abspath for x in SparseTestHack.findSCMChanges(env)) if env.has_key('only_tests') : env['sparse_tests'] = True Export('env') @@ -151,7 +180,8 @@ SConscript("Examples/SConscript") SConscript("HowTos/SConscript") SConscript("doclib/SConscript") if env['sparse_tests']: - SparseTestHack.build(env, 'test_changes' in COMMAND_LINE_TARGETS) + verbose = 'test_changes' in COMMAND_LINE_TARGETS + SparseTestHack.build(env, verbose, verbose) ########################################################################### # Define build targets