config.sub revision 2f60eb46
1692f60a7Smrg#! /bin/sh
2692f60a7Smrg# Configuration validation subroutine script.
32f60eb46Smrg#   Copyright 1992-2015 Free Software Foundation, Inc.
4692f60a7Smrg
52f60eb46Smrgtimestamp='2015-08-20'
6692f60a7Smrg
7eaa3dbe0Smrg# This file is free software; you can redistribute it and/or modify it
8eaa3dbe0Smrg# under the terms of the GNU General Public License as published by
9eaa3dbe0Smrg# the Free Software Foundation; either version 3 of the License, or
10692f60a7Smrg# (at your option) any later version.
11692f60a7Smrg#
12eaa3dbe0Smrg# This program is distributed in the hope that it will be useful, but
13eaa3dbe0Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
14eaa3dbe0Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15eaa3dbe0Smrg# General Public License for more details.
16692f60a7Smrg#
17692f60a7Smrg# You should have received a copy of the GNU General Public License
18eaa3dbe0Smrg# along with this program; if not, see <http://www.gnu.org/licenses/>.
1954569438Smrg#
20692f60a7Smrg# As a special exception to the GNU General Public License, if you
21692f60a7Smrg# distribute this file as part of a program that contains a
22692f60a7Smrg# configuration script generated by Autoconf, you may include it under
23eaa3dbe0Smrg# the same distribution terms that you use for the rest of that
24eaa3dbe0Smrg# program.  This Exception is an additional permission under section 7
25eaa3dbe0Smrg# of the GNU General Public License, version 3 ("GPLv3").
26692f60a7Smrg
2754569438Smrg
282f60eb46Smrg# Please send patches to <config-patches@gnu.org>.
29692f60a7Smrg#
30692f60a7Smrg# Configuration subroutine to validate and canonicalize a configuration type.
31692f60a7Smrg# Supply the specified configuration type as an argument.
32692f60a7Smrg# If it is invalid, we print an error message on stderr and exit with code 1.
33692f60a7Smrg# Otherwise, we print the canonical config type on stdout and succeed.
34692f60a7Smrg
353f6d0e1dSmrg# You can get the latest version of this script from:
363f6d0e1dSmrg# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
373f6d0e1dSmrg
38692f60a7Smrg# This file is supposed to be the same for all GNU packages
39692f60a7Smrg# and recognize all the CPU types, system types and aliases
40692f60a7Smrg# that are meaningful with *any* GNU software.
41692f60a7Smrg# Each package is responsible for reporting which valid configurations
42692f60a7Smrg# it does not support.  The user should be able to distinguish
43692f60a7Smrg# a failure to support a valid configuration from a meaningless
44692f60a7Smrg# configuration.
45692f60a7Smrg
46692f60a7Smrg# The goal of this file is to map all the various variations of a given
47692f60a7Smrg# machine specification into a single specification in the form:
48692f60a7Smrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
49692f60a7Smrg# or in some cases, the newer four-part form:
50692f60a7Smrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
51692f60a7Smrg# It is wrong to echo any other type of specification.
52692f60a7Smrg
53692f60a7Smrgme=`echo "$0" | sed -e 's,.*/,,'`
54692f60a7Smrg
55692f60a7Smrgusage="\
56692f60a7SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS
57692f60a7Smrg       $0 [OPTION] ALIAS
58692f60a7Smrg
59692f60a7SmrgCanonicalize a configuration name.
60692f60a7Smrg
61692f60a7SmrgOperation modes:
62692f60a7Smrg  -h, --help         print this help, then exit
63692f60a7Smrg  -t, --time-stamp   print date of last modification, then exit
64692f60a7Smrg  -v, --version      print version number, then exit
65692f60a7Smrg
66692f60a7SmrgReport bugs and patches to <config-patches@gnu.org>."
67692f60a7Smrg
68692f60a7Smrgversion="\
69692f60a7SmrgGNU config.sub ($timestamp)
70692f60a7Smrg
712f60eb46SmrgCopyright 1992-2015 Free Software Foundation, Inc.
72692f60a7Smrg
73692f60a7SmrgThis is free software; see the source for copying conditions.  There is NO
74692f60a7Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
75692f60a7Smrg
76692f60a7Smrghelp="
77692f60a7SmrgTry \`$me --help' for more information."
78692f60a7Smrg
79692f60a7Smrg# Parse command line
80692f60a7Smrgwhile test $# -gt 0 ; do
81692f60a7Smrg  case $1 in
82692f60a7Smrg    --time-stamp | --time* | -t )
8354569438Smrg       echo "$timestamp" ; exit ;;
84692f60a7Smrg    --version | -v )
8554569438Smrg       echo "$version" ; exit ;;
86692f60a7Smrg    --help | --h* | -h )
8754569438Smrg       echo "$usage"; exit ;;
88692f60a7Smrg    -- )     # Stop option processing
89692f60a7Smrg       shift; break ;;
90692f60a7Smrg    - )	# Use stdin as input.
91692f60a7Smrg       break ;;
92692f60a7Smrg    -* )
93692f60a7Smrg       echo "$me: invalid option $1$help"
94692f60a7Smrg       exit 1 ;;
95692f60a7Smrg
96692f60a7Smrg    *local*)
97692f60a7Smrg       # First pass through any local machine types.
98692f60a7Smrg       echo $1
9954569438Smrg       exit ;;
100692f60a7Smrg
101692f60a7Smrg    * )
102692f60a7Smrg       break ;;
103692f60a7Smrg  esac
104692f60a7Smrgdone
105692f60a7Smrg
106692f60a7Smrgcase $# in
107692f60a7Smrg 0) echo "$me: missing argument$help" >&2
108692f60a7Smrg    exit 1;;
109692f60a7Smrg 1) ;;
110692f60a7Smrg *) echo "$me: too many arguments$help" >&2
111692f60a7Smrg    exit 1;;
112692f60a7Smrgesac
113692f60a7Smrg
114692f60a7Smrg# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
115692f60a7Smrg# Here we must recognize all the valid KERNEL-OS combinations.
116692f60a7Smrgmaybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
117692f60a7Smrgcase $maybe_os in
1183f6d0e1dSmrg  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
119eaa3dbe0Smrg  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
1202f60eb46Smrg  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
1213f6d0e1dSmrg  kopensolaris*-gnu* | \
12254569438Smrg  storm-chaos* | os2-emx* | rtmk-nova*)
123692f60a7Smrg    os=-$maybe_os
124692f60a7Smrg    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
125692f60a7Smrg    ;;
126eaa3dbe0Smrg  android-linux)
127eaa3dbe0Smrg    os=-linux-android
128eaa3dbe0Smrg    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
129eaa3dbe0Smrg    ;;
130692f60a7Smrg  *)
131692f60a7Smrg    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
132692f60a7Smrg    if [ $basic_machine != $1 ]
133692f60a7Smrg    then os=`echo $1 | sed 's/.*-/-/'`
134692f60a7Smrg    else os=; fi
135692f60a7Smrg    ;;
136692f60a7Smrgesac
137692f60a7Smrg
138692f60a7Smrg### Let's recognize common machines as not being operating systems so
139692f60a7Smrg### that things like config.sub decstation-3100 work.  We also
140692f60a7Smrg### recognize some manufacturers as not being operating systems, so we
141692f60a7Smrg### can provide default operating systems below.
142692f60a7Smrgcase $os in
143692f60a7Smrg	-sun*os*)
144692f60a7Smrg		# Prevent following clause from handling this invalid input.
145692f60a7Smrg		;;
146692f60a7Smrg	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
147692f60a7Smrg	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
148692f60a7Smrg	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
149692f60a7Smrg	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
150692f60a7Smrg	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
151692f60a7Smrg	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
152eaa3dbe0Smrg	-apple | -axis | -knuth | -cray | -microblaze*)
153692f60a7Smrg		os=
154692f60a7Smrg		basic_machine=$1
155692f60a7Smrg		;;
1563f6d0e1dSmrg	-bluegene*)
1573f6d0e1dSmrg		os=-cnk
1583f6d0e1dSmrg		;;
159692f60a7Smrg	-sim | -cisco | -oki | -wec | -winbond)
160692f60a7Smrg		os=
161692f60a7Smrg		basic_machine=$1
162692f60a7Smrg		;;
163692f60a7Smrg	-scout)
164692f60a7Smrg		;;
165692f60a7Smrg	-wrs)
166692f60a7Smrg		os=-vxworks
167692f60a7Smrg		basic_machine=$1
168692f60a7Smrg		;;
169692f60a7Smrg	-chorusos*)
170692f60a7Smrg		os=-chorusos
171692f60a7Smrg		basic_machine=$1
172692f60a7Smrg		;;
1733f6d0e1dSmrg	-chorusrdb)
1743f6d0e1dSmrg		os=-chorusrdb
175692f60a7Smrg		basic_machine=$1
1763f6d0e1dSmrg		;;
177692f60a7Smrg	-hiux*)
178692f60a7Smrg		os=-hiuxwe2
179692f60a7Smrg		;;
18054569438Smrg	-sco6)
18154569438Smrg		os=-sco5v6
18254569438Smrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
18354569438Smrg		;;
184692f60a7Smrg	-sco5)
185692f60a7Smrg		os=-sco3.2v5
186692f60a7Smrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
187692f60a7Smrg		;;
188692f60a7Smrg	-sco4)
189692f60a7Smrg		os=-sco3.2v4
190692f60a7Smrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
191692f60a7Smrg		;;
192692f60a7Smrg	-sco3.2.[4-9]*)
193692f60a7Smrg		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
194692f60a7Smrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
195692f60a7Smrg		;;
196692f60a7Smrg	-sco3.2v[4-9]*)
197692f60a7Smrg		# Don't forget version if it is 3.2v4 or newer.
198692f60a7Smrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
199692f60a7Smrg		;;
20054569438Smrg	-sco5v6*)
20154569438Smrg		# Don't forget version if it is 3.2v4 or newer.
20254569438Smrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
20354569438Smrg		;;
204692f60a7Smrg	-sco*)
205692f60a7Smrg		os=-sco3.2v2
206692f60a7Smrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
207692f60a7Smrg		;;
208692f60a7Smrg	-udk*)
209692f60a7Smrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
210692f60a7Smrg		;;
211692f60a7Smrg	-isc)
212692f60a7Smrg		os=-isc2.2
213692f60a7Smrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
214692f60a7Smrg		;;
215692f60a7Smrg	-clix*)
216692f60a7Smrg		basic_machine=clipper-intergraph
217692f60a7Smrg		;;
218692f60a7Smrg	-isc*)
219692f60a7Smrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
220692f60a7Smrg		;;
221eaa3dbe0Smrg	-lynx*178)
222eaa3dbe0Smrg		os=-lynxos178
223eaa3dbe0Smrg		;;
224eaa3dbe0Smrg	-lynx*5)
225eaa3dbe0Smrg		os=-lynxos5
226eaa3dbe0Smrg		;;
227692f60a7Smrg	-lynx*)
228692f60a7Smrg		os=-lynxos
229692f60a7Smrg		;;
230692f60a7Smrg	-ptx*)
231692f60a7Smrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
232692f60a7Smrg		;;
233692f60a7Smrg	-windowsnt*)
234692f60a7Smrg		os=`echo $os | sed -e 's/windowsnt/winnt/'`
235692f60a7Smrg		;;
236692f60a7Smrg	-psos*)
237692f60a7Smrg		os=-psos
238692f60a7Smrg		;;
239692f60a7Smrg	-mint | -mint[0-9]*)
240692f60a7Smrg		basic_machine=m68k-atari
241692f60a7Smrg		os=-mint
242692f60a7Smrg		;;
243692f60a7Smrgesac
244692f60a7Smrg
245692f60a7Smrg# Decode aliases for certain CPU-COMPANY combinations.
246692f60a7Smrgcase $basic_machine in
247692f60a7Smrg	# Recognize the basic CPU types without company name.
248692f60a7Smrg	# Some are omitted here because they have special meanings below.
249692f60a7Smrg	1750a | 580 \
250692f60a7Smrg	| a29k \
251eaa3dbe0Smrg	| aarch64 | aarch64_be \
252692f60a7Smrg	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
253692f60a7Smrg	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
25454569438Smrg	| am33_2.0 \
25595903e71Smrg	| arc | arceb \
256eaa3dbe0Smrg	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
257eaa3dbe0Smrg	| avr | avr32 \
2582f60eb46Smrg	| ba \
259eaa3dbe0Smrg	| be32 | be64 \
26054569438Smrg	| bfin \
26195903e71Smrg	| c4x | c8051 | clipper \
26295903e71Smrg	| d10v | d30v | dlx | dsp16xx \
2632f60eb46Smrg	| e2k | epiphany \
2642f60eb46Smrg	| fido | fr30 | frv | ft32 \
265692f60a7Smrg	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
2663f6d0e1dSmrg	| hexagon \
267692f60a7Smrg	| i370 | i860 | i960 | ia64 \
26854569438Smrg	| ip2k | iq2000 \
26995903e71Smrg	| k1om \
2703f6d0e1dSmrg	| le32 | le64 \
2713f6d0e1dSmrg	| lm32 \
27254569438Smrg	| m32c | m32r | m32rle | m68000 | m68k | m88k \
273eaa3dbe0Smrg	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
274692f60a7Smrg	| mips | mipsbe | mipseb | mipsel | mipsle \
275692f60a7Smrg	| mips16 \
276692f60a7Smrg	| mips64 | mips64el \
2773f6d0e1dSmrg	| mips64octeon | mips64octeonel \
2782e71ea71Smrg	| mips64orion | mips64orionel \
2793f6d0e1dSmrg	| mips64r5900 | mips64r5900el \
2803f6d0e1dSmrg	| mips64vr | mips64vrel \
281692f60a7Smrg	| mips64vr4100 | mips64vr4100el \
282692f60a7Smrg	| mips64vr4300 | mips64vr4300el \
283692f60a7Smrg	| mips64vr5000 | mips64vr5000el \
28454569438Smrg	| mips64vr5900 | mips64vr5900el \
285692f60a7Smrg	| mipsisa32 | mipsisa32el \
286692f60a7Smrg	| mipsisa32r2 | mipsisa32r2el \
28795903e71Smrg	| mipsisa32r6 | mipsisa32r6el \
288692f60a7Smrg	| mipsisa64 | mipsisa64el \
28954569438Smrg	| mipsisa64r2 | mipsisa64r2el \
29095903e71Smrg	| mipsisa64r6 | mipsisa64r6el \
291692f60a7Smrg	| mipsisa64sb1 | mipsisa64sb1el \
292692f60a7Smrg	| mipsisa64sr71k | mipsisa64sr71kel \
293eaa3dbe0Smrg	| mipsr5900 | mipsr5900el \
294692f60a7Smrg	| mipstx39 | mipstx39el \
295692f60a7Smrg	| mn10200 | mn10300 \
2963f6d0e1dSmrg	| moxie \
29754569438Smrg	| mt \
298692f60a7Smrg	| msp430 \
2993f6d0e1dSmrg	| nds32 | nds32le | nds32be \
30095903e71Smrg	| nios | nios2 | nios2eb | nios2el \
301692f60a7Smrg	| ns16k | ns32k \
30295903e71Smrg	| open8 | or1k | or1knd | or32 \
303692f60a7Smrg	| pdp10 | pdp11 | pj | pjl \
3043f6d0e1dSmrg	| powerpc | powerpc64 | powerpc64le | powerpcle \
305692f60a7Smrg	| pyramid \
30695903e71Smrg	| riscv32 | riscv64 \
3073f6d0e1dSmrg	| rl78 | rx \
30854569438Smrg	| score \
3092f60eb46Smrg	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
310692f60a7Smrg	| sh64 | sh64le \
31154569438Smrg	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
31254569438Smrg	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
3133f6d0e1dSmrg	| spu \
3143f6d0e1dSmrg	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
3153f6d0e1dSmrg	| ubicom32 \
3163f6d0e1dSmrg	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
3172f60eb46Smrg	| visium \
318692f60a7Smrg	| we32k \
3193f6d0e1dSmrg	| x86 | xc16x | xstormy16 | xtensa \
3203f6d0e1dSmrg	| z8k | z80)
321692f60a7Smrg		basic_machine=$basic_machine-unknown
322692f60a7Smrg		;;
3233f6d0e1dSmrg	c54x)
3243f6d0e1dSmrg		basic_machine=tic54x-unknown
3253f6d0e1dSmrg		;;
3263f6d0e1dSmrg	c55x)
3273f6d0e1dSmrg		basic_machine=tic55x-unknown
3283f6d0e1dSmrg		;;
3293f6d0e1dSmrg	c6x)
3303f6d0e1dSmrg		basic_machine=tic6x-unknown
3313f6d0e1dSmrg		;;
3322f60eb46Smrg	leon|leon[3-9])
3332f60eb46Smrg		basic_machine=sparc-$basic_machine
3342f60eb46Smrg		;;
33595903e71Smrg	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
336692f60a7Smrg		basic_machine=$basic_machine-unknown
337692f60a7Smrg		os=-none
338692f60a7Smrg		;;
339692f60a7Smrg	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
340692f60a7Smrg		;;
34154569438Smrg	ms1)
34254569438Smrg		basic_machine=mt-unknown
34354569438Smrg		;;
344692f60a7Smrg
3453f6d0e1dSmrg	strongarm | thumb | xscale)
3463f6d0e1dSmrg		basic_machine=arm-unknown
3473f6d0e1dSmrg		;;
348eaa3dbe0Smrg	xgate)
349eaa3dbe0Smrg		basic_machine=$basic_machine-unknown
350eaa3dbe0Smrg		os=-none
351eaa3dbe0Smrg		;;
3523f6d0e1dSmrg	xscaleeb)
3533f6d0e1dSmrg		basic_machine=armeb-unknown
3543f6d0e1dSmrg		;;
3553f6d0e1dSmrg
3563f6d0e1dSmrg	xscaleel)
3573f6d0e1dSmrg		basic_machine=armel-unknown
3583f6d0e1dSmrg		;;
3593f6d0e1dSmrg
360692f60a7Smrg	# We use `pc' rather than `unknown'
361692f60a7Smrg	# because (1) that's what they normally are, and
362692f60a7Smrg	# (2) the word "unknown" tends to confuse beginning users.
363692f60a7Smrg	i*86 | x86_64)
364692f60a7Smrg	  basic_machine=$basic_machine-pc
365692f60a7Smrg	  ;;
366692f60a7Smrg	# Object if more than one company name word.
367692f60a7Smrg	*-*-*)
368692f60a7Smrg		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
369692f60a7Smrg		exit 1
370692f60a7Smrg		;;
371692f60a7Smrg	# Recognize the basic CPU types with company name.
372692f60a7Smrg	580-* \
373692f60a7Smrg	| a29k-* \
374eaa3dbe0Smrg	| aarch64-* | aarch64_be-* \
375692f60a7Smrg	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
376692f60a7Smrg	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
37795903e71Smrg	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
378692f60a7Smrg	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
37954569438Smrg	| avr-* | avr32-* \
3802f60eb46Smrg	| ba-* \
3813f6d0e1dSmrg	| be32-* | be64-* \
38254569438Smrg	| bfin-* | bs2000-* \
3833f6d0e1dSmrg	| c[123]* | c30-* | [cjt]90-* | c4x-* \
38495903e71Smrg	| c8051-* | clipper-* | craynv-* | cydra-* \
385692f60a7Smrg	| d10v-* | d30v-* | dlx-* \
3862f60eb46Smrg	| e2k-* | elxsi-* \
38754569438Smrg	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
388692f60a7Smrg	| h8300-* | h8500-* \
389692f60a7Smrg	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
3903f6d0e1dSmrg	| hexagon-* \
391692f60a7Smrg	| i*86-* | i860-* | i960-* | ia64-* \
39254569438Smrg	| ip2k-* | iq2000-* \
39395903e71Smrg	| k1om-* \
3943f6d0e1dSmrg	| le32-* | le64-* \
3953f6d0e1dSmrg	| lm32-* \
39654569438Smrg	| m32c-* | m32r-* | m32rle-* \
397692f60a7Smrg	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
398eaa3dbe0Smrg	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
399eaa3dbe0Smrg	| microblaze-* | microblazeel-* \
400692f60a7Smrg	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
401692f60a7Smrg	| mips16-* \
402692f60a7Smrg	| mips64-* | mips64el-* \
4033f6d0e1dSmrg	| mips64octeon-* | mips64octeonel-* \
4042e71ea71Smrg	| mips64orion-* | mips64orionel-* \
4053f6d0e1dSmrg	| mips64r5900-* | mips64r5900el-* \
4063f6d0e1dSmrg	| mips64vr-* | mips64vrel-* \
407692f60a7Smrg	| mips64vr4100-* | mips64vr4100el-* \
408692f60a7Smrg	| mips64vr4300-* | mips64vr4300el-* \
409692f60a7Smrg	| mips64vr5000-* | mips64vr5000el-* \
41054569438Smrg	| mips64vr5900-* | mips64vr5900el-* \
411692f60a7Smrg	| mipsisa32-* | mipsisa32el-* \
412692f60a7Smrg	| mipsisa32r2-* | mipsisa32r2el-* \
41395903e71Smrg	| mipsisa32r6-* | mipsisa32r6el-* \
414692f60a7Smrg	| mipsisa64-* | mipsisa64el-* \
41554569438Smrg	| mipsisa64r2-* | mipsisa64r2el-* \
41695903e71Smrg	| mipsisa64r6-* | mipsisa64r6el-* \
417692f60a7Smrg	| mipsisa64sb1-* | mipsisa64sb1el-* \
418692f60a7Smrg	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
419eaa3dbe0Smrg	| mipsr5900-* | mipsr5900el-* \
420692f60a7Smrg	| mipstx39-* | mipstx39el-* \
42154569438Smrg	| mmix-* \
42254569438Smrg	| mt-* \
423692f60a7Smrg	| msp430-* \
4243f6d0e1dSmrg	| nds32-* | nds32le-* | nds32be-* \
42595903e71Smrg	| nios-* | nios2-* | nios2eb-* | nios2el-* \
42654569438Smrg	| none-* | np1-* | ns16k-* | ns32k-* \
4273f6d0e1dSmrg	| open8-* \
42895903e71Smrg	| or1k*-* \
429692f60a7Smrg	| orion-* \
430692f60a7Smrg	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
4313f6d0e1dSmrg	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
432692f60a7Smrg	| pyramid-* \
4332f60eb46Smrg	| riscv32-* | riscv64-* \
4343f6d0e1dSmrg	| rl78-* | romp-* | rs6000-* | rx-* \
4353f6d0e1dSmrg	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
436692f60a7Smrg	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
43754569438Smrg	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
43854569438Smrg	| sparclite-* \
4392f60eb46Smrg	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
4403f6d0e1dSmrg	| tahoe-* \
4412e71ea71Smrg	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
4423f6d0e1dSmrg	| tile*-* \
443692f60a7Smrg	| tron-* \
4443f6d0e1dSmrg	| ubicom32-* \
4453f6d0e1dSmrg	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
4463f6d0e1dSmrg	| vax-* \
4472f60eb46Smrg	| visium-* \
448692f60a7Smrg	| we32k-* \
4493f6d0e1dSmrg	| x86-* | x86_64-* | xc16x-* | xps100-* \
45054569438Smrg	| xstormy16-* | xtensa*-* \
451692f60a7Smrg	| ymp-* \
4523f6d0e1dSmrg	| z8k-* | z80-*)
453692f60a7Smrg		;;
45454569438Smrg	# Recognize the basic CPU types without company name, with glob match.
45554569438Smrg	xtensa*)
45654569438Smrg		basic_machine=$basic_machine-unknown
45754569438Smrg		;;
458692f60a7Smrg	# Recognize the various machine names and aliases which stand
459692f60a7Smrg	# for a CPU type and a company and sometimes even an OS.
460692f60a7Smrg	386bsd)
461692f60a7Smrg		basic_machine=i386-unknown
462692f60a7Smrg		os=-bsd
463692f60a7Smrg		;;
464692f60a7Smrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
465692f60a7Smrg		basic_machine=m68000-att
466692f60a7Smrg		;;
467692f60a7Smrg	3b*)
468692f60a7Smrg		basic_machine=we32k-att
469692f60a7Smrg		;;
470692f60a7Smrg	a29khif)
471692f60a7Smrg		basic_machine=a29k-amd
472692f60a7Smrg		os=-udi
473692f60a7Smrg		;;
4743f6d0e1dSmrg	abacus)
47554569438Smrg		basic_machine=abacus-unknown
47654569438Smrg		;;
477692f60a7Smrg	adobe68k)
478692f60a7Smrg		basic_machine=m68010-adobe
479692f60a7Smrg		os=-scout
480692f60a7Smrg		;;
481692f60a7Smrg	alliant | fx80)
482692f60a7Smrg		basic_machine=fx80-alliant
483692f60a7Smrg		;;
484692f60a7Smrg	altos | altos3068)
485692f60a7Smrg		basic_machine=m68k-altos
486692f60a7Smrg		;;
487692f60a7Smrg	am29k)
488692f60a7Smrg		basic_machine=a29k-none
489692f60a7Smrg		os=-bsd
490692f60a7Smrg		;;
491692f60a7Smrg	amd64)
492692f60a7Smrg		basic_machine=x86_64-pc
493692f60a7Smrg		;;
49454569438Smrg	amd64-*)
49554569438Smrg		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
49654569438Smrg		;;
497692f60a7Smrg	amdahl)
498692f60a7Smrg		basic_machine=580-amdahl
499692f60a7Smrg		os=-sysv
500692f60a7Smrg		;;
501692f60a7Smrg	amiga | amiga-*)
502692f60a7Smrg		basic_machine=m68k-unknown
503692f60a7Smrg		;;
504692f60a7Smrg	amigaos | amigados)
505692f60a7Smrg		basic_machine=m68k-unknown
506692f60a7Smrg		os=-amigaos
507692f60a7Smrg		;;
508692f60a7Smrg	amigaunix | amix)
509692f60a7Smrg		basic_machine=m68k-unknown
510692f60a7Smrg		os=-sysv4
511692f60a7Smrg		;;
512692f60a7Smrg	apollo68)
513692f60a7Smrg		basic_machine=m68k-apollo
514692f60a7Smrg		os=-sysv
515692f60a7Smrg		;;
516692f60a7Smrg	apollo68bsd)
517692f60a7Smrg		basic_machine=m68k-apollo
518692f60a7Smrg		os=-bsd
519692f60a7Smrg		;;
5203f6d0e1dSmrg	aros)
5213f6d0e1dSmrg		basic_machine=i386-pc
5223f6d0e1dSmrg		os=-aros
5233f6d0e1dSmrg		;;
5242f60eb46Smrg        asmjs)
5252f60eb46Smrg		basic_machine=asmjs-unknown
5262f60eb46Smrg		;;
527692f60a7Smrg	aux)
528692f60a7Smrg		basic_machine=m68k-apple
529692f60a7Smrg		os=-aux
530692f60a7Smrg		;;
531692f60a7Smrg	balance)
532692f60a7Smrg		basic_machine=ns32k-sequent
533692f60a7Smrg		os=-dynix
534692f60a7Smrg		;;
53554569438Smrg	blackfin)
53654569438Smrg		basic_machine=bfin-unknown
53754569438Smrg		os=-linux
53854569438Smrg		;;
53954569438Smrg	blackfin-*)
54054569438Smrg		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
54154569438Smrg		os=-linux
54254569438Smrg		;;
5433f6d0e1dSmrg	bluegene*)
5443f6d0e1dSmrg		basic_machine=powerpc-ibm
5453f6d0e1dSmrg		os=-cnk
5463f6d0e1dSmrg		;;
5473f6d0e1dSmrg	c54x-*)
5483f6d0e1dSmrg		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
5493f6d0e1dSmrg		;;
5503f6d0e1dSmrg	c55x-*)
5513f6d0e1dSmrg		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
5523f6d0e1dSmrg		;;
5533f6d0e1dSmrg	c6x-*)
5543f6d0e1dSmrg		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
5553f6d0e1dSmrg		;;
556692f60a7Smrg	c90)
557692f60a7Smrg		basic_machine=c90-cray
558692f60a7Smrg		os=-unicos
559692f60a7Smrg		;;
5603f6d0e1dSmrg	cegcc)
5613f6d0e1dSmrg		basic_machine=arm-unknown
5623f6d0e1dSmrg		os=-cegcc
5633f6d0e1dSmrg		;;
564692f60a7Smrg	convex-c1)
565692f60a7Smrg		basic_machine=c1-convex
566692f60a7Smrg		os=-bsd
567692f60a7Smrg		;;
568692f60a7Smrg	convex-c2)
569692f60a7Smrg		basic_machine=c2-convex
570692f60a7Smrg		os=-bsd
571692f60a7Smrg		;;
572692f60a7Smrg	convex-c32)
573692f60a7Smrg		basic_machine=c32-convex
574692f60a7Smrg		os=-bsd
575692f60a7Smrg		;;
576692f60a7Smrg	convex-c34)
577692f60a7Smrg		basic_machine=c34-convex
578692f60a7Smrg		os=-bsd
579692f60a7Smrg		;;
580692f60a7Smrg	convex-c38)
581692f60a7Smrg		basic_machine=c38-convex
582692f60a7Smrg		os=-bsd
583692f60a7Smrg		;;
584692f60a7Smrg	cray | j90)
585692f60a7Smrg		basic_machine=j90-cray
586692f60a7Smrg		os=-unicos
587692f60a7Smrg		;;
58854569438Smrg	craynv)
58954569438Smrg		basic_machine=craynv-cray
59054569438Smrg		os=-unicosmp
59154569438Smrg		;;
5923f6d0e1dSmrg	cr16 | cr16-*)
59354569438Smrg		basic_machine=cr16-unknown
59454569438Smrg		os=-elf
59554569438Smrg		;;
596692f60a7Smrg	crds | unos)
597692f60a7Smrg		basic_machine=m68k-crds
598692f60a7Smrg		;;
59954569438Smrg	crisv32 | crisv32-* | etraxfs*)
60054569438Smrg		basic_machine=crisv32-axis
60154569438Smrg		;;
602692f60a7Smrg	cris | cris-* | etrax*)
603692f60a7Smrg		basic_machine=cris-axis
604692f60a7Smrg		;;
60554569438Smrg	crx)
60654569438Smrg		basic_machine=crx-unknown
60754569438Smrg		os=-elf
60854569438Smrg		;;
609692f60a7Smrg	da30 | da30-*)
610692f60a7Smrg		basic_machine=m68k-da30
611692f60a7Smrg		;;
612692f60a7Smrg	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
613692f60a7Smrg		basic_machine=mips-dec
614692f60a7Smrg		;;
615692f60a7Smrg	decsystem10* | dec10*)
616692f60a7Smrg		basic_machine=pdp10-dec
617692f60a7Smrg		os=-tops10
618692f60a7Smrg		;;
619692f60a7Smrg	decsystem20* | dec20*)
620692f60a7Smrg		basic_machine=pdp10-dec
621692f60a7Smrg		os=-tops20
622692f60a7Smrg		;;
623692f60a7Smrg	delta | 3300 | motorola-3300 | motorola-delta \
624692f60a7Smrg	      | 3300-motorola | delta-motorola)
625692f60a7Smrg		basic_machine=m68k-motorola
626692f60a7Smrg		;;
627692f60a7Smrg	delta88)
628692f60a7Smrg		basic_machine=m88k-motorola
629692f60a7Smrg		os=-sysv3
630692f60a7Smrg		;;
6313f6d0e1dSmrg	dicos)
6323f6d0e1dSmrg		basic_machine=i686-pc
6333f6d0e1dSmrg		os=-dicos
6343f6d0e1dSmrg		;;
63554569438Smrg	djgpp)
63654569438Smrg		basic_machine=i586-pc
63754569438Smrg		os=-msdosdjgpp
63854569438Smrg		;;
639692f60a7Smrg	dpx20 | dpx20-*)
640692f60a7Smrg		basic_machine=rs6000-bull
641692f60a7Smrg		os=-bosx
642692f60a7Smrg		;;
643692f60a7Smrg	dpx2* | dpx2*-bull)
644692f60a7Smrg		basic_machine=m68k-bull
645692f60a7Smrg		os=-sysv3
646692f60a7Smrg		;;
647692f60a7Smrg	ebmon29k)
648692f60a7Smrg		basic_machine=a29k-amd
649692f60a7Smrg		os=-ebmon
650692f60a7Smrg		;;
651692f60a7Smrg	elxsi)
652692f60a7Smrg		basic_machine=elxsi-elxsi
653692f60a7Smrg		os=-bsd
654692f60a7Smrg		;;
655692f60a7Smrg	encore | umax | mmax)
656692f60a7Smrg		basic_machine=ns32k-encore
657692f60a7Smrg		;;
658692f60a7Smrg	es1800 | OSE68k | ose68k | ose | OSE)
659692f60a7Smrg		basic_machine=m68k-ericsson
660692f60a7Smrg		os=-ose
661692f60a7Smrg		;;
662692f60a7Smrg	fx2800)
663692f60a7Smrg		basic_machine=i860-alliant
664692f60a7Smrg		;;
665692f60a7Smrg	genix)
666692f60a7Smrg		basic_machine=ns32k-ns
667692f60a7Smrg		;;
668692f60a7Smrg	gmicro)
669692f60a7Smrg		basic_machine=tron-gmicro
670692f60a7Smrg		os=-sysv
671692f60a7Smrg		;;
672692f60a7Smrg	go32)
673692f60a7Smrg		basic_machine=i386-pc
674692f60a7Smrg		os=-go32
675692f60a7Smrg		;;
676692f60a7Smrg	h3050r* | hiux*)
677692f60a7Smrg		basic_machine=hppa1.1-hitachi
678692f60a7Smrg		os=-hiuxwe2
679692f60a7Smrg		;;
680692f60a7Smrg	h8300hms)
681692f60a7Smrg		basic_machine=h8300-hitachi
682692f60a7Smrg		os=-hms
683692f60a7Smrg		;;
684692f60a7Smrg	h8300xray)
685692f60a7Smrg		basic_machine=h8300-hitachi
686692f60a7Smrg		os=-xray
687692f60a7Smrg		;;
688692f60a7Smrg	h8500hms)
689692f60a7Smrg		basic_machine=h8500-hitachi
690692f60a7Smrg		os=-hms
691692f60a7Smrg		;;
692692f60a7Smrg	harris)
693692f60a7Smrg		basic_machine=m88k-harris
694692f60a7Smrg		os=-sysv3
695692f60a7Smrg		;;
696692f60a7Smrg	hp300-*)
697692f60a7Smrg		basic_machine=m68k-hp
698692f60a7Smrg		;;
699692f60a7Smrg	hp300bsd)
700692f60a7Smrg		basic_machine=m68k-hp
701692f60a7Smrg		os=-bsd
702692f60a7Smrg		;;
703692f60a7Smrg	hp300hpux)
704692f60a7Smrg		basic_machine=m68k-hp
705692f60a7Smrg		os=-hpux
706692f60a7Smrg		;;
707692f60a7Smrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
708692f60a7Smrg		basic_machine=hppa1.0-hp
709692f60a7Smrg		;;
710692f60a7Smrg	hp9k2[0-9][0-9] | hp9k31[0-9])
711692f60a7Smrg		basic_machine=m68000-hp
712692f60a7Smrg		;;
713692f60a7Smrg	hp9k3[2-9][0-9])
714692f60a7Smrg		basic_machine=m68k-hp
715692f60a7Smrg		;;
716692f60a7Smrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
717692f60a7Smrg		basic_machine=hppa1.0-hp
718692f60a7Smrg		;;
719692f60a7Smrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
720692f60a7Smrg		basic_machine=hppa1.1-hp
721692f60a7Smrg		;;
722692f60a7Smrg	hp9k78[0-9] | hp78[0-9])
723692f60a7Smrg		# FIXME: really hppa2.0-hp
724692f60a7Smrg		basic_machine=hppa1.1-hp
725692f60a7Smrg		;;
726692f60a7Smrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
727692f60a7Smrg		# FIXME: really hppa2.0-hp
728692f60a7Smrg		basic_machine=hppa1.1-hp
729692f60a7Smrg		;;
730692f60a7Smrg	hp9k8[0-9][13679] | hp8[0-9][13679])
731692f60a7Smrg		basic_machine=hppa1.1-hp
732692f60a7Smrg		;;
733692f60a7Smrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
734692f60a7Smrg		basic_machine=hppa1.0-hp
735692f60a7Smrg		;;
736692f60a7Smrg	hppa-next)
737692f60a7Smrg		os=-nextstep3
738692f60a7Smrg		;;
739692f60a7Smrg	hppaosf)
740692f60a7Smrg		basic_machine=hppa1.1-hp
741692f60a7Smrg		os=-osf
742692f60a7Smrg		;;
743692f60a7Smrg	hppro)
744692f60a7Smrg		basic_machine=hppa1.1-hp
745692f60a7Smrg		os=-proelf
746692f60a7Smrg		;;
747692f60a7Smrg	i370-ibm* | ibm*)
748692f60a7Smrg		basic_machine=i370-ibm
749692f60a7Smrg		;;
750692f60a7Smrg	i*86v32)
751692f60a7Smrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
752692f60a7Smrg		os=-sysv32
753692f60a7Smrg		;;
754692f60a7Smrg	i*86v4*)
755692f60a7Smrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
756692f60a7Smrg		os=-sysv4
757692f60a7Smrg		;;
758692f60a7Smrg	i*86v)
759692f60a7Smrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
760692f60a7Smrg		os=-sysv
761692f60a7Smrg		;;
762692f60a7Smrg	i*86sol2)
763692f60a7Smrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
764692f60a7Smrg		os=-solaris2
765692f60a7Smrg		;;
766692f60a7Smrg	i386mach)
767692f60a7Smrg		basic_machine=i386-mach
768692f60a7Smrg		os=-mach
769692f60a7Smrg		;;
770692f60a7Smrg	i386-vsta | vsta)
771692f60a7Smrg		basic_machine=i386-unknown
772692f60a7Smrg		os=-vsta
773692f60a7Smrg		;;
774692f60a7Smrg	iris | iris4d)
775692f60a7Smrg		basic_machine=mips-sgi
776692f60a7Smrg		case $os in
777692f60a7Smrg		    -irix*)
778692f60a7Smrg			;;
779692f60a7Smrg		    *)
780692f60a7Smrg			os=-irix4
781692f60a7Smrg			;;
782692f60a7Smrg		esac
783692f60a7Smrg		;;
784692f60a7Smrg	isi68 | isi)
785692f60a7Smrg		basic_machine=m68k-isi
786692f60a7Smrg		os=-sysv
787692f60a7Smrg		;;
7882f60eb46Smrg	leon-*|leon[3-9]-*)
7892f60eb46Smrg		basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
7902f60eb46Smrg		;;
79154569438Smrg	m68knommu)
79254569438Smrg		basic_machine=m68k-unknown
79354569438Smrg		os=-linux
79454569438Smrg		;;
79554569438Smrg	m68knommu-*)
79654569438Smrg		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
79754569438Smrg		os=-linux
79854569438Smrg		;;
799692f60a7Smrg	m88k-omron*)
800692f60a7Smrg		basic_machine=m88k-omron
801692f60a7Smrg		;;
802692f60a7Smrg	magnum | m3230)
803692f60a7Smrg		basic_machine=mips-mips
804692f60a7Smrg		os=-sysv
805692f60a7Smrg		;;
806692f60a7Smrg	merlin)
807692f60a7Smrg		basic_machine=ns32k-utek
808692f60a7Smrg		os=-sysv
809692f60a7Smrg		;;
810eaa3dbe0Smrg	microblaze*)
8113f6d0e1dSmrg		basic_machine=microblaze-xilinx
8123f6d0e1dSmrg		;;
813eaa3dbe0Smrg	mingw64)
814eaa3dbe0Smrg		basic_machine=x86_64-pc
815eaa3dbe0Smrg		os=-mingw64
816eaa3dbe0Smrg		;;
817692f60a7Smrg	mingw32)
81895903e71Smrg		basic_machine=i686-pc
819692f60a7Smrg		os=-mingw32
820692f60a7Smrg		;;
82154569438Smrg	mingw32ce)
82254569438Smrg		basic_machine=arm-unknown
82354569438Smrg		os=-mingw32ce
82454569438Smrg		;;
825692f60a7Smrg	miniframe)
826692f60a7Smrg		basic_machine=m68000-convergent
827692f60a7Smrg		;;
828692f60a7Smrg	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
829692f60a7Smrg		basic_machine=m68k-atari
830692f60a7Smrg		os=-mint
831692f60a7Smrg		;;
832692f60a7Smrg	mips3*-*)
833692f60a7Smrg		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
834692f60a7Smrg		;;
835692f60a7Smrg	mips3*)
836692f60a7Smrg		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
837692f60a7Smrg		;;
838692f60a7Smrg	monitor)
839692f60a7Smrg		basic_machine=m68k-rom68k
840692f60a7Smrg		os=-coff
841692f60a7Smrg		;;
842692f60a7Smrg	morphos)
843692f60a7Smrg		basic_machine=powerpc-unknown
844692f60a7Smrg		os=-morphos
845692f60a7Smrg		;;
84695903e71Smrg	moxiebox)
84795903e71Smrg		basic_machine=moxie-unknown
84895903e71Smrg		os=-moxiebox
84995903e71Smrg		;;
850692f60a7Smrg	msdos)
851692f60a7Smrg		basic_machine=i386-pc
852692f60a7Smrg		os=-msdos
853692f60a7Smrg		;;
85454569438Smrg	ms1-*)
85554569438Smrg		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
85654569438Smrg		;;
8573f6d0e1dSmrg	msys)
85895903e71Smrg		basic_machine=i686-pc
8593f6d0e1dSmrg		os=-msys
8603f6d0e1dSmrg		;;
861692f60a7Smrg	mvs)
862692f60a7Smrg		basic_machine=i370-ibm
863692f60a7Smrg		os=-mvs
864692f60a7Smrg		;;
8653f6d0e1dSmrg	nacl)
8663f6d0e1dSmrg		basic_machine=le32-unknown
8673f6d0e1dSmrg		os=-nacl
8683f6d0e1dSmrg		;;
869692f60a7Smrg	ncr3000)
870692f60a7Smrg		basic_machine=i486-ncr
871692f60a7Smrg		os=-sysv4
872692f60a7Smrg		;;
873692f60a7Smrg	netbsd386)
874692f60a7Smrg		basic_machine=i386-unknown
875692f60a7Smrg		os=-netbsd
876692f60a7Smrg		;;
877692f60a7Smrg	netwinder)
878692f60a7Smrg		basic_machine=armv4l-rebel
879692f60a7Smrg		os=-linux
880692f60a7Smrg		;;
881692f60a7Smrg	news | news700 | news800 | news900)
882692f60a7Smrg		basic_machine=m68k-sony
883692f60a7Smrg		os=-newsos
884692f60a7Smrg		;;
885692f60a7Smrg	news1000)
886692f60a7Smrg		basic_machine=m68030-sony
887692f60a7Smrg		os=-newsos
888692f60a7Smrg		;;
889692f60a7Smrg	news-3600 | risc-news)
890692f60a7Smrg		basic_machine=mips-sony
891692f60a7Smrg		os=-newsos
892692f60a7Smrg		;;
893692f60a7Smrg	necv70)
894692f60a7Smrg		basic_machine=v70-nec
895692f60a7Smrg		os=-sysv
896692f60a7Smrg		;;
897692f60a7Smrg	next | m*-next )
898692f60a7Smrg		basic_machine=m68k-next
899692f60a7Smrg		case $os in
900692f60a7Smrg		    -nextstep* )
901692f60a7Smrg			;;
902692f60a7Smrg		    -ns2*)
903692f60a7Smrg		      os=-nextstep2
904692f60a7Smrg			;;
905692f60a7Smrg		    *)
906692f60a7Smrg		      os=-nextstep3
907692f60a7Smrg			;;
908692f60a7Smrg		esac
909692f60a7Smrg		;;
910692f60a7Smrg	nh3000)
911692f60a7Smrg		basic_machine=m68k-harris
912692f60a7Smrg		os=-cxux
913692f60a7Smrg		;;
914692f60a7Smrg	nh[45]000)
915692f60a7Smrg		basic_machine=m88k-harris
916692f60a7Smrg		os=-cxux
917692f60a7Smrg		;;
918692f60a7Smrg	nindy960)
919692f60a7Smrg		basic_machine=i960-intel
920692f60a7Smrg		os=-nindy
921692f60a7Smrg		;;
922692f60a7Smrg	mon960)
923692f60a7Smrg		basic_machine=i960-intel
924692f60a7Smrg		os=-mon960
925692f60a7Smrg		;;
926692f60a7Smrg	nonstopux)
927692f60a7Smrg		basic_machine=mips-compaq
928692f60a7Smrg		os=-nonstopux
929692f60a7Smrg		;;
930692f60a7Smrg	np1)
931692f60a7Smrg		basic_machine=np1-gould
932692f60a7Smrg		;;
9333f6d0e1dSmrg	neo-tandem)
9343f6d0e1dSmrg		basic_machine=neo-tandem
9353f6d0e1dSmrg		;;
9363f6d0e1dSmrg	nse-tandem)
9373f6d0e1dSmrg		basic_machine=nse-tandem
9383f6d0e1dSmrg		;;
939692f60a7Smrg	nsr-tandem)
940692f60a7Smrg		basic_machine=nsr-tandem
941692f60a7Smrg		;;
942692f60a7Smrg	op50n-* | op60c-*)
943692f60a7Smrg		basic_machine=hppa1.1-oki
944692f60a7Smrg		os=-proelf
945692f60a7Smrg		;;
94654569438Smrg	openrisc | openrisc-*)
947692f60a7Smrg		basic_machine=or32-unknown
94854569438Smrg		;;
94954569438Smrg	os400)
95054569438Smrg		basic_machine=powerpc-ibm
95154569438Smrg		os=-os400
952692f60a7Smrg		;;
953692f60a7Smrg	OSE68000 | ose68000)
954692f60a7Smrg		basic_machine=m68000-ericsson
955692f60a7Smrg		os=-ose
956692f60a7Smrg		;;
957692f60a7Smrg	os68k)
958692f60a7Smrg		basic_machine=m68k-none
959692f60a7Smrg		os=-os68k
960692f60a7Smrg		;;
961692f60a7Smrg	pa-hitachi)
962692f60a7Smrg		basic_machine=hppa1.1-hitachi
963692f60a7Smrg		os=-hiuxwe2
964692f60a7Smrg		;;
965692f60a7Smrg	paragon)
966692f60a7Smrg		basic_machine=i860-intel
967692f60a7Smrg		os=-osf
968692f60a7Smrg		;;
96954569438Smrg	parisc)
97054569438Smrg		basic_machine=hppa-unknown
97154569438Smrg		os=-linux
97254569438Smrg		;;
97354569438Smrg	parisc-*)
97454569438Smrg		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
97554569438Smrg		os=-linux
97654569438Smrg		;;
977692f60a7Smrg	pbd)
978692f60a7Smrg		basic_machine=sparc-tti
979692f60a7Smrg		;;
980692f60a7Smrg	pbb)
981692f60a7Smrg		basic_machine=m68k-tti
982692f60a7Smrg		;;
983692f60a7Smrg	pc532 | pc532-*)
984692f60a7Smrg		basic_machine=ns32k-pc532
985692f60a7Smrg		;;
98654569438Smrg	pc98)
98754569438Smrg		basic_machine=i386-pc
98854569438Smrg		;;
98954569438Smrg	pc98-*)
99054569438Smrg		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
99154569438Smrg		;;
992692f60a7Smrg	pentium | p5 | k5 | k6 | nexgen | viac3)
993692f60a7Smrg		basic_machine=i586-pc
994692f60a7Smrg		;;
995692f60a7Smrg	pentiumpro | p6 | 6x86 | athlon | athlon_*)
996692f60a7Smrg		basic_machine=i686-pc
997692f60a7Smrg		;;
998692f60a7Smrg	pentiumii | pentium2 | pentiumiii | pentium3)
999692f60a7Smrg		basic_machine=i686-pc
1000692f60a7Smrg		;;
1001692f60a7Smrg	pentium4)
1002692f60a7Smrg		basic_machine=i786-pc
1003692f60a7Smrg		;;
1004692f60a7Smrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1005692f60a7Smrg		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
1006692f60a7Smrg		;;
1007692f60a7Smrg	pentiumpro-* | p6-* | 6x86-* | athlon-*)
1008692f60a7Smrg		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
1009692f60a7Smrg		;;
1010692f60a7Smrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1011692f60a7Smrg		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
1012692f60a7Smrg		;;
1013692f60a7Smrg	pentium4-*)
1014692f60a7Smrg		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
1015692f60a7Smrg		;;
1016692f60a7Smrg	pn)
1017692f60a7Smrg		basic_machine=pn-gould
1018692f60a7Smrg		;;
1019692f60a7Smrg	power)	basic_machine=power-ibm
1020692f60a7Smrg		;;
10213f6d0e1dSmrg	ppc | ppcbe)	basic_machine=powerpc-unknown
1022692f60a7Smrg		;;
10233f6d0e1dSmrg	ppc-* | ppcbe-*)
10243f6d0e1dSmrg		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
1025692f60a7Smrg		;;
1026692f60a7Smrg	ppcle | powerpclittle | ppc-le | powerpc-little)
1027692f60a7Smrg		basic_machine=powerpcle-unknown
1028692f60a7Smrg		;;
1029692f60a7Smrg	ppcle-* | powerpclittle-*)
1030692f60a7Smrg		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
1031692f60a7Smrg		;;
1032692f60a7Smrg	ppc64)	basic_machine=powerpc64-unknown
1033692f60a7Smrg		;;
1034692f60a7Smrg	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
1035692f60a7Smrg		;;
1036692f60a7Smrg	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
1037692f60a7Smrg		basic_machine=powerpc64le-unknown
1038692f60a7Smrg		;;
1039692f60a7Smrg	ppc64le-* | powerpc64little-*)
1040692f60a7Smrg		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
1041692f60a7Smrg		;;
1042692f60a7Smrg	ps2)
1043692f60a7Smrg		basic_machine=i386-ibm
1044692f60a7Smrg		;;
1045692f60a7Smrg	pw32)
1046692f60a7Smrg		basic_machine=i586-unknown
1047692f60a7Smrg		os=-pw32
1048692f60a7Smrg		;;
1049eaa3dbe0Smrg	rdos | rdos64)
1050eaa3dbe0Smrg		basic_machine=x86_64-pc
1051eaa3dbe0Smrg		os=-rdos
1052eaa3dbe0Smrg		;;
1053eaa3dbe0Smrg	rdos32)
105454569438Smrg		basic_machine=i386-pc
105554569438Smrg		os=-rdos
105654569438Smrg		;;
1057692f60a7Smrg	rom68k)
1058692f60a7Smrg		basic_machine=m68k-rom68k
1059692f60a7Smrg		os=-coff
1060692f60a7Smrg		;;
1061692f60a7Smrg	rm[46]00)
1062692f60a7Smrg		basic_machine=mips-siemens
1063692f60a7Smrg		;;
1064692f60a7Smrg	rtpc | rtpc-*)
1065692f60a7Smrg		basic_machine=romp-ibm
1066692f60a7Smrg		;;
106754569438Smrg	s390 | s390-*)
106854569438Smrg		basic_machine=s390-ibm
106954569438Smrg		;;
107054569438Smrg	s390x | s390x-*)
107154569438Smrg		basic_machine=s390x-ibm
107254569438Smrg		;;
1073692f60a7Smrg	sa29200)
1074692f60a7Smrg		basic_machine=a29k-amd
1075692f60a7Smrg		os=-udi
1076692f60a7Smrg		;;
1077692f60a7Smrg	sb1)
1078692f60a7Smrg		basic_machine=mipsisa64sb1-unknown
1079692f60a7Smrg		;;
1080692f60a7Smrg	sb1el)
1081692f60a7Smrg		basic_machine=mipsisa64sb1el-unknown
1082692f60a7Smrg		;;
108354569438Smrg	sde)
108454569438Smrg		basic_machine=mipsisa32-sde
108554569438Smrg		os=-elf
108654569438Smrg		;;
1087692f60a7Smrg	sei)
1088692f60a7Smrg		basic_machine=mips-sei
1089692f60a7Smrg		os=-seiux
1090692f60a7Smrg		;;
1091692f60a7Smrg	sequent)
1092692f60a7Smrg		basic_machine=i386-sequent
1093692f60a7Smrg		;;
1094692f60a7Smrg	sh)
1095692f60a7Smrg		basic_machine=sh-hitachi
1096692f60a7Smrg		os=-hms
1097692f60a7Smrg		;;
109854569438Smrg	sh5el)
109954569438Smrg		basic_machine=sh5le-unknown
110054569438Smrg		;;
1101692f60a7Smrg	sh64)
1102692f60a7Smrg		basic_machine=sh64-unknown
1103692f60a7Smrg		;;
1104692f60a7Smrg	sparclite-wrs | simso-wrs)
1105692f60a7Smrg		basic_machine=sparclite-wrs
1106692f60a7Smrg		os=-vxworks
1107692f60a7Smrg		;;
1108692f60a7Smrg	sps7)
1109692f60a7Smrg		basic_machine=m68k-bull
1110692f60a7Smrg		os=-sysv2
1111692f60a7Smrg		;;
1112692f60a7Smrg	spur)
1113692f60a7Smrg		basic_machine=spur-unknown
1114692f60a7Smrg		;;
1115692f60a7Smrg	st2000)
1116692f60a7Smrg		basic_machine=m68k-tandem
1117692f60a7Smrg		;;
1118692f60a7Smrg	stratus)
1119692f60a7Smrg		basic_machine=i860-stratus
1120692f60a7Smrg		os=-sysv4
1121692f60a7Smrg		;;
11223f6d0e1dSmrg	strongarm-* | thumb-*)
11233f6d0e1dSmrg		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
11243f6d0e1dSmrg		;;
1125692f60a7Smrg	sun2)
1126692f60a7Smrg		basic_machine=m68000-sun
1127692f60a7Smrg		;;
1128692f60a7Smrg	sun2os3)
1129692f60a7Smrg		basic_machine=m68000-sun
1130692f60a7Smrg		os=-sunos3
1131692f60a7Smrg		;;
1132692f60a7Smrg	sun2os4)
1133692f60a7Smrg		basic_machine=m68000-sun
1134692f60a7Smrg		os=-sunos4
1135692f60a7Smrg		;;
1136692f60a7Smrg	sun3os3)
1137692f60a7Smrg		basic_machine=m68k-sun
1138692f60a7Smrg		os=-sunos3
1139692f60a7Smrg		;;
1140692f60a7Smrg	sun3os4)
1141692f60a7Smrg		basic_machine=m68k-sun
1142692f60a7Smrg		os=-sunos4
1143692f60a7Smrg		;;
1144692f60a7Smrg	sun4os3)
1145692f60a7Smrg		basic_machine=sparc-sun
1146692f60a7Smrg		os=-sunos3
1147692f60a7Smrg		;;
1148692f60a7Smrg	sun4os4)
1149692f60a7Smrg		basic_machine=sparc-sun
1150692f60a7Smrg		os=-sunos4
1151692f60a7Smrg		;;
1152692f60a7Smrg	sun4sol2)
1153692f60a7Smrg		basic_machine=sparc-sun
1154692f60a7Smrg		os=-solaris2
1155692f60a7Smrg		;;
1156692f60a7Smrg	sun3 | sun3-*)
1157692f60a7Smrg		basic_machine=m68k-sun
1158692f60a7Smrg		;;
1159692f60a7Smrg	sun4)
1160692f60a7Smrg		basic_machine=sparc-sun
1161692f60a7Smrg		;;
1162692f60a7Smrg	sun386 | sun386i | roadrunner)
1163692f60a7Smrg		basic_machine=i386-sun
1164692f60a7Smrg		;;
1165692f60a7Smrg	sv1)
1166692f60a7Smrg		basic_machine=sv1-cray
1167692f60a7Smrg		os=-unicos
1168692f60a7Smrg		;;
1169692f60a7Smrg	symmetry)
1170692f60a7Smrg		basic_machine=i386-sequent
1171692f60a7Smrg		os=-dynix
1172692f60a7Smrg		;;
1173692f60a7Smrg	t3e)
1174692f60a7Smrg		basic_machine=alphaev5-cray
1175692f60a7Smrg		os=-unicos
1176692f60a7Smrg		;;
1177692f60a7Smrg	t90)
1178692f60a7Smrg		basic_machine=t90-cray
1179692f60a7Smrg		os=-unicos
1180692f60a7Smrg		;;
118154569438Smrg	tile*)
11823f6d0e1dSmrg		basic_machine=$basic_machine-unknown
118354569438Smrg		os=-linux-gnu
118454569438Smrg		;;
1185692f60a7Smrg	tx39)
1186692f60a7Smrg		basic_machine=mipstx39-unknown
1187692f60a7Smrg		;;
1188692f60a7Smrg	tx39el)
1189692f60a7Smrg		basic_machine=mipstx39el-unknown
1190692f60a7Smrg		;;
1191692f60a7Smrg	toad1)
1192692f60a7Smrg		basic_machine=pdp10-xkl
1193692f60a7Smrg		os=-tops20
1194692f60a7Smrg		;;
1195692f60a7Smrg	tower | tower-32)
1196692f60a7Smrg		basic_machine=m68k-ncr
1197692f60a7Smrg		;;
119854569438Smrg	tpf)
119954569438Smrg		basic_machine=s390x-ibm
120054569438Smrg		os=-tpf
120154569438Smrg		;;
1202692f60a7Smrg	udi29k)
1203692f60a7Smrg		basic_machine=a29k-amd
1204692f60a7Smrg		os=-udi
1205692f60a7Smrg		;;
1206692f60a7Smrg	ultra3)
1207692f60a7Smrg		basic_machine=a29k-nyu
1208692f60a7Smrg		os=-sym1
1209692f60a7Smrg		;;
1210692f60a7Smrg	v810 | necv810)
1211692f60a7Smrg		basic_machine=v810-nec
1212692f60a7Smrg		os=-none
1213692f60a7Smrg		;;
1214692f60a7Smrg	vaxv)
1215692f60a7Smrg		basic_machine=vax-dec
1216692f60a7Smrg		os=-sysv
1217692f60a7Smrg		;;
1218692f60a7Smrg	vms)
1219692f60a7Smrg		basic_machine=vax-dec
1220692f60a7Smrg		os=-vms
1221692f60a7Smrg		;;
1222692f60a7Smrg	vpp*|vx|vx-*)
1223692f60a7Smrg		basic_machine=f301-fujitsu
1224692f60a7Smrg		;;
1225692f60a7Smrg	vxworks960)
1226692f60a7Smrg		basic_machine=i960-wrs
1227692f60a7Smrg		os=-vxworks
1228692f60a7Smrg		;;
1229692f60a7Smrg	vxworks68)
1230692f60a7Smrg		basic_machine=m68k-wrs
1231692f60a7Smrg		os=-vxworks
1232692f60a7Smrg		;;
1233692f60a7Smrg	vxworks29k)
1234692f60a7Smrg		basic_machine=a29k-wrs
1235692f60a7Smrg		os=-vxworks
1236692f60a7Smrg		;;
1237692f60a7Smrg	w65*)
1238692f60a7Smrg		basic_machine=w65-wdc
1239692f60a7Smrg		os=-none
1240692f60a7Smrg		;;
1241692f60a7Smrg	w89k-*)
1242692f60a7Smrg		basic_machine=hppa1.1-winbond
1243692f60a7Smrg		os=-proelf
1244692f60a7Smrg		;;
124554569438Smrg	xbox)
124654569438Smrg		basic_machine=i686-pc
124754569438Smrg		os=-mingw32
124854569438Smrg		;;
1249692f60a7Smrg	xps | xps100)
1250692f60a7Smrg		basic_machine=xps100-honeywell
1251692f60a7Smrg		;;
12523f6d0e1dSmrg	xscale-* | xscalee[bl]-*)
12533f6d0e1dSmrg		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
12543f6d0e1dSmrg		;;
1255692f60a7Smrg	ymp)
1256692f60a7Smrg		basic_machine=ymp-cray
1257692f60a7Smrg		os=-unicos
1258692f60a7Smrg		;;
1259692f60a7Smrg	z8k-*-coff)
1260692f60a7Smrg		basic_machine=z8k-unknown
1261692f60a7Smrg		os=-sim
1262692f60a7Smrg		;;
12633f6d0e1dSmrg	z80-*-coff)
12643f6d0e1dSmrg		basic_machine=z80-unknown
12653f6d0e1dSmrg		os=-sim
12663f6d0e1dSmrg		;;
1267692f60a7Smrg	none)
1268692f60a7Smrg		basic_machine=none-none
1269692f60a7Smrg		os=-none
1270692f60a7Smrg		;;
1271692f60a7Smrg
1272692f60a7Smrg# Here we handle the default manufacturer of certain CPU types.  It is in
1273692f60a7Smrg# some cases the only manufacturer, in others, it is the most popular.
1274692f60a7Smrg	w89k)
1275692f60a7Smrg		basic_machine=hppa1.1-winbond
1276692f60a7Smrg		;;
1277692f60a7Smrg	op50n)
1278692f60a7Smrg		basic_machine=hppa1.1-oki
1279692f60a7Smrg		;;
1280692f60a7Smrg	op60c)
1281692f60a7Smrg		basic_machine=hppa1.1-oki
1282692f60a7Smrg		;;
1283692f60a7Smrg	romp)
1284692f60a7Smrg		basic_machine=romp-ibm
1285692f60a7Smrg		;;
128654569438Smrg	mmix)
128754569438Smrg		basic_machine=mmix-knuth
128854569438Smrg		;;
1289692f60a7Smrg	rs6000)
1290692f60a7Smrg		basic_machine=rs6000-ibm
1291692f60a7Smrg		;;
1292692f60a7Smrg	vax)
1293692f60a7Smrg		basic_machine=vax-dec
1294692f60a7Smrg		;;
1295692f60a7Smrg	pdp10)
1296692f60a7Smrg		# there are many clones, so DEC is not a safe bet
1297692f60a7Smrg		basic_machine=pdp10-unknown
1298692f60a7Smrg		;;
1299692f60a7Smrg	pdp11)
1300692f60a7Smrg		basic_machine=pdp11-dec
1301692f60a7Smrg		;;
1302692f60a7Smrg	we32k)
1303692f60a7Smrg		basic_machine=we32k-att
1304692f60a7Smrg		;;
13053f6d0e1dSmrg	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1306692f60a7Smrg		basic_machine=sh-unknown
1307692f60a7Smrg		;;
130854569438Smrg	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1309692f60a7Smrg		basic_machine=sparc-sun
1310692f60a7Smrg		;;
1311692f60a7Smrg	cydra)
1312692f60a7Smrg		basic_machine=cydra-cydrome
1313692f60a7Smrg		;;
1314692f60a7Smrg	orion)
1315692f60a7Smrg		basic_machine=orion-highlevel
1316692f60a7Smrg		;;
1317692f60a7Smrg	orion105)
1318692f60a7Smrg		basic_machine=clipper-highlevel
1319692f60a7Smrg		;;
1320692f60a7Smrg	mac | mpw | mac-mpw)
1321692f60a7Smrg		basic_machine=m68k-apple
1322692f60a7Smrg		;;
1323692f60a7Smrg	pmac | pmac-mpw)
1324692f60a7Smrg		basic_machine=powerpc-apple
1325692f60a7Smrg		;;
1326692f60a7Smrg	*-unknown)
1327692f60a7Smrg		# Make sure to match an already-canonicalized machine name.
1328692f60a7Smrg		;;
1329692f60a7Smrg	*)
1330692f60a7Smrg		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1331692f60a7Smrg		exit 1
1332692f60a7Smrg		;;
1333692f60a7Smrgesac
1334692f60a7Smrg
1335692f60a7Smrg# Here we canonicalize certain aliases for manufacturers.
1336692f60a7Smrgcase $basic_machine in
1337692f60a7Smrg	*-digital*)
1338692f60a7Smrg		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1339692f60a7Smrg		;;
1340692f60a7Smrg	*-commodore*)
1341692f60a7Smrg		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1342692f60a7Smrg		;;
1343692f60a7Smrg	*)
1344692f60a7Smrg		;;
1345692f60a7Smrgesac
1346692f60a7Smrg
1347692f60a7Smrg# Decode manufacturer-specific aliases for certain operating systems.
1348692f60a7Smrg
1349692f60a7Smrgif [ x"$os" != x"" ]
1350692f60a7Smrgthen
1351692f60a7Smrgcase $os in
13523f6d0e1dSmrg	# First match some system type aliases
13533f6d0e1dSmrg	# that might get confused with valid system types.
1354692f60a7Smrg	# -solaris* is a basic system type, with this one exception.
13553f6d0e1dSmrg	-auroraux)
13563f6d0e1dSmrg		os=-auroraux
13573f6d0e1dSmrg		;;
1358692f60a7Smrg	-solaris1 | -solaris1.*)
1359692f60a7Smrg		os=`echo $os | sed -e 's|solaris1|sunos4|'`
1360692f60a7Smrg		;;
1361692f60a7Smrg	-solaris)
1362692f60a7Smrg		os=-solaris2
1363692f60a7Smrg		;;
1364692f60a7Smrg	-svr4*)
1365692f60a7Smrg		os=-sysv4
1366692f60a7Smrg		;;
1367692f60a7Smrg	-unixware*)
1368692f60a7Smrg		os=-sysv4.2uw
1369692f60a7Smrg		;;
1370692f60a7Smrg	-gnu/linux*)
1371692f60a7Smrg		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1372692f60a7Smrg		;;
1373692f60a7Smrg	# First accept the basic system types.
1374692f60a7Smrg	# The portable systems comes first.
1375692f60a7Smrg	# Each alternative MUST END IN A *, to match a version number.
1376692f60a7Smrg	# -sysv* is not here because it comes later, after sysvr4.
1377692f60a7Smrg	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
13783f6d0e1dSmrg	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
13793f6d0e1dSmrg	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1380eaa3dbe0Smrg	      | -sym* | -kopensolaris* | -plan9* \
1381692f60a7Smrg	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
13822f60eb46Smrg	      | -aos* | -aros* | -cloudabi* | -sortix* \
1383692f60a7Smrg	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1384692f60a7Smrg	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
138554569438Smrg	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1386eaa3dbe0Smrg	      | -bitrig* | -openbsd* | -solidbsd* \
138754569438Smrg	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
138854569438Smrg	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1389692f60a7Smrg	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1390692f60a7Smrg	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
13913f6d0e1dSmrg	      | -chorusos* | -chorusrdb* | -cegcc* \
13923f6d0e1dSmrg	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1393eaa3dbe0Smrg	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1394eaa3dbe0Smrg	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
139595903e71Smrg	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
1396692f60a7Smrg	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1397692f60a7Smrg	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
139895903e71Smrg	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1399692f60a7Smrg	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1400692f60a7Smrg	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
140154569438Smrg	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
140295903e71Smrg	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
1403692f60a7Smrg	# Remember, each alternative MUST END IN *, to match a version number.
1404692f60a7Smrg		;;
1405692f60a7Smrg	-qnx*)
1406692f60a7Smrg		case $basic_machine in
1407692f60a7Smrg		    x86-* | i*86-*)
1408692f60a7Smrg			;;
1409692f60a7Smrg		    *)
1410692f60a7Smrg			os=-nto$os
1411692f60a7Smrg			;;
1412692f60a7Smrg		esac
1413692f60a7Smrg		;;
1414692f60a7Smrg	-nto-qnx*)
1415692f60a7Smrg		;;
1416692f60a7Smrg	-nto*)
1417692f60a7Smrg		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1418692f60a7Smrg		;;
1419692f60a7Smrg	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
142054569438Smrg	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1421692f60a7Smrg	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1422692f60a7Smrg		;;
1423692f60a7Smrg	-mac*)
1424692f60a7Smrg		os=`echo $os | sed -e 's|mac|macos|'`
1425692f60a7Smrg		;;
142654569438Smrg	-linux-dietlibc)
142754569438Smrg		os=-linux-dietlibc
142854569438Smrg		;;
1429692f60a7Smrg	-linux*)
1430692f60a7Smrg		os=`echo $os | sed -e 's|linux|linux-gnu|'`
1431692f60a7Smrg		;;
1432692f60a7Smrg	-sunos5*)
1433692f60a7Smrg		os=`echo $os | sed -e 's|sunos5|solaris2|'`
1434692f60a7Smrg		;;
1435692f60a7Smrg	-sunos6*)
1436692f60a7Smrg		os=`echo $os | sed -e 's|sunos6|solaris3|'`
1437692f60a7Smrg		;;
1438692f60a7Smrg	-opened*)
1439692f60a7Smrg		os=-openedition
1440692f60a7Smrg		;;
14413f6d0e1dSmrg	-os400*)
144254569438Smrg		os=-os400
144354569438Smrg		;;
1444692f60a7Smrg	-wince*)
1445692f60a7Smrg		os=-wince
1446692f60a7Smrg		;;
1447692f60a7Smrg	-osfrose*)
1448692f60a7Smrg		os=-osfrose
1449692f60a7Smrg		;;
1450692f60a7Smrg	-osf*)
1451692f60a7Smrg		os=-osf
1452692f60a7Smrg		;;
1453692f60a7Smrg	-utek*)
1454692f60a7Smrg		os=-bsd
1455692f60a7Smrg		;;
1456692f60a7Smrg	-dynix*)
1457692f60a7Smrg		os=-bsd
1458692f60a7Smrg		;;
1459692f60a7Smrg	-acis*)
1460692f60a7Smrg		os=-aos
1461692f60a7Smrg		;;
1462692f60a7Smrg	-atheos*)
1463692f60a7Smrg		os=-atheos
1464692f60a7Smrg		;;
146554569438Smrg	-syllable*)
146654569438Smrg		os=-syllable
146754569438Smrg		;;
1468692f60a7Smrg	-386bsd)
1469692f60a7Smrg		os=-bsd
1470692f60a7Smrg		;;
1471692f60a7Smrg	-ctix* | -uts*)
1472692f60a7Smrg		os=-sysv
1473692f60a7Smrg		;;
1474692f60a7Smrg	-nova*)
1475692f60a7Smrg		os=-rtmk-nova
1476692f60a7Smrg		;;
1477692f60a7Smrg	-ns2 )
1478692f60a7Smrg		os=-nextstep2
1479692f60a7Smrg		;;
1480692f60a7Smrg	-nsk*)
1481692f60a7Smrg		os=-nsk
1482692f60a7Smrg		;;
1483692f60a7Smrg	# Preserve the version number of sinix5.
1484692f60a7Smrg	-sinix5.*)
1485692f60a7Smrg		os=`echo $os | sed -e 's|sinix|sysv|'`
1486692f60a7Smrg		;;
1487692f60a7Smrg	-sinix*)
1488692f60a7Smrg		os=-sysv4
1489692f60a7Smrg		;;
14903f6d0e1dSmrg	-tpf*)
149154569438Smrg		os=-tpf
149254569438Smrg		;;
1493692f60a7Smrg	-triton*)
1494692f60a7Smrg		os=-sysv3
1495692f60a7Smrg		;;
1496692f60a7Smrg	-oss*)
1497692f60a7Smrg		os=-sysv3
1498692f60a7Smrg		;;
1499692f60a7Smrg	-svr4)
1500692f60a7Smrg		os=-sysv4
1501692f60a7Smrg		;;
1502692f60a7Smrg	-svr3)
1503692f60a7Smrg		os=-sysv3
1504692f60a7Smrg		;;
1505692f60a7Smrg	-sysvr4)
1506692f60a7Smrg		os=-sysv4
1507692f60a7Smrg		;;
1508692f60a7Smrg	# This must come after -sysvr4.
1509692f60a7Smrg	-sysv*)
1510692f60a7Smrg		;;
1511692f60a7Smrg	-ose*)
1512692f60a7Smrg		os=-ose
1513692f60a7Smrg		;;
1514692f60a7Smrg	-es1800*)
1515692f60a7Smrg		os=-ose
1516692f60a7Smrg		;;
1517692f60a7Smrg	-xenix)
1518692f60a7Smrg		os=-xenix
1519692f60a7Smrg		;;
1520692f60a7Smrg	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1521692f60a7Smrg		os=-mint
1522692f60a7Smrg		;;
1523692f60a7Smrg	-aros*)
1524692f60a7Smrg		os=-aros
1525692f60a7Smrg		;;
152654569438Smrg	-zvmoe)
152754569438Smrg		os=-zvmoe
152854569438Smrg		;;
15293f6d0e1dSmrg	-dicos*)
15303f6d0e1dSmrg		os=-dicos
15313f6d0e1dSmrg		;;
15323f6d0e1dSmrg	-nacl*)
15333f6d0e1dSmrg		;;
1534692f60a7Smrg	-none)
1535692f60a7Smrg		;;
1536692f60a7Smrg	*)
1537692f60a7Smrg		# Get rid of the `-' at the beginning of $os.
1538692f60a7Smrg		os=`echo $os | sed 's/[^-]*-//'`
1539692f60a7Smrg		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1540692f60a7Smrg		exit 1
1541692f60a7Smrg		;;
1542692f60a7Smrgesac
1543692f60a7Smrgelse
1544692f60a7Smrg
1545692f60a7Smrg# Here we handle the default operating systems that come with various machines.
1546692f60a7Smrg# The value should be what the vendor currently ships out the door with their
1547692f60a7Smrg# machine or put another way, the most popular os provided with the machine.
1548692f60a7Smrg
1549692f60a7Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
1550692f60a7Smrg# "-sun"), then you have to tell the case statement up towards the top
1551692f60a7Smrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
1552692f60a7Smrg# will signal an error saying that MANUFACTURER isn't an operating
1553692f60a7Smrg# system, and we'll never get to this point.
1554692f60a7Smrg
1555692f60a7Smrgcase $basic_machine in
15563f6d0e1dSmrg	score-*)
155754569438Smrg		os=-elf
155854569438Smrg		;;
15593f6d0e1dSmrg	spu-*)
156054569438Smrg		os=-elf
156154569438Smrg		;;
1562692f60a7Smrg	*-acorn)
1563692f60a7Smrg		os=-riscix1.2
1564692f60a7Smrg		;;
1565692f60a7Smrg	arm*-rebel)
1566692f60a7Smrg		os=-linux
1567692f60a7Smrg		;;
1568692f60a7Smrg	arm*-semi)
1569692f60a7Smrg		os=-aout
1570692f60a7Smrg		;;
15713f6d0e1dSmrg	c4x-* | tic4x-*)
15723f6d0e1dSmrg		os=-coff
15733f6d0e1dSmrg		;;
157495903e71Smrg	c8051-*)
157595903e71Smrg		os=-elf
157695903e71Smrg		;;
1577eaa3dbe0Smrg	hexagon-*)
1578eaa3dbe0Smrg		os=-elf
1579eaa3dbe0Smrg		;;
15803f6d0e1dSmrg	tic54x-*)
15813f6d0e1dSmrg		os=-coff
15823f6d0e1dSmrg		;;
15833f6d0e1dSmrg	tic55x-*)
15843f6d0e1dSmrg		os=-coff
15853f6d0e1dSmrg		;;
15863f6d0e1dSmrg	tic6x-*)
15873f6d0e1dSmrg		os=-coff
1588692f60a7Smrg		;;
1589692f60a7Smrg	# This must come before the *-dec entry.
1590692f60a7Smrg	pdp10-*)
1591692f60a7Smrg		os=-tops20
1592692f60a7Smrg		;;
1593692f60a7Smrg	pdp11-*)
1594692f60a7Smrg		os=-none
1595692f60a7Smrg		;;
1596692f60a7Smrg	*-dec | vax-*)
1597692f60a7Smrg		os=-ultrix4.2
1598692f60a7Smrg		;;
1599692f60a7Smrg	m68*-apollo)
1600692f60a7Smrg		os=-domain
1601692f60a7Smrg		;;
1602692f60a7Smrg	i386-sun)
1603692f60a7Smrg		os=-sunos4.0.2
1604692f60a7Smrg		;;
1605692f60a7Smrg	m68000-sun)
1606692f60a7Smrg		os=-sunos3
1607692f60a7Smrg		;;
1608692f60a7Smrg	m68*-cisco)
1609692f60a7Smrg		os=-aout
1610692f60a7Smrg		;;
16113f6d0e1dSmrg	mep-*)
161254569438Smrg		os=-elf
161354569438Smrg		;;
1614692f60a7Smrg	mips*-cisco)
1615692f60a7Smrg		os=-elf
1616692f60a7Smrg		;;
1617692f60a7Smrg	mips*-*)
1618692f60a7Smrg		os=-elf
1619692f60a7Smrg		;;
1620692f60a7Smrg	or32-*)
1621692f60a7Smrg		os=-coff
1622692f60a7Smrg		;;
1623692f60a7Smrg	*-tti)	# must be before sparc entry or we get the wrong os.
1624692f60a7Smrg		os=-sysv3
1625692f60a7Smrg		;;
1626692f60a7Smrg	sparc-* | *-sun)
1627692f60a7Smrg		os=-sunos4.1.1
1628692f60a7Smrg		;;
1629692f60a7Smrg	*-be)
1630692f60a7Smrg		os=-beos
1631692f60a7Smrg		;;
163254569438Smrg	*-haiku)
163354569438Smrg		os=-haiku
163454569438Smrg		;;
1635692f60a7Smrg	*-ibm)
1636692f60a7Smrg		os=-aix
1637692f60a7Smrg		;;
16383f6d0e1dSmrg	*-knuth)
163954569438Smrg		os=-mmixware
164054569438Smrg		;;
1641692f60a7Smrg	*-wec)
1642692f60a7Smrg		os=-proelf
1643692f60a7Smrg		;;
1644692f60a7Smrg	*-winbond)
1645692f60a7Smrg		os=-proelf
1646692f60a7Smrg		;;
1647692f60a7Smrg	*-oki)
1648692f60a7Smrg		os=-proelf
1649692f60a7Smrg		;;
1650692f60a7Smrg	*-hp)
1651692f60a7Smrg		os=-hpux
1652692f60a7Smrg		;;
1653692f60a7Smrg	*-hitachi)
1654692f60a7Smrg		os=-hiux
1655692f60a7Smrg		;;
1656692f60a7Smrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1657692f60a7Smrg		os=-sysv
1658692f60a7Smrg		;;
1659692f60a7Smrg	*-cbm)
1660692f60a7Smrg		os=-amigaos
1661692f60a7Smrg		;;
1662692f60a7Smrg	*-dg)
1663692f60a7Smrg		os=-dgux
1664692f60a7Smrg		;;
1665692f60a7Smrg	*-dolphin)
1666692f60a7Smrg		os=-sysv3
1667692f60a7Smrg		;;
1668692f60a7Smrg	m68k-ccur)
1669692f60a7Smrg		os=-rtu
1670692f60a7Smrg		;;
1671692f60a7Smrg	m88k-omron*)
1672692f60a7Smrg		os=-luna
1673692f60a7Smrg		;;
1674692f60a7Smrg	*-next )
1675692f60a7Smrg		os=-nextstep
1676692f60a7Smrg		;;
1677692f60a7Smrg	*-sequent)
1678692f60a7Smrg		os=-ptx
1679692f60a7Smrg		;;
1680692f60a7Smrg	*-crds)
1681692f60a7Smrg		os=-unos
1682692f60a7Smrg		;;
1683692f60a7Smrg	*-ns)
1684692f60a7Smrg		os=-genix
1685692f60a7Smrg		;;
1686692f60a7Smrg	i370-*)
1687692f60a7Smrg		os=-mvs
1688692f60a7Smrg		;;
1689692f60a7Smrg	*-next)
1690692f60a7Smrg		os=-nextstep3
1691692f60a7Smrg		;;
1692692f60a7Smrg	*-gould)
1693692f60a7Smrg		os=-sysv
1694692f60a7Smrg		;;
1695692f60a7Smrg	*-highlevel)
1696692f60a7Smrg		os=-bsd
1697692f60a7Smrg		;;
1698692f60a7Smrg	*-encore)
1699692f60a7Smrg		os=-bsd
1700692f60a7Smrg		;;
1701692f60a7Smrg	*-sgi)
1702692f60a7Smrg		os=-irix
1703692f60a7Smrg		;;
1704692f60a7Smrg	*-siemens)
1705692f60a7Smrg		os=-sysv4
1706692f60a7Smrg		;;
1707692f60a7Smrg	*-masscomp)
1708692f60a7Smrg		os=-rtu
1709692f60a7Smrg		;;
1710692f60a7Smrg	f30[01]-fujitsu | f700-fujitsu)
1711692f60a7Smrg		os=-uxpv
1712692f60a7Smrg		;;
1713692f60a7Smrg	*-rom68k)
1714692f60a7Smrg		os=-coff
1715692f60a7Smrg		;;
1716692f60a7Smrg	*-*bug)
1717692f60a7Smrg		os=-coff
1718692f60a7Smrg		;;
1719692f60a7Smrg	*-apple)
1720692f60a7Smrg		os=-macos
1721692f60a7Smrg		;;
1722692f60a7Smrg	*-atari*)
1723692f60a7Smrg		os=-mint
1724692f60a7Smrg		;;
1725692f60a7Smrg	*)
1726692f60a7Smrg		os=-none
1727692f60a7Smrg		;;
1728692f60a7Smrgesac
1729692f60a7Smrgfi
1730692f60a7Smrg
1731692f60a7Smrg# Here we handle the case where we know the os, and the CPU type, but not the
1732692f60a7Smrg# manufacturer.  We pick the logical manufacturer.
1733692f60a7Smrgvendor=unknown
1734692f60a7Smrgcase $basic_machine in
1735692f60a7Smrg	*-unknown)
1736692f60a7Smrg		case $os in
1737692f60a7Smrg			-riscix*)
1738692f60a7Smrg				vendor=acorn
1739692f60a7Smrg				;;
1740692f60a7Smrg			-sunos*)
1741692f60a7Smrg				vendor=sun
1742692f60a7Smrg				;;
17433f6d0e1dSmrg			-cnk*|-aix*)
1744692f60a7Smrg				vendor=ibm
1745692f60a7Smrg				;;
1746692f60a7Smrg			-beos*)
1747692f60a7Smrg				vendor=be
1748692f60a7Smrg				;;
1749692f60a7Smrg			-hpux*)
1750692f60a7Smrg				vendor=hp
1751692f60a7Smrg				;;
1752692f60a7Smrg			-mpeix*)
1753692f60a7Smrg				vendor=hp
1754692f60a7Smrg				;;
1755692f60a7Smrg			-hiux*)
1756692f60a7Smrg				vendor=hitachi
1757692f60a7Smrg				;;
1758692f60a7Smrg			-unos*)
1759692f60a7Smrg				vendor=crds
1760692f60a7Smrg				;;
1761692f60a7Smrg			-dgux*)
1762692f60a7Smrg				vendor=dg
1763692f60a7Smrg				;;
1764692f60a7Smrg			-luna*)
1765692f60a7Smrg				vendor=omron
1766692f60a7Smrg				;;
1767692f60a7Smrg			-genix*)
1768692f60a7Smrg				vendor=ns
1769692f60a7Smrg				;;
1770692f60a7Smrg			-mvs* | -opened*)
1771692f60a7Smrg				vendor=ibm
1772692f60a7Smrg				;;
177354569438Smrg			-os400*)
177454569438Smrg				vendor=ibm
177554569438Smrg				;;
1776692f60a7Smrg			-ptx*)
1777692f60a7Smrg				vendor=sequent
1778692f60a7Smrg				;;
177954569438Smrg			-tpf*)
178054569438Smrg				vendor=ibm
178154569438Smrg				;;
1782692f60a7Smrg			-vxsim* | -vxworks* | -windiss*)
1783692f60a7Smrg				vendor=wrs
1784692f60a7Smrg				;;
1785692f60a7Smrg			-aux*)
1786692f60a7Smrg				vendor=apple
1787692f60a7Smrg				;;
1788692f60a7Smrg			-hms*)
1789692f60a7Smrg				vendor=hitachi
1790692f60a7Smrg				;;
1791692f60a7Smrg			-mpw* | -macos*)
1792692f60a7Smrg				vendor=apple
1793692f60a7Smrg				;;
1794692f60a7Smrg			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1795692f60a7Smrg				vendor=atari
1796692f60a7Smrg				;;
1797692f60a7Smrg			-vos*)
1798692f60a7Smrg				vendor=stratus
1799692f60a7Smrg				;;
1800692f60a7Smrg		esac
1801692f60a7Smrg		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1802692f60a7Smrg		;;
1803692f60a7Smrgesac
1804692f60a7Smrg
1805692f60a7Smrgecho $basic_machine$os
180654569438Smrgexit
1807692f60a7Smrg
1808692f60a7Smrg# Local variables:
1809692f60a7Smrg# eval: (add-hook 'write-file-hooks 'time-stamp)
1810692f60a7Smrg# time-stamp-start: "timestamp='"
1811692f60a7Smrg# time-stamp-format: "%:y-%02m-%02d"
1812692f60a7Smrg# time-stamp-end: "'"
1813692f60a7Smrg# End:
1814