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