aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorEneas U de Queiroz <cotequeiroz@gmail.com>2021-10-15 10:30:05 -0300
committerFelix Fietkau <nbd@nbd.name>2021-11-01 20:18:55 +0100
commit6b8b5e7248fd8562e8cdd5ef6f3d52f51418fc3b (patch)
treeb00eec46a4302655b4b655e978db0ba587578303 /include
parent8cf4d4df5560f6771f74c3124870e8a23094aff3 (diff)
downloadupstream-6b8b5e7248fd8562e8cdd5ef6f3d52f51418fc3b.tar.gz
upstream-6b8b5e7248fd8562e8cdd5ef6f3d52f51418fc3b.tar.bz2
upstream-6b8b5e7248fd8562e8cdd5ef6f3d52f51418fc3b.zip
build: kernel: avoid unnecessary package rebuilds
The $(LINUX_DIR)/.config timesptamp changes between runs of make target/compile and make target/install (which builds the image). Kernel-dependent packages and out of tree modules are built in between those runs, and they check the .config timestamp to decide if they need to be rebuilt. Save the target/compile .config to use its timestamp if the file does not change between runs. That way the subsequent kernel packages are not unnecessarily rebuilt when you run 'make' back to back. Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
Diffstat (limited to 'include')
-rw-r--r--include/kernel-defaults.mk4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk
index f2864d6a10..77a612dbe1 100644
--- a/include/kernel-defaults.mk
+++ b/include/kernel-defaults.mk
@@ -128,6 +128,10 @@ endef
define Kernel/CompileModules/Default
rm -f $(LINUX_DIR)/vmlinux $(LINUX_DIR)/System.map
+$(KERNEL_MAKE) $(if $(KERNELNAME),$(KERNELNAME),all) modules
+ # If .config did not change, use the previous timestamp to avoid package rebuilds
+ cmp -s $(LINUX_DIR)/.config $(LINUX_DIR)/.config.modules.save && \
+ mv $(LINUX_DIR)/.config.modules.save $(LINUX_DIR)/.config; \
+ $(CP) $(LINUX_DIR)/.config $(LINUX_DIR)/.config.modules.save
endef
OBJCOPY_STRIP = -R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id