diff mbox series

[Unstable,v2,3/3] UBUNTU: [Packaging] rules: Convert install-arch-headers to a stamped target

Message ID 20241216110331.1102729-4-juerg.haefliger@canonical.com
State New
Headers show
Series UBUNTU: [Packaging] Clean up linux-bpf-dev packaging | expand

Commit Message

Juerg Haefliger Dec. 16, 2024, 11:03 a.m. UTC
Currently, subsequent calls of the build-% target result in a rebuild of
the kernel. That is not good and also causes issues with DKMS modules
builds.

I.e., currently:

$ debian/rules build-generic | grep ^Debug
Debug: install-arch-headers
Debug: debian/stamps/stamp-prepare-indep
Debug: debian/stamps/stamp-install-headers
Debug: debian/stamps/stamp-prepare-perarch
Debug: debian/stamps/stamp-build-perarch
Debug: debian/stamps/stamp-prepare-tree-generic
Debug: config-prepare-check-generic
Debug: debian/stamps/stamp-prepare-generic
Debug: debian/stamps/stamp-build-generic
Debug: debian/stamps/stamp-install-generic
Debug: build-generic
$
$ debian/rules build-generic | grep ^Debug
Debug: install-arch-headers
Debug: debian/stamps/stamp-build-perarch
Debug: debian/stamps/stamp-build-generic
Debug: debian/stamps/stamp-install-generic
Debug: build-generic

This is because the dependency chain constains the phony
install-arch-headers target. To fix that, convert it to a stamped target
which runs only once. With this change, we get:

$ debian/rules build-generic | grep ^Debug
Debug: install-arch-headers
Debug: debian/stamps/stamp-prepare-indep
Debug: debian/stamps/stamp-install-headers
Debug: debian/stamps/stamp-prepare-perarch
Debug: debian/stamps/stamp-build-perarch
Debug: debian/stamps/stamp-prepare-tree-generic
Debug: config-prepare-check-generic
Debug: debian/stamps/stamp-prepare-generic
Debug: debian/stamps/stamp-build-generic
Debug: debian/stamps/stamp-install-generic
Debug: build-generic
$
$ debian/rules build-generic | grep ^Debug
Debug: build-generic

While at it, make headers_tmp a 'local' variable.

Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
---
 debian/rules.d/2-binary-arch.mk | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
diff mbox series

Patch

diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
index 4bc46a8b4066..5d487de0df91 100644
--- a/debian/rules.d/2-binary-arch.mk
+++ b/debian/rules.d/2-binary-arch.mk
@@ -501,11 +501,10 @@  ifneq ($(do_full_build),false)
 endif
 	$(stamp)
 
-headers_tmp := $(CURDIR)/debian/tmp-headers
 headers_dir := $(CURDIR)/debian/linux-libc-dev
 
-.PHONY: install-arch-headers
-install-arch-headers:
+$(stampdir)/stamp-install-arch-headers: headers_tmp = $(CURDIR)/debian/tmp-headers
+$(stampdir)/stamp-install-arch-headers:
 	@echo Debug: $@
 	dh_testdir
 	dh_testroot
@@ -515,6 +514,7 @@  install-arch-headers:
 	mkdir $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)
 	mv $(headers_dir)/usr/include/asm $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)/
 	rm -rf $(headers_tmp)
+	$(stamp)
 
 define dh_all
 	dh_installchangelogs -p$(1)
@@ -539,7 +539,7 @@  define dh_all_inline
 endef
 
 .PHONY: binary-arch-headers
-binary-arch-headers: install-arch-headers
+binary-arch-headers: $(stampdir)/stamp-install-arch-headers
 	@echo Debug: $@
 	dh_testdir
 	dh_testroot
@@ -642,7 +642,7 @@  ifeq ($(do_any_tools),true)
 endif
 	$(stamp)
 
-$(stampdir)/stamp-build-perarch: install-arch-headers $(stampdir)/stamp-prepare-perarch
+$(stampdir)/stamp-build-perarch: $(stampdir)/stamp-install-arch-headers $(stampdir)/stamp-prepare-perarch
 	@echo Debug: $@
 ifeq ($(do_linux_tools),true)
 ifeq ($(do_tools_usbip),true)