X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=site_scons%2Fsenfutil.py;h=29992a3d3fc362b6422790e1b4216b9bd2b617f1;hb=0b8ca53e27f21515b66491c8df3d480c77810346;hp=2c88b6402e2d30012773def0eccd7f8066c40ed9;hpb=d066239ba1955b4679e7e859921233e73420f474;p=senf.git diff --git a/site_scons/senfutil.py b/site_scons/senfutil.py index 2c88b64..29992a3 100644 --- a/site_scons/senfutil.py +++ b/site_scons/senfutil.py @@ -1,5 +1,6 @@ import os.path, glob, site_tools.Yaptu from SCons.Script import * +import senfconf senfutildir = os.path.dirname(__file__) @@ -66,7 +67,8 @@ Special command line parameters: # This looks much more complicated than it is: We do three things here: # a) switch between final or debug options # b) parse the LOGLEVELS parameter into the correct SENF_LOG_CONF syntax -# c) check for a local SENF, set options accordingly and update that SENF if needed +# c) check for a local SENF, set options accordingly +# d) check, wether the boost extensions are needed def SetupForSENF(env, senf_path = []): global senfutildir @@ -75,11 +77,9 @@ def SetupForSENF(env, senf_path = []): loadTools(env) env.Append( - LIBS = [ 'senf', 'rt', '$BOOSTREGEXLIB', - '$BOOSTIOSTREAMSLIB', '$BOOSTSIGNALSLIB', - '$BOOSTFSLIB' ], + LIBS = [ 'rt' ], - CXXFLAGS = [ '-Wno-long-long', '$CXXFLAGS_' ], + CXXFLAGS = [ '-Wno-long-long', '$CXXFLAGS_', '-fno-strict-aliasing' ], CXXFLAGS_ = BuildTypeOptions('CXXFLAGS'), CPPDEFINES = [ '$expandLogOption', '$CPPDEFINES_' ], @@ -137,6 +137,7 @@ def SetupForSENF(env, senf_path = []): CPPPATH = [ sconspath ], BUNDLEDIR = sconspath, SENFDIR = sconspath, + SENFINCDIR = sconspath, SENFSYSLAYOUT = False) try: env.MergeFlags(file(os.path.join(path,"senf.conf")).read()) @@ -150,26 +151,37 @@ def SetupForSENF(env, senf_path = []): print "\nUsing system SENF in '%s/'\n" % sconspath env.Append(BUNDLEDIR = os.path.join(sconspath,"lib/senf"), SENFDIR = sconspath, + SENFINCDIR = '%s/include' % sconspath, SENFSYSLAYOUT = True) break else: if not env.GetOption('no_progress'): print "\nSENF library not found .. trying build anyway !!\n" + Configure(env) + + # Only add senf after all configure checks have run + env.Append( + CPPPATH = '${NEED_BOOST_EXT and "$SENFINCDIR/boost_ext" or None}', + LIBS = [ 'senf', '$BOOSTREGEXLIB', '$BOOSTIOSTREAMSLIB', '$BOOSTSIGNALSLIB', + '$BOOSTFSLIB' ], + ) + env.Alias('all', '#') def DefaultOptions(env): env.Append( CXXFLAGS = [ '-Wall', '-Woverloaded-virtual' ], - CXXFLAGS_final = [ '-O2' ], - CXXFLAGS_normal = [ '-O0', '-g' ], - CXXFLAGS_debug = [ '$CXXFLAGS_normal' ], + CXXFLAGS_final = [ '-O3' ], + CXXFLAGS_normal = [ '-O2', '-g' ], + CXXFLAGS_debug = [ '-O0', '-g' ], LINKFLAGS_normal = [ '-Wl,-S' ], LINKFLAGS_debug = [ '-g' ], ) + def Glob(env, exclude=[], subdirs=[]): testSources = env.Glob("*.test.cc", strings=True) sources = [ x @@ -184,6 +196,22 @@ def Glob(env, exclude=[], subdirs=[]): testSources.sort() return (sources, testSources) + +def Configure(env): + conf = env.Configure(clean=False, + help=False, + custom_tests=senfconf.Tests(), + config_h="#/senf/autoconf.hh") + env.Replace( + BOOST_VERSION = conf.CheckBoostVersion(), + BOOST_VARIANT = conf.CheckBoostVariants( '', 'mt' ), + NEED_BOOST_EXT = not conf.CheckCXXHeader("boost/bimap.hpp"), + HAVE_BOOST_SPIRIT_INCLUDE_CLASSIC_HPP = conf.CheckCXXHeader( + "boost/spirit/include/classic.hpp"), + ) + conf.Finish() + + tagfiles = None def Doxygen(env, doxyheader=None, doxyfooter=None, doxycss=None, mydoxyfile=False, senfdoc_path=[],