diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk index ce9bf33299..215f01b430 100644 --- a/package/pkg-kconfig.mk +++ b/package/pkg-kconfig.mk @@ -36,6 +36,7 @@ $(2)_KCONFIG_EDITORS ?= menuconfig $(2)_KCONFIG_OPTS ?= $(2)_KCONFIG_FIXUP_CMDS ?= $(2)_KCONFIG_FRAGMENT_FILES ?= +$(2)_KCONFIG_DOTCONFIG ?= .config # The config file as well as the fragments could be in-tree, so before # depending on them the package should be extracted (and patched) first. @@ -91,10 +92,10 @@ endef # fragments are merged together to .config, after the package has been patched. # Since the file could be a defconfig file it needs to be expanded to a # full .config first. -$$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES) +$$($(2)_DIR)/$$($(2)_KCONFIG_DOTCONFIG): $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES) $$(Q)$$(if $$($(2)_KCONFIG_DEFCONFIG), \ $$($(2)_KCONFIG_MAKE) $$($(2)_KCONFIG_DEFCONFIG), \ - cp $$($(2)_KCONFIG_FILE) $$(@)) + $$(INSTALL) -m 0644 -D $$($(2)_KCONFIG_FILE) $$(@)) $$(Q)support/kconfig/merge_config.sh -m -O $$(@D) \ $$(@) $$($(2)_KCONFIG_FRAGMENT_FILES) $$($(2)_REGEN_DOT_CONFIG) @@ -102,7 +103,7 @@ $$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES) # If _KCONFIG_FILE or _KCONFIG_FRAGMENT_FILES exists, this dependency is # already implied, but if we only have a _KCONFIG_DEFCONFIG we have to add # it explicitly. It doesn't hurt to always have it though. -$$($(2)_DIR)/.config: | $(1)-patch +$$($(2)_DIR)/$$($(2)_KCONFIG_DOTCONFIG): | $(1)-patch # In order to get a usable, consistent configuration, some fixup may be needed. # The exact rules are specified by the package .mk file. @@ -112,7 +113,7 @@ define $(2)_FIXUP_DOT_CONFIG $$(Q)touch $$($(2)_DIR)/.stamp_kconfig_fixup_done endef -$$($(2)_DIR)/.stamp_kconfig_fixup_done: $$($(2)_DIR)/.config +$$($(2)_DIR)/.stamp_kconfig_fixup_done: $$($(2)_DIR)/$$($(2)_KCONFIG_DOTCONFIG) $$($(2)_FIXUP_DOT_CONFIG) # Before running configure, the configuration file should be present and fixed @@ -208,8 +209,8 @@ $(1)-update-config: $(1)-check-configuration-done echo "Unable to perform $(1)-update-config when fragment files are set"; exit 1) @$$(if $$($(2)_KCONFIG_DEFCONFIG), \ echo "Unable to perform $(1)-update-config when using a defconfig rule"; exit 1) - cp -f $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE) - touch --reference $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE) + cp -f $$($(2)_DIR)/$$($(2)_KCONFIG_DOTCONFIG) $$($(2)_KCONFIG_FILE) + touch --reference $$($(2)_DIR)/$$($(2)_KCONFIG_DOTCONFIG) $$($(2)_KCONFIG_FILE) # Note: make sure the timestamp of the stored configuration is not newer than # the .config to avoid a useless rebuild. Note that, contrary to @@ -221,7 +222,7 @@ $(1)-update-defconfig: $(1)-savedefconfig @$$(if $$($(2)_KCONFIG_DEFCONFIG), \ echo "Unable to perform $(1)-update-defconfig when using a defconfig rule"; exit 1) cp -f $$($(2)_DIR)/defconfig $$($(2)_KCONFIG_FILE) - touch --reference $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE) + touch --reference $$($(2)_DIR)/$$($(2)_KCONFIG_DOTCONFIG) $$($(2)_KCONFIG_FILE) endif # package enabled