summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rules.ninja4
-rw-r--r--scripts/probe-size.sh16
-rw-r--r--scripts/probe.sh11
3 files changed, 18 insertions, 13 deletions
diff --git a/rules.ninja b/rules.ninja
index 05d8863b..34f80a99 100644
--- a/rules.ninja
+++ b/rules.ninja
@@ -52,10 +52,10 @@ rule muse
command = muse $museflags -o $out $in
rule probe
- command = sh $basedir/scripts/probe.sh $var $cc $cflags $ldflags -o /dev/null -x c $in >$out
+ command = sh $basedir/scripts/probe.sh $var $out $cc $cflags $ldflags -o /dev/null -x c $in
rule probesize
- command = sh $basedir/scripts/probe-size.sh $var $cc $cflags -c -o /dev/null -x c $in >$out
+ command = sh $basedir/scripts/probe-size.sh $var $out $cc $cflags -c -o /dev/null -x c $in
# misc tools
rule touch
diff --git a/scripts/probe-size.sh b/scripts/probe-size.sh
index ff671ef0..b17c20f5 100644
--- a/scripts/probe-size.sh
+++ b/scripts/probe-size.sh
@@ -1,18 +1,22 @@
set -e
-if [ "$#" -lt 2 ] ; then
- echo 'usage: probe-size.sh var command...' >&2
+if [ "$#" -lt 3 ] ; then
+ printf 'usage: %s var out command...\n' "$0" >&2
exit 2
fi
var=$1
-shift
+out=$2
+shift 2
for size in 8 4 2 1 ; do
- if "$@" -D "$var=$size" 2>/dev/null ; then
- echo "#define $var $size"
+ echo "==> trying $var=$size..." >&2
+ if "$@" -D "$var=$size" ; then
+ echo '==> success' >&2
+ echo "#define $var $size" >"$out"
exit 0
fi
-done
+done 2>"$out.log"
+cat "$out.log"
printf "%s: could not determine %s\n" "$0" "$var" >&2
exit 1
diff --git a/scripts/probe.sh b/scripts/probe.sh
index 093a16dc..cf306110 100644
--- a/scripts/probe.sh
+++ b/scripts/probe.sh
@@ -1,12 +1,13 @@
set -e
-if [ "$#" -lt 2 ] ; then
- echo 'usage: probe.sh var command...' >&2
+if [ "$#" -lt 3 ] ; then
+ printf 'usage: %s var out command...\n' "$0" >&2
exit 2
fi
var=$1
-shift
-if "$@" 2>/dev/null ; then
- echo "#define $var 1"
+out=$2
+shift 2
+if "$@" 2>"$out.log" ; then
+ echo "#define $var 1" >"$out"
fi