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