config.sub revision 6fbef84a
19fe995a9Smrg#! /bin/sh
29fe995a9Smrg# Configuration validation subroutine script.
36fbef84aSmrg#   Copyright 1992-2018 Free Software Foundation, Inc.
49fe995a9Smrg
56fbef84aSmrgtimestamp='2018-02-28'
69fe995a9Smrg
79d794632Smrg# This file is free software; you can redistribute it and/or modify it
89d794632Smrg# under the terms of the GNU General Public License as published by
99d794632Smrg# the Free Software Foundation; either version 3 of the License, or
109fe995a9Smrg# (at your option) any later version.
119fe995a9Smrg#
129d794632Smrg# This program is distributed in the hope that it will be useful, but
139d794632Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
149d794632Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
159d794632Smrg# General Public License for more details.
169fe995a9Smrg#
179fe995a9Smrg# You should have received a copy of the GNU General Public License
186fbef84aSmrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
199fe995a9Smrg#
209fe995a9Smrg# As a special exception to the GNU General Public License, if you
219fe995a9Smrg# distribute this file as part of a program that contains a
229fe995a9Smrg# configuration script generated by Autoconf, you may include it under
239d794632Smrg# the same distribution terms that you use for the rest of that
249d794632Smrg# program.  This Exception is an additional permission under section 7
259d794632Smrg# of the GNU General Public License, version 3 ("GPLv3").
269fe995a9Smrg
279fe995a9Smrg
28e8ac26b0Smrg# Please send patches to <config-patches@gnu.org>.
299fe995a9Smrg#
309fe995a9Smrg# Configuration subroutine to validate and canonicalize a configuration type.
319fe995a9Smrg# Supply the specified configuration type as an argument.
329fe995a9Smrg# If it is invalid, we print an error message on stderr and exit with code 1.
339fe995a9Smrg# Otherwise, we print the canonical config type on stdout and succeed.
349fe995a9Smrg
35b62cc08cSmrg# You can get the latest version of this script from:
366fbef84aSmrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
37b62cc08cSmrg
389fe995a9Smrg# This file is supposed to be the same for all GNU packages
399fe995a9Smrg# and recognize all the CPU types, system types and aliases
409fe995a9Smrg# that are meaningful with *any* GNU software.
419fe995a9Smrg# Each package is responsible for reporting which valid configurations
429fe995a9Smrg# it does not support.  The user should be able to distinguish
439fe995a9Smrg# a failure to support a valid configuration from a meaningless
449fe995a9Smrg# configuration.
459fe995a9Smrg
469fe995a9Smrg# The goal of this file is to map all the various variations of a given
479fe995a9Smrg# machine specification into a single specification in the form:
489fe995a9Smrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
499fe995a9Smrg# or in some cases, the newer four-part form:
509fe995a9Smrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
519fe995a9Smrg# It is wrong to echo any other type of specification.
529fe995a9Smrg
539fe995a9Smrgme=`echo "$0" | sed -e 's,.*/,,'`
549fe995a9Smrg
559fe995a9Smrgusage="\
566fbef84aSmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
579fe995a9Smrg
589fe995a9SmrgCanonicalize a configuration name.
599fe995a9Smrg
606fbef84aSmrgOptions:
619fe995a9Smrg  -h, --help         print this help, then exit
629fe995a9Smrg  -t, --time-stamp   print date of last modification, then exit
639fe995a9Smrg  -v, --version      print version number, then exit
649fe995a9Smrg
659fe995a9SmrgReport bugs and patches to <config-patches@gnu.org>."
669fe995a9Smrg
679fe995a9Smrgversion="\
689fe995a9SmrgGNU config.sub ($timestamp)
699fe995a9Smrg
706fbef84aSmrgCopyright 1992-2018 Free Software Foundation, Inc.
719fe995a9Smrg
729fe995a9SmrgThis is free software; see the source for copying conditions.  There is NO
739fe995a9Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
749fe995a9Smrg
759fe995a9Smrghelp="
769fe995a9SmrgTry \`$me --help' for more information."
779fe995a9Smrg
789fe995a9Smrg# Parse command line
799fe995a9Smrgwhile test $# -gt 0 ; do
809fe995a9Smrg  case $1 in
819fe995a9Smrg    --time-stamp | --time* | -t )
829fe995a9Smrg       echo "$timestamp" ; exit ;;
839fe995a9Smrg    --version | -v )
849fe995a9Smrg       echo "$version" ; exit ;;
859fe995a9Smrg    --help | --h* | -h )
869fe995a9Smrg       echo "$usage"; exit ;;
879fe995a9Smrg    -- )     # Stop option processing
889fe995a9Smrg       shift; break ;;
899fe995a9Smrg    - )	# Use stdin as input.
909fe995a9Smrg       break ;;
919fe995a9Smrg    -* )
929fe995a9Smrg       echo "$me: invalid option $1$help"
939fe995a9Smrg       exit 1 ;;
949fe995a9Smrg
959fe995a9Smrg    *local*)
969fe995a9Smrg       # First pass through any local machine types.
976fbef84aSmrg       echo "$1"
989fe995a9Smrg       exit ;;
999fe995a9Smrg
1009fe995a9Smrg    * )
1019fe995a9Smrg       break ;;
1029fe995a9Smrg  esac
1039fe995a9Smrgdone
1049fe995a9Smrg
1059fe995a9Smrgcase $# in
1069fe995a9Smrg 0) echo "$me: missing argument$help" >&2
1079fe995a9Smrg    exit 1;;
1089fe995a9Smrg 1) ;;
1099fe995a9Smrg *) echo "$me: too many arguments$help" >&2
1109fe995a9Smrg    exit 1;;
1119fe995a9Smrgesac
1129fe995a9Smrg
1139fe995a9Smrg# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
1149fe995a9Smrg# Here we must recognize all the valid KERNEL-OS combinations.
1156fbef84aSmrgmaybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
1169fe995a9Smrgcase $maybe_os in
1179d794632Smrg  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
1189d794632Smrg  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
1196fbef84aSmrg  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
1206fbef84aSmrg  kopensolaris*-gnu* | cloudabi*-eabi* | \
1219fe995a9Smrg  storm-chaos* | os2-emx* | rtmk-nova*)
1229fe995a9Smrg    os=-$maybe_os
1236fbef84aSmrg    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
1249fe995a9Smrg    ;;
1259d794632Smrg  android-linux)
1269d794632Smrg    os=-linux-android
1276fbef84aSmrg    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
1289d794632Smrg    ;;
1299fe995a9Smrg  *)
1306fbef84aSmrg    basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
1316fbef84aSmrg    if [ "$basic_machine" != "$1" ]
1326fbef84aSmrg    then os=`echo "$1" | sed 's/.*-/-/'`
1339fe995a9Smrg    else os=; fi
1349fe995a9Smrg    ;;
1359fe995a9Smrgesac
1369fe995a9Smrg
1379fe995a9Smrg### Let's recognize common machines as not being operating systems so
1389fe995a9Smrg### that things like config.sub decstation-3100 work.  We also
1399fe995a9Smrg### recognize some manufacturers as not being operating systems, so we
1409fe995a9Smrg### can provide default operating systems below.
1419fe995a9Smrgcase $os in
1429fe995a9Smrg	-sun*os*)
1439fe995a9Smrg		# Prevent following clause from handling this invalid input.
1449fe995a9Smrg		;;
1459fe995a9Smrg	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
1469fe995a9Smrg	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
1479fe995a9Smrg	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
1489fe995a9Smrg	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
1499fe995a9Smrg	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
1509fe995a9Smrg	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
1519d794632Smrg	-apple | -axis | -knuth | -cray | -microblaze*)
1529fe995a9Smrg		os=
1539fe995a9Smrg		basic_machine=$1
1549fe995a9Smrg		;;
1559d794632Smrg	-bluegene*)
1569d794632Smrg		os=-cnk
157b62cc08cSmrg		;;
1589fe995a9Smrg	-sim | -cisco | -oki | -wec | -winbond)
1599fe995a9Smrg		os=
1609fe995a9Smrg		basic_machine=$1
1619fe995a9Smrg		;;
1629fe995a9Smrg	-scout)
1639fe995a9Smrg		;;
1649fe995a9Smrg	-wrs)
1659fe995a9Smrg		os=-vxworks
1669fe995a9Smrg		basic_machine=$1
1679fe995a9Smrg		;;
1689fe995a9Smrg	-chorusos*)
1699fe995a9Smrg		os=-chorusos
1709fe995a9Smrg		basic_machine=$1
1719fe995a9Smrg		;;
1729d794632Smrg	-chorusrdb)
1739d794632Smrg		os=-chorusrdb
1749fe995a9Smrg		basic_machine=$1
1759d794632Smrg		;;
1769fe995a9Smrg	-hiux*)
1779fe995a9Smrg		os=-hiuxwe2
1789fe995a9Smrg		;;
1799fe995a9Smrg	-sco6)
1809fe995a9Smrg		os=-sco5v6
1816fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1829fe995a9Smrg		;;
1839fe995a9Smrg	-sco5)
1849fe995a9Smrg		os=-sco3.2v5
1856fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1869fe995a9Smrg		;;
1879fe995a9Smrg	-sco4)
1889fe995a9Smrg		os=-sco3.2v4
1896fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1909fe995a9Smrg		;;
1919fe995a9Smrg	-sco3.2.[4-9]*)
1929fe995a9Smrg		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
1936fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1949fe995a9Smrg		;;
1959fe995a9Smrg	-sco3.2v[4-9]*)
1969fe995a9Smrg		# Don't forget version if it is 3.2v4 or newer.
1976fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1989fe995a9Smrg		;;
1999fe995a9Smrg	-sco5v6*)
2009fe995a9Smrg		# Don't forget version if it is 3.2v4 or newer.
2016fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2029fe995a9Smrg		;;
2039fe995a9Smrg	-sco*)
2049fe995a9Smrg		os=-sco3.2v2
2056fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2069fe995a9Smrg		;;
2079fe995a9Smrg	-udk*)
2086fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2099fe995a9Smrg		;;
2109fe995a9Smrg	-isc)
2119fe995a9Smrg		os=-isc2.2
2126fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2139fe995a9Smrg		;;
2149fe995a9Smrg	-clix*)
2159fe995a9Smrg		basic_machine=clipper-intergraph
2169fe995a9Smrg		;;
2179fe995a9Smrg	-isc*)
2186fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2199fe995a9Smrg		;;
2209d794632Smrg	-lynx*178)
2219d794632Smrg		os=-lynxos178
2229d794632Smrg		;;
2239d794632Smrg	-lynx*5)
2249d794632Smrg		os=-lynxos5
2259d794632Smrg		;;
2269fe995a9Smrg	-lynx*)
2279fe995a9Smrg		os=-lynxos
2289fe995a9Smrg		;;
2299fe995a9Smrg	-ptx*)
2306fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
2319fe995a9Smrg		;;
2329fe995a9Smrg	-psos*)
2339fe995a9Smrg		os=-psos
2349fe995a9Smrg		;;
2359fe995a9Smrg	-mint | -mint[0-9]*)
2369fe995a9Smrg		basic_machine=m68k-atari
2379fe995a9Smrg		os=-mint
2389fe995a9Smrg		;;
2399fe995a9Smrgesac
2409fe995a9Smrg
2419fe995a9Smrg# Decode aliases for certain CPU-COMPANY combinations.
2429fe995a9Smrgcase $basic_machine in
2439fe995a9Smrg	# Recognize the basic CPU types without company name.
2449fe995a9Smrg	# Some are omitted here because they have special meanings below.
2459fe995a9Smrg	1750a | 580 \
2469fe995a9Smrg	| a29k \
2479d794632Smrg	| aarch64 | aarch64_be \
2489fe995a9Smrg	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
2499fe995a9Smrg	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
2509fe995a9Smrg	| am33_2.0 \
2519d794632Smrg	| arc | arceb \
2529d794632Smrg	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
2539d794632Smrg	| avr | avr32 \
2546fbef84aSmrg	| ba \
2559d794632Smrg	| be32 | be64 \
2569fe995a9Smrg	| bfin \
257e8ac26b0Smrg	| c4x | c8051 | clipper \
2589fe995a9Smrg	| d10v | d30v | dlx | dsp16xx \
2596fbef84aSmrg	| e2k | epiphany \
2606fbef84aSmrg	| fido | fr30 | frv | ft32 \
2619fe995a9Smrg	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
2629d794632Smrg	| hexagon \
2636fbef84aSmrg	| i370 | i860 | i960 | ia16 | ia64 \
2649fe995a9Smrg	| ip2k | iq2000 \
265e8ac26b0Smrg	| k1om \
2669d794632Smrg	| le32 | le64 \
267b62cc08cSmrg	| lm32 \
2689fe995a9Smrg	| m32c | m32r | m32rle | m68000 | m68k | m88k \
2699d794632Smrg	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
2709fe995a9Smrg	| mips | mipsbe | mipseb | mipsel | mipsle \
2719fe995a9Smrg	| mips16 \
2729fe995a9Smrg	| mips64 | mips64el \
273b62cc08cSmrg	| mips64octeon | mips64octeonel \
2749fe995a9Smrg	| mips64orion | mips64orionel \
275b62cc08cSmrg	| mips64r5900 | mips64r5900el \
276b62cc08cSmrg	| mips64vr | mips64vrel \
2779fe995a9Smrg	| mips64vr4100 | mips64vr4100el \
2789fe995a9Smrg	| mips64vr4300 | mips64vr4300el \
2799fe995a9Smrg	| mips64vr5000 | mips64vr5000el \
2809fe995a9Smrg	| mips64vr5900 | mips64vr5900el \
2819fe995a9Smrg	| mipsisa32 | mipsisa32el \
2829fe995a9Smrg	| mipsisa32r2 | mipsisa32r2el \
283e8ac26b0Smrg	| mipsisa32r6 | mipsisa32r6el \
2849fe995a9Smrg	| mipsisa64 | mipsisa64el \
2859fe995a9Smrg	| mipsisa64r2 | mipsisa64r2el \
286e8ac26b0Smrg	| mipsisa64r6 | mipsisa64r6el \
2879fe995a9Smrg	| mipsisa64sb1 | mipsisa64sb1el \
2889fe995a9Smrg	| mipsisa64sr71k | mipsisa64sr71kel \
2899d794632Smrg	| mipsr5900 | mipsr5900el \
2909fe995a9Smrg	| mipstx39 | mipstx39el \
2919fe995a9Smrg	| mn10200 | mn10300 \
292b62cc08cSmrg	| moxie \
2939fe995a9Smrg	| mt \
2949fe995a9Smrg	| msp430 \
2959d794632Smrg	| nds32 | nds32le | nds32be \
2969d794632Smrg	| nios | nios2 | nios2eb | nios2el \
2979fe995a9Smrg	| ns16k | ns32k \
298e8ac26b0Smrg	| open8 | or1k | or1knd | or32 \
2996fbef84aSmrg	| pdp10 | pj | pjl \
3009d794632Smrg	| powerpc | powerpc64 | powerpc64le | powerpcle \
3016fbef84aSmrg	| pru \
3029fe995a9Smrg	| pyramid \
303e8ac26b0Smrg	| riscv32 | riscv64 \
3049d794632Smrg	| rl78 | rx \
3059fe995a9Smrg	| score \
3066fbef84aSmrg	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
3079fe995a9Smrg	| sh64 | sh64le \
3089fe995a9Smrg	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
3099fe995a9Smrg	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
3109d794632Smrg	| spu \
3119d794632Smrg	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
312b62cc08cSmrg	| ubicom32 \
3139d794632Smrg	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
314e8ac26b0Smrg	| visium \
3156fbef84aSmrg	| wasm32 \
3169d794632Smrg	| x86 | xc16x | xstormy16 | xtensa \
317b62cc08cSmrg	| z8k | z80)
3189fe995a9Smrg		basic_machine=$basic_machine-unknown
3199fe995a9Smrg		;;
3209d794632Smrg	c54x)
3219d794632Smrg		basic_machine=tic54x-unknown
3229d794632Smrg		;;
3239d794632Smrg	c55x)
3249d794632Smrg		basic_machine=tic55x-unknown
3259d794632Smrg		;;
3269d794632Smrg	c6x)
3279d794632Smrg		basic_machine=tic6x-unknown
3289d794632Smrg		;;
329e8ac26b0Smrg	leon|leon[3-9])
330e8ac26b0Smrg		basic_machine=sparc-$basic_machine
331e8ac26b0Smrg		;;
332e8ac26b0Smrg	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
3339fe995a9Smrg		basic_machine=$basic_machine-unknown
3349fe995a9Smrg		os=-none
3359fe995a9Smrg		;;
3366fbef84aSmrg	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
3379fe995a9Smrg		;;
3389fe995a9Smrg	ms1)
3399fe995a9Smrg		basic_machine=mt-unknown
3409fe995a9Smrg		;;
3419fe995a9Smrg
3429d794632Smrg	strongarm | thumb | xscale)
3439d794632Smrg		basic_machine=arm-unknown
3449d794632Smrg		;;
3459d794632Smrg	xgate)
3469d794632Smrg		basic_machine=$basic_machine-unknown
3479d794632Smrg		os=-none
3489d794632Smrg		;;
3499d794632Smrg	xscaleeb)
3509d794632Smrg		basic_machine=armeb-unknown
3519d794632Smrg		;;
3529d794632Smrg
3539d794632Smrg	xscaleel)
3549d794632Smrg		basic_machine=armel-unknown
3559d794632Smrg		;;
3569d794632Smrg
3579fe995a9Smrg	# We use `pc' rather than `unknown'
3589fe995a9Smrg	# because (1) that's what they normally are, and
3599fe995a9Smrg	# (2) the word "unknown" tends to confuse beginning users.
3609fe995a9Smrg	i*86 | x86_64)
3619fe995a9Smrg	  basic_machine=$basic_machine-pc
3629fe995a9Smrg	  ;;
3639fe995a9Smrg	# Object if more than one company name word.
3649fe995a9Smrg	*-*-*)
3656fbef84aSmrg		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
3669fe995a9Smrg		exit 1
3679fe995a9Smrg		;;
3689fe995a9Smrg	# Recognize the basic CPU types with company name.
3699fe995a9Smrg	580-* \
3709fe995a9Smrg	| a29k-* \
3719d794632Smrg	| aarch64-* | aarch64_be-* \
3729fe995a9Smrg	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
3739fe995a9Smrg	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
3749d794632Smrg	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
3759fe995a9Smrg	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
3769fe995a9Smrg	| avr-* | avr32-* \
3776fbef84aSmrg	| ba-* \
3789d794632Smrg	| be32-* | be64-* \
3799fe995a9Smrg	| bfin-* | bs2000-* \
3809d794632Smrg	| c[123]* | c30-* | [cjt]90-* | c4x-* \
381e8ac26b0Smrg	| c8051-* | clipper-* | craynv-* | cydra-* \
3829fe995a9Smrg	| d10v-* | d30v-* | dlx-* \
3836fbef84aSmrg	| e2k-* | elxsi-* \
384b62cc08cSmrg	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
3859fe995a9Smrg	| h8300-* | h8500-* \
3869fe995a9Smrg	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
3879d794632Smrg	| hexagon-* \
3886fbef84aSmrg	| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
3899fe995a9Smrg	| ip2k-* | iq2000-* \
390e8ac26b0Smrg	| k1om-* \
3919d794632Smrg	| le32-* | le64-* \
392b62cc08cSmrg	| lm32-* \
3939fe995a9Smrg	| m32c-* | m32r-* | m32rle-* \
3949fe995a9Smrg	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
3959d794632Smrg	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
3969d794632Smrg	| microblaze-* | microblazeel-* \
3979fe995a9Smrg	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
3989fe995a9Smrg	| mips16-* \
3999fe995a9Smrg	| mips64-* | mips64el-* \
400b62cc08cSmrg	| mips64octeon-* | mips64octeonel-* \
4019fe995a9Smrg	| mips64orion-* | mips64orionel-* \
402b62cc08cSmrg	| mips64r5900-* | mips64r5900el-* \
403b62cc08cSmrg	| mips64vr-* | mips64vrel-* \
4049fe995a9Smrg	| mips64vr4100-* | mips64vr4100el-* \
4059fe995a9Smrg	| mips64vr4300-* | mips64vr4300el-* \
4069fe995a9Smrg	| mips64vr5000-* | mips64vr5000el-* \
4079fe995a9Smrg	| mips64vr5900-* | mips64vr5900el-* \
4089fe995a9Smrg	| mipsisa32-* | mipsisa32el-* \
4099fe995a9Smrg	| mipsisa32r2-* | mipsisa32r2el-* \
410e8ac26b0Smrg	| mipsisa32r6-* | mipsisa32r6el-* \
4119fe995a9Smrg	| mipsisa64-* | mipsisa64el-* \
4129fe995a9Smrg	| mipsisa64r2-* | mipsisa64r2el-* \
413e8ac26b0Smrg	| mipsisa64r6-* | mipsisa64r6el-* \
4149fe995a9Smrg	| mipsisa64sb1-* | mipsisa64sb1el-* \
4159fe995a9Smrg	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
4169d794632Smrg	| mipsr5900-* | mipsr5900el-* \
4179fe995a9Smrg	| mipstx39-* | mipstx39el-* \
4189fe995a9Smrg	| mmix-* \
4199fe995a9Smrg	| mt-* \
4209fe995a9Smrg	| msp430-* \
4219d794632Smrg	| nds32-* | nds32le-* | nds32be-* \
4229d794632Smrg	| nios-* | nios2-* | nios2eb-* | nios2el-* \
4239fe995a9Smrg	| none-* | np1-* | ns16k-* | ns32k-* \
4249d794632Smrg	| open8-* \
425e8ac26b0Smrg	| or1k*-* \
4269fe995a9Smrg	| orion-* \
4279fe995a9Smrg	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
4289d794632Smrg	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
4296fbef84aSmrg	| pru-* \
4309fe995a9Smrg	| pyramid-* \
4316fbef84aSmrg	| riscv32-* | riscv64-* \
4329d794632Smrg	| rl78-* | romp-* | rs6000-* | rx-* \
433b62cc08cSmrg	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
4349fe995a9Smrg	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
4359fe995a9Smrg	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
4369fe995a9Smrg	| sparclite-* \
4376fbef84aSmrg	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
4389d794632Smrg	| tahoe-* \
4399d794632Smrg	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
4409d794632Smrg	| tile*-* \
4419fe995a9Smrg	| tron-* \
442b62cc08cSmrg	| ubicom32-* \
4439d794632Smrg	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
4449d794632Smrg	| vax-* \
445e8ac26b0Smrg	| visium-* \
4466fbef84aSmrg	| wasm32-* \
4479fe995a9Smrg	| we32k-* \
4489d794632Smrg	| x86-* | x86_64-* | xc16x-* | xps100-* \
449b62cc08cSmrg	| xstormy16-* | xtensa*-* \
4509fe995a9Smrg	| ymp-* \
451b62cc08cSmrg	| z8k-* | z80-*)
452b62cc08cSmrg		;;
453b62cc08cSmrg	# Recognize the basic CPU types without company name, with glob match.
454b62cc08cSmrg	xtensa*)
455b62cc08cSmrg		basic_machine=$basic_machine-unknown
4569fe995a9Smrg		;;
4579fe995a9Smrg	# Recognize the various machine names and aliases which stand
4589fe995a9Smrg	# for a CPU type and a company and sometimes even an OS.
4599fe995a9Smrg	386bsd)
4606fbef84aSmrg		basic_machine=i386-pc
4619fe995a9Smrg		os=-bsd
4629fe995a9Smrg		;;
4639fe995a9Smrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
4649fe995a9Smrg		basic_machine=m68000-att
4659fe995a9Smrg		;;
4669fe995a9Smrg	3b*)
4679fe995a9Smrg		basic_machine=we32k-att
4689fe995a9Smrg		;;
4699fe995a9Smrg	a29khif)
4709fe995a9Smrg		basic_machine=a29k-amd
4719fe995a9Smrg		os=-udi
4729fe995a9Smrg		;;
4739d794632Smrg	abacus)
4749fe995a9Smrg		basic_machine=abacus-unknown
4759fe995a9Smrg		;;
4769fe995a9Smrg	adobe68k)
4779fe995a9Smrg		basic_machine=m68010-adobe
4789fe995a9Smrg		os=-scout
4799fe995a9Smrg		;;
4809fe995a9Smrg	alliant | fx80)
4819fe995a9Smrg		basic_machine=fx80-alliant
4829fe995a9Smrg		;;
4839fe995a9Smrg	altos | altos3068)
4849fe995a9Smrg		basic_machine=m68k-altos
4859fe995a9Smrg		;;
4869fe995a9Smrg	am29k)
4879fe995a9Smrg		basic_machine=a29k-none
4889fe995a9Smrg		os=-bsd
4899fe995a9Smrg		;;
4909fe995a9Smrg	amd64)
4919fe995a9Smrg		basic_machine=x86_64-pc
4929fe995a9Smrg		;;
4939fe995a9Smrg	amd64-*)
4946fbef84aSmrg		basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
4959fe995a9Smrg		;;
4969fe995a9Smrg	amdahl)
4979fe995a9Smrg		basic_machine=580-amdahl
4989fe995a9Smrg		os=-sysv
4999fe995a9Smrg		;;
5009fe995a9Smrg	amiga | amiga-*)
5019fe995a9Smrg		basic_machine=m68k-unknown
5029fe995a9Smrg		;;
5039fe995a9Smrg	amigaos | amigados)
5049fe995a9Smrg		basic_machine=m68k-unknown
5059fe995a9Smrg		os=-amigaos
5069fe995a9Smrg		;;
5079fe995a9Smrg	amigaunix | amix)
5089fe995a9Smrg		basic_machine=m68k-unknown
5099fe995a9Smrg		os=-sysv4
5109fe995a9Smrg		;;
5119fe995a9Smrg	apollo68)
5129fe995a9Smrg		basic_machine=m68k-apollo
5139fe995a9Smrg		os=-sysv
5149fe995a9Smrg		;;
5159fe995a9Smrg	apollo68bsd)
5169fe995a9Smrg		basic_machine=m68k-apollo
5179fe995a9Smrg		os=-bsd
5189fe995a9Smrg		;;
519b62cc08cSmrg	aros)
520b62cc08cSmrg		basic_machine=i386-pc
521b62cc08cSmrg		os=-aros
522b62cc08cSmrg		;;
5236fbef84aSmrg	asmjs)
5246fbef84aSmrg		basic_machine=asmjs-unknown
5256fbef84aSmrg		;;
5269fe995a9Smrg	aux)
5279fe995a9Smrg		basic_machine=m68k-apple
5289fe995a9Smrg		os=-aux
5299fe995a9Smrg		;;
5309fe995a9Smrg	balance)
5319fe995a9Smrg		basic_machine=ns32k-sequent
5329fe995a9Smrg		os=-dynix
5339fe995a9Smrg		;;
534b62cc08cSmrg	blackfin)
535b62cc08cSmrg		basic_machine=bfin-unknown
536b62cc08cSmrg		os=-linux
537b62cc08cSmrg		;;
538b62cc08cSmrg	blackfin-*)
5396fbef84aSmrg		basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
540b62cc08cSmrg		os=-linux
541b62cc08cSmrg		;;
542b62cc08cSmrg	bluegene*)
543b62cc08cSmrg		basic_machine=powerpc-ibm
544b62cc08cSmrg		os=-cnk
545b62cc08cSmrg		;;
5469d794632Smrg	c54x-*)
5476fbef84aSmrg		basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
5489d794632Smrg		;;
5499d794632Smrg	c55x-*)
5506fbef84aSmrg		basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
5519d794632Smrg		;;
5529d794632Smrg	c6x-*)
5536fbef84aSmrg		basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
5549d794632Smrg		;;
5559fe995a9Smrg	c90)
5569fe995a9Smrg		basic_machine=c90-cray
5579fe995a9Smrg		os=-unicos
5589fe995a9Smrg		;;
5599d794632Smrg	cegcc)
560b62cc08cSmrg		basic_machine=arm-unknown
561b62cc08cSmrg		os=-cegcc
562b62cc08cSmrg		;;
5639fe995a9Smrg	convex-c1)
5649fe995a9Smrg		basic_machine=c1-convex
5659fe995a9Smrg		os=-bsd
5669fe995a9Smrg		;;
5679fe995a9Smrg	convex-c2)
5689fe995a9Smrg		basic_machine=c2-convex
5699fe995a9Smrg		os=-bsd
5709fe995a9Smrg		;;
5719fe995a9Smrg	convex-c32)
5729fe995a9Smrg		basic_machine=c32-convex
5739fe995a9Smrg		os=-bsd
5749fe995a9Smrg		;;
5759fe995a9Smrg	convex-c34)
5769fe995a9Smrg		basic_machine=c34-convex
5779fe995a9Smrg		os=-bsd
5789fe995a9Smrg		;;
5799fe995a9Smrg	convex-c38)
5809fe995a9Smrg		basic_machine=c38-convex
5819fe995a9Smrg		os=-bsd
5829fe995a9Smrg		;;
5839fe995a9Smrg	cray | j90)
5849fe995a9Smrg		basic_machine=j90-cray
5859fe995a9Smrg		os=-unicos
5869fe995a9Smrg		;;
5879fe995a9Smrg	craynv)
5889fe995a9Smrg		basic_machine=craynv-cray
5899fe995a9Smrg		os=-unicosmp
5909fe995a9Smrg		;;
5919d794632Smrg	cr16 | cr16-*)
592b62cc08cSmrg		basic_machine=cr16-unknown
5939fe995a9Smrg		os=-elf
5949fe995a9Smrg		;;
5959fe995a9Smrg	crds | unos)
5969fe995a9Smrg		basic_machine=m68k-crds
5979fe995a9Smrg		;;
5989fe995a9Smrg	crisv32 | crisv32-* | etraxfs*)
5999fe995a9Smrg		basic_machine=crisv32-axis
6009fe995a9Smrg		;;
6019fe995a9Smrg	cris | cris-* | etrax*)
6029fe995a9Smrg		basic_machine=cris-axis
6039fe995a9Smrg		;;
6049fe995a9Smrg	crx)
6059fe995a9Smrg		basic_machine=crx-unknown
6069fe995a9Smrg		os=-elf
6079fe995a9Smrg		;;
6089fe995a9Smrg	da30 | da30-*)
6099fe995a9Smrg		basic_machine=m68k-da30
6109fe995a9Smrg		;;
6119fe995a9Smrg	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
6129fe995a9Smrg		basic_machine=mips-dec
6139fe995a9Smrg		;;
6149fe995a9Smrg	decsystem10* | dec10*)
6159fe995a9Smrg		basic_machine=pdp10-dec
6169fe995a9Smrg		os=-tops10
6179fe995a9Smrg		;;
6189fe995a9Smrg	decsystem20* | dec20*)
6199fe995a9Smrg		basic_machine=pdp10-dec
6209fe995a9Smrg		os=-tops20
6219fe995a9Smrg		;;
6229fe995a9Smrg	delta | 3300 | motorola-3300 | motorola-delta \
6239fe995a9Smrg	      | 3300-motorola | delta-motorola)
6249fe995a9Smrg		basic_machine=m68k-motorola
6259fe995a9Smrg		;;
6269fe995a9Smrg	delta88)
6279fe995a9Smrg		basic_machine=m88k-motorola
6289fe995a9Smrg		os=-sysv3
6299fe995a9Smrg		;;
630b62cc08cSmrg	dicos)
631b62cc08cSmrg		basic_machine=i686-pc
632b62cc08cSmrg		os=-dicos
633b62cc08cSmrg		;;
6349fe995a9Smrg	djgpp)
6359fe995a9Smrg		basic_machine=i586-pc
6369fe995a9Smrg		os=-msdosdjgpp
6379fe995a9Smrg		;;
6389fe995a9Smrg	dpx20 | dpx20-*)
6399fe995a9Smrg		basic_machine=rs6000-bull
6409fe995a9Smrg		os=-bosx
6419fe995a9Smrg		;;
6426fbef84aSmrg	dpx2*)
6439fe995a9Smrg		basic_machine=m68k-bull
6449fe995a9Smrg		os=-sysv3
6459fe995a9Smrg		;;
6466fbef84aSmrg	e500v[12])
6476fbef84aSmrg		basic_machine=powerpc-unknown
6486fbef84aSmrg		os=$os"spe"
6496fbef84aSmrg		;;
6506fbef84aSmrg	e500v[12]-*)
6516fbef84aSmrg		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
6526fbef84aSmrg		os=$os"spe"
6536fbef84aSmrg		;;
6549fe995a9Smrg	ebmon29k)
6559fe995a9Smrg		basic_machine=a29k-amd
6569fe995a9Smrg		os=-ebmon
6579fe995a9Smrg		;;
6589fe995a9Smrg	elxsi)
6599fe995a9Smrg		basic_machine=elxsi-elxsi
6609fe995a9Smrg		os=-bsd
6619fe995a9Smrg		;;
6629fe995a9Smrg	encore | umax | mmax)
6639fe995a9Smrg		basic_machine=ns32k-encore
6649fe995a9Smrg		;;
6659fe995a9Smrg	es1800 | OSE68k | ose68k | ose | OSE)
6669fe995a9Smrg		basic_machine=m68k-ericsson
6679fe995a9Smrg		os=-ose
6689fe995a9Smrg		;;
6699fe995a9Smrg	fx2800)
6709fe995a9Smrg		basic_machine=i860-alliant
6719fe995a9Smrg		;;
6729fe995a9Smrg	genix)
6739fe995a9Smrg		basic_machine=ns32k-ns
6749fe995a9Smrg		;;
6759fe995a9Smrg	gmicro)
6769fe995a9Smrg		basic_machine=tron-gmicro
6779fe995a9Smrg		os=-sysv
6789fe995a9Smrg		;;
6799fe995a9Smrg	go32)
6809fe995a9Smrg		basic_machine=i386-pc
6819fe995a9Smrg		os=-go32
6829fe995a9Smrg		;;
6839fe995a9Smrg	h3050r* | hiux*)
6849fe995a9Smrg		basic_machine=hppa1.1-hitachi
6859fe995a9Smrg		os=-hiuxwe2
6869fe995a9Smrg		;;
6879fe995a9Smrg	h8300hms)
6889fe995a9Smrg		basic_machine=h8300-hitachi
6899fe995a9Smrg		os=-hms
6909fe995a9Smrg		;;
6919fe995a9Smrg	h8300xray)
6929fe995a9Smrg		basic_machine=h8300-hitachi
6939fe995a9Smrg		os=-xray
6949fe995a9Smrg		;;
6959fe995a9Smrg	h8500hms)
6969fe995a9Smrg		basic_machine=h8500-hitachi
6979fe995a9Smrg		os=-hms
6989fe995a9Smrg		;;
6999fe995a9Smrg	harris)
7009fe995a9Smrg		basic_machine=m88k-harris
7019fe995a9Smrg		os=-sysv3
7029fe995a9Smrg		;;
7039fe995a9Smrg	hp300-*)
7049fe995a9Smrg		basic_machine=m68k-hp
7059fe995a9Smrg		;;
7069fe995a9Smrg	hp300bsd)
7079fe995a9Smrg		basic_machine=m68k-hp
7089fe995a9Smrg		os=-bsd
7099fe995a9Smrg		;;
7109fe995a9Smrg	hp300hpux)
7119fe995a9Smrg		basic_machine=m68k-hp
7129fe995a9Smrg		os=-hpux
7139fe995a9Smrg		;;
7149fe995a9Smrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
7159fe995a9Smrg		basic_machine=hppa1.0-hp
7169fe995a9Smrg		;;
7179fe995a9Smrg	hp9k2[0-9][0-9] | hp9k31[0-9])
7189fe995a9Smrg		basic_machine=m68000-hp
7199fe995a9Smrg		;;
7209fe995a9Smrg	hp9k3[2-9][0-9])
7219fe995a9Smrg		basic_machine=m68k-hp
7229fe995a9Smrg		;;
7239fe995a9Smrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
7249fe995a9Smrg		basic_machine=hppa1.0-hp
7259fe995a9Smrg		;;
7269fe995a9Smrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
7279fe995a9Smrg		basic_machine=hppa1.1-hp
7289fe995a9Smrg		;;
7299fe995a9Smrg	hp9k78[0-9] | hp78[0-9])
7309fe995a9Smrg		# FIXME: really hppa2.0-hp
7319fe995a9Smrg		basic_machine=hppa1.1-hp
7329fe995a9Smrg		;;
7339fe995a9Smrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
7349fe995a9Smrg		# FIXME: really hppa2.0-hp
7359fe995a9Smrg		basic_machine=hppa1.1-hp
7369fe995a9Smrg		;;
7379fe995a9Smrg	hp9k8[0-9][13679] | hp8[0-9][13679])
7389fe995a9Smrg		basic_machine=hppa1.1-hp
7399fe995a9Smrg		;;
7409fe995a9Smrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
7419fe995a9Smrg		basic_machine=hppa1.0-hp
7429fe995a9Smrg		;;
7439fe995a9Smrg	hppaosf)
7449fe995a9Smrg		basic_machine=hppa1.1-hp
7459fe995a9Smrg		os=-osf
7469fe995a9Smrg		;;
7479fe995a9Smrg	hppro)
7489fe995a9Smrg		basic_machine=hppa1.1-hp
7499fe995a9Smrg		os=-proelf
7509fe995a9Smrg		;;
7519fe995a9Smrg	i370-ibm* | ibm*)
7529fe995a9Smrg		basic_machine=i370-ibm
7539fe995a9Smrg		;;
7549fe995a9Smrg	i*86v32)
7556fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
7569fe995a9Smrg		os=-sysv32
7579fe995a9Smrg		;;
7589fe995a9Smrg	i*86v4*)
7596fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
7609fe995a9Smrg		os=-sysv4
7619fe995a9Smrg		;;
7629fe995a9Smrg	i*86v)
7636fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
7649fe995a9Smrg		os=-sysv
7659fe995a9Smrg		;;
7669fe995a9Smrg	i*86sol2)
7676fbef84aSmrg		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
7689fe995a9Smrg		os=-solaris2
7699fe995a9Smrg		;;
7709fe995a9Smrg	i386mach)
7719fe995a9Smrg		basic_machine=i386-mach
7729fe995a9Smrg		os=-mach
7739fe995a9Smrg		;;
7746fbef84aSmrg	vsta)
7759fe995a9Smrg		basic_machine=i386-unknown
7769fe995a9Smrg		os=-vsta
7779fe995a9Smrg		;;
7789fe995a9Smrg	iris | iris4d)
7799fe995a9Smrg		basic_machine=mips-sgi
7809fe995a9Smrg		case $os in
7819fe995a9Smrg		    -irix*)
7829fe995a9Smrg			;;
7839fe995a9Smrg		    *)
7849fe995a9Smrg			os=-irix4
7859fe995a9Smrg			;;
7869fe995a9Smrg		esac
7879fe995a9Smrg		;;
7889fe995a9Smrg	isi68 | isi)
7899fe995a9Smrg		basic_machine=m68k-isi
7909fe995a9Smrg		os=-sysv
7919fe995a9Smrg		;;
792e8ac26b0Smrg	leon-*|leon[3-9]-*)
7936fbef84aSmrg		basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
794e8ac26b0Smrg		;;
795b62cc08cSmrg	m68knommu)
796b62cc08cSmrg		basic_machine=m68k-unknown
797b62cc08cSmrg		os=-linux
798b62cc08cSmrg		;;
799b62cc08cSmrg	m68knommu-*)
8006fbef84aSmrg		basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
801b62cc08cSmrg		os=-linux
802b62cc08cSmrg		;;
8039fe995a9Smrg	magnum | m3230)
8049fe995a9Smrg		basic_machine=mips-mips
8059fe995a9Smrg		os=-sysv
8069fe995a9Smrg		;;
8079fe995a9Smrg	merlin)
8089fe995a9Smrg		basic_machine=ns32k-utek
8099fe995a9Smrg		os=-sysv
8109fe995a9Smrg		;;
8119d794632Smrg	microblaze*)
812b62cc08cSmrg		basic_machine=microblaze-xilinx
813b62cc08cSmrg		;;
8149d794632Smrg	mingw64)
8159d794632Smrg		basic_machine=x86_64-pc
8169d794632Smrg		os=-mingw64
8179d794632Smrg		;;
8189fe995a9Smrg	mingw32)
819e8ac26b0Smrg		basic_machine=i686-pc
8209fe995a9Smrg		os=-mingw32
8219fe995a9Smrg		;;
822b62cc08cSmrg	mingw32ce)
823b62cc08cSmrg		basic_machine=arm-unknown
824b62cc08cSmrg		os=-mingw32ce
825b62cc08cSmrg		;;
8269fe995a9Smrg	miniframe)
8279fe995a9Smrg		basic_machine=m68000-convergent
8289fe995a9Smrg		;;
8299fe995a9Smrg	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
8309fe995a9Smrg		basic_machine=m68k-atari
8319fe995a9Smrg		os=-mint
8329fe995a9Smrg		;;
8339fe995a9Smrg	mips3*-*)
8346fbef84aSmrg		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
8359fe995a9Smrg		;;
8369fe995a9Smrg	mips3*)
8376fbef84aSmrg		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
8389fe995a9Smrg		;;
8399fe995a9Smrg	monitor)
8409fe995a9Smrg		basic_machine=m68k-rom68k
8419fe995a9Smrg		os=-coff
8429fe995a9Smrg		;;
8439fe995a9Smrg	morphos)
8449fe995a9Smrg		basic_machine=powerpc-unknown
8459fe995a9Smrg		os=-morphos
8469fe995a9Smrg		;;
847e8ac26b0Smrg	moxiebox)
848e8ac26b0Smrg		basic_machine=moxie-unknown
849e8ac26b0Smrg		os=-moxiebox
850e8ac26b0Smrg		;;
8519fe995a9Smrg	msdos)
8529fe995a9Smrg		basic_machine=i386-pc
8539fe995a9Smrg		os=-msdos
8549fe995a9Smrg		;;
8559fe995a9Smrg	ms1-*)
8566fbef84aSmrg		basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
8579fe995a9Smrg		;;
8589d794632Smrg	msys)
859e8ac26b0Smrg		basic_machine=i686-pc
8609d794632Smrg		os=-msys
8619d794632Smrg		;;
8629fe995a9Smrg	mvs)
8639fe995a9Smrg		basic_machine=i370-ibm
8649fe995a9Smrg		os=-mvs
8659fe995a9Smrg		;;
8669d794632Smrg	nacl)
8679d794632Smrg		basic_machine=le32-unknown
8689d794632Smrg		os=-nacl
8699d794632Smrg		;;
8709fe995a9Smrg	ncr3000)
8719fe995a9Smrg		basic_machine=i486-ncr
8729fe995a9Smrg		os=-sysv4
8739fe995a9Smrg		;;
8749fe995a9Smrg	netbsd386)
8759fe995a9Smrg		basic_machine=i386-unknown
8769fe995a9Smrg		os=-netbsd
8779fe995a9Smrg		;;
8789fe995a9Smrg	netwinder)
8799fe995a9Smrg		basic_machine=armv4l-rebel
8809fe995a9Smrg		os=-linux
8819fe995a9Smrg		;;
8829fe995a9Smrg	news | news700 | news800 | news900)
8839fe995a9Smrg		basic_machine=m68k-sony
8849fe995a9Smrg		os=-newsos
8859fe995a9Smrg		;;
8869fe995a9Smrg	news1000)
8879fe995a9Smrg		basic_machine=m68030-sony
8889fe995a9Smrg		os=-newsos
8899fe995a9Smrg		;;
8909fe995a9Smrg	news-3600 | risc-news)
8919fe995a9Smrg		basic_machine=mips-sony
8929fe995a9Smrg		os=-newsos
8939fe995a9Smrg		;;
8949fe995a9Smrg	necv70)
8959fe995a9Smrg		basic_machine=v70-nec
8969fe995a9Smrg		os=-sysv
8979fe995a9Smrg		;;
8986fbef84aSmrg	next | m*-next)
8999fe995a9Smrg		basic_machine=m68k-next
9009fe995a9Smrg		case $os in
9019fe995a9Smrg		    -nextstep* )
9029fe995a9Smrg			;;
9039fe995a9Smrg		    -ns2*)
9049fe995a9Smrg		      os=-nextstep2
9059fe995a9Smrg			;;
9069fe995a9Smrg		    *)
9079fe995a9Smrg		      os=-nextstep3
9089fe995a9Smrg			;;
9099fe995a9Smrg		esac
9109fe995a9Smrg		;;
9119fe995a9Smrg	nh3000)
9129fe995a9Smrg		basic_machine=m68k-harris
9139fe995a9Smrg		os=-cxux
9149fe995a9Smrg		;;
9159fe995a9Smrg	nh[45]000)
9169fe995a9Smrg		basic_machine=m88k-harris
9179fe995a9Smrg		os=-cxux
9189fe995a9Smrg		;;
9199fe995a9Smrg	nindy960)
9209fe995a9Smrg		basic_machine=i960-intel
9219fe995a9Smrg		os=-nindy
9229fe995a9Smrg		;;
9239fe995a9Smrg	mon960)
9249fe995a9Smrg		basic_machine=i960-intel
9259fe995a9Smrg		os=-mon960
9269fe995a9Smrg		;;
9279fe995a9Smrg	nonstopux)
9289fe995a9Smrg		basic_machine=mips-compaq
9299fe995a9Smrg		os=-nonstopux
9309fe995a9Smrg		;;
9319fe995a9Smrg	np1)
9329fe995a9Smrg		basic_machine=np1-gould
9339fe995a9Smrg		;;
9349d794632Smrg	neo-tandem)
9359d794632Smrg		basic_machine=neo-tandem
9369d794632Smrg		;;
9379d794632Smrg	nse-tandem)
9389d794632Smrg		basic_machine=nse-tandem
9399d794632Smrg		;;
9409fe995a9Smrg	nsr-tandem)
9419fe995a9Smrg		basic_machine=nsr-tandem
9429fe995a9Smrg		;;
9436fbef84aSmrg	nsv-tandem)
9446fbef84aSmrg		basic_machine=nsv-tandem
9456fbef84aSmrg		;;
9466fbef84aSmrg	nsx-tandem)
9476fbef84aSmrg		basic_machine=nsx-tandem
9486fbef84aSmrg		;;
9499fe995a9Smrg	op50n-* | op60c-*)
9509fe995a9Smrg		basic_machine=hppa1.1-oki
9519fe995a9Smrg		os=-proelf
9529fe995a9Smrg		;;
9539fe995a9Smrg	openrisc | openrisc-*)
9549fe995a9Smrg		basic_machine=or32-unknown
9559fe995a9Smrg		;;
9569fe995a9Smrg	os400)
9579fe995a9Smrg		basic_machine=powerpc-ibm
9589fe995a9Smrg		os=-os400
9599fe995a9Smrg		;;
9609fe995a9Smrg	OSE68000 | ose68000)
9619fe995a9Smrg		basic_machine=m68000-ericsson
9629fe995a9Smrg		os=-ose
9639fe995a9Smrg		;;
9649fe995a9Smrg	os68k)
9659fe995a9Smrg		basic_machine=m68k-none
9669fe995a9Smrg		os=-os68k
9679fe995a9Smrg		;;
9689fe995a9Smrg	pa-hitachi)
9699fe995a9Smrg		basic_machine=hppa1.1-hitachi
9709fe995a9Smrg		os=-hiuxwe2
9719fe995a9Smrg		;;
9729fe995a9Smrg	paragon)
9739fe995a9Smrg		basic_machine=i860-intel
9749fe995a9Smrg		os=-osf
9759fe995a9Smrg		;;
976b62cc08cSmrg	parisc)
977b62cc08cSmrg		basic_machine=hppa-unknown
978b62cc08cSmrg		os=-linux
979b62cc08cSmrg		;;
980b62cc08cSmrg	parisc-*)
9816fbef84aSmrg		basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
982b62cc08cSmrg		os=-linux
983b62cc08cSmrg		;;
9849fe995a9Smrg	pbd)
9859fe995a9Smrg		basic_machine=sparc-tti
9869fe995a9Smrg		;;
9879fe995a9Smrg	pbb)
9889fe995a9Smrg		basic_machine=m68k-tti
9899fe995a9Smrg		;;
9909fe995a9Smrg	pc532 | pc532-*)
9919fe995a9Smrg		basic_machine=ns32k-pc532
9929fe995a9Smrg		;;
9939fe995a9Smrg	pc98)
9949fe995a9Smrg		basic_machine=i386-pc
9959fe995a9Smrg		;;
9969fe995a9Smrg	pc98-*)
9976fbef84aSmrg		basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
9989fe995a9Smrg		;;
9999fe995a9Smrg	pentium | p5 | k5 | k6 | nexgen | viac3)
10009fe995a9Smrg		basic_machine=i586-pc
10019fe995a9Smrg		;;
10029fe995a9Smrg	pentiumpro | p6 | 6x86 | athlon | athlon_*)
10039fe995a9Smrg		basic_machine=i686-pc
10049fe995a9Smrg		;;
10059fe995a9Smrg	pentiumii | pentium2 | pentiumiii | pentium3)
10069fe995a9Smrg		basic_machine=i686-pc
10079fe995a9Smrg		;;
10089fe995a9Smrg	pentium4)
10099fe995a9Smrg		basic_machine=i786-pc
10109fe995a9Smrg		;;
10119fe995a9Smrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
10126fbef84aSmrg		basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10139fe995a9Smrg		;;
10149fe995a9Smrg	pentiumpro-* | p6-* | 6x86-* | athlon-*)
10156fbef84aSmrg		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10169fe995a9Smrg		;;
10179fe995a9Smrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
10186fbef84aSmrg		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10199fe995a9Smrg		;;
10209fe995a9Smrg	pentium4-*)
10216fbef84aSmrg		basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10229fe995a9Smrg		;;
10239fe995a9Smrg	pn)
10249fe995a9Smrg		basic_machine=pn-gould
10259fe995a9Smrg		;;
10269fe995a9Smrg	power)	basic_machine=power-ibm
10279fe995a9Smrg		;;
10289d794632Smrg	ppc | ppcbe)	basic_machine=powerpc-unknown
10299fe995a9Smrg		;;
10309d794632Smrg	ppc-* | ppcbe-*)
10316fbef84aSmrg		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10329fe995a9Smrg		;;
10336fbef84aSmrg	ppcle | powerpclittle)
10349fe995a9Smrg		basic_machine=powerpcle-unknown
10359fe995a9Smrg		;;
10369fe995a9Smrg	ppcle-* | powerpclittle-*)
10376fbef84aSmrg		basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10389fe995a9Smrg		;;
10399fe995a9Smrg	ppc64)	basic_machine=powerpc64-unknown
10409fe995a9Smrg		;;
10416fbef84aSmrg	ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10429fe995a9Smrg		;;
10436fbef84aSmrg	ppc64le | powerpc64little)
10449fe995a9Smrg		basic_machine=powerpc64le-unknown
10459fe995a9Smrg		;;
10469fe995a9Smrg	ppc64le-* | powerpc64little-*)
10476fbef84aSmrg		basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10489fe995a9Smrg		;;
10499fe995a9Smrg	ps2)
10509fe995a9Smrg		basic_machine=i386-ibm
10519fe995a9Smrg		;;
10529fe995a9Smrg	pw32)
10539fe995a9Smrg		basic_machine=i586-unknown
10549fe995a9Smrg		os=-pw32
10559fe995a9Smrg		;;
10569d794632Smrg	rdos | rdos64)
10579d794632Smrg		basic_machine=x86_64-pc
10589d794632Smrg		os=-rdos
10599d794632Smrg		;;
10609d794632Smrg	rdos32)
10619fe995a9Smrg		basic_machine=i386-pc
10629fe995a9Smrg		os=-rdos
10639fe995a9Smrg		;;
10649fe995a9Smrg	rom68k)
10659fe995a9Smrg		basic_machine=m68k-rom68k
10669fe995a9Smrg		os=-coff
10679fe995a9Smrg		;;
10689fe995a9Smrg	rm[46]00)
10699fe995a9Smrg		basic_machine=mips-siemens
10709fe995a9Smrg		;;
10719fe995a9Smrg	rtpc | rtpc-*)
10729fe995a9Smrg		basic_machine=romp-ibm
10739fe995a9Smrg		;;
10749fe995a9Smrg	s390 | s390-*)
10759fe995a9Smrg		basic_machine=s390-ibm
10769fe995a9Smrg		;;
10779fe995a9Smrg	s390x | s390x-*)
10789fe995a9Smrg		basic_machine=s390x-ibm
10799fe995a9Smrg		;;
10809fe995a9Smrg	sa29200)
10819fe995a9Smrg		basic_machine=a29k-amd
10829fe995a9Smrg		os=-udi
10839fe995a9Smrg		;;
10849fe995a9Smrg	sb1)
10859fe995a9Smrg		basic_machine=mipsisa64sb1-unknown
10869fe995a9Smrg		;;
10879fe995a9Smrg	sb1el)
10889fe995a9Smrg		basic_machine=mipsisa64sb1el-unknown
10899fe995a9Smrg		;;
10909fe995a9Smrg	sde)
10919fe995a9Smrg		basic_machine=mipsisa32-sde
10929fe995a9Smrg		os=-elf
10939fe995a9Smrg		;;
10949fe995a9Smrg	sei)
10959fe995a9Smrg		basic_machine=mips-sei
10969fe995a9Smrg		os=-seiux
10979fe995a9Smrg		;;
10989fe995a9Smrg	sequent)
10999fe995a9Smrg		basic_machine=i386-sequent
11009fe995a9Smrg		;;
1101b62cc08cSmrg	sh5el)
1102b62cc08cSmrg		basic_machine=sh5le-unknown
1103b62cc08cSmrg		;;
11046fbef84aSmrg	simso-wrs)
11059fe995a9Smrg		basic_machine=sparclite-wrs
11069fe995a9Smrg		os=-vxworks
11079fe995a9Smrg		;;
11089fe995a9Smrg	sps7)
11099fe995a9Smrg		basic_machine=m68k-bull
11109fe995a9Smrg		os=-sysv2
11119fe995a9Smrg		;;
11129fe995a9Smrg	spur)
11139fe995a9Smrg		basic_machine=spur-unknown
11149fe995a9Smrg		;;
11159fe995a9Smrg	st2000)
11169fe995a9Smrg		basic_machine=m68k-tandem
11179fe995a9Smrg		;;
11189fe995a9Smrg	stratus)
11199fe995a9Smrg		basic_machine=i860-stratus
11209fe995a9Smrg		os=-sysv4
11219fe995a9Smrg		;;
11229d794632Smrg	strongarm-* | thumb-*)
11236fbef84aSmrg		basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
11249d794632Smrg		;;
11259fe995a9Smrg	sun2)
11269fe995a9Smrg		basic_machine=m68000-sun
11279fe995a9Smrg		;;
11289fe995a9Smrg	sun2os3)
11299fe995a9Smrg		basic_machine=m68000-sun
11309fe995a9Smrg		os=-sunos3
11319fe995a9Smrg		;;
11329fe995a9Smrg	sun2os4)
11339fe995a9Smrg		basic_machine=m68000-sun
11349fe995a9Smrg		os=-sunos4
11359fe995a9Smrg		;;
11369fe995a9Smrg	sun3os3)
11379fe995a9Smrg		basic_machine=m68k-sun
11389fe995a9Smrg		os=-sunos3
11399fe995a9Smrg		;;
11409fe995a9Smrg	sun3os4)
11419fe995a9Smrg		basic_machine=m68k-sun
11429fe995a9Smrg		os=-sunos4
11439fe995a9Smrg		;;
11449fe995a9Smrg	sun4os3)
11459fe995a9Smrg		basic_machine=sparc-sun
11469fe995a9Smrg		os=-sunos3
11479fe995a9Smrg		;;
11489fe995a9Smrg	sun4os4)
11499fe995a9Smrg		basic_machine=sparc-sun
11509fe995a9Smrg		os=-sunos4
11519fe995a9Smrg		;;
11529fe995a9Smrg	sun4sol2)
11539fe995a9Smrg		basic_machine=sparc-sun
11549fe995a9Smrg		os=-solaris2
11559fe995a9Smrg		;;
11569fe995a9Smrg	sun3 | sun3-*)
11579fe995a9Smrg		basic_machine=m68k-sun
11589fe995a9Smrg		;;
11599fe995a9Smrg	sun4)
11609fe995a9Smrg		basic_machine=sparc-sun
11619fe995a9Smrg		;;
11629fe995a9Smrg	sun386 | sun386i | roadrunner)
11639fe995a9Smrg		basic_machine=i386-sun
11649fe995a9Smrg		;;
11659fe995a9Smrg	sv1)
11669fe995a9Smrg		basic_machine=sv1-cray
11679fe995a9Smrg		os=-unicos
11689fe995a9Smrg		;;
11699fe995a9Smrg	symmetry)
11709fe995a9Smrg		basic_machine=i386-sequent
11719fe995a9Smrg		os=-dynix
11729fe995a9Smrg		;;
11739fe995a9Smrg	t3e)
11749fe995a9Smrg		basic_machine=alphaev5-cray
11759fe995a9Smrg		os=-unicos
11769fe995a9Smrg		;;
11779fe995a9Smrg	t90)
11789fe995a9Smrg		basic_machine=t90-cray
11799fe995a9Smrg		os=-unicos
11809fe995a9Smrg		;;
1181b62cc08cSmrg	tile*)
11829d794632Smrg		basic_machine=$basic_machine-unknown
1183b62cc08cSmrg		os=-linux-gnu
11849fe995a9Smrg		;;
11859fe995a9Smrg	tx39)
11869fe995a9Smrg		basic_machine=mipstx39-unknown
11879fe995a9Smrg		;;
11889fe995a9Smrg	tx39el)
11899fe995a9Smrg		basic_machine=mipstx39el-unknown
11909fe995a9Smrg		;;
11919fe995a9Smrg	toad1)
11929fe995a9Smrg		basic_machine=pdp10-xkl
11939fe995a9Smrg		os=-tops20
11949fe995a9Smrg		;;
11959fe995a9Smrg	tower | tower-32)
11969fe995a9Smrg		basic_machine=m68k-ncr
11979fe995a9Smrg		;;
11989fe995a9Smrg	tpf)
11999fe995a9Smrg		basic_machine=s390x-ibm
12009fe995a9Smrg		os=-tpf
12019fe995a9Smrg		;;
12029fe995a9Smrg	udi29k)
12039fe995a9Smrg		basic_machine=a29k-amd
12049fe995a9Smrg		os=-udi
12059fe995a9Smrg		;;
12069fe995a9Smrg	ultra3)
12079fe995a9Smrg		basic_machine=a29k-nyu
12089fe995a9Smrg		os=-sym1
12099fe995a9Smrg		;;
12109fe995a9Smrg	v810 | necv810)
12119fe995a9Smrg		basic_machine=v810-nec
12129fe995a9Smrg		os=-none
12139fe995a9Smrg		;;
12149fe995a9Smrg	vaxv)
12159fe995a9Smrg		basic_machine=vax-dec
12169fe995a9Smrg		os=-sysv
12179fe995a9Smrg		;;
12189fe995a9Smrg	vms)
12199fe995a9Smrg		basic_machine=vax-dec
12209fe995a9Smrg		os=-vms
12219fe995a9Smrg		;;
12229fe995a9Smrg	vpp*|vx|vx-*)
12239fe995a9Smrg		basic_machine=f301-fujitsu
12249fe995a9Smrg		;;
12259fe995a9Smrg	vxworks960)
12269fe995a9Smrg		basic_machine=i960-wrs
12279fe995a9Smrg		os=-vxworks
12289fe995a9Smrg		;;
12299fe995a9Smrg	vxworks68)
12309fe995a9Smrg		basic_machine=m68k-wrs
12319fe995a9Smrg		os=-vxworks
12329fe995a9Smrg		;;
12339fe995a9Smrg	vxworks29k)
12349fe995a9Smrg		basic_machine=a29k-wrs
12359fe995a9Smrg		os=-vxworks
12369fe995a9Smrg		;;
12379fe995a9Smrg	w65*)
12389fe995a9Smrg		basic_machine=w65-wdc
12399fe995a9Smrg		os=-none
12409fe995a9Smrg		;;
12419fe995a9Smrg	w89k-*)
12429fe995a9Smrg		basic_machine=hppa1.1-winbond
12439fe995a9Smrg		os=-proelf
12449fe995a9Smrg		;;
12456fbef84aSmrg	x64)
12466fbef84aSmrg		basic_machine=x86_64-pc
12476fbef84aSmrg		;;
12489fe995a9Smrg	xbox)
12499fe995a9Smrg		basic_machine=i686-pc
12509fe995a9Smrg		os=-mingw32
12519fe995a9Smrg		;;
12529fe995a9Smrg	xps | xps100)
12539fe995a9Smrg		basic_machine=xps100-honeywell
12549fe995a9Smrg		;;
12559d794632Smrg	xscale-* | xscalee[bl]-*)
12566fbef84aSmrg		basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
12579d794632Smrg		;;
12589fe995a9Smrg	ymp)
12599fe995a9Smrg		basic_machine=ymp-cray
12609fe995a9Smrg		os=-unicos
12619fe995a9Smrg		;;
12629fe995a9Smrg	none)
12639fe995a9Smrg		basic_machine=none-none
12649fe995a9Smrg		os=-none
12659fe995a9Smrg		;;
12669fe995a9Smrg
12679fe995a9Smrg# Here we handle the default manufacturer of certain CPU types.  It is in
12689fe995a9Smrg# some cases the only manufacturer, in others, it is the most popular.
12699fe995a9Smrg	w89k)
12709fe995a9Smrg		basic_machine=hppa1.1-winbond
12719fe995a9Smrg		;;
12729fe995a9Smrg	op50n)
12739fe995a9Smrg		basic_machine=hppa1.1-oki
12749fe995a9Smrg		;;
12759fe995a9Smrg	op60c)
12769fe995a9Smrg		basic_machine=hppa1.1-oki
12779fe995a9Smrg		;;
12789fe995a9Smrg	romp)
12799fe995a9Smrg		basic_machine=romp-ibm
12809fe995a9Smrg		;;
12819fe995a9Smrg	mmix)
12829fe995a9Smrg		basic_machine=mmix-knuth
12839fe995a9Smrg		;;
12849fe995a9Smrg	rs6000)
12859fe995a9Smrg		basic_machine=rs6000-ibm
12869fe995a9Smrg		;;
12879fe995a9Smrg	vax)
12889fe995a9Smrg		basic_machine=vax-dec
12899fe995a9Smrg		;;
12909fe995a9Smrg	pdp11)
12919fe995a9Smrg		basic_machine=pdp11-dec
12929fe995a9Smrg		;;
12939fe995a9Smrg	we32k)
12949fe995a9Smrg		basic_machine=we32k-att
12959fe995a9Smrg		;;
1296b62cc08cSmrg	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
12979fe995a9Smrg		basic_machine=sh-unknown
12989fe995a9Smrg		;;
12999fe995a9Smrg	cydra)
13009fe995a9Smrg		basic_machine=cydra-cydrome
13019fe995a9Smrg		;;
13029fe995a9Smrg	orion)
13039fe995a9Smrg		basic_machine=orion-highlevel
13049fe995a9Smrg		;;
13059fe995a9Smrg	orion105)
13069fe995a9Smrg		basic_machine=clipper-highlevel
13079fe995a9Smrg		;;
13089fe995a9Smrg	mac | mpw | mac-mpw)
13099fe995a9Smrg		basic_machine=m68k-apple
13109fe995a9Smrg		;;
13119fe995a9Smrg	pmac | pmac-mpw)
13129fe995a9Smrg		basic_machine=powerpc-apple
13139fe995a9Smrg		;;
13149fe995a9Smrg	*-unknown)
13159fe995a9Smrg		# Make sure to match an already-canonicalized machine name.
13169fe995a9Smrg		;;
13179fe995a9Smrg	*)
13186fbef84aSmrg		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
13199fe995a9Smrg		exit 1
13209fe995a9Smrg		;;
13219fe995a9Smrgesac
13229fe995a9Smrg
13239fe995a9Smrg# Here we canonicalize certain aliases for manufacturers.
13249fe995a9Smrgcase $basic_machine in
13259fe995a9Smrg	*-digital*)
13266fbef84aSmrg		basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
13279fe995a9Smrg		;;
13289fe995a9Smrg	*-commodore*)
13296fbef84aSmrg		basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
13309fe995a9Smrg		;;
13319fe995a9Smrg	*)
13329fe995a9Smrg		;;
13339fe995a9Smrgesac
13349fe995a9Smrg
13359fe995a9Smrg# Decode manufacturer-specific aliases for certain operating systems.
13369fe995a9Smrg
13379fe995a9Smrgif [ x"$os" != x"" ]
13389fe995a9Smrgthen
13399fe995a9Smrgcase $os in
13406fbef84aSmrg	# First match some system type aliases that might get confused
13416fbef84aSmrg	# with valid system types.
13429fe995a9Smrg	# -solaris* is a basic system type, with this one exception.
13439d794632Smrg	-auroraux)
13449d794632Smrg		os=-auroraux
1345b62cc08cSmrg		;;
13469fe995a9Smrg	-solaris1 | -solaris1.*)
13479fe995a9Smrg		os=`echo $os | sed -e 's|solaris1|sunos4|'`
13489fe995a9Smrg		;;
13499fe995a9Smrg	-solaris)
13509fe995a9Smrg		os=-solaris2
13519fe995a9Smrg		;;
13529fe995a9Smrg	-unixware*)
13539fe995a9Smrg		os=-sysv4.2uw
13549fe995a9Smrg		;;
13559fe995a9Smrg	-gnu/linux*)
13569fe995a9Smrg		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
13579fe995a9Smrg		;;
13586fbef84aSmrg	# es1800 is here to avoid being matched by es* (a different OS)
13596fbef84aSmrg	-es1800*)
13606fbef84aSmrg		os=-ose
13616fbef84aSmrg		;;
13626fbef84aSmrg	# Now accept the basic system types.
13639fe995a9Smrg	# The portable systems comes first.
13646fbef84aSmrg	# Each alternative MUST end in a * to match a version number.
13659fe995a9Smrg	# -sysv* is not here because it comes later, after sysvr4.
13669fe995a9Smrg	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1367b62cc08cSmrg	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1368b62cc08cSmrg	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
13699d794632Smrg	      | -sym* | -kopensolaris* | -plan9* \
13709fe995a9Smrg	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
13716fbef84aSmrg	      | -aos* | -aros* | -cloudabi* | -sortix* \
13729fe995a9Smrg	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
13739fe995a9Smrg	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
13746fbef84aSmrg	      | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
13756fbef84aSmrg	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
13769fe995a9Smrg	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
13779fe995a9Smrg	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
13789fe995a9Smrg	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
13796fbef84aSmrg	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \
13806fbef84aSmrg	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
13819d794632Smrg	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
13826fbef84aSmrg	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
13839d794632Smrg	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
1384e8ac26b0Smrg	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
13856fbef84aSmrg	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
13869fe995a9Smrg	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
13879fe995a9Smrg	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
13889fe995a9Smrg	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
13896fbef84aSmrg	      | -morphos* | -superux* | -rtmk* | -windiss* \
13909fe995a9Smrg	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
13916fbef84aSmrg	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
13926fbef84aSmrg	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
13936fbef84aSmrg	      | -midnightbsd*)
13949fe995a9Smrg	# Remember, each alternative MUST END IN *, to match a version number.
13959fe995a9Smrg		;;
13969fe995a9Smrg	-qnx*)
13979fe995a9Smrg		case $basic_machine in
13989fe995a9Smrg		    x86-* | i*86-*)
13999fe995a9Smrg			;;
14009fe995a9Smrg		    *)
14019fe995a9Smrg			os=-nto$os
14029fe995a9Smrg			;;
14039fe995a9Smrg		esac
14049fe995a9Smrg		;;
14059fe995a9Smrg	-nto-qnx*)
14069fe995a9Smrg		;;
14079fe995a9Smrg	-nto*)
14089fe995a9Smrg		os=`echo $os | sed -e 's|nto|nto-qnx|'`
14099fe995a9Smrg		;;
14106fbef84aSmrg	-sim | -xray | -os68k* | -v88r* \
14116fbef84aSmrg	      | -windows* | -osx | -abug | -netware* | -os9* \
14129fe995a9Smrg	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
14139fe995a9Smrg		;;
14149fe995a9Smrg	-mac*)
14156fbef84aSmrg		os=`echo "$os" | sed -e 's|mac|macos|'`
14169fe995a9Smrg		;;
14179fe995a9Smrg	-linux-dietlibc)
14189fe995a9Smrg		os=-linux-dietlibc
14199fe995a9Smrg		;;
14209fe995a9Smrg	-linux*)
14219fe995a9Smrg		os=`echo $os | sed -e 's|linux|linux-gnu|'`
14229fe995a9Smrg		;;
14239fe995a9Smrg	-sunos5*)
14246fbef84aSmrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
14259fe995a9Smrg		;;
14269fe995a9Smrg	-sunos6*)
14276fbef84aSmrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
14289fe995a9Smrg		;;
14299fe995a9Smrg	-opened*)
14309fe995a9Smrg		os=-openedition
14319fe995a9Smrg		;;
14329d794632Smrg	-os400*)
14339fe995a9Smrg		os=-os400
14349fe995a9Smrg		;;
14359fe995a9Smrg	-wince*)
14369fe995a9Smrg		os=-wince
14379fe995a9Smrg		;;
14389fe995a9Smrg	-utek*)
14399fe995a9Smrg		os=-bsd
14409fe995a9Smrg		;;
14419fe995a9Smrg	-dynix*)
14429fe995a9Smrg		os=-bsd
14439fe995a9Smrg		;;
14449fe995a9Smrg	-acis*)
14459fe995a9Smrg		os=-aos
14469fe995a9Smrg		;;
14479fe995a9Smrg	-atheos*)
14489fe995a9Smrg		os=-atheos
14499fe995a9Smrg		;;
14509fe995a9Smrg	-syllable*)
14519fe995a9Smrg		os=-syllable
14529fe995a9Smrg		;;
14539fe995a9Smrg	-386bsd)
14549fe995a9Smrg		os=-bsd
14559fe995a9Smrg		;;
14569fe995a9Smrg	-ctix* | -uts*)
14579fe995a9Smrg		os=-sysv
14589fe995a9Smrg		;;
14599fe995a9Smrg	-nova*)
14609fe995a9Smrg		os=-rtmk-nova
14619fe995a9Smrg		;;
14626fbef84aSmrg	-ns2)
14639fe995a9Smrg		os=-nextstep2
14649fe995a9Smrg		;;
14659fe995a9Smrg	-nsk*)
14669fe995a9Smrg		os=-nsk
14679fe995a9Smrg		;;
14689fe995a9Smrg	# Preserve the version number of sinix5.
14699fe995a9Smrg	-sinix5.*)
14709fe995a9Smrg		os=`echo $os | sed -e 's|sinix|sysv|'`
14719fe995a9Smrg		;;
14729fe995a9Smrg	-sinix*)
14739fe995a9Smrg		os=-sysv4
14749fe995a9Smrg		;;
14759d794632Smrg	-tpf*)
14769fe995a9Smrg		os=-tpf
14779fe995a9Smrg		;;
14789fe995a9Smrg	-triton*)
14799fe995a9Smrg		os=-sysv3
14809fe995a9Smrg		;;
14819fe995a9Smrg	-oss*)
14829fe995a9Smrg		os=-sysv3
14839fe995a9Smrg		;;
14846fbef84aSmrg	-svr4*)
14859fe995a9Smrg		os=-sysv4
14869fe995a9Smrg		;;
14879fe995a9Smrg	-svr3)
14889fe995a9Smrg		os=-sysv3
14899fe995a9Smrg		;;
14909fe995a9Smrg	-sysvr4)
14919fe995a9Smrg		os=-sysv4
14929fe995a9Smrg		;;
14939fe995a9Smrg	# This must come after -sysvr4.
14949fe995a9Smrg	-sysv*)
14959fe995a9Smrg		;;
14969fe995a9Smrg	-ose*)
14979fe995a9Smrg		os=-ose
14989fe995a9Smrg		;;
14999fe995a9Smrg	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
15009fe995a9Smrg		os=-mint
15019fe995a9Smrg		;;
15029fe995a9Smrg	-zvmoe)
15039fe995a9Smrg		os=-zvmoe
15049fe995a9Smrg		;;
1505b62cc08cSmrg	-dicos*)
1506b62cc08cSmrg		os=-dicos
1507b62cc08cSmrg		;;
15086fbef84aSmrg	-pikeos*)
15096fbef84aSmrg		# Until real need of OS specific support for
15106fbef84aSmrg		# particular features comes up, bare metal
15116fbef84aSmrg		# configurations are quite functional.
15126fbef84aSmrg		case $basic_machine in
15136fbef84aSmrg		    arm*)
15146fbef84aSmrg			os=-eabi
15156fbef84aSmrg			;;
15166fbef84aSmrg		    *)
15176fbef84aSmrg			os=-elf
15186fbef84aSmrg			;;
15196fbef84aSmrg		esac
15206fbef84aSmrg		;;
15219d794632Smrg	-nacl*)
15229d794632Smrg		;;
15236fbef84aSmrg	-ios)
15246fbef84aSmrg		;;
15259fe995a9Smrg	-none)
15269fe995a9Smrg		;;
15279fe995a9Smrg	*)
15289fe995a9Smrg		# Get rid of the `-' at the beginning of $os.
15299fe995a9Smrg		os=`echo $os | sed 's/[^-]*-//'`
15306fbef84aSmrg		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
15319fe995a9Smrg		exit 1
15329fe995a9Smrg		;;
15339fe995a9Smrgesac
15349fe995a9Smrgelse
15359fe995a9Smrg
15369fe995a9Smrg# Here we handle the default operating systems that come with various machines.
15379fe995a9Smrg# The value should be what the vendor currently ships out the door with their
15389fe995a9Smrg# machine or put another way, the most popular os provided with the machine.
15399fe995a9Smrg
15409fe995a9Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
15419fe995a9Smrg# "-sun"), then you have to tell the case statement up towards the top
15429fe995a9Smrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
15439fe995a9Smrg# will signal an error saying that MANUFACTURER isn't an operating
15449fe995a9Smrg# system, and we'll never get to this point.
15459fe995a9Smrg
15469fe995a9Smrgcase $basic_machine in
15479d794632Smrg	score-*)
15489fe995a9Smrg		os=-elf
15499fe995a9Smrg		;;
15509d794632Smrg	spu-*)
15519fe995a9Smrg		os=-elf
15529fe995a9Smrg		;;
15539fe995a9Smrg	*-acorn)
15549fe995a9Smrg		os=-riscix1.2
15559fe995a9Smrg		;;
15569fe995a9Smrg	arm*-rebel)
15579fe995a9Smrg		os=-linux
15589fe995a9Smrg		;;
15599fe995a9Smrg	arm*-semi)
15609fe995a9Smrg		os=-aout
15619fe995a9Smrg		;;
15629d794632Smrg	c4x-* | tic4x-*)
15639d794632Smrg		os=-coff
15649d794632Smrg		;;
1565e8ac26b0Smrg	c8051-*)
1566e8ac26b0Smrg		os=-elf
1567e8ac26b0Smrg		;;
15689d794632Smrg	hexagon-*)
15699d794632Smrg		os=-elf
15709d794632Smrg		;;
15719d794632Smrg	tic54x-*)
15729d794632Smrg		os=-coff
15739d794632Smrg		;;
15749d794632Smrg	tic55x-*)
15759d794632Smrg		os=-coff
15769d794632Smrg		;;
15779d794632Smrg	tic6x-*)
15789d794632Smrg		os=-coff
15799fe995a9Smrg		;;
15809fe995a9Smrg	# This must come before the *-dec entry.
15819fe995a9Smrg	pdp10-*)
15829fe995a9Smrg		os=-tops20
15839fe995a9Smrg		;;
15849fe995a9Smrg	pdp11-*)
15859fe995a9Smrg		os=-none
15869fe995a9Smrg		;;
15879fe995a9Smrg	*-dec | vax-*)
15889fe995a9Smrg		os=-ultrix4.2
15899fe995a9Smrg		;;
15909fe995a9Smrg	m68*-apollo)
15919fe995a9Smrg		os=-domain
15929fe995a9Smrg		;;
15939fe995a9Smrg	i386-sun)
15949fe995a9Smrg		os=-sunos4.0.2
15959fe995a9Smrg		;;
15969fe995a9Smrg	m68000-sun)
15979fe995a9Smrg		os=-sunos3
15989fe995a9Smrg		;;
15999fe995a9Smrg	m68*-cisco)
16009fe995a9Smrg		os=-aout
16019fe995a9Smrg		;;
16029d794632Smrg	mep-*)
1603b62cc08cSmrg		os=-elf
1604b62cc08cSmrg		;;
16059fe995a9Smrg	mips*-cisco)
16069fe995a9Smrg		os=-elf
16079fe995a9Smrg		;;
16089fe995a9Smrg	mips*-*)
16099fe995a9Smrg		os=-elf
16109fe995a9Smrg		;;
16119fe995a9Smrg	or32-*)
16129fe995a9Smrg		os=-coff
16139fe995a9Smrg		;;
16149fe995a9Smrg	*-tti)	# must be before sparc entry or we get the wrong os.
16159fe995a9Smrg		os=-sysv3
16169fe995a9Smrg		;;
16179fe995a9Smrg	sparc-* | *-sun)
16189fe995a9Smrg		os=-sunos4.1.1
16199fe995a9Smrg		;;
16206fbef84aSmrg	pru-*)
16216fbef84aSmrg		os=-elf
16226fbef84aSmrg		;;
16239fe995a9Smrg	*-be)
16249fe995a9Smrg		os=-beos
16259fe995a9Smrg		;;
16269fe995a9Smrg	*-ibm)
16279fe995a9Smrg		os=-aix
16289fe995a9Smrg		;;
16299d794632Smrg	*-knuth)
16309fe995a9Smrg		os=-mmixware
16319fe995a9Smrg		;;
16329fe995a9Smrg	*-wec)
16339fe995a9Smrg		os=-proelf
16349fe995a9Smrg		;;
16359fe995a9Smrg	*-winbond)
16369fe995a9Smrg		os=-proelf
16379fe995a9Smrg		;;
16389fe995a9Smrg	*-oki)
16399fe995a9Smrg		os=-proelf
16409fe995a9Smrg		;;
16419fe995a9Smrg	*-hp)
16429fe995a9Smrg		os=-hpux
16439fe995a9Smrg		;;
16449fe995a9Smrg	*-hitachi)
16459fe995a9Smrg		os=-hiux
16469fe995a9Smrg		;;
16479fe995a9Smrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
16489fe995a9Smrg		os=-sysv
16499fe995a9Smrg		;;
16509fe995a9Smrg	*-cbm)
16519fe995a9Smrg		os=-amigaos
16529fe995a9Smrg		;;
16539fe995a9Smrg	*-dg)
16549fe995a9Smrg		os=-dgux
16559fe995a9Smrg		;;
16569fe995a9Smrg	*-dolphin)
16579fe995a9Smrg		os=-sysv3
16589fe995a9Smrg		;;
16599fe995a9Smrg	m68k-ccur)
16609fe995a9Smrg		os=-rtu
16619fe995a9Smrg		;;
16629fe995a9Smrg	m88k-omron*)
16639fe995a9Smrg		os=-luna
16649fe995a9Smrg		;;
16656fbef84aSmrg	*-next)
16669fe995a9Smrg		os=-nextstep
16679fe995a9Smrg		;;
16689fe995a9Smrg	*-sequent)
16699fe995a9Smrg		os=-ptx
16709fe995a9Smrg		;;
16719fe995a9Smrg	*-crds)
16729fe995a9Smrg		os=-unos
16739fe995a9Smrg		;;
16749fe995a9Smrg	*-ns)
16759fe995a9Smrg		os=-genix
16769fe995a9Smrg		;;
16779fe995a9Smrg	i370-*)
16789fe995a9Smrg		os=-mvs
16799fe995a9Smrg		;;
16809fe995a9Smrg	*-gould)
16819fe995a9Smrg		os=-sysv
16829fe995a9Smrg		;;
16839fe995a9Smrg	*-highlevel)
16849fe995a9Smrg		os=-bsd
16859fe995a9Smrg		;;
16869fe995a9Smrg	*-encore)
16879fe995a9Smrg		os=-bsd
16889fe995a9Smrg		;;
16899fe995a9Smrg	*-sgi)
16909fe995a9Smrg		os=-irix
16919fe995a9Smrg		;;
16929fe995a9Smrg	*-siemens)
16939fe995a9Smrg		os=-sysv4
16949fe995a9Smrg		;;
16959fe995a9Smrg	*-masscomp)
16969fe995a9Smrg		os=-rtu
16979fe995a9Smrg		;;
16989fe995a9Smrg	f30[01]-fujitsu | f700-fujitsu)
16999fe995a9Smrg		os=-uxpv
17009fe995a9Smrg		;;
17019fe995a9Smrg	*-rom68k)
17029fe995a9Smrg		os=-coff
17039fe995a9Smrg		;;
17049fe995a9Smrg	*-*bug)
17059fe995a9Smrg		os=-coff
17069fe995a9Smrg		;;
17079fe995a9Smrg	*-apple)
17089fe995a9Smrg		os=-macos
17099fe995a9Smrg		;;
17109fe995a9Smrg	*-atari*)
17119fe995a9Smrg		os=-mint
17129fe995a9Smrg		;;
17139fe995a9Smrg	*)
17149fe995a9Smrg		os=-none
17159fe995a9Smrg		;;
17169fe995a9Smrgesac
17179fe995a9Smrgfi
17189fe995a9Smrg
17199fe995a9Smrg# Here we handle the case where we know the os, and the CPU type, but not the
17209fe995a9Smrg# manufacturer.  We pick the logical manufacturer.
17219fe995a9Smrgvendor=unknown
17229fe995a9Smrgcase $basic_machine in
17239fe995a9Smrg	*-unknown)
17249fe995a9Smrg		case $os in
17259fe995a9Smrg			-riscix*)
17269fe995a9Smrg				vendor=acorn
17279fe995a9Smrg				;;
17289fe995a9Smrg			-sunos*)
17299fe995a9Smrg				vendor=sun
17309fe995a9Smrg				;;
1731b62cc08cSmrg			-cnk*|-aix*)
17329fe995a9Smrg				vendor=ibm
17339fe995a9Smrg				;;
17349fe995a9Smrg			-beos*)
17359fe995a9Smrg				vendor=be
17369fe995a9Smrg				;;
17379fe995a9Smrg			-hpux*)
17389fe995a9Smrg				vendor=hp
17399fe995a9Smrg				;;
17409fe995a9Smrg			-mpeix*)
17419fe995a9Smrg				vendor=hp
17429fe995a9Smrg				;;
17439fe995a9Smrg			-hiux*)
17449fe995a9Smrg				vendor=hitachi
17459fe995a9Smrg				;;
17469fe995a9Smrg			-unos*)
17479fe995a9Smrg				vendor=crds
17489fe995a9Smrg				;;
17499fe995a9Smrg			-dgux*)
17509fe995a9Smrg				vendor=dg
17519fe995a9Smrg				;;
17529fe995a9Smrg			-luna*)
17539fe995a9Smrg				vendor=omron
17549fe995a9Smrg				;;
17559fe995a9Smrg			-genix*)
17569fe995a9Smrg				vendor=ns
17579fe995a9Smrg				;;
17589fe995a9Smrg			-mvs* | -opened*)
17599fe995a9Smrg				vendor=ibm
17609fe995a9Smrg				;;
17619fe995a9Smrg			-os400*)
17629fe995a9Smrg				vendor=ibm
17639fe995a9Smrg				;;
17649fe995a9Smrg			-ptx*)
17659fe995a9Smrg				vendor=sequent
17669fe995a9Smrg				;;
17679fe995a9Smrg			-tpf*)
17689fe995a9Smrg				vendor=ibm
17699fe995a9Smrg				;;
17709fe995a9Smrg			-vxsim* | -vxworks* | -windiss*)
17719fe995a9Smrg				vendor=wrs
17729fe995a9Smrg				;;
17739fe995a9Smrg			-aux*)
17749fe995a9Smrg				vendor=apple
17759fe995a9Smrg				;;
17769fe995a9Smrg			-hms*)
17779fe995a9Smrg				vendor=hitachi
17789fe995a9Smrg				;;
17799fe995a9Smrg			-mpw* | -macos*)
17809fe995a9Smrg				vendor=apple
17819fe995a9Smrg				;;
17829fe995a9Smrg			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
17839fe995a9Smrg				vendor=atari
17849fe995a9Smrg				;;
17859fe995a9Smrg			-vos*)
17869fe995a9Smrg				vendor=stratus
17879fe995a9Smrg				;;
17889fe995a9Smrg		esac
17896fbef84aSmrg		basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
17909fe995a9Smrg		;;
17919fe995a9Smrgesac
17929fe995a9Smrg
17936fbef84aSmrgecho "$basic_machine$os"
17949fe995a9Smrgexit
17959fe995a9Smrg
17969fe995a9Smrg# Local variables:
17976fbef84aSmrg# eval: (add-hook 'write-file-functions 'time-stamp)
17989fe995a9Smrg# time-stamp-start: "timestamp='"
17999fe995a9Smrg# time-stamp-format: "%:y-%02m-%02d"
18009fe995a9Smrg# time-stamp-end: "'"
18019fe995a9Smrg# End:
1802