#!/usr/bin/make -f

DEB_TARGET_ARCH = $(shell dpkg-architecture -qDEB_TARGET_ARCH)
DEB_TARGET_MULTIARCH = $(shell dpkg-architecture -qDEB_TARGET_MULTIARCH)
INITRD = initrd.img-halium-generic
RECOVERY_INITRD = recovery-initramfs.img-halium-generic
OUT = $(CURDIR)/out
INITRD_INSTALL_DIR = $(CURDIR)/debian/linux-initramfs-halium-generic/usr/lib/$(DEB_TARGET_MULTIARCH)/halium-generic-initramfs

%:
	dh $@

override_dh_auto_build:
	# Build each ramdisk once as a raw CPIO archive.
	./build-initrd.sh -a $(DEB_TARGET_ARCH) -c raw -n $(INITRD).cpio
	./build-initrd.sh -a $(DEB_TARGET_ARCH) -c raw -n $(RECOVERY_INITRD).cpio -r
	# Produce the compressed variants directly from the raw archives.
	gzip -9n < $(OUT)/$(INITRD).cpio > $(OUT)/$(INITRD).gz
	gzip -9n < $(OUT)/$(RECOVERY_INITRD).cpio > $(OUT)/$(RECOVERY_INITRD).gz
	lz4 -9 -l < $(OUT)/$(INITRD).cpio > $(OUT)/$(INITRD).lz4
	lz4 -9 -l < $(OUT)/$(RECOVERY_INITRD).cpio > $(OUT)/$(RECOVERY_INITRD).lz4
	# Match the checksum and timestamp sidecars generated by build-initrd.sh.
	set -e; cd $(OUT); for image in \
		$(INITRD).gz $(RECOVERY_INITRD).gz \
		$(INITRD).lz4 $(RECOVERY_INITRD).lz4; do \
		sha256sum "$$image" > "$$image.sha256"; \
		date -R > "$$image.timestamp"; \
	done

override_dh_auto_install:
	mkdir -p $(INITRD_INSTALL_DIR)
	cp -av $(OUT)/* $(INITRD_INSTALL_DIR)/
	ln -sf $(INITRD).gz $(INITRD_INSTALL_DIR)/$(INITRD)
	ln -sf $(RECOVERY_INITRD).gz $(INITRD_INSTALL_DIR)/$(RECOVERY_INITRD)

override_dh_auto_test:
	@set -e; for f in hooks/* scripts/panic/telnet scripts/halium; do \
	    echo "Checking sh syntax of $$f"; \
	    sh -n $$f; \
	done
