From 53903a1520420ae92fc1a9b4ffa6df8efff266f4 Mon Sep 17 00:00:00 2001 From: Arnout Vandecappelle Date: Sat, 11 Apr 2015 01:49:02 +0200 Subject: [PATCH] *config: improve handling of BR2_LEGACY In 8a46d4bf1f 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 reverts 8a46d4bf1f 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) [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" Signed-off-by: Peter Korsgaard --- Config.in.legacy | 8 ++++++++ Makefile | 32 +++++++++++++++++++------------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/Config.in.legacy b/Config.in.legacy index 0fc794f758..97bc939802 100644 --- a/Config.in.legacy +++ b/Config.in.legacy @@ -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 diff --git a/Makefile b/Makefile index 5f9a2c33ed..f011918490 100644 --- a/Makefile +++ b/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 -- 2.30.2