add external toolchain support, enhance native toolchain support (special thanks...
[openwrt/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 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 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 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 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_BIN_PATH
54 string
55 prompt "Toolchain program path" if DEVEL
56 depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
57 default "./usr/bin ./bin"
58 help
59 Specify additional directories searched for toolchain binaries (override PATH)
60 Use ./DIR for directories relative to the root above
61
62 config TOOLCHAIN_INC_PATH
63 string
64 prompt "Toolchain include path" if DEVEL
65 depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
66 default "./usr/include ./include"
67 help
68 Specify additional directories searched for header files (override CPPFLAGS)
69 Use ./DIR for directories relative to the root above
70
71 config TOOLCHAIN_LIB_PATH
72 string
73 prompt "Toolchain library path" if DEVEL
74 depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
75 default "./usr/lib ./lib"
76 help
77 Specify additional directories searched for libraries (override LDFLAGS)
78 Use ./DIR for directories relative to the root above
79
80 config NEED_TOOLCHAIN
81 bool
82 depends DEVEL
83 default y if !EXTERNAL_TOOLCHAIN
84
85 menuconfig TOOLCHAINOPTS
86 bool "Toolchain Options" if DEVEL
87 depends NEED_TOOLCHAIN
88
89 menuconfig EXTRA_TARGET_ARCH
90 bool
91 prompt "Enable an extra toolchain target architecture" if TOOLCHAINOPTS
92 default y if powerpc64
93 default n
94 help
95 Some builds may require a 'biarch' toolchain. This option
96 allows you to specify an additional target arch.
97
98 Most people will answer N here.
99
100 config EXTRA_TARGET_ARCH_NAME
101 string
102 default "powerpc64" if powerpc64
103 prompt "Extra architecture name" if EXTRA_TARGET_ARCH
104 help
105 Specify the cpu name (eg powerpc64 or x86_64) of the
106 additional target architecture.
107
108 config EXTRA_TARGET_ARCH_OPTS
109 string
110 default "-m64" if powerpc64
111 prompt "Extra architecture compiler options" if EXTRA_TARGET_ARCH
112 help
113 If you're specifying an addition target architecture,
114 you'll probably need to also provide options to make
115 the compiler use this alternate arch.
116
117 For example, if you're building a compiler that can build
118 both powerpc and powerpc64 binaries, you'll need to
119 specify -m64 here.
120
121 comment "Binary tools"
122 depends TOOLCHAINOPTS
123
124 source "toolchain/binutils/Config.in"
125
126 comment "Compiler"
127 depends TOOLCHAINOPTS
128
129 source "toolchain/gcc/Config.in"
130
131 comment "C Library"
132 depends TOOLCHAINOPTS
133
134 choice
135 prompt "C Library implementation" if TOOLCHAINOPTS
136 default USE_UCLIBC
137 help
138 Select the C library implementation.
139
140 config USE_EGLIBC
141 bool "Use eglibc"
142 depends !avr32
143
144 config USE_GLIBC
145 bool "Use glibc"
146 depends !avr32
147
148 config USE_UCLIBC
149 bool "Use uClibc"
150
151 endchoice
152
153 source "toolchain/eglibc/Config.in"
154 source "toolchain/glibc/Config.in"
155 source "toolchain/uClibc/Config.in"
156
157 comment "Debuggers"
158 depends TOOLCHAINOPTS
159
160 config GDB
161 bool
162 prompt "Build gdb" if TOOLCHAINOPTS
163 default n
164 help
165 Enable if you want to build the gdb
166
167 config INSIGHT
168 bool
169 prompt "Build insight-gdb" if TOOLCHAINOPTS
170 select GDB
171 default n
172 help
173 Enable if you want to build insight-gdb
174
175 config USE_UCLIBC
176 bool
177 default y if !TOOLCHAINOPTS
178
179 source "toolchain/gcc/Config.version"
180
181 source "toolchain/eglibc/Config.version"
182 source "toolchain/glibc/Config.version"
183 source "toolchain/uClibc/Config.version"
184
185 config LIBC
186 string
187 default "eglibc" if USE_EGLIBC
188 default "glibc" if USE_GLIBC
189 default "uClibc" if USE_UCLIBC
190
191 config LIBC_VERSION
192 string
193 default EGLIBC_VERSION if USE_EGLIBC
194 default GLIBC_VERSION if USE_GLIBC
195 default UCLIBC_VERSION if USE_UCLIBC
196
197 config TARGET_SUFFIX
198 string
199 default "gnueabi" if (USE_EGLIBC || USE_GLIBC) && EABI_SUPPORT
200 default "gnu" if (USE_EGLIBC || USE_GLIBC) && !EABI_SUPPORT
201 default "uclibcgnueabi" if USE_UCLIBC && EABI_SUPPORT
202 default "uclibc" if USE_UCLIBC && !EABI_SUPPORT
203