88 lines
2.3 KiB
Bash
Executable file
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"
|