16 lines
1014 B
Bash
Executable File
16 lines
1014 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Native Linux host binaries; independent of the Pi and Void build container.
|
|
set -euo pipefail
|
|
[[ $# == 0 ]] || { printf 'Usage: tools/build-workstation\n' >&2; exit 2; }
|
|
[[ $(uname -s) == Linux ]] || { printf 'A Linux workstation is required\n' >&2; exit 2; }
|
|
(( EUID != 0 )) || { printf 'Build as an ordinary user\n' >&2; exit 2; }
|
|
cd "$(dirname -- "${BASH_SOURCE[0]}")/.."
|
|
command -v cargo >/dev/null || { printf 'Install Rust with Cargo before building workstation tools\n' >&2; exit 2; }
|
|
fds_host_target=$(rustc -vV | sed -n 's/^host: //p')
|
|
[[ $fds_host_target == *-linux-* ]] || { printf 'Rust must target the native Linux host\n' >&2; exit 2; }
|
|
cargo build --locked --release --target "$fds_host_target" -p fds-workstation
|
|
mkdir -p out/workstation
|
|
install -m755 "target/$fds_host_target/release/fds-cartridge" out/workstation/fds-cartridge
|
|
install -m755 "target/$fds_host_target/release/fds-emulator" out/workstation/fds-emulator
|
|
printf 'Built native Linux tools in out/workstation/\n'
|