2
2
# Configuration validation subroutine script.
3
3
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4
# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
5
# 2011, 2012 Free Software Foundation, Inc.
8
9
# This file is (in principle) common to ALL GNU software.
9
10
# The presence of a machine in this file suggests that SOME GNU software
20
21
# GNU General Public License for more details.
22
23
# You should have received a copy of the GNU General Public License
23
# along with this program; if not, write to the Free Software
24
# Foundation, Inc., 59 Temple Place - Suite 330,
25
# Boston, MA 02111-1307, USA.
24
# along with this program; if not, see <http://www.gnu.org/licenses/>.
27
26
# As a special exception to the GNU General Public License, if you
28
27
# distribute this file as part of a program that contains a
29
28
# configuration script generated by Autoconf, you may include it under
30
29
# the same distribution terms that you use for the rest of that program.
32
32
# Please send patches to <config-patches@gnu.org>. Submit a context
33
# diff and a properly formatted ChangeLog entry.
33
# diff and a properly formatted GNU ChangeLog entry.
35
35
# Configuration subroutine to validate and canonicalize a configuration type.
36
36
# Supply the specified configuration type as an argument.
37
37
# If it is invalid, we print an error message on stderr and exit with code 1.
38
38
# Otherwise, we print the canonical config type on stdout and succeed.
40
# You can get the latest version of this script from:
41
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
40
43
# This file is supposed to be the same for all GNU packages
41
44
# and recognize all the CPU types, system types and aliases
42
45
# that are meaningful with *any* GNU software.
71
74
GNU config.sub ($timestamp)
73
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
76
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
77
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
74
78
Free Software Foundation, Inc.
76
80
This is free software; see the source for copying conditions. There is NO
83
87
while test $# -gt 0 ; do
85
89
--time-stamp | --time* | -t )
86
echo "$timestamp" ; exit 0 ;;
90
echo "$timestamp" ; exit ;;
88
echo "$version" ; exit 0 ;;
92
echo "$version" ; exit ;;
89
93
--help | --h* | -h )
90
echo "$usage"; exit 0 ;;
94
echo "$usage"; exit ;;
91
95
-- ) # Stop option processing
93
97
- ) # Use stdin as input.
118
122
# Here we must recognize all the valid KERNEL-OS combinations.
119
123
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
120
124
case $maybe_os in
121
nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
122
kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
125
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
126
linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
127
knetbsd*-gnu* | netbsd*-gnu* | \
128
kopensolaris*-gnu* | \
129
storm-chaos* | os2-emx* | rtmk-nova*)
124
131
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
135
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
127
138
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
128
139
if [ $basic_machine != $1 ]
145
156
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
146
157
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
147
158
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
148
-apple | -axis | -knuth | -cray)
159
-apple | -axis | -knuth | -cray | -microblaze)
152
166
-sim | -cisco | -oki | -wec | -winbond)
186
204
# Don't forget version if it is 3.2v4 or newer.
187
205
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
208
# Don't forget version if it is 3.2v4 or newer.
209
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
191
213
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
227
249
# Some are omitted here because they have special meanings below.
252
| aarch64 | aarch64_be \
230
253
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
231
254
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
233
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
256
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
235
259
| c4x | clipper \
236
260
| d10v | d30v | dlx | dsp16xx \
262
| fido | fr30 | frv \
238
263
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
239
265
| i370 | i860 | i960 | ia64 \
240
266
| ip2k | iq2000 \
241
| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
269
| m32c | m32r | m32rle | m68000 | m68k | m88k \
270
| maxq | mb | microblaze | mcore | mep | metag \
242
271
| mips | mipsbe | mipseb | mipsel | mipsle \
244
273
| mips64 | mips64el \
274
| mips64octeon | mips64octeonel \
275
| mips64orion | mips64orionel \
276
| mips64r5900 | mips64r5900el \
245
277
| mips64vr | mips64vrel \
246
| mips64orion | mips64orionel \
247
278
| mips64vr4100 | mips64vr4100el \
248
279
| mips64vr4300 | mips64vr4300el \
249
280
| mips64vr5000 | mips64vr5000el \
281
| mips64vr5900 | mips64vr5900el \
250
282
| mipsisa32 | mipsisa32el \
251
283
| mipsisa32r2 | mipsisa32r2el \
252
284
| mipsisa64 | mipsisa64el \
255
287
| mipsisa64sr71k | mipsisa64sr71kel \
256
288
| mipstx39 | mipstx39el \
257
289
| mn10200 | mn10300 \
293
| nds32 | nds32le | nds32be \
259
295
| ns16k | ns32k \
261
298
| pdp10 | pdp11 | pj | pjl \
262
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
299
| powerpc | powerpc64 | powerpc64le | powerpcle \
264
| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
303
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
265
304
| sh64 | sh64le \
266
| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
267
| sparcv8 | sparcv9 | sparcv9b \
269
| tahoe | thumb | tic4x | tic80 | tron \
305
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
306
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
308
| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
310
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
272
| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
312
| x86 | xc16x | xstormy16 | xtensa \
274
314
basic_machine=$basic_machine-unknown
276
m6811 | m68hc11 | m6812 | m68hc12)
277
# Motorola 68HC11/12.
317
basic_machine=tic54x-unknown
320
basic_machine=tic55x-unknown
323
basic_machine=tic6x-unknown
325
m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
278
326
basic_machine=$basic_machine-unknown
281
329
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
332
basic_machine=mt-unknown
335
strongarm | thumb | xscale)
336
basic_machine=arm-unknown
339
basic_machine=$basic_machine-unknown
343
basic_machine=armeb-unknown
347
basic_machine=armel-unknown
284
350
# We use `pc' rather than `unknown'
285
351
# because (1) that's what they normally are, and
295
361
# Recognize the basic CPU types with company name.
364
| aarch64-* | aarch64_be-* \
298
365
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
299
366
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
300
367
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
301
368
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
303
371
| bfin-* | bs2000-* \
304
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
372
| c[123]* | c30-* | [cjt]90-* | c4x-* \
305
373
| clipper-* | craynv-* | cydra-* \
306
374
| d10v-* | d30v-* | dlx-* \
308
| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
376
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
309
377
| h8300-* | h8500-* \
310
378
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
311
380
| i*86-* | i860-* | i960-* | ia64-* \
312
381
| ip2k-* | iq2000-* \
313
| m32r-* | m32rle-* \
384
| m32c-* | m32r-* | m32rle-* \
314
385
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
315
| m88110-* | m88k-* | maxq-* | mcore-* \
386
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
316
387
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
318
389
| mips64-* | mips64el-* \
390
| mips64octeon-* | mips64octeonel-* \
391
| mips64orion-* | mips64orionel-* \
392
| mips64r5900-* | mips64r5900el-* \
319
393
| mips64vr-* | mips64vrel-* \
320
| mips64orion-* | mips64orionel-* \
321
394
| mips64vr4100-* | mips64vr4100el-* \
322
395
| mips64vr4300-* | mips64vr4300el-* \
323
396
| mips64vr5000-* | mips64vr5000el-* \
397
| mips64vr5900-* | mips64vr5900el-* \
324
398
| mipsisa32-* | mipsisa32el-* \
325
399
| mipsisa32r2-* | mipsisa32r2el-* \
326
400
| mipsisa64-* | mipsisa64el-* \
329
403
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
330
404
| mipstx39-* | mipstx39el-* \
408
| nds32-* | nds32le-* | nds32be-* \
333
410
| none-* | np1-* | ns16k-* | ns32k-* \
335
413
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
336
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
414
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
338
| romp-* | rs6000-* \
339
| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
416
| rl78-* | romp-* | rs6000-* | rx-* \
417
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
340
418
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
341
| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
419
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
343
| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
344
| tahoe-* | thumb-* \
421
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
345
423
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
347
| v850-* | v850e-* | vax-* \
427
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
349
| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
350
| xstormy16-* | xtensa-* \
430
| x86-* | x86_64-* | xc16x-* | xps100-* \
431
| xstormy16-* | xtensa*-* \
435
# Recognize the basic CPU types without company name, with glob match.
437
basic_machine=$basic_machine-unknown
354
439
# Recognize the various machine names and aliases which stand
355
440
# for a CPU type and a company and sometimes even an OS.
421
510
basic_machine=ns32k-sequent
514
basic_machine=bfin-unknown
518
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
522
basic_machine=powerpc-ibm
526
basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
529
basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
532
basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
425
535
basic_machine=c90-cray
539
basic_machine=arm-unknown
429
543
basic_machine=c1-convex
824
986
power) basic_machine=power-ibm
826
ppc) basic_machine=powerpc-unknown
988
ppc | ppcbe) basic_machine=powerpc-unknown
828
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
991
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
830
993
ppcle | powerpclittle | ppc-le | powerpc-little)
831
994
basic_machine=powerpcle-unknown
964
1141
basic_machine=t90-cray
968
basic_machine=tic54x-unknown
972
basic_machine=tic55x-unknown
976
basic_machine=tic6x-unknown
1145
basic_machine=$basic_machine-unknown
980
1149
basic_machine=mipstx39-unknown
1090
1266
basic_machine=we32k-att
1092
sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
1268
sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1093
1269
basic_machine=sh-unknown
1096
basic_machine=sh64-unknown
1098
sparc | sparcv8 | sparcv9 | sparcv9b)
1271
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1099
1272
basic_machine=sparc-sun
1142
1312
if [ x"$os" != x"" ]
1145
# First match some system type aliases
1146
# that might get confused with valid system types.
1315
# First match some system type aliases
1316
# that might get confused with valid system types.
1147
1317
# -solaris* is a basic system type, with this one exception.
1148
1321
-solaris1 | -solaris1.*)
1149
1322
os=`echo $os | sed -e 's|solaris1|sunos4|'`
1165
1338
# Each alternative MUST END IN A *, to match a version number.
1166
1339
# -sysv* is not here because it comes later, after sysvr4.
1167
1340
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1168
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
1169
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
1341
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1342
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1343
| -sym* | -kopensolaris* \
1170
1344
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1172
1346
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1173
1347
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1174
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
1348
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1349
| -openbsd* | -solidbsd* \
1175
1350
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1176
1351
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1177
1352
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1178
1353
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1179
| -chorusos* | -chorusrdb* \
1180
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1181
| -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
1354
| -chorusos* | -chorusrdb* | -cegcc* \
1355
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1356
| -mingw32* | -linux-gnu* | -linux-android* \
1357
| -linux-newlib* | -linux-uclibc* \
1358
| -uxpv* | -beos* | -mpeix* | -udk* \
1182
1359
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1183
1360
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1184
1361
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1185
1362
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1186
1363
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1187
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
1364
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1365
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1188
1366
# Remember, each alternative MUST END IN *, to match a version number.
1202
1380
os=`echo $os | sed -e 's|nto|nto-qnx|'`
1204
1382
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1205
| -windows* | -osx | -abug | -netware* | -os9* | -beos* \
1383
| -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1206
1384
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)