config.sub revision 52fd71cd
13da084b3Smrg#! /bin/sh
23da084b3Smrg# Configuration validation subroutine script.
352fd71cdSmrg#   Copyright 1992-2018 Free Software Foundation, Inc.
43da084b3Smrg
552fd71cdSmrgtimestamp='2018-02-28'
63da084b3Smrg
7e1c0d025Smrg# This file is free software; you can redistribute it and/or modify it
8e1c0d025Smrg# under the terms of the GNU General Public License as published by
9e1c0d025Smrg# the Free Software Foundation; either version 3 of the License, or
103da084b3Smrg# (at your option) any later version.
113da084b3Smrg#
12e1c0d025Smrg# This program is distributed in the hope that it will be useful, but
13e1c0d025Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
14e1c0d025Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15e1c0d025Smrg# General Public License for more details.
163da084b3Smrg#
173da084b3Smrg# You should have received a copy of the GNU General Public License
1852fd71cdSmrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
193da084b3Smrg#
203da084b3Smrg# As a special exception to the GNU General Public License, if you
213da084b3Smrg# distribute this file as part of a program that contains a
223da084b3Smrg# configuration script generated by Autoconf, you may include it under
23e1c0d025Smrg# the same distribution terms that you use for the rest of that
24e1c0d025Smrg# program.  This Exception is an additional permission under section 7
25e1c0d025Smrg# of the GNU General Public License, version 3 ("GPLv3").
263da084b3Smrg
273da084b3Smrg
28e1c0d025Smrg# Please send patches to <config-patches@gnu.org>.
293da084b3Smrg#
303da084b3Smrg# Configuration subroutine to validate and canonicalize a configuration type.
313da084b3Smrg# Supply the specified configuration type as an argument.
323da084b3Smrg# If it is invalid, we print an error message on stderr and exit with code 1.
333da084b3Smrg# Otherwise, we print the canonical config type on stdout and succeed.
343da084b3Smrg
3555acc8fcSmrg# You can get the latest version of this script from:
3652fd71cdSmrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
3755acc8fcSmrg
383da084b3Smrg# This file is supposed to be the same for all GNU packages
393da084b3Smrg# and recognize all the CPU types, system types and aliases
403da084b3Smrg# that are meaningful with *any* GNU software.
413da084b3Smrg# Each package is responsible for reporting which valid configurations
423da084b3Smrg# it does not support.  The user should be able to distinguish
433da084b3Smrg# a failure to support a valid configuration from a meaningless
443da084b3Smrg# configuration.
453da084b3Smrg
463da084b3Smrg# The goal of this file is to map all the various variations of a given
473da084b3Smrg# machine specification into a single specification in the form:
483da084b3Smrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
493da084b3Smrg# or in some cases, the newer four-part form:
503da084b3Smrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
513da084b3Smrg# It is wrong to echo any other type of specification.
523da084b3Smrg
533da084b3Smrgme=`echo "$0" | sed -e 's,.*/,,'`
543da084b3Smrg
553da084b3Smrgusage="\
5652fd71cdSmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
573da084b3Smrg
583da084b3SmrgCanonicalize a configuration name.
593da084b3Smrg
6052fd71cdSmrgOptions:
613da084b3Smrg  -h, --help         print this help, then exit
623da084b3Smrg  -t, --time-stamp   print date of last modification, then exit
633da084b3Smrg  -v, --version      print version number, then exit
643da084b3Smrg
653da084b3SmrgReport bugs and patches to <config-patches@gnu.org>."
663da084b3Smrg
673da084b3Smrgversion="\
683da084b3SmrgGNU config.sub ($timestamp)
693da084b3Smrg
7052fd71cdSmrgCopyright 1992-2018 Free Software Foundation, Inc.
713da084b3Smrg
723da084b3SmrgThis is free software; see the source for copying conditions.  There is NO
733da084b3Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
743da084b3Smrg
753da084b3Smrghelp="
763da084b3SmrgTry \`$me --help' for more information."
773da084b3Smrg
783da084b3Smrg# Parse command line
793da084b3Smrgwhile test $# -gt 0 ; do
803da084b3Smrg  case $1 in
813da084b3Smrg    --time-stamp | --time* | -t )
823da084b3Smrg       echo "$timestamp" ; exit ;;
833da084b3Smrg    --version | -v )
843da084b3Smrg       echo "$version" ; exit ;;
853da084b3Smrg    --help | --h* | -h )
863da084b3Smrg       echo "$usage"; exit ;;
873da084b3Smrg    -- )     # Stop option processing
883da084b3Smrg       shift; break ;;
893da084b3Smrg    - )	# Use stdin as input.
903da084b3Smrg       break ;;
913da084b3Smrg    -* )
923da084b3Smrg       echo "$me: invalid option $1$help"
933da084b3Smrg       exit 1 ;;
943da084b3Smrg
953da084b3Smrg    *local*)
963da084b3Smrg       # First pass through any local machine types.
9752fd71cdSmrg       echo "$1"
983da084b3Smrg       exit ;;
993da084b3Smrg
1003da084b3Smrg    * )
1013da084b3Smrg       break ;;
1023da084b3Smrg  esac
1033da084b3Smrgdone
1043da084b3Smrg
1053da084b3Smrgcase $# in
1063da084b3Smrg 0) echo "$me: missing argument$help" >&2
1073da084b3Smrg    exit 1;;
1083da084b3Smrg 1) ;;
1093da084b3Smrg *) echo "$me: too many arguments$help" >&2
1103da084b3Smrg    exit 1;;
1113da084b3Smrgesac
1123da084b3Smrg
1133da084b3Smrg# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
1143da084b3Smrg# Here we must recognize all the valid KERNEL-OS combinations.
11552fd71cdSmrgmaybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
1163da084b3Smrgcase $maybe_os in
11755acc8fcSmrg  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
118e1c0d025Smrg  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
11952fd71cdSmrg  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
12052fd71cdSmrg  kopensolaris*-gnu* | cloudabi*-eabi* | \
1213da084b3Smrg  storm-chaos* | os2-emx* | rtmk-nova*)
1223da084b3Smrg    os=-$maybe_os
12352fd71cdSmrg    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
1243da084b3Smrg    ;;
125e1c0d025Smrg  android-linux)
126e1c0d025Smrg    os=-linux-android
12752fd71cdSmrg    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
128e1c0d025Smrg    ;;
1293da084b3Smrg  *)
13052fd71cdSmrg    basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
13152fd71cdSmrg    if [ "$basic_machine" != "$1" ]
13252fd71cdSmrg    then os=`echo "$1" | sed 's/.*-/-/'`
1333da084b3Smrg    else os=; fi
1343da084b3Smrg    ;;
1353da084b3Smrgesac
1363da084b3Smrg
1373da084b3Smrg### Let's recognize common machines as not being operating systems so
1383da084b3Smrg### that things like config.sub decstation-3100 work.  We also
1393da084b3Smrg### recognize some manufacturers as not being operating systems, so we
1403da084b3Smrg### can provide default operating systems below.
1413da084b3Smrgcase $os in
1423da084b3Smrg	-sun*os*)
1433da084b3Smrg		# Prevent following clause from handling this invalid input.
1443da084b3Smrg		;;
1453da084b3Smrg	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
1463da084b3Smrg	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
1473da084b3Smrg	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
1483da084b3Smrg	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
1493da084b3Smrg	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
1503da084b3Smrg	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
151e1c0d025Smrg	-apple | -axis | -knuth | -cray | -microblaze*)
1523da084b3Smrg		os=
1533da084b3Smrg		basic_machine=$1
1543da084b3Smrg		;;
15548c85eb7Smrg	-bluegene*)
15648c85eb7Smrg		os=-cnk
15755acc8fcSmrg		;;
1583da084b3Smrg	-sim | -cisco | -oki | -wec | -winbond)
1593da084b3Smrg		os=
1603da084b3Smrg		basic_machine=$1
1613da084b3Smrg		;;
1623da084b3Smrg	-scout)
1633da084b3Smrg		;;
1643da084b3Smrg	-wrs)
1653da084b3Smrg		os=-vxworks
1663da084b3Smrg		basic_machine=$1
1673da084b3Smrg		;;
1683da084b3Smrg	-chorusos*)
1693da084b3Smrg		os=-chorusos
1703da084b3Smrg		basic_machine=$1
1713da084b3Smrg		;;
17248c85eb7Smrg	-chorusrdb)
17348c85eb7Smrg		os=-chorusrdb
1743da084b3Smrg		basic_machine=$1
17548c85eb7Smrg		;;
1763da084b3Smrg	-hiux*)
1773da084b3Smrg		os=-hiuxwe2
1783da084b3Smrg		;;
1793da084b3Smrg	-sco6)
1803da084b3Smrg		os=-sco5v6
18152fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1823da084b3Smrg		;;
1833da084b3Smrg	-sco5)
1843da084b3Smrg		os=-sco3.2v5
18552fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1863da084b3Smrg		;;
1873da084b3Smrg	-sco4)
1883da084b3Smrg		os=-sco3.2v4
18952fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1903da084b3Smrg		;;
1913da084b3Smrg	-sco3.2.[4-9]*)
1923da084b3Smrg		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
19352fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1943da084b3Smrg		;;
1953da084b3Smrg	-sco3.2v[4-9]*)
1963da084b3Smrg		# Don't forget version if it is 3.2v4 or newer.
19752fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1983da084b3Smrg		;;
1993da084b3Smrg	-sco5v6*)
2003da084b3Smrg		# Don't forget version if it is 3.2v4 or newer.
20152fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2023da084b3Smrg		;;
2033da084b3Smrg	-sco*)
2043da084b3Smrg		os=-sco3.2v2
20552fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2063da084b3Smrg		;;
2073da084b3Smrg	-udk*)
20852fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2093da084b3Smrg		;;
2103da084b3Smrg	-isc)
2113da084b3Smrg		os=-isc2.2
21252fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2133da084b3Smrg		;;
2143da084b3Smrg	-clix*)
2153da084b3Smrg		basic_machine=clipper-intergraph
2163da084b3Smrg		;;
2173da084b3Smrg	-isc*)
21852fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2193da084b3Smrg		;;
220e1c0d025Smrg	-lynx*178)
221e1c0d025Smrg		os=-lynxos178
222e1c0d025Smrg		;;
223e1c0d025Smrg	-lynx*5)
224e1c0d025Smrg		os=-lynxos5
225e1c0d025Smrg		;;
2263da084b3Smrg	-lynx*)
2273da084b3Smrg		os=-lynxos
2283da084b3Smrg		;;
2293da084b3Smrg	-ptx*)
23052fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
2313da084b3Smrg		;;
2323da084b3Smrg	-psos*)
2333da084b3Smrg		os=-psos
2343da084b3Smrg		;;
2353da084b3Smrg	-mint | -mint[0-9]*)
2363da084b3Smrg		basic_machine=m68k-atari
2373da084b3Smrg		os=-mint
2383da084b3Smrg		;;
2393da084b3Smrgesac
2403da084b3Smrg
2413da084b3Smrg# Decode aliases for certain CPU-COMPANY combinations.
2423da084b3Smrgcase $basic_machine in
2433da084b3Smrg	# Recognize the basic CPU types without company name.
2443da084b3Smrg	# Some are omitted here because they have special meanings below.
2453da084b3Smrg	1750a | 580 \
2463da084b3Smrg	| a29k \
247e1c0d025Smrg	| aarch64 | aarch64_be \
2483da084b3Smrg	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
2493da084b3Smrg	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
2503da084b3Smrg	| am33_2.0 \
251e1c0d025Smrg	| arc | arceb \
252e1c0d025Smrg	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
253e1c0d025Smrg	| avr | avr32 \
25452fd71cdSmrg	| ba \
255e1c0d025Smrg	| be32 | be64 \
2563da084b3Smrg	| bfin \
257e1c0d025Smrg	| c4x | c8051 | clipper \
2583da084b3Smrg	| d10v | d30v | dlx | dsp16xx \
25952fd71cdSmrg	| e2k | epiphany \
26052fd71cdSmrg	| fido | fr30 | frv | ft32 \
2613da084b3Smrg	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
26248c85eb7Smrg	| hexagon \
26352fd71cdSmrg	| i370 | i860 | i960 | ia16 | ia64 \
2643da084b3Smrg	| ip2k | iq2000 \
265e1c0d025Smrg	| k1om \
26648c85eb7Smrg	| le32 | le64 \
26755acc8fcSmrg	| lm32 \
268d63fdb69Smrg	| m32c | m32r | m32rle | m68000 | m68k | m88k \
269e1c0d025Smrg	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
2703da084b3Smrg	| mips | mipsbe | mipseb | mipsel | mipsle \
2713da084b3Smrg	| mips16 \
2723da084b3Smrg	| mips64 | mips64el \
27355acc8fcSmrg	| mips64octeon | mips64octeonel \
2743da084b3Smrg	| mips64orion | mips64orionel \
27555acc8fcSmrg	| mips64r5900 | mips64r5900el \
27655acc8fcSmrg	| mips64vr | mips64vrel \
2773da084b3Smrg	| mips64vr4100 | mips64vr4100el \
2783da084b3Smrg	| mips64vr4300 | mips64vr4300el \
2793da084b3Smrg	| mips64vr5000 | mips64vr5000el \
2803da084b3Smrg	| mips64vr5900 | mips64vr5900el \
2813da084b3Smrg	| mipsisa32 | mipsisa32el \
2823da084b3Smrg	| mipsisa32r2 | mipsisa32r2el \
283e1c0d025Smrg	| mipsisa32r6 | mipsisa32r6el \
2843da084b3Smrg	| mipsisa64 | mipsisa64el \
2853da084b3Smrg	| mipsisa64r2 | mipsisa64r2el \
286e1c0d025Smrg	| mipsisa64r6 | mipsisa64r6el \
2873da084b3Smrg	| mipsisa64sb1 | mipsisa64sb1el \
2883da084b3Smrg	| mipsisa64sr71k | mipsisa64sr71kel \
289e1c0d025Smrg	| mipsr5900 | mipsr5900el \
2903da084b3Smrg	| mipstx39 | mipstx39el \
2913da084b3Smrg	| mn10200 | mn10300 \
29255acc8fcSmrg	| moxie \
2933da084b3Smrg	| mt \
2943da084b3Smrg	| msp430 \
29555acc8fcSmrg	| nds32 | nds32le | nds32be \
296e1c0d025Smrg	| nios | nios2 | nios2eb | nios2el \
2973da084b3Smrg	| ns16k | ns32k \
298e1c0d025Smrg	| open8 | or1k | or1knd | or32 \
29952fd71cdSmrg	| pdp10 | pj | pjl \
30048c85eb7Smrg	| powerpc | powerpc64 | powerpc64le | powerpcle \
30152fd71cdSmrg	| pru \
3023da084b3Smrg	| pyramid \
303e1c0d025Smrg	| riscv32 | riscv64 \
30448c85eb7Smrg	| rl78 | rx \
305d63fdb69Smrg	| score \
30652fd71cdSmrg	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
3073da084b3Smrg	| sh64 | sh64le \
308d63fdb69Smrg	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
309d63fdb69Smrg	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
31048c85eb7Smrg	| spu \
31148c85eb7Smrg	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
31255acc8fcSmrg	| ubicom32 \
31348c85eb7Smrg	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
314e1c0d025Smrg	| visium \
31552fd71cdSmrg	| wasm32 \
31648c85eb7Smrg	| x86 | xc16x | xstormy16 | xtensa \
31755acc8fcSmrg	| z8k | z80)
3183da084b3Smrg		basic_machine=$basic_machine-unknown
3193da084b3Smrg		;;
32055acc8fcSmrg	c54x)
32155acc8fcSmrg		basic_machine=tic54x-unknown
32255acc8fcSmrg		;;
32355acc8fcSmrg	c55x)
32455acc8fcSmrg		basic_machine=tic55x-unknown
32555acc8fcSmrg		;;
32655acc8fcSmrg	c6x)
32755acc8fcSmrg		basic_machine=tic6x-unknown
32855acc8fcSmrg		;;
329e1c0d025Smrg	leon|leon[3-9])
330e1c0d025Smrg		basic_machine=sparc-$basic_machine
331e1c0d025Smrg		;;
332e1c0d025Smrg	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
3333da084b3Smrg		basic_machine=$basic_machine-unknown
3343da084b3Smrg		os=-none
3353da084b3Smrg		;;
33652fd71cdSmrg	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
3373da084b3Smrg		;;
3383da084b3Smrg	ms1)
3393da084b3Smrg		basic_machine=mt-unknown
3403da084b3Smrg		;;
3413da084b3Smrg
34248c85eb7Smrg	strongarm | thumb | xscale)
34348c85eb7Smrg		basic_machine=arm-unknown
34448c85eb7Smrg		;;
345e1c0d025Smrg	xgate)
346e1c0d025Smrg		basic_machine=$basic_machine-unknown
347e1c0d025Smrg		os=-none
348e1c0d025Smrg		;;
34948c85eb7Smrg	xscaleeb)
35048c85eb7Smrg		basic_machine=armeb-unknown
35148c85eb7Smrg		;;
35248c85eb7Smrg
35348c85eb7Smrg	xscaleel)
35448c85eb7Smrg		basic_machine=armel-unknown
35548c85eb7Smrg		;;
35648c85eb7Smrg
3573da084b3Smrg	# We use `pc' rather than `unknown'
3583da084b3Smrg	# because (1) that's what they normally are, and
3593da084b3Smrg	# (2) the word "unknown" tends to confuse beginning users.
3603da084b3Smrg	i*86 | x86_64)
3613da084b3Smrg	  basic_machine=$basic_machine-pc
3623da084b3Smrg	  ;;
3633da084b3Smrg	# Object if more than one company name word.
3643da084b3Smrg	*-*-*)
36552fd71cdSmrg		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
3663da084b3Smrg		exit 1
3673da084b3Smrg		;;
3683da084b3Smrg	# Recognize the basic CPU types with company name.
3693da084b3Smrg	580-* \
3703da084b3Smrg	| a29k-* \
371e1c0d025Smrg	| aarch64-* | aarch64_be-* \
3723da084b3Smrg	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
3733da084b3Smrg	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
374e1c0d025Smrg	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
3753da084b3Smrg	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
376d63fdb69Smrg	| avr-* | avr32-* \
37752fd71cdSmrg	| ba-* \
37848c85eb7Smrg	| be32-* | be64-* \
3793da084b3Smrg	| bfin-* | bs2000-* \
38055acc8fcSmrg	| c[123]* | c30-* | [cjt]90-* | c4x-* \
381e1c0d025Smrg	| c8051-* | clipper-* | craynv-* | cydra-* \
3823da084b3Smrg	| d10v-* | d30v-* | dlx-* \
38352fd71cdSmrg	| e2k-* | elxsi-* \
384d63fdb69Smrg	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
3853da084b3Smrg	| h8300-* | h8500-* \
3863da084b3Smrg	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
38748c85eb7Smrg	| hexagon-* \
38852fd71cdSmrg	| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
3893da084b3Smrg	| ip2k-* | iq2000-* \
390e1c0d025Smrg	| k1om-* \
39148c85eb7Smrg	| le32-* | le64-* \
39255acc8fcSmrg	| lm32-* \
393d63fdb69Smrg	| m32c-* | m32r-* | m32rle-* \
3943da084b3Smrg	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
395e1c0d025Smrg	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
396e1c0d025Smrg	| microblaze-* | microblazeel-* \
3973da084b3Smrg	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
3983da084b3Smrg	| mips16-* \
3993da084b3Smrg	| mips64-* | mips64el-* \
40055acc8fcSmrg	| mips64octeon-* | mips64octeonel-* \
4013da084b3Smrg	| mips64orion-* | mips64orionel-* \
40255acc8fcSmrg	| mips64r5900-* | mips64r5900el-* \
40355acc8fcSmrg	| mips64vr-* | mips64vrel-* \
4043da084b3Smrg	| mips64vr4100-* | mips64vr4100el-* \
4053da084b3Smrg	| mips64vr4300-* | mips64vr4300el-* \
4063da084b3Smrg	| mips64vr5000-* | mips64vr5000el-* \
4073da084b3Smrg	| mips64vr5900-* | mips64vr5900el-* \
4083da084b3Smrg	| mipsisa32-* | mipsisa32el-* \
4093da084b3Smrg	| mipsisa32r2-* | mipsisa32r2el-* \
410e1c0d025Smrg	| mipsisa32r6-* | mipsisa32r6el-* \
4113da084b3Smrg	| mipsisa64-* | mipsisa64el-* \
4123da084b3Smrg	| mipsisa64r2-* | mipsisa64r2el-* \
413e1c0d025Smrg	| mipsisa64r6-* | mipsisa64r6el-* \
4143da084b3Smrg	| mipsisa64sb1-* | mipsisa64sb1el-* \
4153da084b3Smrg	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
416e1c0d025Smrg	| mipsr5900-* | mipsr5900el-* \
4173da084b3Smrg	| mipstx39-* | mipstx39el-* \
4183da084b3Smrg	| mmix-* \
4193da084b3Smrg	| mt-* \
4203da084b3Smrg	| msp430-* \
42155acc8fcSmrg	| nds32-* | nds32le-* | nds32be-* \
422e1c0d025Smrg	| nios-* | nios2-* | nios2eb-* | nios2el-* \
4233da084b3Smrg	| none-* | np1-* | ns16k-* | ns32k-* \
42448c85eb7Smrg	| open8-* \
425e1c0d025Smrg	| or1k*-* \
4263da084b3Smrg	| orion-* \
4273da084b3Smrg	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
42848c85eb7Smrg	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
42952fd71cdSmrg	| pru-* \
4303da084b3Smrg	| pyramid-* \
43152fd71cdSmrg	| riscv32-* | riscv64-* \
43248c85eb7Smrg	| rl78-* | romp-* | rs6000-* | rx-* \
43355acc8fcSmrg	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
4343da084b3Smrg	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
435d63fdb69Smrg	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
4363da084b3Smrg	| sparclite-* \
43752fd71cdSmrg	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
43848c85eb7Smrg	| tahoe-* \
4393da084b3Smrg	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
44048c85eb7Smrg	| tile*-* \
4413da084b3Smrg	| tron-* \
44255acc8fcSmrg	| ubicom32-* \
44348c85eb7Smrg	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
44448c85eb7Smrg	| vax-* \
445e1c0d025Smrg	| visium-* \
44652fd71cdSmrg	| wasm32-* \
4473da084b3Smrg	| we32k-* \
44848c85eb7Smrg	| x86-* | x86_64-* | xc16x-* | xps100-* \
449d63fdb69Smrg	| xstormy16-* | xtensa*-* \
4503da084b3Smrg	| ymp-* \
45155acc8fcSmrg	| z8k-* | z80-*)
4523da084b3Smrg		;;
453d63fdb69Smrg	# Recognize the basic CPU types without company name, with glob match.
454d63fdb69Smrg	xtensa*)
455d63fdb69Smrg		basic_machine=$basic_machine-unknown
4563da084b3Smrg		;;
4573da084b3Smrg	# Recognize the various machine names and aliases which stand
4583da084b3Smrg	# for a CPU type and a company and sometimes even an OS.
4593da084b3Smrg	386bsd)
46052fd71cdSmrg		basic_machine=i386-pc
4613da084b3Smrg		os=-bsd
4623da084b3Smrg		;;
4633da084b3Smrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
4643da084b3Smrg		basic_machine=m68000-att
4653da084b3Smrg		;;
4663da084b3Smrg	3b*)
4673da084b3Smrg		basic_machine=we32k-att
4683da084b3Smrg		;;
4693da084b3Smrg	a29khif)
4703da084b3Smrg		basic_machine=a29k-amd
4713da084b3Smrg		os=-udi
4723da084b3Smrg		;;
47348c85eb7Smrg	abacus)
4743da084b3Smrg		basic_machine=abacus-unknown
4753da084b3Smrg		;;
4763da084b3Smrg	adobe68k)
4773da084b3Smrg		basic_machine=m68010-adobe
4783da084b3Smrg		os=-scout
4793da084b3Smrg		;;
4803da084b3Smrg	alliant | fx80)
4813da084b3Smrg		basic_machine=fx80-alliant
4823da084b3Smrg		;;
4833da084b3Smrg	altos | altos3068)
4843da084b3Smrg		basic_machine=m68k-altos
4853da084b3Smrg		;;
4863da084b3Smrg	am29k)
4873da084b3Smrg		basic_machine=a29k-none
4883da084b3Smrg		os=-bsd
4893da084b3Smrg		;;
4903da084b3Smrg	amd64)
4913da084b3Smrg		basic_machine=x86_64-pc
4923da084b3Smrg		;;
4933da084b3Smrg	amd64-*)
49452fd71cdSmrg		basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
4953da084b3Smrg		;;
4963da084b3Smrg	amdahl)
4973da084b3Smrg		basic_machine=580-amdahl
4983da084b3Smrg		os=-sysv
4993da084b3Smrg		;;
5003da084b3Smrg	amiga | amiga-*)
5013da084b3Smrg		basic_machine=m68k-unknown
5023da084b3Smrg		;;
5033da084b3Smrg	amigaos | amigados)
5043da084b3Smrg		basic_machine=m68k-unknown
5053da084b3Smrg		os=-amigaos
5063da084b3Smrg		;;
5073da084b3Smrg	amigaunix | amix)
5083da084b3Smrg		basic_machine=m68k-unknown
5093da084b3Smrg		os=-sysv4
5103da084b3Smrg		;;
5113da084b3Smrg	apollo68)
5123da084b3Smrg		basic_machine=m68k-apollo
5133da084b3Smrg		os=-sysv
5143da084b3Smrg		;;
5153da084b3Smrg	apollo68bsd)
5163da084b3Smrg		basic_machine=m68k-apollo
5173da084b3Smrg		os=-bsd
5183da084b3Smrg		;;
51955acc8fcSmrg	aros)
52055acc8fcSmrg		basic_machine=i386-pc
52155acc8fcSmrg		os=-aros
52255acc8fcSmrg		;;
52352fd71cdSmrg	asmjs)
52452fd71cdSmrg		basic_machine=asmjs-unknown
52552fd71cdSmrg		;;
5263da084b3Smrg	aux)
5273da084b3Smrg		basic_machine=m68k-apple
5283da084b3Smrg		os=-aux
5293da084b3Smrg		;;
5303da084b3Smrg	balance)
5313da084b3Smrg		basic_machine=ns32k-sequent
5323da084b3Smrg		os=-dynix
5333da084b3Smrg		;;
534d63fdb69Smrg	blackfin)
535d63fdb69Smrg		basic_machine=bfin-unknown
536d63fdb69Smrg		os=-linux
537d63fdb69Smrg		;;
538d63fdb69Smrg	blackfin-*)
53952fd71cdSmrg		basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
540d63fdb69Smrg		os=-linux
541d63fdb69Smrg		;;
54255acc8fcSmrg	bluegene*)
54355acc8fcSmrg		basic_machine=powerpc-ibm
54455acc8fcSmrg		os=-cnk
54555acc8fcSmrg		;;
54655acc8fcSmrg	c54x-*)
54752fd71cdSmrg		basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
54855acc8fcSmrg		;;
54955acc8fcSmrg	c55x-*)
55052fd71cdSmrg		basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
55155acc8fcSmrg		;;
55255acc8fcSmrg	c6x-*)
55352fd71cdSmrg		basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
55455acc8fcSmrg		;;
5553da084b3Smrg	c90)
5563da084b3Smrg		basic_machine=c90-cray
5573da084b3Smrg		os=-unicos
5583da084b3Smrg		;;
55948c85eb7Smrg	cegcc)
56055acc8fcSmrg		basic_machine=arm-unknown
56155acc8fcSmrg		os=-cegcc
56255acc8fcSmrg		;;
5633da084b3Smrg	convex-c1)
5643da084b3Smrg		basic_machine=c1-convex
5653da084b3Smrg		os=-bsd
5663da084b3Smrg		;;
5673da084b3Smrg	convex-c2)
5683da084b3Smrg		basic_machine=c2-convex
5693da084b3Smrg		os=-bsd
5703da084b3Smrg		;;
5713da084b3Smrg	convex-c32)
5723da084b3Smrg		basic_machine=c32-convex
5733da084b3Smrg		os=-bsd
5743da084b3Smrg		;;
5753da084b3Smrg	convex-c34)
5763da084b3Smrg		basic_machine=c34-convex
5773da084b3Smrg		os=-bsd
5783da084b3Smrg		;;
5793da084b3Smrg	convex-c38)
5803da084b3Smrg		basic_machine=c38-convex
5813da084b3Smrg		os=-bsd
5823da084b3Smrg		;;
5833da084b3Smrg	cray | j90)
5843da084b3Smrg		basic_machine=j90-cray
5853da084b3Smrg		os=-unicos
5863da084b3Smrg		;;
5873da084b3Smrg	craynv)
5883da084b3Smrg		basic_machine=craynv-cray
5893da084b3Smrg		os=-unicosmp
5903da084b3Smrg		;;
59148c85eb7Smrg	cr16 | cr16-*)
592d63fdb69Smrg		basic_machine=cr16-unknown
5933da084b3Smrg		os=-elf
5943da084b3Smrg		;;
5953da084b3Smrg	crds | unos)
5963da084b3Smrg		basic_machine=m68k-crds
5973da084b3Smrg		;;
5983da084b3Smrg	crisv32 | crisv32-* | etraxfs*)
5993da084b3Smrg		basic_machine=crisv32-axis
6003da084b3Smrg		;;
6013da084b3Smrg	cris | cris-* | etrax*)
6023da084b3Smrg		basic_machine=cris-axis
6033da084b3Smrg		;;
6043da084b3Smrg	crx)
6053da084b3Smrg		basic_machine=crx-unknown
6063da084b3Smrg		os=-elf
6073da084b3Smrg		;;
6083da084b3Smrg	da30 | da30-*)
6093da084b3Smrg		basic_machine=m68k-da30
6103da084b3Smrg		;;
6113da084b3Smrg	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
6123da084b3Smrg		basic_machine=mips-dec
6133da084b3Smrg		;;
6143da084b3Smrg	decsystem10* | dec10*)
6153da084b3Smrg		basic_machine=pdp10-dec
6163da084b3Smrg		os=-tops10
6173da084b3Smrg		;;
6183da084b3Smrg	decsystem20* | dec20*)
6193da084b3Smrg		basic_machine=pdp10-dec
6203da084b3Smrg		os=-tops20
6213da084b3Smrg		;;
6223da084b3Smrg	delta | 3300 | motorola-3300 | motorola-delta \
6233da084b3Smrg	      | 3300-motorola | delta-motorola)
6243da084b3Smrg		basic_machine=m68k-motorola
6253da084b3Smrg		;;
6263da084b3Smrg	delta88)
6273da084b3Smrg		basic_machine=m88k-motorola
6283da084b3Smrg		os=-sysv3
6293da084b3Smrg		;;
63055acc8fcSmrg	dicos)
63155acc8fcSmrg		basic_machine=i686-pc
63255acc8fcSmrg		os=-dicos
63355acc8fcSmrg		;;
6343da084b3Smrg	djgpp)
6353da084b3Smrg		basic_machine=i586-pc
6363da084b3Smrg		os=-msdosdjgpp
6373da084b3Smrg		;;
6383da084b3Smrg	dpx20 | dpx20-*)
6393da084b3Smrg		basic_machine=rs6000-bull
6403da084b3Smrg		os=-bosx
6413da084b3Smrg		;;
64252fd71cdSmrg	dpx2*)
6433da084b3Smrg		basic_machine=m68k-bull
6443da084b3Smrg		os=-sysv3
6453da084b3Smrg		;;
64652fd71cdSmrg	e500v[12])
64752fd71cdSmrg		basic_machine=powerpc-unknown
64852fd71cdSmrg		os=$os"spe"
64952fd71cdSmrg		;;
65052fd71cdSmrg	e500v[12]-*)
65152fd71cdSmrg		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
65252fd71cdSmrg		os=$os"spe"
65352fd71cdSmrg		;;
6543da084b3Smrg	ebmon29k)
6553da084b3Smrg		basic_machine=a29k-amd
6563da084b3Smrg		os=-ebmon
6573da084b3Smrg		;;
6583da084b3Smrg	elxsi)
6593da084b3Smrg		basic_machine=elxsi-elxsi
6603da084b3Smrg		os=-bsd
6613da084b3Smrg		;;
6623da084b3Smrg	encore | umax | mmax)
6633da084b3Smrg		basic_machine=ns32k-encore
6643da084b3Smrg		;;
6653da084b3Smrg	es1800 | OSE68k | ose68k | ose | OSE)
6663da084b3Smrg		basic_machine=m68k-ericsson
6673da084b3Smrg		os=-ose
6683da084b3Smrg		;;
6693da084b3Smrg	fx2800)
6703da084b3Smrg		basic_machine=i860-alliant
6713da084b3Smrg		;;
6723da084b3Smrg	genix)
6733da084b3Smrg		basic_machine=ns32k-ns
6743da084b3Smrg		;;
6753da084b3Smrg	gmicro)
6763da084b3Smrg		basic_machine=tron-gmicro
6773da084b3Smrg		os=-sysv
6783da084b3Smrg		;;
6793da084b3Smrg	go32)
6803da084b3Smrg		basic_machine=i386-pc
6813da084b3Smrg		os=-go32
6823da084b3Smrg		;;
6833da084b3Smrg	h3050r* | hiux*)
6843da084b3Smrg		basic_machine=hppa1.1-hitachi
6853da084b3Smrg		os=-hiuxwe2
6863da084b3Smrg		;;
6873da084b3Smrg	h8300hms)
6883da084b3Smrg		basic_machine=h8300-hitachi
6893da084b3Smrg		os=-hms
6903da084b3Smrg		;;
6913da084b3Smrg	h8300xray)
6923da084b3Smrg		basic_machine=h8300-hitachi
6933da084b3Smrg		os=-xray
6943da084b3Smrg		;;
6953da084b3Smrg	h8500hms)
6963da084b3Smrg		basic_machine=h8500-hitachi
6973da084b3Smrg		os=-hms
6983da084b3Smrg		;;
6993da084b3Smrg	harris)
7003da084b3Smrg		basic_machine=m88k-harris
7013da084b3Smrg		os=-sysv3
7023da084b3Smrg		;;
7033da084b3Smrg	hp300-*)
7043da084b3Smrg		basic_machine=m68k-hp
7053da084b3Smrg		;;
7063da084b3Smrg	hp300bsd)
7073da084b3Smrg		basic_machine=m68k-hp
7083da084b3Smrg		os=-bsd
7093da084b3Smrg		;;
7103da084b3Smrg	hp300hpux)
7113da084b3Smrg		basic_machine=m68k-hp
7123da084b3Smrg		os=-hpux
7133da084b3Smrg		;;
7143da084b3Smrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
7153da084b3Smrg		basic_machine=hppa1.0-hp
7163da084b3Smrg		;;
7173da084b3Smrg	hp9k2[0-9][0-9] | hp9k31[0-9])
7183da084b3Smrg		basic_machine=m68000-hp
7193da084b3Smrg		;;
7203da084b3Smrg	hp9k3[2-9][0-9])
7213da084b3Smrg		basic_machine=m68k-hp
7223da084b3Smrg		;;
7233da084b3Smrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
7243da084b3Smrg		basic_machine=hppa1.0-hp
7253da084b3Smrg		;;
7263da084b3Smrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
7273da084b3Smrg		basic_machine=hppa1.1-hp
7283da084b3Smrg		;;
7293da084b3Smrg	hp9k78[0-9] | hp78[0-9])
7303da084b3Smrg		# FIXME: really hppa2.0-hp
7313da084b3Smrg		basic_machine=hppa1.1-hp
7323da084b3Smrg		;;
7333da084b3Smrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
7343da084b3Smrg		# FIXME: really hppa2.0-hp
7353da084b3Smrg		basic_machine=hppa1.1-hp
7363da084b3Smrg		;;
7373da084b3Smrg	hp9k8[0-9][13679] | hp8[0-9][13679])
7383da084b3Smrg		basic_machine=hppa1.1-hp
7393da084b3Smrg		;;
7403da084b3Smrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
7413da084b3Smrg		basic_machine=hppa1.0-hp
7423da084b3Smrg		;;
7433da084b3Smrg	hppaosf)
7443da084b3Smrg		basic_machine=hppa1.1-hp
7453da084b3Smrg		os=-osf
7463da084b3Smrg		;;
7473da084b3Smrg	hppro)
7483da084b3Smrg		basic_machine=hppa1.1-hp
7493da084b3Smrg		os=-proelf
7503da084b3Smrg		;;
7513da084b3Smrg	i370-ibm* | ibm*)
7523da084b3Smrg		basic_machine=i370-ibm
7533da084b3Smrg		;;
7543da084b3Smrg	i*86v32)
75552fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
7563da084b3Smrg		os=-sysv32
7573da084b3Smrg		;;
7583da084b3Smrg	i*86v4*)
75952fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
7603da084b3Smrg		os=-sysv4
7613da084b3Smrg		;;
7623da084b3Smrg	i*86v)
76352fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
7643da084b3Smrg		os=-sysv
7653da084b3Smrg		;;
7663da084b3Smrg	i*86sol2)
76752fd71cdSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
7683da084b3Smrg		os=-solaris2
7693da084b3Smrg		;;
7703da084b3Smrg	i386mach)
7713da084b3Smrg		basic_machine=i386-mach
7723da084b3Smrg		os=-mach
7733da084b3Smrg		;;
77452fd71cdSmrg	vsta)
7753da084b3Smrg		basic_machine=i386-unknown
7763da084b3Smrg		os=-vsta
7773da084b3Smrg		;;
7783da084b3Smrg	iris | iris4d)
7793da084b3Smrg		basic_machine=mips-sgi
7803da084b3Smrg		case $os in
7813da084b3Smrg		    -irix*)
7823da084b3Smrg			;;
7833da084b3Smrg		    *)
7843da084b3Smrg			os=-irix4
7853da084b3Smrg			;;
7863da084b3Smrg		esac
7873da084b3Smrg		;;
7883da084b3Smrg	isi68 | isi)
7893da084b3Smrg		basic_machine=m68k-isi
7903da084b3Smrg		os=-sysv
7913da084b3Smrg		;;
792e1c0d025Smrg	leon-*|leon[3-9]-*)
79352fd71cdSmrg		basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
794e1c0d025Smrg		;;
795d63fdb69Smrg	m68knommu)
796d63fdb69Smrg		basic_machine=m68k-unknown
797d63fdb69Smrg		os=-linux
798d63fdb69Smrg		;;
799d63fdb69Smrg	m68knommu-*)
80052fd71cdSmrg		basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
801d63fdb69Smrg		os=-linux
802d63fdb69Smrg		;;
8033da084b3Smrg	magnum | m3230)
8043da084b3Smrg		basic_machine=mips-mips
8053da084b3Smrg		os=-sysv
8063da084b3Smrg		;;
8073da084b3Smrg	merlin)
8083da084b3Smrg		basic_machine=ns32k-utek
8093da084b3Smrg		os=-sysv
8103da084b3Smrg		;;
811e1c0d025Smrg	microblaze*)
81255acc8fcSmrg		basic_machine=microblaze-xilinx
81355acc8fcSmrg		;;
814e1c0d025Smrg	mingw64)
815e1c0d025Smrg		basic_machine=x86_64-pc
816e1c0d025Smrg		os=-mingw64
817e1c0d025Smrg		;;
8183da084b3Smrg	mingw32)
819e1c0d025Smrg		basic_machine=i686-pc
8203da084b3Smrg		os=-mingw32
8213da084b3Smrg		;;
822d63fdb69Smrg	mingw32ce)
823d63fdb69Smrg		basic_machine=arm-unknown
824d63fdb69Smrg		os=-mingw32ce
825d63fdb69Smrg		;;
8263da084b3Smrg	miniframe)
8273da084b3Smrg		basic_machine=m68000-convergent
8283da084b3Smrg		;;
8293da084b3Smrg	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
8303da084b3Smrg		basic_machine=m68k-atari
8313da084b3Smrg		os=-mint
8323da084b3Smrg		;;
8333da084b3Smrg	mips3*-*)
83452fd71cdSmrg		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
8353da084b3Smrg		;;
8363da084b3Smrg	mips3*)
83752fd71cdSmrg		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
8383da084b3Smrg		;;
8393da084b3Smrg	monitor)
8403da084b3Smrg		basic_machine=m68k-rom68k
8413da084b3Smrg		os=-coff
8423da084b3Smrg		;;
8433da084b3Smrg	morphos)
8443da084b3Smrg		basic_machine=powerpc-unknown
8453da084b3Smrg		os=-morphos
8463da084b3Smrg		;;
847e1c0d025Smrg	moxiebox)
848e1c0d025Smrg		basic_machine=moxie-unknown
849e1c0d025Smrg		os=-moxiebox
850e1c0d025Smrg		;;
8513da084b3Smrg	msdos)
8523da084b3Smrg		basic_machine=i386-pc
8533da084b3Smrg		os=-msdos
8543da084b3Smrg		;;
8553da084b3Smrg	ms1-*)
85652fd71cdSmrg		basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
8573da084b3Smrg		;;
85848c85eb7Smrg	msys)
859e1c0d025Smrg		basic_machine=i686-pc
86048c85eb7Smrg		os=-msys
86148c85eb7Smrg		;;
8623da084b3Smrg	mvs)
8633da084b3Smrg		basic_machine=i370-ibm
8643da084b3Smrg		os=-mvs
8653da084b3Smrg		;;
86648c85eb7Smrg	nacl)
86748c85eb7Smrg		basic_machine=le32-unknown
86848c85eb7Smrg		os=-nacl
86948c85eb7Smrg		;;
8703da084b3Smrg	ncr3000)
8713da084b3Smrg		basic_machine=i486-ncr
8723da084b3Smrg		os=-sysv4
8733da084b3Smrg		;;
8743da084b3Smrg	netbsd386)
8753da084b3Smrg		basic_machine=i386-unknown
8763da084b3Smrg		os=-netbsd
8773da084b3Smrg		;;
8783da084b3Smrg	netwinder)
8793da084b3Smrg		basic_machine=armv4l-rebel
8803da084b3Smrg		os=-linux
8813da084b3Smrg		;;
8823da084b3Smrg	news | news700 | news800 | news900)
8833da084b3Smrg		basic_machine=m68k-sony
8843da084b3Smrg		os=-newsos
8853da084b3Smrg		;;
8863da084b3Smrg	news1000)
8873da084b3Smrg		basic_machine=m68030-sony
8883da084b3Smrg		os=-newsos
8893da084b3Smrg		;;
8903da084b3Smrg	news-3600 | risc-news)
8913da084b3Smrg		basic_machine=mips-sony
8923da084b3Smrg		os=-newsos
8933da084b3Smrg		;;
8943da084b3Smrg	necv70)
8953da084b3Smrg		basic_machine=v70-nec
8963da084b3Smrg		os=-sysv
8973da084b3Smrg		;;
89852fd71cdSmrg	next | m*-next)
8993da084b3Smrg		basic_machine=m68k-next
9003da084b3Smrg		case $os in
9013da084b3Smrg		    -nextstep* )
9023da084b3Smrg			;;
9033da084b3Smrg		    -ns2*)
9043da084b3Smrg		      os=-nextstep2
9053da084b3Smrg			;;
9063da084b3Smrg		    *)
9073da084b3Smrg		      os=-nextstep3
9083da084b3Smrg			;;
9093da084b3Smrg		esac
9103da084b3Smrg		;;
9113da084b3Smrg	nh3000)
9123da084b3Smrg		basic_machine=m68k-harris
9133da084b3Smrg		os=-cxux
9143da084b3Smrg		;;
9153da084b3Smrg	nh[45]000)
9163da084b3Smrg		basic_machine=m88k-harris
9173da084b3Smrg		os=-cxux
9183da084b3Smrg		;;
9193da084b3Smrg	nindy960)
9203da084b3Smrg		basic_machine=i960-intel
9213da084b3Smrg		os=-nindy
9223da084b3Smrg		;;
9233da084b3Smrg	mon960)
9243da084b3Smrg		basic_machine=i960-intel
9253da084b3Smrg		os=-mon960
9263da084b3Smrg		;;
9273da084b3Smrg	nonstopux)
9283da084b3Smrg		basic_machine=mips-compaq
9293da084b3Smrg		os=-nonstopux
9303da084b3Smrg		;;
9313da084b3Smrg	np1)
9323da084b3Smrg		basic_machine=np1-gould
9333da084b3Smrg		;;
93448c85eb7Smrg	neo-tandem)
93555acc8fcSmrg		basic_machine=neo-tandem
93655acc8fcSmrg		;;
93748c85eb7Smrg	nse-tandem)
93855acc8fcSmrg		basic_machine=nse-tandem
93955acc8fcSmrg		;;
9403da084b3Smrg	nsr-tandem)
9413da084b3Smrg		basic_machine=nsr-tandem
9423da084b3Smrg		;;
94352fd71cdSmrg	nsv-tandem)
94452fd71cdSmrg		basic_machine=nsv-tandem
94552fd71cdSmrg		;;
94652fd71cdSmrg	nsx-tandem)
94752fd71cdSmrg		basic_machine=nsx-tandem
94852fd71cdSmrg		;;
9493da084b3Smrg	op50n-* | op60c-*)
9503da084b3Smrg		basic_machine=hppa1.1-oki
9513da084b3Smrg		os=-proelf
9523da084b3Smrg		;;
9533da084b3Smrg	openrisc | openrisc-*)
9543da084b3Smrg		basic_machine=or32-unknown
9553da084b3Smrg		;;
9563da084b3Smrg	os400)
9573da084b3Smrg		basic_machine=powerpc-ibm
9583da084b3Smrg		os=-os400
9593da084b3Smrg		;;
9603da084b3Smrg	OSE68000 | ose68000)
9613da084b3Smrg		basic_machine=m68000-ericsson
9623da084b3Smrg		os=-ose
9633da084b3Smrg		;;
9643da084b3Smrg	os68k)
9653da084b3Smrg		basic_machine=m68k-none
9663da084b3Smrg		os=-os68k
9673da084b3Smrg		;;
9683da084b3Smrg	pa-hitachi)
9693da084b3Smrg		basic_machine=hppa1.1-hitachi
9703da084b3Smrg		os=-hiuxwe2
9713da084b3Smrg		;;
9723da084b3Smrg	paragon)
9733da084b3Smrg		basic_machine=i860-intel
9743da084b3Smrg		os=-osf
9753da084b3Smrg		;;
976d63fdb69Smrg	parisc)
977d63fdb69Smrg		basic_machine=hppa-unknown
978d63fdb69Smrg		os=-linux
979d63fdb69Smrg		;;
980d63fdb69Smrg	parisc-*)
98152fd71cdSmrg		basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
982d63fdb69Smrg		os=-linux
983d63fdb69Smrg		;;
9843da084b3Smrg	pbd)
9853da084b3Smrg		basic_machine=sparc-tti
9863da084b3Smrg		;;
9873da084b3Smrg	pbb)
9883da084b3Smrg		basic_machine=m68k-tti
9893da084b3Smrg		;;
9903da084b3Smrg	pc532 | pc532-*)
9913da084b3Smrg		basic_machine=ns32k-pc532
9923da084b3Smrg		;;
9933da084b3Smrg	pc98)
9943da084b3Smrg		basic_machine=i386-pc
9953da084b3Smrg		;;
9963da084b3Smrg	pc98-*)
99752fd71cdSmrg		basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
9983da084b3Smrg		;;
9993da084b3Smrg	pentium | p5 | k5 | k6 | nexgen | viac3)
10003da084b3Smrg		basic_machine=i586-pc
10013da084b3Smrg		;;
10023da084b3Smrg	pentiumpro | p6 | 6x86 | athlon | athlon_*)
10033da084b3Smrg		basic_machine=i686-pc
10043da084b3Smrg		;;
10053da084b3Smrg	pentiumii | pentium2 | pentiumiii | pentium3)
10063da084b3Smrg		basic_machine=i686-pc
10073da084b3Smrg		;;
10083da084b3Smrg	pentium4)
10093da084b3Smrg		basic_machine=i786-pc
10103da084b3Smrg		;;
10113da084b3Smrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
101252fd71cdSmrg		basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10133da084b3Smrg		;;
10143da084b3Smrg	pentiumpro-* | p6-* | 6x86-* | athlon-*)
101552fd71cdSmrg		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10163da084b3Smrg		;;
10173da084b3Smrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
101852fd71cdSmrg		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10193da084b3Smrg		;;
10203da084b3Smrg	pentium4-*)
102152fd71cdSmrg		basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10223da084b3Smrg		;;
10233da084b3Smrg	pn)
10243da084b3Smrg		basic_machine=pn-gould
10253da084b3Smrg		;;
10263da084b3Smrg	power)	basic_machine=power-ibm
10273da084b3Smrg		;;
102848c85eb7Smrg	ppc | ppcbe)	basic_machine=powerpc-unknown
10293da084b3Smrg		;;
103048c85eb7Smrg	ppc-* | ppcbe-*)
103152fd71cdSmrg		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10323da084b3Smrg		;;
103352fd71cdSmrg	ppcle | powerpclittle)
10343da084b3Smrg		basic_machine=powerpcle-unknown
10353da084b3Smrg		;;
10363da084b3Smrg	ppcle-* | powerpclittle-*)
103752fd71cdSmrg		basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10383da084b3Smrg		;;
10393da084b3Smrg	ppc64)	basic_machine=powerpc64-unknown
10403da084b3Smrg		;;
104152fd71cdSmrg	ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10423da084b3Smrg		;;
104352fd71cdSmrg	ppc64le | powerpc64little)
10443da084b3Smrg		basic_machine=powerpc64le-unknown
10453da084b3Smrg		;;
10463da084b3Smrg	ppc64le-* | powerpc64little-*)
104752fd71cdSmrg		basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10483da084b3Smrg		;;
10493da084b3Smrg	ps2)
10503da084b3Smrg		basic_machine=i386-ibm
10513da084b3Smrg		;;
10523da084b3Smrg	pw32)
10533da084b3Smrg		basic_machine=i586-unknown
10543da084b3Smrg		os=-pw32
10553da084b3Smrg		;;
1056e1c0d025Smrg	rdos | rdos64)
1057e1c0d025Smrg		basic_machine=x86_64-pc
1058e1c0d025Smrg		os=-rdos
1059e1c0d025Smrg		;;
1060e1c0d025Smrg	rdos32)
10613da084b3Smrg		basic_machine=i386-pc
10623da084b3Smrg		os=-rdos
10633da084b3Smrg		;;
10643da084b3Smrg	rom68k)
10653da084b3Smrg		basic_machine=m68k-rom68k
10663da084b3Smrg		os=-coff
10673da084b3Smrg		;;
10683da084b3Smrg	rm[46]00)
10693da084b3Smrg		basic_machine=mips-siemens
10703da084b3Smrg		;;
10713da084b3Smrg	rtpc | rtpc-*)
10723da084b3Smrg		basic_machine=romp-ibm
10733da084b3Smrg		;;
10743da084b3Smrg	s390 | s390-*)
10753da084b3Smrg		basic_machine=s390-ibm
10763da084b3Smrg		;;
10773da084b3Smrg	s390x | s390x-*)
10783da084b3Smrg		basic_machine=s390x-ibm
10793da084b3Smrg		;;
10803da084b3Smrg	sa29200)
10813da084b3Smrg		basic_machine=a29k-amd
10823da084b3Smrg		os=-udi
10833da084b3Smrg		;;
10843da084b3Smrg	sb1)
10853da084b3Smrg		basic_machine=mipsisa64sb1-unknown
10863da084b3Smrg		;;
10873da084b3Smrg	sb1el)
10883da084b3Smrg		basic_machine=mipsisa64sb1el-unknown
10893da084b3Smrg		;;
1090d63fdb69Smrg	sde)
1091d63fdb69Smrg		basic_machine=mipsisa32-sde
1092d63fdb69Smrg		os=-elf
1093d63fdb69Smrg		;;
10943da084b3Smrg	sei)
10953da084b3Smrg		basic_machine=mips-sei
10963da084b3Smrg		os=-seiux
10973da084b3Smrg		;;
10983da084b3Smrg	sequent)
10993da084b3Smrg		basic_machine=i386-sequent
11003da084b3Smrg		;;
1101d63fdb69Smrg	sh5el)
1102d63fdb69Smrg		basic_machine=sh5le-unknown
1103d63fdb69Smrg		;;
110452fd71cdSmrg	simso-wrs)
11053da084b3Smrg		basic_machine=sparclite-wrs
11063da084b3Smrg		os=-vxworks
11073da084b3Smrg		;;
11083da084b3Smrg	sps7)
11093da084b3Smrg		basic_machine=m68k-bull
11103da084b3Smrg		os=-sysv2
11113da084b3Smrg		;;
11123da084b3Smrg	spur)
11133da084b3Smrg		basic_machine=spur-unknown
11143da084b3Smrg		;;
11153da084b3Smrg	st2000)
11163da084b3Smrg		basic_machine=m68k-tandem
11173da084b3Smrg		;;
11183da084b3Smrg	stratus)
11193da084b3Smrg		basic_machine=i860-stratus
11203da084b3Smrg		os=-sysv4
11213da084b3Smrg		;;
112248c85eb7Smrg	strongarm-* | thumb-*)
112352fd71cdSmrg		basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
112448c85eb7Smrg		;;
11253da084b3Smrg	sun2)
11263da084b3Smrg		basic_machine=m68000-sun
11273da084b3Smrg		;;
11283da084b3Smrg	sun2os3)
11293da084b3Smrg		basic_machine=m68000-sun
11303da084b3Smrg		os=-sunos3
11313da084b3Smrg		;;
11323da084b3Smrg	sun2os4)
11333da084b3Smrg		basic_machine=m68000-sun
11343da084b3Smrg		os=-sunos4
11353da084b3Smrg		;;
11363da084b3Smrg	sun3os3)
11373da084b3Smrg		basic_machine=m68k-sun
11383da084b3Smrg		os=-sunos3
11393da084b3Smrg		;;
11403da084b3Smrg	sun3os4)
11413da084b3Smrg		basic_machine=m68k-sun
11423da084b3Smrg		os=-sunos4
11433da084b3Smrg		;;
11443da084b3Smrg	sun4os3)
11453da084b3Smrg		basic_machine=sparc-sun
11463da084b3Smrg		os=-sunos3
11473da084b3Smrg		;;
11483da084b3Smrg	sun4os4)
11493da084b3Smrg		basic_machine=sparc-sun
11503da084b3Smrg		os=-sunos4
11513da084b3Smrg		;;
11523da084b3Smrg	sun4sol2)
11533da084b3Smrg		basic_machine=sparc-sun
11543da084b3Smrg		os=-solaris2
11553da084b3Smrg		;;
11563da084b3Smrg	sun3 | sun3-*)
11573da084b3Smrg		basic_machine=m68k-sun
11583da084b3Smrg		;;
11593da084b3Smrg	sun4)
11603da084b3Smrg		basic_machine=sparc-sun
11613da084b3Smrg		;;
11623da084b3Smrg	sun386 | sun386i | roadrunner)
11633da084b3Smrg		basic_machine=i386-sun
11643da084b3Smrg		;;
11653da084b3Smrg	sv1)
11663da084b3Smrg		basic_machine=sv1-cray
11673da084b3Smrg		os=-unicos
11683da084b3Smrg		;;
11693da084b3Smrg	symmetry)
11703da084b3Smrg		basic_machine=i386-sequent
11713da084b3Smrg		os=-dynix
11723da084b3Smrg		;;
11733da084b3Smrg	t3e)
11743da084b3Smrg		basic_machine=alphaev5-cray
11753da084b3Smrg		os=-unicos
11763da084b3Smrg		;;
11773da084b3Smrg	t90)
11783da084b3Smrg		basic_machine=t90-cray
11793da084b3Smrg		os=-unicos
11803da084b3Smrg		;;
1181d63fdb69Smrg	tile*)
118248c85eb7Smrg		basic_machine=$basic_machine-unknown
1183d63fdb69Smrg		os=-linux-gnu
1184d63fdb69Smrg		;;
11853da084b3Smrg	tx39)
11863da084b3Smrg		basic_machine=mipstx39-unknown
11873da084b3Smrg		;;
11883da084b3Smrg	tx39el)
11893da084b3Smrg		basic_machine=mipstx39el-unknown
11903da084b3Smrg		;;
11913da084b3Smrg	toad1)
11923da084b3Smrg		basic_machine=pdp10-xkl
11933da084b3Smrg		os=-tops20
11943da084b3Smrg		;;
11953da084b3Smrg	tower | tower-32)
11963da084b3Smrg		basic_machine=m68k-ncr
11973da084b3Smrg		;;
11983da084b3Smrg	tpf)
11993da084b3Smrg		basic_machine=s390x-ibm
12003da084b3Smrg		os=-tpf
12013da084b3Smrg		;;
12023da084b3Smrg	udi29k)
12033da084b3Smrg		basic_machine=a29k-amd
12043da084b3Smrg		os=-udi
12053da084b3Smrg		;;
12063da084b3Smrg	ultra3)
12073da084b3Smrg		basic_machine=a29k-nyu
12083da084b3Smrg		os=-sym1
12093da084b3Smrg		;;
12103da084b3Smrg	v810 | necv810)
12113da084b3Smrg		basic_machine=v810-nec
12123da084b3Smrg		os=-none
12133da084b3Smrg		;;
12143da084b3Smrg	vaxv)
12153da084b3Smrg		basic_machine=vax-dec
12163da084b3Smrg		os=-sysv
12173da084b3Smrg		;;
12183da084b3Smrg	vms)
12193da084b3Smrg		basic_machine=vax-dec
12203da084b3Smrg		os=-vms
12213da084b3Smrg		;;
12223da084b3Smrg	vpp*|vx|vx-*)
12233da084b3Smrg		basic_machine=f301-fujitsu
12243da084b3Smrg		;;
12253da084b3Smrg	vxworks960)
12263da084b3Smrg		basic_machine=i960-wrs
12273da084b3Smrg		os=-vxworks
12283da084b3Smrg		;;
12293da084b3Smrg	vxworks68)
12303da084b3Smrg		basic_machine=m68k-wrs
12313da084b3Smrg		os=-vxworks
12323da084b3Smrg		;;
12333da084b3Smrg	vxworks29k)
12343da084b3Smrg		basic_machine=a29k-wrs
12353da084b3Smrg		os=-vxworks
12363da084b3Smrg		;;
12373da084b3Smrg	w65*)
12383da084b3Smrg		basic_machine=w65-wdc
12393da084b3Smrg		os=-none
12403da084b3Smrg		;;
12413da084b3Smrg	w89k-*)
12423da084b3Smrg		basic_machine=hppa1.1-winbond
12433da084b3Smrg		os=-proelf
12443da084b3Smrg		;;
124552fd71cdSmrg	x64)
124652fd71cdSmrg		basic_machine=x86_64-pc
124752fd71cdSmrg		;;
12483da084b3Smrg	xbox)
12493da084b3Smrg		basic_machine=i686-pc
12503da084b3Smrg		os=-mingw32
12513da084b3Smrg		;;
12523da084b3Smrg	xps | xps100)
12533da084b3Smrg		basic_machine=xps100-honeywell
12543da084b3Smrg		;;
125548c85eb7Smrg	xscale-* | xscalee[bl]-*)
125652fd71cdSmrg		basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
125748c85eb7Smrg		;;
12583da084b3Smrg	ymp)
12593da084b3Smrg		basic_machine=ymp-cray
12603da084b3Smrg		os=-unicos
12613da084b3Smrg		;;
12623da084b3Smrg	none)
12633da084b3Smrg		basic_machine=none-none
12643da084b3Smrg		os=-none
12653da084b3Smrg		;;
12663da084b3Smrg
12673da084b3Smrg# Here we handle the default manufacturer of certain CPU types.  It is in
12683da084b3Smrg# some cases the only manufacturer, in others, it is the most popular.
12693da084b3Smrg	w89k)
12703da084b3Smrg		basic_machine=hppa1.1-winbond
12713da084b3Smrg		;;
12723da084b3Smrg	op50n)
12733da084b3Smrg		basic_machine=hppa1.1-oki
12743da084b3Smrg		;;
12753da084b3Smrg	op60c)
12763da084b3Smrg		basic_machine=hppa1.1-oki
12773da084b3Smrg		;;
12783da084b3Smrg	romp)
12793da084b3Smrg		basic_machine=romp-ibm
12803da084b3Smrg		;;
12813da084b3Smrg	mmix)
12823da084b3Smrg		basic_machine=mmix-knuth
12833da084b3Smrg		;;
12843da084b3Smrg	rs6000)
12853da084b3Smrg		basic_machine=rs6000-ibm
12863da084b3Smrg		;;
12873da084b3Smrg	vax)
12883da084b3Smrg		basic_machine=vax-dec
12893da084b3Smrg		;;
12903da084b3Smrg	pdp11)
12913da084b3Smrg		basic_machine=pdp11-dec
12923da084b3Smrg		;;
12933da084b3Smrg	we32k)
12943da084b3Smrg		basic_machine=we32k-att
12953da084b3Smrg		;;
129655acc8fcSmrg	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
12973da084b3Smrg		basic_machine=sh-unknown
12983da084b3Smrg		;;
12993da084b3Smrg	cydra)
13003da084b3Smrg		basic_machine=cydra-cydrome
13013da084b3Smrg		;;
13023da084b3Smrg	orion)
13033da084b3Smrg		basic_machine=orion-highlevel
13043da084b3Smrg		;;
13053da084b3Smrg	orion105)
13063da084b3Smrg		basic_machine=clipper-highlevel
13073da084b3Smrg		;;
13083da084b3Smrg	mac | mpw | mac-mpw)
13093da084b3Smrg		basic_machine=m68k-apple
13103da084b3Smrg		;;
13113da084b3Smrg	pmac | pmac-mpw)
13123da084b3Smrg		basic_machine=powerpc-apple
13133da084b3Smrg		;;
13143da084b3Smrg	*-unknown)
13153da084b3Smrg		# Make sure to match an already-canonicalized machine name.
13163da084b3Smrg		;;
13173da084b3Smrg	*)
131852fd71cdSmrg		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
13193da084b3Smrg		exit 1
13203da084b3Smrg		;;
13213da084b3Smrgesac
13223da084b3Smrg
13233da084b3Smrg# Here we canonicalize certain aliases for manufacturers.
13243da084b3Smrgcase $basic_machine in
13253da084b3Smrg	*-digital*)
132652fd71cdSmrg		basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
13273da084b3Smrg		;;
13283da084b3Smrg	*-commodore*)
132952fd71cdSmrg		basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
13303da084b3Smrg		;;
13313da084b3Smrg	*)
13323da084b3Smrg		;;
13333da084b3Smrgesac
13343da084b3Smrg
13353da084b3Smrg# Decode manufacturer-specific aliases for certain operating systems.
13363da084b3Smrg
13373da084b3Smrgif [ x"$os" != x"" ]
13383da084b3Smrgthen
13393da084b3Smrgcase $os in
134052fd71cdSmrg	# First match some system type aliases that might get confused
134152fd71cdSmrg	# with valid system types.
13423da084b3Smrg	# -solaris* is a basic system type, with this one exception.
134348c85eb7Smrg	-auroraux)
134448c85eb7Smrg		os=-auroraux
134555acc8fcSmrg		;;
13463da084b3Smrg	-solaris1 | -solaris1.*)
13473da084b3Smrg		os=`echo $os | sed -e 's|solaris1|sunos4|'`
13483da084b3Smrg		;;
13493da084b3Smrg	-solaris)
13503da084b3Smrg		os=-solaris2
13513da084b3Smrg		;;
13523da084b3Smrg	-unixware*)
13533da084b3Smrg		os=-sysv4.2uw
13543da084b3Smrg		;;
13553da084b3Smrg	-gnu/linux*)
13563da084b3Smrg		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
13573da084b3Smrg		;;
135852fd71cdSmrg	# es1800 is here to avoid being matched by es* (a different OS)
135952fd71cdSmrg	-es1800*)
136052fd71cdSmrg		os=-ose
136152fd71cdSmrg		;;
136252fd71cdSmrg	# Now accept the basic system types.
13633da084b3Smrg	# The portable systems comes first.
136452fd71cdSmrg	# Each alternative MUST end in a * to match a version number.
13653da084b3Smrg	# -sysv* is not here because it comes later, after sysvr4.
13663da084b3Smrg	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
136755acc8fcSmrg	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
136855acc8fcSmrg	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1369e1c0d025Smrg	      | -sym* | -kopensolaris* | -plan9* \
13703da084b3Smrg	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
137152fd71cdSmrg	      | -aos* | -aros* | -cloudabi* | -sortix* \
13723da084b3Smrg	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
13733da084b3Smrg	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
137452fd71cdSmrg	      | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
137552fd71cdSmrg	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
13763da084b3Smrg	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
13773da084b3Smrg	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
13783da084b3Smrg	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
137952fd71cdSmrg	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \
138052fd71cdSmrg	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
138148c85eb7Smrg	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
138252fd71cdSmrg	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1383e1c0d025Smrg	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
1384e1c0d025Smrg	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
138552fd71cdSmrg	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
13863da084b3Smrg	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
13873da084b3Smrg	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
13883da084b3Smrg	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
138952fd71cdSmrg	      | -morphos* | -superux* | -rtmk* | -windiss* \
13903da084b3Smrg	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
139152fd71cdSmrg	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
139252fd71cdSmrg	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
139352fd71cdSmrg	      | -midnightbsd*)
13943da084b3Smrg	# Remember, each alternative MUST END IN *, to match a version number.
13953da084b3Smrg		;;
13963da084b3Smrg	-qnx*)
13973da084b3Smrg		case $basic_machine in
13983da084b3Smrg		    x86-* | i*86-*)
13993da084b3Smrg			;;
14003da084b3Smrg		    *)
14013da084b3Smrg			os=-nto$os
14023da084b3Smrg			;;
14033da084b3Smrg		esac
14043da084b3Smrg		;;
14053da084b3Smrg	-nto-qnx*)
14063da084b3Smrg		;;
14073da084b3Smrg	-nto*)
14083da084b3Smrg		os=`echo $os | sed -e 's|nto|nto-qnx|'`
14093da084b3Smrg		;;
141052fd71cdSmrg	-sim | -xray | -os68k* | -v88r* \
141152fd71cdSmrg	      | -windows* | -osx | -abug | -netware* | -os9* \
14123da084b3Smrg	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
14133da084b3Smrg		;;
14143da084b3Smrg	-mac*)
141552fd71cdSmrg		os=`echo "$os" | sed -e 's|mac|macos|'`
14163da084b3Smrg		;;
14173da084b3Smrg	-linux-dietlibc)
14183da084b3Smrg		os=-linux-dietlibc
14193da084b3Smrg		;;
14203da084b3Smrg	-linux*)
14213da084b3Smrg		os=`echo $os | sed -e 's|linux|linux-gnu|'`
14223da084b3Smrg		;;
14233da084b3Smrg	-sunos5*)
142452fd71cdSmrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
14253da084b3Smrg		;;
14263da084b3Smrg	-sunos6*)
142752fd71cdSmrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
14283da084b3Smrg		;;
14293da084b3Smrg	-opened*)
14303da084b3Smrg		os=-openedition
14313da084b3Smrg		;;
143248c85eb7Smrg	-os400*)
14333da084b3Smrg		os=-os400
14343da084b3Smrg		;;
14353da084b3Smrg	-wince*)
14363da084b3Smrg		os=-wince
14373da084b3Smrg		;;
14383da084b3Smrg	-utek*)
14393da084b3Smrg		os=-bsd
14403da084b3Smrg		;;
14413da084b3Smrg	-dynix*)
14423da084b3Smrg		os=-bsd
14433da084b3Smrg		;;
14443da084b3Smrg	-acis*)
14453da084b3Smrg		os=-aos
14463da084b3Smrg		;;
14473da084b3Smrg	-atheos*)
14483da084b3Smrg		os=-atheos
14493da084b3Smrg		;;
14503da084b3Smrg	-syllable*)
14513da084b3Smrg		os=-syllable
14523da084b3Smrg		;;
14533da084b3Smrg	-386bsd)
14543da084b3Smrg		os=-bsd
14553da084b3Smrg		;;
14563da084b3Smrg	-ctix* | -uts*)
14573da084b3Smrg		os=-sysv
14583da084b3Smrg		;;
14593da084b3Smrg	-nova*)
14603da084b3Smrg		os=-rtmk-nova
14613da084b3Smrg		;;
146252fd71cdSmrg	-ns2)
14633da084b3Smrg		os=-nextstep2
14643da084b3Smrg		;;
14653da084b3Smrg	-nsk*)
14663da084b3Smrg		os=-nsk
14673da084b3Smrg		;;
14683da084b3Smrg	# Preserve the version number of sinix5.
14693da084b3Smrg	-sinix5.*)
14703da084b3Smrg		os=`echo $os | sed -e 's|sinix|sysv|'`
14713da084b3Smrg		;;
14723da084b3Smrg	-sinix*)
14733da084b3Smrg		os=-sysv4
14743da084b3Smrg		;;
147548c85eb7Smrg	-tpf*)
14763da084b3Smrg		os=-tpf
14773da084b3Smrg		;;
14783da084b3Smrg	-triton*)
14793da084b3Smrg		os=-sysv3
14803da084b3Smrg		;;
14813da084b3Smrg	-oss*)
14823da084b3Smrg		os=-sysv3
14833da084b3Smrg		;;
148452fd71cdSmrg	-svr4*)
14853da084b3Smrg		os=-sysv4
14863da084b3Smrg		;;
14873da084b3Smrg	-svr3)
14883da084b3Smrg		os=-sysv3
14893da084b3Smrg		;;
14903da084b3Smrg	-sysvr4)
14913da084b3Smrg		os=-sysv4
14923da084b3Smrg		;;
14933da084b3Smrg	# This must come after -sysvr4.
14943da084b3Smrg	-sysv*)
14953da084b3Smrg		;;
14963da084b3Smrg	-ose*)
14973da084b3Smrg		os=-ose
14983da084b3Smrg		;;
14993da084b3Smrg	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
15003da084b3Smrg		os=-mint
15013da084b3Smrg		;;
15023da084b3Smrg	-zvmoe)
15033da084b3Smrg		os=-zvmoe
15043da084b3Smrg		;;
150555acc8fcSmrg	-dicos*)
150655acc8fcSmrg		os=-dicos
150755acc8fcSmrg		;;
150852fd71cdSmrg	-pikeos*)
150952fd71cdSmrg		# Until real need of OS specific support for
151052fd71cdSmrg		# particular features comes up, bare metal
151152fd71cdSmrg		# configurations are quite functional.
151252fd71cdSmrg		case $basic_machine in
151352fd71cdSmrg		    arm*)
151452fd71cdSmrg			os=-eabi
151552fd71cdSmrg			;;
151652fd71cdSmrg		    *)
151752fd71cdSmrg			os=-elf
151852fd71cdSmrg			;;
151952fd71cdSmrg		esac
152052fd71cdSmrg		;;
152148c85eb7Smrg	-nacl*)
152248c85eb7Smrg		;;
152352fd71cdSmrg	-ios)
152452fd71cdSmrg		;;
15253da084b3Smrg	-none)
15263da084b3Smrg		;;
15273da084b3Smrg	*)
15283da084b3Smrg		# Get rid of the `-' at the beginning of $os.
15293da084b3Smrg		os=`echo $os | sed 's/[^-]*-//'`
153052fd71cdSmrg		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
15313da084b3Smrg		exit 1
15323da084b3Smrg		;;
15333da084b3Smrgesac
15343da084b3Smrgelse
15353da084b3Smrg
15363da084b3Smrg# Here we handle the default operating systems that come with various machines.
15373da084b3Smrg# The value should be what the vendor currently ships out the door with their
15383da084b3Smrg# machine or put another way, the most popular os provided with the machine.
15393da084b3Smrg
15403da084b3Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
15413da084b3Smrg# "-sun"), then you have to tell the case statement up towards the top
15423da084b3Smrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
15433da084b3Smrg# will signal an error saying that MANUFACTURER isn't an operating
15443da084b3Smrg# system, and we'll never get to this point.
15453da084b3Smrg
15463da084b3Smrgcase $basic_machine in
154748c85eb7Smrg	score-*)
1548d63fdb69Smrg		os=-elf
1549d63fdb69Smrg		;;
155048c85eb7Smrg	spu-*)
1551d63fdb69Smrg		os=-elf
1552d63fdb69Smrg		;;
15533da084b3Smrg	*-acorn)
15543da084b3Smrg		os=-riscix1.2
15553da084b3Smrg		;;
15563da084b3Smrg	arm*-rebel)
15573da084b3Smrg		os=-linux
15583da084b3Smrg		;;
15593da084b3Smrg	arm*-semi)
15603da084b3Smrg		os=-aout
15613da084b3Smrg		;;
156248c85eb7Smrg	c4x-* | tic4x-*)
156348c85eb7Smrg		os=-coff
1564d63fdb69Smrg		;;
1565e1c0d025Smrg	c8051-*)
1566e1c0d025Smrg		os=-elf
1567e1c0d025Smrg		;;
1568e1c0d025Smrg	hexagon-*)
1569e1c0d025Smrg		os=-elf
1570e1c0d025Smrg		;;
157155acc8fcSmrg	tic54x-*)
157255acc8fcSmrg		os=-coff
157355acc8fcSmrg		;;
157455acc8fcSmrg	tic55x-*)
157555acc8fcSmrg		os=-coff
157655acc8fcSmrg		;;
157755acc8fcSmrg	tic6x-*)
157855acc8fcSmrg		os=-coff
157955acc8fcSmrg		;;
15803da084b3Smrg	# This must come before the *-dec entry.
15813da084b3Smrg	pdp10-*)
15823da084b3Smrg		os=-tops20
15833da084b3Smrg		;;
15843da084b3Smrg	pdp11-*)
15853da084b3Smrg		os=-none
15863da084b3Smrg		;;
15873da084b3Smrg	*-dec | vax-*)
15883da084b3Smrg		os=-ultrix4.2
15893da084b3Smrg		;;
15903da084b3Smrg	m68*-apollo)
15913da084b3Smrg		os=-domain
15923da084b3Smrg		;;
15933da084b3Smrg	i386-sun)
15943da084b3Smrg		os=-sunos4.0.2
15953da084b3Smrg		;;
15963da084b3Smrg	m68000-sun)
15973da084b3Smrg		os=-sunos3
15983da084b3Smrg		;;
15993da084b3Smrg	m68*-cisco)
16003da084b3Smrg		os=-aout
16013da084b3Smrg		;;
160248c85eb7Smrg	mep-*)
1603d63fdb69Smrg		os=-elf
1604d63fdb69Smrg		;;
16053da084b3Smrg	mips*-cisco)
16063da084b3Smrg		os=-elf
16073da084b3Smrg		;;
16083da084b3Smrg	mips*-*)
16093da084b3Smrg		os=-elf
16103da084b3Smrg		;;
16113da084b3Smrg	or32-*)
16123da084b3Smrg		os=-coff
16133da084b3Smrg		;;
16143da084b3Smrg	*-tti)	# must be before sparc entry or we get the wrong os.
16153da084b3Smrg		os=-sysv3
16163da084b3Smrg		;;
16173da084b3Smrg	sparc-* | *-sun)
16183da084b3Smrg		os=-sunos4.1.1
16193da084b3Smrg		;;
162052fd71cdSmrg	pru-*)
162152fd71cdSmrg		os=-elf
162252fd71cdSmrg		;;
16233da084b3Smrg	*-be)
16243da084b3Smrg		os=-beos
16253da084b3Smrg		;;
16263da084b3Smrg	*-ibm)
16273da084b3Smrg		os=-aix
16283da084b3Smrg		;;
162948c85eb7Smrg	*-knuth)
16303da084b3Smrg		os=-mmixware
16313da084b3Smrg		;;
16323da084b3Smrg	*-wec)
16333da084b3Smrg		os=-proelf
16343da084b3Smrg		;;
16353da084b3Smrg	*-winbond)
16363da084b3Smrg		os=-proelf
16373da084b3Smrg		;;
16383da084b3Smrg	*-oki)
16393da084b3Smrg		os=-proelf
16403da084b3Smrg		;;
16413da084b3Smrg	*-hp)
16423da084b3Smrg		os=-hpux
16433da084b3Smrg		;;
16443da084b3Smrg	*-hitachi)
16453da084b3Smrg		os=-hiux
16463da084b3Smrg		;;
16473da084b3Smrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
16483da084b3Smrg		os=-sysv
16493da084b3Smrg		;;
16503da084b3Smrg	*-cbm)
16513da084b3Smrg		os=-amigaos
16523da084b3Smrg		;;
16533da084b3Smrg	*-dg)
16543da084b3Smrg		os=-dgux
16553da084b3Smrg		;;
16563da084b3Smrg	*-dolphin)
16573da084b3Smrg		os=-sysv3
16583da084b3Smrg		;;
16593da084b3Smrg	m68k-ccur)
16603da084b3Smrg		os=-rtu
16613da084b3Smrg		;;
16623da084b3Smrg	m88k-omron*)
16633da084b3Smrg		os=-luna
16643da084b3Smrg		;;
166552fd71cdSmrg	*-next)
16663da084b3Smrg		os=-nextstep
16673da084b3Smrg		;;
16683da084b3Smrg	*-sequent)
16693da084b3Smrg		os=-ptx
16703da084b3Smrg		;;
16713da084b3Smrg	*-crds)
16723da084b3Smrg		os=-unos
16733da084b3Smrg		;;
16743da084b3Smrg	*-ns)
16753da084b3Smrg		os=-genix
16763da084b3Smrg		;;
16773da084b3Smrg	i370-*)
16783da084b3Smrg		os=-mvs
16793da084b3Smrg		;;
16803da084b3Smrg	*-gould)
16813da084b3Smrg		os=-sysv
16823da084b3Smrg		;;
16833da084b3Smrg	*-highlevel)
16843da084b3Smrg		os=-bsd
16853da084b3Smrg		;;
16863da084b3Smrg	*-encore)
16873da084b3Smrg		os=-bsd
16883da084b3Smrg		;;
16893da084b3Smrg	*-sgi)
16903da084b3Smrg		os=-irix
16913da084b3Smrg		;;
16923da084b3Smrg	*-siemens)
16933da084b3Smrg		os=-sysv4
16943da084b3Smrg		;;
16953da084b3Smrg	*-masscomp)
16963da084b3Smrg		os=-rtu
16973da084b3Smrg		;;
16983da084b3Smrg	f30[01]-fujitsu | f700-fujitsu)
16993da084b3Smrg		os=-uxpv
17003da084b3Smrg		;;
17013da084b3Smrg	*-rom68k)
17023da084b3Smrg		os=-coff
17033da084b3Smrg		;;
17043da084b3Smrg	*-*bug)
17053da084b3Smrg		os=-coff
17063da084b3Smrg		;;
17073da084b3Smrg	*-apple)
17083da084b3Smrg		os=-macos
17093da084b3Smrg		;;
17103da084b3Smrg	*-atari*)
17113da084b3Smrg		os=-mint
17123da084b3Smrg		;;
17133da084b3Smrg	*)
17143da084b3Smrg		os=-none
17153da084b3Smrg		;;
17163da084b3Smrgesac
17173da084b3Smrgfi
17183da084b3Smrg
17193da084b3Smrg# Here we handle the case where we know the os, and the CPU type, but not the
17203da084b3Smrg# manufacturer.  We pick the logical manufacturer.
17213da084b3Smrgvendor=unknown
17223da084b3Smrgcase $basic_machine in
17233da084b3Smrg	*-unknown)
17243da084b3Smrg		case $os in
17253da084b3Smrg			-riscix*)
17263da084b3Smrg				vendor=acorn
17273da084b3Smrg				;;
17283da084b3Smrg			-sunos*)
17293da084b3Smrg				vendor=sun
17303da084b3Smrg				;;
173155acc8fcSmrg			-cnk*|-aix*)
17323da084b3Smrg				vendor=ibm
17333da084b3Smrg				;;
17343da084b3Smrg			-beos*)
17353da084b3Smrg				vendor=be
17363da084b3Smrg				;;
17373da084b3Smrg			-hpux*)
17383da084b3Smrg				vendor=hp
17393da084b3Smrg				;;
17403da084b3Smrg			-mpeix*)
17413da084b3Smrg				vendor=hp
17423da084b3Smrg				;;
17433da084b3Smrg			-hiux*)
17443da084b3Smrg				vendor=hitachi
17453da084b3Smrg				;;
17463da084b3Smrg			-unos*)
17473da084b3Smrg				vendor=crds
17483da084b3Smrg				;;
17493da084b3Smrg			-dgux*)
17503da084b3Smrg				vendor=dg
17513da084b3Smrg				;;
17523da084b3Smrg			-luna*)
17533da084b3Smrg				vendor=omron
17543da084b3Smrg				;;
17553da084b3Smrg			-genix*)
17563da084b3Smrg				vendor=ns
17573da084b3Smrg				;;
17583da084b3Smrg			-mvs* | -opened*)
17593da084b3Smrg				vendor=ibm
17603da084b3Smrg				;;
17613da084b3Smrg			-os400*)
17623da084b3Smrg				vendor=ibm
17633da084b3Smrg				;;
17643da084b3Smrg			-ptx*)
17653da084b3Smrg				vendor=sequent
17663da084b3Smrg				;;
17673da084b3Smrg			-tpf*)
17683da084b3Smrg				vendor=ibm
17693da084b3Smrg				;;
17703da084b3Smrg			-vxsim* | -vxworks* | -windiss*)
17713da084b3Smrg				vendor=wrs
17723da084b3Smrg				;;
17733da084b3Smrg			-aux*)
17743da084b3Smrg				vendor=apple
17753da084b3Smrg				;;
17763da084b3Smrg			-hms*)
17773da084b3Smrg				vendor=hitachi
17783da084b3Smrg				;;
17793da084b3Smrg			-mpw* | -macos*)
17803da084b3Smrg				vendor=apple
17813da084b3Smrg				;;
17823da084b3Smrg			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
17833da084b3Smrg				vendor=atari
17843da084b3Smrg				;;
17853da084b3Smrg			-vos*)
17863da084b3Smrg				vendor=stratus
17873da084b3Smrg				;;
17883da084b3Smrg		esac
178952fd71cdSmrg		basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
17903da084b3Smrg		;;
17913da084b3Smrgesac
17923da084b3Smrg
179352fd71cdSmrgecho "$basic_machine$os"
17943da084b3Smrgexit
17953da084b3Smrg
17963da084b3Smrg# Local variables:
179752fd71cdSmrg# eval: (add-hook 'write-file-functions 'time-stamp)
17983da084b3Smrg# time-stamp-start: "timestamp='"
17993da084b3Smrg# time-stamp-format: "%:y-%02m-%02d"
18003da084b3Smrg# time-stamp-end: "'"
18013da084b3Smrg# End:
1802