# -*- python -*-
+import glob
+
Import('env')
###########################################################################
context.Result(name)
context.sconf.Define("HAVE_%s_COPYN" % define,
1,
- "Define one of "
+ "Define one of "
+ ", ".join(("HAVE_%s_COPYN" % elt[2] for elt in versions)))
return ret
# alloca
ret = context.TryCompile("#include <alloca.h>\n"
- "void test(int a){void *b(alloca(a));}"
+ "void test(int a){void *b(alloca(a));}",
".cc")
if ret: return "alloca"
-
+
# fallback: new
return "new"
###########################################################################
-conf = env.Configure(clean=False,
- help=False,
- config_h="#/senf/autoconf.hh")
+conf = env.Configure(clean=False, help=False, config_h="#/senf/autoconf.hh")
# Boost
-res = conf.CheckBoostVersion()
-if not res : conf.Fail("Boost includes not found")
-
+res = conf.CheckBoostVersion(fail=True)
res = conf.CheckBoostVariants()
-
-res = conf.CheckCXXHeader("boost/bimap.hpp")
-conf.env.Replace(NEED_BOOST_EXT = not res)
-
res = conf.CheckCXXHeader("boost/spirit/include/classic.hpp")
-
+res = conf.CheckCXXHeader("boost/bimap.hpp"); \
+ conf.env.Replace(NEED_BOOST_EXT = not res)
+
# Compiler support
res = conf.CheckTempBufferStrategy()
# Standard library stuff
-res = conf.CheckSTLCopyN()
-if not res : conf.Fail("No 'copy_n' implementation found")
-
+res = conf.CheckCHeader("execinfo.h")
+res = conf.FindCHeader("timerfd.h", [ 'sys', 'linux' ])
res = conf.CheckFunc("timerfd_create")
+res = conf.CheckSymbolWithExpression(
+ "le16toh", "le16toh(0)", "#include <senf/Packets/80211Bundle/radiotap/platform.h>")
+res = conf.CheckSymbolWithExpression(
+ "le32toh", "le32toh(0)", "#include <senf/Packets/80211Bundle/radiotap/platform.h>")
+res = conf.CheckByteorder()
+res = conf.CheckSTLCopyN(); \
+ conf.env.Fail(condition=not res, message="No 'copy_n' implementation found")
# valgrind
-res = conf.CheckValgrind() \
- and conf.CheckValgrindWildcards()
-conf.env.Replace(HAVE_VALGRIND = res)
+res = conf.CheckValgrind() and conf.CheckValgrindWildcards(); \
+ conf.env.Replace(HAVE_VALGRIND = res)
+
+###########################################################################
+
+# run configure scripts from external modules
+Export('conf')
+
+sconscripts = sorted(glob.glob("senf/Ext/*/SConfigure"))
+if sconscripts:
+ SConscript(sconscripts)
+
+###########################################################################
env = conf.Finish()
+