diff options
| -rw-r--r-- | rules.ninja | 4 | ||||
| -rw-r--r-- | scripts/probe-size.sh | 16 | ||||
| -rw-r--r-- | scripts/probe.sh | 11 |
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 |
