X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=SConfigure;fp=SConfigure;h=40382e8f7e3f1e5fc97c3c7b28dc0c4b77dc51d3;hb=5083ed2a2fe087df2f981b3f66eaf0fb130243eb;hp=5d7dae232d29d74c013e2351c2e8bd8d2d780a29;hpb=01e8fa6cf173c60c3deb47c29c6d56718ef9548e;p=senf.git diff --git a/SConfigure b/SConfigure index 5d7dae2..40382e8 100644 --- a/SConfigure +++ b/SConfigure @@ -69,6 +69,37 @@ def CheckValgrindWildcards(context): context.Result( ret[0] ) return ret[0] +@env.ConfTest() +def CheckExpression(context, name, expression, header="", language="C"): + import SCons.Conftest + + lang, suffix, msg = SCons.Conftest._lang2suffix(language) + if msg: + context.Message("Cannot check for header file %s: \n" % header_name) + context.Result(msg) + return False + + text = ("#include \n" + "%s\n" + "int main() {\n" + "%s;\n" + "return 0;\n" + "}\n") % (header, expression) + + context.Message("Checking for valid %s expression %s... " % (lang, expression)) + ret = context.TryLink(text, suffix) + context.Result(ret) + if ret: + import re + key = name.upper() + key = re.sub('[^A-Z0-9_]', '_', key) + context.sconf.Define("HAVE_%s" % key, + 1, + "Define to 1 if the expression `%s' is valid on your system" + % expression) + + return ret + ########################################################################### conf = env.Configure(clean=False, help=False, config_h="#/senf/autoconf.hh") @@ -85,6 +116,10 @@ res = conf.CheckTempBufferStrategy() # Standard library stuff res = conf.CheckFunc("timerfd_create") +res = conf.CheckExpression("le16toh", "le16toh(0)", + "#include ") +res = conf.CheckExpression("le32toh", "le32toh(0)", + "#include ") res = conf.CheckSTLCopyN(); \ conf.env.Fail(condition=not res, message="No 'copy_n' implementation found")