Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70d5cc42 authored by Adrian DC's avatar Adrian DC
Browse files

kernel: prevent additional config from being always rebuilt



 * A simple "make kernel" or incremental system build
   always triggers a complete kernel recompilation,
   even though the kernel sources were unchanged

 * The reason is because .additional_config is always
   considered new and invalidates the .config file,
   forcing the kernel to rebuild itself every time

 * Instead, prevent the /dev/null and KERNEL_OBJ dependencies
   having irrelevant timestamp changes with an empty variable

 * Command "make kernel" takes 3 seconds versus 40s before

Change-Id: I3b583077b7ef5873eebde3e4b0e790f5d7587ed3
Signed-off-by: default avatarAdrian DC <radian.dc@gmail.com>
parent 1de3b301
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -89,10 +89,13 @@ KERNEL_DEFCONFIG_SRC := $(KERNEL_DEFCONFIG_DIR)/$(KERNEL_DEFCONFIG)

ifneq ($(TARGET_KERNEL_ADDITIONAL_CONFIG),)
KERNEL_ADDITIONAL_CONFIG := $(TARGET_KERNEL_ADDITIONAL_CONFIG)
KERNEL_ADDITIONAL_CONFIG_DEPENDENCY :=
KERNEL_ADDITIONAL_CONFIG_SRC := $(KERNEL_DEFCONFIG_DIR)/$(KERNEL_ADDITIONAL_CONFIG)
    ifeq ("$(wildcard $(KERNEL_ADDITIONAL_CONFIG_SRC))","")
        $(warning TARGET_KERNEL_ADDITIONAL_CONFIG '$(TARGET_KERNEL_ADDITIONAL_CONFIG)' doesn't exist)
        KERNEL_ADDITIONAL_CONFIG_SRC := /dev/null
    else
        KERNEL_ADDITIONAL_CONFIG_DEPENDENCY := $(KERNEL_ADDITIONAL_CONFIG_SRC)
    endif
else
    KERNEL_ADDITIONAL_CONFIG_SRC := /dev/null
@@ -239,10 +242,8 @@ define make-dtb-target
$(call internal-make-kernel-target,$(DTB_OUT),$(1))
endef

$(KERNEL_OUT):
$(KERNEL_ADDITIONAL_CONFIG_OUT): $(KERNEL_ADDITIONAL_CONFIG_DEPENDENCY)
	mkdir -p $(KERNEL_OUT)

$(KERNEL_ADDITIONAL_CONFIG_OUT): $(KERNEL_OUT)
	$(hide) cmp -s $(KERNEL_ADDITIONAL_CONFIG_SRC) $@ || cp $(KERNEL_ADDITIONAL_CONFIG_SRC) $@;

$(KERNEL_CONFIG): $(KERNEL_DEFCONFIG_SRC) $(KERNEL_ADDITIONAL_CONFIG_OUT)
@@ -288,13 +289,15 @@ kerneltags: $(KERNEL_CONFIG)

.PHONY: kernelsavedefconfig alldefconfig

kernelsavedefconfig: $(KERNEL_OUT)
kernelsavedefconfig:
	mkdir -p $(KERNEL_OUT)
	$(call make-kernel-target,$(KERNEL_DEFCONFIG))
	env KCONFIG_NOTIMESTAMP=true \
		 $(call make-kernel-target,savedefconfig)
	cp $(KERNEL_OUT)/defconfig $(KERNEL_DEFCONFIG_SRC)

alldefconfig: $(KERNEL_OUT)
alldefconfig:
	mkdir -p $(KERNEL_OUT)
	env KCONFIG_NOTIMESTAMP=true \
		 $(call make-kernel-target,alldefconfig)