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