1if BR2_TOOLCHAIN_EXTERNAL
2
3comment "Toolchain External Options"
4
5choice
6	prompt "Toolchain"
7
8# Kept toolchains sorted by architecture in order to use some toolchain
9# as default choice
10
11# Aarch64 (use ARM toolchain by default)
12source "toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in"
13source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in"
14
15# Aarch64 big-endian
16source "toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in"
17source "toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/Config.in"
18
19# ARC
20source "toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in"
21
22# ARM (use ARM toolchain by default)
23source "toolchain/toolchain-external/toolchain-external-arm-arm/Config.in"
24source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in"
25
26# ARM big-endian
27source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in"
28
29# MIPS
30source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in"
31
32# Bootlin toolchains, available for virtually all architectures
33source "toolchain/toolchain-external/toolchain-external-bootlin/Config.in"
34
35# Kept last, so it remains the non-default choice, unless there isn't
36# any available toolchain profile for the currently selected
37# architecture, but before toolchains from br2-external trees.
38source "toolchain/toolchain-external/toolchain-external-custom/Config.in"
39
40# Toolchains from br2-external trees, if any
41source "$BR2_BASE_DIR/.br2-external.in.toolchains"
42
43endchoice
44
45choice
46	prompt "Toolchain origin"
47	# Keep compatibility with old defconfig files that are using
48	# custom toolchains, and which are therefore assuming that
49	# "preinstalled" in the default choice.
50	default BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
51
52config BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD
53	bool "Toolchain to be downloaded and installed"
54	help
55	  Select this option if you want Buildroot to download and
56	  install the toolchain. If you have selected a custom
57	  toolchain, specify the URL in BR2_TOOLCHAIN_EXTERNAL_URL.
58
59config BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED
60	bool "Pre-installed toolchain"
61	help
62	  Select this option if you want to use a pre-installed
63	  toolchain. Specify the path to this toolchain in
64	  BR2_TOOLCHAIN_EXTERNAL_PATH.
65
66endchoice
67
68config BR2_TOOLCHAIN_EXTERNAL_PATH
69	string "Toolchain path"
70	default ""
71	depends on BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED
72	help
73	  Path to where the external toolchain is installed. The
74	  compiler itself is expected to be in the "bin" subdirectory
75	  of this path.
76
77	  If empty, the compiler will be searched in $PATH.
78
79config BR2_TOOLCHAIN_EXTERNAL_GLIBC
80	bool
81	select BR2_TOOLCHAIN_USES_GLIBC
82
83config BR2_TOOLCHAIN_EXTERNAL_UCLIBC
84	bool
85	select BR2_TOOLCHAIN_USES_UCLIBC
86
87config BR2_TOOLCHAIN_EXTERNAL_MUSL
88	bool
89	select BR2_TOOLCHAIN_USES_MUSL
90	# Compatibility headers: cdefs.h, queue.h
91	select BR2_PACKAGE_MUSL_COMPAT_HEADERS
92
93# Make sure the virtual-package infra checks the provider
94config BR2_PACKAGE_HAS_TOOLCHAIN_EXTERNAL
95	bool
96	default y
97
98config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
99	string
100
101config BR2_TOOLCHAIN_EXTERNAL_PREFIX
102	string
103
104# Kept toolchains sorted as in the choice above
105# The toolchain Config.in.options must define
106# BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL and BR2_TOOLCHAIN_EXTERNAL_PREFIX
107
108# Aarch64
109source "toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in.options"
110source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in.options"
111
112# Aarch64 big-endian
113source "toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in.options"
114source "toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/Config.in.options"
115
116# ARC
117source "toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options"
118
119# ARM
120source "toolchain/toolchain-external/toolchain-external-arm-arm/Config.in.options"
121source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.options"
122
123# ARM big-endian
124source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options"
125
126# MIPS
127source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options"
128
129# Bootlin toolchains
130source "toolchain/toolchain-external/toolchain-external-bootlin/Config.in.options"
131
132# Custom toolchains
133source "toolchain/toolchain-external/toolchain-external-custom/Config.in.options"
134
135config BR2_TOOLCHAIN_EXTERNAL_HAS_NO_GDBSERVER
136	bool
137
138config BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
139	bool "Copy gdb server to the Target"
140	depends on BR2_TOOLCHAIN_EXTERNAL
141	depends on !BR2_TOOLCHAIN_EXTERNAL_HAS_NO_GDBSERVER
142	help
143	  Copy the gdbserver provided by the external toolchain to the
144	  target.
145
146endif # BR2_TOOLCHAIN_EXTERNAL
147