#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#DH_VERBOSE = 1

# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

# main packaging script based on dh7 syntax
%:
	dh $@

override_dh_install:
	dh_install

	ln -s ../cypress/cyfmac43430-sdio.bin \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43430-sdio.bin
	ln -s ../cypress/cyfmac43430-sdio.clm_blob \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43430-sdio.clm_blob
	ln -s ../cypress/cyfmac43430-sdio.bin \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.bin
	ln -s brcmfmac43430-sdio.txt \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt
	ln -s ../cypress/cyfmac43430-sdio.clm_blob \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.clm_blob
	ln -s brcmfmac43436-sdio.bin \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.bin
	ln -s brcmfmac43436-sdio.txt \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.txt
	ln -s brcmfmac43436-sdio.clm_blob \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.clm_blob
	ln -s brcmfmac43436-sdio.bin \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.bin
	ln -s brcmfmac43436-sdio.txt \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.txt
	ln -s brcmfmac43436-sdio.clm_blob \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.clm_blob
	ln -s brcmfmac43436s-sdio.bin \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-2-w.bin
	ln -s brcmfmac43436s-sdio.txt \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-2-w.txt
	ln -s brcmfmac43436s-sdio.bin \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43436s-sdio.raspberrypi,model-zero-2-w.bin
	ln -s brcmfmac43436s-sdio.txt \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43436s-sdio.raspberrypi,model-zero-2-w.txt

	ln -s ../cypress/cyfmac43455-sdio.bin \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.bin
	ln -s ../cypress/cyfmac43455-sdio.clm_blob \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.clm_blob
	ln -s ../cypress/cyfmac43455-sdio.bin \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin
	ln -s ../cypress/cyfmac43455-sdio.clm_blob \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.clm_blob
	ln -s brcmfmac43455-sdio.txt \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.txt
	ln -s ../cypress/cyfmac43455-sdio.bin \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin
	ln -s ../cypress/cyfmac43455-sdio.clm_blob \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.clm_blob
	ln -s brcmfmac43455-sdio.txt \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
	ln -s ../cypress/cyfmac43455-sdio.bin \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
	ln -s ../cypress/cyfmac43455-sdio.clm_blob \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.clm_blob
	ln -s brcmfmac43455-sdio.txt \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt
	ln -s ../cypress/cyfmac43455-sdio.bin \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin
	ln -s ../cypress/cyfmac43455-sdio.clm_blob \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.clm_blob
	ln -s brcmfmac43455-sdio.txt \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.txt
	ln -s ../cypress/cyfmac43455-sdio.bin \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin
	ln -s ../cypress/cyfmac43455-sdio.clm_blob \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.clm_blob
	ln -s brcmfmac43455-sdio.txt \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.txt

	ln -s brcmfmac43456-sdio.bin \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.bin
	ln -s brcmfmac43456-sdio.clm_blob \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.clm_blob
	ln -s brcmfmac43456-sdio.txt \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.txt
	ln -s brcmfmac43456-sdio.bin \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,400.bin
	ln -s brcmfmac43456-sdio.clm_blob \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,400.clm_blob
	ln -s brcmfmac43456-sdio.txt \
		debian/linux-firmware-raspi/lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,400.txt

	ln -s BCM43430A1.hcd \
		debian/linux-firmware-raspi/lib/firmware/brcm/BCM43430A1.raspberrypi,model-zero-2-w.hcd
	ln -s BCM43430B0.hcd \
		debian/linux-firmware-raspi/lib/firmware/brcm/BCM43430B0.raspberrypi,model-zero-2-w.hcd

override_dh_installdeb:
	dh_installdeb \
		--define DIVERSIONS=@debian/diversions \
		--define COMMON=@debian/$(DEB_SOURCE).common

override_dh_strip:
	# Don't strip anything; it's all pre-built binary blobs and some of
	# it is foreign architecture anyway

BOOTCOMMIT:= 1.20230405
BOOTFILES := \
	LICENCE.broadcom \
	bootcode.bin \
	fixup.dat \
	fixup4.dat \
	fixup4cd.dat \
	fixup4db.dat \
	fixup4x.dat \
	fixup_cd.dat \
	fixup_db.dat \
	fixup_x.dat \
	start.elf \
	start4.elf \
	start4cd.elf \
	start4db.elf \
	start4x.elf \
	start_cd.elf \
	start_db.elf \
	start_x.elf

# 1.2-4+rpt10
BTCOMMIT:= dd840d991939f5046959b8c564596c7228f9d41d
BTFILES := \
	broadcom/BCM43430A1.hcd \
	broadcom/BCM4345C0.hcd \
	broadcom/BCM4345C5.hcd \
	broadcom/BCM43430B0.hcd

# 1:20230210-5~bpo11+1+rpt1
WIFICOMMIT:= 8e349de20c8cb5d895b3568777ec53cbb333398f
WIFIFILES := \
	brcm/brcmfmac43430-sdio.txt \
	brcm/brcmfmac43436-sdio.bin \
	brcm/brcmfmac43436-sdio.clm_blob \
	brcm/brcmfmac43436-sdio.txt \
	brcm/brcmfmac43436s-sdio.bin \
	brcm/brcmfmac43436s-sdio.txt \
	brcm/brcmfmac43455-sdio.txt \
	brcm/brcmfmac43456-sdio.bin \
	brcm/brcmfmac43456-sdio.clm_blob \
	brcm/brcmfmac43456-sdio.txt \
	cypress/README.txt \
	cypress/cyfmac43430-sdio.bin \
	cypress/cyfmac43430-sdio.clm_blob \
	cypress/cyfmac43455-sdio-minimal.bin \
	cypress/cyfmac43455-sdio-standard.bin \
	cypress/cyfmac43455-sdio.clm_blob

# get-orig-file,output-dir,source-file,repo-url
get-orig-file = mkdir -p $(1)/$(dir $(2)) ; wget -O $(1)/$(2) -- $(3)/$(2) ;

get-orig-source:
	rm -rf boot bluez nonfree

	set -x; $(foreach file,$(BOOTFILES),$(call get-orig-file,boot,$(file),\
		https://github.com/raspberrypi/firmware/raw/$(BOOTCOMMIT)/boot))
	set -x; $(foreach file,$(BTFILES),$(call get-orig-file,bluez,$(file),\
		https://github.com/RPi-Distro/bluez-firmware/raw/$(BTCOMMIT)))
	set -x; $(foreach file,$(WIFIFILES),$(call get-orig-file,nonfree,$(file),\
		https://github.com/RPi-Distro/firmware-nonfree/raw/$(WIFICOMMIT)/debian/config/brcm80211))

	mkdir $(DEB_SOURCE)-$(DEB_VERSION_UPSTREAM)
	tar -czf ../$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM).orig.tar.gz $(DEB_SOURCE)-$(DEB_VERSION_UPSTREAM)
	tar -czf ../$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM).orig-boot.tar.gz boot/
	tar -czf ../$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM).orig-bluez.tar.gz bluez/
	tar -czf ../$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM).orig-nonfree.tar.gz nonfree/
	rmdir $(DEB_SOURCE)-$(DEB_VERSION_UPSTREAM)
