#! /bin/sh -x

rm -f Makefile Makefile.md qtmd.h qtmdb.s qtmdc.c qtmds.s configuration

case $1 in
	axp*)
		: "DEC AXP"
		ln -s md/axp.Makefile Makefile.md
		ln -s md/axp.h qtmd.h
		ln -s md/axp.c qtmdc.c
		ln -s md/axp.s qtmds.s
		ln -s md/axp_b.s qtmdb.s
		iter_init=1000000000
		iter_runone=10000000
		iter_blockint=10000000
		iter_blockfloat=10000000
		iter_vainit0=10000000
		iter_vainit2=10000000
		iter_vainit4=10000000
		iter_vainit8=10000000
		iter_vastart0=10000000
		iter_vastart2=10000000
		iter_vastart4=10000000
		iter_vastart8=10000000
		iter_bench_call_reg=10000000
		iter_bench_call_imm=10000000
		iter_bench_add=100000000
		iter_bench_load=100000000
		;;

	iX86*)
		: "Intel 80386 and compatibles (not '286...)"
		ln -s md/default.Makefile Makefile.md
		ln -s md/i386.h qtmd.h
		ln -s md/null.c qtmdc.c
		ln -s md/i386.s qtmds.s
		ln -s md/i386_b.s qtmdb.s
		iter_init=10000000
		iter_runone=1000000
		iter_blockint=1000000
		iter_blockfloat=1000000
		iter_vainit0=1000000
		iter_vainit2=1000000
		iter_vainit4=1000000
		iter_vainit8=1000000
		iter_vastart0=1000000
		iter_vastart2=1000000
		iter_vastart4=1000000
		iter_vastart8=1000000
		iter_bench_call_reg=1000000
		iter_bench_call_imm=1000000
		iter_bench_add=100000000
		iter_bench_load=10000000
		;;

	m68k)
		: "Motorola 68000 family -- incomplete!"
		ln -s md/default.Makefile Makefile.md
		ln -s md/m68k.h qtmd.h
		ln -s md/null.c qtmdc.c
		ln -s md/m68k.s qtmds.s
		ln -s md/m68k_b.s qtmdb.s
		;;

	m88k)
		: "Motorola 88000 family"
		ln -s md/m88k.Makefile Makefile.md
		ln -s md/m88k.h qtmd.h
		ln -s md/m88k.c qtmdc.c
		ln -s md/m88k.s qtmds.s
		ln -s md/m88k_b.s qtmdb.s
		iter_init=1000000
		iter_runone=100000
		iter_blockint=100000
		iter_blockfloat=100000
		iter_vainit0=100000
		iter_vainit2=100000
		iter_vainit4=100000
		iter_vainit8=100000
		iter_vastart0=100000
		iter_vastart2=100000
		iter_vastart4=100000
		iter_vastart8=100000
		iter_bench_call_reg=100000000
		iter_bench_call_imm=100000000
		iter_bench_add=1000000000
		iter_bench_load=100000000
		;;

	mips*)
		: "MIPS R2000 and R3000."
		ln -s md/default.Makefile Makefile.md
		ln -s md/mips.h qtmd.h
		ln -s md/null.c qtmdc.c
		ln -s md/mips.s qtmds.s
		ln -s md/mips_b.s qtmdb.s
		iter_init=10000000
		iter_runone=10000000
		iter_blockint=10000000
		iter_blockfloat=10000000
		iter_vainit0=1000000
		iter_vainit2=1000000
		iter_vainit4=1000000
		iter_vainit8=1000000
		iter_vastart0=1000000
		iter_vastart2=1000000
		iter_vastart4=1000000
		iter_vastart8=1000000
		iter_bench_call_reg=100000000
		iter_bench_call_imm=100000000
		iter_bench_add=1000000000
		iter_bench_load=100000000
		;;

	sparc*)
		: "SPARC processors."
		ln -s md/default.Makefile Makefile.md
		ln -s md/sparc.h qtmd.h
		ln -s md/null.c qtmdc.c
		ln -s md/sparc.s qtmds.s
		ln -s md/sparc_b.s qtmdb.s
		iter_init=10000000
		iter_runone=1000000
		iter_blockint=1000000
		iter_blockfloat=1000000
		iter_vainit0=1000000
		iter_vainit2=1000000
		iter_vainit4=1000000
		iter_vainit8=1000000
		iter_vastart0=1000000
		iter_vastart2=1000000
		iter_vastart4=1000000
		iter_vastart8=1000000
		iter_bench_call_reg=10000000
		iter_bench_call_imm=10000000
		iter_bench_add=100000000
		iter_bench_load=100000000
		;;

	vax*)
		: "DEC VAX processors."
		ln -s md/default.Makefile Makefile.md
		ln -s md/vax.h qtmd.h
		ln -s md/null.c qtmdc.c
		ln -s md/vax.s qtmds.s
		ln -s md/vax_b.s qtmdb.s
		iter_init=1000000
		iter_runone=100000
		iter_blockint=100000
		iter_blockfloat=100000
		iter_vainit0=100000
		iter_vainit2=100000
		iter_vainit4=100000
		iter_vainit8=100000
		iter_vastart0=100000
		iter_vastart2=100000
		iter_vastart4=100000
		iter_vastart8=100000
		iter_bench_call_reg=10000000
		iter_bench_call_imm=10000000
		iter_bench_add=10000000
		iter_bench_load=1000000
		;;

	ksr1)
		: "Varargs is not currently supported."
		ln -s md/ksr1.Makefile Makefile.md
		ln -s md/ksr1.h qtmd.h
		ln -s md/null.c qtmdc.c
		ln -s md/ksr1.s qtmds.s
		ln -s md/ksr1_b.s qtmdb.s
		iter_init=1000000
		iter_runone=100000
		iter_blockint=100000
		iter_blockfloat=100000
		iter_vainit0=100000
		iter_vainit2=100000
		iter_vainit4=100000
		iter_vainit8=100000
		iter_vastart0=100000
		iter_vastart2=100000
		iter_vastart4=100000
		iter_vastart8=100000
		iter_bench_call_reg=10000000
		iter_bench_call_imm=10000000
		iter_bench_add=10000000
		iter_bench_load=1000000
		;;

	clean)
		: Deconfigure
		exit 0
		;;

	*)
		echo "Unknown configuration"
		exit 1
		;;
esac

cat Makefile.md Makefile.base > Makefile

echo set config_machine=$1 >> configuration
echo set config_init=$iter_init >> configuration
echo set config_runone=$iter_runone >> configuration
echo set config_blockint=$iter_blockint >> configuration
echo set config_blockfloat=$iter_blockfloat >> configuration
echo set config_vainit0=$iter_vainit0 >> configuration
echo set config_vainit2=$iter_vainit2 >> configuration
echo set config_vainit4=$iter_vainit4 >> configuration
echo set config_vainit8=$iter_vainit8 >> configuration
echo set config_vastart0=$iter_vastart0 >> configuration
echo set config_vastart2=$iter_vastart2 >> configuration
echo set config_vastart4=$iter_vastart4 >> configuration
echo set config_vastart8=$iter_vastart8 >> configuration
echo set config_bcall_reg=$iter_bench_call_reg >> configuration
echo set config_bcall_imm=$iter_bench_call_imm >> configuration
echo set config_b_add=$iter_bench_add >> configuration
echo set config_b_load=$iter_bench_load >> configuration
