2011-03-12 Janus Weil <janus@gcc.gnu.org>
[official-gcc.git] / config.sub
blob204218c07382772bc2e9ad083f9dd766af90fb36
1 #! /bin/sh
2 # Configuration validation subroutine script.
3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5 # Free Software Foundation, Inc.
7 timestamp='2010-05-21'
9 # This file is (in principle) common to ALL GNU software.
10 # The presence of a machine in this file suggests that SOME GNU software
11 # can handle that machine. It does not imply ALL GNU software can.
13 # This file is free software; you can redistribute it and/or modify
14 # it under the terms of the GNU General Public License as published by
15 # the Free Software Foundation; either version 2 of the License, or
16 # (at your option) any later version.
18 # This program is distributed in the hope that it will be useful,
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 # GNU General Public License for more details.
23 # You should have received a copy of the GNU General Public License
24 # along with this program; if not, write to the Free Software
25 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
26 # 02110-1301, USA.
28 # As a special exception to the GNU General Public License, if you
29 # distribute this file as part of a program that contains a
30 # configuration script generated by Autoconf, you may include it under
31 # the same distribution terms that you use for the rest of that program.
34 # Please send patches to <config-patches@gnu.org>. Submit a context
35 # diff and a properly formatted GNU ChangeLog entry.
37 # Configuration subroutine to validate and canonicalize a configuration type.
38 # Supply the specified configuration type as an argument.
39 # If it is invalid, we print an error message on stderr and exit with code 1.
40 # Otherwise, we print the canonical config type on stdout and succeed.
42 # You can get the latest version of this script from:
43 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
45 # This file is supposed to be the same for all GNU packages
46 # and recognize all the CPU types, system types and aliases
47 # that are meaningful with *any* GNU software.
48 # Each package is responsible for reporting which valid configurations
49 # it does not support. The user should be able to distinguish
50 # a failure to support a valid configuration from a meaningless
51 # configuration.
53 # The goal of this file is to map all the various variations of a given
54 # machine specification into a single specification in the form:
55 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
56 # or in some cases, the newer four-part form:
57 # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
58 # It is wrong to echo any other type of specification.
60 me=`echo "$0" | sed -e 's,.*/,,'`
62 usage="\
63 Usage: $0 [OPTION] CPU-MFR-OPSYS
64 $0 [OPTION] ALIAS
66 Canonicalize a configuration name.
68 Operation modes:
69 -h, --help print this help, then exit
70 -t, --time-stamp print date of last modification, then exit
71 -v, --version print version number, then exit
73 Report bugs and patches to <config-patches@gnu.org>."
75 version="\
76 GNU config.sub ($timestamp)
78 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
79 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
80 Software Foundation, Inc.
82 This is free software; see the source for copying conditions. There is NO
83 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
85 help="
86 Try \`$me --help' for more information."
88 # Parse command line
89 while test $# -gt 0 ; do
90 case $1 in
91 --time-stamp | --time* | -t )
92 echo "$timestamp" ; exit ;;
93 --version | -v )
94 echo "$version" ; exit ;;
95 --help | --h* | -h )
96 echo "$usage"; exit ;;
97 -- ) # Stop option processing
98 shift; break ;;
99 - ) # Use stdin as input.
100 break ;;
101 -* )
102 echo "$me: invalid option $1$help"
103 exit 1 ;;
105 *local*)
106 # First pass through any local machine types.
107 echo $1
108 exit ;;
111 break ;;
112 esac
113 done
115 case $# in
116 0) echo "$me: missing argument$help" >&2
117 exit 1;;
118 1) ;;
119 *) echo "$me: too many arguments$help" >&2
120 exit 1;;
121 esac
123 # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
124 # Here we must recognize all the valid KERNEL-OS combinations.
125 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
126 case $maybe_os in
127 nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
128 linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
129 knetbsd*-gnu* | netbsd*-gnu* | \
130 kopensolaris*-gnu* | \
131 storm-chaos* | os2-emx* | rtmk-nova*)
132 os=-$maybe_os
133 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
136 basic_machine=`echo $1 | sed 's/-[^-]*$//'`
137 if [ $basic_machine != $1 ]
138 then os=`echo $1 | sed 's/.*-/-/'`
139 else os=; fi
141 esac
143 ### Let's recognize common machines as not being operating systems so
144 ### that things like config.sub decstation-3100 work. We also
145 ### recognize some manufacturers as not being operating systems, so we
146 ### can provide default operating systems below.
147 case $os in
148 -sun*os*)
149 # Prevent following clause from handling this invalid input.
151 -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
152 -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
153 -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
154 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
155 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
156 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
157 -apple | -axis | -knuth | -cray | -microblaze)
159 basic_machine=$1
161 -bluegene*)
162 os=-cnk
164 -sim | -cisco | -oki | -wec | -winbond)
166 basic_machine=$1
168 -scout)
170 -wrs)
171 os=-vxworks
172 basic_machine=$1
174 -chorusos*)
175 os=-chorusos
176 basic_machine=$1
178 -chorusrdb)
179 os=-chorusrdb
180 basic_machine=$1
182 -hiux*)
183 os=-hiuxwe2
185 -sco6)
186 os=-sco5v6
187 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
189 -sco5)
190 os=-sco3.2v5
191 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
193 -sco4)
194 os=-sco3.2v4
195 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
197 -sco3.2.[4-9]*)
198 os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
199 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
201 -sco3.2v[4-9]*)
202 # Don't forget version if it is 3.2v4 or newer.
203 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
205 -sco5v6*)
206 # Don't forget version if it is 3.2v4 or newer.
207 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
209 -sco*)
210 os=-sco3.2v2
211 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
213 -udk*)
214 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
216 -isc)
217 os=-isc2.2
218 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
220 -clix*)
221 basic_machine=clipper-intergraph
223 -isc*)
224 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
226 -lynx*)
227 os=-lynxos
229 -ptx*)
230 basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
232 -windowsnt*)
233 os=`echo $os | sed -e 's/windowsnt/winnt/'`
235 -psos*)
236 os=-psos
238 -mint | -mint[0-9]*)
239 basic_machine=m68k-atari
240 os=-mint
242 esac
244 # Decode aliases for certain CPU-COMPANY combinations.
245 case $basic_machine in
246 # Recognize the basic CPU types without company name.
247 # Some are omitted here because they have special meanings below.
248 1750a | 580 \
249 | a29k \
250 | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
251 | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
252 | am33_2.0 \
253 | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
254 | bfin \
255 | c4x | clipper \
256 | d10v | d30v | dlx | dsp16xx \
257 | fido | fr30 | frv \
258 | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
259 | i370 | i860 | i960 | ia64 \
260 | ip2k | iq2000 \
261 | lm32 \
262 | m32c | m32r | m32rle | m68000 | m68k | m88k \
263 | maxq | mb | microblaze | mcore | mep | metag \
264 | mips | mipsbe | mipseb | mipsel | mipsle \
265 | mips16 \
266 | mips64 | mips64el \
267 | mips64octeon | mips64octeonel \
268 | mips64orion | mips64orionel \
269 | mips64r5900 | mips64r5900el \
270 | mips64vr | mips64vrel \
271 | mips64vr4100 | mips64vr4100el \
272 | mips64vr4300 | mips64vr4300el \
273 | mips64vr5000 | mips64vr5000el \
274 | mips64vr5900 | mips64vr5900el \
275 | mipsisa32 | mipsisa32el \
276 | mipsisa32r2 | mipsisa32r2el \
277 | mipsisa64 | mipsisa64el \
278 | mipsisa64r2 | mipsisa64r2el \
279 | mipsisa64sb1 | mipsisa64sb1el \
280 | mipsisa64sr71k | mipsisa64sr71kel \
281 | mipstx39 | mipstx39el \
282 | mn10200 | mn10300 \
283 | moxie \
284 | mt \
285 | msp430 \
286 | nios | nios2 \
287 | ns16k | ns32k \
288 | or32 \
289 | pdp10 | pdp11 | pj | pjl \
290 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
291 | pyramid \
292 | rx \
293 | score \
294 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
295 | sh64 | sh64le \
296 | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
297 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
298 | spu | strongarm \
299 | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
300 | ubicom32 \
301 | v850 | v850e \
302 | we32k \
303 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
304 | z8k | z80)
305 basic_machine=$basic_machine-unknown
307 c54x)
308 basic_machine=tic54x-unknown
310 c55x)
311 basic_machine=tic55x-unknown
313 c6x)
314 basic_machine=tic6x-unknown
316 m6811 | m68hc11 | m6812 | m68hc12 | picochip)
317 # Motorola 68HC11/12.
318 basic_machine=$basic_machine-unknown
319 os=-none
321 m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
323 ms1)
324 basic_machine=mt-unknown
327 # We use `pc' rather than `unknown'
328 # because (1) that's what they normally are, and
329 # (2) the word "unknown" tends to confuse beginning users.
330 i*86 | x86_64)
331 basic_machine=$basic_machine-pc
333 # Object if more than one company name word.
334 *-*-*)
335 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
336 exit 1
338 # Recognize the basic CPU types with company name.
339 580-* \
340 | a29k-* \
341 | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
342 | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
343 | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
344 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
345 | avr-* | avr32-* \
346 | bfin-* | bs2000-* \
347 | c[123]* | c30-* | [cjt]90-* | c4x-* \
348 | clipper-* | craynv-* | cydra-* \
349 | d10v-* | d30v-* | dlx-* \
350 | elxsi-* \
351 | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
352 | h8300-* | h8500-* \
353 | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
354 | i*86-* | i860-* | i960-* | ia64-* \
355 | ip2k-* | iq2000-* \
356 | lm32-* \
357 | m32c-* | m32r-* | m32rle-* \
358 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
359 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
360 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
361 | mips16-* \
362 | mips64-* | mips64el-* \
363 | mips64octeon-* | mips64octeonel-* \
364 | mips64orion-* | mips64orionel-* \
365 | mips64r5900-* | mips64r5900el-* \
366 | mips64vr-* | mips64vrel-* \
367 | mips64vr4100-* | mips64vr4100el-* \
368 | mips64vr4300-* | mips64vr4300el-* \
369 | mips64vr5000-* | mips64vr5000el-* \
370 | mips64vr5900-* | mips64vr5900el-* \
371 | mipsisa32-* | mipsisa32el-* \
372 | mipsisa32r2-* | mipsisa32r2el-* \
373 | mipsisa64-* | mipsisa64el-* \
374 | mipsisa64r2-* | mipsisa64r2el-* \
375 | mipsisa64sb1-* | mipsisa64sb1el-* \
376 | mipsisa64sr71k-* | mipsisa64sr71kel-* \
377 | mipstx39-* | mipstx39el-* \
378 | mmix-* \
379 | mt-* \
380 | msp430-* \
381 | nios-* | nios2-* \
382 | none-* | np1-* | ns16k-* | ns32k-* \
383 | orion-* \
384 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
385 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
386 | pyramid-* \
387 | romp-* | rs6000-* | rx-* \
388 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
389 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
390 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
391 | sparclite-* \
392 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
393 | tahoe-* | thumb-* \
394 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
395 | tile-* | tilegx-* \
396 | tron-* \
397 | ubicom32-* \
398 | v850-* | v850e-* | vax-* \
399 | we32k-* \
400 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
401 | xstormy16-* | xtensa*-* \
402 | ymp-* \
403 | z8k-* | z80-*)
405 # Recognize the basic CPU types without company name, with glob match.
406 xtensa*)
407 basic_machine=$basic_machine-unknown
409 # Recognize the various machine names and aliases which stand
410 # for a CPU type and a company and sometimes even an OS.
411 386bsd)
412 basic_machine=i386-unknown
413 os=-bsd
415 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
416 basic_machine=m68000-att
418 3b*)
419 basic_machine=we32k-att
421 a29khif)
422 basic_machine=a29k-amd
423 os=-udi
425 abacus)
426 basic_machine=abacus-unknown
428 adobe68k)
429 basic_machine=m68010-adobe
430 os=-scout
432 alliant | fx80)
433 basic_machine=fx80-alliant
435 altos | altos3068)
436 basic_machine=m68k-altos
438 am29k)
439 basic_machine=a29k-none
440 os=-bsd
442 amd64)
443 basic_machine=x86_64-pc
445 amd64-*)
446 basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
448 amdahl)
449 basic_machine=580-amdahl
450 os=-sysv
452 amiga | amiga-*)
453 basic_machine=m68k-unknown
455 amigaos | amigados)
456 basic_machine=m68k-unknown
457 os=-amigaos
459 amigaunix | amix)
460 basic_machine=m68k-unknown
461 os=-sysv4
463 apollo68)
464 basic_machine=m68k-apollo
465 os=-sysv
467 apollo68bsd)
468 basic_machine=m68k-apollo
469 os=-bsd
471 aros)
472 basic_machine=i386-pc
473 os=-aros
475 aux)
476 basic_machine=m68k-apple
477 os=-aux
479 balance)
480 basic_machine=ns32k-sequent
481 os=-dynix
483 blackfin)
484 basic_machine=bfin-unknown
485 os=-linux
487 blackfin-*)
488 basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
489 os=-linux
491 bluegene*)
492 basic_machine=powerpc-ibm
493 os=-cnk
495 c54x-*)
496 basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
498 c55x-*)
499 basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
501 c6x-*)
502 basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
504 c90)
505 basic_machine=c90-cray
506 os=-unicos
508 cegcc)
509 basic_machine=arm-unknown
510 os=-cegcc
512 convex-c1)
513 basic_machine=c1-convex
514 os=-bsd
516 convex-c2)
517 basic_machine=c2-convex
518 os=-bsd
520 convex-c32)
521 basic_machine=c32-convex
522 os=-bsd
524 convex-c34)
525 basic_machine=c34-convex
526 os=-bsd
528 convex-c38)
529 basic_machine=c38-convex
530 os=-bsd
532 cray | j90)
533 basic_machine=j90-cray
534 os=-unicos
536 craynv)
537 basic_machine=craynv-cray
538 os=-unicosmp
540 cr16)
541 basic_machine=cr16-unknown
542 os=-elf
544 crds | unos)
545 basic_machine=m68k-crds
547 crisv32 | crisv32-* | etraxfs*)
548 basic_machine=crisv32-axis
550 cris | cris-* | etrax*)
551 basic_machine=cris-axis
553 crx)
554 basic_machine=crx-unknown
555 os=-elf
557 da30 | da30-*)
558 basic_machine=m68k-da30
560 decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
561 basic_machine=mips-dec
563 decsystem10* | dec10*)
564 basic_machine=pdp10-dec
565 os=-tops10
567 decsystem20* | dec20*)
568 basic_machine=pdp10-dec
569 os=-tops20
571 delta | 3300 | motorola-3300 | motorola-delta \
572 | 3300-motorola | delta-motorola)
573 basic_machine=m68k-motorola
575 delta88)
576 basic_machine=m88k-motorola
577 os=-sysv3
579 dicos)
580 basic_machine=i686-pc
581 os=-dicos
583 djgpp)
584 basic_machine=i586-pc
585 os=-msdosdjgpp
587 dpx20 | dpx20-*)
588 basic_machine=rs6000-bull
589 os=-bosx
591 dpx2* | dpx2*-bull)
592 basic_machine=m68k-bull
593 os=-sysv3
595 ebmon29k)
596 basic_machine=a29k-amd
597 os=-ebmon
599 elxsi)
600 basic_machine=elxsi-elxsi
601 os=-bsd
603 encore | umax | mmax)
604 basic_machine=ns32k-encore
606 es1800 | OSE68k | ose68k | ose | OSE)
607 basic_machine=m68k-ericsson
608 os=-ose
610 fx2800)
611 basic_machine=i860-alliant
613 genix)
614 basic_machine=ns32k-ns
616 gmicro)
617 basic_machine=tron-gmicro
618 os=-sysv
620 go32)
621 basic_machine=i386-pc
622 os=-go32
624 h3050r* | hiux*)
625 basic_machine=hppa1.1-hitachi
626 os=-hiuxwe2
628 h8300hms)
629 basic_machine=h8300-hitachi
630 os=-hms
632 h8300xray)
633 basic_machine=h8300-hitachi
634 os=-xray
636 h8500hms)
637 basic_machine=h8500-hitachi
638 os=-hms
640 harris)
641 basic_machine=m88k-harris
642 os=-sysv3
644 hp300-*)
645 basic_machine=m68k-hp
647 hp300bsd)
648 basic_machine=m68k-hp
649 os=-bsd
651 hp300hpux)
652 basic_machine=m68k-hp
653 os=-hpux
655 hp3k9[0-9][0-9] | hp9[0-9][0-9])
656 basic_machine=hppa1.0-hp
658 hp9k2[0-9][0-9] | hp9k31[0-9])
659 basic_machine=m68000-hp
661 hp9k3[2-9][0-9])
662 basic_machine=m68k-hp
664 hp9k6[0-9][0-9] | hp6[0-9][0-9])
665 basic_machine=hppa1.0-hp
667 hp9k7[0-79][0-9] | hp7[0-79][0-9])
668 basic_machine=hppa1.1-hp
670 hp9k78[0-9] | hp78[0-9])
671 # FIXME: really hppa2.0-hp
672 basic_machine=hppa1.1-hp
674 hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
675 # FIXME: really hppa2.0-hp
676 basic_machine=hppa1.1-hp
678 hp9k8[0-9][13679] | hp8[0-9][13679])
679 basic_machine=hppa1.1-hp
681 hp9k8[0-9][0-9] | hp8[0-9][0-9])
682 basic_machine=hppa1.0-hp
684 hppa-next)
685 os=-nextstep3
687 hppaosf)
688 basic_machine=hppa1.1-hp
689 os=-osf
691 hppro)
692 basic_machine=hppa1.1-hp
693 os=-proelf
695 i370-ibm* | ibm*)
696 basic_machine=i370-ibm
698 # I'm not sure what "Sysv32" means. Should this be sysv3.2?
699 i*86v32)
700 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
701 os=-sysv32
703 i*86v4*)
704 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
705 os=-sysv4
707 i*86v)
708 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
709 os=-sysv
711 i*86sol2)
712 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
713 os=-solaris2
715 i386mach)
716 basic_machine=i386-mach
717 os=-mach
719 i386-vsta | vsta)
720 basic_machine=i386-unknown
721 os=-vsta
723 iris | iris4d)
724 basic_machine=mips-sgi
725 case $os in
726 -irix*)
729 os=-irix4
731 esac
733 isi68 | isi)
734 basic_machine=m68k-isi
735 os=-sysv
737 m68knommu)
738 basic_machine=m68k-unknown
739 os=-linux
741 m68knommu-*)
742 basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
743 os=-linux
745 m88k-omron*)
746 basic_machine=m88k-omron
748 magnum | m3230)
749 basic_machine=mips-mips
750 os=-sysv
752 merlin)
753 basic_machine=ns32k-utek
754 os=-sysv
756 microblaze)
757 basic_machine=microblaze-xilinx
759 mingw32)
760 basic_machine=i386-pc
761 os=-mingw32
763 mingw32ce)
764 basic_machine=arm-unknown
765 os=-mingw32ce
767 miniframe)
768 basic_machine=m68000-convergent
770 *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
771 basic_machine=m68k-atari
772 os=-mint
774 mips3*-*)
775 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
777 mips3*)
778 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
780 monitor)
781 basic_machine=m68k-rom68k
782 os=-coff
784 morphos)
785 basic_machine=powerpc-unknown
786 os=-morphos
788 msdos)
789 basic_machine=i386-pc
790 os=-msdos
792 ms1-*)
793 basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
795 mvs)
796 basic_machine=i370-ibm
797 os=-mvs
799 ncr3000)
800 basic_machine=i486-ncr
801 os=-sysv4
803 netbsd386)
804 basic_machine=i386-unknown
805 os=-netbsd
807 netwinder)
808 basic_machine=armv4l-rebel
809 os=-linux
811 news | news700 | news800 | news900)
812 basic_machine=m68k-sony
813 os=-newsos
815 news1000)
816 basic_machine=m68030-sony
817 os=-newsos
819 news-3600 | risc-news)
820 basic_machine=mips-sony
821 os=-newsos
823 necv70)
824 basic_machine=v70-nec
825 os=-sysv
827 next | m*-next )
828 basic_machine=m68k-next
829 case $os in
830 -nextstep* )
832 -ns2*)
833 os=-nextstep2
836 os=-nextstep3
838 esac
840 nh3000)
841 basic_machine=m68k-harris
842 os=-cxux
844 nh[45]000)
845 basic_machine=m88k-harris
846 os=-cxux
848 nindy960)
849 basic_machine=i960-intel
850 os=-nindy
852 mon960)
853 basic_machine=i960-intel
854 os=-mon960
856 nonstopux)
857 basic_machine=mips-compaq
858 os=-nonstopux
860 np1)
861 basic_machine=np1-gould
863 nsr-tandem)
864 basic_machine=nsr-tandem
866 op50n-* | op60c-*)
867 basic_machine=hppa1.1-oki
868 os=-proelf
870 openrisc | openrisc-*)
871 basic_machine=or32-unknown
873 os400)
874 basic_machine=powerpc-ibm
875 os=-os400
877 OSE68000 | ose68000)
878 basic_machine=m68000-ericsson
879 os=-ose
881 os68k)
882 basic_machine=m68k-none
883 os=-os68k
885 pa-hitachi)
886 basic_machine=hppa1.1-hitachi
887 os=-hiuxwe2
889 paragon)
890 basic_machine=i860-intel
891 os=-osf
893 parisc)
894 basic_machine=hppa-unknown
895 os=-linux
897 parisc-*)
898 basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
899 os=-linux
901 pbd)
902 basic_machine=sparc-tti
904 pbb)
905 basic_machine=m68k-tti
907 pc532 | pc532-*)
908 basic_machine=ns32k-pc532
910 pc98)
911 basic_machine=i386-pc
913 pc98-*)
914 basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
916 pentium | p5 | k5 | k6 | nexgen | viac3)
917 basic_machine=i586-pc
919 pentiumpro | p6 | 6x86 | athlon | athlon_*)
920 basic_machine=i686-pc
922 pentiumii | pentium2 | pentiumiii | pentium3)
923 basic_machine=i686-pc
925 pentium4)
926 basic_machine=i786-pc
928 pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
929 basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
931 pentiumpro-* | p6-* | 6x86-* | athlon-*)
932 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
934 pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
935 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
937 pentium4-*)
938 basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
941 basic_machine=pn-gould
943 power) basic_machine=power-ibm
945 ppc) basic_machine=powerpc-unknown
947 ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
949 ppcle | powerpclittle | ppc-le | powerpc-little)
950 basic_machine=powerpcle-unknown
952 ppcle-* | powerpclittle-*)
953 basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
955 ppc64) basic_machine=powerpc64-unknown
957 ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
959 ppc64le | powerpc64little | ppc64-le | powerpc64-little)
960 basic_machine=powerpc64le-unknown
962 ppc64le-* | powerpc64little-*)
963 basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
965 ps2)
966 basic_machine=i386-ibm
968 pw32)
969 basic_machine=i586-unknown
970 os=-pw32
972 rdos)
973 basic_machine=i386-pc
974 os=-rdos
976 rom68k)
977 basic_machine=m68k-rom68k
978 os=-coff
980 rm[46]00)
981 basic_machine=mips-siemens
983 rtpc | rtpc-*)
984 basic_machine=romp-ibm
986 s390 | s390-*)
987 basic_machine=s390-ibm
989 s390x | s390x-*)
990 basic_machine=s390x-ibm
992 sa29200)
993 basic_machine=a29k-amd
994 os=-udi
996 sb1)
997 basic_machine=mipsisa64sb1-unknown
999 sb1el)
1000 basic_machine=mipsisa64sb1el-unknown
1002 sde)
1003 basic_machine=mipsisa32-sde
1004 os=-elf
1006 sei)
1007 basic_machine=mips-sei
1008 os=-seiux
1010 sequent)
1011 basic_machine=i386-sequent
1014 basic_machine=sh-hitachi
1015 os=-hms
1017 sh5el)
1018 basic_machine=sh5le-unknown
1020 sh64)
1021 basic_machine=sh64-unknown
1023 sparclite-wrs | simso-wrs)
1024 basic_machine=sparclite-wrs
1025 os=-vxworks
1027 sps7)
1028 basic_machine=m68k-bull
1029 os=-sysv2
1031 spur)
1032 basic_machine=spur-unknown
1034 st2000)
1035 basic_machine=m68k-tandem
1037 stratus)
1038 basic_machine=i860-stratus
1039 os=-sysv4
1041 sun2)
1042 basic_machine=m68000-sun
1044 sun2os3)
1045 basic_machine=m68000-sun
1046 os=-sunos3
1048 sun2os4)
1049 basic_machine=m68000-sun
1050 os=-sunos4
1052 sun3os3)
1053 basic_machine=m68k-sun
1054 os=-sunos3
1056 sun3os4)
1057 basic_machine=m68k-sun
1058 os=-sunos4
1060 sun4os3)
1061 basic_machine=sparc-sun
1062 os=-sunos3
1064 sun4os4)
1065 basic_machine=sparc-sun
1066 os=-sunos4
1068 sun4sol2)
1069 basic_machine=sparc-sun
1070 os=-solaris2
1072 sun3 | sun3-*)
1073 basic_machine=m68k-sun
1075 sun4)
1076 basic_machine=sparc-sun
1078 sun386 | sun386i | roadrunner)
1079 basic_machine=i386-sun
1081 sv1)
1082 basic_machine=sv1-cray
1083 os=-unicos
1085 symmetry)
1086 basic_machine=i386-sequent
1087 os=-dynix
1089 t3e)
1090 basic_machine=alphaev5-cray
1091 os=-unicos
1093 t90)
1094 basic_machine=t90-cray
1095 os=-unicos
1097 # This must be matched before tile*.
1098 tilegx*)
1099 basic_machine=tilegx-unknown
1100 os=-linux-gnu
1102 tile*)
1103 basic_machine=tile-unknown
1104 os=-linux-gnu
1106 tx39)
1107 basic_machine=mipstx39-unknown
1109 tx39el)
1110 basic_machine=mipstx39el-unknown
1112 toad1)
1113 basic_machine=pdp10-xkl
1114 os=-tops20
1116 tower | tower-32)
1117 basic_machine=m68k-ncr
1119 tpf)
1120 basic_machine=s390x-ibm
1121 os=-tpf
1123 udi29k)
1124 basic_machine=a29k-amd
1125 os=-udi
1127 ultra3)
1128 basic_machine=a29k-nyu
1129 os=-sym1
1131 v810 | necv810)
1132 basic_machine=v810-nec
1133 os=-none
1135 vaxv)
1136 basic_machine=vax-dec
1137 os=-sysv
1139 vms)
1140 basic_machine=vax-dec
1141 os=-vms
1143 vpp*|vx|vx-*)
1144 basic_machine=f301-fujitsu
1146 vxworks960)
1147 basic_machine=i960-wrs
1148 os=-vxworks
1150 vxworks68)
1151 basic_machine=m68k-wrs
1152 os=-vxworks
1154 vxworks29k)
1155 basic_machine=a29k-wrs
1156 os=-vxworks
1158 w65*)
1159 basic_machine=w65-wdc
1160 os=-none
1162 w89k-*)
1163 basic_machine=hppa1.1-winbond
1164 os=-proelf
1166 xbox)
1167 basic_machine=i686-pc
1168 os=-mingw32
1170 xps | xps100)
1171 basic_machine=xps100-honeywell
1173 ymp)
1174 basic_machine=ymp-cray
1175 os=-unicos
1177 z8k-*-coff)
1178 basic_machine=z8k-unknown
1179 os=-sim
1181 z80-*-coff)
1182 basic_machine=z80-unknown
1183 os=-sim
1185 none)
1186 basic_machine=none-none
1187 os=-none
1190 # Here we handle the default manufacturer of certain CPU types. It is in
1191 # some cases the only manufacturer, in others, it is the most popular.
1192 w89k)
1193 basic_machine=hppa1.1-winbond
1195 op50n)
1196 basic_machine=hppa1.1-oki
1198 op60c)
1199 basic_machine=hppa1.1-oki
1201 romp)
1202 basic_machine=romp-ibm
1204 mmix)
1205 basic_machine=mmix-knuth
1207 rs6000)
1208 basic_machine=rs6000-ibm
1210 vax)
1211 basic_machine=vax-dec
1213 pdp10)
1214 # there are many clones, so DEC is not a safe bet
1215 basic_machine=pdp10-unknown
1217 pdp11)
1218 basic_machine=pdp11-dec
1220 we32k)
1221 basic_machine=we32k-att
1223 sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1224 basic_machine=sh-unknown
1226 sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1227 basic_machine=sparc-sun
1229 cydra)
1230 basic_machine=cydra-cydrome
1232 orion)
1233 basic_machine=orion-highlevel
1235 orion105)
1236 basic_machine=clipper-highlevel
1238 mac | mpw | mac-mpw)
1239 basic_machine=m68k-apple
1241 pmac | pmac-mpw)
1242 basic_machine=powerpc-apple
1244 *-unknown)
1245 # Make sure to match an already-canonicalized machine name.
1248 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1249 exit 1
1251 esac
1253 # Here we canonicalize certain aliases for manufacturers.
1254 case $basic_machine in
1255 *-digital*)
1256 basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1258 *-commodore*)
1259 basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1263 esac
1265 # Decode manufacturer-specific aliases for certain operating systems.
1267 if [ x"$os" != x"" ]
1268 then
1269 case $os in
1270 # First match some system type aliases
1271 # that might get confused with valid system types.
1272 # -solaris* is a basic system type, with this one exception.
1273 -auroraux)
1274 os=-auroraux
1276 -solaris1 | -solaris1.*)
1277 os=`echo $os | sed -e 's|solaris1|sunos4|'`
1279 -solaris)
1280 os=-solaris2
1282 -svr4*)
1283 os=-sysv4
1285 -unixware*)
1286 os=-sysv4.2uw
1288 -gnu/linux*)
1289 os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1291 # First accept the basic system types.
1292 # The portable systems comes first.
1293 # Each alternative MUST END IN A *, to match a version number.
1294 # -sysv* is not here because it comes later, after sysvr4.
1295 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1296 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1297 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1298 | -sym* | -kopensolaris* \
1299 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1300 | -aos* | -aros* \
1301 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1302 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1303 | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1304 | -openbsd* | -solidbsd* \
1305 | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1306 | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1307 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1308 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1309 | -chorusos* | -chorusrdb* | -cegcc* \
1310 | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1311 | -mingw32* | -linux-gnu* | -linux-android* \
1312 | -linux-newlib* | -linux-uclibc* \
1313 | -uxpv* | -beos* | -mpeix* | -udk* \
1314 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1315 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1316 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1317 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1318 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1319 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1320 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1321 # Remember, each alternative MUST END IN *, to match a version number.
1323 -qnx*)
1324 case $basic_machine in
1325 x86-* | i*86-*)
1328 os=-nto$os
1330 esac
1332 -nto-qnx*)
1334 -nto*)
1335 os=`echo $os | sed -e 's|nto|nto-qnx|'`
1337 -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1338 | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1339 | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1341 -mac*)
1342 os=`echo $os | sed -e 's|mac|macos|'`
1344 -linux-dietlibc)
1345 os=-linux-dietlibc
1347 -linux*)
1348 os=`echo $os | sed -e 's|linux|linux-gnu|'`
1350 -sunos5*)
1351 os=`echo $os | sed -e 's|sunos5|solaris2|'`
1353 -sunos6*)
1354 os=`echo $os | sed -e 's|sunos6|solaris3|'`
1356 -opened*)
1357 os=-openedition
1359 -os400*)
1360 os=-os400
1362 -wince*)
1363 os=-wince
1365 -osfrose*)
1366 os=-osfrose
1368 -osf*)
1369 os=-osf
1371 -utek*)
1372 os=-bsd
1374 -dynix*)
1375 os=-bsd
1377 -acis*)
1378 os=-aos
1380 -atheos*)
1381 os=-atheos
1383 -syllable*)
1384 os=-syllable
1386 -386bsd)
1387 os=-bsd
1389 -ctix* | -uts*)
1390 os=-sysv
1392 -nova*)
1393 os=-rtmk-nova
1395 -ns2 )
1396 os=-nextstep2
1398 -nsk*)
1399 os=-nsk
1401 # Preserve the version number of sinix5.
1402 -sinix5.*)
1403 os=`echo $os | sed -e 's|sinix|sysv|'`
1405 -sinix*)
1406 os=-sysv4
1408 -tpf*)
1409 os=-tpf
1411 -triton*)
1412 os=-sysv3
1414 -oss*)
1415 os=-sysv3
1417 -svr4)
1418 os=-sysv4
1420 -svr3)
1421 os=-sysv3
1423 -sysvr4)
1424 os=-sysv4
1426 # This must come after -sysvr4.
1427 -sysv*)
1429 -ose*)
1430 os=-ose
1432 -es1800*)
1433 os=-ose
1435 -xenix)
1436 os=-xenix
1438 -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1439 os=-mint
1441 -aros*)
1442 os=-aros
1444 -kaos*)
1445 os=-kaos
1447 -zvmoe)
1448 os=-zvmoe
1450 -dicos*)
1451 os=-dicos
1453 -nacl*)
1455 -none)
1458 # Get rid of the `-' at the beginning of $os.
1459 os=`echo $os | sed 's/[^-]*-//'`
1460 echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1461 exit 1
1463 esac
1464 else
1466 # Here we handle the default operating systems that come with various machines.
1467 # The value should be what the vendor currently ships out the door with their
1468 # machine or put another way, the most popular os provided with the machine.
1470 # Note that if you're going to try to match "-MANUFACTURER" here (say,
1471 # "-sun"), then you have to tell the case statement up towards the top
1472 # that MANUFACTURER isn't an operating system. Otherwise, code above
1473 # will signal an error saying that MANUFACTURER isn't an operating
1474 # system, and we'll never get to this point.
1476 case $basic_machine in
1477 score-*)
1478 os=-elf
1480 spu-*)
1481 os=-elf
1483 *-acorn)
1484 os=-riscix1.2
1486 arm*-rebel)
1487 os=-linux
1489 arm*-semi)
1490 os=-aout
1492 c4x-* | tic4x-*)
1493 os=-coff
1495 tic54x-*)
1496 os=-coff
1498 tic55x-*)
1499 os=-coff
1501 tic6x-*)
1502 os=-coff
1504 # This must come before the *-dec entry.
1505 pdp10-*)
1506 os=-tops20
1508 pdp11-*)
1509 os=-none
1511 *-dec | vax-*)
1512 os=-ultrix4.2
1514 m68*-apollo)
1515 os=-domain
1517 i386-sun)
1518 os=-sunos4.0.2
1520 m68000-sun)
1521 os=-sunos3
1522 # This also exists in the configure program, but was not the
1523 # default.
1524 # os=-sunos4
1526 m68*-cisco)
1527 os=-aout
1529 mep-*)
1530 os=-elf
1532 mips*-cisco)
1533 os=-elf
1535 mips*-*)
1536 os=-elf
1538 or32-*)
1539 os=-coff
1541 *-tti) # must be before sparc entry or we get the wrong os.
1542 os=-sysv3
1544 sparc-* | *-sun)
1545 os=-sunos4.1.1
1547 *-be)
1548 os=-beos
1550 *-haiku)
1551 os=-haiku
1553 *-ibm)
1554 os=-aix
1556 *-knuth)
1557 os=-mmixware
1559 *-wec)
1560 os=-proelf
1562 *-winbond)
1563 os=-proelf
1565 *-oki)
1566 os=-proelf
1568 *-hp)
1569 os=-hpux
1571 *-hitachi)
1572 os=-hiux
1574 i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1575 os=-sysv
1577 *-cbm)
1578 os=-amigaos
1580 *-dg)
1581 os=-dgux
1583 *-dolphin)
1584 os=-sysv3
1586 m68k-ccur)
1587 os=-rtu
1589 m88k-omron*)
1590 os=-luna
1592 *-next )
1593 os=-nextstep
1595 *-sequent)
1596 os=-ptx
1598 *-crds)
1599 os=-unos
1601 *-ns)
1602 os=-genix
1604 i370-*)
1605 os=-mvs
1607 *-next)
1608 os=-nextstep3
1610 *-gould)
1611 os=-sysv
1613 *-highlevel)
1614 os=-bsd
1616 *-encore)
1617 os=-bsd
1619 *-sgi)
1620 os=-irix
1622 *-siemens)
1623 os=-sysv4
1625 *-masscomp)
1626 os=-rtu
1628 f30[01]-fujitsu | f700-fujitsu)
1629 os=-uxpv
1631 *-rom68k)
1632 os=-coff
1634 *-*bug)
1635 os=-coff
1637 *-apple)
1638 os=-macos
1640 *-atari*)
1641 os=-mint
1644 os=-none
1646 esac
1649 # Here we handle the case where we know the os, and the CPU type, but not the
1650 # manufacturer. We pick the logical manufacturer.
1651 vendor=unknown
1652 case $basic_machine in
1653 *-unknown)
1654 case $os in
1655 -riscix*)
1656 vendor=acorn
1658 -sunos*)
1659 vendor=sun
1661 -cnk*|-aix*)
1662 vendor=ibm
1664 -beos*)
1665 vendor=be
1667 -hpux*)
1668 vendor=hp
1670 -mpeix*)
1671 vendor=hp
1673 -hiux*)
1674 vendor=hitachi
1676 -unos*)
1677 vendor=crds
1679 -dgux*)
1680 vendor=dg
1682 -luna*)
1683 vendor=omron
1685 -genix*)
1686 vendor=ns
1688 -mvs* | -opened*)
1689 vendor=ibm
1691 -os400*)
1692 vendor=ibm
1694 -ptx*)
1695 vendor=sequent
1697 -tpf*)
1698 vendor=ibm
1700 -vxsim* | -vxworks* | -windiss*)
1701 vendor=wrs
1703 -aux*)
1704 vendor=apple
1706 -hms*)
1707 vendor=hitachi
1709 -mpw* | -macos*)
1710 vendor=apple
1712 -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1713 vendor=atari
1715 -vos*)
1716 vendor=stratus
1718 esac
1719 basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1721 esac
1723 echo $basic_machine$os
1724 exit
1726 # Local variables:
1727 # eval: (add-hook 'write-file-hooks 'time-stamp)
1728 # time-stamp-start: "timestamp='"
1729 # time-stamp-format: "%:y-%02m-%02d"
1730 # time-stamp-end: "'"
1731 # End: