linux/scripts/kconfig
Masahiro Yamada 129ab0d2d9 kbuild: do not quote string values in include/config/auto.conf
The previous commit fixed up all shell scripts to not include
include/config/auto.conf.

Now that include/config/auto.conf is only included by Makefiles,
we can change it into a more Make-friendly form.

Previously, Kconfig output string values enclosed with double-quotes
(both in the .config and include/config/auto.conf):

    CONFIG_X="foo bar"

Unlike shell, Make handles double-quotes (and single-quotes as well)
verbatim. We must rip them off when used.

There are some patterns:

  [1] $(patsubst "%",%,$(CONFIG_X))
  [2] $(CONFIG_X:"%"=%)
  [3] $(subst ",,$(CONFIG_X))
  [4] $(shell echo $(CONFIG_X))

These are not only ugly, but also fragile.

[1] and [2] do not work if the value contains spaces, like
   CONFIG_X=" foo bar "

[3] does not work correctly if the value contains double-quotes like
   CONFIG_X="foo\"bar"

[4] seems to work better, but has a cost of forking a process.

Anyway, quoted strings were always PITA for our Makefiles.

This commit changes Kconfig to stop quoting in include/config/auto.conf.

These are the string type symbols referenced in Makefiles or scripts:

    ACPI_CUSTOM_DSDT_FILE
    ARC_BUILTIN_DTB_NAME
    ARC_TUNE_MCPU
    BUILTIN_DTB_SOURCE
    CC_IMPLICIT_FALLTHROUGH
    CC_VERSION_TEXT
    CFG80211_EXTRA_REGDB_KEYDIR
    EXTRA_FIRMWARE
    EXTRA_FIRMWARE_DIR
    EXTRA_TARGETS
    H8300_BUILTIN_DTB
    INITRAMFS_SOURCE
    LOCALVERSION
    MODULE_SIG_HASH
    MODULE_SIG_KEY
    NDS32_BUILTIN_DTB
    NIOS2_DTB_SOURCE
    OPENRISC_BUILTIN_DTB
    SOC_CANAAN_K210_DTB_SOURCE
    SYSTEM_BLACKLIST_HASH_LIST
    SYSTEM_REVOCATION_KEYS
    SYSTEM_TRUSTED_KEYS
    TARGET_CPU
    UNUSED_KSYMS_WHITELIST
    XILINX_MICROBLAZE0_FAMILY
    XILINX_MICROBLAZE0_HW_VER
    XTENSA_VARIANT_NAME

I checked them one by one, and fixed up the code where necessary.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2022-01-08 18:03:57 +09:00
..
lxdialog kconfig: lxdialog: A spello fix and a punctuation added 2021-04-14 15:22:49 +09:00
tests kconfig: change "modules" from sub-option to first-level attribute 2021-04-14 15:22:49 +09:00
.gitignore kconfig: refactor .gitignore 2021-04-26 02:17:39 +09:00
conf.c kconfig: Add make mod2noconfig to disable module options 2021-12-02 17:02:36 +09:00
confdata.c kbuild: do not quote string values in include/config/auto.conf 2022-01-08 18:03:57 +09:00
expr.c kconfig: distinguish between dependencies and visibility in help text 2020-01-07 02:18:45 +09:00
expr.h kconfig: remove allnoconfig_y option 2021-04-14 15:22:49 +09:00
gconf-cfg.sh kconfig: do not require pkg-config on make {menu,n}config 2018-09-03 02:13:48 +09:00
gconf.c kconfig: highlight gconfig 'comment' lines with '***' 2021-04-19 14:57:16 +09:00
gconf.glade scripts/kconfig/gconf.glade Update broken web addresses. 2010-09-17 16:54:42 +02:00
images.c kconfig: constify XPM data 2020-08-14 13:30:03 +09:00
images.h kconfig: constify XPM data 2020-08-14 13:30:03 +09:00
internal.h kconfig: split menu.c out of parser.y 2021-04-14 15:26:09 +09:00
lexer.l kconfig: rename a variable in the lexer to a clearer name 2021-09-30 02:08:59 +09:00
list.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
lkc_proto.h kconfig: move sym_escape_string_value() to confdata.c 2021-10-11 23:13:23 +09:00
lkc.h kconfig: remove unused PACKAGE definition 2021-04-19 14:50:16 +09:00
Makefile kconfig: Add make mod2noconfig to disable module options 2021-12-02 17:02:36 +09:00
mconf-cfg.sh kconfig: mconf: fix HOSTCC call 2021-01-27 03:17:42 +09:00
mconf.c kconfig: mconf,nconf: remove unneeded '\0' termination after snprintf() 2021-04-14 15:22:49 +09:00
menu.c kconfig: Create links to main menu items in search 2021-09-25 16:15:48 +09:00
merge_config.sh scripts: merge_config: add strict mode to fail upon any redefinition 2021-08-10 08:23:39 +09:00
nconf-cfg.sh kconfig: be more helpful if pkg-config is missing 2019-11-11 20:10:01 +09:00
nconf.c kconfig: nconf: stop endless search loops 2021-04-16 14:39:12 +09:00
nconf.gui.c kconfig: nconf: refactor in print_in_middle() 2021-04-14 15:25:43 +09:00
nconf.h kconfig: nconf: refactor in print_in_middle() 2021-04-14 15:25:43 +09:00
parser.y kconfig: split menu.c out of parser.y 2021-04-14 15:26:09 +09:00
preprocess.c kconfig: fix return value of do_error_if() 2020-12-21 14:48:54 +09:00
qconf-cfg.sh kconfig: qconf: use a variable to pass packages to pkg-config 2020-12-08 23:31:29 +09:00
qconf.cc kconfig: highlight xconfig 'comment' lines with '***' 2021-04-19 14:58:23 +09:00
qconf.h kconfig: qconf: remove Y, M, N columns 2020-09-25 00:37:13 +09:00
streamline_config.pl streamline_config.pl: show the full Kconfig name 2021-12-02 17:02:36 +09:00
symbol.c kconfig: move sym_escape_string_value() to confdata.c 2021-10-11 23:13:23 +09:00
util.c kconfig: convert to SPDX License Identifier 2018-12-28 22:22:28 +09:00