diff --git a/gen.lua b/gen.lua index 77431aaa..bc11b49e 100644 --- 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 new file mode 100644 index 00000000..641443d1 --- /dev/null +++ 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 index 19458c89..8d02c75d 100644 --- 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 new file mode 100644 index 00000000..aba1099d --- /dev/null +++ b/scripts/probe.rc @@ -0,0 +1,7 @@ +flag e + + +var=$1 +shift +if($* >[2]/dev/null) + echo '#define '$var' 1' +status=()