diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk index e2d52ee8ed..9d65b21ec5 100644 --- a/package/pkg-kconfig.mk +++ b/package/pkg-kconfig.mk @@ -166,6 +166,7 @@ define $(2)_FIXUP_DOT_CONFIG $$(Q)touch $$($(2)_DIR)/.stamp_kconfig_fixup_done endef +$$($(2)_DIR)/.stamp_kconfig_fixup_done: PKG=$(2) $$($(2)_DIR)/.stamp_kconfig_fixup_done: $$($(2)_DIR)/$$($(2)_KCONFIG_STAMP_DOTCONFIG) $$($(2)_FIXUP_DOT_CONFIG) @@ -223,6 +224,7 @@ $(2)_CONFIGURATOR_MAKE_ENV = \ # end up having a valid @D. # $$(addprefix $(1)-,$$($(2)_KCONFIG_EDITORS)): $(1)-%: $$($(2)_DIR)/.kconfig_editor_% +$$($(2)_DIR)/.kconfig_editor_%: PKG=$(2) $$($(2)_DIR)/.kconfig_editor_%: $$($(2)_DIR)/.stamp_kconfig_fixup_done $$($(2)_CONFIGURATOR_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \ $$(PKG_KCONFIG_COMMON_OPTS) $$($(2)_KCONFIG_OPTS) $$(*) diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk index e1f3eafd62..d88a14ab0f 100644 --- a/package/pkg-utils.mk +++ b/package/pkg-utils.mk @@ -11,17 +11,26 @@ # package, and more. # -# KCONFIG_MUNGE_DOT_CONFIG (option, newline, file) +# KCONFIG_DOT_CONFIG ([file]) +# Returns the path to the .config file that should be used, which will +# be $(1) if provided, or the current package .config file otherwise. +KCONFIG_DOT_CONFIG = $(strip \ + $(if $(strip $(1)), $(1), \ + $($(PKG)_BUILDDIR)/$($(PKG)_KCONFIG_DOTCONFIG) \ + ) \ +) + +# KCONFIG_MUNGE_DOT_CONFIG (option, newline [, file]) define KCONFIG_MUNGE_DOT_CONFIG - $(SED) "/\\<$(strip $(1))\\>/d" $(strip $(3)) - echo '$(strip $(2))' >> $(strip $(3)) + $(SED) "/\\<$(strip $(1))\\>/d" $(call KCONFIG_DOT_CONFIG,$(3)) + echo '$(strip $(2))' >> $(call KCONFIG_DOT_CONFIG,$(3)) endef -# KCONFIG_ENABLE_OPT (option, file) +# KCONFIG_ENABLE_OPT (option [, file]) KCONFIG_ENABLE_OPT = $(call KCONFIG_MUNGE_DOT_CONFIG, $(1), $(1)=y, $(2)) -# KCONFIG_SET_OPT (option, value, file) +# KCONFIG_SET_OPT (option, value [, file]) KCONFIG_SET_OPT = $(call KCONFIG_MUNGE_DOT_CONFIG, $(1), $(1)=$(2), $(3)) -# KCONFIG_DISABLE_OPT (option, file) +# KCONFIG_DISABLE_OPT (option [, file]) KCONFIG_DISABLE_OPT = $(call KCONFIG_MUNGE_DOT_CONFIG, $(1), $(SHARP_SIGN) $(1) is not set, $(2)) # Helper functions to determine the name of a package and its