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