*config: improve handling of BR2_LEGACY
In8a46d4bf1f
the randpackageconfig and allpackageyesconfig were extended with disabling all the legacy options, otherwise the resulting config couldn't be built. However, that didn't work for randconfig and allyesconfig. This commit reverts8a46d4bf1f
and replaces it with a different approach: skipping of the legacy config options is passed explicitly through the environment variable SKIP_LEGACY, which forces BR2_SKIP_LEGACY to y. The new option BR2_SKIP_LEGACY completely disables the legacy handling, which effectively removes all the legacy options from the .config. However, in that case no values are set for the legacy options so a subsequent oldconfig will query them. Therefore, run an additional olddefconfig. [Peter: fix s/BR2_LEGACY/SKIP_LEGACY/ typo] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> [yann.morin.1998@free.fr: do not rely on a user-visible option, works perfectly well with only blind options set from the environment] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
7536a7354c
commit
53903a1520
@ -52,6 +52,12 @@
|
||||
#
|
||||
# [End of example]
|
||||
|
||||
config BR2_SKIP_LEGACY
|
||||
bool
|
||||
option env="SKIP_LEGACY"
|
||||
|
||||
if !BR2_SKIP_LEGACY
|
||||
|
||||
config BR2_LEGACY
|
||||
bool
|
||||
help
|
||||
@ -1288,3 +1294,5 @@ config BR2_BFIN_FLAT
|
||||
select BR2_LEGACY
|
||||
|
||||
endmenu
|
||||
|
||||
endif # !SKIP_LEGACY
|
||||
|
32
Makefile
32
Makefile
@ -696,7 +696,8 @@ COMMON_CONFIG_ENV = \
|
||||
KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
|
||||
KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \
|
||||
BR2_CONFIG=$(BR2_CONFIG) \
|
||||
BR2_EXTERNAL=$(BR2_EXTERNAL)
|
||||
BR2_EXTERNAL=$(BR2_EXTERNAL) \
|
||||
SKIP_LEGACY=
|
||||
|
||||
xconfig: $(BUILD_DIR)/buildroot-config/qconf outputmakefile
|
||||
@mkdir -p $(BUILD_DIR)/buildroot-config
|
||||
@ -718,51 +719,56 @@ config: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@mkdir -p $(BUILD_DIR)/buildroot-config
|
||||
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
|
||||
|
||||
# For the config targets that automatically select options, we pass
|
||||
# SKIP_LEGACY=y to disable the legacy options. However, in that case
|
||||
# no values are set for the legacy options so a subsequent oldconfig
|
||||
# will query them. Therefore, run an additional olddefconfig.
|
||||
|
||||
oldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
mkdir -p $(BUILD_DIR)/buildroot-config
|
||||
@$(COMMON_CONFIG_ENV) $< --oldconfig $(CONFIG_CONFIG_IN)
|
||||
|
||||
randconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@mkdir -p $(BUILD_DIR)/buildroot-config
|
||||
@$(COMMON_CONFIG_ENV) $< --randconfig $(CONFIG_CONFIG_IN)
|
||||
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --randconfig $(CONFIG_CONFIG_IN)
|
||||
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
|
||||
|
||||
allyesconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@mkdir -p $(BUILD_DIR)/buildroot-config
|
||||
@$(COMMON_CONFIG_ENV) $< --allyesconfig $(CONFIG_CONFIG_IN)
|
||||
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allyesconfig $(CONFIG_CONFIG_IN)
|
||||
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
|
||||
|
||||
allnoconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@mkdir -p $(BUILD_DIR)/buildroot-config
|
||||
@$(COMMON_CONFIG_ENV) $< --allnoconfig $(CONFIG_CONFIG_IN)
|
||||
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allnoconfig $(CONFIG_CONFIG_IN)
|
||||
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
|
||||
|
||||
randpackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@mkdir -p $(BUILD_DIR)/buildroot-config
|
||||
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
|
||||
@grep '^config BR2_PACKAGE_' Config.in.legacy | \
|
||||
while read config pkg; do \
|
||||
echo "# $$pkg is not set" >> $(CONFIG_DIR)/.config.nopkg; done
|
||||
@$(COMMON_CONFIG_ENV) \
|
||||
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
|
||||
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
|
||||
$< --randconfig $(CONFIG_CONFIG_IN)
|
||||
@rm -f $(CONFIG_DIR)/.config.nopkg
|
||||
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
|
||||
|
||||
allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@mkdir -p $(BUILD_DIR)/buildroot-config
|
||||
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
|
||||
@grep '^config BR2_PACKAGE_' Config.in.legacy | \
|
||||
while read config pkg; do \
|
||||
echo "# $$pkg is not set" >> $(CONFIG_DIR)/.config.nopkg; done
|
||||
@$(COMMON_CONFIG_ENV) \
|
||||
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
|
||||
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
|
||||
$< --allyesconfig $(CONFIG_CONFIG_IN)
|
||||
@rm -f $(CONFIG_DIR)/.config.nopkg
|
||||
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
|
||||
|
||||
allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@mkdir -p $(BUILD_DIR)/buildroot-config
|
||||
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
|
||||
@$(COMMON_CONFIG_ENV) \
|
||||
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
|
||||
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
|
||||
$< --allnoconfig $(CONFIG_CONFIG_IN)
|
||||
@rm -f $(CONFIG_DIR)/.config.nopkg
|
||||
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
|
||||
|
||||
silentoldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@mkdir -p $(BUILD_DIR)/buildroot-config
|
||||
|
Loading…
Reference in New Issue
Block a user