#!/bin/sh

set -e

p=/var/tmp/backtest-$$

[ ! -e $p ]

s=2
if [ "$1" = -1 ]; then
	s=1
	shift
fi
d=0
t=0
if [ "$1" = -d ]; then
	d=1
	shift
elif [ "$1" = -t ]; then
	t=1
	shift
fi

make -s back-stage$s back-stage$s-asm || exit 1

back=
[ -x back-stage1 -a -x back-stage1-asm ] && back=./back-stage1 && backasm=./back-stage1-asm
[ "$s" -eq 2 ] && [ -x back-stage2 -a -x back-stage2-asm ] && back=./back-stage2 && backasm=./back-stage2-asm
[ -x back -a -x back-asm ] && back=./back && backasm=./back-asm
[ -n "$back" ] || exit 2

echo "$* 0 60 sys1" | cat io.back misc.back rwx.back table.back init.back - | $back | $backasm | ../cmeta/elfwrap > $p
chmod +x $p
trap "rm $p" EXIT
if [ $d -eq 1 ]; then
	gdb $p
elif [ $t -eq 1 ]; then
	time $p
else
	$p
fi
