[toolchain] add external toolchain support, enhance native toolchain support (special...
[openwrt-10.03/.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