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