]> git.proxmox.com Git - pve-firmware.git/blob - Makefile
711d7cd9022b3019e10292b9fcbf0fc804eb6d44
[pve-firmware.git] / Makefile
1 include /usr/share/dpkg/pkg-info.mk
2
3 FW_DEB=pve-firmware_$(DEB_VERSION)_all.deb
4
5 GITVERSION:=$(shell git rev-parse HEAD)
6
7 export SOURCE_DATE_EPOCH ?= $(shell dpkg-parsechangelog -STimestamp)
8
9 DEBS=$(FW_DEB)
10 BUILDDIR=fwdata
11
12 .PHONY: deb
13 deb: $(DEBS)
14
15 $(FW_DEB): $(BUILDDIR)
16 cp -a debian $(BUILDDIR)
17 echo "git clone git://git.proxmox.com/git/pve-firmware.git\\ngit checkout $(GITVERSION)" >$(BUILDDIR)/debian/SOURCE
18 cd $(BUILDDIR); dpkg-buildpackage -b -us -uc
19
20 # NOTE: when collapsing FW lists keep major.minor still separated, so we can sunset the older ones
21 # without user impact safely. The last oldstable list needs to be kept avoid breakage on upgrade
22 .PHONY: fw.list
23 fw.list: fwlist-5.4.86-1-pve
24 fw.list: fwlist-5.11.x-y-pve
25 fw.list: fwlist-5.13.x-y-pve
26 fw.list: fwlist-5.15.5-1-pve
27 fw.list: fwlist-5.15.19-1-pve
28 fw.list: fwlist-5.15.27-1-pve
29 fw.list: fwlist-5.15.35-1-pve
30 fw.list: fwlist-5.15.53-1-pve
31 fw.list: fwlist-5.19.0-1-pve
32 fw.list: fwlist-5.19-iwlwifi-extra
33 fw.list: fwlist-6.1.0-1-pve
34 fw.list: fwlist-6.1.10-1-pve
35 fw.list: fwlist-6.2.2-1-pve
36 fw.list: fwlist-6.2.6-1-pve
37 rm -f $@.tmp $@
38 sort -u $^ > $@.tmp
39 mv $@.tmp $@
40
41 $(BUILDDIR): linux-firmware.git/WHENCE dvb-firmware.git/README fw.list
42 rm -rf $@ $@.tmp
43 mkdir -p $@.tmp/lib/firmware
44 cd linux-firmware.git; ./copy-firmware.sh -v ../$@.tmp/lib/firmware/
45 ./assemble-firmware.pl fw.list $@.tmp/lib/firmware
46 find $@.tmp/lib/firmware -empty -type d -delete
47 install -d $@.tmp/usr/share/doc/pve-firmware
48 cp linux-firmware.git/WHENCE $@.tmp/usr/share/doc/pve-firmware/README
49 install -d $@.tmp/usr/share/doc/pve-firmware/licenses
50 cp linux-firmware.git/LICEN[CS]E* $@.tmp/usr/share/doc/pve-firmware/licenses
51 # we only compress big ones that almost definitively ain't required in the initrd
52 # or are so big and unbuyable (netronome...)
53 cd $@.tmp/lib/firmware; find . -type f \( -name 'i[wb][lt]*' -o -path '*/netronome/*' \) -print0 | xargs -0 -n1 -P0 -- xz -C crc32
54 cd $@.tmp/lib/firmware; find . -xtype l -print0 | xargs -0 -n1 -P0 -- sh -c 'ln -sf "$$(readlink "$$0").xz" "$$0"; mv "$$0" "$$0.xz"'
55 mv $@.tmp $@
56
57 # upgrade to current master
58 .PHONY: update_modules
59 update_modules: submodule
60 git submodule foreach 'git pull --ff-only origin master'
61
62 # make sure submodules were initialized
63 .PHONY: submodule
64 submodule dvb-firmware.git/README linux-firmware.git/WHENCE:
65 test -f "linux-firmware.git/WHENCE" || git submodule update --init
66
67 .PHONY: upload
68 upload: $(DEBS)
69 tar cf - $(DEBS) | ssh repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist bullseye
70
71 .PHONY: clean
72 clean:
73 rm -rf $(BUILDDIR) $(BUILDDIR).tmp fw.list *.deb *.buildinfo *.dsc *.changes