build: consistently use 'depends on' instead of 'depends'
[openwrt.git] / toolchain / Config.in
1 #
2
3 menuconfig EXTERNAL_TOOLCHAIN
4         bool
5         prompt "Use external toolchain"  if DEVEL
6         help
7           If enabled, OpenWrt will compile using an existing toolchain instead of compiling one
8
9         config NATIVE_TOOLCHAIN
10                 bool
11                 prompt "Use host's toolchain"  if DEVEL
12                 depends on EXTERNAL_TOOLCHAIN
13                 select NO_STRIP
14                 help
15                   If enabled, OpenWrt will compile using the native toolchain for your host instead of compiling one
16
17         config TARGET_NAME
18                 string
19                 prompt "Target name"  if DEVEL
20                 depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
21                 default "arm-unknown-linux-gnu"      if arm
22                 default "armeb-unknown-linux-gnu"    if armeb
23                 default "i486-unknown-linux-gnu"     if i386
24                 default "mips-unknown-linux-gnu"     if mips
25                 default "mipsel-unknown-linux-gnu"   if mipsel
26                 default "powerpc-unknown-linux-gnu"  if powerpc
27                 default "x86_64-unknown-linux-gnu"   if x86_64
28
29         config TOOLCHAIN_PREFIX
30                 string
31                 prompt "Toolchain prefix"  if DEVEL
32                 depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
33                 default "arm-unknown-linux-gnu-"      if arm
34                 default "armeb-unknown-linux-gnu-"    if armeb
35                 default "i486-unknown-linux-gnu-"     if i386
36                 default "mips-unknown-linux-gnu-"     if mips
37                 default "mipsel-unknown-linux-gnu-"   if mipsel
38                 default "powerpc-unknown-linux-gnu-"  if powerpc
39                 default "x86_64-unknown-linux-gnu-"   if x86_64
40
41         config TOOLCHAIN_ROOT
42                 string
43                 prompt "Toolchain root"  if DEVEL
44                 depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
45                 default "/opt/cross/arm-unknown-linux-gnu"      if arm
46                 default "/opt/cross/armeb-unknown-linux-gnu"    if armeb
47                 default "/opt/cross/i486-unknown-linux-gnu"     if i386
48                 default "/opt/cross/mips-unknown-linux-gnu"     if mips
49                 default "/opt/cross/mipsel-unknown-linux-gnu"   if mipsel
50                 default "/opt/cross/powerpc-unknown-linux-gnu"  if powerpc
51                 default "/opt/cross/x86_64-unknown-linux-gnu"   if x86_64
52
53         config TOOLCHAIN_LIBC
54                 string
55                 prompt "Toolchain libc"  if DEVEL
56                 depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
57                 default "uclibc"
58                 help
59                   Specify the libc type used by the external toolchain. The given value us passed as -m
60                   flag to all gcc and g++ invocations. This is mainly intended for multilib toolchains
61                   which support glibc and uclibc at the same time. If no value is specified, no -m flag
62                   is passed.
63
64         config TOOLCHAIN_BIN_PATH
65                 string
66                 prompt "Toolchain program path"  if DEVEL
67                 depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
68                 default "./usr/bin ./bin"
69                 help
70                   Specify additional directories searched for toolchain binaries (override PATH)
71                   Use ./DIR for directories relative to the root above
72
73         config TOOLCHAIN_INC_PATH
74                 string
75                 prompt "Toolchain include path"  if DEVEL
76                 depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
77                 default "./usr/include ./include"
78                 help
79                   Specify additional directories searched for header files (override CPPFLAGS)
80                   Use ./DIR for directories relative to the root above
81
82         config TOOLCHAIN_LIB_PATH
83                 string
84                 prompt "Toolchain library path"  if DEVEL
85                 depends on EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
86                 default "./usr/lib ./lib"
87                 help
88                   Specify additional directories searched for libraries (override LDFLAGS)
89                   Use ./DIR for directories relative to the root above
90
91 config NEED_TOOLCHAIN
92         bool
93         depends on DEVEL
94         default y if !EXTERNAL_TOOLCHAIN
95
96 menuconfig TOOLCHAINOPTS
97         bool "Toolchain Options"  if DEVEL
98         depends on NEED_TOOLCHAIN
99
100 menuconfig EXTRA_TARGET_ARCH
101         bool
102         prompt "Enable an extra toolchain target architecture" if TOOLCHAINOPTS
103         depends on !sparc
104         default y       if powerpc64
105         default n
106         help
107           Some builds may require a 'biarch' toolchain. This option
108           allows you to specify an additional target arch.
109
110           Most people will answer N here.
111
112         config EXTRA_TARGET_ARCH_NAME
113                 string
114                 default "powerpc64"     if powerpc64
115                 prompt "Extra architecture name" if EXTRA_TARGET_ARCH
116                 help
117                   Specify the cpu name (eg powerpc64 or x86_64) of the
118                   additional target architecture.
119
120         config EXTRA_TARGET_ARCH_OPTS
121                 string
122                 default "-m64"          if powerpc64
123                 prompt "Extra architecture compiler options" if EXTRA_TARGET_ARCH
124                 help
125                   If you're specifying an addition target architecture,
126                   you'll probably need to also provide options to make
127                   the compiler use this alternate arch.
128
129                   For example, if you're building a compiler that can build
130                   both powerpc and powerpc64 binaries, you'll need to
131                   specify -m64 here.
132
133
134         choice
135                 prompt "MIPS64 user-land ABI" if TOOLCHAINOPTS && (mips64 || mips64el)
136                 default MIPS64_ABI_N64
137                 help
138                    MIPS64 supports 3 different user-land ABIs: o32 (legacy),
139                    n32 and n64.
140
141                 config MIPS64_ABI_N64
142                         bool "n64"
143
144                 config MIPS64_ABI_N32
145                         bool "n32"
146
147                 config MIPS64_ABI_O32
148                         bool "o32"
149
150         endchoice
151
152 comment "Binary tools"
153         depends on TOOLCHAINOPTS
154
155 source "toolchain/binutils/Config.in"
156
157 comment "Compiler"
158         depends on TOOLCHAINOPTS
159
160 source "toolchain/gcc/Config.in"
161
162 comment "C Library"
163         depends on TOOLCHAINOPTS
164
165 choice
166         prompt "C Library implementation" if TOOLCHAINOPTS
167         default USE_UCLIBC
168         help
169           Select the C library implementation.
170
171         config USE_EGLIBC
172                 bool "Use eglibc"
173                 depends on !avr32
174         
175         config USE_UCLIBC
176                 bool "Use uClibc"
177
178         config USE_MUSL
179                 bool "Use musl"
180                 depends on !(mips64 || mips64el)
181
182 endchoice
183
184 source "toolchain/eglibc/Config.in"
185 source "toolchain/uClibc/Config.in"
186 source "toolchain/musl/Config.in"
187
188 comment "Debuggers"
189         depends on TOOLCHAINOPTS
190
191 config GDB
192         bool
193         depends on !avr32
194         prompt "Build gdb" if TOOLCHAINOPTS
195         default y
196         help
197                 Enable if you want to build the gdb
198
199 config INSIGHT
200         bool
201         prompt "Build insight-gdb" if TOOLCHAINOPTS
202         select GDB
203         default n
204         help
205                 Enable if you want to build insight-gdb
206
207 config USE_UCLIBC
208         bool
209         default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
210
211 config USE_EXTERNAL_LIBC
212         bool
213         default y if EXTERNAL_TOOLCHAIN || NATIVE_TOOLCHAIN
214
215 source "toolchain/gcc/Config.version"
216
217 source "toolchain/eglibc/Config.version"
218 source "toolchain/uClibc/Config.version"
219 source "toolchain/musl/Config.version"
220
221 config LIBC
222         string
223         default "eglibc"  if USE_EGLIBC
224         default "uClibc"  if USE_UCLIBC
225         default "musl"    if USE_MUSL
226
227 config LIBC_VERSION
228         string
229         default EGLIBC_VERSION  if USE_EGLIBC
230         default UCLIBC_VERSION  if USE_UCLIBC
231         default MUSL_VERSION    if USE_MUSL
232
233 config TARGET_SUFFIX
234         string
235         default "gnueabi"         if USE_EGLIBC && (arm || armeb)
236         default "gnu"             if USE_EGLIBC && !(arm || armeb)
237         default "uclibcgnueabi"   if USE_UCLIBC && (arm || armeb)
238         default "uclibc"          if USE_UCLIBC && !(arm || armeb)
239         default "muslgnueabi"     if USE_MUSL && (arm || armeb)
240         default "musl"            if USE_MUSL && !(arm || armeb)
241
242 config MIPS64_ABI
243         depends on mips64 || mips64el
244         string
245         default "64" if MIPS64_ABI_N64
246         default "n32" if MIPS64_ABI_N32
247         default "32" if MIPS64_ABI_O32
248         default "64"