summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/build_utils/__init__.py38
-rw-r--r--numpy/core/bscript1
2 files changed, 39 insertions, 0 deletions
diff --git a/numpy/build_utils/__init__.py b/numpy/build_utils/__init__.py
index d25458fc6..9789e09d9 100644
--- a/numpy/build_utils/__init__.py
+++ b/numpy/build_utils/__init__.py
@@ -288,6 +288,44 @@ int main (void)
return ret
@waflib.Configure.conf
+def check_inline(conf, **kw):
+ validate_arguments(conf, kw)
+
+ code = """
+#ifndef __cplusplus
+static %(inline)s int static_func (void)
+{
+ return 0;
+}
+%(inline)s int nostatic_func (void)
+{
+ return 0;
+}
+#endif"""
+
+ conf.start_msg("Checking for inline support")
+ inline = None
+ for k in ['inline', '__inline__', '__inline']:
+ try:
+ kw["code"] = code % {"inline": k}
+ ret = conf.run_c_code(**kw)
+ inline = k
+ break
+ except conf.errors.ConfigurationError:
+ pass
+
+ if inline is None:
+ conf.end_msg("failed", 'YELLOW')
+ if Logs.verbose > 1:
+ raise
+ else:
+ conf.fatal('The configuration failed')
+ else:
+ kw['success'] = ret
+ conf.end_msg(inline)
+ return inline
+
+@waflib.Configure.conf
def post_check(self, *k, **kw):
"set the variables after a test was run successfully"
diff --git a/numpy/core/bscript b/numpy/core/bscript
index b8baafe17..b0b45d720 100644
--- a/numpy/core/bscript
+++ b/numpy/core/bscript
@@ -216,6 +216,7 @@ def configure(context):
type_checks(conf)
signal_smp_checks(conf)
check_math_runtime(conf)
+ numpy.build_utils.check_inline(conf)
conf.env["CONFIG_HEADER_TEMPLATE"] = """\
%(content)s