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

88 lines
2.3 KiB
Bash
Executable file

#!/usr/bin/env bash
# Top-level installer for the llvm816 project. Installs everything into
# ./tools/ so the tree is self-contained and deletable.
#
# Usage:
# ./setup.sh # install everything (no llvm-mos source build)
# ./setup.sh --build-llvm # also cmake+ninja build llvm-mos (slow)
# ./setup.sh --skip-deps # skip apt packages
# ./setup.sh --skip-llvm # skip llvm-mos
# ./setup.sh --skip-mame # skip MAME + ROM fetch
# ./setup.sh --skip-calypsi # skip Calypsi
# ./setup.sh --skip-orca # skip ORCA/C reference
# ./setup.sh --verify-only # run verification only
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/scripts/common.sh"
doDeps=1
doLlvm=1
doMame=1
doCalypsi=1
doOrca=1
doVerify=1
buildLlvm=0
verifyOnly=0
for arg in "$@"; do
case "$arg" in
--skip-deps) doDeps=0 ;;
--skip-llvm) doLlvm=0 ;;
--skip-mame) doMame=0 ;;
--skip-calypsi) doCalypsi=0 ;;
--skip-orca) doOrca=0 ;;
--skip-verify) doVerify=0 ;;
--build-llvm) buildLlvm=1 ;;
--verify-only) verifyOnly=1 ;;
-h|--help)
sed -n '2,15p' "$0"
exit 0
;;
*) die "unknown flag: $arg" ;;
esac
done
if [ "$verifyOnly" -eq 1 ]; then
exec "$SCRIPT_DIR/scripts/verify.sh"
fi
log "project root: $PROJECT_ROOT"
log "tools dir: $TOOLS_DIR"
if [ "$doDeps" -eq 1 ]; then
log "=== 1/5 system dependencies ==="
bash "$SCRIPT_DIR/scripts/installDeps.sh"
fi
if [ "$doLlvm" -eq 1 ]; then
log "=== 2/5 llvm-mos ==="
if [ "$buildLlvm" -eq 1 ]; then
bash "$SCRIPT_DIR/scripts/installLlvmMos.sh" --build
else
bash "$SCRIPT_DIR/scripts/installLlvmMos.sh"
fi
fi
if [ "$doMame" -eq 1 ]; then
log "=== 3/5 mame + iigs roms ==="
bash "$SCRIPT_DIR/scripts/installMame.sh"
fi
if [ "$doCalypsi" -eq 1 ]; then
log "=== 4/5 calypsi ==="
bash "$SCRIPT_DIR/scripts/installCalypsi.sh"
fi
if [ "$doOrca" -eq 1 ]; then
log "=== 5/5 orca-c reference ==="
bash "$SCRIPT_DIR/scripts/installOrcaC.sh"
fi
if [ "$doVerify" -eq 1 ]; then
log "=== verify ==="
bash "$SCRIPT_DIR/scripts/verify.sh" || warn "verification reported failures; see above"
fi
log "setup complete"