diff options
| -rw-r--r-- | rules.ninja | 3 | ||||
| -rw-r--r-- | scripts/probe-size.sh | 13 |
2 files changed, 16 insertions, 0 deletions
diff --git a/rules.ninja b/rules.ninja index 89fb5b87..d6178557 100644 --- a/rules.ninja +++ b/rules.ninja @@ -42,6 +42,9 @@ rule muse rule probe command = sh ./scripts/probe.sh $var $cc $cflags $ldflags -o /dev/null -x c $in >$out.tmp && mv $out.tmp $out +rule probesize + command = sh ./scripts/probe-size.sh $var $cc $cflags -c -o /dev/null -x c $in >$out.tmp && mv $out.tmp $out + # misc tools rule touch command = touch $out diff --git a/scripts/probe-size.sh b/scripts/probe-size.sh new file mode 100644 index 00000000..eabfe3b9 --- /dev/null +++ b/scripts/probe-size.sh @@ -0,0 +1,13 @@ +set -e + +var=$1 +shift +for size in 8 4 2 1 ; do + if "$@" -D "$var=$size" 2>/dev/null ; then + echo "#define $var $size" + exit 0 + fi +done + +printf "%s: could not determine %s\n" "$0" "$var" >&2 +exit 1 |
