config.sub revision c05e7a3e
1e6232409Smrg#! /bin/sh
2e6232409Smrg# Configuration validation subroutine script.
3c05e7a3eSmrg#   Copyright 1992-2018 Free Software Foundation, Inc.
4e6232409Smrg
5c05e7a3eSmrgtimestamp='2018-02-28'
6e6232409Smrg
76a45684fSmrg# This file is free software; you can redistribute it and/or modify it
86a45684fSmrg# under the terms of the GNU General Public License as published by
96a45684fSmrg# the Free Software Foundation; either version 3 of the License, or
10e6232409Smrg# (at your option) any later version.
11e6232409Smrg#
126a45684fSmrg# This program is distributed in the hope that it will be useful, but
136a45684fSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of
146a45684fSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
156a45684fSmrg# General Public License for more details.
16e6232409Smrg#
17e6232409Smrg# You should have received a copy of the GNU General Public License
18c05e7a3eSmrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
19e6232409Smrg#
20e6232409Smrg# As a special exception to the GNU General Public License, if you
21e6232409Smrg# distribute this file as part of a program that contains a
22e6232409Smrg# configuration script generated by Autoconf, you may include it under
236a45684fSmrg# the same distribution terms that you use for the rest of that
246a45684fSmrg# program.  This Exception is an additional permission under section 7
256a45684fSmrg# of the GNU General Public License, version 3 ("GPLv3").
26e6232409Smrg
27e6232409Smrg
286a45684fSmrg# Please send patches to <config-patches@gnu.org>.
29e6232409Smrg#
30e6232409Smrg# Configuration subroutine to validate and canonicalize a configuration type.
31e6232409Smrg# Supply the specified configuration type as an argument.
32e6232409Smrg# If it is invalid, we print an error message on stderr and exit with code 1.
33e6232409Smrg# Otherwise, we print the canonical config type on stdout and succeed.
34e6232409Smrg
358fff3f40Smrg# You can get the latest version of this script from:
36c05e7a3eSmrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
378fff3f40Smrg
38e6232409Smrg# This file is supposed to be the same for all GNU packages
39e6232409Smrg# and recognize all the CPU types, system types and aliases
40e6232409Smrg# that are meaningful with *any* GNU software.
41e6232409Smrg# Each package is responsible for reporting which valid configurations
42e6232409Smrg# it does not support.  The user should be able to distinguish
43e6232409Smrg# a failure to support a valid configuration from a meaningless
44e6232409Smrg# configuration.
45e6232409Smrg
46e6232409Smrg# The goal of this file is to map all the various variations of a given
47e6232409Smrg# machine specification into a single specification in the form:
48e6232409Smrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
49e6232409Smrg# or in some cases, the newer four-part form:
50e6232409Smrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
51e6232409Smrg# It is wrong to echo any other type of specification.
52e6232409Smrg
53e6232409Smrgme=`echo "$0" | sed -e 's,.*/,,'`
54e6232409Smrg
55e6232409Smrgusage="\
56c05e7a3eSmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
57e6232409Smrg
58e6232409SmrgCanonicalize a configuration name.
59e6232409Smrg
60c05e7a3eSmrgOptions:
61e6232409Smrg  -h, --help         print this help, then exit
62e6232409Smrg  -t, --time-stamp   print date of last modification, then exit
63e6232409Smrg  -v, --version      print version number, then exit
64e6232409Smrg
65e6232409SmrgReport bugs and patches to <config-patches@gnu.org>."
66e6232409Smrg
67e6232409Smrgversion="\
68e6232409SmrgGNU config.sub ($timestamp)
69e6232409Smrg
70c05e7a3eSmrgCopyright 1992-2018 Free Software Foundation, Inc.
71e6232409Smrg
72e6232409SmrgThis is free software; see the source for copying conditions.  There is NO
73e6232409Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
74e6232409Smrg
75e6232409Smrghelp="
76e6232409SmrgTry \`$me --help' for more information."
77e6232409Smrg
78e6232409Smrg# Parse command line
79e6232409Smrgwhile test $# -gt 0 ; do
80e6232409Smrg  case $1 in
81e6232409Smrg    --time-stamp | --time* | -t )
82e6232409Smrg       echo "$timestamp" ; exit ;;
83e6232409Smrg    --version | -v )
84e6232409Smrg       echo "$version" ; exit ;;
85e6232409Smrg    --help | --h* | -h )
86e6232409Smrg       echo "$usage"; exit ;;
87e6232409Smrg    -- )     # Stop option processing
88e6232409Smrg       shift; break ;;
89e6232409Smrg    - )	# Use stdin as input.
90e6232409Smrg       break ;;
91e6232409Smrg    -* )
92e6232409Smrg       echo "$me: invalid option $1$help"
93e6232409Smrg       exit 1 ;;
94e6232409Smrg
95e6232409Smrg    *local*)
96e6232409Smrg       # First pass through any local machine types.
97c05e7a3eSmrg       echo "$1"
98e6232409Smrg       exit ;;
99e6232409Smrg
100e6232409Smrg    * )
101e6232409Smrg       break ;;
102e6232409Smrg  esac
103e6232409Smrgdone
104e6232409Smrg
105e6232409Smrgcase $# in
106e6232409Smrg 0) echo "$me: missing argument$help" >&2
107e6232409Smrg    exit 1;;
108e6232409Smrg 1) ;;
109e6232409Smrg *) echo "$me: too many arguments$help" >&2
110e6232409Smrg    exit 1;;
111e6232409Smrgesac
112e6232409Smrg
113e6232409Smrg# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
114e6232409Smrg# Here we must recognize all the valid KERNEL-OS combinations.
115c05e7a3eSmrgmaybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
116e6232409Smrgcase $maybe_os in
11794a251fdSmrg  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
1186a45684fSmrg  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
119c05e7a3eSmrg  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
120c05e7a3eSmrg  kopensolaris*-gnu* | cloudabi*-eabi* | \
121e6232409Smrg  storm-chaos* | os2-emx* | rtmk-nova*)
122e6232409Smrg    os=-$maybe_os
123c05e7a3eSmrg    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
124e6232409Smrg    ;;
1256a45684fSmrg  android-linux)
1266a45684fSmrg    os=-linux-android
127c05e7a3eSmrg    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
1286a45684fSmrg    ;;
129e6232409Smrg  *)
130c05e7a3eSmrg    basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
131c05e7a3eSmrg    if [ "$basic_machine" != "$1" ]
132c05e7a3eSmrg    then os=`echo "$1" | sed 's/.*-/-/'`
133e6232409Smrg    else os=; fi
134e6232409Smrg    ;;
135e6232409Smrgesac
136e6232409Smrg
137e6232409Smrg### Let's recognize common machines as not being operating systems so
138e6232409Smrg### that things like config.sub decstation-3100 work.  We also
139e6232409Smrg### recognize some manufacturers as not being operating systems, so we
140e6232409Smrg### can provide default operating systems below.
141e6232409Smrgcase $os in
142e6232409Smrg	-sun*os*)
143e6232409Smrg		# Prevent following clause from handling this invalid input.
144e6232409Smrg		;;
145e6232409Smrg	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
146e6232409Smrg	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
147e6232409Smrg	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
148e6232409Smrg	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
149e6232409Smrg	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
150e6232409Smrg	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
1516a45684fSmrg	-apple | -axis | -knuth | -cray | -microblaze*)
152e6232409Smrg		os=
153e6232409Smrg		basic_machine=$1
154e6232409Smrg		;;
15594a251fdSmrg	-bluegene*)
15694a251fdSmrg		os=-cnk
1578fff3f40Smrg		;;
158e6232409Smrg	-sim | -cisco | -oki | -wec | -winbond)
159e6232409Smrg		os=
160e6232409Smrg		basic_machine=$1
161e6232409Smrg		;;
162e6232409Smrg	-scout)
163e6232409Smrg		;;
164e6232409Smrg	-wrs)
165e6232409Smrg		os=-vxworks
166e6232409Smrg		basic_machine=$1
167e6232409Smrg		;;
168e6232409Smrg	-chorusos*)
169e6232409Smrg		os=-chorusos
170e6232409Smrg		basic_machine=$1
171e6232409Smrg		;;
17294a251fdSmrg	-chorusrdb)
17394a251fdSmrg		os=-chorusrdb
174e6232409Smrg		basic_machine=$1
17594a251fdSmrg		;;
176e6232409Smrg	-hiux*)
177e6232409Smrg		os=-hiuxwe2
178e6232409Smrg		;;
179e6232409Smrg	-sco6)
180e6232409Smrg		os=-sco5v6
181c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
182e6232409Smrg		;;
183e6232409Smrg	-sco5)
184e6232409Smrg		os=-sco3.2v5
185c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
186e6232409Smrg		;;
187e6232409Smrg	-sco4)
188e6232409Smrg		os=-sco3.2v4
189c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
190e6232409Smrg		;;
191e6232409Smrg	-sco3.2.[4-9]*)
192e6232409Smrg		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
193c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
194e6232409Smrg		;;
195e6232409Smrg	-sco3.2v[4-9]*)
196e6232409Smrg		# Don't forget version if it is 3.2v4 or newer.
197c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
198e6232409Smrg		;;
199e6232409Smrg	-sco5v6*)
200e6232409Smrg		# Don't forget version if it is 3.2v4 or newer.
201c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
202e6232409Smrg		;;
203e6232409Smrg	-sco*)
204e6232409Smrg		os=-sco3.2v2
205c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
206e6232409Smrg		;;
207e6232409Smrg	-udk*)
208c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
209e6232409Smrg		;;
210e6232409Smrg	-isc)
211e6232409Smrg		os=-isc2.2
212c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
213e6232409Smrg		;;
214e6232409Smrg	-clix*)
215e6232409Smrg		basic_machine=clipper-intergraph
216e6232409Smrg		;;
217e6232409Smrg	-isc*)
218c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
219e6232409Smrg		;;
2206a45684fSmrg	-lynx*178)
2216a45684fSmrg		os=-lynxos178
2226a45684fSmrg		;;
2236a45684fSmrg	-lynx*5)
2246a45684fSmrg		os=-lynxos5
2256a45684fSmrg		;;
226e6232409Smrg	-lynx*)
227e6232409Smrg		os=-lynxos
228e6232409Smrg		;;
229e6232409Smrg	-ptx*)
230c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
231e6232409Smrg		;;
232e6232409Smrg	-psos*)
233e6232409Smrg		os=-psos
234e6232409Smrg		;;
235e6232409Smrg	-mint | -mint[0-9]*)
236e6232409Smrg		basic_machine=m68k-atari
237e6232409Smrg		os=-mint
238e6232409Smrg		;;
239e6232409Smrgesac
240e6232409Smrg
241e6232409Smrg# Decode aliases for certain CPU-COMPANY combinations.
242e6232409Smrgcase $basic_machine in
243e6232409Smrg	# Recognize the basic CPU types without company name.
244e6232409Smrg	# Some are omitted here because they have special meanings below.
245e6232409Smrg	1750a | 580 \
246e6232409Smrg	| a29k \
2476a45684fSmrg	| aarch64 | aarch64_be \
248e6232409Smrg	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
249e6232409Smrg	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
250e6232409Smrg	| am33_2.0 \
2516a45684fSmrg	| arc | arceb \
2526a45684fSmrg	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
2536a45684fSmrg	| avr | avr32 \
254c05e7a3eSmrg	| ba \
2556a45684fSmrg	| be32 | be64 \
256e6232409Smrg	| bfin \
2576a45684fSmrg	| c4x | c8051 | clipper \
258e6232409Smrg	| d10v | d30v | dlx | dsp16xx \
259c05e7a3eSmrg	| e2k | epiphany \
260c05e7a3eSmrg	| fido | fr30 | frv | ft32 \
261e6232409Smrg	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
26294a251fdSmrg	| hexagon \
263c05e7a3eSmrg	| i370 | i860 | i960 | ia16 | ia64 \
264e6232409Smrg	| ip2k | iq2000 \
2656a45684fSmrg	| k1om \
26694a251fdSmrg	| le32 | le64 \
2678fff3f40Smrg	| lm32 \
268e6232409Smrg	| m32c | m32r | m32rle | m68000 | m68k | m88k \
2696a45684fSmrg	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
270e6232409Smrg	| mips | mipsbe | mipseb | mipsel | mipsle \
271e6232409Smrg	| mips16 \
272e6232409Smrg	| mips64 | mips64el \
2738fff3f40Smrg	| mips64octeon | mips64octeonel \
274e6232409Smrg	| mips64orion | mips64orionel \
2758fff3f40Smrg	| mips64r5900 | mips64r5900el \
2768fff3f40Smrg	| mips64vr | mips64vrel \
277e6232409Smrg	| mips64vr4100 | mips64vr4100el \
278e6232409Smrg	| mips64vr4300 | mips64vr4300el \
279e6232409Smrg	| mips64vr5000 | mips64vr5000el \
280e6232409Smrg	| mips64vr5900 | mips64vr5900el \
281e6232409Smrg	| mipsisa32 | mipsisa32el \
282e6232409Smrg	| mipsisa32r2 | mipsisa32r2el \
2836a45684fSmrg	| mipsisa32r6 | mipsisa32r6el \
284e6232409Smrg	| mipsisa64 | mipsisa64el \
285e6232409Smrg	| mipsisa64r2 | mipsisa64r2el \
2866a45684fSmrg	| mipsisa64r6 | mipsisa64r6el \
287e6232409Smrg	| mipsisa64sb1 | mipsisa64sb1el \
288e6232409Smrg	| mipsisa64sr71k | mipsisa64sr71kel \
2896a45684fSmrg	| mipsr5900 | mipsr5900el \
290e6232409Smrg	| mipstx39 | mipstx39el \
291e6232409Smrg	| mn10200 | mn10300 \
2928fff3f40Smrg	| moxie \
293e6232409Smrg	| mt \
294e6232409Smrg	| msp430 \
29594a251fdSmrg	| nds32 | nds32le | nds32be \
2966a45684fSmrg	| nios | nios2 | nios2eb | nios2el \
297e6232409Smrg	| ns16k | ns32k \
2986a45684fSmrg	| open8 | or1k | or1knd | or32 \
299c05e7a3eSmrg	| pdp10 | pj | pjl \
30094a251fdSmrg	| powerpc | powerpc64 | powerpc64le | powerpcle \
301c05e7a3eSmrg	| pru \
302e6232409Smrg	| pyramid \
3036a45684fSmrg	| riscv32 | riscv64 \
30494a251fdSmrg	| rl78 | rx \
305e6232409Smrg	| score \
306c05e7a3eSmrg	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
307e6232409Smrg	| sh64 | sh64le \
308e6232409Smrg	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
309e6232409Smrg	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
31094a251fdSmrg	| spu \
31194a251fdSmrg	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
3128fff3f40Smrg	| ubicom32 \
31394a251fdSmrg	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
3146a45684fSmrg	| visium \
315c05e7a3eSmrg	| wasm32 \
31694a251fdSmrg	| x86 | xc16x | xstormy16 | xtensa \
3178fff3f40Smrg	| z8k | z80)
318e6232409Smrg		basic_machine=$basic_machine-unknown
319e6232409Smrg		;;
32094a251fdSmrg	c54x)
32194a251fdSmrg		basic_machine=tic54x-unknown
32294a251fdSmrg		;;
32394a251fdSmrg	c55x)
32494a251fdSmrg		basic_machine=tic55x-unknown
32594a251fdSmrg		;;
32694a251fdSmrg	c6x)
32794a251fdSmrg		basic_machine=tic6x-unknown
32894a251fdSmrg		;;
3296a45684fSmrg	leon|leon[3-9])
3306a45684fSmrg		basic_machine=sparc-$basic_machine
3316a45684fSmrg		;;
3326a45684fSmrg	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
333e6232409Smrg		basic_machine=$basic_machine-unknown
334e6232409Smrg		os=-none
335e6232409Smrg		;;
336c05e7a3eSmrg	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
337e6232409Smrg		;;
338e6232409Smrg	ms1)
339e6232409Smrg		basic_machine=mt-unknown
340e6232409Smrg		;;
341e6232409Smrg
34294a251fdSmrg	strongarm | thumb | xscale)
34394a251fdSmrg		basic_machine=arm-unknown
34494a251fdSmrg		;;
3456a45684fSmrg	xgate)
3466a45684fSmrg		basic_machine=$basic_machine-unknown
3476a45684fSmrg		os=-none
3486a45684fSmrg		;;
34994a251fdSmrg	xscaleeb)
35094a251fdSmrg		basic_machine=armeb-unknown
35194a251fdSmrg		;;
35294a251fdSmrg
35394a251fdSmrg	xscaleel)
35494a251fdSmrg		basic_machine=armel-unknown
35594a251fdSmrg		;;
35694a251fdSmrg
357e6232409Smrg	# We use `pc' rather than `unknown'
358e6232409Smrg	# because (1) that's what they normally are, and
359e6232409Smrg	# (2) the word "unknown" tends to confuse beginning users.
360e6232409Smrg	i*86 | x86_64)
361e6232409Smrg	  basic_machine=$basic_machine-pc
362e6232409Smrg	  ;;
363e6232409Smrg	# Object if more than one company name word.
364e6232409Smrg	*-*-*)
365c05e7a3eSmrg		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
366e6232409Smrg		exit 1
367e6232409Smrg		;;
368e6232409Smrg	# Recognize the basic CPU types with company name.
369e6232409Smrg	580-* \
370e6232409Smrg	| a29k-* \
3716a45684fSmrg	| aarch64-* | aarch64_be-* \
372e6232409Smrg	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
373e6232409Smrg	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
3746a45684fSmrg	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
375e6232409Smrg	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
376e6232409Smrg	| avr-* | avr32-* \
377c05e7a3eSmrg	| ba-* \
37894a251fdSmrg	| be32-* | be64-* \
379e6232409Smrg	| bfin-* | bs2000-* \
38094a251fdSmrg	| c[123]* | c30-* | [cjt]90-* | c4x-* \
3816a45684fSmrg	| c8051-* | clipper-* | craynv-* | cydra-* \
382e6232409Smrg	| d10v-* | d30v-* | dlx-* \
383c05e7a3eSmrg	| e2k-* | elxsi-* \
384e6232409Smrg	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
385e6232409Smrg	| h8300-* | h8500-* \
386e6232409Smrg	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
38794a251fdSmrg	| hexagon-* \
388c05e7a3eSmrg	| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
389e6232409Smrg	| ip2k-* | iq2000-* \
3906a45684fSmrg	| k1om-* \
39194a251fdSmrg	| le32-* | le64-* \
3928fff3f40Smrg	| lm32-* \
393e6232409Smrg	| m32c-* | m32r-* | m32rle-* \
394e6232409Smrg	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
3956a45684fSmrg	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
3966a45684fSmrg	| microblaze-* | microblazeel-* \
397e6232409Smrg	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
398e6232409Smrg	| mips16-* \
399e6232409Smrg	| mips64-* | mips64el-* \
4008fff3f40Smrg	| mips64octeon-* | mips64octeonel-* \
401e6232409Smrg	| mips64orion-* | mips64orionel-* \
4028fff3f40Smrg	| mips64r5900-* | mips64r5900el-* \
4038fff3f40Smrg	| mips64vr-* | mips64vrel-* \
404e6232409Smrg	| mips64vr4100-* | mips64vr4100el-* \
405e6232409Smrg	| mips64vr4300-* | mips64vr4300el-* \
406e6232409Smrg	| mips64vr5000-* | mips64vr5000el-* \
407e6232409Smrg	| mips64vr5900-* | mips64vr5900el-* \
408e6232409Smrg	| mipsisa32-* | mipsisa32el-* \
409e6232409Smrg	| mipsisa32r2-* | mipsisa32r2el-* \
4106a45684fSmrg	| mipsisa32r6-* | mipsisa32r6el-* \
411e6232409Smrg	| mipsisa64-* | mipsisa64el-* \
412e6232409Smrg	| mipsisa64r2-* | mipsisa64r2el-* \
4136a45684fSmrg	| mipsisa64r6-* | mipsisa64r6el-* \
414e6232409Smrg	| mipsisa64sb1-* | mipsisa64sb1el-* \
415e6232409Smrg	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
4166a45684fSmrg	| mipsr5900-* | mipsr5900el-* \
417e6232409Smrg	| mipstx39-* | mipstx39el-* \
418e6232409Smrg	| mmix-* \
419e6232409Smrg	| mt-* \
420e6232409Smrg	| msp430-* \
42194a251fdSmrg	| nds32-* | nds32le-* | nds32be-* \
4226a45684fSmrg	| nios-* | nios2-* | nios2eb-* | nios2el-* \
423e6232409Smrg	| none-* | np1-* | ns16k-* | ns32k-* \
42494a251fdSmrg	| open8-* \
4256a45684fSmrg	| or1k*-* \
426e6232409Smrg	| orion-* \
427e6232409Smrg	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
42894a251fdSmrg	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
429c05e7a3eSmrg	| pru-* \
430e6232409Smrg	| pyramid-* \
431c05e7a3eSmrg	| riscv32-* | riscv64-* \
43294a251fdSmrg	| rl78-* | romp-* | rs6000-* | rx-* \
4338fff3f40Smrg	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
434e6232409Smrg	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
435e6232409Smrg	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
436e6232409Smrg	| sparclite-* \
437c05e7a3eSmrg	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
43894a251fdSmrg	| tahoe-* \
439e6232409Smrg	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
44094a251fdSmrg	| tile*-* \
441e6232409Smrg	| tron-* \
4428fff3f40Smrg	| ubicom32-* \
44394a251fdSmrg	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
44494a251fdSmrg	| vax-* \
4456a45684fSmrg	| visium-* \
446c05e7a3eSmrg	| wasm32-* \
447e6232409Smrg	| we32k-* \
44894a251fdSmrg	| x86-* | x86_64-* | xc16x-* | xps100-* \
4498fff3f40Smrg	| xstormy16-* | xtensa*-* \
450e6232409Smrg	| ymp-* \
4518fff3f40Smrg	| z8k-* | z80-*)
4528fff3f40Smrg		;;
4538fff3f40Smrg	# Recognize the basic CPU types without company name, with glob match.
4548fff3f40Smrg	xtensa*)
4558fff3f40Smrg		basic_machine=$basic_machine-unknown
456e6232409Smrg		;;
457e6232409Smrg	# Recognize the various machine names and aliases which stand
458e6232409Smrg	# for a CPU type and a company and sometimes even an OS.
459e6232409Smrg	386bsd)
460c05e7a3eSmrg		basic_machine=i386-pc
461e6232409Smrg		os=-bsd
462e6232409Smrg		;;
463e6232409Smrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
464e6232409Smrg		basic_machine=m68000-att
465e6232409Smrg		;;
466e6232409Smrg	3b*)
467e6232409Smrg		basic_machine=we32k-att
468e6232409Smrg		;;
469e6232409Smrg	a29khif)
470e6232409Smrg		basic_machine=a29k-amd
471e6232409Smrg		os=-udi
472e6232409Smrg		;;
47394a251fdSmrg	abacus)
474e6232409Smrg		basic_machine=abacus-unknown
475e6232409Smrg		;;
476e6232409Smrg	adobe68k)
477e6232409Smrg		basic_machine=m68010-adobe
478e6232409Smrg		os=-scout
479e6232409Smrg		;;
480e6232409Smrg	alliant | fx80)
481e6232409Smrg		basic_machine=fx80-alliant
482e6232409Smrg		;;
483e6232409Smrg	altos | altos3068)
484e6232409Smrg		basic_machine=m68k-altos
485e6232409Smrg		;;
486e6232409Smrg	am29k)
487e6232409Smrg		basic_machine=a29k-none
488e6232409Smrg		os=-bsd
489e6232409Smrg		;;
490e6232409Smrg	amd64)
491e6232409Smrg		basic_machine=x86_64-pc
492e6232409Smrg		;;
493e6232409Smrg	amd64-*)
494c05e7a3eSmrg		basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
495e6232409Smrg		;;
496e6232409Smrg	amdahl)
497e6232409Smrg		basic_machine=580-amdahl
498e6232409Smrg		os=-sysv
499e6232409Smrg		;;
500e6232409Smrg	amiga | amiga-*)
501e6232409Smrg		basic_machine=m68k-unknown
502e6232409Smrg		;;
503e6232409Smrg	amigaos | amigados)
504e6232409Smrg		basic_machine=m68k-unknown
505e6232409Smrg		os=-amigaos
506e6232409Smrg		;;
507e6232409Smrg	amigaunix | amix)
508e6232409Smrg		basic_machine=m68k-unknown
509e6232409Smrg		os=-sysv4
510e6232409Smrg		;;
511e6232409Smrg	apollo68)
512e6232409Smrg		basic_machine=m68k-apollo
513e6232409Smrg		os=-sysv
514e6232409Smrg		;;
515e6232409Smrg	apollo68bsd)
516e6232409Smrg		basic_machine=m68k-apollo
517e6232409Smrg		os=-bsd
518e6232409Smrg		;;
5198fff3f40Smrg	aros)
5208fff3f40Smrg		basic_machine=i386-pc
5218fff3f40Smrg		os=-aros
5228fff3f40Smrg		;;
523c05e7a3eSmrg	asmjs)
524c05e7a3eSmrg		basic_machine=asmjs-unknown
525c05e7a3eSmrg		;;
526e6232409Smrg	aux)
527e6232409Smrg		basic_machine=m68k-apple
528e6232409Smrg		os=-aux
529e6232409Smrg		;;
530e6232409Smrg	balance)
531e6232409Smrg		basic_machine=ns32k-sequent
532e6232409Smrg		os=-dynix
533e6232409Smrg		;;
5348fff3f40Smrg	blackfin)
5358fff3f40Smrg		basic_machine=bfin-unknown
5368fff3f40Smrg		os=-linux
5378fff3f40Smrg		;;
5388fff3f40Smrg	blackfin-*)
539c05e7a3eSmrg		basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
5408fff3f40Smrg		os=-linux
5418fff3f40Smrg		;;
5428fff3f40Smrg	bluegene*)
5438fff3f40Smrg		basic_machine=powerpc-ibm
5448fff3f40Smrg		os=-cnk
5458fff3f40Smrg		;;
54694a251fdSmrg	c54x-*)
547c05e7a3eSmrg		basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
54894a251fdSmrg		;;
54994a251fdSmrg	c55x-*)
550c05e7a3eSmrg		basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
55194a251fdSmrg		;;
55294a251fdSmrg	c6x-*)
553c05e7a3eSmrg		basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
55494a251fdSmrg		;;
555e6232409Smrg	c90)
556e6232409Smrg		basic_machine=c90-cray
557e6232409Smrg		os=-unicos
558e6232409Smrg		;;
55994a251fdSmrg	cegcc)
5608fff3f40Smrg		basic_machine=arm-unknown
5618fff3f40Smrg		os=-cegcc
5628fff3f40Smrg		;;
563e6232409Smrg	convex-c1)
564e6232409Smrg		basic_machine=c1-convex
565e6232409Smrg		os=-bsd
566e6232409Smrg		;;
567e6232409Smrg	convex-c2)
568e6232409Smrg		basic_machine=c2-convex
569e6232409Smrg		os=-bsd
570e6232409Smrg		;;
571e6232409Smrg	convex-c32)
572e6232409Smrg		basic_machine=c32-convex
573e6232409Smrg		os=-bsd
574e6232409Smrg		;;
575e6232409Smrg	convex-c34)
576e6232409Smrg		basic_machine=c34-convex
577e6232409Smrg		os=-bsd
578e6232409Smrg		;;
579e6232409Smrg	convex-c38)
580e6232409Smrg		basic_machine=c38-convex
581e6232409Smrg		os=-bsd
582e6232409Smrg		;;
583e6232409Smrg	cray | j90)
584e6232409Smrg		basic_machine=j90-cray
585e6232409Smrg		os=-unicos
586e6232409Smrg		;;
587e6232409Smrg	craynv)
588e6232409Smrg		basic_machine=craynv-cray
589e6232409Smrg		os=-unicosmp
590e6232409Smrg		;;
59194a251fdSmrg	cr16 | cr16-*)
5928fff3f40Smrg		basic_machine=cr16-unknown
593e6232409Smrg		os=-elf
594e6232409Smrg		;;
595e6232409Smrg	crds | unos)
596e6232409Smrg		basic_machine=m68k-crds
597e6232409Smrg		;;
598e6232409Smrg	crisv32 | crisv32-* | etraxfs*)
599e6232409Smrg		basic_machine=crisv32-axis
600e6232409Smrg		;;
601e6232409Smrg	cris | cris-* | etrax*)
602e6232409Smrg		basic_machine=cris-axis
603e6232409Smrg		;;
604e6232409Smrg	crx)
605e6232409Smrg		basic_machine=crx-unknown
606e6232409Smrg		os=-elf
607e6232409Smrg		;;
608e6232409Smrg	da30 | da30-*)
609e6232409Smrg		basic_machine=m68k-da30
610e6232409Smrg		;;
611e6232409Smrg	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
612e6232409Smrg		basic_machine=mips-dec
613e6232409Smrg		;;
614e6232409Smrg	decsystem10* | dec10*)
615e6232409Smrg		basic_machine=pdp10-dec
616e6232409Smrg		os=-tops10
617e6232409Smrg		;;
618e6232409Smrg	decsystem20* | dec20*)
619e6232409Smrg		basic_machine=pdp10-dec
620e6232409Smrg		os=-tops20
621e6232409Smrg		;;
622e6232409Smrg	delta | 3300 | motorola-3300 | motorola-delta \
623e6232409Smrg	      | 3300-motorola | delta-motorola)
624e6232409Smrg		basic_machine=m68k-motorola
625e6232409Smrg		;;
626e6232409Smrg	delta88)
627e6232409Smrg		basic_machine=m88k-motorola
628e6232409Smrg		os=-sysv3
629e6232409Smrg		;;
6308fff3f40Smrg	dicos)
6318fff3f40Smrg		basic_machine=i686-pc
6328fff3f40Smrg		os=-dicos
6338fff3f40Smrg		;;
634e6232409Smrg	djgpp)
635e6232409Smrg		basic_machine=i586-pc
636e6232409Smrg		os=-msdosdjgpp
637e6232409Smrg		;;
638e6232409Smrg	dpx20 | dpx20-*)
639e6232409Smrg		basic_machine=rs6000-bull
640e6232409Smrg		os=-bosx
641e6232409Smrg		;;
642c05e7a3eSmrg	dpx2*)
643e6232409Smrg		basic_machine=m68k-bull
644e6232409Smrg		os=-sysv3
645e6232409Smrg		;;
646c05e7a3eSmrg	e500v[12])
647c05e7a3eSmrg		basic_machine=powerpc-unknown
648c05e7a3eSmrg		os=$os"spe"
649c05e7a3eSmrg		;;
650c05e7a3eSmrg	e500v[12]-*)
651c05e7a3eSmrg		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
652c05e7a3eSmrg		os=$os"spe"
653c05e7a3eSmrg		;;
654e6232409Smrg	ebmon29k)
655e6232409Smrg		basic_machine=a29k-amd
656e6232409Smrg		os=-ebmon
657e6232409Smrg		;;
658e6232409Smrg	elxsi)
659e6232409Smrg		basic_machine=elxsi-elxsi
660e6232409Smrg		os=-bsd
661e6232409Smrg		;;
662e6232409Smrg	encore | umax | mmax)
663e6232409Smrg		basic_machine=ns32k-encore
664e6232409Smrg		;;
665e6232409Smrg	es1800 | OSE68k | ose68k | ose | OSE)
666e6232409Smrg		basic_machine=m68k-ericsson
667e6232409Smrg		os=-ose
668e6232409Smrg		;;
669e6232409Smrg	fx2800)
670e6232409Smrg		basic_machine=i860-alliant
671e6232409Smrg		;;
672e6232409Smrg	genix)
673e6232409Smrg		basic_machine=ns32k-ns
674e6232409Smrg		;;
675e6232409Smrg	gmicro)
676e6232409Smrg		basic_machine=tron-gmicro
677e6232409Smrg		os=-sysv
678e6232409Smrg		;;
679e6232409Smrg	go32)
680e6232409Smrg		basic_machine=i386-pc
681e6232409Smrg		os=-go32
682e6232409Smrg		;;
683e6232409Smrg	h3050r* | hiux*)
684e6232409Smrg		basic_machine=hppa1.1-hitachi
685e6232409Smrg		os=-hiuxwe2
686e6232409Smrg		;;
687e6232409Smrg	h8300hms)
688e6232409Smrg		basic_machine=h8300-hitachi
689e6232409Smrg		os=-hms
690e6232409Smrg		;;
691e6232409Smrg	h8300xray)
692e6232409Smrg		basic_machine=h8300-hitachi
693e6232409Smrg		os=-xray
694e6232409Smrg		;;
695e6232409Smrg	h8500hms)
696e6232409Smrg		basic_machine=h8500-hitachi
697e6232409Smrg		os=-hms
698e6232409Smrg		;;
699e6232409Smrg	harris)
700e6232409Smrg		basic_machine=m88k-harris
701e6232409Smrg		os=-sysv3
702e6232409Smrg		;;
703e6232409Smrg	hp300-*)
704e6232409Smrg		basic_machine=m68k-hp
705e6232409Smrg		;;
706e6232409Smrg	hp300bsd)
707e6232409Smrg		basic_machine=m68k-hp
708e6232409Smrg		os=-bsd
709e6232409Smrg		;;
710e6232409Smrg	hp300hpux)
711e6232409Smrg		basic_machine=m68k-hp
712e6232409Smrg		os=-hpux
713e6232409Smrg		;;
714e6232409Smrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
715e6232409Smrg		basic_machine=hppa1.0-hp
716e6232409Smrg		;;
717e6232409Smrg	hp9k2[0-9][0-9] | hp9k31[0-9])
718e6232409Smrg		basic_machine=m68000-hp
719e6232409Smrg		;;
720e6232409Smrg	hp9k3[2-9][0-9])
721e6232409Smrg		basic_machine=m68k-hp
722e6232409Smrg		;;
723e6232409Smrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
724e6232409Smrg		basic_machine=hppa1.0-hp
725e6232409Smrg		;;
726e6232409Smrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
727e6232409Smrg		basic_machine=hppa1.1-hp
728e6232409Smrg		;;
729e6232409Smrg	hp9k78[0-9] | hp78[0-9])
730e6232409Smrg		# FIXME: really hppa2.0-hp
731e6232409Smrg		basic_machine=hppa1.1-hp
732e6232409Smrg		;;
733e6232409Smrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
734e6232409Smrg		# FIXME: really hppa2.0-hp
735e6232409Smrg		basic_machine=hppa1.1-hp
736e6232409Smrg		;;
737e6232409Smrg	hp9k8[0-9][13679] | hp8[0-9][13679])
738e6232409Smrg		basic_machine=hppa1.1-hp
739e6232409Smrg		;;
740e6232409Smrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
741e6232409Smrg		basic_machine=hppa1.0-hp
742e6232409Smrg		;;
743e6232409Smrg	hppaosf)
744e6232409Smrg		basic_machine=hppa1.1-hp
745e6232409Smrg		os=-osf
746e6232409Smrg		;;
747e6232409Smrg	hppro)
748e6232409Smrg		basic_machine=hppa1.1-hp
749e6232409Smrg		os=-proelf
750e6232409Smrg		;;
751e6232409Smrg	i370-ibm* | ibm*)
752e6232409Smrg		basic_machine=i370-ibm
753e6232409Smrg		;;
754e6232409Smrg	i*86v32)
755c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
756e6232409Smrg		os=-sysv32
757e6232409Smrg		;;
758e6232409Smrg	i*86v4*)
759c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
760e6232409Smrg		os=-sysv4
761e6232409Smrg		;;
762e6232409Smrg	i*86v)
763c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
764e6232409Smrg		os=-sysv
765e6232409Smrg		;;
766e6232409Smrg	i*86sol2)
767c05e7a3eSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
768e6232409Smrg		os=-solaris2
769e6232409Smrg		;;
770e6232409Smrg	i386mach)
771e6232409Smrg		basic_machine=i386-mach
772e6232409Smrg		os=-mach
773e6232409Smrg		;;
774c05e7a3eSmrg	vsta)
775e6232409Smrg		basic_machine=i386-unknown
776e6232409Smrg		os=-vsta
777e6232409Smrg		;;
778e6232409Smrg	iris | iris4d)
779e6232409Smrg		basic_machine=mips-sgi
780e6232409Smrg		case $os in
781e6232409Smrg		    -irix*)
782e6232409Smrg			;;
783e6232409Smrg		    *)
784e6232409Smrg			os=-irix4
785e6232409Smrg			;;
786e6232409Smrg		esac
787e6232409Smrg		;;
788e6232409Smrg	isi68 | isi)
789e6232409Smrg		basic_machine=m68k-isi
790e6232409Smrg		os=-sysv
791e6232409Smrg		;;
7926a45684fSmrg	leon-*|leon[3-9]-*)
793c05e7a3eSmrg		basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
7946a45684fSmrg		;;
7958fff3f40Smrg	m68knommu)
7968fff3f40Smrg		basic_machine=m68k-unknown
7978fff3f40Smrg		os=-linux
7988fff3f40Smrg		;;
7998fff3f40Smrg	m68knommu-*)
800c05e7a3eSmrg		basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
8018fff3f40Smrg		os=-linux
8028fff3f40Smrg		;;
803e6232409Smrg	magnum | m3230)
804e6232409Smrg		basic_machine=mips-mips
805e6232409Smrg		os=-sysv
806e6232409Smrg		;;
807e6232409Smrg	merlin)
808e6232409Smrg		basic_machine=ns32k-utek
809e6232409Smrg		os=-sysv
810e6232409Smrg		;;
8116a45684fSmrg	microblaze*)
8128fff3f40Smrg		basic_machine=microblaze-xilinx
8138fff3f40Smrg		;;
8146a45684fSmrg	mingw64)
8156a45684fSmrg		basic_machine=x86_64-pc
8166a45684fSmrg		os=-mingw64
8176a45684fSmrg		;;
818e6232409Smrg	mingw32)
8196a45684fSmrg		basic_machine=i686-pc
820e6232409Smrg		os=-mingw32
821e6232409Smrg		;;
8228fff3f40Smrg	mingw32ce)
8238fff3f40Smrg		basic_machine=arm-unknown
8248fff3f40Smrg		os=-mingw32ce
8258fff3f40Smrg		;;
826e6232409Smrg	miniframe)
827e6232409Smrg		basic_machine=m68000-convergent
828e6232409Smrg		;;
829e6232409Smrg	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
830e6232409Smrg		basic_machine=m68k-atari
831e6232409Smrg		os=-mint
832e6232409Smrg		;;
833e6232409Smrg	mips3*-*)
834c05e7a3eSmrg		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
835e6232409Smrg		;;
836e6232409Smrg	mips3*)
837c05e7a3eSmrg		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
838e6232409Smrg		;;
839e6232409Smrg	monitor)
840e6232409Smrg		basic_machine=m68k-rom68k
841e6232409Smrg		os=-coff
842e6232409Smrg		;;
843e6232409Smrg	morphos)
844e6232409Smrg		basic_machine=powerpc-unknown
845e6232409Smrg		os=-morphos
846e6232409Smrg		;;
8476a45684fSmrg	moxiebox)
8486a45684fSmrg		basic_machine=moxie-unknown
8496a45684fSmrg		os=-moxiebox
8506a45684fSmrg		;;
851e6232409Smrg	msdos)
852e6232409Smrg		basic_machine=i386-pc
853e6232409Smrg		os=-msdos
854e6232409Smrg		;;
855e6232409Smrg	ms1-*)
856c05e7a3eSmrg		basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
857e6232409Smrg		;;
85894a251fdSmrg	msys)
8596a45684fSmrg		basic_machine=i686-pc
86094a251fdSmrg		os=-msys
86194a251fdSmrg		;;
862e6232409Smrg	mvs)
863e6232409Smrg		basic_machine=i370-ibm
864e6232409Smrg		os=-mvs
865e6232409Smrg		;;
86694a251fdSmrg	nacl)
86794a251fdSmrg		basic_machine=le32-unknown
86894a251fdSmrg		os=-nacl
86994a251fdSmrg		;;
870e6232409Smrg	ncr3000)
871e6232409Smrg		basic_machine=i486-ncr
872e6232409Smrg		os=-sysv4
873e6232409Smrg		;;
874e6232409Smrg	netbsd386)
875e6232409Smrg		basic_machine=i386-unknown
876e6232409Smrg		os=-netbsd
877e6232409Smrg		;;
878e6232409Smrg	netwinder)
879e6232409Smrg		basic_machine=armv4l-rebel
880e6232409Smrg		os=-linux
881e6232409Smrg		;;
882e6232409Smrg	news | news700 | news800 | news900)
883e6232409Smrg		basic_machine=m68k-sony
884e6232409Smrg		os=-newsos
885e6232409Smrg		;;
886e6232409Smrg	news1000)
887e6232409Smrg		basic_machine=m68030-sony
888e6232409Smrg		os=-newsos
889e6232409Smrg		;;
890e6232409Smrg	news-3600 | risc-news)
891e6232409Smrg		basic_machine=mips-sony
892e6232409Smrg		os=-newsos
893e6232409Smrg		;;
894e6232409Smrg	necv70)
895e6232409Smrg		basic_machine=v70-nec
896e6232409Smrg		os=-sysv
897e6232409Smrg		;;
898c05e7a3eSmrg	next | m*-next)
899e6232409Smrg		basic_machine=m68k-next
900e6232409Smrg		case $os in
901e6232409Smrg		    -nextstep* )
902e6232409Smrg			;;
903e6232409Smrg		    -ns2*)
904e6232409Smrg		      os=-nextstep2
905e6232409Smrg			;;
906e6232409Smrg		    *)
907e6232409Smrg		      os=-nextstep3
908e6232409Smrg			;;
909e6232409Smrg		esac
910e6232409Smrg		;;
911e6232409Smrg	nh3000)
912e6232409Smrg		basic_machine=m68k-harris
913e6232409Smrg		os=-cxux
914e6232409Smrg		;;
915e6232409Smrg	nh[45]000)
916e6232409Smrg		basic_machine=m88k-harris
917e6232409Smrg		os=-cxux
918e6232409Smrg		;;
919e6232409Smrg	nindy960)
920e6232409Smrg		basic_machine=i960-intel
921e6232409Smrg		os=-nindy
922e6232409Smrg		;;
923e6232409Smrg	mon960)
924e6232409Smrg		basic_machine=i960-intel
925e6232409Smrg		os=-mon960
926e6232409Smrg		;;
927e6232409Smrg	nonstopux)
928e6232409Smrg		basic_machine=mips-compaq
929e6232409Smrg		os=-nonstopux
930e6232409Smrg		;;
931e6232409Smrg	np1)
932e6232409Smrg		basic_machine=np1-gould
933e6232409Smrg		;;
93494a251fdSmrg	neo-tandem)
93594a251fdSmrg		basic_machine=neo-tandem
93694a251fdSmrg		;;
93794a251fdSmrg	nse-tandem)
93894a251fdSmrg		basic_machine=nse-tandem
93994a251fdSmrg		;;
940e6232409Smrg	nsr-tandem)
941e6232409Smrg		basic_machine=nsr-tandem
942e6232409Smrg		;;
943c05e7a3eSmrg	nsv-tandem)
944c05e7a3eSmrg		basic_machine=nsv-tandem
945c05e7a3eSmrg		;;
946c05e7a3eSmrg	nsx-tandem)
947c05e7a3eSmrg		basic_machine=nsx-tandem
948c05e7a3eSmrg		;;
949e6232409Smrg	op50n-* | op60c-*)
950e6232409Smrg		basic_machine=hppa1.1-oki
951e6232409Smrg		os=-proelf
952e6232409Smrg		;;
953e6232409Smrg	openrisc | openrisc-*)
954e6232409Smrg		basic_machine=or32-unknown
955e6232409Smrg		;;
956e6232409Smrg	os400)
957e6232409Smrg		basic_machine=powerpc-ibm
958e6232409Smrg		os=-os400
959e6232409Smrg		;;
960e6232409Smrg	OSE68000 | ose68000)
961e6232409Smrg		basic_machine=m68000-ericsson
962e6232409Smrg		os=-ose
963e6232409Smrg		;;
964e6232409Smrg	os68k)
965e6232409Smrg		basic_machine=m68k-none
966e6232409Smrg		os=-os68k
967e6232409Smrg		;;
968e6232409Smrg	pa-hitachi)
969e6232409Smrg		basic_machine=hppa1.1-hitachi
970e6232409Smrg		os=-hiuxwe2
971e6232409Smrg		;;
972e6232409Smrg	paragon)
973e6232409Smrg		basic_machine=i860-intel
974e6232409Smrg		os=-osf
975e6232409Smrg		;;
9768fff3f40Smrg	parisc)
9778fff3f40Smrg		basic_machine=hppa-unknown
9788fff3f40Smrg		os=-linux
9798fff3f40Smrg		;;
9808fff3f40Smrg	parisc-*)
981c05e7a3eSmrg		basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
9828fff3f40Smrg		os=-linux
9838fff3f40Smrg		;;
984e6232409Smrg	pbd)
985e6232409Smrg		basic_machine=sparc-tti
986e6232409Smrg		;;
987e6232409Smrg	pbb)
988e6232409Smrg		basic_machine=m68k-tti
989e6232409Smrg		;;
990e6232409Smrg	pc532 | pc532-*)
991e6232409Smrg		basic_machine=ns32k-pc532
992e6232409Smrg		;;
993e6232409Smrg	pc98)
994e6232409Smrg		basic_machine=i386-pc
995e6232409Smrg		;;
996e6232409Smrg	pc98-*)
997c05e7a3eSmrg		basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
998e6232409Smrg		;;
999e6232409Smrg	pentium | p5 | k5 | k6 | nexgen | viac3)
1000e6232409Smrg		basic_machine=i586-pc
1001e6232409Smrg		;;
1002e6232409Smrg	pentiumpro | p6 | 6x86 | athlon | athlon_*)
1003e6232409Smrg		basic_machine=i686-pc
1004e6232409Smrg		;;
1005e6232409Smrg	pentiumii | pentium2 | pentiumiii | pentium3)
1006e6232409Smrg		basic_machine=i686-pc
1007e6232409Smrg		;;
1008e6232409Smrg	pentium4)
1009e6232409Smrg		basic_machine=i786-pc
1010e6232409Smrg		;;
1011e6232409Smrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1012c05e7a3eSmrg		basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1013e6232409Smrg		;;
1014e6232409Smrg	pentiumpro-* | p6-* | 6x86-* | athlon-*)
1015c05e7a3eSmrg		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1016e6232409Smrg		;;
1017e6232409Smrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1018c05e7a3eSmrg		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1019e6232409Smrg		;;
1020e6232409Smrg	pentium4-*)
1021c05e7a3eSmrg		basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1022e6232409Smrg		;;
1023e6232409Smrg	pn)
1024e6232409Smrg		basic_machine=pn-gould
1025e6232409Smrg		;;
1026e6232409Smrg	power)	basic_machine=power-ibm
1027e6232409Smrg		;;
102894a251fdSmrg	ppc | ppcbe)	basic_machine=powerpc-unknown
1029e6232409Smrg		;;
103094a251fdSmrg	ppc-* | ppcbe-*)
1031c05e7a3eSmrg		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1032e6232409Smrg		;;
1033c05e7a3eSmrg	ppcle | powerpclittle)
1034e6232409Smrg		basic_machine=powerpcle-unknown
1035e6232409Smrg		;;
1036e6232409Smrg	ppcle-* | powerpclittle-*)
1037c05e7a3eSmrg		basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1038e6232409Smrg		;;
1039e6232409Smrg	ppc64)	basic_machine=powerpc64-unknown
1040e6232409Smrg		;;
1041c05e7a3eSmrg	ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1042e6232409Smrg		;;
1043c05e7a3eSmrg	ppc64le | powerpc64little)
1044e6232409Smrg		basic_machine=powerpc64le-unknown
1045e6232409Smrg		;;
1046e6232409Smrg	ppc64le-* | powerpc64little-*)
1047c05e7a3eSmrg		basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1048e6232409Smrg		;;
1049e6232409Smrg	ps2)
1050e6232409Smrg		basic_machine=i386-ibm
1051e6232409Smrg		;;
1052e6232409Smrg	pw32)
1053e6232409Smrg		basic_machine=i586-unknown
1054e6232409Smrg		os=-pw32
1055e6232409Smrg		;;
10566a45684fSmrg	rdos | rdos64)
10576a45684fSmrg		basic_machine=x86_64-pc
10586a45684fSmrg		os=-rdos
10596a45684fSmrg		;;
10606a45684fSmrg	rdos32)
1061e6232409Smrg		basic_machine=i386-pc
1062e6232409Smrg		os=-rdos
1063e6232409Smrg		;;
1064e6232409Smrg	rom68k)
1065e6232409Smrg		basic_machine=m68k-rom68k
1066e6232409Smrg		os=-coff
1067e6232409Smrg		;;
1068e6232409Smrg	rm[46]00)
1069e6232409Smrg		basic_machine=mips-siemens
1070e6232409Smrg		;;
1071e6232409Smrg	rtpc | rtpc-*)
1072e6232409Smrg		basic_machine=romp-ibm
1073e6232409Smrg		;;
1074e6232409Smrg	s390 | s390-*)
1075e6232409Smrg		basic_machine=s390-ibm
1076e6232409Smrg		;;
1077e6232409Smrg	s390x | s390x-*)
1078e6232409Smrg		basic_machine=s390x-ibm
1079e6232409Smrg		;;
1080e6232409Smrg	sa29200)
1081e6232409Smrg		basic_machine=a29k-amd
1082e6232409Smrg		os=-udi
1083e6232409Smrg		;;
1084e6232409Smrg	sb1)
1085e6232409Smrg		basic_machine=mipsisa64sb1-unknown
1086e6232409Smrg		;;
1087e6232409Smrg	sb1el)
1088e6232409Smrg		basic_machine=mipsisa64sb1el-unknown
1089e6232409Smrg		;;
1090e6232409Smrg	sde)
1091e6232409Smrg		basic_machine=mipsisa32-sde
1092e6232409Smrg		os=-elf
1093e6232409Smrg		;;
1094e6232409Smrg	sei)
1095e6232409Smrg		basic_machine=mips-sei
1096e6232409Smrg		os=-seiux
1097e6232409Smrg		;;
1098e6232409Smrg	sequent)
1099e6232409Smrg		basic_machine=i386-sequent
1100e6232409Smrg		;;
1101e6232409Smrg	sh5el)
1102e6232409Smrg		basic_machine=sh5le-unknown
1103e6232409Smrg		;;
1104c05e7a3eSmrg	simso-wrs)
1105e6232409Smrg		basic_machine=sparclite-wrs
1106e6232409Smrg		os=-vxworks
1107e6232409Smrg		;;
1108e6232409Smrg	sps7)
1109e6232409Smrg		basic_machine=m68k-bull
1110e6232409Smrg		os=-sysv2
1111e6232409Smrg		;;
1112e6232409Smrg	spur)
1113e6232409Smrg		basic_machine=spur-unknown
1114e6232409Smrg		;;
1115e6232409Smrg	st2000)
1116e6232409Smrg		basic_machine=m68k-tandem
1117e6232409Smrg		;;
1118e6232409Smrg	stratus)
1119e6232409Smrg		basic_machine=i860-stratus
1120e6232409Smrg		os=-sysv4
1121e6232409Smrg		;;
112294a251fdSmrg	strongarm-* | thumb-*)
1123c05e7a3eSmrg		basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
112494a251fdSmrg		;;
1125e6232409Smrg	sun2)
1126e6232409Smrg		basic_machine=m68000-sun
1127e6232409Smrg		;;
1128e6232409Smrg	sun2os3)
1129e6232409Smrg		basic_machine=m68000-sun
1130e6232409Smrg		os=-sunos3
1131e6232409Smrg		;;
1132e6232409Smrg	sun2os4)
1133e6232409Smrg		basic_machine=m68000-sun
1134e6232409Smrg		os=-sunos4
1135e6232409Smrg		;;
1136e6232409Smrg	sun3os3)
1137e6232409Smrg		basic_machine=m68k-sun
1138e6232409Smrg		os=-sunos3
1139e6232409Smrg		;;
1140e6232409Smrg	sun3os4)
1141e6232409Smrg		basic_machine=m68k-sun
1142e6232409Smrg		os=-sunos4
1143e6232409Smrg		;;
1144e6232409Smrg	sun4os3)
1145e6232409Smrg		basic_machine=sparc-sun
1146e6232409Smrg		os=-sunos3
1147e6232409Smrg		;;
1148e6232409Smrg	sun4os4)
1149e6232409Smrg		basic_machine=sparc-sun
1150e6232409Smrg		os=-sunos4
1151e6232409Smrg		;;
1152e6232409Smrg	sun4sol2)
1153e6232409Smrg		basic_machine=sparc-sun
1154e6232409Smrg		os=-solaris2
1155e6232409Smrg		;;
1156e6232409Smrg	sun3 | sun3-*)
1157e6232409Smrg		basic_machine=m68k-sun
1158e6232409Smrg		;;
1159e6232409Smrg	sun4)
1160e6232409Smrg		basic_machine=sparc-sun
1161e6232409Smrg		;;
1162e6232409Smrg	sun386 | sun386i | roadrunner)
1163e6232409Smrg		basic_machine=i386-sun
1164e6232409Smrg		;;
1165e6232409Smrg	sv1)
1166e6232409Smrg		basic_machine=sv1-cray
1167e6232409Smrg		os=-unicos
1168e6232409Smrg		;;
1169e6232409Smrg	symmetry)
1170e6232409Smrg		basic_machine=i386-sequent
1171e6232409Smrg		os=-dynix
1172e6232409Smrg		;;
1173e6232409Smrg	t3e)
1174e6232409Smrg		basic_machine=alphaev5-cray
1175e6232409Smrg		os=-unicos
1176e6232409Smrg		;;
1177e6232409Smrg	t90)
1178e6232409Smrg		basic_machine=t90-cray
1179e6232409Smrg		os=-unicos
1180e6232409Smrg		;;
11818fff3f40Smrg	tile*)
118294a251fdSmrg		basic_machine=$basic_machine-unknown
11838fff3f40Smrg		os=-linux-gnu
11848fff3f40Smrg		;;
1185e6232409Smrg	tx39)
1186e6232409Smrg		basic_machine=mipstx39-unknown
1187e6232409Smrg		;;
1188e6232409Smrg	tx39el)
1189e6232409Smrg		basic_machine=mipstx39el-unknown
1190e6232409Smrg		;;
1191e6232409Smrg	toad1)
1192e6232409Smrg		basic_machine=pdp10-xkl
1193e6232409Smrg		os=-tops20
1194e6232409Smrg		;;
1195e6232409Smrg	tower | tower-32)
1196e6232409Smrg		basic_machine=m68k-ncr
1197e6232409Smrg		;;
1198e6232409Smrg	tpf)
1199e6232409Smrg		basic_machine=s390x-ibm
1200e6232409Smrg		os=-tpf
1201e6232409Smrg		;;
1202e6232409Smrg	udi29k)
1203e6232409Smrg		basic_machine=a29k-amd
1204e6232409Smrg		os=-udi
1205e6232409Smrg		;;
1206e6232409Smrg	ultra3)
1207e6232409Smrg		basic_machine=a29k-nyu
1208e6232409Smrg		os=-sym1
1209e6232409Smrg		;;
1210e6232409Smrg	v810 | necv810)
1211e6232409Smrg		basic_machine=v810-nec
1212e6232409Smrg		os=-none
1213e6232409Smrg		;;
1214e6232409Smrg	vaxv)
1215e6232409Smrg		basic_machine=vax-dec
1216e6232409Smrg		os=-sysv
1217e6232409Smrg		;;
1218e6232409Smrg	vms)
1219e6232409Smrg		basic_machine=vax-dec
1220e6232409Smrg		os=-vms
1221e6232409Smrg		;;
1222e6232409Smrg	vpp*|vx|vx-*)
1223e6232409Smrg		basic_machine=f301-fujitsu
1224e6232409Smrg		;;
1225e6232409Smrg	vxworks960)
1226e6232409Smrg		basic_machine=i960-wrs
1227e6232409Smrg		os=-vxworks
1228e6232409Smrg		;;
1229e6232409Smrg	vxworks68)
1230e6232409Smrg		basic_machine=m68k-wrs
1231e6232409Smrg		os=-vxworks
1232e6232409Smrg		;;
1233e6232409Smrg	vxworks29k)
1234e6232409Smrg		basic_machine=a29k-wrs
1235e6232409Smrg		os=-vxworks
1236e6232409Smrg		;;
1237e6232409Smrg	w65*)
1238e6232409Smrg		basic_machine=w65-wdc
1239e6232409Smrg		os=-none
1240e6232409Smrg		;;
1241e6232409Smrg	w89k-*)
1242e6232409Smrg		basic_machine=hppa1.1-winbond
1243e6232409Smrg		os=-proelf
1244e6232409Smrg		;;
1245c05e7a3eSmrg	x64)
1246c05e7a3eSmrg		basic_machine=x86_64-pc
1247c05e7a3eSmrg		;;
1248e6232409Smrg	xbox)
1249e6232409Smrg		basic_machine=i686-pc
1250e6232409Smrg		os=-mingw32
1251e6232409Smrg		;;
1252e6232409Smrg	xps | xps100)
1253e6232409Smrg		basic_machine=xps100-honeywell
1254e6232409Smrg		;;
125594a251fdSmrg	xscale-* | xscalee[bl]-*)
1256c05e7a3eSmrg		basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
125794a251fdSmrg		;;
1258e6232409Smrg	ymp)
1259e6232409Smrg		basic_machine=ymp-cray
1260e6232409Smrg		os=-unicos
1261e6232409Smrg		;;
1262e6232409Smrg	none)
1263e6232409Smrg		basic_machine=none-none
1264e6232409Smrg		os=-none
1265e6232409Smrg		;;
1266e6232409Smrg
1267e6232409Smrg# Here we handle the default manufacturer of certain CPU types.  It is in
1268e6232409Smrg# some cases the only manufacturer, in others, it is the most popular.
1269e6232409Smrg	w89k)
1270e6232409Smrg		basic_machine=hppa1.1-winbond
1271e6232409Smrg		;;
1272e6232409Smrg	op50n)
1273e6232409Smrg		basic_machine=hppa1.1-oki
1274e6232409Smrg		;;
1275e6232409Smrg	op60c)
1276e6232409Smrg		basic_machine=hppa1.1-oki
1277e6232409Smrg		;;
1278e6232409Smrg	romp)
1279e6232409Smrg		basic_machine=romp-ibm
1280e6232409Smrg		;;
1281e6232409Smrg	mmix)
1282e6232409Smrg		basic_machine=mmix-knuth
1283e6232409Smrg		;;
1284e6232409Smrg	rs6000)
1285e6232409Smrg		basic_machine=rs6000-ibm
1286e6232409Smrg		;;
1287e6232409Smrg	vax)
1288e6232409Smrg		basic_machine=vax-dec
1289e6232409Smrg		;;
1290e6232409Smrg	pdp11)
1291e6232409Smrg		basic_machine=pdp11-dec
1292e6232409Smrg		;;
1293e6232409Smrg	we32k)
1294e6232409Smrg		basic_machine=we32k-att
1295e6232409Smrg		;;
12968fff3f40Smrg	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1297e6232409Smrg		basic_machine=sh-unknown
1298e6232409Smrg		;;
1299e6232409Smrg	cydra)
1300e6232409Smrg		basic_machine=cydra-cydrome
1301e6232409Smrg		;;
1302e6232409Smrg	orion)
1303e6232409Smrg		basic_machine=orion-highlevel
1304e6232409Smrg		;;
1305e6232409Smrg	orion105)
1306e6232409Smrg		basic_machine=clipper-highlevel
1307e6232409Smrg		;;
1308e6232409Smrg	mac | mpw | mac-mpw)
1309e6232409Smrg		basic_machine=m68k-apple
1310e6232409Smrg		;;
1311e6232409Smrg	pmac | pmac-mpw)
1312e6232409Smrg		basic_machine=powerpc-apple
1313e6232409Smrg		;;
1314e6232409Smrg	*-unknown)
1315e6232409Smrg		# Make sure to match an already-canonicalized machine name.
1316e6232409Smrg		;;
1317e6232409Smrg	*)
1318c05e7a3eSmrg		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
1319e6232409Smrg		exit 1
1320e6232409Smrg		;;
1321e6232409Smrgesac
1322e6232409Smrg
1323e6232409Smrg# Here we canonicalize certain aliases for manufacturers.
1324e6232409Smrgcase $basic_machine in
1325e6232409Smrg	*-digital*)
1326c05e7a3eSmrg		basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
1327e6232409Smrg		;;
1328e6232409Smrg	*-commodore*)
1329c05e7a3eSmrg		basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
1330e6232409Smrg		;;
1331e6232409Smrg	*)
1332e6232409Smrg		;;
1333e6232409Smrgesac
1334e6232409Smrg
1335e6232409Smrg# Decode manufacturer-specific aliases for certain operating systems.
1336e6232409Smrg
1337e6232409Smrgif [ x"$os" != x"" ]
1338e6232409Smrgthen
1339e6232409Smrgcase $os in
1340c05e7a3eSmrg	# First match some system type aliases that might get confused
1341c05e7a3eSmrg	# with valid system types.
1342e6232409Smrg	# -solaris* is a basic system type, with this one exception.
134394a251fdSmrg	-auroraux)
134494a251fdSmrg		os=-auroraux
13458fff3f40Smrg		;;
1346e6232409Smrg	-solaris1 | -solaris1.*)
1347e6232409Smrg		os=`echo $os | sed -e 's|solaris1|sunos4|'`
1348e6232409Smrg		;;
1349e6232409Smrg	-solaris)
1350e6232409Smrg		os=-solaris2
1351e6232409Smrg		;;
1352e6232409Smrg	-unixware*)
1353e6232409Smrg		os=-sysv4.2uw
1354e6232409Smrg		;;
1355e6232409Smrg	-gnu/linux*)
1356e6232409Smrg		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1357e6232409Smrg		;;
1358c05e7a3eSmrg	# es1800 is here to avoid being matched by es* (a different OS)
1359c05e7a3eSmrg	-es1800*)
1360c05e7a3eSmrg		os=-ose
1361c05e7a3eSmrg		;;
1362c05e7a3eSmrg	# Now accept the basic system types.
1363e6232409Smrg	# The portable systems comes first.
1364c05e7a3eSmrg	# Each alternative MUST end in a * to match a version number.
1365e6232409Smrg	# -sysv* is not here because it comes later, after sysvr4.
1366e6232409Smrg	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
13678fff3f40Smrg	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
13688fff3f40Smrg	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
13696a45684fSmrg	      | -sym* | -kopensolaris* | -plan9* \
1370e6232409Smrg	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1371c05e7a3eSmrg	      | -aos* | -aros* | -cloudabi* | -sortix* \
1372e6232409Smrg	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1373e6232409Smrg	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1374c05e7a3eSmrg	      | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
1375c05e7a3eSmrg	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
1376e6232409Smrg	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1377e6232409Smrg	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1378e6232409Smrg	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1379c05e7a3eSmrg	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \
1380c05e7a3eSmrg	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
138194a251fdSmrg	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1382c05e7a3eSmrg	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
13836a45684fSmrg	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
13846a45684fSmrg	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
1385c05e7a3eSmrg	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
1386e6232409Smrg	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1387e6232409Smrg	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1388e6232409Smrg	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1389c05e7a3eSmrg	      | -morphos* | -superux* | -rtmk* | -windiss* \
1390e6232409Smrg	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1391c05e7a3eSmrg	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
1392c05e7a3eSmrg	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
1393c05e7a3eSmrg	      | -midnightbsd*)
1394e6232409Smrg	# Remember, each alternative MUST END IN *, to match a version number.
1395e6232409Smrg		;;
1396e6232409Smrg	-qnx*)
1397e6232409Smrg		case $basic_machine in
1398e6232409Smrg		    x86-* | i*86-*)
1399e6232409Smrg			;;
1400e6232409Smrg		    *)
1401e6232409Smrg			os=-nto$os
1402e6232409Smrg			;;
1403e6232409Smrg		esac
1404e6232409Smrg		;;
1405e6232409Smrg	-nto-qnx*)
1406e6232409Smrg		;;
1407e6232409Smrg	-nto*)
1408e6232409Smrg		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1409e6232409Smrg		;;
1410c05e7a3eSmrg	-sim | -xray | -os68k* | -v88r* \
1411c05e7a3eSmrg	      | -windows* | -osx | -abug | -netware* | -os9* \
1412e6232409Smrg	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1413e6232409Smrg		;;
1414e6232409Smrg	-mac*)
1415c05e7a3eSmrg		os=`echo "$os" | sed -e 's|mac|macos|'`
1416e6232409Smrg		;;
1417e6232409Smrg	-linux-dietlibc)
1418e6232409Smrg		os=-linux-dietlibc
1419e6232409Smrg		;;
1420e6232409Smrg	-linux*)
1421e6232409Smrg		os=`echo $os | sed -e 's|linux|linux-gnu|'`
1422e6232409Smrg		;;
1423e6232409Smrg	-sunos5*)
1424c05e7a3eSmrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
1425e6232409Smrg		;;
1426e6232409Smrg	-sunos6*)
1427c05e7a3eSmrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
1428e6232409Smrg		;;
1429e6232409Smrg	-opened*)
1430e6232409Smrg		os=-openedition
1431e6232409Smrg		;;
143294a251fdSmrg	-os400*)
1433e6232409Smrg		os=-os400
1434e6232409Smrg		;;
1435e6232409Smrg	-wince*)
1436e6232409Smrg		os=-wince
1437e6232409Smrg		;;
1438e6232409Smrg	-utek*)
1439e6232409Smrg		os=-bsd
1440e6232409Smrg		;;
1441e6232409Smrg	-dynix*)
1442e6232409Smrg		os=-bsd
1443e6232409Smrg		;;
1444e6232409Smrg	-acis*)
1445e6232409Smrg		os=-aos
1446e6232409Smrg		;;
1447e6232409Smrg	-atheos*)
1448e6232409Smrg		os=-atheos
1449e6232409Smrg		;;
1450e6232409Smrg	-syllable*)
1451e6232409Smrg		os=-syllable
1452e6232409Smrg		;;
1453e6232409Smrg	-386bsd)
1454e6232409Smrg		os=-bsd
1455e6232409Smrg		;;
1456e6232409Smrg	-ctix* | -uts*)
1457e6232409Smrg		os=-sysv
1458e6232409Smrg		;;
1459e6232409Smrg	-nova*)
1460e6232409Smrg		os=-rtmk-nova
1461e6232409Smrg		;;
1462c05e7a3eSmrg	-ns2)
1463e6232409Smrg		os=-nextstep2
1464e6232409Smrg		;;
1465e6232409Smrg	-nsk*)
1466e6232409Smrg		os=-nsk
1467e6232409Smrg		;;
1468e6232409Smrg	# Preserve the version number of sinix5.
1469e6232409Smrg	-sinix5.*)
1470e6232409Smrg		os=`echo $os | sed -e 's|sinix|sysv|'`
1471e6232409Smrg		;;
1472e6232409Smrg	-sinix*)
1473e6232409Smrg		os=-sysv4
1474e6232409Smrg		;;
147594a251fdSmrg	-tpf*)
1476e6232409Smrg		os=-tpf
1477e6232409Smrg		;;
1478e6232409Smrg	-triton*)
1479e6232409Smrg		os=-sysv3
1480e6232409Smrg		;;
1481e6232409Smrg	-oss*)
1482e6232409Smrg		os=-sysv3
1483e6232409Smrg		;;
1484c05e7a3eSmrg	-svr4*)
1485e6232409Smrg		os=-sysv4
1486e6232409Smrg		;;
1487e6232409Smrg	-svr3)
1488e6232409Smrg		os=-sysv3
1489e6232409Smrg		;;
1490e6232409Smrg	-sysvr4)
1491e6232409Smrg		os=-sysv4
1492e6232409Smrg		;;
1493e6232409Smrg	# This must come after -sysvr4.
1494e6232409Smrg	-sysv*)
1495e6232409Smrg		;;
1496e6232409Smrg	-ose*)
1497e6232409Smrg		os=-ose
1498e6232409Smrg		;;
1499e6232409Smrg	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1500e6232409Smrg		os=-mint
1501e6232409Smrg		;;
1502e6232409Smrg	-zvmoe)
1503e6232409Smrg		os=-zvmoe
1504e6232409Smrg		;;
15058fff3f40Smrg	-dicos*)
15068fff3f40Smrg		os=-dicos
15078fff3f40Smrg		;;
1508c05e7a3eSmrg	-pikeos*)
1509c05e7a3eSmrg		# Until real need of OS specific support for
1510c05e7a3eSmrg		# particular features comes up, bare metal
1511c05e7a3eSmrg		# configurations are quite functional.
1512c05e7a3eSmrg		case $basic_machine in
1513c05e7a3eSmrg		    arm*)
1514c05e7a3eSmrg			os=-eabi
1515c05e7a3eSmrg			;;
1516c05e7a3eSmrg		    *)
1517c05e7a3eSmrg			os=-elf
1518c05e7a3eSmrg			;;
1519c05e7a3eSmrg		esac
1520c05e7a3eSmrg		;;
152194a251fdSmrg	-nacl*)
152294a251fdSmrg		;;
1523c05e7a3eSmrg	-ios)
1524c05e7a3eSmrg		;;
1525e6232409Smrg	-none)
1526e6232409Smrg		;;
1527e6232409Smrg	*)
1528e6232409Smrg		# Get rid of the `-' at the beginning of $os.
1529e6232409Smrg		os=`echo $os | sed 's/[^-]*-//'`
1530c05e7a3eSmrg		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
1531e6232409Smrg		exit 1
1532e6232409Smrg		;;
1533e6232409Smrgesac
1534e6232409Smrgelse
1535e6232409Smrg
1536e6232409Smrg# Here we handle the default operating systems that come with various machines.
1537e6232409Smrg# The value should be what the vendor currently ships out the door with their
1538e6232409Smrg# machine or put another way, the most popular os provided with the machine.
1539e6232409Smrg
1540e6232409Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
1541e6232409Smrg# "-sun"), then you have to tell the case statement up towards the top
1542e6232409Smrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
1543e6232409Smrg# will signal an error saying that MANUFACTURER isn't an operating
1544e6232409Smrg# system, and we'll never get to this point.
1545e6232409Smrg
1546e6232409Smrgcase $basic_machine in
154794a251fdSmrg	score-*)
1548e6232409Smrg		os=-elf
1549e6232409Smrg		;;
155094a251fdSmrg	spu-*)
1551e6232409Smrg		os=-elf
1552e6232409Smrg		;;
1553e6232409Smrg	*-acorn)
1554e6232409Smrg		os=-riscix1.2
1555e6232409Smrg		;;
1556e6232409Smrg	arm*-rebel)
1557e6232409Smrg		os=-linux
1558e6232409Smrg		;;
1559e6232409Smrg	arm*-semi)
1560e6232409Smrg		os=-aout
1561e6232409Smrg		;;
156294a251fdSmrg	c4x-* | tic4x-*)
156394a251fdSmrg		os=-coff
156494a251fdSmrg		;;
15656a45684fSmrg	c8051-*)
15666a45684fSmrg		os=-elf
15676a45684fSmrg		;;
15686a45684fSmrg	hexagon-*)
15696a45684fSmrg		os=-elf
15706a45684fSmrg		;;
157194a251fdSmrg	tic54x-*)
157294a251fdSmrg		os=-coff
157394a251fdSmrg		;;
157494a251fdSmrg	tic55x-*)
157594a251fdSmrg		os=-coff
157694a251fdSmrg		;;
157794a251fdSmrg	tic6x-*)
157894a251fdSmrg		os=-coff
1579e6232409Smrg		;;
1580e6232409Smrg	# This must come before the *-dec entry.
1581e6232409Smrg	pdp10-*)
1582e6232409Smrg		os=-tops20
1583e6232409Smrg		;;
1584e6232409Smrg	pdp11-*)
1585e6232409Smrg		os=-none
1586e6232409Smrg		;;
1587e6232409Smrg	*-dec | vax-*)
1588e6232409Smrg		os=-ultrix4.2
1589e6232409Smrg		;;
1590e6232409Smrg	m68*-apollo)
1591e6232409Smrg		os=-domain
1592e6232409Smrg		;;
1593e6232409Smrg	i386-sun)
1594e6232409Smrg		os=-sunos4.0.2
1595e6232409Smrg		;;
1596e6232409Smrg	m68000-sun)
1597e6232409Smrg		os=-sunos3
1598e6232409Smrg		;;
1599e6232409Smrg	m68*-cisco)
1600e6232409Smrg		os=-aout
1601e6232409Smrg		;;
160294a251fdSmrg	mep-*)
16038fff3f40Smrg		os=-elf
16048fff3f40Smrg		;;
1605e6232409Smrg	mips*-cisco)
1606e6232409Smrg		os=-elf
1607e6232409Smrg		;;
1608e6232409Smrg	mips*-*)
1609e6232409Smrg		os=-elf
1610e6232409Smrg		;;
1611e6232409Smrg	or32-*)
1612e6232409Smrg		os=-coff
1613e6232409Smrg		;;
1614e6232409Smrg	*-tti)	# must be before sparc entry or we get the wrong os.
1615e6232409Smrg		os=-sysv3
1616e6232409Smrg		;;
1617e6232409Smrg	sparc-* | *-sun)
1618e6232409Smrg		os=-sunos4.1.1
1619e6232409Smrg		;;
1620c05e7a3eSmrg	pru-*)
1621c05e7a3eSmrg		os=-elf
1622c05e7a3eSmrg		;;
1623e6232409Smrg	*-be)
1624e6232409Smrg		os=-beos
1625e6232409Smrg		;;
1626e6232409Smrg	*-ibm)
1627e6232409Smrg		os=-aix
1628e6232409Smrg		;;
162994a251fdSmrg	*-knuth)
1630e6232409Smrg		os=-mmixware
1631e6232409Smrg		;;
1632e6232409Smrg	*-wec)
1633e6232409Smrg		os=-proelf
1634e6232409Smrg		;;
1635e6232409Smrg	*-winbond)
1636e6232409Smrg		os=-proelf
1637e6232409Smrg		;;
1638e6232409Smrg	*-oki)
1639e6232409Smrg		os=-proelf
1640e6232409Smrg		;;
1641e6232409Smrg	*-hp)
1642e6232409Smrg		os=-hpux
1643e6232409Smrg		;;
1644e6232409Smrg	*-hitachi)
1645e6232409Smrg		os=-hiux
1646e6232409Smrg		;;
1647e6232409Smrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1648e6232409Smrg		os=-sysv
1649e6232409Smrg		;;
1650e6232409Smrg	*-cbm)
1651e6232409Smrg		os=-amigaos
1652e6232409Smrg		;;
1653e6232409Smrg	*-dg)
1654e6232409Smrg		os=-dgux
1655e6232409Smrg		;;
1656e6232409Smrg	*-dolphin)
1657e6232409Smrg		os=-sysv3
1658e6232409Smrg		;;
1659e6232409Smrg	m68k-ccur)
1660e6232409Smrg		os=-rtu
1661e6232409Smrg		;;
1662e6232409Smrg	m88k-omron*)
1663e6232409Smrg		os=-luna
1664e6232409Smrg		;;
1665c05e7a3eSmrg	*-next)
1666e6232409Smrg		os=-nextstep
1667e6232409Smrg		;;
1668e6232409Smrg	*-sequent)
1669e6232409Smrg		os=-ptx
1670e6232409Smrg		;;
1671e6232409Smrg	*-crds)
1672e6232409Smrg		os=-unos
1673e6232409Smrg		;;
1674e6232409Smrg	*-ns)
1675e6232409Smrg		os=-genix
1676e6232409Smrg		;;
1677e6232409Smrg	i370-*)
1678e6232409Smrg		os=-mvs
1679e6232409Smrg		;;
1680e6232409Smrg	*-gould)
1681e6232409Smrg		os=-sysv
1682e6232409Smrg		;;
1683e6232409Smrg	*-highlevel)
1684e6232409Smrg		os=-bsd
1685e6232409Smrg		;;
1686e6232409Smrg	*-encore)
1687e6232409Smrg		os=-bsd
1688e6232409Smrg		;;
1689e6232409Smrg	*-sgi)
1690e6232409Smrg		os=-irix
1691e6232409Smrg		;;
1692e6232409Smrg	*-siemens)
1693e6232409Smrg		os=-sysv4
1694e6232409Smrg		;;
1695e6232409Smrg	*-masscomp)
1696e6232409Smrg		os=-rtu
1697e6232409Smrg		;;
1698e6232409Smrg	f30[01]-fujitsu | f700-fujitsu)
1699e6232409Smrg		os=-uxpv
1700e6232409Smrg		;;
1701e6232409Smrg	*-rom68k)
1702e6232409Smrg		os=-coff
1703e6232409Smrg		;;
1704e6232409Smrg	*-*bug)
1705e6232409Smrg		os=-coff
1706e6232409Smrg		;;
1707e6232409Smrg	*-apple)
1708e6232409Smrg		os=-macos
1709e6232409Smrg		;;
1710e6232409Smrg	*-atari*)
1711e6232409Smrg		os=-mint
1712e6232409Smrg		;;
1713e6232409Smrg	*)
1714e6232409Smrg		os=-none
1715e6232409Smrg		;;
1716e6232409Smrgesac
1717e6232409Smrgfi
1718e6232409Smrg
1719e6232409Smrg# Here we handle the case where we know the os, and the CPU type, but not the
1720e6232409Smrg# manufacturer.  We pick the logical manufacturer.
1721e6232409Smrgvendor=unknown
1722e6232409Smrgcase $basic_machine in
1723e6232409Smrg	*-unknown)
1724e6232409Smrg		case $os in
1725e6232409Smrg			-riscix*)
1726e6232409Smrg				vendor=acorn
1727e6232409Smrg				;;
1728e6232409Smrg			-sunos*)
1729e6232409Smrg				vendor=sun
1730e6232409Smrg				;;
17318fff3f40Smrg			-cnk*|-aix*)
1732e6232409Smrg				vendor=ibm
1733e6232409Smrg				;;
1734e6232409Smrg			-beos*)
1735e6232409Smrg				vendor=be
1736e6232409Smrg				;;
1737e6232409Smrg			-hpux*)
1738e6232409Smrg				vendor=hp
1739e6232409Smrg				;;
1740e6232409Smrg			-mpeix*)
1741e6232409Smrg				vendor=hp
1742e6232409Smrg				;;
1743e6232409Smrg			-hiux*)
1744e6232409Smrg				vendor=hitachi
1745e6232409Smrg				;;
1746e6232409Smrg			-unos*)
1747e6232409Smrg				vendor=crds
1748e6232409Smrg				;;
1749e6232409Smrg			-dgux*)
1750e6232409Smrg				vendor=dg
1751e6232409Smrg				;;
1752e6232409Smrg			-luna*)
1753e6232409Smrg				vendor=omron
1754e6232409Smrg				;;
1755e6232409Smrg			-genix*)
1756e6232409Smrg				vendor=ns
1757e6232409Smrg				;;
1758e6232409Smrg			-mvs* | -opened*)
1759e6232409Smrg				vendor=ibm
1760e6232409Smrg				;;
1761e6232409Smrg			-os400*)
1762e6232409Smrg				vendor=ibm
1763e6232409Smrg				;;
1764e6232409Smrg			-ptx*)
1765e6232409Smrg				vendor=sequent
1766e6232409Smrg				;;
1767e6232409Smrg			-tpf*)
1768e6232409Smrg				vendor=ibm
1769e6232409Smrg				;;
1770e6232409Smrg			-vxsim* | -vxworks* | -windiss*)
1771e6232409Smrg				vendor=wrs
1772e6232409Smrg				;;
1773e6232409Smrg			-aux*)
1774e6232409Smrg				vendor=apple
1775e6232409Smrg				;;
1776e6232409Smrg			-hms*)
1777e6232409Smrg				vendor=hitachi
1778e6232409Smrg				;;
1779e6232409Smrg			-mpw* | -macos*)
1780e6232409Smrg				vendor=apple
1781e6232409Smrg				;;
1782e6232409Smrg			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1783e6232409Smrg				vendor=atari
1784e6232409Smrg				;;
1785e6232409Smrg			-vos*)
1786e6232409Smrg				vendor=stratus
1787e6232409Smrg				;;
1788e6232409Smrg		esac
1789c05e7a3eSmrg		basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
1790e6232409Smrg		;;
1791e6232409Smrgesac
1792e6232409Smrg
1793c05e7a3eSmrgecho "$basic_machine$os"
1794e6232409Smrgexit
1795e6232409Smrg
1796e6232409Smrg# Local variables:
1797c05e7a3eSmrg# eval: (add-hook 'write-file-functions 'time-stamp)
1798e6232409Smrg# time-stamp-start: "timestamp='"
1799e6232409Smrg# time-stamp-format: "%:y-%02m-%02d"
1800e6232409Smrg# time-stamp-end: "'"
1801e6232409Smrg# End:
1802