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