config.sub revision 9c019ec5
11ab64890Smrg#! /bin/sh
21ab64890Smrg# Configuration validation subroutine script.
35afda2e6Smrg#   Copyright 1992-2018 Free Software Foundation, Inc.
41ab64890Smrg
59c019ec5Smayatimestamp='2018-02-22'
61ab64890Smrg
7eb411b4bSmrg# This file is free software; you can redistribute it and/or modify it
8eb411b4bSmrg# under the terms of the GNU General Public License as published by
9eb411b4bSmrg# the Free Software Foundation; either version 3 of the License, or
101ab64890Smrg# (at your option) any later version.
111ab64890Smrg#
12eb411b4bSmrg# This program is distributed in the hope that it will be useful, but
13eb411b4bSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of
14eb411b4bSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15eb411b4bSmrg# General Public License for more details.
161ab64890Smrg#
171ab64890Smrg# You should have received a copy of the GNU General Public License
185afda2e6Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
191ab64890Smrg#
201ab64890Smrg# As a special exception to the GNU General Public License, if you
211ab64890Smrg# distribute this file as part of a program that contains a
221ab64890Smrg# configuration script generated by Autoconf, you may include it under
23eb411b4bSmrg# the same distribution terms that you use for the rest of that
24eb411b4bSmrg# program.  This Exception is an additional permission under section 7
25eb411b4bSmrg# of the GNU General Public License, version 3 ("GPLv3").
261ab64890Smrg
271ab64890Smrg
28862bcd1aSmrg# Please send patches to <config-patches@gnu.org>.
291ab64890Smrg#
301ab64890Smrg# Configuration subroutine to validate and canonicalize a configuration type.
311ab64890Smrg# Supply the specified configuration type as an argument.
321ab64890Smrg# If it is invalid, we print an error message on stderr and exit with code 1.
331ab64890Smrg# Otherwise, we print the canonical config type on stdout and succeed.
341ab64890Smrg
3588de56ccSmrg# You can get the latest version of this script from:
365afda2e6Smrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
3788de56ccSmrg
381ab64890Smrg# This file is supposed to be the same for all GNU packages
391ab64890Smrg# and recognize all the CPU types, system types and aliases
401ab64890Smrg# that are meaningful with *any* GNU software.
411ab64890Smrg# Each package is responsible for reporting which valid configurations
421ab64890Smrg# it does not support.  The user should be able to distinguish
431ab64890Smrg# a failure to support a valid configuration from a meaningless
441ab64890Smrg# configuration.
451ab64890Smrg
461ab64890Smrg# The goal of this file is to map all the various variations of a given
471ab64890Smrg# machine specification into a single specification in the form:
481ab64890Smrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
491ab64890Smrg# or in some cases, the newer four-part form:
501ab64890Smrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
511ab64890Smrg# It is wrong to echo any other type of specification.
521ab64890Smrg
531ab64890Smrgme=`echo "$0" | sed -e 's,.*/,,'`
541ab64890Smrg
551ab64890Smrgusage="\
5638ae11fcSmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
571ab64890Smrg
581ab64890SmrgCanonicalize a configuration name.
591ab64890Smrg
605afda2e6SmrgOptions:
611ab64890Smrg  -h, --help         print this help, then exit
621ab64890Smrg  -t, --time-stamp   print date of last modification, then exit
631ab64890Smrg  -v, --version      print version number, then exit
641ab64890Smrg
651ab64890SmrgReport bugs and patches to <config-patches@gnu.org>."
661ab64890Smrg
671ab64890Smrgversion="\
681ab64890SmrgGNU config.sub ($timestamp)
691ab64890Smrg
705afda2e6SmrgCopyright 1992-2018 Free Software Foundation, Inc.
711ab64890Smrg
721ab64890SmrgThis is free software; see the source for copying conditions.  There is NO
731ab64890Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
741ab64890Smrg
751ab64890Smrghelp="
761ab64890SmrgTry \`$me --help' for more information."
771ab64890Smrg
781ab64890Smrg# Parse command line
791ab64890Smrgwhile test $# -gt 0 ; do
801ab64890Smrg  case $1 in
811ab64890Smrg    --time-stamp | --time* | -t )
821ab64890Smrg       echo "$timestamp" ; exit ;;
831ab64890Smrg    --version | -v )
841ab64890Smrg       echo "$version" ; exit ;;
851ab64890Smrg    --help | --h* | -h )
861ab64890Smrg       echo "$usage"; exit ;;
871ab64890Smrg    -- )     # Stop option processing
881ab64890Smrg       shift; break ;;
891ab64890Smrg    - )	# Use stdin as input.
901ab64890Smrg       break ;;
911ab64890Smrg    -* )
921ab64890Smrg       echo "$me: invalid option $1$help"
931ab64890Smrg       exit 1 ;;
941ab64890Smrg
951ab64890Smrg    *local*)
961ab64890Smrg       # First pass through any local machine types.
975afda2e6Smrg       echo "$1"
981ab64890Smrg       exit ;;
991ab64890Smrg
1001ab64890Smrg    * )
1011ab64890Smrg       break ;;
1021ab64890Smrg  esac
1031ab64890Smrgdone
1041ab64890Smrg
1051ab64890Smrgcase $# in
1061ab64890Smrg 0) echo "$me: missing argument$help" >&2
1071ab64890Smrg    exit 1;;
1081ab64890Smrg 1) ;;
1091ab64890Smrg *) echo "$me: too many arguments$help" >&2
1101ab64890Smrg    exit 1;;
1111ab64890Smrgesac
1121ab64890Smrg
1139c019ec5Smaya# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
1149c019ec5Smaya# Here we must recognize all the valid KERNEL-OS combinations.
1159c019ec5Smayamaybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
1169c019ec5Smayacase $maybe_os in
1179c019ec5Smaya  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
1189c019ec5Smaya  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
1199c019ec5Smaya  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
1209c019ec5Smaya  kopensolaris*-gnu* | cloudabi*-eabi* | \
1219c019ec5Smaya  storm-chaos* | os2-emx* | rtmk-nova*)
1229c019ec5Smaya    os=-$maybe_os
1239c019ec5Smaya    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
1249c019ec5Smaya    ;;
1259c019ec5Smaya  android-linux)
1269c019ec5Smaya    os=-linux-android
1279c019ec5Smaya    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
1289c019ec5Smaya    ;;
1299c019ec5Smaya  *)
1309c019ec5Smaya    basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
1319c019ec5Smaya    if [ "$basic_machine" != "$1" ]
1329c019ec5Smaya    then os=`echo "$1" | sed 's/.*-/-/'`
1339c019ec5Smaya    else os=; fi
1349c019ec5Smaya    ;;
1359c019ec5Smayaesac
1361ab64890Smrg
1379c019ec5Smaya### Let's recognize common machines as not being operating systems so
1389c019ec5Smaya### that things like config.sub decstation-3100 work.  We also
1399c019ec5Smaya### recognize some manufacturers as not being operating systems, so we
1409c019ec5Smaya### can provide default operating systems below.
1419c019ec5Smayacase $os in
1429c019ec5Smaya	-sun*os*)
1439c019ec5Smaya		# Prevent following clause from handling this invalid input.
1441ab64890Smrg		;;
1459c019ec5Smaya	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
1469c019ec5Smaya	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
1479c019ec5Smaya	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
1489c019ec5Smaya	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
1499c019ec5Smaya	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
1509c019ec5Smaya	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
1519c019ec5Smaya	-apple | -axis | -knuth | -cray | -microblaze*)
1529c019ec5Smaya		os=
1539c019ec5Smaya		basic_machine=$1
1541ab64890Smrg		;;
1559c019ec5Smaya	-bluegene*)
1569c019ec5Smaya		os=-cnk
1571ab64890Smrg		;;
1589c019ec5Smaya	-sim | -cisco | -oki | -wec | -winbond)
1599c019ec5Smaya		os=
1609c019ec5Smaya		basic_machine=$1
1611ab64890Smrg		;;
1629c019ec5Smaya	-scout)
1639c019ec5Smaya		;;
1649c019ec5Smaya	-wrs)
1659c019ec5Smaya		os=-vxworks
1669c019ec5Smaya		basic_machine=$1
1679c019ec5Smaya		;;
1689c019ec5Smaya	-chorusos*)
1699c019ec5Smaya		os=-chorusos
1709c019ec5Smaya		basic_machine=$1
1719c019ec5Smaya		;;
1729c019ec5Smaya	-chorusrdb)
1739c019ec5Smaya		os=-chorusrdb
1749c019ec5Smaya		basic_machine=$1
1759c019ec5Smaya		;;
1769c019ec5Smaya	-hiux*)
1779c019ec5Smaya		os=-hiuxwe2
1789c019ec5Smaya		;;
1799c019ec5Smaya	-sco6)
1809c019ec5Smaya		os=-sco5v6
1819c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1829c019ec5Smaya		;;
1839c019ec5Smaya	-sco5)
1849c019ec5Smaya		os=-sco3.2v5
1859c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1869c019ec5Smaya		;;
1879c019ec5Smaya	-sco4)
1889c019ec5Smaya		os=-sco3.2v4
1899c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1909c019ec5Smaya		;;
1919c019ec5Smaya	-sco3.2.[4-9]*)
1929c019ec5Smaya		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
1939c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1949c019ec5Smaya		;;
1959c019ec5Smaya	-sco3.2v[4-9]*)
1969c019ec5Smaya		# Don't forget version if it is 3.2v4 or newer.
1979c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
1989c019ec5Smaya		;;
1999c019ec5Smaya	-sco5v6*)
2009c019ec5Smaya		# Don't forget version if it is 3.2v4 or newer.
2019c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2029c019ec5Smaya		;;
2039c019ec5Smaya	-sco*)
2049c019ec5Smaya		os=-sco3.2v2
2059c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2069c019ec5Smaya		;;
2079c019ec5Smaya	-udk*)
2089c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2099c019ec5Smaya		;;
2109c019ec5Smaya	-isc)
2119c019ec5Smaya		os=-isc2.2
2129c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2139c019ec5Smaya		;;
2149c019ec5Smaya	-clix*)
2159c019ec5Smaya		basic_machine=clipper-intergraph
2169c019ec5Smaya		;;
2179c019ec5Smaya	-isc*)
2189c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
2199c019ec5Smaya		;;
2209c019ec5Smaya	-lynx*178)
2219c019ec5Smaya		os=-lynxos178
2229c019ec5Smaya		;;
2239c019ec5Smaya	-lynx*5)
2249c019ec5Smaya		os=-lynxos5
2259c019ec5Smaya		;;
2269c019ec5Smaya	-lynx*)
2279c019ec5Smaya		os=-lynxos
2289c019ec5Smaya		;;
2299c019ec5Smaya	-ptx*)
2309c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
2319c019ec5Smaya		;;
2329c019ec5Smaya	-psos*)
2339c019ec5Smaya		os=-psos
2349c019ec5Smaya		;;
2359c019ec5Smaya	-mint | -mint[0-9]*)
2369c019ec5Smaya		basic_machine=m68k-atari
2379c019ec5Smaya		os=-mint
2381ab64890Smrg		;;
2391ab64890Smrgesac
2401ab64890Smrg
2419c019ec5Smaya# Decode aliases for certain CPU-COMPANY combinations.
2421ab64890Smrgcase $basic_machine in
2439c019ec5Smaya	# Recognize the basic CPU types without company name.
2449c019ec5Smaya	# Some are omitted here because they have special meanings below.
2459c019ec5Smaya	1750a | 580 \
2469c019ec5Smaya	| a29k \
2479c019ec5Smaya	| aarch64 | aarch64_be \
2489c019ec5Smaya	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
2499c019ec5Smaya	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
2509c019ec5Smaya	| am33_2.0 \
2519c019ec5Smaya	| arc | arceb \
2529c019ec5Smaya	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
2539c019ec5Smaya	| avr | avr32 \
2549c019ec5Smaya	| ba \
2559c019ec5Smaya	| be32 | be64 \
2569c019ec5Smaya	| bfin \
2579c019ec5Smaya	| c4x | c8051 | clipper \
2589c019ec5Smaya	| d10v | d30v | dlx | dsp16xx \
2599c019ec5Smaya	| e2k | epiphany \
2609c019ec5Smaya	| fido | fr30 | frv | ft32 \
2619c019ec5Smaya	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
2629c019ec5Smaya	| hexagon \
2639c019ec5Smaya	| i370 | i860 | i960 | ia16 | ia64 \
2649c019ec5Smaya	| ip2k | iq2000 \
2659c019ec5Smaya	| k1om \
2669c019ec5Smaya	| le32 | le64 \
2679c019ec5Smaya	| lm32 \
2689c019ec5Smaya	| m32c | m32r | m32rle | m68000 | m68k | m88k \
2699c019ec5Smaya	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
2709c019ec5Smaya	| mips | mipsbe | mipseb | mipsel | mipsle \
2719c019ec5Smaya	| mips16 \
2729c019ec5Smaya	| mips64 | mips64el \
2739c019ec5Smaya	| mips64octeon | mips64octeonel \
2749c019ec5Smaya	| mips64orion | mips64orionel \
2759c019ec5Smaya	| mips64r5900 | mips64r5900el \
2769c019ec5Smaya	| mips64vr | mips64vrel \
2779c019ec5Smaya	| mips64vr4100 | mips64vr4100el \
2789c019ec5Smaya	| mips64vr4300 | mips64vr4300el \
2799c019ec5Smaya	| mips64vr5000 | mips64vr5000el \
2809c019ec5Smaya	| mips64vr5900 | mips64vr5900el \
2819c019ec5Smaya	| mipsisa32 | mipsisa32el \
2829c019ec5Smaya	| mipsisa32r2 | mipsisa32r2el \
2839c019ec5Smaya	| mipsisa32r6 | mipsisa32r6el \
2849c019ec5Smaya	| mipsisa64 | mipsisa64el \
2859c019ec5Smaya	| mipsisa64r2 | mipsisa64r2el \
2869c019ec5Smaya	| mipsisa64r6 | mipsisa64r6el \
2879c019ec5Smaya	| mipsisa64sb1 | mipsisa64sb1el \
2889c019ec5Smaya	| mipsisa64sr71k | mipsisa64sr71kel \
2899c019ec5Smaya	| mipsr5900 | mipsr5900el \
2909c019ec5Smaya	| mipstx39 | mipstx39el \
2919c019ec5Smaya	| mn10200 | mn10300 \
2929c019ec5Smaya	| moxie \
2939c019ec5Smaya	| mt \
2949c019ec5Smaya	| msp430 \
2959c019ec5Smaya	| nds32 | nds32le | nds32be \
2969c019ec5Smaya	| nios | nios2 | nios2eb | nios2el \
2979c019ec5Smaya	| ns16k | ns32k \
2989c019ec5Smaya	| open8 | or1k | or1knd | or32 \
2999c019ec5Smaya	| pdp10 | pj | pjl \
3009c019ec5Smaya	| powerpc | powerpc64 | powerpc64le | powerpcle \
3019c019ec5Smaya	| pru \
3029c019ec5Smaya	| pyramid \
3039c019ec5Smaya	| riscv32 | riscv64 \
3049c019ec5Smaya	| rl78 | rx \
3059c019ec5Smaya	| score \
3069c019ec5Smaya	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
3079c019ec5Smaya	| sh64 | sh64le \
3089c019ec5Smaya	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
3099c019ec5Smaya	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
3109c019ec5Smaya	| spu \
3119c019ec5Smaya	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
3129c019ec5Smaya	| ubicom32 \
3139c019ec5Smaya	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
3149c019ec5Smaya	| visium \
3159c019ec5Smaya	| wasm32 \
3169c019ec5Smaya	| x86 | xc16x | xstormy16 | xtensa \
3179c019ec5Smaya	| z8k | z80)
3189c019ec5Smaya		basic_machine=$basic_machine-unknown
3199c019ec5Smaya		;;
3209c019ec5Smaya	c54x)
3219c019ec5Smaya		basic_machine=tic54x-unknown
3229c019ec5Smaya		;;
3239c019ec5Smaya	c55x)
3249c019ec5Smaya		basic_machine=tic55x-unknown
3259c019ec5Smaya		;;
3269c019ec5Smaya	c6x)
3279c019ec5Smaya		basic_machine=tic6x-unknown
3281ab64890Smrg		;;
3299c019ec5Smaya	leon|leon[3-9])
3309c019ec5Smaya		basic_machine=sparc-$basic_machine
3311ab64890Smrg		;;
3329c019ec5Smaya	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
3339c019ec5Smaya		basic_machine=$basic_machine-unknown
3349c019ec5Smaya		os=-none
3351ab64890Smrg		;;
3369c019ec5Smaya	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
337eb411b4bSmrg		;;
3389c019ec5Smaya	ms1)
3399c019ec5Smaya		basic_machine=mt-unknown
340eb411b4bSmrg		;;
3419c019ec5Smaya
3429c019ec5Smaya	strongarm | thumb | xscale)
3439c019ec5Smaya		basic_machine=arm-unknown
344eb411b4bSmrg		;;
3459c019ec5Smaya	xgate)
3469c019ec5Smaya		basic_machine=$basic_machine-unknown
3479c019ec5Smaya		os=-none
3489c019ec5Smaya		;;
3499c019ec5Smaya	xscaleeb)
3509c019ec5Smaya		basic_machine=armeb-unknown
3519c019ec5Smaya		;;
3529c019ec5Smaya
3539c019ec5Smaya	xscaleel)
3549c019ec5Smaya		basic_machine=armel-unknown
355eb411b4bSmrg		;;
356eb411b4bSmrg
3579c019ec5Smaya	# We use `pc' rather than `unknown'
3589c019ec5Smaya	# because (1) that's what they normally are, and
3599c019ec5Smaya	# (2) the word "unknown" tends to confuse beginning users.
3609c019ec5Smaya	i*86 | x86_64)
3619c019ec5Smaya	  basic_machine=$basic_machine-pc
3629c019ec5Smaya	  ;;
3639c019ec5Smaya	# Object if more than one company name word.
3649c019ec5Smaya	*-*-*)
3659c019ec5Smaya		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
3669c019ec5Smaya		exit 1
3679c019ec5Smaya		;;
3689c019ec5Smaya	# Recognize the basic CPU types with company name.
3699c019ec5Smaya	580-* \
3709c019ec5Smaya	| a29k-* \
3719c019ec5Smaya	| aarch64-* | aarch64_be-* \
3729c019ec5Smaya	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
3739c019ec5Smaya	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
3749c019ec5Smaya	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
3759c019ec5Smaya	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
3769c019ec5Smaya	| avr-* | avr32-* \
3779c019ec5Smaya	| ba-* \
3789c019ec5Smaya	| be32-* | be64-* \
3799c019ec5Smaya	| bfin-* | bs2000-* \
3809c019ec5Smaya	| c[123]* | c30-* | [cjt]90-* | c4x-* \
3819c019ec5Smaya	| c8051-* | clipper-* | craynv-* | cydra-* \
3829c019ec5Smaya	| d10v-* | d30v-* | dlx-* \
3839c019ec5Smaya	| e2k-* | elxsi-* \
3849c019ec5Smaya	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
3859c019ec5Smaya	| h8300-* | h8500-* \
3869c019ec5Smaya	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
3879c019ec5Smaya	| hexagon-* \
3889c019ec5Smaya	| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
3899c019ec5Smaya	| ip2k-* | iq2000-* \
3909c019ec5Smaya	| k1om-* \
3919c019ec5Smaya	| le32-* | le64-* \
3929c019ec5Smaya	| lm32-* \
3939c019ec5Smaya	| m32c-* | m32r-* | m32rle-* \
3949c019ec5Smaya	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
3959c019ec5Smaya	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
3969c019ec5Smaya	| microblaze-* | microblazeel-* \
3979c019ec5Smaya	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
3989c019ec5Smaya	| mips16-* \
3999c019ec5Smaya	| mips64-* | mips64el-* \
4009c019ec5Smaya	| mips64octeon-* | mips64octeonel-* \
4019c019ec5Smaya	| mips64orion-* | mips64orionel-* \
4029c019ec5Smaya	| mips64r5900-* | mips64r5900el-* \
4039c019ec5Smaya	| mips64vr-* | mips64vrel-* \
4049c019ec5Smaya	| mips64vr4100-* | mips64vr4100el-* \
4059c019ec5Smaya	| mips64vr4300-* | mips64vr4300el-* \
4069c019ec5Smaya	| mips64vr5000-* | mips64vr5000el-* \
4079c019ec5Smaya	| mips64vr5900-* | mips64vr5900el-* \
4089c019ec5Smaya	| mipsisa32-* | mipsisa32el-* \
4099c019ec5Smaya	| mipsisa32r2-* | mipsisa32r2el-* \
4109c019ec5Smaya	| mipsisa32r6-* | mipsisa32r6el-* \
4119c019ec5Smaya	| mipsisa64-* | mipsisa64el-* \
4129c019ec5Smaya	| mipsisa64r2-* | mipsisa64r2el-* \
4139c019ec5Smaya	| mipsisa64r6-* | mipsisa64r6el-* \
4149c019ec5Smaya	| mipsisa64sb1-* | mipsisa64sb1el-* \
4159c019ec5Smaya	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
4169c019ec5Smaya	| mipsr5900-* | mipsr5900el-* \
4179c019ec5Smaya	| mipstx39-* | mipstx39el-* \
4189c019ec5Smaya	| mmix-* \
4199c019ec5Smaya	| mt-* \
4209c019ec5Smaya	| msp430-* \
4219c019ec5Smaya	| nds32-* | nds32le-* | nds32be-* \
4229c019ec5Smaya	| nios-* | nios2-* | nios2eb-* | nios2el-* \
4239c019ec5Smaya	| none-* | np1-* | ns16k-* | ns32k-* \
4249c019ec5Smaya	| open8-* \
4259c019ec5Smaya	| or1k*-* \
4269c019ec5Smaya	| orion-* \
4279c019ec5Smaya	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
4289c019ec5Smaya	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
4299c019ec5Smaya	| pru-* \
4309c019ec5Smaya	| pyramid-* \
4319c019ec5Smaya	| riscv32-* | riscv64-* \
4329c019ec5Smaya	| rl78-* | romp-* | rs6000-* | rx-* \
4339c019ec5Smaya	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
4349c019ec5Smaya	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
4359c019ec5Smaya	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
4369c019ec5Smaya	| sparclite-* \
4379c019ec5Smaya	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
4389c019ec5Smaya	| tahoe-* \
4399c019ec5Smaya	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
4409c019ec5Smaya	| tile*-* \
4419c019ec5Smaya	| tron-* \
4429c019ec5Smaya	| ubicom32-* \
4439c019ec5Smaya	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
4449c019ec5Smaya	| vax-* \
4459c019ec5Smaya	| visium-* \
4469c019ec5Smaya	| wasm32-* \
4479c019ec5Smaya	| we32k-* \
4489c019ec5Smaya	| x86-* | x86_64-* | xc16x-* | xps100-* \
4499c019ec5Smaya	| xstormy16-* | xtensa*-* \
4509c019ec5Smaya	| ymp-* \
4519c019ec5Smaya	| z8k-* | z80-*)
4529c019ec5Smaya		;;
4539c019ec5Smaya	# Recognize the basic CPU types without company name, with glob match.
4549c019ec5Smaya	xtensa*)
4559c019ec5Smaya		basic_machine=$basic_machine-unknown
4569c019ec5Smaya		;;
4571ab64890Smrg	# Recognize the various machine names and aliases which stand
4581ab64890Smrg	# for a CPU type and a company and sometimes even an OS.
4599c019ec5Smaya	386bsd)
4609c019ec5Smaya		basic_machine=i386-pc
4619c019ec5Smaya		os=-bsd
4629c019ec5Smaya		;;
4631ab64890Smrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
4649c019ec5Smaya		basic_machine=m68000-att
4651ab64890Smrg		;;
4661ab64890Smrg	3b*)
4679c019ec5Smaya		basic_machine=we32k-att
4689c019ec5Smaya		;;
4699c019ec5Smaya	a29khif)
4709c019ec5Smaya		basic_machine=a29k-amd
4719c019ec5Smaya		os=-udi
4729c019ec5Smaya		;;
4739c019ec5Smaya	abacus)
4749c019ec5Smaya		basic_machine=abacus-unknown
4759c019ec5Smaya		;;
4769c019ec5Smaya	adobe68k)
4779c019ec5Smaya		basic_machine=m68010-adobe
4789c019ec5Smaya		os=-scout
4799c019ec5Smaya		;;
4809c019ec5Smaya	alliant | fx80)
4819c019ec5Smaya		basic_machine=fx80-alliant
4829c019ec5Smaya		;;
4839c019ec5Smaya	altos | altos3068)
4849c019ec5Smaya		basic_machine=m68k-altos
4859c019ec5Smaya		;;
4869c019ec5Smaya	am29k)
4879c019ec5Smaya		basic_machine=a29k-none
4889c019ec5Smaya		os=-bsd
4899c019ec5Smaya		;;
4909c019ec5Smaya	amd64)
4919c019ec5Smaya		basic_machine=x86_64-pc
4929c019ec5Smaya		;;
4939c019ec5Smaya	amd64-*)
4949c019ec5Smaya		basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
4959c019ec5Smaya		;;
4969c019ec5Smaya	amdahl)
4979c019ec5Smaya		basic_machine=580-amdahl
4989c019ec5Smaya		os=-sysv
4999c019ec5Smaya		;;
5009c019ec5Smaya	amiga | amiga-*)
5019c019ec5Smaya		basic_machine=m68k-unknown
5029c019ec5Smaya		;;
5039c019ec5Smaya	amigaos | amigados)
5049c019ec5Smaya		basic_machine=m68k-unknown
5059c019ec5Smaya		os=-amigaos
5069c019ec5Smaya		;;
5079c019ec5Smaya	amigaunix | amix)
5089c019ec5Smaya		basic_machine=m68k-unknown
5099c019ec5Smaya		os=-sysv4
5109c019ec5Smaya		;;
5119c019ec5Smaya	apollo68)
5129c019ec5Smaya		basic_machine=m68k-apollo
5139c019ec5Smaya		os=-sysv
5149c019ec5Smaya		;;
5159c019ec5Smaya	apollo68bsd)
5169c019ec5Smaya		basic_machine=m68k-apollo
5179c019ec5Smaya		os=-bsd
5189c019ec5Smaya		;;
5199c019ec5Smaya	aros)
5209c019ec5Smaya		basic_machine=i386-pc
5219c019ec5Smaya		os=-aros
5229c019ec5Smaya		;;
5239c019ec5Smaya	asmjs)
5249c019ec5Smaya		basic_machine=asmjs-unknown
5259c019ec5Smaya		;;
5269c019ec5Smaya	aux)
5279c019ec5Smaya		basic_machine=m68k-apple
5289c019ec5Smaya		os=-aux
5299c019ec5Smaya		;;
5309c019ec5Smaya	balance)
5319c019ec5Smaya		basic_machine=ns32k-sequent
5329c019ec5Smaya		os=-dynix
5339c019ec5Smaya		;;
5349c019ec5Smaya	blackfin)
5359c019ec5Smaya		basic_machine=bfin-unknown
5369c019ec5Smaya		os=-linux
5379c019ec5Smaya		;;
5389c019ec5Smaya	blackfin-*)
5399c019ec5Smaya		basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
5409c019ec5Smaya		os=-linux
54161b2299dSmrg		;;
54288de56ccSmrg	bluegene*)
5439c019ec5Smaya		basic_machine=powerpc-ibm
5449c019ec5Smaya		os=-cnk
5459c019ec5Smaya		;;
5469c019ec5Smaya	c54x-*)
5479c019ec5Smaya		basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
5489c019ec5Smaya		;;
5499c019ec5Smaya	c55x-*)
5509c019ec5Smaya		basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
5519c019ec5Smaya		;;
5529c019ec5Smaya	c6x-*)
5539c019ec5Smaya		basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
5549c019ec5Smaya		;;
5559c019ec5Smaya	c90)
5569c019ec5Smaya		basic_machine=c90-cray
5579c019ec5Smaya		os=-unicos
5589c019ec5Smaya		;;
5599c019ec5Smaya	cegcc)
5609c019ec5Smaya		basic_machine=arm-unknown
5619c019ec5Smaya		os=-cegcc
5629c019ec5Smaya		;;
5639c019ec5Smaya	convex-c1)
5649c019ec5Smaya		basic_machine=c1-convex
5659c019ec5Smaya		os=-bsd
5669c019ec5Smaya		;;
5679c019ec5Smaya	convex-c2)
5689c019ec5Smaya		basic_machine=c2-convex
5699c019ec5Smaya		os=-bsd
5709c019ec5Smaya		;;
5719c019ec5Smaya	convex-c32)
5729c019ec5Smaya		basic_machine=c32-convex
5739c019ec5Smaya		os=-bsd
5749c019ec5Smaya		;;
5759c019ec5Smaya	convex-c34)
5769c019ec5Smaya		basic_machine=c34-convex
5779c019ec5Smaya		os=-bsd
5789c019ec5Smaya		;;
5799c019ec5Smaya	convex-c38)
5809c019ec5Smaya		basic_machine=c38-convex
5819c019ec5Smaya		os=-bsd
5829c019ec5Smaya		;;
5839c019ec5Smaya	cray | j90)
5849c019ec5Smaya		basic_machine=j90-cray
5859c019ec5Smaya		os=-unicos
5869c019ec5Smaya		;;
5879c019ec5Smaya	craynv)
5889c019ec5Smaya		basic_machine=craynv-cray
5899c019ec5Smaya		os=-unicosmp
5909c019ec5Smaya		;;
5919c019ec5Smaya	cr16 | cr16-*)
5929c019ec5Smaya		basic_machine=cr16-unknown
5939c019ec5Smaya		os=-elf
5949c019ec5Smaya		;;
5959c019ec5Smaya	crds | unos)
5969c019ec5Smaya		basic_machine=m68k-crds
5979c019ec5Smaya		;;
5989c019ec5Smaya	crisv32 | crisv32-* | etraxfs*)
5999c019ec5Smaya		basic_machine=crisv32-axis
6009c019ec5Smaya		;;
6019c019ec5Smaya	cris | cris-* | etrax*)
6029c019ec5Smaya		basic_machine=cris-axis
6039c019ec5Smaya		;;
6049c019ec5Smaya	crx)
6059c019ec5Smaya		basic_machine=crx-unknown
6069c019ec5Smaya		os=-elf
6079c019ec5Smaya		;;
6089c019ec5Smaya	da30 | da30-*)
6099c019ec5Smaya		basic_machine=m68k-da30
6109c019ec5Smaya		;;
6119c019ec5Smaya	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
6129c019ec5Smaya		basic_machine=mips-dec
6131ab64890Smrg		;;
6141ab64890Smrg	decsystem10* | dec10*)
6159c019ec5Smaya		basic_machine=pdp10-dec
6169c019ec5Smaya		os=-tops10
6171ab64890Smrg		;;
6181ab64890Smrg	decsystem20* | dec20*)
6199c019ec5Smaya		basic_machine=pdp10-dec
6209c019ec5Smaya		os=-tops20
6211ab64890Smrg		;;
6221ab64890Smrg	delta | 3300 | motorola-3300 | motorola-delta \
6231ab64890Smrg	      | 3300-motorola | delta-motorola)
6249c019ec5Smaya		basic_machine=m68k-motorola
6259c019ec5Smaya		;;
6269c019ec5Smaya	delta88)
6279c019ec5Smaya		basic_machine=m88k-motorola
6289c019ec5Smaya		os=-sysv3
6299c019ec5Smaya		;;
6309c019ec5Smaya	dicos)
6319c019ec5Smaya		basic_machine=i686-pc
6329c019ec5Smaya		os=-dicos
6339c019ec5Smaya		;;
6349c019ec5Smaya	djgpp)
6359c019ec5Smaya		basic_machine=i586-pc
6369c019ec5Smaya		os=-msdosdjgpp
6379c019ec5Smaya		;;
6389c019ec5Smaya	dpx20 | dpx20-*)
6399c019ec5Smaya		basic_machine=rs6000-bull
6409c019ec5Smaya		os=-bosx
64188de56ccSmrg		;;
6425afda2e6Smrg	dpx2*)
6439c019ec5Smaya		basic_machine=m68k-bull
6449c019ec5Smaya		os=-sysv3
6451ab64890Smrg		;;
6469c019ec5Smaya	e500v[12])
6479c019ec5Smaya		basic_machine=powerpc-unknown
6489c019ec5Smaya		os=$os"spe"
6499c019ec5Smaya		;;
6509c019ec5Smaya	e500v[12]-*)
6519c019ec5Smaya		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
6529c019ec5Smaya		os=$os"spe"
6539c019ec5Smaya		;;
6549c019ec5Smaya	ebmon29k)
6559c019ec5Smaya		basic_machine=a29k-amd
6569c019ec5Smaya		os=-ebmon
6571ab64890Smrg		;;
6585afda2e6Smrg	elxsi)
6599c019ec5Smaya		basic_machine=elxsi-elxsi
6609c019ec5Smaya		os=-bsd
6619c019ec5Smaya		;;
6629c019ec5Smaya	encore | umax | mmax)
6639c019ec5Smaya		basic_machine=ns32k-encore
6649c019ec5Smaya		;;
6659c019ec5Smaya	es1800 | OSE68k | ose68k | ose | OSE)
6669c019ec5Smaya		basic_machine=m68k-ericsson
6679c019ec5Smaya		os=-ose
6681ab64890Smrg		;;
6691ab64890Smrg	fx2800)
6709c019ec5Smaya		basic_machine=i860-alliant
6711ab64890Smrg		;;
6721ab64890Smrg	genix)
6739c019ec5Smaya		basic_machine=ns32k-ns
6749c019ec5Smaya		;;
6759c019ec5Smaya	gmicro)
6769c019ec5Smaya		basic_machine=tron-gmicro
6779c019ec5Smaya		os=-sysv
6789c019ec5Smaya		;;
6799c019ec5Smaya	go32)
6809c019ec5Smaya		basic_machine=i386-pc
6819c019ec5Smaya		os=-go32
6821ab64890Smrg		;;
6831ab64890Smrg	h3050r* | hiux*)
6849c019ec5Smaya		basic_machine=hppa1.1-hitachi
6859c019ec5Smaya		os=-hiuxwe2
6869c019ec5Smaya		;;
6879c019ec5Smaya	h8300hms)
6889c019ec5Smaya		basic_machine=h8300-hitachi
6899c019ec5Smaya		os=-hms
6909c019ec5Smaya		;;
6919c019ec5Smaya	h8300xray)
6929c019ec5Smaya		basic_machine=h8300-hitachi
6939c019ec5Smaya		os=-xray
6949c019ec5Smaya		;;
6959c019ec5Smaya	h8500hms)
6969c019ec5Smaya		basic_machine=h8500-hitachi
6979c019ec5Smaya		os=-hms
6989c019ec5Smaya		;;
6999c019ec5Smaya	harris)
7009c019ec5Smaya		basic_machine=m88k-harris
7019c019ec5Smaya		os=-sysv3
7029c019ec5Smaya		;;
7039c019ec5Smaya	hp300-*)
7049c019ec5Smaya		basic_machine=m68k-hp
7059c019ec5Smaya		;;
7069c019ec5Smaya	hp300bsd)
7079c019ec5Smaya		basic_machine=m68k-hp
7089c019ec5Smaya		os=-bsd
7099c019ec5Smaya		;;
7109c019ec5Smaya	hp300hpux)
7119c019ec5Smaya		basic_machine=m68k-hp
7129c019ec5Smaya		os=-hpux
7131ab64890Smrg		;;
7141ab64890Smrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
7159c019ec5Smaya		basic_machine=hppa1.0-hp
7161ab64890Smrg		;;
7171ab64890Smrg	hp9k2[0-9][0-9] | hp9k31[0-9])
7189c019ec5Smaya		basic_machine=m68000-hp
7191ab64890Smrg		;;
7201ab64890Smrg	hp9k3[2-9][0-9])
7219c019ec5Smaya		basic_machine=m68k-hp
7221ab64890Smrg		;;
7231ab64890Smrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
7249c019ec5Smaya		basic_machine=hppa1.0-hp
7251ab64890Smrg		;;
7261ab64890Smrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
7279c019ec5Smaya		basic_machine=hppa1.1-hp
7281ab64890Smrg		;;
7291ab64890Smrg	hp9k78[0-9] | hp78[0-9])
7301ab64890Smrg		# FIXME: really hppa2.0-hp
7319c019ec5Smaya		basic_machine=hppa1.1-hp
7321ab64890Smrg		;;
7331ab64890Smrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
7341ab64890Smrg		# FIXME: really hppa2.0-hp
7359c019ec5Smaya		basic_machine=hppa1.1-hp
7361ab64890Smrg		;;
7371ab64890Smrg	hp9k8[0-9][13679] | hp8[0-9][13679])
7389c019ec5Smaya		basic_machine=hppa1.1-hp
7391ab64890Smrg		;;
7401ab64890Smrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
7419c019ec5Smaya		basic_machine=hppa1.0-hp
7429c019ec5Smaya		;;
7439c019ec5Smaya	hppaosf)
7449c019ec5Smaya		basic_machine=hppa1.1-hp
7459c019ec5Smaya		os=-osf
7469c019ec5Smaya		;;
7479c019ec5Smaya	hppro)
7489c019ec5Smaya		basic_machine=hppa1.1-hp
7499c019ec5Smaya		os=-proelf
7509c019ec5Smaya		;;
7519c019ec5Smaya	i370-ibm* | ibm*)
7529c019ec5Smaya		basic_machine=i370-ibm
7531ab64890Smrg		;;
7541ab64890Smrg	i*86v32)
7559c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
7569c019ec5Smaya		os=-sysv32
7571ab64890Smrg		;;
7581ab64890Smrg	i*86v4*)
7599c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
7609c019ec5Smaya		os=-sysv4
7611ab64890Smrg		;;
7621ab64890Smrg	i*86v)
7639c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
7649c019ec5Smaya		os=-sysv
7651ab64890Smrg		;;
7661ab64890Smrg	i*86sol2)
7679c019ec5Smaya		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
7689c019ec5Smaya		os=-solaris2
7691ab64890Smrg		;;
7709c019ec5Smaya	i386mach)
7719c019ec5Smaya		basic_machine=i386-mach
7729c019ec5Smaya		os=-mach
7739c019ec5Smaya		;;
7749c019ec5Smaya	vsta)
7759c019ec5Smaya		basic_machine=i386-unknown
7769c019ec5Smaya		os=-vsta
7771ab64890Smrg		;;
7781ab64890Smrg	iris | iris4d)
7799c019ec5Smaya		basic_machine=mips-sgi
7801ab64890Smrg		case $os in
7819c019ec5Smaya		    -irix*)
7821ab64890Smrg			;;
7831ab64890Smrg		    *)
7849c019ec5Smaya			os=-irix4
7851ab64890Smrg			;;
7861ab64890Smrg		esac
7871ab64890Smrg		;;
7889c019ec5Smaya	isi68 | isi)
7899c019ec5Smaya		basic_machine=m68k-isi
7909c019ec5Smaya		os=-sysv
7919c019ec5Smaya		;;
7929c019ec5Smaya	leon-*|leon[3-9]-*)
7939c019ec5Smaya		basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
7949c019ec5Smaya		;;
7959c019ec5Smaya	m68knommu)
7969c019ec5Smaya		basic_machine=m68k-unknown
7979c019ec5Smaya		os=-linux
7989c019ec5Smaya		;;
7999c019ec5Smaya	m68knommu-*)
8009c019ec5Smaya		basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
8019c019ec5Smaya		os=-linux
8029c019ec5Smaya		;;
8039c019ec5Smaya	magnum | m3230)
8049c019ec5Smaya		basic_machine=mips-mips
8059c019ec5Smaya		os=-sysv
8069c019ec5Smaya		;;
8079c019ec5Smaya	merlin)
8089c019ec5Smaya		basic_machine=ns32k-utek
8099c019ec5Smaya		os=-sysv
8109c019ec5Smaya		;;
8119c019ec5Smaya	microblaze*)
8129c019ec5Smaya		basic_machine=microblaze-xilinx
8139c019ec5Smaya		;;
8149c019ec5Smaya	mingw64)
8159c019ec5Smaya		basic_machine=x86_64-pc
8169c019ec5Smaya		os=-mingw64
8179c019ec5Smaya		;;
8189c019ec5Smaya	mingw32)
8199c019ec5Smaya		basic_machine=i686-pc
8209c019ec5Smaya		os=-mingw32
8219c019ec5Smaya		;;
8229c019ec5Smaya	mingw32ce)
8239c019ec5Smaya		basic_machine=arm-unknown
8249c019ec5Smaya		os=-mingw32ce
8259c019ec5Smaya		;;
8261ab64890Smrg	miniframe)
8279c019ec5Smaya		basic_machine=m68000-convergent
8289c019ec5Smaya		;;
8299c019ec5Smaya	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
8309c019ec5Smaya		basic_machine=m68k-atari
8319c019ec5Smaya		os=-mint
8329c019ec5Smaya		;;
8339c019ec5Smaya	mips3*-*)
8349c019ec5Smaya		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
8359c019ec5Smaya		;;
8369c019ec5Smaya	mips3*)
8379c019ec5Smaya		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
8389c019ec5Smaya		;;
8399c019ec5Smaya	monitor)
8409c019ec5Smaya		basic_machine=m68k-rom68k
8419c019ec5Smaya		os=-coff
8429c019ec5Smaya		;;
8439c019ec5Smaya	morphos)
8449c019ec5Smaya		basic_machine=powerpc-unknown
8459c019ec5Smaya		os=-morphos
8469c019ec5Smaya		;;
8479c019ec5Smaya	moxiebox)
8489c019ec5Smaya		basic_machine=moxie-unknown
8499c019ec5Smaya		os=-moxiebox
8509c019ec5Smaya		;;
8519c019ec5Smaya	msdos)
8529c019ec5Smaya		basic_machine=i386-pc
8539c019ec5Smaya		os=-msdos
8549c019ec5Smaya		;;
8559c019ec5Smaya	ms1-*)
8569c019ec5Smaya		basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
8579c019ec5Smaya		;;
8589c019ec5Smaya	msys)
8599c019ec5Smaya		basic_machine=i686-pc
8609c019ec5Smaya		os=-msys
8619c019ec5Smaya		;;
8629c019ec5Smaya	mvs)
8639c019ec5Smaya		basic_machine=i370-ibm
8649c019ec5Smaya		os=-mvs
8659c019ec5Smaya		;;
8669c019ec5Smaya	nacl)
8679c019ec5Smaya		basic_machine=le32-unknown
8689c019ec5Smaya		os=-nacl
8691ab64890Smrg		;;
8709c019ec5Smaya	ncr3000)
8719c019ec5Smaya		basic_machine=i486-ncr
8729c019ec5Smaya		os=-sysv4
8739c019ec5Smaya		;;
8749c019ec5Smaya	netbsd386)
8759c019ec5Smaya		basic_machine=i386-unknown
8769c019ec5Smaya		os=-netbsd
8779c019ec5Smaya		;;
8789c019ec5Smaya	netwinder)
8799c019ec5Smaya		basic_machine=armv4l-rebel
8809c019ec5Smaya		os=-linux
8819c019ec5Smaya		;;
8829c019ec5Smaya	news | news700 | news800 | news900)
8839c019ec5Smaya		basic_machine=m68k-sony
8849c019ec5Smaya		os=-newsos
8859c019ec5Smaya		;;
8869c019ec5Smaya	news1000)
8879c019ec5Smaya		basic_machine=m68030-sony
8889c019ec5Smaya		os=-newsos
8891ab64890Smrg		;;
8901ab64890Smrg	news-3600 | risc-news)
8919c019ec5Smaya		basic_machine=mips-sony
8929c019ec5Smaya		os=-newsos
8939c019ec5Smaya		;;
8949c019ec5Smaya	necv70)
8959c019ec5Smaya		basic_machine=v70-nec
8969c019ec5Smaya		os=-sysv
8971ab64890Smrg		;;
8985afda2e6Smrg	next | m*-next)
8999c019ec5Smaya		basic_machine=m68k-next
9001ab64890Smrg		case $os in
9019c019ec5Smaya		    -nextstep* )
9021ab64890Smrg			;;
9039c019ec5Smaya		    -ns2*)
9049c019ec5Smaya		      os=-nextstep2
9051ab64890Smrg			;;
9061ab64890Smrg		    *)
9079c019ec5Smaya		      os=-nextstep3
9081ab64890Smrg			;;
9091ab64890Smrg		esac
9101ab64890Smrg		;;
9119c019ec5Smaya	nh3000)
9129c019ec5Smaya		basic_machine=m68k-harris
9139c019ec5Smaya		os=-cxux
9149c019ec5Smaya		;;
9159c019ec5Smaya	nh[45]000)
9169c019ec5Smaya		basic_machine=m88k-harris
9179c019ec5Smaya		os=-cxux
9189c019ec5Smaya		;;
9199c019ec5Smaya	nindy960)
9209c019ec5Smaya		basic_machine=i960-intel
9219c019ec5Smaya		os=-nindy
9229c019ec5Smaya		;;
9239c019ec5Smaya	mon960)
9249c019ec5Smaya		basic_machine=i960-intel
9259c019ec5Smaya		os=-mon960
9269c019ec5Smaya		;;
9279c019ec5Smaya	nonstopux)
9289c019ec5Smaya		basic_machine=mips-compaq
9299c019ec5Smaya		os=-nonstopux
9309c019ec5Smaya		;;
9311ab64890Smrg	np1)
9329c019ec5Smaya		basic_machine=np1-gould
9339c019ec5Smaya		;;
9349c019ec5Smaya	neo-tandem)
9359c019ec5Smaya		basic_machine=neo-tandem
9369c019ec5Smaya		;;
9379c019ec5Smaya	nse-tandem)
9389c019ec5Smaya		basic_machine=nse-tandem
9399c019ec5Smaya		;;
9409c019ec5Smaya	nsr-tandem)
9419c019ec5Smaya		basic_machine=nsr-tandem
9429c019ec5Smaya		;;
9439c019ec5Smaya	nsv-tandem)
9449c019ec5Smaya		basic_machine=nsv-tandem
9459c019ec5Smaya		;;
9469c019ec5Smaya	nsx-tandem)
9479c019ec5Smaya		basic_machine=nsx-tandem
9481ab64890Smrg		;;
9491ab64890Smrg	op50n-* | op60c-*)
9509c019ec5Smaya		basic_machine=hppa1.1-oki
9519c019ec5Smaya		os=-proelf
9529c019ec5Smaya		;;
9539c019ec5Smaya	openrisc | openrisc-*)
9549c019ec5Smaya		basic_machine=or32-unknown
9559c019ec5Smaya		;;
9569c019ec5Smaya	os400)
9579c019ec5Smaya		basic_machine=powerpc-ibm
9589c019ec5Smaya		os=-os400
9599c019ec5Smaya		;;
9609c019ec5Smaya	OSE68000 | ose68000)
9619c019ec5Smaya		basic_machine=m68000-ericsson
9629c019ec5Smaya		os=-ose
9639c019ec5Smaya		;;
9649c019ec5Smaya	os68k)
9659c019ec5Smaya		basic_machine=m68k-none
9669c019ec5Smaya		os=-os68k
9671ab64890Smrg		;;
9681ab64890Smrg	pa-hitachi)
9699c019ec5Smaya		basic_machine=hppa1.1-hitachi
9709c019ec5Smaya		os=-hiuxwe2
9719c019ec5Smaya		;;
9729c019ec5Smaya	paragon)
9739c019ec5Smaya		basic_machine=i860-intel
9749c019ec5Smaya		os=-osf
9759c019ec5Smaya		;;
9769c019ec5Smaya	parisc)
9779c019ec5Smaya		basic_machine=hppa-unknown
9789c019ec5Smaya		os=-linux
9799c019ec5Smaya		;;
9809c019ec5Smaya	parisc-*)
9819c019ec5Smaya		basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
9829c019ec5Smaya		os=-linux
98361b2299dSmrg		;;
9841ab64890Smrg	pbd)
9859c019ec5Smaya		basic_machine=sparc-tti
9861ab64890Smrg		;;
9871ab64890Smrg	pbb)
9889c019ec5Smaya		basic_machine=m68k-tti
9899c019ec5Smaya		;;
9909c019ec5Smaya	pc532 | pc532-*)
9919c019ec5Smaya		basic_machine=ns32k-pc532
9929c019ec5Smaya		;;
9939c019ec5Smaya	pc98)
9949c019ec5Smaya		basic_machine=i386-pc
9959c019ec5Smaya		;;
9969c019ec5Smaya	pc98-*)
9979c019ec5Smaya		basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
9989c019ec5Smaya		;;
9999c019ec5Smaya	pentium | p5 | k5 | k6 | nexgen | viac3)
10009c019ec5Smaya		basic_machine=i586-pc
10019c019ec5Smaya		;;
10029c019ec5Smaya	pentiumpro | p6 | 6x86 | athlon | athlon_*)
10039c019ec5Smaya		basic_machine=i686-pc
10049c019ec5Smaya		;;
10059c019ec5Smaya	pentiumii | pentium2 | pentiumiii | pentium3)
10069c019ec5Smaya		basic_machine=i686-pc
10079c019ec5Smaya		;;
10089c019ec5Smaya	pentium4)
10099c019ec5Smaya		basic_machine=i786-pc
10109c019ec5Smaya		;;
10119c019ec5Smaya	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
10129c019ec5Smaya		basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10139c019ec5Smaya		;;
10149c019ec5Smaya	pentiumpro-* | p6-* | 6x86-* | athlon-*)
10159c019ec5Smaya		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10161ab64890Smrg		;;
10179c019ec5Smaya	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
10189c019ec5Smaya		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10199c019ec5Smaya		;;
10209c019ec5Smaya	pentium4-*)
10219c019ec5Smaya		basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10221ab64890Smrg		;;
10231ab64890Smrg	pn)
10249c019ec5Smaya		basic_machine=pn-gould
10251ab64890Smrg		;;
10269c019ec5Smaya	power)	basic_machine=power-ibm
10271ab64890Smrg		;;
10289c019ec5Smaya	ppc | ppcbe)	basic_machine=powerpc-unknown
10291ab64890Smrg		;;
10309c019ec5Smaya	ppc-* | ppcbe-*)
10319c019ec5Smaya		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10321ab64890Smrg		;;
10339c019ec5Smaya	ppcle | powerpclittle)
10349c019ec5Smaya		basic_machine=powerpcle-unknown
10351ab64890Smrg		;;
10369c019ec5Smaya	ppcle-* | powerpclittle-*)
10379c019ec5Smaya		basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10381ab64890Smrg		;;
10399c019ec5Smaya	ppc64)	basic_machine=powerpc64-unknown
10401ab64890Smrg		;;
10419c019ec5Smaya	ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10421ab64890Smrg		;;
10439c019ec5Smaya	ppc64le | powerpc64little)
10449c019ec5Smaya		basic_machine=powerpc64le-unknown
10459c019ec5Smaya		;;
10469c019ec5Smaya	ppc64le-* | powerpc64little-*)
10479c019ec5Smaya		basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10481ab64890Smrg		;;
10499c019ec5Smaya	ps2)
10509c019ec5Smaya		basic_machine=i386-ibm
10511ab64890Smrg		;;
10529c019ec5Smaya	pw32)
10539c019ec5Smaya		basic_machine=i586-unknown
10549c019ec5Smaya		os=-pw32
10551ab64890Smrg		;;
10569c019ec5Smaya	rdos | rdos64)
10579c019ec5Smaya		basic_machine=x86_64-pc
10589c019ec5Smaya		os=-rdos
10591ab64890Smrg		;;
10609c019ec5Smaya	rdos32)
10619c019ec5Smaya		basic_machine=i386-pc
10629c019ec5Smaya		os=-rdos
10631ab64890Smrg		;;
10649c019ec5Smaya	rom68k)
10659c019ec5Smaya		basic_machine=m68k-rom68k
10669c019ec5Smaya		os=-coff
10671ab64890Smrg		;;
10689c019ec5Smaya	rm[46]00)
10699c019ec5Smaya		basic_machine=mips-siemens
10701ab64890Smrg		;;
10719c019ec5Smaya	rtpc | rtpc-*)
10729c019ec5Smaya		basic_machine=romp-ibm
10731ab64890Smrg		;;
10749c019ec5Smaya	s390 | s390-*)
10759c019ec5Smaya		basic_machine=s390-ibm
10761ab64890Smrg		;;
10779c019ec5Smaya	s390x | s390x-*)
10789c019ec5Smaya		basic_machine=s390x-ibm
10791ab64890Smrg		;;
10809c019ec5Smaya	sa29200)
10819c019ec5Smaya		basic_machine=a29k-amd
10829c019ec5Smaya		os=-udi
1083eb411b4bSmrg		;;
10849c019ec5Smaya	sb1)
10859c019ec5Smaya		basic_machine=mipsisa64sb1-unknown
10861ab64890Smrg		;;
10879c019ec5Smaya	sb1el)
10889c019ec5Smaya		basic_machine=mipsisa64sb1el-unknown
10891ab64890Smrg		;;
10909c019ec5Smaya	sde)
10919c019ec5Smaya		basic_machine=mipsisa32-sde
10929c019ec5Smaya		os=-elf
10931ab64890Smrg		;;
10949c019ec5Smaya	sei)
10959c019ec5Smaya		basic_machine=mips-sei
10969c019ec5Smaya		os=-seiux
10971ab64890Smrg		;;
10989c019ec5Smaya	sequent)
10999c019ec5Smaya		basic_machine=i386-sequent
11001ab64890Smrg		;;
11019c019ec5Smaya	sh5el)
11029c019ec5Smaya		basic_machine=sh5le-unknown
11031ab64890Smrg		;;
11049c019ec5Smaya	simso-wrs)
11059c019ec5Smaya		basic_machine=sparclite-wrs
11069c019ec5Smaya		os=-vxworks
11071ab64890Smrg		;;
11089c019ec5Smaya	sps7)
11099c019ec5Smaya		basic_machine=m68k-bull
11109c019ec5Smaya		os=-sysv2
11111ab64890Smrg		;;
11129c019ec5Smaya	spur)
11139c019ec5Smaya		basic_machine=spur-unknown
11141ab64890Smrg		;;
11159c019ec5Smaya	st2000)
11169c019ec5Smaya		basic_machine=m68k-tandem
11171ab64890Smrg		;;
11189c019ec5Smaya	stratus)
11199c019ec5Smaya		basic_machine=i860-stratus
11209c019ec5Smaya		os=-sysv4
11211ab64890Smrg		;;
11229c019ec5Smaya	strongarm-* | thumb-*)
11239c019ec5Smaya		basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
11241ab64890Smrg		;;
11259c019ec5Smaya	sun2)
11269c019ec5Smaya		basic_machine=m68000-sun
11271ab64890Smrg		;;
11289c019ec5Smaya	sun2os3)
11299c019ec5Smaya		basic_machine=m68000-sun
11309c019ec5Smaya		os=-sunos3
11311ab64890Smrg		;;
11329c019ec5Smaya	sun2os4)
11339c019ec5Smaya		basic_machine=m68000-sun
11349c019ec5Smaya		os=-sunos4
11351ab64890Smrg		;;
11369c019ec5Smaya	sun3os3)
11379c019ec5Smaya		basic_machine=m68k-sun
11389c019ec5Smaya		os=-sunos3
113961b2299dSmrg		;;
11409c019ec5Smaya	sun3os4)
11419c019ec5Smaya		basic_machine=m68k-sun
11429c019ec5Smaya		os=-sunos4
11431ab64890Smrg		;;
11449c019ec5Smaya	sun4os3)
11459c019ec5Smaya		basic_machine=sparc-sun
11469c019ec5Smaya		os=-sunos3
11471ab64890Smrg		;;
11489c019ec5Smaya	sun4os4)
11499c019ec5Smaya		basic_machine=sparc-sun
11509c019ec5Smaya		os=-sunos4
11511ab64890Smrg		;;
11529c019ec5Smaya	sun4sol2)
11539c019ec5Smaya		basic_machine=sparc-sun
11549c019ec5Smaya		os=-solaris2
11551ab64890Smrg		;;
11569c019ec5Smaya	sun3 | sun3-*)
11579c019ec5Smaya		basic_machine=m68k-sun
11581ab64890Smrg		;;
11599c019ec5Smaya	sun4)
11609c019ec5Smaya		basic_machine=sparc-sun
11611ab64890Smrg		;;
11629c019ec5Smaya	sun386 | sun386i | roadrunner)
11639c019ec5Smaya		basic_machine=i386-sun
11641ab64890Smrg		;;
11659c019ec5Smaya	sv1)
11669c019ec5Smaya		basic_machine=sv1-cray
11679c019ec5Smaya		os=-unicos
11681ab64890Smrg		;;
11699c019ec5Smaya	symmetry)
11709c019ec5Smaya		basic_machine=i386-sequent
11719c019ec5Smaya		os=-dynix
11721ab64890Smrg		;;
11739c019ec5Smaya	t3e)
11749c019ec5Smaya		basic_machine=alphaev5-cray
11759c019ec5Smaya		os=-unicos
11761ab64890Smrg		;;
11779c019ec5Smaya	t90)
11789c019ec5Smaya		basic_machine=t90-cray
11799c019ec5Smaya		os=-unicos
11801ab64890Smrg		;;
11819c019ec5Smaya	tile*)
11829c019ec5Smaya		basic_machine=$basic_machine-unknown
11839c019ec5Smaya		os=-linux-gnu
11841ab64890Smrg		;;
11859c019ec5Smaya	tx39)
11869c019ec5Smaya		basic_machine=mipstx39-unknown
11871ab64890Smrg		;;
11889c019ec5Smaya	tx39el)
11899c019ec5Smaya		basic_machine=mipstx39el-unknown
11901ab64890Smrg		;;
11919c019ec5Smaya	toad1)
11929c019ec5Smaya		basic_machine=pdp10-xkl
11939c019ec5Smaya		os=-tops20
11941ab64890Smrg		;;
11959c019ec5Smaya	tower | tower-32)
11969c019ec5Smaya		basic_machine=m68k-ncr
11971ab64890Smrg		;;
11989c019ec5Smaya	tpf)
11999c019ec5Smaya		basic_machine=s390x-ibm
12009c019ec5Smaya		os=-tpf
12011ab64890Smrg		;;
12029c019ec5Smaya	udi29k)
12039c019ec5Smaya		basic_machine=a29k-amd
12049c019ec5Smaya		os=-udi
12051ab64890Smrg		;;
12069c019ec5Smaya	ultra3)
12079c019ec5Smaya		basic_machine=a29k-nyu
12089c019ec5Smaya		os=-sym1
1209eb411b4bSmrg		;;
12109c019ec5Smaya	v810 | necv810)
12119c019ec5Smaya		basic_machine=v810-nec
12129c019ec5Smaya		os=-none
12131ab64890Smrg		;;
12149c019ec5Smaya	vaxv)
12159c019ec5Smaya		basic_machine=vax-dec
12169c019ec5Smaya		os=-sysv
12171ab64890Smrg		;;
12189c019ec5Smaya	vms)
12199c019ec5Smaya		basic_machine=vax-dec
12209c019ec5Smaya		os=-vms
122188de56ccSmrg		;;
12229c019ec5Smaya	vpp*|vx|vx-*)
12239c019ec5Smaya		basic_machine=f301-fujitsu
12241ab64890Smrg		;;
12259c019ec5Smaya	vxworks960)
12269c019ec5Smaya		basic_machine=i960-wrs
12279c019ec5Smaya		os=-vxworks
12281ab64890Smrg		;;
12299c019ec5Smaya	vxworks68)
12309c019ec5Smaya		basic_machine=m68k-wrs
12319c019ec5Smaya		os=-vxworks
12329c019ec5Smaya		;;
12339c019ec5Smaya	vxworks29k)
12349c019ec5Smaya		basic_machine=a29k-wrs
12359c019ec5Smaya		os=-vxworks
12361ab64890Smrg		;;
12379c019ec5Smaya	w65*)
12389c019ec5Smaya		basic_machine=w65-wdc
12399c019ec5Smaya		os=-none
12401ab64890Smrg		;;
12419c019ec5Smaya	w89k-*)
12429c019ec5Smaya		basic_machine=hppa1.1-winbond
12439c019ec5Smaya		os=-proelf
12441ab64890Smrg		;;
12459c019ec5Smaya	x64)
12469c019ec5Smaya		basic_machine=x86_64-pc
12479c019ec5Smaya		;;
12489c019ec5Smaya	xbox)
12499c019ec5Smaya		basic_machine=i686-pc
12509c019ec5Smaya		os=-mingw32
12519c019ec5Smaya		;;
12529c019ec5Smaya	xps | xps100)
12539c019ec5Smaya		basic_machine=xps100-honeywell
12541ab64890Smrg		;;
12555afda2e6Smrg	xscale-* | xscalee[bl]-*)
12569c019ec5Smaya		basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
12579c019ec5Smaya		;;
12589c019ec5Smaya	ymp)
12599c019ec5Smaya		basic_machine=ymp-cray
12609c019ec5Smaya		os=-unicos
12619c019ec5Smaya		;;
12629c019ec5Smaya	none)
12639c019ec5Smaya		basic_machine=none-none
12649c019ec5Smaya		os=-none
12651ab64890Smrg		;;
12665afda2e6Smrg
12679c019ec5Smaya# Here we handle the default manufacturer of certain CPU types.  It is in
12689c019ec5Smaya# some cases the only manufacturer, in others, it is the most popular.
12699c019ec5Smaya	w89k)
12709c019ec5Smaya		basic_machine=hppa1.1-winbond
12711ab64890Smrg		;;
12729c019ec5Smaya	op50n)
12739c019ec5Smaya		basic_machine=hppa1.1-oki
12741ab64890Smrg		;;
12759c019ec5Smaya	op60c)
12769c019ec5Smaya		basic_machine=hppa1.1-oki
12771ab64890Smrg		;;
12789c019ec5Smaya	romp)
12799c019ec5Smaya		basic_machine=romp-ibm
12801ab64890Smrg		;;
12819c019ec5Smaya	mmix)
12829c019ec5Smaya		basic_machine=mmix-knuth
12831ab64890Smrg		;;
12849c019ec5Smaya	rs6000)
12859c019ec5Smaya		basic_machine=rs6000-ibm
12861ab64890Smrg		;;
12879c019ec5Smaya	vax)
12889c019ec5Smaya		basic_machine=vax-dec
12891ab64890Smrg		;;
12909c019ec5Smaya	pdp11)
12919c019ec5Smaya		basic_machine=pdp11-dec
12921ab64890Smrg		;;
12939c019ec5Smaya	we32k)
12949c019ec5Smaya		basic_machine=we32k-att
12951ab64890Smrg		;;
12969c019ec5Smaya	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
12979c019ec5Smaya		basic_machine=sh-unknown
12981ab64890Smrg		;;
12999c019ec5Smaya	cydra)
13009c019ec5Smaya		basic_machine=cydra-cydrome
13011ab64890Smrg		;;
13029c019ec5Smaya	orion)
13039c019ec5Smaya		basic_machine=orion-highlevel
13049c019ec5Smaya		;;
13059c019ec5Smaya	orion105)
13069c019ec5Smaya		basic_machine=clipper-highlevel
13079c019ec5Smaya		;;
13089c019ec5Smaya	mac | mpw | mac-mpw)
13099c019ec5Smaya		basic_machine=m68k-apple
13109c019ec5Smaya		;;
13119c019ec5Smaya	pmac | pmac-mpw)
13129c019ec5Smaya		basic_machine=powerpc-apple
13139c019ec5Smaya		;;
13149c019ec5Smaya	*-unknown)
13159c019ec5Smaya		# Make sure to match an already-canonicalized machine name.
13161ab64890Smrg		;;
13171ab64890Smrg	*)
13189c019ec5Smaya		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
13199c019ec5Smaya		exit 1
13201ab64890Smrg		;;
13211ab64890Smrgesac
13221ab64890Smrg
13231ab64890Smrg# Here we canonicalize certain aliases for manufacturers.
13249c019ec5Smayacase $basic_machine in
13259c019ec5Smaya	*-digital*)
13269c019ec5Smaya		basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
13271ab64890Smrg		;;
13289c019ec5Smaya	*-commodore*)
13299c019ec5Smaya		basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
13301ab64890Smrg		;;
13311ab64890Smrg	*)
13321ab64890Smrg		;;
13331ab64890Smrgesac
13341ab64890Smrg
13351ab64890Smrg# Decode manufacturer-specific aliases for certain operating systems.
13361ab64890Smrg
13379c019ec5Smayaif [ x"$os" != x"" ]
13381ab64890Smrgthen
13391ab64890Smrgcase $os in
13405afda2e6Smrg	# First match some system type aliases that might get confused
13415afda2e6Smrg	# with valid system types.
13429c019ec5Smaya	# -solaris* is a basic system type, with this one exception.
13439c019ec5Smaya	-auroraux)
13449c019ec5Smaya		os=-auroraux
134588de56ccSmrg		;;
13469c019ec5Smaya	-solaris1 | -solaris1.*)
13475afda2e6Smrg		os=`echo $os | sed -e 's|solaris1|sunos4|'`
13481ab64890Smrg		;;
13499c019ec5Smaya	-solaris)
13509c019ec5Smaya		os=-solaris2
13511ab64890Smrg		;;
13529c019ec5Smaya	-unixware*)
13539c019ec5Smaya		os=-sysv4.2uw
13541ab64890Smrg		;;
13559c019ec5Smaya	-gnu/linux*)
13561ab64890Smrg		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
13571ab64890Smrg		;;
13585afda2e6Smrg	# es1800 is here to avoid being matched by es* (a different OS)
13599c019ec5Smaya	-es1800*)
13609c019ec5Smaya		os=-ose
13615afda2e6Smrg		;;
13625afda2e6Smrg	# Now accept the basic system types.
13631ab64890Smrg	# The portable systems comes first.
13645afda2e6Smrg	# Each alternative MUST end in a * to match a version number.
13659c019ec5Smaya	# -sysv* is not here because it comes later, after sysvr4.
13669c019ec5Smaya	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
13679c019ec5Smaya	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
13689c019ec5Smaya	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
13699c019ec5Smaya	      | -sym* | -kopensolaris* | -plan9* \
13709c019ec5Smaya	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
13719c019ec5Smaya	      | -aos* | -aros* | -cloudabi* | -sortix* \
13729c019ec5Smaya	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
13739c019ec5Smaya	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
13749c019ec5Smaya	      | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
13759c019ec5Smaya	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
13769c019ec5Smaya	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
13779c019ec5Smaya	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
13789c019ec5Smaya	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
13799c019ec5Smaya	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
13809c019ec5Smaya	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
13819c019ec5Smaya	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
13829c019ec5Smaya	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
13839c019ec5Smaya	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
13849c019ec5Smaya	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
13859c019ec5Smaya	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
13869c019ec5Smaya	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
13879c019ec5Smaya	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
13889c019ec5Smaya	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
13899c019ec5Smaya	      | -morphos* | -superux* | -rtmk* | -windiss* \
13909c019ec5Smaya	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
13919c019ec5Smaya	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
13929c019ec5Smaya	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
13939c019ec5Smaya	      | -midnightbsd*)
13941ab64890Smrg	# Remember, each alternative MUST END IN *, to match a version number.
13951ab64890Smrg		;;
13969c019ec5Smaya	-qnx*)
13979c019ec5Smaya		case $basic_machine in
13989c019ec5Smaya		    x86-* | i*86-*)
13991ab64890Smrg			;;
14001ab64890Smrg		    *)
14019c019ec5Smaya			os=-nto$os
14021ab64890Smrg			;;
14031ab64890Smrg		esac
14041ab64890Smrg		;;
14059c019ec5Smaya	-nto-qnx*)
14061ab64890Smrg		;;
14079c019ec5Smaya	-nto*)
14085afda2e6Smrg		os=`echo $os | sed -e 's|nto|nto-qnx|'`
14091ab64890Smrg		;;
14109c019ec5Smaya	-sim | -xray | -os68k* | -v88r* \
14119c019ec5Smaya	      | -windows* | -osx | -abug | -netware* | -os9* \
14129c019ec5Smaya	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
14131ab64890Smrg		;;
14149c019ec5Smaya	-mac*)
14155afda2e6Smrg		os=`echo "$os" | sed -e 's|mac|macos|'`
14161ab64890Smrg		;;
14179c019ec5Smaya	-linux-dietlibc)
14189c019ec5Smaya		os=-linux-dietlibc
14191ab64890Smrg		;;
14209c019ec5Smaya	-linux*)
14219c019ec5Smaya		os=`echo $os | sed -e 's|linux|linux-gnu|'`
14221ab64890Smrg		;;
14239c019ec5Smaya	-sunos5*)
14245afda2e6Smrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
14251ab64890Smrg		;;
14269c019ec5Smaya	-sunos6*)
14275afda2e6Smrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
14281ab64890Smrg		;;
14299c019ec5Smaya	-opened*)
14309c019ec5Smaya		os=-openedition
14311ab64890Smrg		;;
14329c019ec5Smaya	-os400*)
14339c019ec5Smaya		os=-os400
14341ab64890Smrg		;;
14359c019ec5Smaya	-wince*)
14369c019ec5Smaya		os=-wince
14371ab64890Smrg		;;
14389c019ec5Smaya	-utek*)
14399c019ec5Smaya		os=-bsd
14401ab64890Smrg		;;
14419c019ec5Smaya	-dynix*)
14429c019ec5Smaya		os=-bsd
14431ab64890Smrg		;;
14449c019ec5Smaya	-acis*)
14459c019ec5Smaya		os=-aos
14465afda2e6Smrg		;;
14479c019ec5Smaya	-atheos*)
14489c019ec5Smaya		os=-atheos
14491ab64890Smrg		;;
14509c019ec5Smaya	-syllable*)
14519c019ec5Smaya		os=-syllable
14521ab64890Smrg		;;
14539c019ec5Smaya	-386bsd)
14549c019ec5Smaya		os=-bsd
14551ab64890Smrg		;;
14569c019ec5Smaya	-ctix* | -uts*)
14579c019ec5Smaya		os=-sysv
14585afda2e6Smrg		;;
14599c019ec5Smaya	-nova*)
14609c019ec5Smaya		os=-rtmk-nova
14619c019ec5Smaya		;;
14629c019ec5Smaya	-ns2)
14639c019ec5Smaya		os=-nextstep2
14649c019ec5Smaya		;;
14659c019ec5Smaya	-nsk*)
14669c019ec5Smaya		os=-nsk
14671ab64890Smrg		;;
14681ab64890Smrg	# Preserve the version number of sinix5.
14699c019ec5Smaya	-sinix5.*)
14701ab64890Smrg		os=`echo $os | sed -e 's|sinix|sysv|'`
14711ab64890Smrg		;;
14729c019ec5Smaya	-sinix*)
14739c019ec5Smaya		os=-sysv4
14741ab64890Smrg		;;
14759c019ec5Smaya	-tpf*)
14769c019ec5Smaya		os=-tpf
14771ab64890Smrg		;;
14789c019ec5Smaya	-triton*)
14799c019ec5Smaya		os=-sysv3
14801ab64890Smrg		;;
14819c019ec5Smaya	-oss*)
14829c019ec5Smaya		os=-sysv3
14831ab64890Smrg		;;
14849c019ec5Smaya	-svr4*)
14859c019ec5Smaya		os=-sysv4
14861ab64890Smrg		;;
14879c019ec5Smaya	-svr3)
14889c019ec5Smaya		os=-sysv3
14891ab64890Smrg		;;
14909c019ec5Smaya	-sysvr4)
14919c019ec5Smaya		os=-sysv4
14921ab64890Smrg		;;
14939c019ec5Smaya	# This must come after -sysvr4.
14949c019ec5Smaya	-sysv*)
14951ab64890Smrg		;;
14969c019ec5Smaya	-ose*)
14979c019ec5Smaya		os=-ose
14981ab64890Smrg		;;
14999c019ec5Smaya	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
15009c019ec5Smaya		os=-mint
15011ab64890Smrg		;;
15029c019ec5Smaya	-zvmoe)
15039c019ec5Smaya		os=-zvmoe
15041ab64890Smrg		;;
15059c019ec5Smaya	-dicos*)
15069c019ec5Smaya		os=-dicos
15071ab64890Smrg		;;
15089c019ec5Smaya	-pikeos*)
15095afda2e6Smrg		# Until real need of OS specific support for
15105afda2e6Smrg		# particular features comes up, bare metal
15115afda2e6Smrg		# configurations are quite functional.
15129c019ec5Smaya		case $basic_machine in
15135afda2e6Smrg		    arm*)
15149c019ec5Smaya			os=-eabi
15155afda2e6Smrg			;;
15165afda2e6Smrg		    *)
15179c019ec5Smaya			os=-elf
15185afda2e6Smrg			;;
15195afda2e6Smrg		esac
15201ab64890Smrg		;;
15219c019ec5Smaya	-nacl*)
152288de56ccSmrg		;;
15239c019ec5Smaya	-ios)
1524eb411b4bSmrg		;;
15259c019ec5Smaya	-none)
15261ab64890Smrg		;;
15271ab64890Smrg	*)
15289c019ec5Smaya		# Get rid of the `-' at the beginning of $os.
15299c019ec5Smaya		os=`echo $os | sed 's/[^-]*-//'`
15305afda2e6Smrg		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
15311ab64890Smrg		exit 1
15321ab64890Smrg		;;
15331ab64890Smrgesac
15341ab64890Smrgelse
15351ab64890Smrg
15361ab64890Smrg# Here we handle the default operating systems that come with various machines.
15371ab64890Smrg# The value should be what the vendor currently ships out the door with their
15381ab64890Smrg# machine or put another way, the most popular os provided with the machine.
15391ab64890Smrg
15401ab64890Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
15411ab64890Smrg# "-sun"), then you have to tell the case statement up towards the top
15421ab64890Smrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
15431ab64890Smrg# will signal an error saying that MANUFACTURER isn't an operating
15441ab64890Smrg# system, and we'll never get to this point.
15451ab64890Smrg
15469c019ec5Smayacase $basic_machine in
1547eb411b4bSmrg	score-*)
15489c019ec5Smaya		os=-elf
15491ab64890Smrg		;;
1550eb411b4bSmrg	spu-*)
15519c019ec5Smaya		os=-elf
15521ab64890Smrg		;;
15531ab64890Smrg	*-acorn)
15549c019ec5Smaya		os=-riscix1.2
15551ab64890Smrg		;;
15561ab64890Smrg	arm*-rebel)
15579c019ec5Smaya		os=-linux
15581ab64890Smrg		;;
15591ab64890Smrg	arm*-semi)
15609c019ec5Smaya		os=-aout
15611ab64890Smrg		;;
1562eb411b4bSmrg	c4x-* | tic4x-*)
15639c019ec5Smaya		os=-coff
1564eb411b4bSmrg		;;
15650f8248bfSmrg	c8051-*)
15669c019ec5Smaya		os=-elf
15670f8248bfSmrg		;;
1568eb411b4bSmrg	hexagon-*)
15699c019ec5Smaya		os=-elf
15701ab64890Smrg		;;
1571e9fcaa8aSmrg	tic54x-*)
15729c019ec5Smaya		os=-coff
1573e9fcaa8aSmrg		;;
1574e9fcaa8aSmrg	tic55x-*)
15759c019ec5Smaya		os=-coff
1576e9fcaa8aSmrg		;;
1577e9fcaa8aSmrg	tic6x-*)
15789c019ec5Smaya		os=-coff
1579e9fcaa8aSmrg		;;
15801ab64890Smrg	# This must come before the *-dec entry.
15811ab64890Smrg	pdp10-*)
15829c019ec5Smaya		os=-tops20
15831ab64890Smrg		;;
15841ab64890Smrg	pdp11-*)
15859c019ec5Smaya		os=-none
15861ab64890Smrg		;;
15871ab64890Smrg	*-dec | vax-*)
15889c019ec5Smaya		os=-ultrix4.2
15891ab64890Smrg		;;
15901ab64890Smrg	m68*-apollo)
15919c019ec5Smaya		os=-domain
15921ab64890Smrg		;;
15931ab64890Smrg	i386-sun)
15949c019ec5Smaya		os=-sunos4.0.2
15951ab64890Smrg		;;
15961ab64890Smrg	m68000-sun)
15979c019ec5Smaya		os=-sunos3
15981ab64890Smrg		;;
15991ab64890Smrg	m68*-cisco)
16009c019ec5Smaya		os=-aout
16011ab64890Smrg		;;
1602eb411b4bSmrg	mep-*)
16039c019ec5Smaya		os=-elf
16041ab64890Smrg		;;
16051ab64890Smrg	mips*-cisco)
16069c019ec5Smaya		os=-elf
16071ab64890Smrg		;;
16081ab64890Smrg	mips*-*)
16099c019ec5Smaya		os=-elf
16101ab64890Smrg		;;
16111ab64890Smrg	or32-*)
16129c019ec5Smaya		os=-coff
16131ab64890Smrg		;;
16141ab64890Smrg	*-tti)	# must be before sparc entry or we get the wrong os.
16159c019ec5Smaya		os=-sysv3
16161ab64890Smrg		;;
16171ab64890Smrg	sparc-* | *-sun)
16189c019ec5Smaya		os=-sunos4.1.1
16191ab64890Smrg		;;
162038ae11fcSmrg	pru-*)
16219c019ec5Smaya		os=-elf
162238ae11fcSmrg		;;
16231ab64890Smrg	*-be)
16249c019ec5Smaya		os=-beos
16251ab64890Smrg		;;
16261ab64890Smrg	*-ibm)
16279c019ec5Smaya		os=-aix
16281ab64890Smrg		;;
1629eb411b4bSmrg	*-knuth)
16309c019ec5Smaya		os=-mmixware
16311ab64890Smrg		;;
16321ab64890Smrg	*-wec)
16339c019ec5Smaya		os=-proelf
16341ab64890Smrg		;;
16351ab64890Smrg	*-winbond)
16369c019ec5Smaya		os=-proelf
16371ab64890Smrg		;;
16381ab64890Smrg	*-oki)
16399c019ec5Smaya		os=-proelf
16401ab64890Smrg		;;
16411ab64890Smrg	*-hp)
16429c019ec5Smaya		os=-hpux
16431ab64890Smrg		;;
16441ab64890Smrg	*-hitachi)
16459c019ec5Smaya		os=-hiux
16461ab64890Smrg		;;
16471ab64890Smrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
16489c019ec5Smaya		os=-sysv
16491ab64890Smrg		;;
16501ab64890Smrg	*-cbm)
16519c019ec5Smaya		os=-amigaos
16521ab64890Smrg		;;
16531ab64890Smrg	*-dg)
16549c019ec5Smaya		os=-dgux
16551ab64890Smrg		;;
16561ab64890Smrg	*-dolphin)
16579c019ec5Smaya		os=-sysv3
16581ab64890Smrg		;;
16591ab64890Smrg	m68k-ccur)
16609c019ec5Smaya		os=-rtu
16611ab64890Smrg		;;
16621ab64890Smrg	m88k-omron*)
16639c019ec5Smaya		os=-luna
16641ab64890Smrg		;;
16655afda2e6Smrg	*-next)
16669c019ec5Smaya		os=-nextstep
16671ab64890Smrg		;;
16681ab64890Smrg	*-sequent)
16699c019ec5Smaya		os=-ptx
16701ab64890Smrg		;;
16711ab64890Smrg	*-crds)
16729c019ec5Smaya		os=-unos
16731ab64890Smrg		;;
16741ab64890Smrg	*-ns)
16759c019ec5Smaya		os=-genix
16761ab64890Smrg		;;
16771ab64890Smrg	i370-*)
16789c019ec5Smaya		os=-mvs
16791ab64890Smrg		;;
16801ab64890Smrg	*-gould)
16819c019ec5Smaya		os=-sysv
16821ab64890Smrg		;;
16831ab64890Smrg	*-highlevel)
16849c019ec5Smaya		os=-bsd
16851ab64890Smrg		;;
16861ab64890Smrg	*-encore)
16879c019ec5Smaya		os=-bsd
16881ab64890Smrg		;;
16891ab64890Smrg	*-sgi)
16909c019ec5Smaya		os=-irix
16911ab64890Smrg		;;
16921ab64890Smrg	*-siemens)
16939c019ec5Smaya		os=-sysv4
16941ab64890Smrg		;;
16951ab64890Smrg	*-masscomp)
16969c019ec5Smaya		os=-rtu
16971ab64890Smrg		;;
16981ab64890Smrg	f30[01]-fujitsu | f700-fujitsu)
16999c019ec5Smaya		os=-uxpv
17001ab64890Smrg		;;
17011ab64890Smrg	*-rom68k)
17029c019ec5Smaya		os=-coff
17031ab64890Smrg		;;
17041ab64890Smrg	*-*bug)
17059c019ec5Smaya		os=-coff
17061ab64890Smrg		;;
17071ab64890Smrg	*-apple)
17089c019ec5Smaya		os=-macos
17091ab64890Smrg		;;
17101ab64890Smrg	*-atari*)
17119c019ec5Smaya		os=-mint
17121ab64890Smrg		;;
17131ab64890Smrg	*)
17149c019ec5Smaya		os=-none
17151ab64890Smrg		;;
17161ab64890Smrgesac
17171ab64890Smrgfi
17181ab64890Smrg
17191ab64890Smrg# Here we handle the case where we know the os, and the CPU type, but not the
17201ab64890Smrg# manufacturer.  We pick the logical manufacturer.
17219c019ec5Smayavendor=unknown
17229c019ec5Smayacase $basic_machine in
17239c019ec5Smaya	*-unknown)
17241ab64890Smrg		case $os in
17259c019ec5Smaya			-riscix*)
17261ab64890Smrg				vendor=acorn
17271ab64890Smrg				;;
17289c019ec5Smaya			-sunos*)
17291ab64890Smrg				vendor=sun
17301ab64890Smrg				;;
17319c019ec5Smaya			-cnk*|-aix*)
17321ab64890Smrg				vendor=ibm
17331ab64890Smrg				;;
17349c019ec5Smaya			-beos*)
17351ab64890Smrg				vendor=be
17361ab64890Smrg				;;
17379c019ec5Smaya			-hpux*)
17381ab64890Smrg				vendor=hp
17391ab64890Smrg				;;
17409c019ec5Smaya			-mpeix*)
17411ab64890Smrg				vendor=hp
17421ab64890Smrg				;;
17439c019ec5Smaya			-hiux*)
17441ab64890Smrg				vendor=hitachi
17451ab64890Smrg				;;
17469c019ec5Smaya			-unos*)
17471ab64890Smrg				vendor=crds
17481ab64890Smrg				;;
17499c019ec5Smaya			-dgux*)
17501ab64890Smrg				vendor=dg
17511ab64890Smrg				;;
17529c019ec5Smaya			-luna*)
17531ab64890Smrg				vendor=omron
17541ab64890Smrg				;;
17559c019ec5Smaya			-genix*)
17561ab64890Smrg				vendor=ns
17571ab64890Smrg				;;
17589c019ec5Smaya			-mvs* | -opened*)
17591ab64890Smrg				vendor=ibm
17601ab64890Smrg				;;
17619c019ec5Smaya			-os400*)
17621ab64890Smrg				vendor=ibm
17631ab64890Smrg				;;
17649c019ec5Smaya			-ptx*)
17651ab64890Smrg				vendor=sequent
17661ab64890Smrg				;;
17679c019ec5Smaya			-tpf*)
17681ab64890Smrg				vendor=ibm
17691ab64890Smrg				;;
17709c019ec5Smaya			-vxsim* | -vxworks* | -windiss*)
17711ab64890Smrg				vendor=wrs
17721ab64890Smrg				;;
17739c019ec5Smaya			-aux*)
17741ab64890Smrg				vendor=apple
17751ab64890Smrg				;;
17769c019ec5Smaya			-hms*)
17771ab64890Smrg				vendor=hitachi
17781ab64890Smrg				;;
17799c019ec5Smaya			-mpw* | -macos*)
17801ab64890Smrg				vendor=apple
17811ab64890Smrg				;;
17829c019ec5Smaya			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
17831ab64890Smrg				vendor=atari
17841ab64890Smrg				;;
17859c019ec5Smaya			-vos*)
17861ab64890Smrg				vendor=stratus
17871ab64890Smrg				;;
17881ab64890Smrg		esac
17899c019ec5Smaya		basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
17901ab64890Smrg		;;
17911ab64890Smrgesac
17921ab64890Smrg
17939c019ec5Smayaecho "$basic_machine$os"
17941ab64890Smrgexit
17951ab64890Smrg
17961ab64890Smrg# Local variables:
17979c019ec5Smaya# eval: (add-hook 'write-file-functions 'time-stamp)
17981ab64890Smrg# time-stamp-start: "timestamp='"
17991ab64890Smrg# time-stamp-format: "%:y-%02m-%02d"
18001ab64890Smrg# time-stamp-end: "'"
18011ab64890Smrg# End:
1802