if BR2_TOOLCHAIN_EXTERNAL

comment "Toolchain External Options"

choice
	prompt "Toolchain"

comment "glibc toolchains only available with shared lib support"
	depends on BR2_STATIC_LIBS

# Kept toolchains sorted by architecture in order to use some toolchain
# as default choice

# Aarch64 (use Linaro toolchain by default)
source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in"
source "toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in"

# ARC
source "toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in"

# ARM (use Linaro toolchain by default)
source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in"
source "toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in"

# ARM big-endian
source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in"

# MIPS (use codesourcery toolchain by default)
source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in"
source "toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in"
source "toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in"

# NIOSII
source "toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in"

# SH4a
source "toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in"

# x86/x86_64 (use amd64 toolchain by default for AMD64)
source "toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in"
source "toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in"

# Kept last, so it remains the non-default choice, unless there isn't
# any available toolchain profile for the currently selected
# architecture.
source "toolchain/toolchain-external/toolchain-external-custom/Config.in"

endchoice

choice
	prompt "Toolchain origin"
	# Keep compatibility with old defconfig files that are using
	# custom toolchains, and which are therefore assuming that
	# "preinstalled" in the default choice.
	default BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED if BR2_TOOLCHAIN_EXTERNAL_CUSTOM

config BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD
	bool "Toolchain to be downloaded and installed"
	help
	  Select this option if you want Buildroot to download and install the
	  toolchain. If you have selected a custom toolchain, specify the URL
	  in BR2_TOOLCHAIN_EXTERNAL_URL.

config BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED
	bool "Pre-installed toolchain"
	help
	  Select this option if you want to use a pre-installed toolchain.
	  Specify the path to this toolchain in BR2_TOOLCHAIN_EXTERNAL_PATH.

endchoice

config BR2_TOOLCHAIN_EXTERNAL_PATH
	string "Toolchain path"
	default "/path/to/toolchain/usr"
	depends on BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED
	help
	  Path to where the external toolchain is installed.

config BR2_TOOLCHAIN_EXTERNAL_GLIBC
	bool
	select BR2_TOOLCHAIN_USES_GLIBC

config BR2_TOOLCHAIN_EXTERNAL_UCLIBC
	bool
	select BR2_TOOLCHAIN_USES_UCLIBC

config BR2_TOOLCHAIN_EXTERNAL_MUSL
	bool
	select BR2_TOOLCHAIN_USES_MUSL
	# Compatibility headers: cdefs.h, queue.h
	select BR2_PACKAGE_MUSL_COMPAT_HEADERS

# Make sure the virtual-package infra checks the provider
config BR2_PACKAGE_HAS_TOOLCHAIN_EXTERNAL
	bool
	default y

config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
	string

config BR2_TOOLCHAIN_EXTERNAL_PREFIX
	string

# Kept toolchains sorted as in the choice above
# The toolchain Config.in.options must define
# BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL and BR2_TOOLCHAIN_EXTERNAL_PREFIX

# Aarch64
source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in.options"
source "toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in.options"

# ARC
source "toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options"

# ARM
source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.options"
source "toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in.options"

# ARM big-endian
source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options"

# MIPS
source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options"
source "toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in.options"
source "toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in.options"

# NIOSII
source "toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in.options"

# SH4a
source "toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in.options"

# x86/x86_64
source "toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in.options"
source "toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in.options"

# Custom toolchains
source "toolchain/toolchain-external/toolchain-external-custom/Config.in.options"

config BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
	bool "Copy gdb server to the Target"
	depends on BR2_TOOLCHAIN_EXTERNAL
	help
	  Copy the gdbserver provided by the external toolchain to the
	  target.

endif # BR2_TOOLCHAIN_EXTERNAL
