#!/bin/sh
set -eu
A102_ROOT=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
A102_OUT=$(mktemp -d /tmp/a102-verify.XXXXXX)
trap 'rm -rf "$A102_OUT"' EXIT
clang -std=c11 -Wall -Wextra -Werror -fsanitize=address,undefined "$A102_ROOT/src/drill_click.c" "$A102_ROOT/src/speed_supervisor.c" "$A102_ROOT/src/drill_ui.c" "$A102_ROOT/src/test_ui.c" -o "$A102_OUT/test_ui"
"$A102_OUT/test_ui"
clang -std=c11 -Wall -Wextra -Werror -fsanitize=address,undefined "$A102_ROOT/src/speed_supervisor.c" "$A102_ROOT/src/test_speed_supervisor.c" -o "$A102_OUT/test_speed"
"$A102_OUT/test_speed"
clang -std=c11 -Wall -Wextra -Werror -fsanitize=address,undefined "$A102_ROOT/src/speed_supervisor.c" "$A102_ROOT/src/test_same_ms_fault.c" -o "$A102_OUT/test_fault"
"$A102_OUT/test_fault"
for source in drill_click speed_supervisor drill_ui; do
 arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -std=c11 -Os -ffreestanding -fno-builtin -Wall -Wextra -Werror -I"$A102_ROOT/target_include" -c "$A102_ROOT/src/$source.c" -o "$A102_OUT/$source.o"
done
arm-none-eabi-size "$A102_OUT/drill_click.o" "$A102_OUT/speed_supervisor.o" "$A102_OUT/drill_ui.o"
