summaryrefslogtreecommitdiffstats
path: root/rules/target.in
blob: 4e89448d09290ec4a77ddd0f079616ee2c93cfcf (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
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
comment "Target Architecture Options"

choice
	prompt "CPU Architecture "
	help
	  Specify which processor architecture you want to compile for.

	config ARCH_ALPHA
		bool "ALPHA"
		help
		  This is support for the Alpha processor architecture.

	config ARCH_ARM
		bool "ARM"
		help
		  This is support for the ARM processor architecture.

	config ARCH_ARM_NOMMU
		bool "ARM-nommu"
		depends on EXPERIMENTAL_MORE
		help
		  This is support for the ARM processor architecture w/o MMU.

	config ARCH_X86
		bool "X86"
		help
		  This is support for the Intel x86 architecture also called ia32.

	config ARCH_PPC
		bool "PPC"

	config ARCH_M68K
		bool "m68k"
		help
		  This is support for the Motorola/Freescale M68k architecture.

	config ARCH_SPARC
		bool "SPARC"
		depends on EXPERIMENTAL

	config ARCH_MIPS
		bool "MIPS"
		depends on EXPERIMENTAL

	config ARCH_CRIS
		depends on EXPERIMENTAL_MORE
		bool "CRIS"

	config ARCH_PARISC
		depends on EXPERIMENTAL_MORE
		bool "PARISC"

	config ARCH_SH
		depends on EXPERIMENTAL_MORE
		bool "SuperH"
endchoice

choice
	prompt "ARM Family Variant"
		depends on ARCH_ARM || ARCH_ARM_NOMMU
		help
		  The ARM processor architecture has a variety of flavours.
		  Please chose one.

	config ARM_ARCH_ATMEL
		bool "atmel (little endian)"
		depends on ARCH_ARM_NOMMU

	config ARM_ARCH_AT91RM9200
		bool "at91rm9200 (little endian)"
		depends on ARCH_ARM

	config ARM_ARCH_EPXA
		bool "Excalibur (little endian)"
		depends on ARCH_ARM

	config ARM_ARCH_IMX
		bool "i.MX (little endian)"
		depends on ARCH_ARM

	config ARM_ARCH_IXP2000
		bool "ixp2000 (big endian)"
		depends on ARCH_ARM && EXPERIMENTAL_MORE

	config ARM_ARCH_NETARM
		bool "net+arm (little endian)"
		depends on ARCH_ARM_NOMMU

	config ARM_ARCH_NETX
		bool "netX (little endian)"
		depends on ARCH_ARM

	config ARM_ARCH_OMAP
		bool "OMAP (little endian)"
		depends on ARCH_ARM

	config ARM_ARCH_PXA
		bool "pxa (little endian)"
		depends on ARCH_ARM

	config ARM_ARCH_SA1100
		bool "sa1100 (little endian)"
		depends on ARCH_ARM

endchoice

config ARM_ARCH
	string
	default "atmel"			if ARM_ARCH_ATMEL
	default "at91rm9200"		if ARM_ARCH_AT91RM9200
	default "epxa"			if ARM_ARCH_EPXA
	default "imx"			if ARM_ARCH_IMX
	default "ixp2000"		if ARM_ARCH_IXP2000
	default "netarm"		if ARM_ARCH_NETARM
	default "netx"			if ARM_ARCH_NETX
	default "omap"			if ARM_ARCH_OMAP
	default "pxa"			if ARM_ARCH_PXA
	default "sa1100"		if ARM_ARCH_SA1100

config ARM_ARCH_BE
	bool
	default y if ARM_ARCH_IXP2000

config ARM_ARCH_LE
	bool
	default y if ARM_ARCH_PXA || ARM_ARCH_SA1100 || ARM_ARCH_NETARM || ARM_ARCH_ATMEL || ARM_ARCH_IMX || ARM_ARCH_AT91RM9200 || ARM_ARCH_OMAP

choice
	prompt "MIPS architecture"
	depends on ARCH_MIPS

	config MIPS_ARCH_BE
		bool "mips (big endian)"

	config MIPS_ARCH_LE
		bool "mipsel (little endian)"
endchoice

choice
	prompt "SuperH architecture"
	depends on ARCH_SH

	config SH_ARCH_SH3
		bool "SH3"

	config SH_ARCH_SH4
		bool "SH4"
endchoice

choice
	prompt "Code Optimization"

	config OPT_ARM
		bool "generic arm"
		depends on ARCH_ARM
	config OPT_ARM_NOMMU
		bool "generic arm (w/o MMU)"
		depends on ARCH_ARM_NOMMU

	config OPT_I386
		bool "386"
		depends on ARCH_X86
		help
		  The compiler will generate code for i386 CPUs as default. This code will
		  run on almost all x86/ia32 processors.

	config OPT_I486
		bool "486"
		depends on ARCH_X86
		help
		  The compiler will generate code for i486 CPUs as default. This code will run
		  on almost all x86/ia32 processors, but not on i386!

	config OPT_I586
		bool "586"
		depends on ARCH_X86
		help
		  The compiler will generate code for i586 class CPUs as default (Pentium).
		  This code will run on almost all x86/ia32 processors, but not on i386 and i486!

	config OPT_I686
		bool "686"
		depends on ARCH_X86
		help
		  The compiler will generate code for i686 class CPUs as default (Pentium Pro).
		  This code will run on almost all x86/ia32 processors, but not on i386, i486 and pentium!

	config OPT_P2
		bool "Pentium II"
		depends on ARCH_X86
		help
		  The compiler will generate code for Pentium II CPUs as default.
		  This code will run on Pentium II and above CPUs.

  	config OPT_P3M
		bool "Pentium III/M"
		depends on ARCH_X86
		help
		  The compiler will generate code for Pentium III and Pentium M CPUs as default.
		  This code will run on Pentium III and above CPUs. Note: A Pentium M is a successor
		  of Pentium III (Pentium 4 is a dead end)

	config OPT_PPC
		bool "generic PPC"
		depends on ARCH_PPC
	config OPT_PPC405
		bool "PPC 405"
		depends on ARCH_PPC
	config OPT_PPC604
		bool "PPC 604"
		depends on ARCH_PPC
	config OPT_PPC750
		bool "PPC 750"
		depends on ARCH_PPC
	config OPT_PPC7450
		bool "PPC 7450"
		depends on ARCH_PPC

	config OPT_SPARC
		bool "generic sparc"
		depends on ARCH_SPARC

	config OPT_MIPS
		bool "generic mips (big endian)"
		depends on MIPS_ARCH_BE
	config OPT_MIPSEL
		bool "generic mipsel (little endian)"
		depends on MIPS_ARCH_LE

	config OPT_CRIS
		bool "generic cris"
		depends on ARCH_CRIS

	config OPT_PARISC
		bool "generic parisc"
		depends on ARCH_PARISC

	config OPT_SH3
		bool "generic SH3"
		depends on SH_ARCH_SH3

	config OPT_SH4
		bool "generic SH4"
		depends on SH_ARCH_SH4
endchoice

config SOFTFLOAT
	bool
	prompt "Use Software Floatingpoint"
	default n
	depends on ARCH_ARM || ARCH_PPC
	help
	  Set this option if you want to let the toolchain replace the
	  floating point instructions by emulation code.

comment "Extra Toolchain Options"

config TARGET_EXTRA_CPPFLAGS
	string
	prompt "Extra CPPFLAGS (cpp)"
	help
	  Extra options for the C preprocessor.

config TARGET_EXTRA_CFLAGS
	string
	prompt "Extra CFLAGS (c)"
	help
	  Extra options for the C compiler.

config TARGET_EXTRA_CXXFLAGS
	string
	prompt "Extra CXXFLAGS (c++)"
	help
	  Extra options for the C++ compiler.

config TARGET_EXTRA_LDFLAGS
	string
	prompt "Extra LDFLAGS (ld)"
	help
	  Extra options for the linker.

config ARCH_NOMMU
	bool
	default y if ARCH_ARM_NOMMU

config ARCH
	string
	default "arm"			if ARCH_ARM
	default "armnommu"		if ARCH_ARM_NOMMU
	default "alpha"			if ARCH_ALPHA
	default "i386"			if ARCH_X86
	default "m68k"			if ARCH_M68K
	default "ppc"			if ARCH_PPC
	default "sparc"			if ARCH_SPARC
	default "mips"			if ARCH_MIPS
	default "mips"			if ARCH_MIPSEL
	default "cris"			if ARCH_CRIS
	default "parisc"		if ARCH_PARISC
	default "sh"			if ARCH_SH

config ARCH_USERSPACE
	string
	default "arm"			if ARCH_ARM
	default "arm"			if ARCH_ARM_NOMMU
	default "alpha"			if ARCH_ALPHA
	default "i386"			if ARCH_X86
	default "m68k"			if ARCH_M68K
	default "powerpc"		if ARCH_PPC
	default "sparc"			if ARCH_SPARC
	default "mips"			if ARCH_MIPS
	default "mipsel"		if ARCH_MIPSEL
	default "cris"			if ARCH_CRIS
	default "hppa"			if ARCH_PARISC
	default "sh"			if ARCH_SH

comment "Paths & Directories"

config PREFIX
	prompt "Prefix for \"install\" stage"
	string
	default "${PTXDIST_WORKSPACE}/local"
	help
	  This directory is being used to install things during the "install"
	  stage of PTXdist. It usually contains host tools and libraries which
	  are needed to link programs.

	  A sane default for this is ${PTXDIST_WORKSPACE}/local. Use this one
	  unless you do exactly know what you are doing.

	  PTXdist uses a sysroot/destdir mechanism, which means that packets
	  are being installed with

	  	make install DESTDIR=${PTXCONF_PREFIX}/${PTXCONF_GNU_TARGET}

config HOST_PREFIX
	string
	default "${PTXCONF_PREFIX}-host"

config CROSS_PREFIX
	string
	default "${PTXCONF_PREFIX}-cross"

comment "GNU Toolchain Identification String"

config CROSSCHAIN_VENDOR
	string
	prompt "Check for specific toolchain vendor"
	default ""
	help
	  Add here an unique vendor string to ensure this project will
	  be build with the correct toolchain.
	  Leave this entry empty to omit this check.
	  To use this feature add a file called 'ptxconfig' to the bin/ folder of
	  your toolchain. This file should contain at least one variable definition:
	  PTXCONF_PROJECT="insert-vendor-string-here"
	  The string defined here will be checked against the string defined in
	  PTXCONF_PROJECT in file 'ptxconfig' from the toolchain.

config CROSSCHAIN_CHECK
	string
	prompt "Check for specific gcc version"
	default "4.0.2"
	help
	  PTXdist calls your cross compiler with -dumpversion and
	  compares the output with this string. This should help
	  to avoid compilation with the wrong compiler version
	  when you use your own external toolchain.

config GNU_TARGET
	string
	prompt "GNU Target"
	default "arm-softfloat-linux-gnu"       if ARM_ARCH_LE          && GLIBC
	default "armb-unknown-linux-gnu"        if ARM_ARCH_BE          && GLIBC
	default "alpha-unknown-linux-gnu"	if ARCH_ALPHA		&& GLIBC
	default "arm-elf"                       if ARCH_ARM_NOMMU       && GLIBC
	default "i386-unknown-linux-gnu"        if OPT_I386             && GLIBC
	default "i486-unknown-linux-gnu"        if OPT_I486             && GLIBC
	default "i586-unknown-linux-gnu"        if OPT_I586             && GLIBC
	default "i686-unknown-linux-gnu"        if OPT_I686             && GLIBC
	default "powerpc-unknown-linux-gnu"     if OPT_PPC              && GLIBC
	default "powerpc-405-linux-gnu"         if OPT_PPC405           && GLIBC
	default "powerpc-604-linux-gnu"         if OPT_PPC604           && GLIBC
	default "powerpc-750-linux-gnu"         if OPT_PPC750           && GLIBC
	default "powerpc-7450-linux-gnu"        if OPT_PPC7450          && GLIBC
	default "sparc-unknown-linux-gnu"       if OPT_SPARC            && GLIBC
	default "mips-unknown-linux-gnu"        if MIPS_ARCH_BE         && GLIBC
	default "mipsel-unknown-linux-gnu"      if MIPS_ARCH_LE         && GLIBC
	default "cris-unknown-linux-gnu"        if ARCH_CRIS            && GLIBC
	default "hppa-unknown-linux-gnu"        if ARCH_PARISC          && GLIBC
	default "sh3-unknown-linux-gnu"         if SH_ARCH_SH3          && GLIBC
	default "sh4-unknown-linux-gnu"         if SH_ARCH_SH4          && GLIBC

	default "arm-uclibc-linux-gnu"          if ARM_ARCH_LE          && UCLIBC
	default "armb-uclibc-linux-gnu"         if ARM_ARCH_BE          && UCLIBC
	default "arm-elf"                       if ARCH_ARM_NOMMU       && UCLIBC
	default "i386-uclibc-linux-gnu"         if OPT_I386             && UCLIBC
	default "i486-uclibc-linux-gnu"         if OPT_I486             && UCLIBC
	default "i586-uclibc-linux-gnu"         if OPT_I586             && UCLIBC
	default "i686-uclibc-linux-gnu"         if OPT_I686             && UCLIBC
	default "powerpc-uclibc-linux-gnu"      if OPT_PPC              && UCLIBC
	default "powerpc-405_uclibc-linux-gnu"  if OPT_PPC405           && UCLIBC
	default "powerpc-750_uclibc-linux-gnu"  if OPT_PPC750           && UCLIBC
	default "powerpc-7450_uclibc-linux-gnu" if OPT_PPC7450          && UCLIBC
	default "sparc-uclibc-linux-gnu"        if OPT_SPARC            && UCLIBC
	default "mips-uclibc-linux-gnu"         if MIPS_ARCH_BE         && UCLIBC
	default "mipsel-uclibc-linux-gnu"       if MIPS_ARCH_LE         && UCLIBC
	default "cris-uclibc-linux-gnu"         if ARCH_CRIS            && UCLIBC
	default "hppa-uclibc-linux-gnu"         if ARCH_PARISC          && UCLIBC
	default "sh3-uclibc-linux-gnu"          if SH_ARCH_SH3          && UCLIBC
	default "sh4-uclibc-linux-gnu"          if SH_ARCH_SH4          && UCLIBC
	help
	 Defines the GNU target for your cross build

config COMPILER_PREFIX
	string
	prompt "Compiler Prefix"
	default "${PTXCONF_GNU_TARGET}-"
	help
	 This is the prefix used to create the correct cross compiler name. If the
	 prefix is equal to the GNU Target you can use "${PTXCONF_GNU_TARGET}-" to
	 use it.