widl: Fix parsing of function calling conventions.
[wine/hramrach.git] / tools / config.sub
blobae35431611ba3de4b598b889720db6735074c1c8
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-03-22'
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-dietlibc | linux-newlib* | linux-uclibc* | \
128 uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
129 kopensolaris*-gnu* | \
130 storm-chaos* | os2-emx* | rtmk-nova*)
131 os=-$maybe_os
132 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
135 basic_machine=`echo $1 | sed 's/-[^-]*$//'`
136 if [ $basic_machine != $1 ]
137 then os=`echo $1 | sed 's/.*-/-/'`
138 else os=; fi
140 esac
142 ### Let's recognize common machines as not being operating systems so
143 ### that things like config.sub decstation-3100 work. We also
144 ### recognize some manufacturers as not being operating systems, so we
145 ### can provide default operating systems below.
146 case $os in
147 -sun*os*)
148 # Prevent following clause from handling this invalid input.
150 -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
151 -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
152 -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
153 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
154 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
155 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
156 -apple | -axis | -knuth | -cray | -microblaze)
158 basic_machine=$1
160 -bluegene*)
161 os=-cnk
163 -sim | -cisco | -oki | -wec | -winbond)
165 basic_machine=$1
167 -scout)
169 -wrs)
170 os=-vxworks
171 basic_machine=$1
173 -chorusos*)
174 os=-chorusos
175 basic_machine=$1
177 -chorusrdb)
178 os=-chorusrdb
179 basic_machine=$1
181 -hiux*)
182 os=-hiuxwe2
184 -sco6)
185 os=-sco5v6
186 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
188 -sco5)
189 os=-sco3.2v5
190 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
192 -sco4)
193 os=-sco3.2v4
194 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
196 -sco3.2.[4-9]*)
197 os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
198 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
200 -sco3.2v[4-9]*)
201 # Don't forget version if it is 3.2v4 or newer.
202 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
204 -sco5v6*)
205 # Don't forget version if it is 3.2v4 or newer.
206 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
208 -sco*)
209 os=-sco3.2v2
210 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
212 -udk*)
213 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
215 -isc)
216 os=-isc2.2
217 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
219 -clix*)
220 basic_machine=clipper-intergraph
222 -isc*)
223 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
225 -lynx*)
226 os=-lynxos
228 -ptx*)
229 basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
231 -windowsnt*)
232 os=`echo $os | sed -e 's/windowsnt/winnt/'`
234 -psos*)
235 os=-psos
237 -mint | -mint[0-9]*)
238 basic_machine=m68k-atari
239 os=-mint
241 esac
243 # Decode aliases for certain CPU-COMPANY combinations.
244 case $basic_machine in
245 # Recognize the basic CPU types without company name.
246 # Some are omitted here because they have special meanings below.
247 1750a | 580 \
248 | a29k \
249 | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
250 | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
251 | am33_2.0 \
252 | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
253 | bfin \
254 | c4x | clipper \
255 | d10v | d30v | dlx | dsp16xx \
256 | fido | fr30 | frv \
257 | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
258 | i370 | i860 | i960 | ia64 \
259 | ip2k | iq2000 \
260 | lm32 \
261 | m32c | m32r | m32rle | m68000 | m68k | m88k \
262 | maxq | mb | microblaze | mcore | mep | metag \
263 | mips | mipsbe | mipseb | mipsel | mipsle \
264 | mips16 \
265 | mips64 | mips64el \
266 | mips64octeon | mips64octeonel \
267 | mips64orion | mips64orionel \
268 | mips64r5900 | mips64r5900el \
269 | mips64vr | mips64vrel \
270 | mips64vr4100 | mips64vr4100el \
271 | mips64vr4300 | mips64vr4300el \
272 | mips64vr5000 | mips64vr5000el \
273 | mips64vr5900 | mips64vr5900el \
274 | mipsisa32 | mipsisa32el \
275 | mipsisa32r2 | mipsisa32r2el \
276 | mipsisa64 | mipsisa64el \
277 | mipsisa64r2 | mipsisa64r2el \
278 | mipsisa64sb1 | mipsisa64sb1el \
279 | mipsisa64sr71k | mipsisa64sr71kel \
280 | mipstx39 | mipstx39el \
281 | mn10200 | mn10300 \
282 | moxie \
283 | mt \
284 | msp430 \
285 | nios | nios2 \
286 | ns16k | ns32k \
287 | or32 \
288 | pdp10 | pdp11 | pj | pjl \
289 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
290 | pyramid \
291 | rx \
292 | score \
293 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
294 | sh64 | sh64le \
295 | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
296 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
297 | spu | strongarm \
298 | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
299 | ubicom32 \
300 | v850 | v850e \
301 | we32k \
302 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
303 | z8k | z80)
304 basic_machine=$basic_machine-unknown
306 c54x)
307 basic_machine=tic54x-unknown
309 c55x)
310 basic_machine=tic55x-unknown
312 c6x)
313 basic_machine=tic6x-unknown
315 m6811 | m68hc11 | m6812 | m68hc12 | picochip)
316 # Motorola 68HC11/12.
317 basic_machine=$basic_machine-unknown
318 os=-none
320 m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
322 ms1)
323 basic_machine=mt-unknown
326 # We use `pc' rather than `unknown'
327 # because (1) that's what they normally are, and
328 # (2) the word "unknown" tends to confuse beginning users.
329 i*86 | x86_64)
330 basic_machine=$basic_machine-pc
332 # Object if more than one company name word.
333 *-*-*)
334 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
335 exit 1
337 # Recognize the basic CPU types with company name.
338 580-* \
339 | a29k-* \
340 | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
341 | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
342 | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
343 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
344 | avr-* | avr32-* \
345 | bfin-* | bs2000-* \
346 | c[123]* | c30-* | [cjt]90-* | c4x-* \
347 | clipper-* | craynv-* | cydra-* \
348 | d10v-* | d30v-* | dlx-* \
349 | elxsi-* \
350 | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
351 | h8300-* | h8500-* \
352 | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
353 | i*86-* | i860-* | i960-* | ia64-* \
354 | ip2k-* | iq2000-* \
355 | lm32-* \
356 | m32c-* | m32r-* | m32rle-* \
357 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
358 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
359 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
360 | mips16-* \
361 | mips64-* | mips64el-* \
362 | mips64octeon-* | mips64octeonel-* \
363 | mips64orion-* | mips64orionel-* \
364 | mips64r5900-* | mips64r5900el-* \
365 | mips64vr-* | mips64vrel-* \
366 | mips64vr4100-* | mips64vr4100el-* \
367 | mips64vr4300-* | mips64vr4300el-* \
368 | mips64vr5000-* | mips64vr5000el-* \
369 | mips64vr5900-* | mips64vr5900el-* \
370 | mipsisa32-* | mipsisa32el-* \
371 | mipsisa32r2-* | mipsisa32r2el-* \
372 | mipsisa64-* | mipsisa64el-* \
373 | mipsisa64r2-* | mipsisa64r2el-* \
374 | mipsisa64sb1-* | mipsisa64sb1el-* \
375 | mipsisa64sr71k-* | mipsisa64sr71kel-* \
376 | mipstx39-* | mipstx39el-* \
377 | mmix-* \
378 | mt-* \
379 | msp430-* \
380 | nios-* | nios2-* \
381 | none-* | np1-* | ns16k-* | ns32k-* \
382 | orion-* \
383 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
384 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
385 | pyramid-* \
386 | romp-* | rs6000-* | rx-* \
387 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
388 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
389 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
390 | sparclite-* \
391 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
392 | tahoe-* | thumb-* \
393 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
394 | tile-* | tilegx-* \
395 | tron-* \
396 | ubicom32-* \
397 | v850-* | v850e-* | vax-* \
398 | we32k-* \
399 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
400 | xstormy16-* | xtensa*-* \
401 | ymp-* \
402 | z8k-* | z80-*)
404 # Recognize the basic CPU types without company name, with glob match.
405 xtensa*)
406 basic_machine=$basic_machine-unknown
408 # Recognize the various machine names and aliases which stand
409 # for a CPU type and a company and sometimes even an OS.
410 386bsd)
411 basic_machine=i386-unknown
412 os=-bsd
414 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
415 basic_machine=m68000-att
417 3b*)
418 basic_machine=we32k-att
420 a29khif)
421 basic_machine=a29k-amd
422 os=-udi
424 abacus)
425 basic_machine=abacus-unknown
427 adobe68k)
428 basic_machine=m68010-adobe
429 os=-scout
431 alliant | fx80)
432 basic_machine=fx80-alliant
434 altos | altos3068)
435 basic_machine=m68k-altos
437 am29k)
438 basic_machine=a29k-none
439 os=-bsd
441 amd64)
442 basic_machine=x86_64-pc
444 amd64-*)
445 basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
447 amdahl)
448 basic_machine=580-amdahl
449 os=-sysv
451 amiga | amiga-*)
452 basic_machine=m68k-unknown
454 amigaos | amigados)
455 basic_machine=m68k-unknown
456 os=-amigaos
458 amigaunix | amix)
459 basic_machine=m68k-unknown
460 os=-sysv4
462 apollo68)
463 basic_machine=m68k-apollo
464 os=-sysv
466 apollo68bsd)
467 basic_machine=m68k-apollo
468 os=-bsd
470 aros)
471 basic_machine=i386-pc
472 os=-aros
474 aux)
475 basic_machine=m68k-apple
476 os=-aux
478 balance)
479 basic_machine=ns32k-sequent
480 os=-dynix
482 blackfin)
483 basic_machine=bfin-unknown
484 os=-linux
486 blackfin-*)
487 basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
488 os=-linux
490 bluegene*)
491 basic_machine=powerpc-ibm
492 os=-cnk
494 c54x-*)
495 basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
497 c55x-*)
498 basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
500 c6x-*)
501 basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
503 c90)
504 basic_machine=c90-cray
505 os=-unicos
507 cegcc)
508 basic_machine=arm-unknown
509 os=-cegcc
511 convex-c1)
512 basic_machine=c1-convex
513 os=-bsd
515 convex-c2)
516 basic_machine=c2-convex
517 os=-bsd
519 convex-c32)
520 basic_machine=c32-convex
521 os=-bsd
523 convex-c34)
524 basic_machine=c34-convex
525 os=-bsd
527 convex-c38)
528 basic_machine=c38-convex
529 os=-bsd
531 cray | j90)
532 basic_machine=j90-cray
533 os=-unicos
535 craynv)
536 basic_machine=craynv-cray
537 os=-unicosmp
539 cr16)
540 basic_machine=cr16-unknown
541 os=-elf
543 crds | unos)
544 basic_machine=m68k-crds
546 crisv32 | crisv32-* | etraxfs*)
547 basic_machine=crisv32-axis
549 cris | cris-* | etrax*)
550 basic_machine=cris-axis
552 crx)
553 basic_machine=crx-unknown
554 os=-elf
556 da30 | da30-*)
557 basic_machine=m68k-da30
559 decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
560 basic_machine=mips-dec
562 decsystem10* | dec10*)
563 basic_machine=pdp10-dec
564 os=-tops10
566 decsystem20* | dec20*)
567 basic_machine=pdp10-dec
568 os=-tops20
570 delta | 3300 | motorola-3300 | motorola-delta \
571 | 3300-motorola | delta-motorola)
572 basic_machine=m68k-motorola
574 delta88)
575 basic_machine=m88k-motorola
576 os=-sysv3
578 dicos)
579 basic_machine=i686-pc
580 os=-dicos
582 djgpp)
583 basic_machine=i586-pc
584 os=-msdosdjgpp
586 dpx20 | dpx20-*)
587 basic_machine=rs6000-bull
588 os=-bosx
590 dpx2* | dpx2*-bull)
591 basic_machine=m68k-bull
592 os=-sysv3
594 ebmon29k)
595 basic_machine=a29k-amd
596 os=-ebmon
598 elxsi)
599 basic_machine=elxsi-elxsi
600 os=-bsd
602 encore | umax | mmax)
603 basic_machine=ns32k-encore
605 es1800 | OSE68k | ose68k | ose | OSE)
606 basic_machine=m68k-ericsson
607 os=-ose
609 fx2800)
610 basic_machine=i860-alliant
612 genix)
613 basic_machine=ns32k-ns
615 gmicro)
616 basic_machine=tron-gmicro
617 os=-sysv
619 go32)
620 basic_machine=i386-pc
621 os=-go32
623 h3050r* | hiux*)
624 basic_machine=hppa1.1-hitachi
625 os=-hiuxwe2
627 h8300hms)
628 basic_machine=h8300-hitachi
629 os=-hms
631 h8300xray)
632 basic_machine=h8300-hitachi
633 os=-xray
635 h8500hms)
636 basic_machine=h8500-hitachi
637 os=-hms
639 harris)
640 basic_machine=m88k-harris
641 os=-sysv3
643 hp300-*)
644 basic_machine=m68k-hp
646 hp300bsd)
647 basic_machine=m68k-hp
648 os=-bsd
650 hp300hpux)
651 basic_machine=m68k-hp
652 os=-hpux
654 hp3k9[0-9][0-9] | hp9[0-9][0-9])
655 basic_machine=hppa1.0-hp
657 hp9k2[0-9][0-9] | hp9k31[0-9])
658 basic_machine=m68000-hp
660 hp9k3[2-9][0-9])
661 basic_machine=m68k-hp
663 hp9k6[0-9][0-9] | hp6[0-9][0-9])
664 basic_machine=hppa1.0-hp
666 hp9k7[0-79][0-9] | hp7[0-79][0-9])
667 basic_machine=hppa1.1-hp
669 hp9k78[0-9] | hp78[0-9])
670 # FIXME: really hppa2.0-hp
671 basic_machine=hppa1.1-hp
673 hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
674 # FIXME: really hppa2.0-hp
675 basic_machine=hppa1.1-hp
677 hp9k8[0-9][13679] | hp8[0-9][13679])
678 basic_machine=hppa1.1-hp
680 hp9k8[0-9][0-9] | hp8[0-9][0-9])
681 basic_machine=hppa1.0-hp
683 hppa-next)
684 os=-nextstep3
686 hppaosf)
687 basic_machine=hppa1.1-hp
688 os=-osf
690 hppro)
691 basic_machine=hppa1.1-hp
692 os=-proelf
694 i370-ibm* | ibm*)
695 basic_machine=i370-ibm
697 # I'm not sure what "Sysv32" means. Should this be sysv3.2?
698 i*86v32)
699 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
700 os=-sysv32
702 i*86v4*)
703 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
704 os=-sysv4
706 i*86v)
707 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
708 os=-sysv
710 i*86sol2)
711 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
712 os=-solaris2
714 i386mach)
715 basic_machine=i386-mach
716 os=-mach
718 i386-vsta | vsta)
719 basic_machine=i386-unknown
720 os=-vsta
722 iris | iris4d)
723 basic_machine=mips-sgi
724 case $os in
725 -irix*)
728 os=-irix4
730 esac
732 isi68 | isi)
733 basic_machine=m68k-isi
734 os=-sysv
736 m68knommu)
737 basic_machine=m68k-unknown
738 os=-linux
740 m68knommu-*)
741 basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
742 os=-linux
744 m88k-omron*)
745 basic_machine=m88k-omron
747 magnum | m3230)
748 basic_machine=mips-mips
749 os=-sysv
751 merlin)
752 basic_machine=ns32k-utek
753 os=-sysv
755 microblaze)
756 basic_machine=microblaze-xilinx
758 mingw32)
759 basic_machine=i386-pc
760 os=-mingw32
762 mingw32ce)
763 basic_machine=arm-unknown
764 os=-mingw32ce
766 miniframe)
767 basic_machine=m68000-convergent
769 *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
770 basic_machine=m68k-atari
771 os=-mint
773 mips3*-*)
774 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
776 mips3*)
777 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
779 monitor)
780 basic_machine=m68k-rom68k
781 os=-coff
783 morphos)
784 basic_machine=powerpc-unknown
785 os=-morphos
787 msdos)
788 basic_machine=i386-pc
789 os=-msdos
791 ms1-*)
792 basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
794 mvs)
795 basic_machine=i370-ibm
796 os=-mvs
798 ncr3000)
799 basic_machine=i486-ncr
800 os=-sysv4
802 netbsd386)
803 basic_machine=i386-unknown
804 os=-netbsd
806 netwinder)
807 basic_machine=armv4l-rebel
808 os=-linux
810 news | news700 | news800 | news900)
811 basic_machine=m68k-sony
812 os=-newsos
814 news1000)
815 basic_machine=m68030-sony
816 os=-newsos
818 news-3600 | risc-news)
819 basic_machine=mips-sony
820 os=-newsos
822 necv70)
823 basic_machine=v70-nec
824 os=-sysv
826 next | m*-next )
827 basic_machine=m68k-next
828 case $os in
829 -nextstep* )
831 -ns2*)
832 os=-nextstep2
835 os=-nextstep3
837 esac
839 nh3000)
840 basic_machine=m68k-harris
841 os=-cxux
843 nh[45]000)
844 basic_machine=m88k-harris
845 os=-cxux
847 nindy960)
848 basic_machine=i960-intel
849 os=-nindy
851 mon960)
852 basic_machine=i960-intel
853 os=-mon960
855 nonstopux)
856 basic_machine=mips-compaq
857 os=-nonstopux
859 np1)
860 basic_machine=np1-gould
862 nsr-tandem)
863 basic_machine=nsr-tandem
865 op50n-* | op60c-*)
866 basic_machine=hppa1.1-oki
867 os=-proelf
869 openrisc | openrisc-*)
870 basic_machine=or32-unknown
872 os400)
873 basic_machine=powerpc-ibm
874 os=-os400
876 OSE68000 | ose68000)
877 basic_machine=m68000-ericsson
878 os=-ose
880 os68k)
881 basic_machine=m68k-none
882 os=-os68k
884 pa-hitachi)
885 basic_machine=hppa1.1-hitachi
886 os=-hiuxwe2
888 paragon)
889 basic_machine=i860-intel
890 os=-osf
892 parisc)
893 basic_machine=hppa-unknown
894 os=-linux
896 parisc-*)
897 basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
898 os=-linux
900 pbd)
901 basic_machine=sparc-tti
903 pbb)
904 basic_machine=m68k-tti
906 pc532 | pc532-*)
907 basic_machine=ns32k-pc532
909 pc98)
910 basic_machine=i386-pc
912 pc98-*)
913 basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
915 pentium | p5 | k5 | k6 | nexgen | viac3)
916 basic_machine=i586-pc
918 pentiumpro | p6 | 6x86 | athlon | athlon_*)
919 basic_machine=i686-pc
921 pentiumii | pentium2 | pentiumiii | pentium3)
922 basic_machine=i686-pc
924 pentium4)
925 basic_machine=i786-pc
927 pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
928 basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
930 pentiumpro-* | p6-* | 6x86-* | athlon-*)
931 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
933 pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
934 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
936 pentium4-*)
937 basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
940 basic_machine=pn-gould
942 power) basic_machine=power-ibm
944 ppc) basic_machine=powerpc-unknown
946 ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
948 ppcle | powerpclittle | ppc-le | powerpc-little)
949 basic_machine=powerpcle-unknown
951 ppcle-* | powerpclittle-*)
952 basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
954 ppc64) basic_machine=powerpc64-unknown
956 ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
958 ppc64le | powerpc64little | ppc64-le | powerpc64-little)
959 basic_machine=powerpc64le-unknown
961 ppc64le-* | powerpc64little-*)
962 basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
964 ps2)
965 basic_machine=i386-ibm
967 pw32)
968 basic_machine=i586-unknown
969 os=-pw32
971 rdos)
972 basic_machine=i386-pc
973 os=-rdos
975 rom68k)
976 basic_machine=m68k-rom68k
977 os=-coff
979 rm[46]00)
980 basic_machine=mips-siemens
982 rtpc | rtpc-*)
983 basic_machine=romp-ibm
985 s390 | s390-*)
986 basic_machine=s390-ibm
988 s390x | s390x-*)
989 basic_machine=s390x-ibm
991 sa29200)
992 basic_machine=a29k-amd
993 os=-udi
995 sb1)
996 basic_machine=mipsisa64sb1-unknown
998 sb1el)
999 basic_machine=mipsisa64sb1el-unknown
1001 sde)
1002 basic_machine=mipsisa32-sde
1003 os=-elf
1005 sei)
1006 basic_machine=mips-sei
1007 os=-seiux
1009 sequent)
1010 basic_machine=i386-sequent
1013 basic_machine=sh-hitachi
1014 os=-hms
1016 sh5el)
1017 basic_machine=sh5le-unknown
1019 sh64)
1020 basic_machine=sh64-unknown
1022 sparclite-wrs | simso-wrs)
1023 basic_machine=sparclite-wrs
1024 os=-vxworks
1026 sps7)
1027 basic_machine=m68k-bull
1028 os=-sysv2
1030 spur)
1031 basic_machine=spur-unknown
1033 st2000)
1034 basic_machine=m68k-tandem
1036 stratus)
1037 basic_machine=i860-stratus
1038 os=-sysv4
1040 sun2)
1041 basic_machine=m68000-sun
1043 sun2os3)
1044 basic_machine=m68000-sun
1045 os=-sunos3
1047 sun2os4)
1048 basic_machine=m68000-sun
1049 os=-sunos4
1051 sun3os3)
1052 basic_machine=m68k-sun
1053 os=-sunos3
1055 sun3os4)
1056 basic_machine=m68k-sun
1057 os=-sunos4
1059 sun4os3)
1060 basic_machine=sparc-sun
1061 os=-sunos3
1063 sun4os4)
1064 basic_machine=sparc-sun
1065 os=-sunos4
1067 sun4sol2)
1068 basic_machine=sparc-sun
1069 os=-solaris2
1071 sun3 | sun3-*)
1072 basic_machine=m68k-sun
1074 sun4)
1075 basic_machine=sparc-sun
1077 sun386 | sun386i | roadrunner)
1078 basic_machine=i386-sun
1080 sv1)
1081 basic_machine=sv1-cray
1082 os=-unicos
1084 symmetry)
1085 basic_machine=i386-sequent
1086 os=-dynix
1088 t3e)
1089 basic_machine=alphaev5-cray
1090 os=-unicos
1092 t90)
1093 basic_machine=t90-cray
1094 os=-unicos
1096 # This must be matched before tile*.
1097 tilegx*)
1098 basic_machine=tilegx-unknown
1099 os=-linux-gnu
1101 tile*)
1102 basic_machine=tile-unknown
1103 os=-linux-gnu
1105 tx39)
1106 basic_machine=mipstx39-unknown
1108 tx39el)
1109 basic_machine=mipstx39el-unknown
1111 toad1)
1112 basic_machine=pdp10-xkl
1113 os=-tops20
1115 tower | tower-32)
1116 basic_machine=m68k-ncr
1118 tpf)
1119 basic_machine=s390x-ibm
1120 os=-tpf
1122 udi29k)
1123 basic_machine=a29k-amd
1124 os=-udi
1126 ultra3)
1127 basic_machine=a29k-nyu
1128 os=-sym1
1130 v810 | necv810)
1131 basic_machine=v810-nec
1132 os=-none
1134 vaxv)
1135 basic_machine=vax-dec
1136 os=-sysv
1138 vms)
1139 basic_machine=vax-dec
1140 os=-vms
1142 vpp*|vx|vx-*)
1143 basic_machine=f301-fujitsu
1145 vxworks960)
1146 basic_machine=i960-wrs
1147 os=-vxworks
1149 vxworks68)
1150 basic_machine=m68k-wrs
1151 os=-vxworks
1153 vxworks29k)
1154 basic_machine=a29k-wrs
1155 os=-vxworks
1157 w65*)
1158 basic_machine=w65-wdc
1159 os=-none
1161 w89k-*)
1162 basic_machine=hppa1.1-winbond
1163 os=-proelf
1165 xbox)
1166 basic_machine=i686-pc
1167 os=-mingw32
1169 xps | xps100)
1170 basic_machine=xps100-honeywell
1172 ymp)
1173 basic_machine=ymp-cray
1174 os=-unicos
1176 z8k-*-coff)
1177 basic_machine=z8k-unknown
1178 os=-sim
1180 z80-*-coff)
1181 basic_machine=z80-unknown
1182 os=-sim
1184 none)
1185 basic_machine=none-none
1186 os=-none
1189 # Here we handle the default manufacturer of certain CPU types. It is in
1190 # some cases the only manufacturer, in others, it is the most popular.
1191 w89k)
1192 basic_machine=hppa1.1-winbond
1194 op50n)
1195 basic_machine=hppa1.1-oki
1197 op60c)
1198 basic_machine=hppa1.1-oki
1200 romp)
1201 basic_machine=romp-ibm
1203 mmix)
1204 basic_machine=mmix-knuth
1206 rs6000)
1207 basic_machine=rs6000-ibm
1209 vax)
1210 basic_machine=vax-dec
1212 pdp10)
1213 # there are many clones, so DEC is not a safe bet
1214 basic_machine=pdp10-unknown
1216 pdp11)
1217 basic_machine=pdp11-dec
1219 we32k)
1220 basic_machine=we32k-att
1222 sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1223 basic_machine=sh-unknown
1225 sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1226 basic_machine=sparc-sun
1228 cydra)
1229 basic_machine=cydra-cydrome
1231 orion)
1232 basic_machine=orion-highlevel
1234 orion105)
1235 basic_machine=clipper-highlevel
1237 mac | mpw | mac-mpw)
1238 basic_machine=m68k-apple
1240 pmac | pmac-mpw)
1241 basic_machine=powerpc-apple
1243 *-unknown)
1244 # Make sure to match an already-canonicalized machine name.
1247 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1248 exit 1
1250 esac
1252 # Here we canonicalize certain aliases for manufacturers.
1253 case $basic_machine in
1254 *-digital*)
1255 basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1257 *-commodore*)
1258 basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1262 esac
1264 # Decode manufacturer-specific aliases for certain operating systems.
1266 if [ x"$os" != x"" ]
1267 then
1268 case $os in
1269 # First match some system type aliases
1270 # that might get confused with valid system types.
1271 # -solaris* is a basic system type, with this one exception.
1272 -auroraux)
1273 os=-auroraux
1275 -solaris1 | -solaris1.*)
1276 os=`echo $os | sed -e 's|solaris1|sunos4|'`
1278 -solaris)
1279 os=-solaris2
1281 -svr4*)
1282 os=-sysv4
1284 -unixware*)
1285 os=-sysv4.2uw
1287 -gnu/linux*)
1288 os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1290 # First accept the basic system types.
1291 # The portable systems comes first.
1292 # Each alternative MUST END IN A *, to match a version number.
1293 # -sysv* is not here because it comes later, after sysvr4.
1294 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1295 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1296 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1297 | -sym* | -kopensolaris* \
1298 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1299 | -aos* | -aros* \
1300 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1301 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1302 | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1303 | -openbsd* | -solidbsd* \
1304 | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1305 | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1306 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1307 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1308 | -chorusos* | -chorusrdb* | -cegcc* \
1309 | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1310 | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
1311 | -uxpv* | -beos* | -mpeix* | -udk* \
1312 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1313 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1314 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1315 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1316 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1317 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1318 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1319 # Remember, each alternative MUST END IN *, to match a version number.
1321 -qnx*)
1322 case $basic_machine in
1323 x86-* | i*86-*)
1326 os=-nto$os
1328 esac
1330 -nto-qnx*)
1332 -nto*)
1333 os=`echo $os | sed -e 's|nto|nto-qnx|'`
1335 -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1336 | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1337 | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1339 -mac*)
1340 os=`echo $os | sed -e 's|mac|macos|'`
1342 -linux-dietlibc)
1343 os=-linux-dietlibc
1345 -linux*)
1346 os=`echo $os | sed -e 's|linux|linux-gnu|'`
1348 -sunos5*)
1349 os=`echo $os | sed -e 's|sunos5|solaris2|'`
1351 -sunos6*)
1352 os=`echo $os | sed -e 's|sunos6|solaris3|'`
1354 -opened*)
1355 os=-openedition
1357 -os400*)
1358 os=-os400
1360 -wince*)
1361 os=-wince
1363 -osfrose*)
1364 os=-osfrose
1366 -osf*)
1367 os=-osf
1369 -utek*)
1370 os=-bsd
1372 -dynix*)
1373 os=-bsd
1375 -acis*)
1376 os=-aos
1378 -atheos*)
1379 os=-atheos
1381 -syllable*)
1382 os=-syllable
1384 -386bsd)
1385 os=-bsd
1387 -ctix* | -uts*)
1388 os=-sysv
1390 -nova*)
1391 os=-rtmk-nova
1393 -ns2 )
1394 os=-nextstep2
1396 -nsk*)
1397 os=-nsk
1399 # Preserve the version number of sinix5.
1400 -sinix5.*)
1401 os=`echo $os | sed -e 's|sinix|sysv|'`
1403 -sinix*)
1404 os=-sysv4
1406 -tpf*)
1407 os=-tpf
1409 -triton*)
1410 os=-sysv3
1412 -oss*)
1413 os=-sysv3
1415 -svr4)
1416 os=-sysv4
1418 -svr3)
1419 os=-sysv3
1421 -sysvr4)
1422 os=-sysv4
1424 # This must come after -sysvr4.
1425 -sysv*)
1427 -ose*)
1428 os=-ose
1430 -es1800*)
1431 os=-ose
1433 -xenix)
1434 os=-xenix
1436 -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1437 os=-mint
1439 -aros*)
1440 os=-aros
1442 -kaos*)
1443 os=-kaos
1445 -zvmoe)
1446 os=-zvmoe
1448 -dicos*)
1449 os=-dicos
1451 -nacl*)
1453 -none)
1456 # Get rid of the `-' at the beginning of $os.
1457 os=`echo $os | sed 's/[^-]*-//'`
1458 echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1459 exit 1
1461 esac
1462 else
1464 # Here we handle the default operating systems that come with various machines.
1465 # The value should be what the vendor currently ships out the door with their
1466 # machine or put another way, the most popular os provided with the machine.
1468 # Note that if you're going to try to match "-MANUFACTURER" here (say,
1469 # "-sun"), then you have to tell the case statement up towards the top
1470 # that MANUFACTURER isn't an operating system. Otherwise, code above
1471 # will signal an error saying that MANUFACTURER isn't an operating
1472 # system, and we'll never get to this point.
1474 case $basic_machine in
1475 score-*)
1476 os=-elf
1478 spu-*)
1479 os=-elf
1481 *-acorn)
1482 os=-riscix1.2
1484 arm*-rebel)
1485 os=-linux
1487 arm*-semi)
1488 os=-aout
1490 c4x-* | tic4x-*)
1491 os=-coff
1493 tic54x-*)
1494 os=-coff
1496 tic55x-*)
1497 os=-coff
1499 tic6x-*)
1500 os=-coff
1502 # This must come before the *-dec entry.
1503 pdp10-*)
1504 os=-tops20
1506 pdp11-*)
1507 os=-none
1509 *-dec | vax-*)
1510 os=-ultrix4.2
1512 m68*-apollo)
1513 os=-domain
1515 i386-sun)
1516 os=-sunos4.0.2
1518 m68000-sun)
1519 os=-sunos3
1520 # This also exists in the configure program, but was not the
1521 # default.
1522 # os=-sunos4
1524 m68*-cisco)
1525 os=-aout
1527 mep-*)
1528 os=-elf
1530 mips*-cisco)
1531 os=-elf
1533 mips*-*)
1534 os=-elf
1536 or32-*)
1537 os=-coff
1539 *-tti) # must be before sparc entry or we get the wrong os.
1540 os=-sysv3
1542 sparc-* | *-sun)
1543 os=-sunos4.1.1
1545 *-be)
1546 os=-beos
1548 *-haiku)
1549 os=-haiku
1551 *-ibm)
1552 os=-aix
1554 *-knuth)
1555 os=-mmixware
1557 *-wec)
1558 os=-proelf
1560 *-winbond)
1561 os=-proelf
1563 *-oki)
1564 os=-proelf
1566 *-hp)
1567 os=-hpux
1569 *-hitachi)
1570 os=-hiux
1572 i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1573 os=-sysv
1575 *-cbm)
1576 os=-amigaos
1578 *-dg)
1579 os=-dgux
1581 *-dolphin)
1582 os=-sysv3
1584 m68k-ccur)
1585 os=-rtu
1587 m88k-omron*)
1588 os=-luna
1590 *-next )
1591 os=-nextstep
1593 *-sequent)
1594 os=-ptx
1596 *-crds)
1597 os=-unos
1599 *-ns)
1600 os=-genix
1602 i370-*)
1603 os=-mvs
1605 *-next)
1606 os=-nextstep3
1608 *-gould)
1609 os=-sysv
1611 *-highlevel)
1612 os=-bsd
1614 *-encore)
1615 os=-bsd
1617 *-sgi)
1618 os=-irix
1620 *-siemens)
1621 os=-sysv4
1623 *-masscomp)
1624 os=-rtu
1626 f30[01]-fujitsu | f700-fujitsu)
1627 os=-uxpv
1629 *-rom68k)
1630 os=-coff
1632 *-*bug)
1633 os=-coff
1635 *-apple)
1636 os=-macos
1638 *-atari*)
1639 os=-mint
1642 os=-none
1644 esac
1647 # Here we handle the case where we know the os, and the CPU type, but not the
1648 # manufacturer. We pick the logical manufacturer.
1649 vendor=unknown
1650 case $basic_machine in
1651 *-unknown)
1652 case $os in
1653 -riscix*)
1654 vendor=acorn
1656 -sunos*)
1657 vendor=sun
1659 -cnk*|-aix*)
1660 vendor=ibm
1662 -beos*)
1663 vendor=be
1665 -hpux*)
1666 vendor=hp
1668 -mpeix*)
1669 vendor=hp
1671 -hiux*)
1672 vendor=hitachi
1674 -unos*)
1675 vendor=crds
1677 -dgux*)
1678 vendor=dg
1680 -luna*)
1681 vendor=omron
1683 -genix*)
1684 vendor=ns
1686 -mvs* | -opened*)
1687 vendor=ibm
1689 -os400*)
1690 vendor=ibm
1692 -ptx*)
1693 vendor=sequent
1695 -tpf*)
1696 vendor=ibm
1698 -vxsim* | -vxworks* | -windiss*)
1699 vendor=wrs
1701 -aux*)
1702 vendor=apple
1704 -hms*)
1705 vendor=hitachi
1707 -mpw* | -macos*)
1708 vendor=apple
1710 -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1711 vendor=atari
1713 -vos*)
1714 vendor=stratus
1716 esac
1717 basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1719 esac
1721 echo $basic_machine$os
1722 exit
1724 # Local variables:
1725 # eval: (add-hook 'write-file-hooks 'time-stamp)
1726 # time-stamp-start: "timestamp='"
1727 # time-stamp-format: "%:y-%02m-%02d"
1728 # time-stamp-end: "'"
1729 # End: