]> git.proxmox.com Git - pve-kernel.git/blame - Makefile
update ABI file for 6.2.16-5-pve
[pve-kernel.git] / Makefile
CommitLineData
6d345395
TL
1include /usr/share/dpkg/pkg-info.mk
2
75b315d4 3# also bump pve-kernel-meta if either of MAJ.MIN, PATCHLEVEL or KREL change
67ec0da2 4KERNEL_MAJ=6
fd2107cc 5KERNEL_MIN=2
43bc5742 6KERNEL_PATCHLEVEL=16
8b4e1fa9
SI
7# increment KREL if the ABI changes (abicheck target in debian/rules)
8# rebuild packages with new KREL and run 'make abiupdate'
5549cd3c 9KREL=5
ba2f1a67 10
5549cd3c 11PKGREL=6
44403fcc 12
5fd5ec0e
SI
13KERNEL_MAJMIN=$(KERNEL_MAJ).$(KERNEL_MIN)
14KERNEL_VER=$(KERNEL_MAJMIN).$(KERNEL_PATCHLEVEL)
15
8fbdb63a
TL
16EXTRAVERSION=-$(KREL)-pve
17KVNAME=$(KERNEL_VER)$(EXTRAVERSION)
18PACKAGE=pve-kernel-$(KVNAME)
19HDRPACKAGE=pve-headers-$(KVNAME)
ba2f1a67 20
37d1225d 21ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
6490543b
TL
22
23# amd64/x86_64/x86 share the arch subdirectory in the kernel, 'x86' so we need
24# a mapping
25KERNEL_ARCH=x86
8fbdb63a
TL
26ifneq ($(ARCH), amd64)
27KERNEL_ARCH=$(ARCH)
6490543b
TL
28endif
29
97d6ca37 30GITVERSION:=$(shell git rev-parse HEAD)
ba2f1a67 31
41f5ee98
FG
32SKIPABI=0
33
a26760dd 34BUILD_DIR=pve-kernel-$(KERNEL_VER)
ba2f1a67 35
00d66e96 36KERNEL_SRC=ubuntu-kernel
5fd5ec0e 37KERNEL_SRC_SUBMODULE=submodules/$(KERNEL_SRC)
8fbdb63a 38KERNEL_CFG_ORG=config-$(KERNEL_VER).org
ba2f1a67 39
2e38f6f9 40ZFSONLINUX_SUBMODULE=submodules/zfsonlinux
66aed5b8 41ZFSDIR=pkg-zfs
e96d2ab3 42
66aed5b8 43MODULES=modules
8fbdb63a 44MODULE_DIRS=$(ZFSDIR)
ba2f1a67 45
66aed5b8 46# exported to debian/rules via debian/rules.d/dirs.mk
5fa6b6ae 47DIRS=KERNEL_SRC ZFSDIR MODULES
66aed5b8 48
ecf7b6eb 49DSC=pve-kernel_$(KERNEL_VER)-$(PKGREL).dsc
8fbdb63a
TL
50DST_DEB=$(PACKAGE)_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb
51HDR_DEB=$(HDRPACKAGE)_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb
52USR_HDR_DEB=pve-kernel-libc-dev_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb
53LINUX_TOOLS_DEB=linux-tools-$(KERNEL_MAJMIN)_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb
54LINUX_TOOLS_DBG_DEB=linux-tools-$(KERNEL_MAJMIN)-dbgsym_$(KERNEL_VER)-$(PKGREL)_$(ARCH).deb
ba2f1a67 55
8fbdb63a 56DEBS=$(DST_DEB) $(HDR_DEB) $(LINUX_TOOLS_DEB) $(LINUX_TOOLS_DBG_DEB) # $(USR_HDR_DEB)
ba2f1a67 57
2135c723 58all: deb
8fbdb63a
TL
59deb: $(DEBS)
60
61$(LINUX_TOOLS_DEB) $(HDR_DEB): $(DST_DEB)
62$(DST_DEB): $(BUILD_DIR).prepared
63 cd $(BUILD_DIR); dpkg-buildpackage --jobs=auto -b -uc -us
64 lintian $(DST_DEB)
65 #lintian $(HDR_DEB)
66 lintian $(LINUX_TOOLS_DEB)
67
e55f32e3
TL
68dsc:
69 $(MAKE) $(DSC)
70 lintian $(DSC)
71
ecf7b6eb
TL
72$(DSC): $(BUILD_DIR).prepared
73 cd $(BUILD_DIR); dpkg-buildpackage -S -uc -us -d
ecf7b6eb 74
8b45a37b
TL
75sbuild: $(DSC)
76 sbuild $(DSC)
77
8fbdb63a
TL
78$(BUILD_DIR).prepared: $(addsuffix .prepared,$(KERNEL_SRC) $(MODULES) debian)
79 cp -a fwlist-previous $(BUILD_DIR)/
80 cp -a abi-prev-* $(BUILD_DIR)/
81 cp -a abi-blacklist $(BUILD_DIR)/
66aed5b8
FG
82 touch $@
83
84debian.prepared: debian
8fbdb63a
TL
85 rm -rf $(BUILD_DIR)/debian
86 mkdir -p $(BUILD_DIR)
87 cp -a debian $(BUILD_DIR)/debian
88 echo "git clone git://git.proxmox.com/git/pve-kernel.git\\ngit checkout $(GITVERSION)" > $(BUILD_DIR)/debian/SOURCE
89 @$(foreach dir, $(DIRS),echo "$(dir)=$($(dir))" >> $(BUILD_DIR)/debian/rules.d/env.mk;)
90 echo "KVNAME=$(KVNAME)" >> $(BUILD_DIR)/debian/rules.d/env.mk
91 echo "KERNEL_MAJMIN=$(KERNEL_MAJMIN)" >> $(BUILD_DIR)/debian/rules.d/env.mk
92 cd $(BUILD_DIR); debian/rules debian/control
ba2f1a67
FG
93 touch $@
94
8fbdb63a
TL
95$(KERNEL_SRC).prepared: $(KERNEL_SRC_SUBMODULE) | submodule
96 rm -rf $(BUILD_DIR)/$(KERNEL_SRC) $@
97 mkdir -p $(BUILD_DIR)
98 cp -a $(KERNEL_SRC_SUBMODULE) $(BUILD_DIR)/$(KERNEL_SRC)
e96d2ab3 99# TODO: split for archs, track and diff in our repository?
8fbdb63a
TL
100 cd $(BUILD_DIR)/$(KERNEL_SRC); python3 debian/scripts/misc/annotations --arch amd64 --export >../../$(KERNEL_CFG_ORG)
101 cp $(KERNEL_CFG_ORG) $(BUILD_DIR)/$(KERNEL_SRC)/.config
102 sed -i $(BUILD_DIR)/$(KERNEL_SRC)/Makefile -e 's/^EXTRAVERSION.*$$/EXTRAVERSION=$(EXTRAVERSION)/'
103 rm -rf $(BUILD_DIR)/$(KERNEL_SRC)/debian $(BUILD_DIR)/$(KERNEL_SRC)/debian.master
8349ace6
TL
104 set -e; cd $(BUILD_DIR)/$(KERNEL_SRC); \
105 for patch in ../../patches/kernel/*.patch; do \
106 echo "applying patch '$$patch'"; \
107 patch --batch -p1 < "$${patch}"; \
108 done
ba2f1a67
FG
109 touch $@
110
8fbdb63a 111$(MODULES).prepared: $(addsuffix .prepared,$(MODULE_DIRS))
e96d2ab3
FG
112 touch $@
113
8fbdb63a
TL
114$(ZFSDIR).prepared: $(ZFSONLINUX_SUBMODULE)
115 rm -rf $(BUILD_DIR)/$(MODULES)/$(ZFSDIR) $(BUILD_DIR)/$(MODULES)/tmp $@
116 mkdir -p $(BUILD_DIR)/$(MODULES)/tmp
117 cp -a $(ZFSONLINUX_SUBMODULE)/* $(BUILD_DIR)/$(MODULES)/tmp
118 cd $(BUILD_DIR)/$(MODULES)/tmp; make kernel
119 rm -rf $(BUILD_DIR)/$(MODULES)/tmp
120 touch $(ZFSDIR).prepared
ba2f1a67 121
ba2f1a67 122.PHONY: upload
6d345395 123upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
8fbdb63a 124upload: $(DEBS)
6d345395 125 tar cf - $(DEBS)|ssh -X repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist $(UPLOAD_DIST) --arch $(ARCH)
ba2f1a67
FG
126
127.PHONY: distclean
128distclean: clean
e96d2ab3 129 git submodule deinit --all
ba2f1a67 130
32054ef4
FG
131# upgrade to current master
132.PHONY: update_modules
a6dd515e 133update_modules: submodule
32054ef4 134 git submodule foreach 'git pull --ff-only origin master'
8fbdb63a 135 cd $(ZFSONLINUX_SUBMODULE); git pull --ff-only origin master
32054ef4
FG
136
137# make sure submodules were initialized
a6dd515e
FG
138.PHONY: submodule
139submodule:
8fbdb63a
TL
140 test -f "$(KERNEL_SRC_SUBMODULE)/README" || git submodule update --init $(KERNEL_SRC_SUBMODULE)
141 test -f "$(ZFSONLINUX_SUBMODULE)/Makefile" || git submodule update --init --recursive $(ZFSONLINUX_SUBMODULE)
32054ef4 142
b4ecde23
FG
143# call after ABI bump with header deb in working directory
144.PHONY: abiupdate
8fbdb63a
TL
145abiupdate: abi-prev-$(KVNAME)
146abi-prev-$(KVNAME): abi-tmp-$(KVNAME)
b4ecde23
FG
147ifneq ($(strip $(shell git status --untracked-files=no --porcelain -z)),)
148 @echo "working directory unclean, aborting!"
149 @false
150else
151 git rm "abi-prev-*"
152 mv $< $@
153 git add $@
8fbdb63a
TL
154 git commit -s -m "update ABI file for $(KVNAME)" -m "(generated with debian/scripts/abi-generate)"
155 @echo "update abi-prev-$(KVNAME) committed!"
b4ecde23
FG
156endif
157
8fbdb63a
TL
158abi-tmp-$(KVNAME):
159 @ test -e $(HDR_DEB) || (echo "need $(HDR_DEB) to extract ABI data!" && false)
160 debian/scripts/abi-generate $(HDR_DEB) $@ $(KVNAME) 1
32054ef4 161
ba2f1a67
FG
162.PHONY: clean
163clean:
ecf7b6eb
TL
164 rm -rf *~ pve-kernel-[0-9]*/ *.prepared $(KERNEL_CFG_ORG)
165 rm -f *.deb *.dsc *.changes *.buildinfo *.build pve-kernel*.tar.*