007/tools/asm-processor/compile-test.sh

42 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
set -o pipefail
INPUT=$(readlink -f "$1")
cd -- "$(dirname -- "${BASH_SOURCE[0]}")"
WD=$(pwd)
INPUT=${INPUT#"$WD"/}
OUTPUT="${INPUT%.*}.o"
rm -f "$OUTPUT"
CC="$MIPS_CC" # ido 7.1 via recomp or qemu-irix
AS="mips-linux-gnu-as"
ASFLAGS="-march=vr4300 -mabi=32"
OPTFLAGS=$(grep 'COMPILE-FLAGS: ' $INPUT | sed 's#^.*COMPILE-FLAGS: ##' | sed 's#}$##')
ASMPFLAGS=$(grep 'ASMP-FLAGS: ' $INPUT | sed 's#^.*ASMP-FLAGS: ##' | sed 's#}$##')
ISET=$(grep 'COMPILE-ISET: ' $INPUT | sed 's#^.*COMPILE-ISET: ##' | sed 's#}$##')
if [[ -z "$OPTFLAGS" ]]; then
OPTFLAGS="-g"
fi
CFLAGS="-Wab,-r4300_mul -G 0 -Xcpluscomm -fullwarn -wlint -woff 819,820,852,821 -signed -c"
if [[ -z "$ISET" ]]; then
CFLAGS="$CFLAGS -mips2"
fi
if [[ "$OPTFLAGS" != *-KPIC* ]]; then
CFLAGS="$CFLAGS -non_shared"
fi
set -e
if [[ "$2" == "python" ]]; then
PROG="python3 ./build.py"
elif [[ "$2" == "rust-release" ]]; then
PROG="./rust/target/release/asm-processor"
elif [[ "$2" == "rust-debug" ]]; then
PROG="./rust/target/debug/asm-processor"
else
echo "Usage: $0 input.c (python|rust-release|rust-debug)"
fi
$PROG --drop-mdebug-gptab $ASMPFLAGS $CC -- $AS $ASFLAGS -- $CFLAGS $OPTFLAGS $ISET -o "$OUTPUT" "$INPUT"