65816-llvm-mos/scripts/verify.sh
Scott Duensing 873eab4922 Checkpoint.
2026-04-25 17:07:28 -05:00

49 lines
1.3 KiB
Bash
Executable file

#!/usr/bin/env bash
# Sanity-check every installed tool. Exits non-zero if anything is missing.
set -euo pipefail
source "$(dirname "$0")/common.sh"
fails=0
check() {
local label="$1"; shift
if "$@" >/dev/null 2>&1; then
printf ' [ OK ] %s\n' "$label"
else
printf ' [FAIL] %s (%s)\n' "$label" "$*"
fails=$((fails + 1))
fi
}
log "verifying toolchain"
# Build tools
check "cmake" cmake --version
check "ninja" ninja --version
check "clang (host)" clang --version
check "git" git --version
# llvm-mos source + SDK
check "llvm-mos source tree" test -d "$TOOLS_DIR/llvm-mos/.git"
check "llvm-mos-sdk extracted" test -x "$TOOLS_DIR/llvm-mos-sdk/bin/mos-common-clang"
# MAME + ROMs
check "mame binary" command -v mame
check "mame Lua console support" bash -c "mame -showusage 2>&1 | grep -q -- '-console'"
check "rom: apple2gs.zip" test -s "$TOOLS_DIR/mame/roms/apple2gs.zip"
check "rom: apple2gsr1.zip" test -s "$TOOLS_DIR/mame/roms/apple2gsr1.zip"
# Calypsi benchmark
check "calypsi cc65816" test -x "$TOOLS_DIR/calypsi/bin/cc65816"
# ORCA/C reference
check "orca-c source" test -d "$TOOLS_DIR/orca-c/.git"
echo
if [ "$fails" -eq 0 ]; then
log "all checks passed"
exit 0
else
die "$fails check(s) failed"
fi