diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk index bdf264d4..23806d9f 100644 --- a/build/tasks/kernel.mk +++ b/build/tasks/kernel.mk @@ -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)