#!/usr/bin/make -f

include /usr/share/dpkg/default.mk
include /usr/share/rustc/architecture.mk

export DEB_HOST_RUST_TYPE DEB_HOST_GNU_TYPE
export PATH := /usr/share/cargo/bin:$(PATH)
export CARGO = /usr/share/cargo/bin/cargo
export CARGO_HOME = $(CURDIR)/debian/cargo_home
export DEB_CARGO_CRATE = m1n1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export RUSTFLAGS += -C panic=abort

%:
	dh $@

DEB_VENDOR_LC = $(shell echo $(DEB_VENDOR) | tr '[:upper:]' '[:lower:]')
LOGO_RADIX = $(CURDIR)/debian/logos/$(DEB_VENDOR_LC)
LOGO_DATA_RADIX = $(CURDIR)/data/$(DEB_VENDOR_LC)

ifneq (,$(wildcard $(LOGO_RADIX)_*))
LOGO_FLAG = LOGO=$(DEB_VENDOR_LC)
endif

override_dh_auto_configure:
	mkdir -p debian/cargo_registry
	for crate in /usr/src/rustc-*/library/vendor/*; do \
		ln -s "$$crate" debian/cargo_registry; \
	done
	for crate in rust/versions debian/vendor/*; do \
		echo '{"files":{}}' > "$$crate/.cargo-checksum.json"; \
		ln -s "../../$$crate" debian/cargo_registry; \
	done
	$(CARGO) prepare-debian debian/cargo_registry --link-from-system
	dh_auto_configure -- -Dhost_arch="$(DEB_HOST_RUST_TYPE)"

override_dh_auto_build:
ifneq (,$(LOGO_FLAG))
	cp -a $(LOGO_RADIX)_128.png $(LOGO_RADIX)_256.png $(CURDIR)/data
endif
	dh_auto_build -- RELEASE=1 BUILDSTD=1 $(LOGO_FLAG)

override_dh_auto_clean:
	rm -f $(LOGO_DATA_RADIX)_128.png $(LOGO_DATA_RADIX)_256.png
	dh_auto_clean
	rm -df build
	$(CARGO) clean --manifest-path rust/Cargo.toml
	rm -rf debian/cargo_registry
	for crate in rust/versions debian/vendor/*; do \
		rm -f "$$crate/.cargo-checksum.json"; \
	done
