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#   2011 Free Software Foundation, Inc.
6
7timestamp='2011-11-02'
8
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.
12#
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.
17#
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.
22#
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.
27#
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.
32
33
34# Please send patches to <config-patches@gnu.org>.  Submit a context
35# diff and a properly formatted GNU ChangeLog entry.
36#
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.
41
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
44
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.
52
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.
59
60me=`echo "$0" | sed -e 's,.*/,,'`
61
62usage="\
63Usage: $0 [OPTION] CPU-MFR-OPSYS
64       $0 [OPTION] ALIAS
65
66Canonicalize a configuration name.
67
68Operation 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
72
73Report bugs and patches to <config-patches@gnu.org>."
74
75version="\
76GNU config.sub ($timestamp)
77
78Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
792001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
80Software Foundation, Inc.
81
82This is free software; see the source for copying conditions.  There is NO
83warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
84
85help="
86Try \`$me --help' for more information."
87
88# Parse command line
89while 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 ;;
104
105    *local*)
106       # First pass through any local machine types.
107       echo $1
108       exit ;;
109
110    * )
111       break ;;
112  esac
113done
114
115case $# 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;;
121esac
122
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.
125maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
126case $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/'`
134    ;;
135  *)
136    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
137    if [ $basic_machine != $1 ]
138    then os=`echo $1 | sed 's/.*-/-/'`
139    else os=; fi
140    ;;
141esac
142
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.
147case $os in
148	-sun*os*)
149		# Prevent following clause from handling this invalid input.
150		;;
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)
158		os=
159		basic_machine=$1
160		;;
161	-bluegene*)
162		os=-cnk
163		;;
164	-sim | -cisco | -oki | -wec | -winbond)
165		os=
166		basic_machine=$1
167		;;
168	-scout)
169		;;
170	-wrs)
171		os=-vxworks
172		basic_machine=$1
173		;;
174	-chorusos*)
175		os=-chorusos
176		basic_machine=$1
177		;;
178	-chorusrdb)
179		os=-chorusrdb
180		basic_machine=$1
181		;;
182	-hiux*)
183		os=-hiuxwe2
184		;;
185	-sco6)
186		os=-sco5v6
187		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
188		;;
189	-sco5)
190		os=-sco3.2v5
191		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
192		;;
193	-sco4)
194		os=-sco3.2v4
195		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
196		;;
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/'`
200		;;
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/'`
204		;;
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/'`
208		;;
209	-sco*)
210		os=-sco3.2v2
211		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
212		;;
213	-udk*)
214		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
215		;;
216	-isc)
217		os=-isc2.2
218		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
219		;;
220	-clix*)
221		basic_machine=clipper-intergraph
222		;;
223	-isc*)
224		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
225		;;
226	-lynx*)
227		os=-lynxos
228		;;
229	-ptx*)
230		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
231		;;
232	-windowsnt*)
233		os=`echo $os | sed -e 's/windowsnt/winnt/'`
234		;;
235	-psos*)
236		os=-psos
237		;;
238	-mint | -mint[0-9]*)
239		basic_machine=m68k-atari
240		os=-mint
241		;;
242esac
243
244# Decode aliases for certain CPU-COMPANY combinations.
245case $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   | aarch64 | aarch64_be \
255   | be32 | be64 \
256	| bfin \
257	| c4x | clipper \
258	| d10v | d30v | dlx | dsp16xx \
259	| fido | fr30 | frv \
260	| hexagon \
261	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
262	| i370 | i860 | i960 | ia64 \
263	| ip2k | iq2000 \
264	| le32 | le64 \
265	| lm32 \
266	| m32c | m32r | m32rle | m68000 | m68k | m88k \
267	| maxq | mb | microblaze | mcore | mep | metag \
268	| mips | mipsbe | mipseb | mipsel | mipsle \
269	| mips16 \
270	| mips64 | mips64el \
271	| mips64octeon | mips64octeonel \
272	| mips64orion | mips64orionel \
273	| mips64r5900 | mips64r5900el \
274	| mips64vr | mips64vrel \
275	| mips64vr4100 | mips64vr4100el \
276	| mips64vr4300 | mips64vr4300el \
277	| mips64vr5000 | mips64vr5000el \
278	| mips64vr5900 | mips64vr5900el \
279	| mipsisa32 | mipsisa32el \
280	| mipsisa32r2 | mipsisa32r2el \
281	| mipsisa64 | mipsisa64el \
282	| mipsisa64r2 | mipsisa64r2el \
283	| mipsisa64sb1 | mipsisa64sb1el \
284	| mipsisa64sr71k | mipsisa64sr71kel \
285	| mipstx39 | mipstx39el \
286	| mn10200 | mn10300 \
287	| moxie \
288	| mt \
289	| msp430 \
290	| nds32 | nds32le | nds32be \
291	| nios | nios2 \
292	| ns16k | ns32k \
293	| open8 \
294	| or32 \
295	| pdp10 | pdp11 | pj | pjl \
296	| powerpc | powerpc64 | powerpc64le | powerpcle \
297	| pyramid \
298	| rx \
299	| score \
300	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
301	| sh64 | sh64le \
302	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
303	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
304	| spu \
305	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
306	| ubicom32 \
307	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
308	| we32k \
309	| x86 | xc16x | xstormy16 | xtensa \
310	| z8k | z80)
311		basic_machine=$basic_machine-unknown
312		;;
313	c54x)
314		basic_machine=tic54x-unknown
315		;;
316	c55x)
317		basic_machine=tic55x-unknown
318		;;
319	c6x)
320		basic_machine=tic6x-unknown
321		;;
322	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
323		# Motorola 68HC11/12.
324		basic_machine=$basic_machine-unknown
325		os=-none
326		;;
327	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
328		;;
329	ms1)
330		basic_machine=mt-unknown
331		;;
332
333	strongarm | thumb | xscale)
334		basic_machine=arm-unknown
335		;;
336
337	xscaleeb)
338		basic_machine=armeb-unknown
339		;;
340
341	xscaleel)
342		basic_machine=armel-unknown
343		;;
344
345	# We use `pc' rather than `unknown'
346	# because (1) that's what they normally are, and
347	# (2) the word "unknown" tends to confuse beginning users.
348	i*86 | x86_64)
349	  basic_machine=$basic_machine-pc
350	  ;;
351	# Object if more than one company name word.
352	*-*-*)
353		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
354		exit 1
355		;;
356	# Recognize the basic CPU types with company name.
357	580-* \
358	| a29k-* \
359	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
360	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
361	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
362	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
363   | aarch64-* | aarch64_be-* \
364	| avr-* | avr32-* \
365	| be32-* | be64-* \
366	| bfin-* | bs2000-* \
367	| c[123]* | c30-* | [cjt]90-* | c4x-* \
368	| clipper-* | craynv-* | cydra-* \
369	| d10v-* | d30v-* | dlx-* \
370	| elxsi-* \
371	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
372	| h8300-* | h8500-* \
373	| hexagon-* \
374	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
375	| i*86-* | i860-* | i960-* | ia64-* \
376	| ip2k-* | iq2000-* \
377	| le32-* | le64-* \
378	| lm32-* \
379	| m32c-* | m32r-* | m32rle-* \
380	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
381	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
382	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
383	| mips16-* \
384	| mips64-* | mips64el-* \
385	| mips64octeon-* | mips64octeonel-* \
386	| mips64orion-* | mips64orionel-* \
387	| mips64r5900-* | mips64r5900el-* \
388	| mips64vr-* | mips64vrel-* \
389	| mips64vr4100-* | mips64vr4100el-* \
390	| mips64vr4300-* | mips64vr4300el-* \
391	| mips64vr5000-* | mips64vr5000el-* \
392	| mips64vr5900-* | mips64vr5900el-* \
393	| mipsisa32-* | mipsisa32el-* \
394	| mipsisa32r2-* | mipsisa32r2el-* \
395	| mipsisa64-* | mipsisa64el-* \
396	| mipsisa64r2-* | mipsisa64r2el-* \
397	| mipsisa64sb1-* | mipsisa64sb1el-* \
398	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
399	| mipstx39-* | mipstx39el-* \
400	| mmix-* \
401	| mt-* \
402	| msp430-* \
403	| nds32-* | nds32le-* | nds32be-* \
404	| nios-* | nios2-* \
405	| none-* | np1-* | ns16k-* | ns32k-* \
406	| open8-* \
407	| orion-* \
408	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
409	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
410	| pyramid-* \
411	| romp-* | rs6000-* | rx-* \
412	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
413	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
414	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
415	| sparclite-* \
416	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
417	| tahoe-* \
418	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
419	| tile*-* \
420	| tron-* \
421	| ubicom32-* \
422	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
423	| vax-* \
424	| we32k-* \
425	| x86-* | x86_64-* | xc16x-* | xps100-* \
426	| xstormy16-* | xtensa*-* \
427	| ymp-* \
428	| z8k-* | z80-*)
429		;;
430	# Recognize the basic CPU types without company name, with glob match.
431	xtensa*)
432		basic_machine=$basic_machine-unknown
433		;;
434	# Recognize the various machine names and aliases which stand
435	# for a CPU type and a company and sometimes even an OS.
436	386bsd)
437		basic_machine=i386-unknown
438		os=-bsd
439		;;
440	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
441		basic_machine=m68000-att
442		;;
443	3b*)
444		basic_machine=we32k-att
445		;;
446	a29khif)
447		basic_machine=a29k-amd
448		os=-udi
449		;;
450	abacus)
451		basic_machine=abacus-unknown
452		;;
453	adobe68k)
454		basic_machine=m68010-adobe
455		os=-scout
456		;;
457	alliant | fx80)
458		basic_machine=fx80-alliant
459		;;
460	altos | altos3068)
461		basic_machine=m68k-altos
462		;;
463	am29k)
464		basic_machine=a29k-none
465		os=-bsd
466		;;
467	amd64)
468		basic_machine=x86_64-pc
469		;;
470	amd64-*)
471		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
472		;;
473	amdahl)
474		basic_machine=580-amdahl
475		os=-sysv
476		;;
477	amiga | amiga-*)
478		basic_machine=m68k-unknown
479		;;
480	amigaos | amigados)
481		basic_machine=m68k-unknown
482		os=-amigaos
483		;;
484	amigaunix | amix)
485		basic_machine=m68k-unknown
486		os=-sysv4
487		;;
488	apollo68)
489		basic_machine=m68k-apollo
490		os=-sysv
491		;;
492	apollo68bsd)
493		basic_machine=m68k-apollo
494		os=-bsd
495		;;
496	aros)
497		basic_machine=i386-pc
498		os=-aros
499		;;
500	aux)
501		basic_machine=m68k-apple
502		os=-aux
503		;;
504	balance)
505		basic_machine=ns32k-sequent
506		os=-dynix
507		;;
508	blackfin)
509		basic_machine=bfin-unknown
510		os=-linux
511		;;
512	blackfin-*)
513		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
514		os=-linux
515		;;
516	bluegene*)
517		basic_machine=powerpc-ibm
518		os=-cnk
519		;;
520	c54x-*)
521		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
522		;;
523	c55x-*)
524		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
525		;;
526	c6x-*)
527		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
528		;;
529	c90)
530		basic_machine=c90-cray
531		os=-unicos
532		;;
533	cegcc)
534		basic_machine=arm-unknown
535		os=-cegcc
536		;;
537	convex-c1)
538		basic_machine=c1-convex
539		os=-bsd
540		;;
541	convex-c2)
542		basic_machine=c2-convex
543		os=-bsd
544		;;
545	convex-c32)
546		basic_machine=c32-convex
547		os=-bsd
548		;;
549	convex-c34)
550		basic_machine=c34-convex
551		os=-bsd
552		;;
553	convex-c38)
554		basic_machine=c38-convex
555		os=-bsd
556		;;
557	cray | j90)
558		basic_machine=j90-cray
559		os=-unicos
560		;;
561	craynv)
562		basic_machine=craynv-cray
563		os=-unicosmp
564		;;
565	cr16 | cr16-*)
566		basic_machine=cr16-unknown
567		os=-elf
568		;;
569	crds | unos)
570		basic_machine=m68k-crds
571		;;
572	crisv32 | crisv32-* | etraxfs*)
573		basic_machine=crisv32-axis
574		;;
575	cris | cris-* | etrax*)
576		basic_machine=cris-axis
577		;;
578	crx)
579		basic_machine=crx-unknown
580		os=-elf
581		;;
582	da30 | da30-*)
583		basic_machine=m68k-da30
584		;;
585	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
586		basic_machine=mips-dec
587		;;
588	decsystem10* | dec10*)
589		basic_machine=pdp10-dec
590		os=-tops10
591		;;
592	decsystem20* | dec20*)
593		basic_machine=pdp10-dec
594		os=-tops20
595		;;
596	delta | 3300 | motorola-3300 | motorola-delta \
597	      | 3300-motorola | delta-motorola)
598		basic_machine=m68k-motorola
599		;;
600	delta88)
601		basic_machine=m88k-motorola
602		os=-sysv3
603		;;
604	dicos)
605		basic_machine=i686-pc
606		os=-dicos
607		;;
608	djgpp)
609		basic_machine=i586-pc
610		os=-msdosdjgpp
611		;;
612	dpx20 | dpx20-*)
613		basic_machine=rs6000-bull
614		os=-bosx
615		;;
616	dpx2* | dpx2*-bull)
617		basic_machine=m68k-bull
618		os=-sysv3
619		;;
620	ebmon29k)
621		basic_machine=a29k-amd
622		os=-ebmon
623		;;
624	elxsi)
625		basic_machine=elxsi-elxsi
626		os=-bsd
627		;;
628	encore | umax | mmax)
629		basic_machine=ns32k-encore
630		;;
631	es1800 | OSE68k | ose68k | ose | OSE)
632		basic_machine=m68k-ericsson
633		os=-ose
634		;;
635	fx2800)
636		basic_machine=i860-alliant
637		;;
638	genix)
639		basic_machine=ns32k-ns
640		;;
641	gmicro)
642		basic_machine=tron-gmicro
643		os=-sysv
644		;;
645	go32)
646		basic_machine=i386-pc
647		os=-go32
648		;;
649	h3050r* | hiux*)
650		basic_machine=hppa1.1-hitachi
651		os=-hiuxwe2
652		;;
653	h8300hms)
654		basic_machine=h8300-hitachi
655		os=-hms
656		;;
657	h8300xray)
658		basic_machine=h8300-hitachi
659		os=-xray
660		;;
661	h8500hms)
662		basic_machine=h8500-hitachi
663		os=-hms
664		;;
665	harris)
666		basic_machine=m88k-harris
667		os=-sysv3
668		;;
669	hp300-*)
670		basic_machine=m68k-hp
671		;;
672	hp300bsd)
673		basic_machine=m68k-hp
674		os=-bsd
675		;;
676	hp300hpux)
677		basic_machine=m68k-hp
678		os=-hpux
679		;;
680	hp3k9[0-9][0-9] | hp9[0-9][0-9])
681		basic_machine=hppa1.0-hp
682		;;
683	hp9k2[0-9][0-9] | hp9k31[0-9])
684		basic_machine=m68000-hp
685		;;
686	hp9k3[2-9][0-9])
687		basic_machine=m68k-hp
688		;;
689	hp9k6[0-9][0-9] | hp6[0-9][0-9])
690		basic_machine=hppa1.0-hp
691		;;
692	hp9k7[0-79][0-9] | hp7[0-79][0-9])
693		basic_machine=hppa1.1-hp
694		;;
695	hp9k78[0-9] | hp78[0-9])
696		# FIXME: really hppa2.0-hp
697		basic_machine=hppa1.1-hp
698		;;
699	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
700		# FIXME: really hppa2.0-hp
701		basic_machine=hppa1.1-hp
702		;;
703	hp9k8[0-9][13679] | hp8[0-9][13679])
704		basic_machine=hppa1.1-hp
705		;;
706	hp9k8[0-9][0-9] | hp8[0-9][0-9])
707		basic_machine=hppa1.0-hp
708		;;
709	hppa-next)
710		os=-nextstep3
711		;;
712	hppaosf)
713		basic_machine=hppa1.1-hp
714		os=-osf
715		;;
716	hppro)
717		basic_machine=hppa1.1-hp
718		os=-proelf
719		;;
720	i370-ibm* | ibm*)
721		basic_machine=i370-ibm
722		;;
723# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
724	i*86v32)
725		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
726		os=-sysv32
727		;;
728	i*86v4*)
729		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
730		os=-sysv4
731		;;
732	i*86v)
733		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
734		os=-sysv
735		;;
736	i*86sol2)
737		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
738		os=-solaris2
739		;;
740	i386mach)
741		basic_machine=i386-mach
742		os=-mach
743		;;
744	i386-vsta | vsta)
745		basic_machine=i386-unknown
746		os=-vsta
747		;;
748	iris | iris4d)
749		basic_machine=mips-sgi
750		case $os in
751		    -irix*)
752			;;
753		    *)
754			os=-irix4
755			;;
756		esac
757		;;
758	isi68 | isi)
759		basic_machine=m68k-isi
760		os=-sysv
761		;;
762	m68knommu)
763		basic_machine=m68k-unknown
764		os=-linux
765		;;
766	m68knommu-*)
767		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
768		os=-linux
769		;;
770	m88k-omron*)
771		basic_machine=m88k-omron
772		;;
773	magnum | m3230)
774		basic_machine=mips-mips
775		os=-sysv
776		;;
777	merlin)
778		basic_machine=ns32k-utek
779		os=-sysv
780		;;
781	microblaze)
782		basic_machine=microblaze-xilinx
783		;;
784	mingw32)
785		basic_machine=i386-pc
786		os=-mingw32
787		;;
788	mingw32ce)
789		basic_machine=arm-unknown
790		os=-mingw32ce
791		;;
792	miniframe)
793		basic_machine=m68000-convergent
794		;;
795	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
796		basic_machine=m68k-atari
797		os=-mint
798		;;
799	mips3*-*)
800		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
801		;;
802	mips3*)
803		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
804		;;
805	monitor)
806		basic_machine=m68k-rom68k
807		os=-coff
808		;;
809	morphos)
810		basic_machine=powerpc-unknown
811		os=-morphos
812		;;
813	msdos)
814		basic_machine=i386-pc
815		os=-msdos
816		;;
817	ms1-*)
818		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
819		;;
820	mvs)
821		basic_machine=i370-ibm
822		os=-mvs
823		;;
824	nacl)
825		basic_machine=le32-unknown
826		os=-nacl
827		;;
828	ncr3000)
829		basic_machine=i486-ncr
830		os=-sysv4
831		;;
832	netbsd386)
833		basic_machine=i386-unknown
834		os=-netbsd
835		;;
836	netwinder)
837		basic_machine=armv4l-rebel
838		os=-linux
839		;;
840	news | news700 | news800 | news900)
841		basic_machine=m68k-sony
842		os=-newsos
843		;;
844	news1000)
845		basic_machine=m68030-sony
846		os=-newsos
847		;;
848	news-3600 | risc-news)
849		basic_machine=mips-sony
850		os=-newsos
851		;;
852	necv70)
853		basic_machine=v70-nec
854		os=-sysv
855		;;
856	next | m*-next )
857		basic_machine=m68k-next
858		case $os in
859		    -nextstep* )
860			;;
861		    -ns2*)
862		      os=-nextstep2
863			;;
864		    *)
865		      os=-nextstep3
866			;;
867		esac
868		;;
869	nh3000)
870		basic_machine=m68k-harris
871		os=-cxux
872		;;
873	nh[45]000)
874		basic_machine=m88k-harris
875		os=-cxux
876		;;
877	nindy960)
878		basic_machine=i960-intel
879		os=-nindy
880		;;
881	mon960)
882		basic_machine=i960-intel
883		os=-mon960
884		;;
885	nonstopux)
886		basic_machine=mips-compaq
887		os=-nonstopux
888		;;
889	np1)
890		basic_machine=np1-gould
891		;;
892	neo-tandem)
893		basic_machine=neo-tandem
894		;;
895	nse-tandem)
896		basic_machine=nse-tandem
897		;;
898	nsr-tandem)
899		basic_machine=nsr-tandem
900		;;
901	op50n-* | op60c-*)
902		basic_machine=hppa1.1-oki
903		os=-proelf
904		;;
905	openrisc | openrisc-*)
906		basic_machine=or32-unknown
907		;;
908	os400)
909		basic_machine=powerpc-ibm
910		os=-os400
911		;;
912	OSE68000 | ose68000)
913		basic_machine=m68000-ericsson
914		os=-ose
915		;;
916	os68k)
917		basic_machine=m68k-none
918		os=-os68k
919		;;
920	pa-hitachi)
921		basic_machine=hppa1.1-hitachi
922		os=-hiuxwe2
923		;;
924	paragon)
925		basic_machine=i860-intel
926		os=-osf
927		;;
928	parisc)
929		basic_machine=hppa-unknown
930		os=-linux
931		;;
932	parisc-*)
933		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
934		os=-linux
935		;;
936	pbd)
937		basic_machine=sparc-tti
938		;;
939	pbb)
940		basic_machine=m68k-tti
941		;;
942	pc532 | pc532-*)
943		basic_machine=ns32k-pc532
944		;;
945	pc98)
946		basic_machine=i386-pc
947		;;
948	pc98-*)
949		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
950		;;
951	pentium | p5 | k5 | k6 | nexgen | viac3)
952		basic_machine=i586-pc
953		;;
954	pentiumpro | p6 | 6x86 | athlon | athlon_*)
955		basic_machine=i686-pc
956		;;
957	pentiumii | pentium2 | pentiumiii | pentium3)
958		basic_machine=i686-pc
959		;;
960	pentium4)
961		basic_machine=i786-pc
962		;;
963	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
964		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
965		;;
966	pentiumpro-* | p6-* | 6x86-* | athlon-*)
967		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
968		;;
969	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
970		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
971		;;
972	pentium4-*)
973		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
974		;;
975	pn)
976		basic_machine=pn-gould
977		;;
978	power)	basic_machine=power-ibm
979		;;
980	ppc | ppcbe)	basic_machine=powerpc-unknown
981		;;
982	ppc-* | ppcbe-*)
983		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
984		;;
985	ppcle | powerpclittle | ppc-le | powerpc-little)
986		basic_machine=powerpcle-unknown
987		;;
988	ppcle-* | powerpclittle-*)
989		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
990		;;
991	ppc64)	basic_machine=powerpc64-unknown
992		;;
993	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
994		;;
995	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
996		basic_machine=powerpc64le-unknown
997		;;
998	ppc64le-* | powerpc64little-*)
999		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
1000		;;
1001	ps2)
1002		basic_machine=i386-ibm
1003		;;
1004	pw32)
1005		basic_machine=i586-unknown
1006		os=-pw32
1007		;;
1008	rdos)
1009		basic_machine=i386-pc
1010		os=-rdos
1011		;;
1012	rom68k)
1013		basic_machine=m68k-rom68k
1014		os=-coff
1015		;;
1016	rm[46]00)
1017		basic_machine=mips-siemens
1018		;;
1019	rtpc | rtpc-*)
1020		basic_machine=romp-ibm
1021		;;
1022	s390 | s390-*)
1023		basic_machine=s390-ibm
1024		;;
1025	s390x | s390x-*)
1026		basic_machine=s390x-ibm
1027		;;
1028	sa29200)
1029		basic_machine=a29k-amd
1030		os=-udi
1031		;;
1032	sb1)
1033		basic_machine=mipsisa64sb1-unknown
1034		;;
1035	sb1el)
1036		basic_machine=mipsisa64sb1el-unknown
1037		;;
1038	sde)
1039		basic_machine=mipsisa32-sde
1040		os=-elf
1041		;;
1042	sei)
1043		basic_machine=mips-sei
1044		os=-seiux
1045		;;
1046	sequent)
1047		basic_machine=i386-sequent
1048		;;
1049	sh)
1050		basic_machine=sh-hitachi
1051		os=-hms
1052		;;
1053	sh5el)
1054		basic_machine=sh5le-unknown
1055		;;
1056	sh64)
1057		basic_machine=sh64-unknown
1058		;;
1059	sparclite-wrs | simso-wrs)
1060		basic_machine=sparclite-wrs
1061		os=-vxworks
1062		;;
1063	sps7)
1064		basic_machine=m68k-bull
1065		os=-sysv2
1066		;;
1067	spur)
1068		basic_machine=spur-unknown
1069		;;
1070	st2000)
1071		basic_machine=m68k-tandem
1072		;;
1073	stratus)
1074		basic_machine=i860-stratus
1075		os=-sysv4
1076		;;
1077	strongarm-* | thumb-*)
1078		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1079		;;
1080	sun2)
1081		basic_machine=m68000-sun
1082		;;
1083	sun2os3)
1084		basic_machine=m68000-sun
1085		os=-sunos3
1086		;;
1087	sun2os4)
1088		basic_machine=m68000-sun
1089		os=-sunos4
1090		;;
1091	sun3os3)
1092		basic_machine=m68k-sun
1093		os=-sunos3
1094		;;
1095	sun3os4)
1096		basic_machine=m68k-sun
1097		os=-sunos4
1098		;;
1099	sun4os3)
1100		basic_machine=sparc-sun
1101		os=-sunos3
1102		;;
1103	sun4os4)
1104		basic_machine=sparc-sun
1105		os=-sunos4
1106		;;
1107	sun4sol2)
1108		basic_machine=sparc-sun
1109		os=-solaris2
1110		;;
1111	sun3 | sun3-*)
1112		basic_machine=m68k-sun
1113		;;
1114	sun4)
1115		basic_machine=sparc-sun
1116		;;
1117	sun386 | sun386i | roadrunner)
1118		basic_machine=i386-sun
1119		;;
1120	sv1)
1121		basic_machine=sv1-cray
1122		os=-unicos
1123		;;
1124	symmetry)
1125		basic_machine=i386-sequent
1126		os=-dynix
1127		;;
1128	t3e)
1129		basic_machine=alphaev5-cray
1130		os=-unicos
1131		;;
1132	t90)
1133		basic_machine=t90-cray
1134		os=-unicos
1135		;;
1136	tile*)
1137		basic_machine=$basic_machine-unknown
1138		os=-linux-gnu
1139		;;
1140	tx39)
1141		basic_machine=mipstx39-unknown
1142		;;
1143	tx39el)
1144		basic_machine=mipstx39el-unknown
1145		;;
1146	toad1)
1147		basic_machine=pdp10-xkl
1148		os=-tops20
1149		;;
1150	tower | tower-32)
1151		basic_machine=m68k-ncr
1152		;;
1153	tpf)
1154		basic_machine=s390x-ibm
1155		os=-tpf
1156		;;
1157	udi29k)
1158		basic_machine=a29k-amd
1159		os=-udi
1160		;;
1161	ultra3)
1162		basic_machine=a29k-nyu
1163		os=-sym1
1164		;;
1165	v810 | necv810)
1166		basic_machine=v810-nec
1167		os=-none
1168		;;
1169	vaxv)
1170		basic_machine=vax-dec
1171		os=-sysv
1172		;;
1173	vms)
1174		basic_machine=vax-dec
1175		os=-vms
1176		;;
1177	vpp*|vx|vx-*)
1178		basic_machine=f301-fujitsu
1179		;;
1180	vxworks960)
1181		basic_machine=i960-wrs
1182		os=-vxworks
1183		;;
1184	vxworks68)
1185		basic_machine=m68k-wrs
1186		os=-vxworks
1187		;;
1188	vxworks29k)
1189		basic_machine=a29k-wrs
1190		os=-vxworks
1191		;;
1192	w65*)
1193		basic_machine=w65-wdc
1194		os=-none
1195		;;
1196	w89k-*)
1197		basic_machine=hppa1.1-winbond
1198		os=-proelf
1199		;;
1200	xbox)
1201		basic_machine=i686-pc
1202		os=-mingw32
1203		;;
1204	xps | xps100)
1205		basic_machine=xps100-honeywell
1206		;;
1207	xscale-* | xscalee[bl]-*)
1208		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1209		;;
1210	ymp)
1211		basic_machine=ymp-cray
1212		os=-unicos
1213		;;
1214	z8k-*-coff)
1215		basic_machine=z8k-unknown
1216		os=-sim
1217		;;
1218	z80-*-coff)
1219		basic_machine=z80-unknown
1220		os=-sim
1221		;;
1222	none)
1223		basic_machine=none-none
1224		os=-none
1225		;;
1226
1227# Here we handle the default manufacturer of certain CPU types.  It is in
1228# some cases the only manufacturer, in others, it is the most popular.
1229	w89k)
1230		basic_machine=hppa1.1-winbond
1231		;;
1232	op50n)
1233		basic_machine=hppa1.1-oki
1234		;;
1235	op60c)
1236		basic_machine=hppa1.1-oki
1237		;;
1238	romp)
1239		basic_machine=romp-ibm
1240		;;
1241	mmix)
1242		basic_machine=mmix-knuth
1243		;;
1244	rs6000)
1245		basic_machine=rs6000-ibm
1246		;;
1247	vax)
1248		basic_machine=vax-dec
1249		;;
1250	pdp10)
1251		# there are many clones, so DEC is not a safe bet
1252		basic_machine=pdp10-unknown
1253		;;
1254	pdp11)
1255		basic_machine=pdp11-dec
1256		;;
1257	we32k)
1258		basic_machine=we32k-att
1259		;;
1260	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1261		basic_machine=sh-unknown
1262		;;
1263	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1264		basic_machine=sparc-sun
1265		;;
1266	cydra)
1267		basic_machine=cydra-cydrome
1268		;;
1269	orion)
1270		basic_machine=orion-highlevel
1271		;;
1272	orion105)
1273		basic_machine=clipper-highlevel
1274		;;
1275	mac | mpw | mac-mpw)
1276		basic_machine=m68k-apple
1277		;;
1278	pmac | pmac-mpw)
1279		basic_machine=powerpc-apple
1280		;;
1281	*-unknown)
1282		# Make sure to match an already-canonicalized machine name.
1283		;;
1284	*)
1285		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1286		exit 1
1287		;;
1288esac
1289
1290# Here we canonicalize certain aliases for manufacturers.
1291case $basic_machine in
1292	*-digital*)
1293		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1294		;;
1295	*-commodore*)
1296		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1297		;;
1298	*)
1299		;;
1300esac
1301
1302# Decode manufacturer-specific aliases for certain operating systems.
1303
1304if [ x"$os" != x"" ]
1305then
1306case $os in
1307	# First match some system type aliases
1308	# that might get confused with valid system types.
1309	# -solaris* is a basic system type, with this one exception.
1310	-auroraux)
1311		os=-auroraux
1312		;;
1313	-solaris1 | -solaris1.*)
1314		os=`echo $os | sed -e 's|solaris1|sunos4|'`
1315		;;
1316	-solaris)
1317		os=-solaris2
1318		;;
1319	-svr4*)
1320		os=-sysv4
1321		;;
1322	-unixware*)
1323		os=-sysv4.2uw
1324		;;
1325	-gnu/linux*)
1326		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1327		;;
1328	# First accept the basic system types.
1329	# The portable systems comes first.
1330	# Each alternative MUST END IN A *, to match a version number.
1331	# -sysv* is not here because it comes later, after sysvr4.
1332	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1333	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1334	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1335	      | -sym* | -kopensolaris* \
1336	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1337	      | -aos* | -aros* \
1338	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1339	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1340	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1341	      | -openbsd* | -solidbsd* \
1342	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1343	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1344	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1345	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1346	      | -chorusos* | -chorusrdb* | -cegcc* \
1347	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1348	      | -mingw32* | -linux-gnu* | -linux-android* \
1349	      | -linux-newlib* | -linux-uclibc* \
1350	      | -uxpv* | -beos* | -mpeix* | -udk* \
1351	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1352	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1353	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1354	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1355	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1356	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1357	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -bitrig*)
1358	# Remember, each alternative MUST END IN *, to match a version number.
1359		;;
1360	-qnx*)
1361		case $basic_machine in
1362		    x86-* | i*86-*)
1363			;;
1364		    *)
1365			os=-nto$os
1366			;;
1367		esac
1368		;;
1369	-nto-qnx*)
1370		;;
1371	-nto*)
1372		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1373		;;
1374	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1375	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1376	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1377		;;
1378	-mac*)
1379		os=`echo $os | sed -e 's|mac|macos|'`
1380		;;
1381	-linux-dietlibc)
1382		os=-linux-dietlibc
1383		;;
1384	-linux*)
1385		os=`echo $os | sed -e 's|linux|linux-gnu|'`
1386		;;
1387	-sunos5*)
1388		os=`echo $os | sed -e 's|sunos5|solaris2|'`
1389		;;
1390	-sunos6*)
1391		os=`echo $os | sed -e 's|sunos6|solaris3|'`
1392		;;
1393	-opened*)
1394		os=-openedition
1395		;;
1396	-os400*)
1397		os=-os400
1398		;;
1399	-wince*)
1400		os=-wince
1401		;;
1402	-osfrose*)
1403		os=-osfrose
1404		;;
1405	-osf*)
1406		os=-osf
1407		;;
1408	-utek*)
1409		os=-bsd
1410		;;
1411	-dynix*)
1412		os=-bsd
1413		;;
1414	-acis*)
1415		os=-aos
1416		;;
1417	-atheos*)
1418		os=-atheos
1419		;;
1420	-syllable*)
1421		os=-syllable
1422		;;
1423	-386bsd)
1424		os=-bsd
1425		;;
1426	-ctix* | -uts*)
1427		os=-sysv
1428		;;
1429	-nova*)
1430		os=-rtmk-nova
1431		;;
1432	-ns2 )
1433		os=-nextstep2
1434		;;
1435	-nsk*)
1436		os=-nsk
1437		;;
1438	# Preserve the version number of sinix5.
1439	-sinix5.*)
1440		os=`echo $os | sed -e 's|sinix|sysv|'`
1441		;;
1442	-sinix*)
1443		os=-sysv4
1444		;;
1445	-tpf*)
1446		os=-tpf
1447		;;
1448	-triton*)
1449		os=-sysv3
1450		;;
1451	-oss*)
1452		os=-sysv3
1453		;;
1454	-svr4)
1455		os=-sysv4
1456		;;
1457	-svr3)
1458		os=-sysv3
1459		;;
1460	-sysvr4)
1461		os=-sysv4
1462		;;
1463	# This must come after -sysvr4.
1464	-sysv*)
1465		;;
1466	-ose*)
1467		os=-ose
1468		;;
1469	-es1800*)
1470		os=-ose
1471		;;
1472	-xenix)
1473		os=-xenix
1474		;;
1475	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1476		os=-mint
1477		;;
1478	-aros*)
1479		os=-aros
1480		;;
1481	-kaos*)
1482		os=-kaos
1483		;;
1484	-zvmoe)
1485		os=-zvmoe
1486		;;
1487	-dicos*)
1488		os=-dicos
1489		;;
1490	-nacl*)
1491		;;
1492	-ps4)
1493		;;
1494	-none)
1495		;;
1496	*)
1497		# Get rid of the `-' at the beginning of $os.
1498		os=`echo $os | sed 's/[^-]*-//'`
1499		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1500		exit 1
1501		;;
1502esac
1503else
1504
1505# Here we handle the default operating systems that come with various machines.
1506# The value should be what the vendor currently ships out the door with their
1507# machine or put another way, the most popular os provided with the machine.
1508
1509# Note that if you're going to try to match "-MANUFACTURER" here (say,
1510# "-sun"), then you have to tell the case statement up towards the top
1511# that MANUFACTURER isn't an operating system.  Otherwise, code above
1512# will signal an error saying that MANUFACTURER isn't an operating
1513# system, and we'll never get to this point.
1514
1515case $basic_machine in
1516	score-*)
1517		os=-elf
1518		;;
1519	spu-*)
1520		os=-elf
1521		;;
1522	*-acorn)
1523		os=-riscix1.2
1524		;;
1525	arm*-rebel)
1526		os=-linux
1527		;;
1528	arm*-semi)
1529		os=-aout
1530		;;
1531	c4x-* | tic4x-*)
1532		os=-coff
1533		;;
1534	tic54x-*)
1535		os=-coff
1536		;;
1537	tic55x-*)
1538		os=-coff
1539		;;
1540	tic6x-*)
1541		os=-coff
1542		;;
1543	# This must come before the *-dec entry.
1544	pdp10-*)
1545		os=-tops20
1546		;;
1547	pdp11-*)
1548		os=-none
1549		;;
1550	*-dec | vax-*)
1551		os=-ultrix4.2
1552		;;
1553	m68*-apollo)
1554		os=-domain
1555		;;
1556	i386-sun)
1557		os=-sunos4.0.2
1558		;;
1559	m68000-sun)
1560		os=-sunos3
1561		# This also exists in the configure program, but was not the
1562		# default.
1563		# os=-sunos4
1564		;;
1565	m68*-cisco)
1566		os=-aout
1567		;;
1568	mep-*)
1569		os=-elf
1570		;;
1571	mips*-cisco)
1572		os=-elf
1573		;;
1574	mips*-*)
1575		os=-elf
1576		;;
1577	or32-*)
1578		os=-coff
1579		;;
1580	*-tti)	# must be before sparc entry or we get the wrong os.
1581		os=-sysv3
1582		;;
1583	sparc-* | *-sun)
1584		os=-sunos4.1.1
1585		;;
1586	*-be)
1587		os=-beos
1588		;;
1589	*-haiku)
1590		os=-haiku
1591		;;
1592	*-ibm)
1593		os=-aix
1594		;;
1595	*-knuth)
1596		os=-mmixware
1597		;;
1598	*-wec)
1599		os=-proelf
1600		;;
1601	*-winbond)
1602		os=-proelf
1603		;;
1604	*-oki)
1605		os=-proelf
1606		;;
1607	*-hp)
1608		os=-hpux
1609		;;
1610	*-hitachi)
1611		os=-hiux
1612		;;
1613	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1614		os=-sysv
1615		;;
1616	*-cbm)
1617		os=-amigaos
1618		;;
1619	*-dg)
1620		os=-dgux
1621		;;
1622	*-dolphin)
1623		os=-sysv3
1624		;;
1625	m68k-ccur)
1626		os=-rtu
1627		;;
1628	m88k-omron*)
1629		os=-luna
1630		;;
1631	*-next )
1632		os=-nextstep
1633		;;
1634	*-sequent)
1635		os=-ptx
1636		;;
1637	*-crds)
1638		os=-unos
1639		;;
1640	*-ns)
1641		os=-genix
1642		;;
1643	i370-*)
1644		os=-mvs
1645		;;
1646	*-next)
1647		os=-nextstep3
1648		;;
1649	*-gould)
1650		os=-sysv
1651		;;
1652	*-highlevel)
1653		os=-bsd
1654		;;
1655	*-encore)
1656		os=-bsd
1657		;;
1658	*-sgi)
1659		os=-irix
1660		;;
1661	*-siemens)
1662		os=-sysv4
1663		;;
1664	*-masscomp)
1665		os=-rtu
1666		;;
1667	f30[01]-fujitsu | f700-fujitsu)
1668		os=-uxpv
1669		;;
1670	*-rom68k)
1671		os=-coff
1672		;;
1673	*-*bug)
1674		os=-coff
1675		;;
1676	*-apple)
1677		os=-macos
1678		;;
1679	*-atari*)
1680		os=-mint
1681		;;
1682	*)
1683		os=-none
1684		;;
1685esac
1686fi
1687
1688# Here we handle the case where we know the os, and the CPU type, but not the
1689# manufacturer.  We pick the logical manufacturer.
1690vendor=unknown
1691case $basic_machine in
1692	*-unknown)
1693		case $os in
1694			-riscix*)
1695				vendor=acorn
1696				;;
1697			-sunos*)
1698				vendor=sun
1699				;;
1700			-cnk*|-aix*)
1701				vendor=ibm
1702				;;
1703			-beos*)
1704				vendor=be
1705				;;
1706			-hpux*)
1707				vendor=hp
1708				;;
1709			-mpeix*)
1710				vendor=hp
1711				;;
1712			-hiux*)
1713				vendor=hitachi
1714				;;
1715			-unos*)
1716				vendor=crds
1717				;;
1718			-dgux*)
1719				vendor=dg
1720				;;
1721			-luna*)
1722				vendor=omron
1723				;;
1724			-genix*)
1725				vendor=ns
1726				;;
1727			-mvs* | -opened*)
1728				vendor=ibm
1729				;;
1730			-os400*)
1731				vendor=ibm
1732				;;
1733			-ptx*)
1734				vendor=sequent
1735				;;
1736			-tpf*)
1737				vendor=ibm
1738				;;
1739			-vxsim* | -vxworks* | -windiss*)
1740				vendor=wrs
1741				;;
1742			-aux*)
1743				vendor=apple
1744				;;
1745			-hms*)
1746				vendor=hitachi
1747				;;
1748			-mpw* | -macos*)
1749				vendor=apple
1750				;;
1751			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1752				vendor=atari
1753				;;
1754			-vos*)
1755				vendor=stratus
1756				;;
1757		esac
1758		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1759		;;
1760esac
1761
1762echo $basic_machine$os
1763exit
1764
1765# Local variables:
1766# eval: (add-hook 'write-file-hooks 'time-stamp)
1767# time-stamp-start: "timestamp='"
1768# time-stamp-format: "%:y-%02m-%02d"
1769# time-stamp-end: "'"
1770# End:
1771