# Overall toolchain configuration: paths, jobs, etc...

config VERSION
    string
    default "$(CT_VERSION)"

# Config version checking framework. If CONFIG_VERSION is unset in the current .config
# or defconfig, it is loaded as 0 (possibly triggering a user prompt during 'ct-ng oldconfig').
# If the value of CONFIG_VERSION is older than CONFIG_VERSION_CURRENT, we'll advice the user
# to run the configuration through an upgrade. If it is newer, we'll error out - I have no
# crystal orb to perform the downgrade.

# Hack to make kconfig save/load the value for CONFIG_VERSION. Set to empty value (for
# normal operations like 'ct-ng menuconfig'); 'load' for creating a configuration from a (potentially)
# old file, i.e. 'ct-ng <sample>' or 'ct-ng oldconfig'; 'save' for saving the current configuration,
# i.e. 'ct-ng saveconfig' or 'ct-ng savedefconfig'.
config VCHECK
    string
    default "$(CT_VCHECK)"

# Kconfig's idiosynchrasy: it does not output the config settings declared with 'option env'
# to the generated .config file. Must use one extra level of indirection.
config CONFIG_VERSION_ENV
    string
    default "$(CT_CONFIG_VERSION_CURRENT)"

# Up-to-date version of the configuration file. If saving a defconfig, choose a default that
# is guaranteed not to match - so that kconfig saves the value to .config.
config CONFIG_VERSION_CURRENT
    string
    default CONFIG_VERSION_ENV

# Version used by the config being loaded (e.g. as part of 'oldconfig' or recalling
# a defconfig. Make it changeable while loading/saving to force writing it to defconfig.
config CONFIG_VERSION
    string
    prompt "** make it changeable **" if VCHECK = "load" || VCHECK = "save"
    default "0" if VCHECK = "load" || VCHECK = "save"
    default CONFIG_VERSION_CURRENT

config INVALID_CONFIGURATION
    bool

if VCHECK = "warning"
comment "*************************************************************************"
comment "Loaded configuration was generated by a previous version of crosstool-NG."
comment "Saving it will mark the configuration as up-to-date without verifying it."
comment "It is recommended to run \"ct-ng upgradeconfig\" before making any         "
comment "changes to the configuration.                                            "
comment "*************************************************************************"
endif

# Allow unconditional usage of tristates
config MODULES
    def_bool y
    option modules

menu "Paths and misc options"

source "config/global/ct-behave.in"
source "config/global/paths.in"
source "config/global/download.in"
source "config/global/extract.in"
source "config/global/build-behave.in"
source "config/global/logging.in"

endmenu
