commit: 224b5fdbf9659815321b9bd94de7839d500dd760
parent 7c4274cfb305a52296f0f03113f9bdabf3cd0aa4
Author: Michael Forney <mforney@mforney.org>
Date: Mon, 21 Aug 2017 00:53:08 -0700
Add mechanism to probe for toolchain features
Diffstat:
4 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/gen.lua b/gen.lua
@@ -20,6 +20,7 @@ include 'rules.ninja'
toolchain 'target'
+subgen 'probe'
subgen 'pkg'
subgen 'src'
diff --git a/probe/gen.lua b/probe/gen.lua
@@ -0,0 +1,3 @@
+local function probe(var)
+ build('probe', '$outdir/'..var, '$dir/'..var, {var=var})
+end
diff --git a/rules.ninja b/rules.ninja
@@ -39,6 +39,9 @@ rule mc
rule muse
command = muse $museflags -o $out $in
+rule probe
+ command = rc ./scripts/probe.rc $var $cc $cflags $ldflags -o /dev/null -x c $in >$out.tmp && mv $out.tmp $out
+
# misc tools
rule touch
command = touch $out
diff --git a/scripts/probe.rc b/scripts/probe.rc
@@ -0,0 +1,7 @@
+flag e +
+
+var=$1
+shift
+if($* >[2]/dev/null)
+ echo '#define '$var' 1'
+status=()