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