diff options
-rwxr-xr-x | lisc/tools/abitest.sh | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/lisc/tools/abitest.sh b/lisc/tools/abitest.sh index 096c4ef..0bd7c5b 100755 --- a/lisc/tools/abitest.sh +++ b/lisc/tools/abitest.sh @@ -9,21 +9,29 @@ failure() { exit 1 } +once() { + if test -z "$1" + then + $OCAML tools/abi.ml $TMP c ssa + else + $OCAML tools/abi.ml -s $1 $TMP c ssa + fi + + ./$QBE -o $TMP/callee.s $TMP/callee.ssa || + failure "qbe" + + c99 -g -o $TMP/abitest $TMP/caller.c $TMP/callee.s || + failure "cc + linking" + + $TMP/abitest || + failure "runtime" +} + if ! test -x $QBE then echo "error: I must run in the directory containing $QBE." >&2 exit 1 fi - $OCAML tools/abi.ml $TMP c ssa - - ./$QBE -o $TMP/callee.s $TMP/callee.ssa - || failure "qbe" - - c99 -g -o $TMP/abitest $TMP/caller.c $TMP/callee.s - || failure "cc + linking" - - $TMP/abitest - || failure "runtime" - -rm -fr $TMP +once "$1" +#rm -fr $TMP |