kconfig: unify rule of config, menuconfig, nconfig, gconfig, xconfig

Unify the similar build rules.

This supports 'make build_config', which builds scripts/kconfig/conf
but does not invoke it.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
Masahiro Yamada 2021-02-21 22:03:18 +09:00
parent ae8da72bde
commit f91e46b1a7
1 changed files with 14 additions and 22 deletions

View File

@ -3,9 +3,6 @@
# Kernel configuration targets
# These targets are used from top-level makefile
PHONY += xconfig gconfig menuconfig config localmodconfig localyesconfig \
build_menuconfig build_nconfig build_gconfig build_xconfig
ifdef KBUILD_KCONFIG
Kconfig := $(KBUILD_KCONFIG)
else
@ -19,29 +16,24 @@ endif
# We need this, in case the user has it in its environment
unexport CONFIG_
xconfig: $(obj)/qconf
$(Q)$< $(silent) $(Kconfig)
config-prog := conf
menuconfig-prog := mconf
nconfig-prog := nconf
gconfig-prog := gconf
xconfig-prog := qconf
gconfig: $(obj)/gconf
$(Q)$< $(silent) $(Kconfig)
define config_rule
PHONY += $(1)
$(1): $(obj)/$($(1)-prog)
$(Q)$$< $(silent) $(Kconfig)
menuconfig: $(obj)/mconf
$(Q)$< $(silent) $(Kconfig)
PHONY += build_$(1)
build_$(1): $(obj)/$($(1)-prog)
endef
config: $(obj)/conf
$(Q)$< $(silent) $(Kconfig)
nconfig: $(obj)/nconf
$(Q)$< $(silent) $(Kconfig)
build_menuconfig: $(obj)/mconf
build_nconfig: $(obj)/nconf
build_gconfig: $(obj)/gconf
build_xconfig: $(obj)/qconf
$(foreach c, config menuconfig nconfig gconfig xconfig, $(eval $(call config_rule,$(c))))
PHONY += localmodconfig localyesconfig
localyesconfig localmodconfig: $(obj)/conf
$(Q)$(PERL) $(srctree)/$(src)/streamline_config.pl --$@ $(srctree) $(Kconfig) > .tmp.config
$(Q)if [ -f .config ]; then \