config.sub revision 300346ae
1126a8a12Smrg#! /bin/sh
2126a8a12Smrg# Configuration validation subroutine script.
3300346aeSmrg#   Copyright 1992-2018 Free Software Foundation, Inc.
4126a8a12Smrg
5300346aeSmrgtimestamp='2018-02-22'
6126a8a12Smrg
70a6b08f8Smrg# This file is free software; you can redistribute it and/or modify it
80a6b08f8Smrg# under the terms of the GNU General Public License as published by
90a6b08f8Smrg# the Free Software Foundation; either version 3 of the License, or
10126a8a12Smrg# (at your option) any later version.
11126a8a12Smrg#
120a6b08f8Smrg# This program is distributed in the hope that it will be useful, but
130a6b08f8Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
140a6b08f8Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
150a6b08f8Smrg# General Public License for more details.
16126a8a12Smrg#
17126a8a12Smrg# You should have received a copy of the GNU General Public License
18300346aeSmrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
19126a8a12Smrg#
20126a8a12Smrg# As a special exception to the GNU General Public License, if you
21126a8a12Smrg# distribute this file as part of a program that contains a
22126a8a12Smrg# configuration script generated by Autoconf, you may include it under
230a6b08f8Smrg# the same distribution terms that you use for the rest of that
240a6b08f8Smrg# program.  This Exception is an additional permission under section 7
250a6b08f8Smrg# of the GNU General Public License, version 3 ("GPLv3").
26126a8a12Smrg
27126a8a12Smrg
28300346aeSmrg# Please send patches to <config-patches@gnu.org>.
29126a8a12Smrg#
30126a8a12Smrg# Configuration subroutine to validate and canonicalize a configuration type.
31126a8a12Smrg# Supply the specified configuration type as an argument.
32126a8a12Smrg# If it is invalid, we print an error message on stderr and exit with code 1.
33126a8a12Smrg# Otherwise, we print the canonical config type on stdout and succeed.
34126a8a12Smrg
35555991fdSmrg# You can get the latest version of this script from:
36300346aeSmrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
37555991fdSmrg
38126a8a12Smrg# This file is supposed to be the same for all GNU packages
39126a8a12Smrg# and recognize all the CPU types, system types and aliases
40126a8a12Smrg# that are meaningful with *any* GNU software.
41126a8a12Smrg# Each package is responsible for reporting which valid configurations
42126a8a12Smrg# it does not support.  The user should be able to distinguish
43126a8a12Smrg# a failure to support a valid configuration from a meaningless
44126a8a12Smrg# configuration.
45126a8a12Smrg
46126a8a12Smrg# The goal of this file is to map all the various variations of a given
47126a8a12Smrg# machine specification into a single specification in the form:
48126a8a12Smrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
49126a8a12Smrg# or in some cases, the newer four-part form:
50126a8a12Smrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
51126a8a12Smrg# It is wrong to echo any other type of specification.
52126a8a12Smrg
53126a8a12Smrgme=`echo "$0" | sed -e 's,.*/,,'`
54126a8a12Smrg
55126a8a12Smrgusage="\
56300346aeSmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
57126a8a12Smrg
58126a8a12SmrgCanonicalize a configuration name.
59126a8a12Smrg
60300346aeSmrgOptions:
61126a8a12Smrg  -h, --help         print this help, then exit
62126a8a12Smrg  -t, --time-stamp   print date of last modification, then exit
63126a8a12Smrg  -v, --version      print version number, then exit
64126a8a12Smrg
65126a8a12SmrgReport bugs and patches to <config-patches@gnu.org>."
66126a8a12Smrg
67126a8a12Smrgversion="\
68126a8a12SmrgGNU config.sub ($timestamp)
69126a8a12Smrg
70300346aeSmrgCopyright 1992-2018 Free Software Foundation, Inc.
71126a8a12Smrg
72126a8a12SmrgThis is free software; see the source for copying conditions.  There is NO
73126a8a12Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
74126a8a12Smrg
75126a8a12Smrghelp="
76126a8a12SmrgTry \`$me --help' for more information."
77126a8a12Smrg
78126a8a12Smrg# Parse command line
79126a8a12Smrgwhile test $# -gt 0 ; do
80126a8a12Smrg  case $1 in
81126a8a12Smrg    --time-stamp | --time* | -t )
82126a8a12Smrg       echo "$timestamp" ; exit ;;
83126a8a12Smrg    --version | -v )
84126a8a12Smrg       echo "$version" ; exit ;;
85126a8a12Smrg    --help | --h* | -h )
86126a8a12Smrg       echo "$usage"; exit ;;
87126a8a12Smrg    -- )     # Stop option processing
88126a8a12Smrg       shift; break ;;
89126a8a12Smrg    - )	# Use stdin as input.
90126a8a12Smrg       break ;;
91126a8a12Smrg    -* )
92126a8a12Smrg       echo "$me: invalid option $1$help"
93126a8a12Smrg       exit 1 ;;
94126a8a12Smrg
95126a8a12Smrg    *local*)
96126a8a12Smrg       # First pass through any local machine types.
97300346aeSmrg       echo "$1"
98126a8a12Smrg       exit ;;
99126a8a12Smrg
100126a8a12Smrg    * )
101126a8a12Smrg       break ;;
102126a8a12Smrg  esac
103126a8a12Smrgdone
104126a8a12Smrg
105126a8a12Smrgcase $# in
106126a8a12Smrg 0) echo "$me: missing argument$help" >&2
107126a8a12Smrg    exit 1;;
108126a8a12Smrg 1) ;;
109126a8a12Smrg *) echo "$me: too many arguments$help" >&2
110126a8a12Smrg    exit 1;;
111126a8a12Smrgesac
112126a8a12Smrg
113126a8a12Smrg# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
114126a8a12Smrg# Here we must recognize all the valid KERNEL-OS combinations.
115300346aeSmrgmaybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
116126a8a12Smrgcase $maybe_os in
117555991fdSmrg  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
1180a6b08f8Smrg  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
119300346aeSmrg  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
120300346aeSmrg  kopensolaris*-gnu* | cloudabi*-eabi* | \
121126a8a12Smrg  storm-chaos* | os2-emx* | rtmk-nova*)
122126a8a12Smrg    os=-$maybe_os
123300346aeSmrg    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
124126a8a12Smrg    ;;
1250a6b08f8Smrg  android-linux)
1260a6b08f8Smrg    os=-linux-android
127300346aeSmrg    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
1280a6b08f8Smrg    ;;
129126a8a12Smrg  *)
130300346aeSmrg    basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
131300346aeSmrg    if [ "$basic_machine" != "$1" ]
132300346aeSmrg    then os=`echo "$1" | sed 's/.*-/-/'`
133126a8a12Smrg    else os=; fi
134126a8a12Smrg    ;;
135126a8a12Smrgesac
136126a8a12Smrg
137126a8a12Smrg### Let's recognize common machines as not being operating systems so
138126a8a12Smrg### that things like config.sub decstation-3100 work.  We also
139126a8a12Smrg### recognize some manufacturers as not being operating systems, so we
140126a8a12Smrg### can provide default operating systems below.
141126a8a12Smrgcase $os in
142126a8a12Smrg	-sun*os*)
143126a8a12Smrg		# Prevent following clause from handling this invalid input.
144126a8a12Smrg		;;
145126a8a12Smrg	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
146126a8a12Smrg	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
147126a8a12Smrg	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
148126a8a12Smrg	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
149126a8a12Smrg	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
150126a8a12Smrg	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
1510a6b08f8Smrg	-apple | -axis | -knuth | -cray | -microblaze*)
152126a8a12Smrg		os=
153126a8a12Smrg		basic_machine=$1
154126a8a12Smrg		;;
1550a6b08f8Smrg	-bluegene*)
1560a6b08f8Smrg		os=-cnk
157555991fdSmrg		;;
158126a8a12Smrg	-sim | -cisco | -oki | -wec | -winbond)
159126a8a12Smrg		os=
160126a8a12Smrg		basic_machine=$1
161126a8a12Smrg		;;
162126a8a12Smrg	-scout)
163126a8a12Smrg		;;
164126a8a12Smrg	-wrs)
165126a8a12Smrg		os=-vxworks
166126a8a12Smrg		basic_machine=$1
167126a8a12Smrg		;;
168126a8a12Smrg	-chorusos*)
169126a8a12Smrg		os=-chorusos
170126a8a12Smrg		basic_machine=$1
171126a8a12Smrg		;;
1720a6b08f8Smrg	-chorusrdb)
1730a6b08f8Smrg		os=-chorusrdb
174126a8a12Smrg		basic_machine=$1
1750a6b08f8Smrg		;;
176126a8a12Smrg	-hiux*)
177126a8a12Smrg		os=-hiuxwe2
178126a8a12Smrg		;;
179126a8a12Smrg	-sco6)
180126a8a12Smrg		os=-sco5v6
181300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
182126a8a12Smrg		;;
183126a8a12Smrg	-sco5)
184126a8a12Smrg		os=-sco3.2v5
185300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
186126a8a12Smrg		;;
187126a8a12Smrg	-sco4)
188126a8a12Smrg		os=-sco3.2v4
189300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
190126a8a12Smrg		;;
191126a8a12Smrg	-sco3.2.[4-9]*)
192126a8a12Smrg		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
193300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
194126a8a12Smrg		;;
195126a8a12Smrg	-sco3.2v[4-9]*)
196126a8a12Smrg		# Don't forget version if it is 3.2v4 or newer.
197300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
198126a8a12Smrg		;;
199126a8a12Smrg	-sco5v6*)
200126a8a12Smrg		# Don't forget version if it is 3.2v4 or newer.
201300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
202126a8a12Smrg		;;
203126a8a12Smrg	-sco*)
204126a8a12Smrg		os=-sco3.2v2
205300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
206126a8a12Smrg		;;
207126a8a12Smrg	-udk*)
208300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
209126a8a12Smrg		;;
210126a8a12Smrg	-isc)
211126a8a12Smrg		os=-isc2.2
212300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
213126a8a12Smrg		;;
214126a8a12Smrg	-clix*)
215126a8a12Smrg		basic_machine=clipper-intergraph
216126a8a12Smrg		;;
217126a8a12Smrg	-isc*)
218300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
219126a8a12Smrg		;;
2200a6b08f8Smrg	-lynx*178)
2210a6b08f8Smrg		os=-lynxos178
2220a6b08f8Smrg		;;
2230a6b08f8Smrg	-lynx*5)
2240a6b08f8Smrg		os=-lynxos5
2250a6b08f8Smrg		;;
226126a8a12Smrg	-lynx*)
227126a8a12Smrg		os=-lynxos
228126a8a12Smrg		;;
229126a8a12Smrg	-ptx*)
230300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
231126a8a12Smrg		;;
232126a8a12Smrg	-psos*)
233126a8a12Smrg		os=-psos
234126a8a12Smrg		;;
235126a8a12Smrg	-mint | -mint[0-9]*)
236126a8a12Smrg		basic_machine=m68k-atari
237126a8a12Smrg		os=-mint
238126a8a12Smrg		;;
239126a8a12Smrgesac
240126a8a12Smrg
241126a8a12Smrg# Decode aliases for certain CPU-COMPANY combinations.
242126a8a12Smrgcase $basic_machine in
243126a8a12Smrg	# Recognize the basic CPU types without company name.
244126a8a12Smrg	# Some are omitted here because they have special meanings below.
245126a8a12Smrg	1750a | 580 \
246126a8a12Smrg	| a29k \
2470a6b08f8Smrg	| aarch64 | aarch64_be \
248126a8a12Smrg	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
249126a8a12Smrg	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
250126a8a12Smrg	| am33_2.0 \
2510a6b08f8Smrg	| arc | arceb \
2520a6b08f8Smrg	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
2530a6b08f8Smrg	| avr | avr32 \
254300346aeSmrg	| ba \
2550a6b08f8Smrg	| be32 | be64 \
256126a8a12Smrg	| bfin \
257300346aeSmrg	| c4x | c8051 | clipper \
258555991fdSmrg	| d10v | d30v | dlx | dsp16xx \
259300346aeSmrg	| e2k | epiphany \
260300346aeSmrg	| fido | fr30 | frv | ft32 \
261126a8a12Smrg	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
2620a6b08f8Smrg	| hexagon \
263300346aeSmrg	| i370 | i860 | i960 | ia16 | ia64 \
264126a8a12Smrg	| ip2k | iq2000 \
265300346aeSmrg	| k1om \
2660a6b08f8Smrg	| le32 | le64 \
267d656433aSmrg	| lm32 \
268d656433aSmrg	| m32c | m32r | m32rle | m68000 | m68k | m88k \
2690a6b08f8Smrg	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
270126a8a12Smrg	| mips | mipsbe | mipseb | mipsel | mipsle \
271126a8a12Smrg	| mips16 \
272126a8a12Smrg	| mips64 | mips64el \
273d656433aSmrg	| mips64octeon | mips64octeonel \
274126a8a12Smrg	| mips64orion | mips64orionel \
275d656433aSmrg	| mips64r5900 | mips64r5900el \
276d656433aSmrg	| mips64vr | mips64vrel \
277126a8a12Smrg	| mips64vr4100 | mips64vr4100el \
278126a8a12Smrg	| mips64vr4300 | mips64vr4300el \
279126a8a12Smrg	| mips64vr5000 | mips64vr5000el \
280126a8a12Smrg	| mips64vr5900 | mips64vr5900el \
281126a8a12Smrg	| mipsisa32 | mipsisa32el \
282126a8a12Smrg	| mipsisa32r2 | mipsisa32r2el \
283300346aeSmrg	| mipsisa32r6 | mipsisa32r6el \
284126a8a12Smrg	| mipsisa64 | mipsisa64el \
285126a8a12Smrg	| mipsisa64r2 | mipsisa64r2el \
286300346aeSmrg	| mipsisa64r6 | mipsisa64r6el \
287126a8a12Smrg	| mipsisa64sb1 | mipsisa64sb1el \
288126a8a12Smrg	| mipsisa64sr71k | mipsisa64sr71kel \
2890a6b08f8Smrg	| mipsr5900 | mipsr5900el \
290126a8a12Smrg	| mipstx39 | mipstx39el \
291126a8a12Smrg	| mn10200 | mn10300 \
292555991fdSmrg	| moxie \
293126a8a12Smrg	| mt \
294126a8a12Smrg	| msp430 \
295555991fdSmrg	| nds32 | nds32le | nds32be \
2960a6b08f8Smrg	| nios | nios2 | nios2eb | nios2el \
297126a8a12Smrg	| ns16k | ns32k \
298300346aeSmrg	| open8 | or1k | or1knd | or32 \
299300346aeSmrg	| pdp10 | pj | pjl \
3000a6b08f8Smrg	| powerpc | powerpc64 | powerpc64le | powerpcle \
301300346aeSmrg	| pru \
302126a8a12Smrg	| pyramid \
303300346aeSmrg	| riscv32 | riscv64 \
3040a6b08f8Smrg	| rl78 | rx \
305d656433aSmrg	| score \
306300346aeSmrg	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
307126a8a12Smrg	| sh64 | sh64le \
308d656433aSmrg	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
309d656433aSmrg	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
3100a6b08f8Smrg	| spu \
3110a6b08f8Smrg	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
312555991fdSmrg	| ubicom32 \
3130a6b08f8Smrg	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
314300346aeSmrg	| visium \
315300346aeSmrg	| wasm32 \
3160a6b08f8Smrg	| x86 | xc16x | xstormy16 | xtensa \
317d656433aSmrg	| z8k | z80)
318126a8a12Smrg		basic_machine=$basic_machine-unknown
319126a8a12Smrg		;;
320555991fdSmrg	c54x)
321555991fdSmrg		basic_machine=tic54x-unknown
322555991fdSmrg		;;
323555991fdSmrg	c55x)
324555991fdSmrg		basic_machine=tic55x-unknown
325555991fdSmrg		;;
326555991fdSmrg	c6x)
327555991fdSmrg		basic_machine=tic6x-unknown
328555991fdSmrg		;;
329300346aeSmrg	leon|leon[3-9])
330300346aeSmrg		basic_machine=sparc-$basic_machine
331300346aeSmrg		;;
332300346aeSmrg	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
333126a8a12Smrg		basic_machine=$basic_machine-unknown
334126a8a12Smrg		os=-none
335126a8a12Smrg		;;
336300346aeSmrg	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
337126a8a12Smrg		;;
338126a8a12Smrg	ms1)
339126a8a12Smrg		basic_machine=mt-unknown
340126a8a12Smrg		;;
341126a8a12Smrg
3420a6b08f8Smrg	strongarm | thumb | xscale)
3430a6b08f8Smrg		basic_machine=arm-unknown
3440a6b08f8Smrg		;;
3450a6b08f8Smrg	xgate)
3460a6b08f8Smrg		basic_machine=$basic_machine-unknown
3470a6b08f8Smrg		os=-none
3480a6b08f8Smrg		;;
3490a6b08f8Smrg	xscaleeb)
3500a6b08f8Smrg		basic_machine=armeb-unknown
3510a6b08f8Smrg		;;
3520a6b08f8Smrg
3530a6b08f8Smrg	xscaleel)
3540a6b08f8Smrg		basic_machine=armel-unknown
3550a6b08f8Smrg		;;
3560a6b08f8Smrg
357126a8a12Smrg	# We use `pc' rather than `unknown'
358126a8a12Smrg	# because (1) that's what they normally are, and
359126a8a12Smrg	# (2) the word "unknown" tends to confuse beginning users.
360126a8a12Smrg	i*86 | x86_64)
361126a8a12Smrg	  basic_machine=$basic_machine-pc
362126a8a12Smrg	  ;;
363126a8a12Smrg	# Object if more than one company name word.
364126a8a12Smrg	*-*-*)
365300346aeSmrg		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
366126a8a12Smrg		exit 1
367126a8a12Smrg		;;
368126a8a12Smrg	# Recognize the basic CPU types with company name.
369126a8a12Smrg	580-* \
370126a8a12Smrg	| a29k-* \
3710a6b08f8Smrg	| aarch64-* | aarch64_be-* \
372126a8a12Smrg	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
373126a8a12Smrg	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
3740a6b08f8Smrg	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
375126a8a12Smrg	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
376d656433aSmrg	| avr-* | avr32-* \
377300346aeSmrg	| ba-* \
3780a6b08f8Smrg	| be32-* | be64-* \
379126a8a12Smrg	| bfin-* | bs2000-* \
380555991fdSmrg	| c[123]* | c30-* | [cjt]90-* | c4x-* \
381300346aeSmrg	| c8051-* | clipper-* | craynv-* | cydra-* \
382126a8a12Smrg	| d10v-* | d30v-* | dlx-* \
383300346aeSmrg	| e2k-* | elxsi-* \
384d656433aSmrg	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
385126a8a12Smrg	| h8300-* | h8500-* \
386126a8a12Smrg	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
3870a6b08f8Smrg	| hexagon-* \
388300346aeSmrg	| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
389126a8a12Smrg	| ip2k-* | iq2000-* \
390300346aeSmrg	| k1om-* \
3910a6b08f8Smrg	| le32-* | le64-* \
392d656433aSmrg	| lm32-* \
393d656433aSmrg	| m32c-* | m32r-* | m32rle-* \
394126a8a12Smrg	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
3950a6b08f8Smrg	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
3960a6b08f8Smrg	| microblaze-* | microblazeel-* \
397126a8a12Smrg	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
398126a8a12Smrg	| mips16-* \
399126a8a12Smrg	| mips64-* | mips64el-* \
400d656433aSmrg	| mips64octeon-* | mips64octeonel-* \
401126a8a12Smrg	| mips64orion-* | mips64orionel-* \
402d656433aSmrg	| mips64r5900-* | mips64r5900el-* \
403d656433aSmrg	| mips64vr-* | mips64vrel-* \
404126a8a12Smrg	| mips64vr4100-* | mips64vr4100el-* \
405126a8a12Smrg	| mips64vr4300-* | mips64vr4300el-* \
406126a8a12Smrg	| mips64vr5000-* | mips64vr5000el-* \
407126a8a12Smrg	| mips64vr5900-* | mips64vr5900el-* \
408126a8a12Smrg	| mipsisa32-* | mipsisa32el-* \
409126a8a12Smrg	| mipsisa32r2-* | mipsisa32r2el-* \
410300346aeSmrg	| mipsisa32r6-* | mipsisa32r6el-* \
411126a8a12Smrg	| mipsisa64-* | mipsisa64el-* \
412126a8a12Smrg	| mipsisa64r2-* | mipsisa64r2el-* \
413300346aeSmrg	| mipsisa64r6-* | mipsisa64r6el-* \
414126a8a12Smrg	| mipsisa64sb1-* | mipsisa64sb1el-* \
415126a8a12Smrg	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
4160a6b08f8Smrg	| mipsr5900-* | mipsr5900el-* \
417126a8a12Smrg	| mipstx39-* | mipstx39el-* \
418126a8a12Smrg	| mmix-* \
419126a8a12Smrg	| mt-* \
420126a8a12Smrg	| msp430-* \
421555991fdSmrg	| nds32-* | nds32le-* | nds32be-* \
4220a6b08f8Smrg	| nios-* | nios2-* | nios2eb-* | nios2el-* \
423126a8a12Smrg	| none-* | np1-* | ns16k-* | ns32k-* \
4240a6b08f8Smrg	| open8-* \
425300346aeSmrg	| or1k*-* \
426126a8a12Smrg	| orion-* \
427126a8a12Smrg	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
4280a6b08f8Smrg	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
429300346aeSmrg	| pru-* \
430126a8a12Smrg	| pyramid-* \
431300346aeSmrg	| riscv32-* | riscv64-* \
4320a6b08f8Smrg	| rl78-* | romp-* | rs6000-* | rx-* \
433d656433aSmrg	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
434126a8a12Smrg	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
435d656433aSmrg	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
436126a8a12Smrg	| sparclite-* \
437300346aeSmrg	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
4380a6b08f8Smrg	| tahoe-* \
439555991fdSmrg	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
4400a6b08f8Smrg	| tile*-* \
441126a8a12Smrg	| tron-* \
442555991fdSmrg	| ubicom32-* \
4430a6b08f8Smrg	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
4440a6b08f8Smrg	| vax-* \
445300346aeSmrg	| visium-* \
446300346aeSmrg	| wasm32-* \
447126a8a12Smrg	| we32k-* \
4480a6b08f8Smrg	| x86-* | x86_64-* | xc16x-* | xps100-* \
449d656433aSmrg	| xstormy16-* | xtensa*-* \
450126a8a12Smrg	| ymp-* \
451d656433aSmrg	| z8k-* | z80-*)
452126a8a12Smrg		;;
453d656433aSmrg	# Recognize the basic CPU types without company name, with glob match.
454d656433aSmrg	xtensa*)
455d656433aSmrg		basic_machine=$basic_machine-unknown
456126a8a12Smrg		;;
457126a8a12Smrg	# Recognize the various machine names and aliases which stand
458126a8a12Smrg	# for a CPU type and a company and sometimes even an OS.
459126a8a12Smrg	386bsd)
460300346aeSmrg		basic_machine=i386-pc
461126a8a12Smrg		os=-bsd
462126a8a12Smrg		;;
463126a8a12Smrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
464126a8a12Smrg		basic_machine=m68000-att
465126a8a12Smrg		;;
466126a8a12Smrg	3b*)
467126a8a12Smrg		basic_machine=we32k-att
468126a8a12Smrg		;;
469126a8a12Smrg	a29khif)
470126a8a12Smrg		basic_machine=a29k-amd
471126a8a12Smrg		os=-udi
472126a8a12Smrg		;;
4730a6b08f8Smrg	abacus)
474126a8a12Smrg		basic_machine=abacus-unknown
475126a8a12Smrg		;;
476126a8a12Smrg	adobe68k)
477126a8a12Smrg		basic_machine=m68010-adobe
478126a8a12Smrg		os=-scout
479126a8a12Smrg		;;
480126a8a12Smrg	alliant | fx80)
481126a8a12Smrg		basic_machine=fx80-alliant
482126a8a12Smrg		;;
483126a8a12Smrg	altos | altos3068)
484126a8a12Smrg		basic_machine=m68k-altos
485126a8a12Smrg		;;
486126a8a12Smrg	am29k)
487126a8a12Smrg		basic_machine=a29k-none
488126a8a12Smrg		os=-bsd
489126a8a12Smrg		;;
490126a8a12Smrg	amd64)
491126a8a12Smrg		basic_machine=x86_64-pc
492126a8a12Smrg		;;
493126a8a12Smrg	amd64-*)
494300346aeSmrg		basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
495126a8a12Smrg		;;
496126a8a12Smrg	amdahl)
497126a8a12Smrg		basic_machine=580-amdahl
498126a8a12Smrg		os=-sysv
499126a8a12Smrg		;;
500126a8a12Smrg	amiga | amiga-*)
501126a8a12Smrg		basic_machine=m68k-unknown
502126a8a12Smrg		;;
503126a8a12Smrg	amigaos | amigados)
504126a8a12Smrg		basic_machine=m68k-unknown
505126a8a12Smrg		os=-amigaos
506126a8a12Smrg		;;
507126a8a12Smrg	amigaunix | amix)
508126a8a12Smrg		basic_machine=m68k-unknown
509126a8a12Smrg		os=-sysv4
510126a8a12Smrg		;;
511126a8a12Smrg	apollo68)
512126a8a12Smrg		basic_machine=m68k-apollo
513126a8a12Smrg		os=-sysv
514126a8a12Smrg		;;
515126a8a12Smrg	apollo68bsd)
516126a8a12Smrg		basic_machine=m68k-apollo
517126a8a12Smrg		os=-bsd
518126a8a12Smrg		;;
519d656433aSmrg	aros)
520d656433aSmrg		basic_machine=i386-pc
521d656433aSmrg		os=-aros
522d656433aSmrg		;;
523300346aeSmrg	asmjs)
524300346aeSmrg		basic_machine=asmjs-unknown
525300346aeSmrg		;;
526126a8a12Smrg	aux)
527126a8a12Smrg		basic_machine=m68k-apple
528126a8a12Smrg		os=-aux
529126a8a12Smrg		;;
530126a8a12Smrg	balance)
531126a8a12Smrg		basic_machine=ns32k-sequent
532126a8a12Smrg		os=-dynix
533126a8a12Smrg		;;
534d656433aSmrg	blackfin)
535d656433aSmrg		basic_machine=bfin-unknown
536d656433aSmrg		os=-linux
537d656433aSmrg		;;
538d656433aSmrg	blackfin-*)
539300346aeSmrg		basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
540d656433aSmrg		os=-linux
541d656433aSmrg		;;
542555991fdSmrg	bluegene*)
543555991fdSmrg		basic_machine=powerpc-ibm
544555991fdSmrg		os=-cnk
545555991fdSmrg		;;
546555991fdSmrg	c54x-*)
547300346aeSmrg		basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
548555991fdSmrg		;;
549555991fdSmrg	c55x-*)
550300346aeSmrg		basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
551555991fdSmrg		;;
552555991fdSmrg	c6x-*)
553300346aeSmrg		basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
554555991fdSmrg		;;
555126a8a12Smrg	c90)
556126a8a12Smrg		basic_machine=c90-cray
557126a8a12Smrg		os=-unicos
558126a8a12Smrg		;;
5590a6b08f8Smrg	cegcc)
560d656433aSmrg		basic_machine=arm-unknown
561d656433aSmrg		os=-cegcc
562d656433aSmrg		;;
563126a8a12Smrg	convex-c1)
564126a8a12Smrg		basic_machine=c1-convex
565126a8a12Smrg		os=-bsd
566126a8a12Smrg		;;
567126a8a12Smrg	convex-c2)
568126a8a12Smrg		basic_machine=c2-convex
569126a8a12Smrg		os=-bsd
570126a8a12Smrg		;;
571126a8a12Smrg	convex-c32)
572126a8a12Smrg		basic_machine=c32-convex
573126a8a12Smrg		os=-bsd
574126a8a12Smrg		;;
575126a8a12Smrg	convex-c34)
576126a8a12Smrg		basic_machine=c34-convex
577126a8a12Smrg		os=-bsd
578126a8a12Smrg		;;
579126a8a12Smrg	convex-c38)
580126a8a12Smrg		basic_machine=c38-convex
581126a8a12Smrg		os=-bsd
582126a8a12Smrg		;;
583126a8a12Smrg	cray | j90)
584126a8a12Smrg		basic_machine=j90-cray
585126a8a12Smrg		os=-unicos
586126a8a12Smrg		;;
587126a8a12Smrg	craynv)
588126a8a12Smrg		basic_machine=craynv-cray
589126a8a12Smrg		os=-unicosmp
590126a8a12Smrg		;;
5910a6b08f8Smrg	cr16 | cr16-*)
592d656433aSmrg		basic_machine=cr16-unknown
593126a8a12Smrg		os=-elf
594126a8a12Smrg		;;
595126a8a12Smrg	crds | unos)
596126a8a12Smrg		basic_machine=m68k-crds
597126a8a12Smrg		;;
598126a8a12Smrg	crisv32 | crisv32-* | etraxfs*)
599126a8a12Smrg		basic_machine=crisv32-axis
600126a8a12Smrg		;;
601126a8a12Smrg	cris | cris-* | etrax*)
602126a8a12Smrg		basic_machine=cris-axis
603126a8a12Smrg		;;
604126a8a12Smrg	crx)
605126a8a12Smrg		basic_machine=crx-unknown
606126a8a12Smrg		os=-elf
607126a8a12Smrg		;;
608126a8a12Smrg	da30 | da30-*)
609126a8a12Smrg		basic_machine=m68k-da30
610126a8a12Smrg		;;
611126a8a12Smrg	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
612126a8a12Smrg		basic_machine=mips-dec
613126a8a12Smrg		;;
614126a8a12Smrg	decsystem10* | dec10*)
615126a8a12Smrg		basic_machine=pdp10-dec
616126a8a12Smrg		os=-tops10
617126a8a12Smrg		;;
618126a8a12Smrg	decsystem20* | dec20*)
619126a8a12Smrg		basic_machine=pdp10-dec
620126a8a12Smrg		os=-tops20
621126a8a12Smrg		;;
622126a8a12Smrg	delta | 3300 | motorola-3300 | motorola-delta \
623126a8a12Smrg	      | 3300-motorola | delta-motorola)
624126a8a12Smrg		basic_machine=m68k-motorola
625126a8a12Smrg		;;
626126a8a12Smrg	delta88)
627126a8a12Smrg		basic_machine=m88k-motorola
628126a8a12Smrg		os=-sysv3
629126a8a12Smrg		;;
630d656433aSmrg	dicos)
631d656433aSmrg		basic_machine=i686-pc
632d656433aSmrg		os=-dicos
633d656433aSmrg		;;
634126a8a12Smrg	djgpp)
635126a8a12Smrg		basic_machine=i586-pc
636126a8a12Smrg		os=-msdosdjgpp
637126a8a12Smrg		;;
638126a8a12Smrg	dpx20 | dpx20-*)
639126a8a12Smrg		basic_machine=rs6000-bull
640126a8a12Smrg		os=-bosx
641126a8a12Smrg		;;
642300346aeSmrg	dpx2*)
643126a8a12Smrg		basic_machine=m68k-bull
644126a8a12Smrg		os=-sysv3
645126a8a12Smrg		;;
646300346aeSmrg	e500v[12])
647300346aeSmrg		basic_machine=powerpc-unknown
648300346aeSmrg		os=$os"spe"
649300346aeSmrg		;;
650300346aeSmrg	e500v[12]-*)
651300346aeSmrg		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
652300346aeSmrg		os=$os"spe"
653300346aeSmrg		;;
654126a8a12Smrg	ebmon29k)
655126a8a12Smrg		basic_machine=a29k-amd
656126a8a12Smrg		os=-ebmon
657126a8a12Smrg		;;
658126a8a12Smrg	elxsi)
659126a8a12Smrg		basic_machine=elxsi-elxsi
660126a8a12Smrg		os=-bsd
661126a8a12Smrg		;;
662126a8a12Smrg	encore | umax | mmax)
663126a8a12Smrg		basic_machine=ns32k-encore
664126a8a12Smrg		;;
665126a8a12Smrg	es1800 | OSE68k | ose68k | ose | OSE)
666126a8a12Smrg		basic_machine=m68k-ericsson
667126a8a12Smrg		os=-ose
668126a8a12Smrg		;;
669126a8a12Smrg	fx2800)
670126a8a12Smrg		basic_machine=i860-alliant
671126a8a12Smrg		;;
672126a8a12Smrg	genix)
673126a8a12Smrg		basic_machine=ns32k-ns
674126a8a12Smrg		;;
675126a8a12Smrg	gmicro)
676126a8a12Smrg		basic_machine=tron-gmicro
677126a8a12Smrg		os=-sysv
678126a8a12Smrg		;;
679126a8a12Smrg	go32)
680126a8a12Smrg		basic_machine=i386-pc
681126a8a12Smrg		os=-go32
682126a8a12Smrg		;;
683126a8a12Smrg	h3050r* | hiux*)
684126a8a12Smrg		basic_machine=hppa1.1-hitachi
685126a8a12Smrg		os=-hiuxwe2
686126a8a12Smrg		;;
687126a8a12Smrg	h8300hms)
688126a8a12Smrg		basic_machine=h8300-hitachi
689126a8a12Smrg		os=-hms
690126a8a12Smrg		;;
691126a8a12Smrg	h8300xray)
692126a8a12Smrg		basic_machine=h8300-hitachi
693126a8a12Smrg		os=-xray
694126a8a12Smrg		;;
695126a8a12Smrg	h8500hms)
696126a8a12Smrg		basic_machine=h8500-hitachi
697126a8a12Smrg		os=-hms
698126a8a12Smrg		;;
699126a8a12Smrg	harris)
700126a8a12Smrg		basic_machine=m88k-harris
701126a8a12Smrg		os=-sysv3
702126a8a12Smrg		;;
703126a8a12Smrg	hp300-*)
704126a8a12Smrg		basic_machine=m68k-hp
705126a8a12Smrg		;;
706126a8a12Smrg	hp300bsd)
707126a8a12Smrg		basic_machine=m68k-hp
708126a8a12Smrg		os=-bsd
709126a8a12Smrg		;;
710126a8a12Smrg	hp300hpux)
711126a8a12Smrg		basic_machine=m68k-hp
712126a8a12Smrg		os=-hpux
713126a8a12Smrg		;;
714126a8a12Smrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
715126a8a12Smrg		basic_machine=hppa1.0-hp
716126a8a12Smrg		;;
717126a8a12Smrg	hp9k2[0-9][0-9] | hp9k31[0-9])
718126a8a12Smrg		basic_machine=m68000-hp
719126a8a12Smrg		;;
720126a8a12Smrg	hp9k3[2-9][0-9])
721126a8a12Smrg		basic_machine=m68k-hp
722126a8a12Smrg		;;
723126a8a12Smrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
724126a8a12Smrg		basic_machine=hppa1.0-hp
725126a8a12Smrg		;;
726126a8a12Smrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
727126a8a12Smrg		basic_machine=hppa1.1-hp
728126a8a12Smrg		;;
729126a8a12Smrg	hp9k78[0-9] | hp78[0-9])
730126a8a12Smrg		# FIXME: really hppa2.0-hp
731126a8a12Smrg		basic_machine=hppa1.1-hp
732126a8a12Smrg		;;
733126a8a12Smrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
734126a8a12Smrg		# FIXME: really hppa2.0-hp
735126a8a12Smrg		basic_machine=hppa1.1-hp
736126a8a12Smrg		;;
737126a8a12Smrg	hp9k8[0-9][13679] | hp8[0-9][13679])
738126a8a12Smrg		basic_machine=hppa1.1-hp
739126a8a12Smrg		;;
740126a8a12Smrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
741126a8a12Smrg		basic_machine=hppa1.0-hp
742126a8a12Smrg		;;
743126a8a12Smrg	hppaosf)
744126a8a12Smrg		basic_machine=hppa1.1-hp
745126a8a12Smrg		os=-osf
746126a8a12Smrg		;;
747126a8a12Smrg	hppro)
748126a8a12Smrg		basic_machine=hppa1.1-hp
749126a8a12Smrg		os=-proelf
750126a8a12Smrg		;;
751126a8a12Smrg	i370-ibm* | ibm*)
752126a8a12Smrg		basic_machine=i370-ibm
753126a8a12Smrg		;;
754126a8a12Smrg	i*86v32)
755300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
756126a8a12Smrg		os=-sysv32
757126a8a12Smrg		;;
758126a8a12Smrg	i*86v4*)
759300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
760126a8a12Smrg		os=-sysv4
761126a8a12Smrg		;;
762126a8a12Smrg	i*86v)
763300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
764126a8a12Smrg		os=-sysv
765126a8a12Smrg		;;
766126a8a12Smrg	i*86sol2)
767300346aeSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
768126a8a12Smrg		os=-solaris2
769126a8a12Smrg		;;
770126a8a12Smrg	i386mach)
771126a8a12Smrg		basic_machine=i386-mach
772126a8a12Smrg		os=-mach
773126a8a12Smrg		;;
774300346aeSmrg	vsta)
775126a8a12Smrg		basic_machine=i386-unknown
776126a8a12Smrg		os=-vsta
777126a8a12Smrg		;;
778126a8a12Smrg	iris | iris4d)
779126a8a12Smrg		basic_machine=mips-sgi
780126a8a12Smrg		case $os in
781126a8a12Smrg		    -irix*)
782126a8a12Smrg			;;
783126a8a12Smrg		    *)
784126a8a12Smrg			os=-irix4
785126a8a12Smrg			;;
786126a8a12Smrg		esac
787126a8a12Smrg		;;
788126a8a12Smrg	isi68 | isi)
789126a8a12Smrg		basic_machine=m68k-isi
790126a8a12Smrg		os=-sysv
791126a8a12Smrg		;;
792300346aeSmrg	leon-*|leon[3-9]-*)
793300346aeSmrg		basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
794300346aeSmrg		;;
795d656433aSmrg	m68knommu)
796d656433aSmrg		basic_machine=m68k-unknown
797d656433aSmrg		os=-linux
798d656433aSmrg		;;
799d656433aSmrg	m68knommu-*)
800300346aeSmrg		basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
801d656433aSmrg		os=-linux
802d656433aSmrg		;;
803126a8a12Smrg	magnum | m3230)
804126a8a12Smrg		basic_machine=mips-mips
805126a8a12Smrg		os=-sysv
806126a8a12Smrg		;;
807126a8a12Smrg	merlin)
808126a8a12Smrg		basic_machine=ns32k-utek
809126a8a12Smrg		os=-sysv
810126a8a12Smrg		;;
8110a6b08f8Smrg	microblaze*)
812555991fdSmrg		basic_machine=microblaze-xilinx
813555991fdSmrg		;;
8140a6b08f8Smrg	mingw64)
8150a6b08f8Smrg		basic_machine=x86_64-pc
8160a6b08f8Smrg		os=-mingw64
8170a6b08f8Smrg		;;
818126a8a12Smrg	mingw32)
819300346aeSmrg		basic_machine=i686-pc
820126a8a12Smrg		os=-mingw32
821126a8a12Smrg		;;
822d656433aSmrg	mingw32ce)
823d656433aSmrg		basic_machine=arm-unknown
824d656433aSmrg		os=-mingw32ce
825d656433aSmrg		;;
826126a8a12Smrg	miniframe)
827126a8a12Smrg		basic_machine=m68000-convergent
828126a8a12Smrg		;;
829126a8a12Smrg	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
830126a8a12Smrg		basic_machine=m68k-atari
831126a8a12Smrg		os=-mint
832126a8a12Smrg		;;
833126a8a12Smrg	mips3*-*)
834300346aeSmrg		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
835126a8a12Smrg		;;
836126a8a12Smrg	mips3*)
837300346aeSmrg		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
838126a8a12Smrg		;;
839126a8a12Smrg	monitor)
840126a8a12Smrg		basic_machine=m68k-rom68k
841126a8a12Smrg		os=-coff
842126a8a12Smrg		;;
843126a8a12Smrg	morphos)
844126a8a12Smrg		basic_machine=powerpc-unknown
845126a8a12Smrg		os=-morphos
846126a8a12Smrg		;;
847300346aeSmrg	moxiebox)
848300346aeSmrg		basic_machine=moxie-unknown
849300346aeSmrg		os=-moxiebox
850300346aeSmrg		;;
851126a8a12Smrg	msdos)
852126a8a12Smrg		basic_machine=i386-pc
853126a8a12Smrg		os=-msdos
854126a8a12Smrg		;;
855126a8a12Smrg	ms1-*)
856300346aeSmrg		basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
857126a8a12Smrg		;;
8580a6b08f8Smrg	msys)
859300346aeSmrg		basic_machine=i686-pc
8600a6b08f8Smrg		os=-msys
8610a6b08f8Smrg		;;
862126a8a12Smrg	mvs)
863126a8a12Smrg		basic_machine=i370-ibm
864126a8a12Smrg		os=-mvs
865126a8a12Smrg		;;
8660a6b08f8Smrg	nacl)
8670a6b08f8Smrg		basic_machine=le32-unknown
8680a6b08f8Smrg		os=-nacl
8690a6b08f8Smrg		;;
870126a8a12Smrg	ncr3000)
871126a8a12Smrg		basic_machine=i486-ncr
872126a8a12Smrg		os=-sysv4
873126a8a12Smrg		;;
874126a8a12Smrg	netbsd386)
875126a8a12Smrg		basic_machine=i386-unknown
876126a8a12Smrg		os=-netbsd
877126a8a12Smrg		;;
878126a8a12Smrg	netwinder)
879126a8a12Smrg		basic_machine=armv4l-rebel
880126a8a12Smrg		os=-linux
881126a8a12Smrg		;;
882126a8a12Smrg	news | news700 | news800 | news900)
883126a8a12Smrg		basic_machine=m68k-sony
884126a8a12Smrg		os=-newsos
885126a8a12Smrg		;;
886126a8a12Smrg	news1000)
887126a8a12Smrg		basic_machine=m68030-sony
888126a8a12Smrg		os=-newsos
889126a8a12Smrg		;;
890126a8a12Smrg	news-3600 | risc-news)
891126a8a12Smrg		basic_machine=mips-sony
892126a8a12Smrg		os=-newsos
893126a8a12Smrg		;;
894126a8a12Smrg	necv70)
895126a8a12Smrg		basic_machine=v70-nec
896126a8a12Smrg		os=-sysv
897126a8a12Smrg		;;
898300346aeSmrg	next | m*-next)
899126a8a12Smrg		basic_machine=m68k-next
900126a8a12Smrg		case $os in
901126a8a12Smrg		    -nextstep* )
902126a8a12Smrg			;;
903126a8a12Smrg		    -ns2*)
904126a8a12Smrg		      os=-nextstep2
905126a8a12Smrg			;;
906126a8a12Smrg		    *)
907126a8a12Smrg		      os=-nextstep3
908126a8a12Smrg			;;
909126a8a12Smrg		esac
910126a8a12Smrg		;;
911126a8a12Smrg	nh3000)
912126a8a12Smrg		basic_machine=m68k-harris
913126a8a12Smrg		os=-cxux
914126a8a12Smrg		;;
915126a8a12Smrg	nh[45]000)
916126a8a12Smrg		basic_machine=m88k-harris
917126a8a12Smrg		os=-cxux
918126a8a12Smrg		;;
919126a8a12Smrg	nindy960)
920126a8a12Smrg		basic_machine=i960-intel
921126a8a12Smrg		os=-nindy
922126a8a12Smrg		;;
923126a8a12Smrg	mon960)
924126a8a12Smrg		basic_machine=i960-intel
925126a8a12Smrg		os=-mon960
926126a8a12Smrg		;;
927126a8a12Smrg	nonstopux)
928126a8a12Smrg		basic_machine=mips-compaq
929126a8a12Smrg		os=-nonstopux
930126a8a12Smrg		;;
931126a8a12Smrg	np1)
932126a8a12Smrg		basic_machine=np1-gould
933126a8a12Smrg		;;
9340a6b08f8Smrg	neo-tandem)
935555991fdSmrg		basic_machine=neo-tandem
936555991fdSmrg		;;
9370a6b08f8Smrg	nse-tandem)
938555991fdSmrg		basic_machine=nse-tandem
939555991fdSmrg		;;
940126a8a12Smrg	nsr-tandem)
941126a8a12Smrg		basic_machine=nsr-tandem
942126a8a12Smrg		;;
943300346aeSmrg	nsv-tandem)
944300346aeSmrg		basic_machine=nsv-tandem
945300346aeSmrg		;;
946300346aeSmrg	nsx-tandem)
947300346aeSmrg		basic_machine=nsx-tandem
948300346aeSmrg		;;
949126a8a12Smrg	op50n-* | op60c-*)
950126a8a12Smrg		basic_machine=hppa1.1-oki
951126a8a12Smrg		os=-proelf
952126a8a12Smrg		;;
953126a8a12Smrg	openrisc | openrisc-*)
954126a8a12Smrg		basic_machine=or32-unknown
955126a8a12Smrg		;;
956126a8a12Smrg	os400)
957126a8a12Smrg		basic_machine=powerpc-ibm
958126a8a12Smrg		os=-os400
959126a8a12Smrg		;;
960126a8a12Smrg	OSE68000 | ose68000)
961126a8a12Smrg		basic_machine=m68000-ericsson
962126a8a12Smrg		os=-ose
963126a8a12Smrg		;;
964126a8a12Smrg	os68k)
965126a8a12Smrg		basic_machine=m68k-none
966126a8a12Smrg		os=-os68k
967126a8a12Smrg		;;
968126a8a12Smrg	pa-hitachi)
969126a8a12Smrg		basic_machine=hppa1.1-hitachi
970126a8a12Smrg		os=-hiuxwe2
971126a8a12Smrg		;;
972126a8a12Smrg	paragon)
973126a8a12Smrg		basic_machine=i860-intel
974126a8a12Smrg		os=-osf
975126a8a12Smrg		;;
976d656433aSmrg	parisc)
977d656433aSmrg		basic_machine=hppa-unknown
978d656433aSmrg		os=-linux
979d656433aSmrg		;;
980d656433aSmrg	parisc-*)
981300346aeSmrg		basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
982d656433aSmrg		os=-linux
983d656433aSmrg		;;
984126a8a12Smrg	pbd)
985126a8a12Smrg		basic_machine=sparc-tti
986126a8a12Smrg		;;
987126a8a12Smrg	pbb)
988126a8a12Smrg		basic_machine=m68k-tti
989126a8a12Smrg		;;
990126a8a12Smrg	pc532 | pc532-*)
991126a8a12Smrg		basic_machine=ns32k-pc532
992126a8a12Smrg		;;
993d656433aSmrg	pc98)
994d656433aSmrg		basic_machine=i386-pc
995d656433aSmrg		;;
996d656433aSmrg	pc98-*)
997300346aeSmrg		basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
998d656433aSmrg		;;
999126a8a12Smrg	pentium | p5 | k5 | k6 | nexgen | viac3)
1000126a8a12Smrg		basic_machine=i586-pc
1001126a8a12Smrg		;;
1002126a8a12Smrg	pentiumpro | p6 | 6x86 | athlon | athlon_*)
1003126a8a12Smrg		basic_machine=i686-pc
1004126a8a12Smrg		;;
1005126a8a12Smrg	pentiumii | pentium2 | pentiumiii | pentium3)
1006126a8a12Smrg		basic_machine=i686-pc
1007126a8a12Smrg		;;
1008126a8a12Smrg	pentium4)
1009126a8a12Smrg		basic_machine=i786-pc
1010126a8a12Smrg		;;
1011126a8a12Smrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1012300346aeSmrg		basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1013126a8a12Smrg		;;
1014126a8a12Smrg	pentiumpro-* | p6-* | 6x86-* | athlon-*)
1015300346aeSmrg		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1016126a8a12Smrg		;;
1017126a8a12Smrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1018300346aeSmrg		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1019126a8a12Smrg		;;
1020126a8a12Smrg	pentium4-*)
1021300346aeSmrg		basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1022126a8a12Smrg		;;
1023126a8a12Smrg	pn)
1024126a8a12Smrg		basic_machine=pn-gould
1025126a8a12Smrg		;;
1026126a8a12Smrg	power)	basic_machine=power-ibm
1027126a8a12Smrg		;;
10280a6b08f8Smrg	ppc | ppcbe)	basic_machine=powerpc-unknown
1029126a8a12Smrg		;;
10300a6b08f8Smrg	ppc-* | ppcbe-*)
1031300346aeSmrg		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1032126a8a12Smrg		;;
1033300346aeSmrg	ppcle | powerpclittle)
1034126a8a12Smrg		basic_machine=powerpcle-unknown
1035126a8a12Smrg		;;
1036126a8a12Smrg	ppcle-* | powerpclittle-*)
1037300346aeSmrg		basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1038126a8a12Smrg		;;
1039126a8a12Smrg	ppc64)	basic_machine=powerpc64-unknown
1040126a8a12Smrg		;;
1041300346aeSmrg	ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1042126a8a12Smrg		;;
1043300346aeSmrg	ppc64le | powerpc64little)
1044126a8a12Smrg		basic_machine=powerpc64le-unknown
1045126a8a12Smrg		;;
1046126a8a12Smrg	ppc64le-* | powerpc64little-*)
1047300346aeSmrg		basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1048126a8a12Smrg		;;
1049126a8a12Smrg	ps2)
1050126a8a12Smrg		basic_machine=i386-ibm
1051126a8a12Smrg		;;
1052126a8a12Smrg	pw32)
1053126a8a12Smrg		basic_machine=i586-unknown
1054126a8a12Smrg		os=-pw32
1055126a8a12Smrg		;;
10560a6b08f8Smrg	rdos | rdos64)
10570a6b08f8Smrg		basic_machine=x86_64-pc
10580a6b08f8Smrg		os=-rdos
10590a6b08f8Smrg		;;
10600a6b08f8Smrg	rdos32)
1061126a8a12Smrg		basic_machine=i386-pc
1062126a8a12Smrg		os=-rdos
1063126a8a12Smrg		;;
1064126a8a12Smrg	rom68k)
1065126a8a12Smrg		basic_machine=m68k-rom68k
1066126a8a12Smrg		os=-coff
1067126a8a12Smrg		;;
1068126a8a12Smrg	rm[46]00)
1069126a8a12Smrg		basic_machine=mips-siemens
1070126a8a12Smrg		;;
1071126a8a12Smrg	rtpc | rtpc-*)
1072126a8a12Smrg		basic_machine=romp-ibm
1073126a8a12Smrg		;;
1074126a8a12Smrg	s390 | s390-*)
1075126a8a12Smrg		basic_machine=s390-ibm
1076126a8a12Smrg		;;
1077126a8a12Smrg	s390x | s390x-*)
1078126a8a12Smrg		basic_machine=s390x-ibm
1079126a8a12Smrg		;;
1080126a8a12Smrg	sa29200)
1081126a8a12Smrg		basic_machine=a29k-amd
1082126a8a12Smrg		os=-udi
1083126a8a12Smrg		;;
1084126a8a12Smrg	sb1)
1085126a8a12Smrg		basic_machine=mipsisa64sb1-unknown
1086126a8a12Smrg		;;
1087126a8a12Smrg	sb1el)
1088126a8a12Smrg		basic_machine=mipsisa64sb1el-unknown
1089126a8a12Smrg		;;
1090d656433aSmrg	sde)
1091d656433aSmrg		basic_machine=mipsisa32-sde
1092d656433aSmrg		os=-elf
1093d656433aSmrg		;;
1094126a8a12Smrg	sei)
1095126a8a12Smrg		basic_machine=mips-sei
1096126a8a12Smrg		os=-seiux
1097126a8a12Smrg		;;
1098126a8a12Smrg	sequent)
1099126a8a12Smrg		basic_machine=i386-sequent
1100126a8a12Smrg		;;
1101d656433aSmrg	sh5el)
1102d656433aSmrg		basic_machine=sh5le-unknown
1103d656433aSmrg		;;
1104300346aeSmrg	simso-wrs)
1105126a8a12Smrg		basic_machine=sparclite-wrs
1106126a8a12Smrg		os=-vxworks
1107126a8a12Smrg		;;
1108126a8a12Smrg	sps7)
1109126a8a12Smrg		basic_machine=m68k-bull
1110126a8a12Smrg		os=-sysv2
1111126a8a12Smrg		;;
1112126a8a12Smrg	spur)
1113126a8a12Smrg		basic_machine=spur-unknown
1114126a8a12Smrg		;;
1115126a8a12Smrg	st2000)
1116126a8a12Smrg		basic_machine=m68k-tandem
1117126a8a12Smrg		;;
1118126a8a12Smrg	stratus)
1119126a8a12Smrg		basic_machine=i860-stratus
1120126a8a12Smrg		os=-sysv4
1121126a8a12Smrg		;;
11220a6b08f8Smrg	strongarm-* | thumb-*)
1123300346aeSmrg		basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
11240a6b08f8Smrg		;;
1125126a8a12Smrg	sun2)
1126126a8a12Smrg		basic_machine=m68000-sun
1127126a8a12Smrg		;;
1128126a8a12Smrg	sun2os3)
1129126a8a12Smrg		basic_machine=m68000-sun
1130126a8a12Smrg		os=-sunos3
1131126a8a12Smrg		;;
1132126a8a12Smrg	sun2os4)
1133126a8a12Smrg		basic_machine=m68000-sun
1134126a8a12Smrg		os=-sunos4
1135126a8a12Smrg		;;
1136126a8a12Smrg	sun3os3)
1137126a8a12Smrg		basic_machine=m68k-sun
1138126a8a12Smrg		os=-sunos3
1139126a8a12Smrg		;;
1140126a8a12Smrg	sun3os4)
1141126a8a12Smrg		basic_machine=m68k-sun
1142126a8a12Smrg		os=-sunos4
1143126a8a12Smrg		;;
1144126a8a12Smrg	sun4os3)
1145126a8a12Smrg		basic_machine=sparc-sun
1146126a8a12Smrg		os=-sunos3
1147126a8a12Smrg		;;
1148126a8a12Smrg	sun4os4)
1149126a8a12Smrg		basic_machine=sparc-sun
1150126a8a12Smrg		os=-sunos4
1151126a8a12Smrg		;;
1152126a8a12Smrg	sun4sol2)
1153126a8a12Smrg		basic_machine=sparc-sun
1154126a8a12Smrg		os=-solaris2
1155126a8a12Smrg		;;
1156126a8a12Smrg	sun3 | sun3-*)
1157126a8a12Smrg		basic_machine=m68k-sun
1158126a8a12Smrg		;;
1159126a8a12Smrg	sun4)
1160126a8a12Smrg		basic_machine=sparc-sun
1161126a8a12Smrg		;;
1162126a8a12Smrg	sun386 | sun386i | roadrunner)
1163126a8a12Smrg		basic_machine=i386-sun
1164126a8a12Smrg		;;
1165126a8a12Smrg	sv1)
1166126a8a12Smrg		basic_machine=sv1-cray
1167126a8a12Smrg		os=-unicos
1168126a8a12Smrg		;;
1169126a8a12Smrg	symmetry)
1170126a8a12Smrg		basic_machine=i386-sequent
1171126a8a12Smrg		os=-dynix
1172126a8a12Smrg		;;
1173126a8a12Smrg	t3e)
1174126a8a12Smrg		basic_machine=alphaev5-cray
1175126a8a12Smrg		os=-unicos
1176126a8a12Smrg		;;
1177126a8a12Smrg	t90)
1178126a8a12Smrg		basic_machine=t90-cray
1179126a8a12Smrg		os=-unicos
1180126a8a12Smrg		;;
1181d656433aSmrg	tile*)
11820a6b08f8Smrg		basic_machine=$basic_machine-unknown
1183d656433aSmrg		os=-linux-gnu
1184d656433aSmrg		;;
1185126a8a12Smrg	tx39)
1186126a8a12Smrg		basic_machine=mipstx39-unknown
1187126a8a12Smrg		;;
1188126a8a12Smrg	tx39el)
1189126a8a12Smrg		basic_machine=mipstx39el-unknown
1190126a8a12Smrg		;;
1191126a8a12Smrg	toad1)
1192126a8a12Smrg		basic_machine=pdp10-xkl
1193126a8a12Smrg		os=-tops20
1194126a8a12Smrg		;;
1195126a8a12Smrg	tower | tower-32)
1196126a8a12Smrg		basic_machine=m68k-ncr
1197126a8a12Smrg		;;
1198126a8a12Smrg	tpf)
1199126a8a12Smrg		basic_machine=s390x-ibm
1200126a8a12Smrg		os=-tpf
1201126a8a12Smrg		;;
1202126a8a12Smrg	udi29k)
1203126a8a12Smrg		basic_machine=a29k-amd
1204126a8a12Smrg		os=-udi
1205126a8a12Smrg		;;
1206126a8a12Smrg	ultra3)
1207126a8a12Smrg		basic_machine=a29k-nyu
1208126a8a12Smrg		os=-sym1
1209126a8a12Smrg		;;
1210126a8a12Smrg	v810 | necv810)
1211126a8a12Smrg		basic_machine=v810-nec
1212126a8a12Smrg		os=-none
1213126a8a12Smrg		;;
1214126a8a12Smrg	vaxv)
1215126a8a12Smrg		basic_machine=vax-dec
1216126a8a12Smrg		os=-sysv
1217126a8a12Smrg		;;
1218126a8a12Smrg	vms)
1219126a8a12Smrg		basic_machine=vax-dec
1220126a8a12Smrg		os=-vms
1221126a8a12Smrg		;;
1222126a8a12Smrg	vpp*|vx|vx-*)
1223126a8a12Smrg		basic_machine=f301-fujitsu
1224126a8a12Smrg		;;
1225126a8a12Smrg	vxworks960)
1226126a8a12Smrg		basic_machine=i960-wrs
1227126a8a12Smrg		os=-vxworks
1228126a8a12Smrg		;;
1229126a8a12Smrg	vxworks68)
1230126a8a12Smrg		basic_machine=m68k-wrs
1231126a8a12Smrg		os=-vxworks
1232126a8a12Smrg		;;
1233126a8a12Smrg	vxworks29k)
1234126a8a12Smrg		basic_machine=a29k-wrs
1235126a8a12Smrg		os=-vxworks
1236126a8a12Smrg		;;
1237126a8a12Smrg	w65*)
1238126a8a12Smrg		basic_machine=w65-wdc
1239126a8a12Smrg		os=-none
1240126a8a12Smrg		;;
1241126a8a12Smrg	w89k-*)
1242126a8a12Smrg		basic_machine=hppa1.1-winbond
1243126a8a12Smrg		os=-proelf
1244126a8a12Smrg		;;
1245300346aeSmrg	x64)
1246300346aeSmrg		basic_machine=x86_64-pc
1247300346aeSmrg		;;
1248126a8a12Smrg	xbox)
1249126a8a12Smrg		basic_machine=i686-pc
1250126a8a12Smrg		os=-mingw32
1251126a8a12Smrg		;;
1252126a8a12Smrg	xps | xps100)
1253126a8a12Smrg		basic_machine=xps100-honeywell
1254126a8a12Smrg		;;
12550a6b08f8Smrg	xscale-* | xscalee[bl]-*)
1256300346aeSmrg		basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
12570a6b08f8Smrg		;;
1258126a8a12Smrg	ymp)
1259126a8a12Smrg		basic_machine=ymp-cray
1260126a8a12Smrg		os=-unicos
1261126a8a12Smrg		;;
1262126a8a12Smrg	none)
1263126a8a12Smrg		basic_machine=none-none
1264126a8a12Smrg		os=-none
1265126a8a12Smrg		;;
1266126a8a12Smrg
1267126a8a12Smrg# Here we handle the default manufacturer of certain CPU types.  It is in
1268126a8a12Smrg# some cases the only manufacturer, in others, it is the most popular.
1269126a8a12Smrg	w89k)
1270126a8a12Smrg		basic_machine=hppa1.1-winbond
1271126a8a12Smrg		;;
1272126a8a12Smrg	op50n)
1273126a8a12Smrg		basic_machine=hppa1.1-oki
1274126a8a12Smrg		;;
1275126a8a12Smrg	op60c)
1276126a8a12Smrg		basic_machine=hppa1.1-oki
1277126a8a12Smrg		;;
1278126a8a12Smrg	romp)
1279126a8a12Smrg		basic_machine=romp-ibm
1280126a8a12Smrg		;;
1281126a8a12Smrg	mmix)
1282126a8a12Smrg		basic_machine=mmix-knuth
1283126a8a12Smrg		;;
1284126a8a12Smrg	rs6000)
1285126a8a12Smrg		basic_machine=rs6000-ibm
1286126a8a12Smrg		;;
1287126a8a12Smrg	vax)
1288126a8a12Smrg		basic_machine=vax-dec
1289126a8a12Smrg		;;
1290126a8a12Smrg	pdp11)
1291126a8a12Smrg		basic_machine=pdp11-dec
1292126a8a12Smrg		;;
1293126a8a12Smrg	we32k)
1294126a8a12Smrg		basic_machine=we32k-att
1295126a8a12Smrg		;;
1296d656433aSmrg	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1297126a8a12Smrg		basic_machine=sh-unknown
1298126a8a12Smrg		;;
1299126a8a12Smrg	cydra)
1300126a8a12Smrg		basic_machine=cydra-cydrome
1301126a8a12Smrg		;;
1302126a8a12Smrg	orion)
1303126a8a12Smrg		basic_machine=orion-highlevel
1304126a8a12Smrg		;;
1305126a8a12Smrg	orion105)
1306126a8a12Smrg		basic_machine=clipper-highlevel
1307126a8a12Smrg		;;
1308126a8a12Smrg	mac | mpw | mac-mpw)
1309126a8a12Smrg		basic_machine=m68k-apple
1310126a8a12Smrg		;;
1311126a8a12Smrg	pmac | pmac-mpw)
1312126a8a12Smrg		basic_machine=powerpc-apple
1313126a8a12Smrg		;;
1314126a8a12Smrg	*-unknown)
1315126a8a12Smrg		# Make sure to match an already-canonicalized machine name.
1316126a8a12Smrg		;;
1317126a8a12Smrg	*)
1318300346aeSmrg		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
1319126a8a12Smrg		exit 1
1320126a8a12Smrg		;;
1321126a8a12Smrgesac
1322126a8a12Smrg
1323126a8a12Smrg# Here we canonicalize certain aliases for manufacturers.
1324126a8a12Smrgcase $basic_machine in
1325126a8a12Smrg	*-digital*)
1326300346aeSmrg		basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
1327126a8a12Smrg		;;
1328126a8a12Smrg	*-commodore*)
1329300346aeSmrg		basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
1330126a8a12Smrg		;;
1331126a8a12Smrg	*)
1332126a8a12Smrg		;;
1333126a8a12Smrgesac
1334126a8a12Smrg
1335126a8a12Smrg# Decode manufacturer-specific aliases for certain operating systems.
1336126a8a12Smrg
1337126a8a12Smrgif [ x"$os" != x"" ]
1338126a8a12Smrgthen
1339126a8a12Smrgcase $os in
1340300346aeSmrg	# First match some system type aliases that might get confused
1341300346aeSmrg	# with valid system types.
1342126a8a12Smrg	# -solaris* is a basic system type, with this one exception.
13430a6b08f8Smrg	-auroraux)
13440a6b08f8Smrg		os=-auroraux
1345555991fdSmrg		;;
1346126a8a12Smrg	-solaris1 | -solaris1.*)
1347126a8a12Smrg		os=`echo $os | sed -e 's|solaris1|sunos4|'`
1348126a8a12Smrg		;;
1349126a8a12Smrg	-solaris)
1350126a8a12Smrg		os=-solaris2
1351126a8a12Smrg		;;
1352126a8a12Smrg	-unixware*)
1353126a8a12Smrg		os=-sysv4.2uw
1354126a8a12Smrg		;;
1355126a8a12Smrg	-gnu/linux*)
1356126a8a12Smrg		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1357126a8a12Smrg		;;
1358300346aeSmrg	# es1800 is here to avoid being matched by es* (a different OS)
1359300346aeSmrg	-es1800*)
1360300346aeSmrg		os=-ose
1361300346aeSmrg		;;
1362300346aeSmrg	# Now accept the basic system types.
1363126a8a12Smrg	# The portable systems comes first.
1364300346aeSmrg	# Each alternative MUST end in a * to match a version number.
1365126a8a12Smrg	# -sysv* is not here because it comes later, after sysvr4.
1366126a8a12Smrg	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1367555991fdSmrg	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1368555991fdSmrg	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
13690a6b08f8Smrg	      | -sym* | -kopensolaris* | -plan9* \
1370126a8a12Smrg	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1371300346aeSmrg	      | -aos* | -aros* | -cloudabi* | -sortix* \
1372126a8a12Smrg	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1373126a8a12Smrg	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1374300346aeSmrg	      | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
1375300346aeSmrg	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
1376126a8a12Smrg	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1377126a8a12Smrg	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1378126a8a12Smrg	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1379126a8a12Smrg	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1380300346aeSmrg	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
13810a6b08f8Smrg	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1382300346aeSmrg	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
13830a6b08f8Smrg	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
1384300346aeSmrg	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
1385300346aeSmrg	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
1386126a8a12Smrg	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1387126a8a12Smrg	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1388126a8a12Smrg	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1389300346aeSmrg	      | -morphos* | -superux* | -rtmk* | -windiss* \
1390126a8a12Smrg	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1391300346aeSmrg	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
1392300346aeSmrg	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
1393300346aeSmrg	      | -midnightbsd*)
1394126a8a12Smrg	# Remember, each alternative MUST END IN *, to match a version number.
1395126a8a12Smrg		;;
1396126a8a12Smrg	-qnx*)
1397126a8a12Smrg		case $basic_machine in
1398126a8a12Smrg		    x86-* | i*86-*)
1399126a8a12Smrg			;;
1400126a8a12Smrg		    *)
1401126a8a12Smrg			os=-nto$os
1402126a8a12Smrg			;;
1403126a8a12Smrg		esac
1404126a8a12Smrg		;;
1405126a8a12Smrg	-nto-qnx*)
1406126a8a12Smrg		;;
1407126a8a12Smrg	-nto*)
1408126a8a12Smrg		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1409126a8a12Smrg		;;
1410300346aeSmrg	-sim | -xray | -os68k* | -v88r* \
1411300346aeSmrg	      | -windows* | -osx | -abug | -netware* | -os9* \
1412126a8a12Smrg	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1413126a8a12Smrg		;;
1414126a8a12Smrg	-mac*)
1415300346aeSmrg		os=`echo "$os" | sed -e 's|mac|macos|'`
1416126a8a12Smrg		;;
1417126a8a12Smrg	-linux-dietlibc)
1418126a8a12Smrg		os=-linux-dietlibc
1419126a8a12Smrg		;;
1420126a8a12Smrg	-linux*)
1421126a8a12Smrg		os=`echo $os | sed -e 's|linux|linux-gnu|'`
1422126a8a12Smrg		;;
1423126a8a12Smrg	-sunos5*)
1424300346aeSmrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
1425126a8a12Smrg		;;
1426126a8a12Smrg	-sunos6*)
1427300346aeSmrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
1428126a8a12Smrg		;;
1429126a8a12Smrg	-opened*)
1430126a8a12Smrg		os=-openedition
1431126a8a12Smrg		;;
14320a6b08f8Smrg	-os400*)
1433126a8a12Smrg		os=-os400
1434126a8a12Smrg		;;
1435126a8a12Smrg	-wince*)
1436126a8a12Smrg		os=-wince
1437126a8a12Smrg		;;
1438126a8a12Smrg	-utek*)
1439126a8a12Smrg		os=-bsd
1440126a8a12Smrg		;;
1441126a8a12Smrg	-dynix*)
1442126a8a12Smrg		os=-bsd
1443126a8a12Smrg		;;
1444126a8a12Smrg	-acis*)
1445126a8a12Smrg		os=-aos
1446126a8a12Smrg		;;
1447126a8a12Smrg	-atheos*)
1448126a8a12Smrg		os=-atheos
1449126a8a12Smrg		;;
1450126a8a12Smrg	-syllable*)
1451126a8a12Smrg		os=-syllable
1452126a8a12Smrg		;;
1453126a8a12Smrg	-386bsd)
1454126a8a12Smrg		os=-bsd
1455126a8a12Smrg		;;
1456126a8a12Smrg	-ctix* | -uts*)
1457126a8a12Smrg		os=-sysv
1458126a8a12Smrg		;;
1459126a8a12Smrg	-nova*)
1460126a8a12Smrg		os=-rtmk-nova
1461126a8a12Smrg		;;
1462300346aeSmrg	-ns2)
1463126a8a12Smrg		os=-nextstep2
1464126a8a12Smrg		;;
1465126a8a12Smrg	-nsk*)
1466126a8a12Smrg		os=-nsk
1467126a8a12Smrg		;;
1468126a8a12Smrg	# Preserve the version number of sinix5.
1469126a8a12Smrg	-sinix5.*)
1470126a8a12Smrg		os=`echo $os | sed -e 's|sinix|sysv|'`
1471126a8a12Smrg		;;
1472126a8a12Smrg	-sinix*)
1473126a8a12Smrg		os=-sysv4
1474126a8a12Smrg		;;
14750a6b08f8Smrg	-tpf*)
1476126a8a12Smrg		os=-tpf
1477126a8a12Smrg		;;
1478126a8a12Smrg	-triton*)
1479126a8a12Smrg		os=-sysv3
1480126a8a12Smrg		;;
1481126a8a12Smrg	-oss*)
1482126a8a12Smrg		os=-sysv3
1483126a8a12Smrg		;;
1484300346aeSmrg	-svr4*)
1485126a8a12Smrg		os=-sysv4
1486126a8a12Smrg		;;
1487126a8a12Smrg	-svr3)
1488126a8a12Smrg		os=-sysv3
1489126a8a12Smrg		;;
1490126a8a12Smrg	-sysvr4)
1491126a8a12Smrg		os=-sysv4
1492126a8a12Smrg		;;
1493126a8a12Smrg	# This must come after -sysvr4.
1494126a8a12Smrg	-sysv*)
1495126a8a12Smrg		;;
1496126a8a12Smrg	-ose*)
1497126a8a12Smrg		os=-ose
1498126a8a12Smrg		;;
1499126a8a12Smrg	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1500126a8a12Smrg		os=-mint
1501126a8a12Smrg		;;
1502126a8a12Smrg	-zvmoe)
1503126a8a12Smrg		os=-zvmoe
1504126a8a12Smrg		;;
1505d656433aSmrg	-dicos*)
1506d656433aSmrg		os=-dicos
1507d656433aSmrg		;;
1508300346aeSmrg	-pikeos*)
1509300346aeSmrg		# Until real need of OS specific support for
1510300346aeSmrg		# particular features comes up, bare metal
1511300346aeSmrg		# configurations are quite functional.
1512300346aeSmrg		case $basic_machine in
1513300346aeSmrg		    arm*)
1514300346aeSmrg			os=-eabi
1515300346aeSmrg			;;
1516300346aeSmrg		    *)
1517300346aeSmrg			os=-elf
1518300346aeSmrg			;;
1519300346aeSmrg		esac
1520300346aeSmrg		;;
15210a6b08f8Smrg	-nacl*)
15220a6b08f8Smrg		;;
1523300346aeSmrg	-ios)
1524300346aeSmrg		;;
1525126a8a12Smrg	-none)
1526126a8a12Smrg		;;
1527126a8a12Smrg	*)
1528126a8a12Smrg		# Get rid of the `-' at the beginning of $os.
1529126a8a12Smrg		os=`echo $os | sed 's/[^-]*-//'`
1530300346aeSmrg		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
1531126a8a12Smrg		exit 1
1532126a8a12Smrg		;;
1533126a8a12Smrgesac
1534126a8a12Smrgelse
1535126a8a12Smrg
1536126a8a12Smrg# Here we handle the default operating systems that come with various machines.
1537126a8a12Smrg# The value should be what the vendor currently ships out the door with their
1538126a8a12Smrg# machine or put another way, the most popular os provided with the machine.
1539126a8a12Smrg
1540126a8a12Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
1541126a8a12Smrg# "-sun"), then you have to tell the case statement up towards the top
1542126a8a12Smrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
1543126a8a12Smrg# will signal an error saying that MANUFACTURER isn't an operating
1544126a8a12Smrg# system, and we'll never get to this point.
1545126a8a12Smrg
1546126a8a12Smrgcase $basic_machine in
15470a6b08f8Smrg	score-*)
1548d656433aSmrg		os=-elf
1549d656433aSmrg		;;
15500a6b08f8Smrg	spu-*)
1551d656433aSmrg		os=-elf
1552d656433aSmrg		;;
1553126a8a12Smrg	*-acorn)
1554126a8a12Smrg		os=-riscix1.2
1555126a8a12Smrg		;;
1556126a8a12Smrg	arm*-rebel)
1557126a8a12Smrg		os=-linux
1558126a8a12Smrg		;;
1559126a8a12Smrg	arm*-semi)
1560126a8a12Smrg		os=-aout
1561126a8a12Smrg		;;
15620a6b08f8Smrg	c4x-* | tic4x-*)
15630a6b08f8Smrg		os=-coff
15640a6b08f8Smrg		;;
1565300346aeSmrg	c8051-*)
1566300346aeSmrg		os=-elf
1567300346aeSmrg		;;
15680a6b08f8Smrg	hexagon-*)
15690a6b08f8Smrg		os=-elf
1570d656433aSmrg		;;
1571555991fdSmrg	tic54x-*)
1572555991fdSmrg		os=-coff
1573555991fdSmrg		;;
1574555991fdSmrg	tic55x-*)
1575555991fdSmrg		os=-coff
1576555991fdSmrg		;;
1577555991fdSmrg	tic6x-*)
1578555991fdSmrg		os=-coff
1579555991fdSmrg		;;
1580126a8a12Smrg	# This must come before the *-dec entry.
1581126a8a12Smrg	pdp10-*)
1582126a8a12Smrg		os=-tops20
1583126a8a12Smrg		;;
1584126a8a12Smrg	pdp11-*)
1585126a8a12Smrg		os=-none
1586126a8a12Smrg		;;
1587126a8a12Smrg	*-dec | vax-*)
1588126a8a12Smrg		os=-ultrix4.2
1589126a8a12Smrg		;;
1590126a8a12Smrg	m68*-apollo)
1591126a8a12Smrg		os=-domain
1592126a8a12Smrg		;;
1593126a8a12Smrg	i386-sun)
1594126a8a12Smrg		os=-sunos4.0.2
1595126a8a12Smrg		;;
1596126a8a12Smrg	m68000-sun)
1597126a8a12Smrg		os=-sunos3
1598126a8a12Smrg		;;
1599126a8a12Smrg	m68*-cisco)
1600126a8a12Smrg		os=-aout
1601126a8a12Smrg		;;
16020a6b08f8Smrg	mep-*)
1603d656433aSmrg		os=-elf
1604d656433aSmrg		;;
1605126a8a12Smrg	mips*-cisco)
1606126a8a12Smrg		os=-elf
1607126a8a12Smrg		;;
1608126a8a12Smrg	mips*-*)
1609126a8a12Smrg		os=-elf
1610126a8a12Smrg		;;
1611126a8a12Smrg	or32-*)
1612126a8a12Smrg		os=-coff
1613126a8a12Smrg		;;
1614126a8a12Smrg	*-tti)	# must be before sparc entry or we get the wrong os.
1615126a8a12Smrg		os=-sysv3
1616126a8a12Smrg		;;
1617126a8a12Smrg	sparc-* | *-sun)
1618126a8a12Smrg		os=-sunos4.1.1
1619126a8a12Smrg		;;
1620300346aeSmrg	pru-*)
1621300346aeSmrg		os=-elf
1622300346aeSmrg		;;
1623126a8a12Smrg	*-be)
1624126a8a12Smrg		os=-beos
1625126a8a12Smrg		;;
1626126a8a12Smrg	*-ibm)
1627126a8a12Smrg		os=-aix
1628126a8a12Smrg		;;
16290a6b08f8Smrg	*-knuth)
1630126a8a12Smrg		os=-mmixware
1631126a8a12Smrg		;;
1632126a8a12Smrg	*-wec)
1633126a8a12Smrg		os=-proelf
1634126a8a12Smrg		;;
1635126a8a12Smrg	*-winbond)
1636126a8a12Smrg		os=-proelf
1637126a8a12Smrg		;;
1638126a8a12Smrg	*-oki)
1639126a8a12Smrg		os=-proelf
1640126a8a12Smrg		;;
1641126a8a12Smrg	*-hp)
1642126a8a12Smrg		os=-hpux
1643126a8a12Smrg		;;
1644126a8a12Smrg	*-hitachi)
1645126a8a12Smrg		os=-hiux
1646126a8a12Smrg		;;
1647126a8a12Smrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1648126a8a12Smrg		os=-sysv
1649126a8a12Smrg		;;
1650126a8a12Smrg	*-cbm)
1651126a8a12Smrg		os=-amigaos
1652126a8a12Smrg		;;
1653126a8a12Smrg	*-dg)
1654126a8a12Smrg		os=-dgux
1655126a8a12Smrg		;;
1656126a8a12Smrg	*-dolphin)
1657126a8a12Smrg		os=-sysv3
1658126a8a12Smrg		;;
1659126a8a12Smrg	m68k-ccur)
1660126a8a12Smrg		os=-rtu
1661126a8a12Smrg		;;
1662126a8a12Smrg	m88k-omron*)
1663126a8a12Smrg		os=-luna
1664126a8a12Smrg		;;
1665300346aeSmrg	*-next)
1666126a8a12Smrg		os=-nextstep
1667126a8a12Smrg		;;
1668126a8a12Smrg	*-sequent)
1669126a8a12Smrg		os=-ptx
1670126a8a12Smrg		;;
1671126a8a12Smrg	*-crds)
1672126a8a12Smrg		os=-unos
1673126a8a12Smrg		;;
1674126a8a12Smrg	*-ns)
1675126a8a12Smrg		os=-genix
1676126a8a12Smrg		;;
1677126a8a12Smrg	i370-*)
1678126a8a12Smrg		os=-mvs
1679126a8a12Smrg		;;
1680126a8a12Smrg	*-gould)
1681126a8a12Smrg		os=-sysv
1682126a8a12Smrg		;;
1683126a8a12Smrg	*-highlevel)
1684126a8a12Smrg		os=-bsd
1685126a8a12Smrg		;;
1686126a8a12Smrg	*-encore)
1687126a8a12Smrg		os=-bsd
1688126a8a12Smrg		;;
1689126a8a12Smrg	*-sgi)
1690126a8a12Smrg		os=-irix
1691126a8a12Smrg		;;
1692126a8a12Smrg	*-siemens)
1693126a8a12Smrg		os=-sysv4
1694126a8a12Smrg		;;
1695126a8a12Smrg	*-masscomp)
1696126a8a12Smrg		os=-rtu
1697126a8a12Smrg		;;
1698126a8a12Smrg	f30[01]-fujitsu | f700-fujitsu)
1699126a8a12Smrg		os=-uxpv
1700126a8a12Smrg		;;
1701126a8a12Smrg	*-rom68k)
1702126a8a12Smrg		os=-coff
1703126a8a12Smrg		;;
1704126a8a12Smrg	*-*bug)
1705126a8a12Smrg		os=-coff
1706126a8a12Smrg		;;
1707126a8a12Smrg	*-apple)
1708126a8a12Smrg		os=-macos
1709126a8a12Smrg		;;
1710126a8a12Smrg	*-atari*)
1711126a8a12Smrg		os=-mint
1712126a8a12Smrg		;;
1713126a8a12Smrg	*)
1714126a8a12Smrg		os=-none
1715126a8a12Smrg		;;
1716126a8a12Smrgesac
1717126a8a12Smrgfi
1718126a8a12Smrg
1719126a8a12Smrg# Here we handle the case where we know the os, and the CPU type, but not the
1720126a8a12Smrg# manufacturer.  We pick the logical manufacturer.
1721126a8a12Smrgvendor=unknown
1722126a8a12Smrgcase $basic_machine in
1723126a8a12Smrg	*-unknown)
1724126a8a12Smrg		case $os in
1725126a8a12Smrg			-riscix*)
1726126a8a12Smrg				vendor=acorn
1727126a8a12Smrg				;;
1728126a8a12Smrg			-sunos*)
1729126a8a12Smrg				vendor=sun
1730126a8a12Smrg				;;
1731555991fdSmrg			-cnk*|-aix*)
1732126a8a12Smrg				vendor=ibm
1733126a8a12Smrg				;;
1734126a8a12Smrg			-beos*)
1735126a8a12Smrg				vendor=be
1736126a8a12Smrg				;;
1737126a8a12Smrg			-hpux*)
1738126a8a12Smrg				vendor=hp
1739126a8a12Smrg				;;
1740126a8a12Smrg			-mpeix*)
1741126a8a12Smrg				vendor=hp
1742126a8a12Smrg				;;
1743126a8a12Smrg			-hiux*)
1744126a8a12Smrg				vendor=hitachi
1745126a8a12Smrg				;;
1746126a8a12Smrg			-unos*)
1747126a8a12Smrg				vendor=crds
1748126a8a12Smrg				;;
1749126a8a12Smrg			-dgux*)
1750126a8a12Smrg				vendor=dg
1751126a8a12Smrg				;;
1752126a8a12Smrg			-luna*)
1753126a8a12Smrg				vendor=omron
1754126a8a12Smrg				;;
1755126a8a12Smrg			-genix*)
1756126a8a12Smrg				vendor=ns
1757126a8a12Smrg				;;
1758126a8a12Smrg			-mvs* | -opened*)
1759126a8a12Smrg				vendor=ibm
1760126a8a12Smrg				;;
1761126a8a12Smrg			-os400*)
1762126a8a12Smrg				vendor=ibm
1763126a8a12Smrg				;;
1764126a8a12Smrg			-ptx*)
1765126a8a12Smrg				vendor=sequent
1766126a8a12Smrg				;;
1767126a8a12Smrg			-tpf*)
1768126a8a12Smrg				vendor=ibm
1769126a8a12Smrg				;;
1770126a8a12Smrg			-vxsim* | -vxworks* | -windiss*)
1771126a8a12Smrg				vendor=wrs
1772126a8a12Smrg				;;
1773126a8a12Smrg			-aux*)
1774126a8a12Smrg				vendor=apple
1775126a8a12Smrg				;;
1776126a8a12Smrg			-hms*)
1777126a8a12Smrg				vendor=hitachi
1778126a8a12Smrg				;;
1779126a8a12Smrg			-mpw* | -macos*)
1780126a8a12Smrg				vendor=apple
1781126a8a12Smrg				;;
1782126a8a12Smrg			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1783126a8a12Smrg				vendor=atari
1784126a8a12Smrg				;;
1785126a8a12Smrg			-vos*)
1786126a8a12Smrg				vendor=stratus
1787126a8a12Smrg				;;
1788126a8a12Smrg		esac
1789300346aeSmrg		basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
1790126a8a12Smrg		;;
1791126a8a12Smrgesac
1792126a8a12Smrg
1793300346aeSmrgecho "$basic_machine$os"
1794126a8a12Smrgexit
1795126a8a12Smrg
1796126a8a12Smrg# Local variables:
1797300346aeSmrg# eval: (add-hook 'write-file-functions 'time-stamp)
1798126a8a12Smrg# time-stamp-start: "timestamp='"
1799126a8a12Smrg# time-stamp-format: "%:y-%02m-%02d"
1800126a8a12Smrg# time-stamp-end: "'"
1801126a8a12Smrg# End:
1802