• Masahiro Yamada's avatar
    kbuild: do not quote string values in include/config/auto.conf · 129ab0d2
    Masahiro Yamada authored
    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: default avatarMasahiro Yamada <masahiroy@kernel.org>
    129ab0d2
Makefile 18.7 KB