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