summaryrefslogtreecommitdiffstats
path: root/toolchain/Config.in
blob: 540ae067cbdd57cc536722d67b308cb1fa18e0a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
#

menuconfig EXTERNAL_TOOLCHAIN
	bool
	prompt "Use external toolchain"  if DEVEL
	help
	  If enabled, OpenWrt will compile using an existing toolchain instead of compiling one

	config NATIVE_TOOLCHAIN
		bool
		prompt "Use host's toolchain"  if DEVEL
		depends EXTERNAL_TOOLCHAIN
		select NO_STRIP
		help
		  If enabled, OpenWrt will compile using the native toolchain for your host instead of compiling one

	config TARGET_NAME
		string
		prompt "Target name"  if DEVEL
		depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
		default "arm-unknown-linux-gnu"      if arm
		default "armeb-unknown-linux-gnu"    if armeb
		default "i486-unknown-linux-gnu"     if i386
		default "mips-unknown-linux-gnu"     if mips
		default "mipsel-unknown-linux-gnu"   if mipsel
		default "powerpc-unknown-linux-gnu"  if powerpc
		default "x86_64-unknown-linux-gnu"   if x86_64

	config TOOLCHAIN_PREFIX
		string
		prompt "Toolchain prefix"  if DEVEL
		depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
		default "arm-unknown-linux-gnu-"      if arm
		default "armeb-unknown-linux-gnu-"    if armeb
		default "i486-unknown-linux-gnu-"     if i386
		default "mips-unknown-linux-gnu-"     if mips
		default "mipsel-unknown-linux-gnu-"   if mipsel
		default "powerpc-unknown-linux-gnu-"  if powerpc
		default "x86_64-unknown-linux-gnu-"   if x86_64

	config TOOLCHAIN_ROOT
		string
		prompt "Toolchain root"  if DEVEL
		depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
		default "/opt/cross/arm-unknown-linux-gnu"      if arm
		default "/opt/cross/armeb-unknown-linux-gnu"    if armeb
		default "/opt/cross/i486-unknown-linux-gnu"     if i386
		default "/opt/cross/mips-unknown-linux-gnu"     if mips
		default "/opt/cross/mipsel-unknown-linux-gnu"   if mipsel
		default "/opt/cross/powerpc-unknown-linux-gnu"  if powerpc
		default "/opt/cross/x86_64-unknown-linux-gnu"   if x86_64

	config TOOLCHAIN_BIN_PATH
		string
		prompt "Toolchain program path"  if DEVEL
		depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
		default "./usr/bin ./bin"
		help
		  Specify additional directories searched for toolchain binaries (override PATH)
		  Use ./DIR for directories relative to the root above

	config TOOLCHAIN_INC_PATH
		string
		prompt "Toolchain include path"  if DEVEL
		depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
		default "./usr/include ./include"
		help
		  Specify additional directories searched for header files (override CPPFLAGS)
		  Use ./DIR for directories relative to the root above

	config TOOLCHAIN_LIB_PATH
		string
		prompt "Toolchain library path"  if DEVEL
		depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
		default "./usr/lib ./lib"
		help
		  Specify additional directories searched for libraries (override LDFLAGS)
		  Use ./DIR for directories relative to the root above

config NEED_TOOLCHAIN
	bool
	depends DEVEL
	default y if !EXTERNAL_TOOLCHAIN

menuconfig TOOLCHAINOPTS
	bool "Toolchain Options"  if DEVEL
	depends NEED_TOOLCHAIN

menuconfig EXTRA_TARGET_ARCH
	bool
	prompt "Enable an extra toolchain target architecture" if TOOLCHAINOPTS
	depends !sparc
	default y	if powerpc64
	default n
	help
	  Some builds may require a 'biarch' toolchain. This option
	  allows you to specify an additional target arch.

	  Most people will answer N here.

	config EXTRA_TARGET_ARCH_NAME
		string
		default "powerpc64"	if powerpc64
		prompt "Extra architecture name" if EXTRA_TARGET_ARCH
		help
		  Specify the cpu name (eg powerpc64 or x86_64) of the
		  additional target architecture.

	config EXTRA_TARGET_ARCH_OPTS
		string
		default "-m64"		if powerpc64
		prompt "Extra architecture compiler options" if EXTRA_TARGET_ARCH
		help
		  If you're specifying an addition target architecture,
		  you'll probably need to also provide options to make
		  the compiler use this alternate arch.

		  For example, if you're building a compiler that can build
		  both powerpc and powerpc64 binaries, you'll need to
		  specify -m64 here.

comment "Binary tools"
	depends TOOLCHAINOPTS

source "toolchain/binutils/Config.in"

comment "Compiler"
	depends TOOLCHAINOPTS

source "toolchain/gcc/Config.in"

comment "C Library"
	depends TOOLCHAINOPTS

choice
	prompt "C Library implementation" if TOOLCHAINOPTS
	default USE_UCLIBC
	help
	  Select the C library implementation.

	config USE_EGLIBC
		bool "Use eglibc"
		depends !avr32
	
	config USE_GLIBC
		bool "Use glibc"
		depends !avr32
	
	config USE_UCLIBC
		bool "Use uClibc"

endchoice

source "toolchain/eglibc/Config.in"
source "toolchain/glibc/Config.in"
source "toolchain/uClibc/Config.in"

comment "Debuggers"
	depends TOOLCHAINOPTS

config GDB
	bool
	prompt "Build gdb" if TOOLCHAINOPTS
	default n
	help
		Enable if you want to build the gdb

config INSIGHT
	bool
	prompt "Build insight-gdb" if TOOLCHAINOPTS
	select GDB
	default n
	help
		Enable if you want to build insight-gdb

config USE_UCLIBC
	bool
	default y if !TOOLCHAINOPTS

source "toolchain/gcc/Config.version"

source "toolchain/eglibc/Config.version"
source "toolchain/glibc/Config.version"
source "toolchain/uClibc/Config.version"

config LIBC
	string
	default "eglibc"  if USE_EGLIBC
	default "glibc"   if USE_GLIBC
	default "uClibc"  if USE_UCLIBC

config LIBC_VERSION
	string
	default EGLIBC_VERSION  if USE_EGLIBC
	default GLIBC_VERSION   if USE_GLIBC
	default UCLIBC_VERSION  if USE_UCLIBC

config EABI_SUPPORT
	bool
	depends arm||armeb
	default y

config TARGET_SUFFIX
	string
	default "gnueabi"         if (USE_EGLIBC || USE_GLIBC) && EABI_SUPPORT
	default "gnu"             if (USE_EGLIBC || USE_GLIBC) && !EABI_SUPPORT
	default "uclibcgnueabi"   if USE_UCLIBC && EABI_SUPPORT
	default "uclibc"          if USE_UCLIBC && !EABI_SUPPORT