package/pkg-kconfig: only define -update-{def, }config if supported

The foo-update-config and foo-update-defconfig targets only work if a
custom config file was defined. Remove those targets entirely if they
don't work to begin with.

This was originally handled with an error condition in the
kconfig-package-update-config macro. However, it makes more sense to
simply remove the target if it anyway can't be used.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[yann.morin.1998@free.fr: move PHONY before corresponding rule]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Arnout Vandecappelle (Essensium/Mind) 2021-07-25 16:11:46 +02:00 committed by Yann E. MORIN
parent d0c82f20c7
commit de669abcb4

View File

@ -12,12 +12,12 @@
################################################################################
# Macro to update back the custom (def)config file
# Must only be called if $(PKG)_KCONFIG_FILE is set and $(PKG)_KCONFIG_DEFCONFIG)
# is not set.
# $(1): file to copy from
define kconfig-package-update-config
@$(if $($(PKG)_KCONFIG_FRAGMENT_FILES), \
echo "Unable to perform $(@) when fragment files are set"; exit 1)
@$(if $($(PKG)_KCONFIG_DEFCONFIG), \
echo "Unable to perform $(@) when using a defconfig rule"; exit 1)
$(Q)if [ -d $($(PKG)_KCONFIG_FILE) ]; then \
echo "Unable to perform $(@) when $($(PKG)_KCONFIG_FILE) is a directory"; \
exit 1; \
@ -285,9 +285,11 @@ $(1)-savedefconfig: $(1)-check-configuration-done
$$(call kconfig-package-savedefconfig,$(2))
endif
ifeq ($$($(2)_KCONFIG_DEFCONFIG),)
# Target to copy back the configuration to the source configuration file
# Even though we could use 'cp --preserve-timestamps' here, the separate
# cp and 'touch --reference' is used for symmetry with $(1)-update-defconfig.
.PHONY: $(1)-update-config
$(1)-update-config: PKG=$(2)
$(1)-update-config: $(1)-check-configuration-done
$$(call kconfig-package-update-config,$$($(2)_KCONFIG_DOTCONFIG))
@ -303,6 +305,8 @@ $(1)-update-defconfig: $(1)-savedefconfig
$$(call kconfig-package-update-config,defconfig)
endif
endif
# Target to output differences between the configuration obtained via the
# defconfig + fragments (if any) and the current configuration.
# Note: it preserves the timestamp of the current configuration when moving it
@ -320,7 +324,6 @@ $(1)-diff-config: $(1)-check-configuration-done
endif # package enabled
.PHONY: \
$(1)-update-config \
$(1)-diff-config \
$(1)-check-configuration-done \
$$($(2)_DIR)/.kconfig_editor_% \