PREFIX    ?= /usr
DESTDIR   ?=

BINDIR     = $(DESTDIR)$(PREFIX)/bin
SOUNDSDIR  = $(DESTDIR)$(PREFIX)/share/sounds

# Rust target triple for cross-builds (empty = native). debian/rules sets it
# from the host arch when cross-building (e.g. -aarm64 on amd64).
CARGO_TARGET ?=
CARGO_TARGET_FLAG = $(if $(CARGO_TARGET),--target $(CARGO_TARGET),)
TARGETDIR = target/$(if $(CARGO_TARGET),$(CARGO_TARGET)/,)release

.PHONY: all prep install uninstall clean distclean

all: prep
	cargo build --release --features winit $(CARGO_TARGET_FLAG)

prep:
	@scripts/prepare-deps.sh

arm64-deps:
	sudo apt-get install crossbuild-essential-arm64 libstd-rust-dev:arm64 libstd-rust-1.85:arm64 libwayland-dev:arm64 libwayland-egl1:arm64 libxkbcommon-dev:arm64 libegl1-mesa-dev:arm64 libgles2-mesa-dev:arm64 libpam0g-dev:arm64 libdbus-1-dev:arm64 libssl-dev:arm64 libudev-dev:arm64 libseat-dev:arm64 libgbm-dev:arm64 libdrm-dev:arm64 libinput-dev:arm64 libx11-xcb-dev:arm64 libxcb1-dev:arm64

arm64:
	$(MAKE) CARGO_TARGET=aarch64-unknown-linux-gnu

install:
	install -Dm755 $(TARGETDIR)/forge $(BINDIR)/forge
	install -Dm644 res/sounds/camera.ogg $(SOUNDSDIR)/forge-camera.ogg

uninstall:
	rm -f $(BINDIR)/forge
	rm -f $(SOUNDSDIR)/forge-camera.ogg

clean:
	dh_clean
	rm -rf debian/.cargo-home vendor
	cargo clean

distclean: clean
	rm -f Cargo.lock
