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-08-18'
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 | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
263        | be32 | be64 \
264	| bfin \
265	| c4x | clipper \
266	| d10v | d30v | dlx | dsp16xx | dvp \
267	| epiphany \
268	| fido | fr30 | frv \
269	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
270	| hexagon \
271	| i370 | i860 | i960 | ia64 \
272	| ip2k | iq2000 \
273	| le32 | le64 \
274	| lm32 \
275	| m32c | m32r | m32rle | m68000 | m68k | m88k \
276	| maxq | mb | microblaze | mcore | mep | metag \
277	| mips | mipsbe | mipseb | mipsel | mipsle \
278	| mips16 \
279	| mips64 | mips64el \
280	| mips64octeon | mips64octeonel \
281	| mips64orion | mips64orionel \
282	| mips64r5900 | mips64r5900el \
283	| mips64vr | mips64vrel \
284	| mips64vr4100 | mips64vr4100el \
285	| mips64vr4300 | mips64vr4300el \
286	| mips64vr5000 | mips64vr5000el \
287	| mips64vr5900 | mips64vr5900el \
288	| mipsisa32 | mipsisa32el \
289	| mipsisa32r2 | mipsisa32r2el \
290	| mipsisa64 | mipsisa64el \
291	| mipsisa64r2 | mipsisa64r2el \
292	| mipsisa64sb1 | mipsisa64sb1el \
293	| mipsisa64sr71k | mipsisa64sr71kel \
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-* | microblaze-* \
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	mipsEE* | ee | ps2)
814		basic_machine=mips64r5900el-scei
815		case $os in
816		    -linux*)
817			;;
818		    *)
819			os=-elf
820			;;
821		esac
822		;;
823	iop)
824		basic_machine=mipsel-scei
825		os=-irx
826		;;
827	dvp)
828		basic_machine=dvp-scei
829		os=-elf
830		;;
831	mips3*-*)
832		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
833		;;
834	mips3*)
835		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
836		;;
837	monitor)
838		basic_machine=m68k-rom68k
839		os=-coff
840		;;
841	morphos)
842		basic_machine=powerpc-unknown
843		os=-morphos
844		;;
845	msdos)
846		basic_machine=i386-pc
847		os=-msdos
848		;;
849	ms1-*)
850		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
851		;;
852	msys)
853		basic_machine=i386-pc
854		os=-msys
855		;;
856	mvs)
857		basic_machine=i370-ibm
858		os=-mvs
859		;;
860	nacl)
861		basic_machine=le32-unknown
862		os=-nacl
863		;;
864	ncr3000)
865		basic_machine=i486-ncr
866		os=-sysv4
867		;;
868	netbsd386)
869		basic_machine=i386-unknown
870		os=-netbsd
871		;;
872	netwinder)
873		basic_machine=armv4l-rebel
874		os=-linux
875		;;
876	news | news700 | news800 | news900)
877		basic_machine=m68k-sony
878		os=-newsos
879		;;
880	news1000)
881		basic_machine=m68030-sony
882		os=-newsos
883		;;
884	news-3600 | risc-news)
885		basic_machine=mips-sony
886		os=-newsos
887		;;
888	necv70)
889		basic_machine=v70-nec
890		os=-sysv
891		;;
892	next | m*-next )
893		basic_machine=m68k-next
894		case $os in
895		    -nextstep* )
896			;;
897		    -ns2*)
898		      os=-nextstep2
899			;;
900		    *)
901		      os=-nextstep3
902			;;
903		esac
904		;;
905	nh3000)
906		basic_machine=m68k-harris
907		os=-cxux
908		;;
909	nh[45]000)
910		basic_machine=m88k-harris
911		os=-cxux
912		;;
913	nindy960)
914		basic_machine=i960-intel
915		os=-nindy
916		;;
917	mon960)
918		basic_machine=i960-intel
919		os=-mon960
920		;;
921	nonstopux)
922		basic_machine=mips-compaq
923		os=-nonstopux
924		;;
925	np1)
926		basic_machine=np1-gould
927		;;
928	neo-tandem)
929		basic_machine=neo-tandem
930		;;
931	nse-tandem)
932		basic_machine=nse-tandem
933		;;
934	nsr-tandem)
935		basic_machine=nsr-tandem
936		;;
937	op50n-* | op60c-*)
938		basic_machine=hppa1.1-oki
939		os=-proelf
940		;;
941	openrisc | openrisc-*)
942		basic_machine=or32-unknown
943		;;
944	os400)
945		basic_machine=powerpc-ibm
946		os=-os400
947		;;
948	OSE68000 | ose68000)
949		basic_machine=m68000-ericsson
950		os=-ose
951		;;
952	os68k)
953		basic_machine=m68k-none
954		os=-os68k
955		;;
956	pa-hitachi)
957		basic_machine=hppa1.1-hitachi
958		os=-hiuxwe2
959		;;
960	paragon)
961		basic_machine=i860-intel
962		os=-osf
963		;;
964	parisc)
965		basic_machine=hppa-unknown
966		os=-linux
967		;;
968	parisc-*)
969		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
970		os=-linux
971		;;
972	pbd)
973		basic_machine=sparc-tti
974		;;
975	pbb)
976		basic_machine=m68k-tti
977		;;
978	pc532 | pc532-*)
979		basic_machine=ns32k-pc532
980		;;
981	pc98)
982		basic_machine=i386-pc
983		;;
984	pc98-*)
985		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
986		;;
987	pentium | p5 | k5 | k6 | nexgen | viac3)
988		basic_machine=i586-pc
989		;;
990	pentiumpro | p6 | 6x86 | athlon | athlon_*)
991		basic_machine=i686-pc
992		;;
993	pentiumii | pentium2 | pentiumiii | pentium3)
994		basic_machine=i686-pc
995		;;
996	pentium4)
997		basic_machine=i786-pc
998		;;
999	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1000		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
1001		;;
1002	pentiumpro-* | p6-* | 6x86-* | athlon-*)
1003		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
1004		;;
1005	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1006		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
1007		;;
1008	pentium4-*)
1009		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
1010		;;
1011	pn)
1012		basic_machine=pn-gould
1013		;;
1014	power)	basic_machine=power-ibm
1015		;;
1016	ppc | ppcbe)	basic_machine=powerpc-unknown
1017		;;
1018	ppc-* | ppcbe-*)
1019		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
1020		;;
1021	ppcle | powerpclittle | ppc-le | powerpc-little)
1022		basic_machine=powerpcle-unknown
1023		;;
1024	ppcle-* | powerpclittle-*)
1025		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
1026		;;
1027	ppc64)	basic_machine=powerpc64-unknown
1028		;;
1029	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
1030		;;
1031	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
1032		basic_machine=powerpc64le-unknown
1033		;;
1034	ppc64le-* | powerpc64little-*)
1035		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
1036		;;
1037	ps2)
1038		basic_machine=i386-ibm
1039		;;
1040	pw32)
1041		basic_machine=i586-unknown
1042		os=-pw32
1043		;;
1044	rdos)
1045		basic_machine=i386-pc
1046		os=-rdos
1047		;;
1048	rom68k)
1049		basic_machine=m68k-rom68k
1050		os=-coff
1051		;;
1052	rm[46]00)
1053		basic_machine=mips-siemens
1054		;;
1055	rtpc | rtpc-*)
1056		basic_machine=romp-ibm
1057		;;
1058	s390 | s390-*)
1059		basic_machine=s390-ibm
1060		;;
1061	s390x | s390x-*)
1062		basic_machine=s390x-ibm
1063		;;
1064	sa29200)
1065		basic_machine=a29k-amd
1066		os=-udi
1067		;;
1068	sb1)
1069		basic_machine=mipsisa64sb1-unknown
1070		;;
1071	sb1el)
1072		basic_machine=mipsisa64sb1el-unknown
1073		;;
1074	sde)
1075		basic_machine=mipsisa32-sde
1076		os=-elf
1077		;;
1078	sei)
1079		basic_machine=mips-sei
1080		os=-seiux
1081		;;
1082	sequent)
1083		basic_machine=i386-sequent
1084		;;
1085	sh)
1086		basic_machine=sh-hitachi
1087		os=-hms
1088		;;
1089	sh5el)
1090		basic_machine=sh5le-unknown
1091		;;
1092	sh64)
1093		basic_machine=sh64-unknown
1094		;;
1095	sparclite-wrs | simso-wrs)
1096		basic_machine=sparclite-wrs
1097		os=-vxworks
1098		;;
1099	sps7)
1100		basic_machine=m68k-bull
1101		os=-sysv2
1102		;;
1103	spur)
1104		basic_machine=spur-unknown
1105		;;
1106	st2000)
1107		basic_machine=m68k-tandem
1108		;;
1109	stratus)
1110		basic_machine=i860-stratus
1111		os=-sysv4
1112		;;
1113	strongarm-* | thumb-*)
1114		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1115		;;
1116	sun2)
1117		basic_machine=m68000-sun
1118		;;
1119	sun2os3)
1120		basic_machine=m68000-sun
1121		os=-sunos3
1122		;;
1123	sun2os4)
1124		basic_machine=m68000-sun
1125		os=-sunos4
1126		;;
1127	sun3os3)
1128		basic_machine=m68k-sun
1129		os=-sunos3
1130		;;
1131	sun3os4)
1132		basic_machine=m68k-sun
1133		os=-sunos4
1134		;;
1135	sun4os3)
1136		basic_machine=sparc-sun
1137		os=-sunos3
1138		;;
1139	sun4os4)
1140		basic_machine=sparc-sun
1141		os=-sunos4
1142		;;
1143	sun4sol2)
1144		basic_machine=sparc-sun
1145		os=-solaris2
1146		;;
1147	sun3 | sun3-*)
1148		basic_machine=m68k-sun
1149		;;
1150	sun4)
1151		basic_machine=sparc-sun
1152		;;
1153	sun386 | sun386i | roadrunner)
1154		basic_machine=i386-sun
1155		;;
1156	sv1)
1157		basic_machine=sv1-cray
1158		os=-unicos
1159		;;
1160	symmetry)
1161		basic_machine=i386-sequent
1162		os=-dynix
1163		;;
1164	t3e)
1165		basic_machine=alphaev5-cray
1166		os=-unicos
1167		;;
1168	t90)
1169		basic_machine=t90-cray
1170		os=-unicos
1171		;;
1172	tile*)
1173		basic_machine=$basic_machine-unknown
1174		os=-linux-gnu
1175		;;
1176	tx39)
1177		basic_machine=mipstx39-unknown
1178		;;
1179	tx39el)
1180		basic_machine=mipstx39el-unknown
1181		;;
1182	toad1)
1183		basic_machine=pdp10-xkl
1184		os=-tops20
1185		;;
1186	tower | tower-32)
1187		basic_machine=m68k-ncr
1188		;;
1189	tpf)
1190		basic_machine=s390x-ibm
1191		os=-tpf
1192		;;
1193	udi29k)
1194		basic_machine=a29k-amd
1195		os=-udi
1196		;;
1197	ultra3)
1198		basic_machine=a29k-nyu
1199		os=-sym1
1200		;;
1201	v810 | necv810)
1202		basic_machine=v810-nec
1203		os=-none
1204		;;
1205	vaxv)
1206		basic_machine=vax-dec
1207		os=-sysv
1208		;;
1209	vms)
1210		basic_machine=vax-dec
1211		os=-vms
1212		;;
1213	vpp*|vx|vx-*)
1214		basic_machine=f301-fujitsu
1215		;;
1216	vxworks960)
1217		basic_machine=i960-wrs
1218		os=-vxworks
1219		;;
1220	vxworks68)
1221		basic_machine=m68k-wrs
1222		os=-vxworks
1223		;;
1224	vxworks29k)
1225		basic_machine=a29k-wrs
1226		os=-vxworks
1227		;;
1228	w65*)
1229		basic_machine=w65-wdc
1230		os=-none
1231		;;
1232	w89k-*)
1233		basic_machine=hppa1.1-winbond
1234		os=-proelf
1235		;;
1236	xbox)
1237		basic_machine=i686-pc
1238		os=-mingw32
1239		;;
1240	xps | xps100)
1241		basic_machine=xps100-honeywell
1242		;;
1243	xscale-* | xscalee[bl]-*)
1244		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1245		;;
1246	ymp)
1247		basic_machine=ymp-cray
1248		os=-unicos
1249		;;
1250	z8k-*-coff)
1251		basic_machine=z8k-unknown
1252		os=-sim
1253		;;
1254	z80-*-coff)
1255		basic_machine=z80-unknown
1256		os=-sim
1257		;;
1258	none)
1259		basic_machine=none-none
1260		os=-none
1261		;;
1262
1263# Here we handle the default manufacturer of certain CPU types.  It is in
1264# some cases the only manufacturer, in others, it is the most popular.
1265	w89k)
1266		basic_machine=hppa1.1-winbond
1267		;;
1268	op50n)
1269		basic_machine=hppa1.1-oki
1270		;;
1271	op60c)
1272		basic_machine=hppa1.1-oki
1273		;;
1274	romp)
1275		basic_machine=romp-ibm
1276		;;
1277	mmix)
1278		basic_machine=mmix-knuth
1279		;;
1280	rs6000)
1281		basic_machine=rs6000-ibm
1282		;;
1283	vax)
1284		basic_machine=vax-dec
1285		;;
1286	pdp10)
1287		# there are many clones, so DEC is not a safe bet
1288		basic_machine=pdp10-unknown
1289		;;
1290	pdp11)
1291		basic_machine=pdp11-dec
1292		;;
1293	we32k)
1294		basic_machine=we32k-att
1295		;;
1296	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1297		basic_machine=sh-unknown
1298		;;
1299	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1300		basic_machine=sparc-sun
1301		;;
1302	cydra)
1303		basic_machine=cydra-cydrome
1304		;;
1305	orion)
1306		basic_machine=orion-highlevel
1307		;;
1308	orion105)
1309		basic_machine=clipper-highlevel
1310		;;
1311	mac | mpw | mac-mpw)
1312		basic_machine=m68k-apple
1313		;;
1314	pmac | pmac-mpw)
1315		basic_machine=powerpc-apple
1316		;;
1317	*-unknown)
1318		# Make sure to match an already-canonicalized machine name.
1319		;;
1320	*)
1321		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1322		exit 1
1323		;;
1324esac
1325
1326# Here we canonicalize certain aliases for manufacturers.
1327case $basic_machine in
1328	*-digital*)
1329		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1330		;;
1331	*-commodore*)
1332		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1333		;;
1334	*)
1335		;;
1336esac
1337
1338# Decode manufacturer-specific aliases for certain operating systems.
1339
1340if [ x"$os" != x"" ]
1341then
1342case $os in
1343	# First match some system type aliases
1344	# that might get confused with valid system types.
1345	# -solaris* is a basic system type, with this one exception.
1346	-auroraux)
1347		os=-auroraux
1348		;;
1349	-solaris1 | -solaris1.*)
1350		os=`echo $os | sed -e 's|solaris1|sunos4|'`
1351		;;
1352	-solaris)
1353		os=-solaris2
1354		;;
1355	-svr4*)
1356		os=-sysv4
1357		;;
1358	-unixware*)
1359		os=-sysv4.2uw
1360		;;
1361	-gnu/linux*)
1362		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1363		;;
1364	# First accept the basic system types.
1365	# The portable systems comes first.
1366	# Each alternative MUST END IN A *, to match a version number.
1367	# -sysv* is not here because it comes later, after sysvr4.
1368	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1369	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1370	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1371	      | -sym* | -kopensolaris* \
1372	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1373	      | -aos* | -aros* \
1374	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1375	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1376	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1377	      | -bitrig* | -openbsd* | -solidbsd* \
1378	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1379	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1380	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1381	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1382	      | -chorusos* | -chorusrdb* | -cegcc* \
1383	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1384	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1385	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
1386	      | -uxpv* | -beos* | -mpeix* | -udk* \
1387	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1388	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1389	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -irx* \
1390	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1391	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1392	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1393	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1394	# Remember, each alternative MUST END IN *, to match a version number.
1395		;;
1396	-qnx*)
1397		case $basic_machine in
1398		    x86-* | i*86-*)
1399			;;
1400		    *)
1401			os=-nto$os
1402			;;
1403		esac
1404		;;
1405	-nto-qnx*)
1406		;;
1407	-nto*)
1408		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1409		;;
1410	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1411	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1412	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1413		;;
1414	-mac*)
1415		os=`echo $os | sed -e 's|mac|macos|'`
1416		;;
1417	-linux-dietlibc)
1418		os=-linux-dietlibc
1419		;;
1420	-linux*)
1421		os=`echo $os | sed -e 's|linux|linux-gnu|'`
1422		;;
1423	-sunos5*)
1424		os=`echo $os | sed -e 's|sunos5|solaris2|'`
1425		;;
1426	-sunos6*)
1427		os=`echo $os | sed -e 's|sunos6|solaris3|'`
1428		;;
1429	-opened*)
1430		os=-openedition
1431		;;
1432	-os400*)
1433		os=-os400
1434		;;
1435	-wince*)
1436		os=-wince
1437		;;
1438	-osfrose*)
1439		os=-osfrose
1440		;;
1441	-osf*)
1442		os=-osf
1443		;;
1444	-utek*)
1445		os=-bsd
1446		;;
1447	-dynix*)
1448		os=-bsd
1449		;;
1450	-acis*)
1451		os=-aos
1452		;;
1453	-atheos*)
1454		os=-atheos
1455		;;
1456	-syllable*)
1457		os=-syllable
1458		;;
1459	-386bsd)
1460		os=-bsd
1461		;;
1462	-ctix* | -uts*)
1463		os=-sysv
1464		;;
1465	-nova*)
1466		os=-rtmk-nova
1467		;;
1468	-ns2 )
1469		os=-nextstep2
1470		;;
1471	-nsk*)
1472		os=-nsk
1473		;;
1474	# Preserve the version number of sinix5.
1475	-sinix5.*)
1476		os=`echo $os | sed -e 's|sinix|sysv|'`
1477		;;
1478	-sinix*)
1479		os=-sysv4
1480		;;
1481	-tpf*)
1482		os=-tpf
1483		;;
1484	-triton*)
1485		os=-sysv3
1486		;;
1487	-oss*)
1488		os=-sysv3
1489		;;
1490	-svr4)
1491		os=-sysv4
1492		;;
1493	-svr3)
1494		os=-sysv3
1495		;;
1496	-sysvr4)
1497		os=-sysv4
1498		;;
1499	# This must come after -sysvr4.
1500	-sysv*)
1501		;;
1502	-ose*)
1503		os=-ose
1504		;;
1505	-es1800*)
1506		os=-ose
1507		;;
1508	-xenix)
1509		os=-xenix
1510		;;
1511	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1512		os=-mint
1513		;;
1514	-aros*)
1515		os=-aros
1516		;;
1517	-kaos*)
1518		os=-kaos
1519		;;
1520	-zvmoe)
1521		os=-zvmoe
1522		;;
1523	-dicos*)
1524		os=-dicos
1525		;;
1526	-nacl*)
1527		;;
1528	-none)
1529		;;
1530	*)
1531		# Get rid of the `-' at the beginning of $os.
1532		os=`echo $os | sed 's/[^-]*-//'`
1533		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1534		exit 1
1535		;;
1536esac
1537else
1538
1539# Here we handle the default operating systems that come with various machines.
1540# The value should be what the vendor currently ships out the door with their
1541# machine or put another way, the most popular os provided with the machine.
1542
1543# Note that if you're going to try to match "-MANUFACTURER" here (say,
1544# "-sun"), then you have to tell the case statement up towards the top
1545# that MANUFACTURER isn't an operating system.  Otherwise, code above
1546# will signal an error saying that MANUFACTURER isn't an operating
1547# system, and we'll never get to this point.
1548
1549case $basic_machine in
1550	score-*)
1551		os=-elf
1552		;;
1553	spu-*)
1554		os=-elf
1555		;;
1556	*-acorn)
1557		os=-riscix1.2
1558		;;
1559	arm*-rebel)
1560		os=-linux
1561		;;
1562	arm*-semi)
1563		os=-aout
1564		;;
1565	c4x-* | tic4x-*)
1566		os=-coff
1567		;;
1568	hexagon-*)
1569		os=-elf
1570		;;
1571	tic54x-*)
1572		os=-coff
1573		;;
1574	tic55x-*)
1575		os=-coff
1576		;;
1577	tic6x-*)
1578		os=-coff
1579		;;
1580	# This must come before the *-dec entry.
1581	pdp10-*)
1582		os=-tops20
1583		;;
1584	pdp11-*)
1585		os=-none
1586		;;
1587	*-dec | vax-*)
1588		os=-ultrix4.2
1589		;;
1590	m68*-apollo)
1591		os=-domain
1592		;;
1593	i386-sun)
1594		os=-sunos4.0.2
1595		;;
1596	m68000-sun)
1597		os=-sunos3
1598		;;
1599	m68*-cisco)
1600		os=-aout
1601		;;
1602	mep-*)
1603		os=-elf
1604		;;
1605	mips*-cisco)
1606		os=-elf
1607		;;
1608	mips*-*)
1609		os=-elf
1610		;;
1611	or32-*)
1612		os=-coff
1613		;;
1614	*-tti)	# must be before sparc entry or we get the wrong os.
1615		os=-sysv3
1616		;;
1617	sparc-* | *-sun)
1618		os=-sunos4.1.1
1619		;;
1620	*-be)
1621		os=-beos
1622		;;
1623	*-haiku)
1624		os=-haiku
1625		;;
1626	*-ibm)
1627		os=-aix
1628		;;
1629	*-knuth)
1630		os=-mmixware
1631		;;
1632	*-wec)
1633		os=-proelf
1634		;;
1635	*-winbond)
1636		os=-proelf
1637		;;
1638	*-oki)
1639		os=-proelf
1640		;;
1641	*-hp)
1642		os=-hpux
1643		;;
1644	*-hitachi)
1645		os=-hiux
1646		;;
1647	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1648		os=-sysv
1649		;;
1650	*-cbm)
1651		os=-amigaos
1652		;;
1653	*-dg)
1654		os=-dgux
1655		;;
1656	*-dolphin)
1657		os=-sysv3
1658		;;
1659	m68k-ccur)
1660		os=-rtu
1661		;;
1662	m88k-omron*)
1663		os=-luna
1664		;;
1665	*-next )
1666		os=-nextstep
1667		;;
1668	*-sequent)
1669		os=-ptx
1670		;;
1671	*-crds)
1672		os=-unos
1673		;;
1674	*-ns)
1675		os=-genix
1676		;;
1677	i370-*)
1678		os=-mvs
1679		;;
1680	*-next)
1681		os=-nextstep3
1682		;;
1683	*-gould)
1684		os=-sysv
1685		;;
1686	*-highlevel)
1687		os=-bsd
1688		;;
1689	*-encore)
1690		os=-bsd
1691		;;
1692	*-sgi)
1693		os=-irix
1694		;;
1695	*-siemens)
1696		os=-sysv4
1697		;;
1698	*-masscomp)
1699		os=-rtu
1700		;;
1701	f30[01]-fujitsu | f700-fujitsu)
1702		os=-uxpv
1703		;;
1704	*-rom68k)
1705		os=-coff
1706		;;
1707	*-*bug)
1708		os=-coff
1709		;;
1710	*-apple)
1711		os=-macos
1712		;;
1713	*-atari*)
1714		os=-mint
1715		;;
1716	*)
1717		os=-none
1718		;;
1719esac
1720fi
1721
1722# Here we handle the case where we know the os, and the CPU type, but not the
1723# manufacturer.  We pick the logical manufacturer.
1724vendor=unknown
1725case $basic_machine in
1726	*-unknown)
1727		case $os in
1728			-riscix*)
1729				vendor=acorn
1730				;;
1731			-sunos*)
1732				vendor=sun
1733				;;
1734			-cnk*|-aix*)
1735				vendor=ibm
1736				;;
1737			-beos*)
1738				vendor=be
1739				;;
1740			-hpux*)
1741				vendor=hp
1742				;;
1743			-mpeix*)
1744				vendor=hp
1745				;;
1746			-hiux*)
1747				vendor=hitachi
1748				;;
1749			-unos*)
1750				vendor=crds
1751				;;
1752			-dgux*)
1753				vendor=dg
1754				;;
1755			-luna*)
1756				vendor=omron
1757				;;
1758			-genix*)
1759				vendor=ns
1760				;;
1761			-mvs* | -opened*)
1762				vendor=ibm
1763				;;
1764			-os400*)
1765				vendor=ibm
1766				;;
1767			-ptx*)
1768				vendor=sequent
1769				;;
1770			-tpf*)
1771				vendor=ibm
1772				;;
1773			-vxsim* | -vxworks* | -windiss*)
1774				vendor=wrs
1775				;;
1776			-aux*)
1777				vendor=apple
1778				;;
1779			-hms*)
1780				vendor=hitachi
1781				;;
1782			-mpw* | -macos*)
1783				vendor=apple
1784				;;
1785			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1786				vendor=atari
1787				;;
1788			-vos*)
1789				vendor=stratus
1790				;;
1791		esac
1792		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1793		;;
1794esac
1795
1796echo $basic_machine$os
1797exit
1798
1799# Local variables:
1800# eval: (add-hook 'write-file-hooks 'time-stamp)
1801# time-stamp-start: "timestamp='"
1802# time-stamp-format: "%:y-%02m-%02d"
1803# time-stamp-end: "'"
1804# End:
1805