type = env['final'] and "final" or env['debug'] and "debug" or "normal"
return env[self._var + "_" + type]
+def loadTools(env):
+ global senfutildir
+ tooldir = os.path.join(senfutildir, 'site_tools')
+ for tool in os.listdir(tooldir):
+ name, ext = os.path.splitext(tool)
+ if ext == '.py' and name != "__init__" : env.Tool(name, [ tooldir ])
+
def parseArguments(env, *defs):
vars = Variables(args=ARGUMENTS)
for d in defs : vars.Add(d)
def SetupForSENF(env, senf_path = []):
global senfutildir
senf_path.extend(('senf', os.path.dirname(senfutildir), '/usr/local', '/usr'))
- tooldir = os.path.join(senfutildir, 'site_tools')
- env.Tool('Boost', [ tooldir ])
- env.Tool('PhonyTarget', [ tooldir ])
- env.Tool('Yaptu', [ tooldir ])
- env.Tool('CopyToDir', [ tooldir ])
- env.Tool('Doxygen', [ tooldir ])
+ loadTools(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_' ],
CXXFLAGS_ = BuildTypeOptions('CXXFLAGS'),
LINKFLAGS_normal = [ '-Wl,-S' ],
LINKFLAGS_debug = [ '-g' ],
)
+ # 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' )
+
def Glob(env, exclude=[], subdirs=[]):
testSources = env.Glob("*.test.cc", strings=True)
for x in env.Glob("*.cc", strings=True)
if x not in testSources and x not in exclude ]
for subdir in subdirs:
- testSources += glob.glob(os.path.join(subdir,"*.test.cc"))
+ testSources += env.Glob(os.path.join(subdir,"*.test.cc"), strings=True)
sources += [ x
- for x in env.Glob(os.path.join(subdir,"*.cc"))
+ for x in env.Glob(os.path.join(subdir,"*.cc"), strings=True)
if x not in testSources and x not in exclude ]
sources.sort()
testSources.sort()
else:
for dir, dirs, files in os.walk(senfdocdir):
tagfiles.extend([ os.path.join(dir,f) for f in files if f.endswith('.tag') ])
- if dir.endswith('/doc') : dirs.remove('html')
+ if dir.endswith('/doc') :
+ try: dirs.remove('html')
+ except ValueError: pass
for d in dirs:
if d.startswith('.') : dirs.remove(d)
'tagfiles' : '$TAGFILES',
'output_dir' : 'doc',
'html_dir' : 'html',
- 'html' : 'YES' },
+ 'html' : 'YES',
+ 'DOXYGEN' : '$DOXYGEN' },
TAGFILES = tagfiles,
DOCLIBDIR = libdir,
DOXYGENCOM = "$DOCLIBDIR/doxygen.sh $DOXYOPTS $SOURCE")