X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senfscons%2Fsenfutil.py;fp=senfscons%2Fsenfutil.py;h=0000000000000000000000000000000000000000;hb=d33cd468d4ece7c0c98270b4d1a9858e5a94510d;hp=4aae4da2e8cfbc99d4476a7200d23d95cfd7835a;hpb=8a3a987daec0028a9e41abd09c187948c8cb393c;p=senf.git diff --git a/senfscons/senfutil.py b/senfscons/senfutil.py deleted file mode 100644 index 4aae4da..0000000 --- a/senfscons/senfutil.py +++ /dev/null @@ -1,83 +0,0 @@ -import os.path -from SCons.Script import * - -def parseLogOption(value): - stream, area, level = ( x.strip() for x in value.strip().split('|') ) - stream = ''.join('(%s)' % x for x in stream.split('::') ) - if area : area = ''.join( '(%s)' % x for x in area.split('::') ) - else : area = '(_)' - return '((%s,%s,%s))' % (stream,area,level) - -def expandLogOption(target, source, env, for_signature): - if env.get('LOGLEVELS'): - return [ 'SENF_LOG_CONF="' + ''.join( parseLogOption(x) for x in env.subst('$LOGLEVELS').split() )+'"'] - else: - return [] - - -########################################################################### -# 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 - -def SetupForSENF(env): - env.Append( LIBS = [ 'senf', 'rt', '$BOOSTREGEXLIB', - '$BOOSTIOSTREAMSLIB', '$BOOSTSIGNALSLIB', - '$BOOSTFSLIB' ], - BOOSTREGEXLIB = 'boost_regex', - BOOSTIOSTREAMSLIB = 'boost_iostreams', - BOOSTSIGNALSLIB = 'boost_signals', - BOOSTFSLIB = 'boost_filesystem', - CXXFLAGS = [ '-Wno-long-long', - '${"$CXXFLAGS_"+(final and "final" or "debug")}', - '${profile and ("-g","-pg") or None}' ], - LINKFLAGS = [ '${"$LINKFLAGS_"+(final and "final" or "debug")}', - '${profile and "-pg" or None}' ], - SENF_BUILDOPTS = [ '-j%s' % (env.GetOption('num_jobs') or "1") ], - CXXFLAGS_debug = [ '-O0', '-g', '-fno-inline' ], - LINKFLAGS_debug = [ '-g', '-rdynamic' ], - - expandLogOption = expandLogOption, - CPPDEFINES = [ '$expandLogOptions' ], - ) - - # Add command-line options: 'LOGLEVELS' and 'final' - opts = Options() - opts.Add( 'LOGLEVELS', 'Special log levels. Syntax: |[]| ...', - '${"$LOGLEVELS_"+(final and "final" or "debug")}' ) - opts.Add( BoolOption('final', 'Build final (optimized) build', False) ) - opts.Add( BoolOption('debug', 'Link in debug symbols', False) ) - opts.Add( BoolOption('profile', 'Add profile information', False) ) - opts.Update(env) - - env.Help(opts.GenerateHelpText(env)) - - # If we have a symbolic link (or directory) 'senf', we use it as our - # senf repository - if os.path.exists('senf'): - print "\nUsing SENF in './senf'\n" - env.Append( LIBPATH = [ 'senf' ], - CPPPATH = [ 'senf/include' ], - SENF_BUILDOPTS = [ '${final and "final=1" or None}', - '${debug and "debug=1" or None}', - '${profile and "profile=1" or None}' ], - CPPDEFINES = [ '${not(final) and "SENF_DEBUG" or None}' ] ) - - #env.Default( - # env.AlwaysBuild( - # env.Command('senf/libsenf.a', [], [ 'scons -C %s $SENF_BUILDOPTS libsenf.a' % os.path.realpath('senf')]))) - elif os.path.exists('../senf'): - print "\nUsing SENF in '../senf'\n" - env.Append( LIBPATH = [ '../senf' ], - CPPPATH = [ '../senf/include' ], - SENF_BUILDOPTS = [ '${final and "final=1" or None}', - '${debug and "debug=1" or None}', - '${profile and "profile=1" or None}' ], - CPPDEFINES = [ '${not(final) and "SENF_DEBUG" or None}' ] ) - - #env.Default( - # env.AlwaysBuild( - # env.Command('senf/libsenf.a', [], [ 'scons -C %s $SENF_BUILDOPTS libsenf.a' % os.path.realpath('senf')]))) - else: - print '\nUsing global SENF\n'