Files
pve-kernel-lowlatency-qoup/Makefile
T

171 lines
5.6 KiB
Makefile
Raw Normal View History

2023-05-20 21:25:34 +02:00
include /usr/share/dpkg/pkg-info.mk
2023-07-17 15:57:58 +02:00
# also bump proxmox-kernel-meta if the default MAJ.MIN version changes!
2022-12-13 15:09:59 +01:00
KERNEL_MAJ=6
2023-03-08 12:06:29 +01:00
KERNEL_MIN=2
2023-05-20 19:25:34 +02:00
KERNEL_PATCHLEVEL=16
2023-07-17 15:57:58 +02:00
# increment KREL for every published package release!
# rebuild packages with new KREL and run 'make abiupdate'
2023-10-24 14:08:10 +02:00
KREL=19
2018-03-05 15:42:44 +01:00
KERNEL_MAJMIN=$(KERNEL_MAJ).$(KERNEL_MIN)
KERNEL_VER=$(KERNEL_MAJMIN).$(KERNEL_PATCHLEVEL)
2023-05-20 16:28:20 +02:00
EXTRAVERSION=-$(KREL)-pve
KVNAME=$(KERNEL_VER)$(EXTRAVERSION)
2023-07-17 15:57:58 +02:00
PACKAGE=proxmox-kernel-$(KVNAME)
HDRPACKAGE=proxmox-headers-$(KVNAME)
ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
# amd64/x86_64/x86 share the arch subdirectory in the kernel, 'x86' so we need
# a mapping
KERNEL_ARCH=x86
2023-05-20 16:28:20 +02:00
ifneq ($(ARCH), amd64)
KERNEL_ARCH=$(ARCH)
endif
2017-03-24 12:48:43 +01:00
SKIPABI=0
2023-07-17 15:57:58 +02:00
BUILD_DIR=proxmox-kernel-$(KERNEL_VER)
KERNEL_SRC=ubuntu-kernel
KERNEL_SRC_SUBMODULE=submodules/$(KERNEL_SRC)
2023-05-20 16:28:20 +02:00
KERNEL_CFG_ORG=config-$(KERNEL_VER).org
2017-10-12 14:56:28 +02:00
ZFSONLINUX_SUBMODULE=submodules/zfsonlinux
2018-03-09 11:25:58 +01:00
ZFSDIR=pkg-zfs
2018-02-28 09:31:06 +01:00
2018-03-09 11:25:58 +01:00
MODULES=modules
2023-05-20 16:28:20 +02:00
MODULE_DIRS=$(ZFSDIR)
2018-03-09 11:25:58 +01:00
# exported to debian/rules via debian/rules.d/dirs.mk
2019-05-24 14:40:34 +02:00
DIRS=KERNEL_SRC ZFSDIR MODULES
2018-03-09 11:25:58 +01:00
2023-08-02 14:17:56 +02:00
DSC=proxmox-kernel-$(KERNEL_MAJMIN)_$(KERNEL_VER)-$(KREL).dsc
DST_DEB=$(PACKAGE)_$(KERNEL_VER)-$(KREL)_$(ARCH).deb
META_DEB=proxmox-kernel-$(KERNEL_MAJMIN)_$(KERNEL_VER)-$(KREL)_all.deb
HDR_DEB=$(HDRPACKAGE)_$(KERNEL_VER)-$(KREL)_$(ARCH).deb
META_HDR_DEB=proxmox-headers-$(KERNEL_MAJMIN)_$(KERNEL_VER)-$(KREL)_all.deb
USR_HDR_DEB=proxmox-kernel-libc-dev_$(KERNEL_VER)-$(KREL)_$(ARCH).deb
LINUX_TOOLS_DEB=linux-tools-$(KERNEL_MAJMIN)_$(KERNEL_VER)-$(KREL)_$(ARCH).deb
LINUX_TOOLS_DBG_DEB=linux-tools-$(KERNEL_MAJMIN)-dbgsym_$(KERNEL_VER)-$(KREL)_$(ARCH).deb
2023-07-17 15:57:58 +02:00
DEBS=$(DST_DEB) $(META_DEB) $(HDR_DEB) $(META_HDR_DEB) $(LINUX_TOOLS_DEB) $(LINUX_TOOLS_DBG_DEB) # $(USR_HDR_DEB)
all: deb
2023-05-20 16:28:20 +02:00
deb: $(DEBS)
2023-07-17 15:57:58 +02:00
$(META_DEB) $(META_HDR_DEB) $(LINUX_TOOLS_DEB) $(HDR_DEB): $(DST_DEB)
2023-05-20 16:28:20 +02:00
$(DST_DEB): $(BUILD_DIR).prepared
cd $(BUILD_DIR); dpkg-buildpackage --jobs=auto -b -uc -us
lintian $(DST_DEB)
#lintian $(HDR_DEB)
lintian $(LINUX_TOOLS_DEB)
2023-06-13 16:15:37 +02:00
dsc:
$(MAKE) $(DSC)
lintian $(DSC)
2023-05-20 17:32:24 +02:00
$(DSC): $(BUILD_DIR).prepared
cd $(BUILD_DIR); dpkg-buildpackage -S -uc -us -d
2023-05-20 19:25:27 +02:00
sbuild: $(DSC)
sbuild $(DSC)
2023-05-20 16:28:20 +02:00
$(BUILD_DIR).prepared: $(addsuffix .prepared,$(KERNEL_SRC) $(MODULES) debian)
cp -a fwlist-previous $(BUILD_DIR)/
cp -a abi-prev-* $(BUILD_DIR)/
cp -a abi-blacklist $(BUILD_DIR)/
2018-03-09 11:25:58 +01:00
touch $@
.PHONY: build-dir-fresh
build-dir-fresh:
$(MAKE) clean
$(MAKE) $(BUILD_DIR).prepared
echo "created build-directory: $(BUILD_DIR).prepared/"
2018-03-09 11:25:58 +01:00
debian.prepared: debian
2023-05-20 16:28:20 +02:00
rm -rf $(BUILD_DIR)/debian
mkdir -p $(BUILD_DIR)
cp -a debian $(BUILD_DIR)/debian
2023-08-31 12:09:49 +02:00
echo "git clone git://git.proxmox.com/git/pve-kernel.git\\ngit checkout $(shell git rev-parse HEAD)" \
>$(BUILD_DIR)/debian/SOURCE
2023-05-20 16:28:20 +02:00
@$(foreach dir, $(DIRS),echo "$(dir)=$($(dir))" >> $(BUILD_DIR)/debian/rules.d/env.mk;)
echo "KVNAME=$(KVNAME)" >> $(BUILD_DIR)/debian/rules.d/env.mk
echo "KERNEL_MAJMIN=$(KERNEL_MAJMIN)" >> $(BUILD_DIR)/debian/rules.d/env.mk
cd $(BUILD_DIR); debian/rules debian/control
touch $@
2023-05-20 16:28:20 +02:00
$(KERNEL_SRC).prepared: $(KERNEL_SRC_SUBMODULE) | submodule
rm -rf $(BUILD_DIR)/$(KERNEL_SRC) $@
mkdir -p $(BUILD_DIR)
cp -a $(KERNEL_SRC_SUBMODULE) $(BUILD_DIR)/$(KERNEL_SRC)
2018-02-28 09:31:06 +01:00
# TODO: split for archs, track and diff in our repository?
2023-05-20 16:28:20 +02:00
cd $(BUILD_DIR)/$(KERNEL_SRC); python3 debian/scripts/misc/annotations --arch amd64 --export >../../$(KERNEL_CFG_ORG)
cp $(KERNEL_CFG_ORG) $(BUILD_DIR)/$(KERNEL_SRC)/.config
sed -i $(BUILD_DIR)/$(KERNEL_SRC)/Makefile -e 's/^EXTRAVERSION.*$$/EXTRAVERSION=$(EXTRAVERSION)/'
rm -rf $(BUILD_DIR)/$(KERNEL_SRC)/debian $(BUILD_DIR)/$(KERNEL_SRC)/debian.master
set -e; cd $(BUILD_DIR)/$(KERNEL_SRC); \
for patch in ../../patches/kernel/*.patch; do \
echo "applying patch '$$patch'"; \
patch --batch -p1 < "$${patch}"; \
done
touch $@
2023-05-20 16:28:20 +02:00
$(MODULES).prepared: $(addsuffix .prepared,$(MODULE_DIRS))
2018-02-28 09:31:06 +01:00
touch $@
2023-05-20 16:28:20 +02:00
$(ZFSDIR).prepared: $(ZFSONLINUX_SUBMODULE)
rm -rf $(BUILD_DIR)/$(MODULES)/$(ZFSDIR) $(BUILD_DIR)/$(MODULES)/tmp $@
mkdir -p $(BUILD_DIR)/$(MODULES)/tmp
cp -a $(ZFSONLINUX_SUBMODULE)/* $(BUILD_DIR)/$(MODULES)/tmp
cd $(BUILD_DIR)/$(MODULES)/tmp; make kernel
rm -rf $(BUILD_DIR)/$(MODULES)/tmp
touch $(ZFSDIR).prepared
.PHONY: upload
2023-05-20 21:25:34 +02:00
upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
2023-05-20 16:28:20 +02:00
upload: $(DEBS)
2023-05-20 21:25:34 +02:00
tar cf - $(DEBS)|ssh -X repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist $(UPLOAD_DIST) --arch $(ARCH)
.PHONY: distclean
distclean: clean
2018-02-28 09:31:06 +01:00
git submodule deinit --all
2017-03-15 15:21:54 +01:00
# upgrade to current master
.PHONY: update_modules
update_modules: submodule
2017-03-15 15:21:54 +01:00
git submodule foreach 'git pull --ff-only origin master'
2023-05-20 16:28:20 +02:00
cd $(ZFSONLINUX_SUBMODULE); git pull --ff-only origin master
2017-03-15 15:21:54 +01:00
# make sure submodules were initialized
.PHONY: submodule
submodule:
2023-05-20 16:28:20 +02:00
test -f "$(KERNEL_SRC_SUBMODULE)/README" || git submodule update --init $(KERNEL_SRC_SUBMODULE)
test -f "$(ZFSONLINUX_SUBMODULE)/Makefile" || git submodule update --init --recursive $(ZFSONLINUX_SUBMODULE)
2017-03-15 15:21:54 +01:00
2018-03-21 11:27:33 +01:00
# call after ABI bump with header deb in working directory
.PHONY: abiupdate
2023-05-20 16:28:20 +02:00
abiupdate: abi-prev-$(KVNAME)
abi-prev-$(KVNAME): abi-tmp-$(KVNAME)
2018-03-21 11:27:33 +01:00
ifneq ($(strip $(shell git status --untracked-files=no --porcelain -z)),)
@echo "working directory unclean, aborting!"
@false
else
git rm "abi-prev-*"
mv $< $@
git add $@
2023-05-20 16:28:20 +02:00
git commit -s -m "update ABI file for $(KVNAME)" -m "(generated with debian/scripts/abi-generate)"
@echo "update abi-prev-$(KVNAME) committed!"
2018-03-21 11:27:33 +01:00
endif
2023-05-20 16:28:20 +02:00
abi-tmp-$(KVNAME):
@ test -e $(HDR_DEB) || (echo "need $(HDR_DEB) to extract ABI data!" && false)
debian/scripts/abi-generate $(HDR_DEB) $@ $(KVNAME) 1
2017-03-15 15:21:54 +01:00
.PHONY: clean
clean:
2023-07-17 15:57:58 +02:00
rm -rf *~ proxmox-kernel-[0-9]*/ *.prepared $(KERNEL_CFG_ORG)
rm -f *.deb *.dsc *.changes *.buildinfo *.build proxmox-kernel*.tar.*