config.sub revision 6c3c2bce
17a0395d0Smrg#! /bin/sh
27a0395d0Smrg# Configuration validation subroutine script.
36c3c2bceSmrg#   Copyright 1992-2018 Free Software Foundation, Inc.
47a0395d0Smrg
56c3c2bceSmrgtimestamp='2018-08-29'
67a0395d0Smrg
79a011757Smrg# This file is free software; you can redistribute it and/or modify it
89a011757Smrg# under the terms of the GNU General Public License as published by
99a011757Smrg# the Free Software Foundation; either version 3 of the License, or
107a0395d0Smrg# (at your option) any later version.
117a0395d0Smrg#
129a011757Smrg# This program is distributed in the hope that it will be useful, but
139a011757Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
149a011757Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
159a011757Smrg# General Public License for more details.
167a0395d0Smrg#
177a0395d0Smrg# You should have received a copy of the GNU General Public License
186c3c2bceSmrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
197a0395d0Smrg#
207a0395d0Smrg# As a special exception to the GNU General Public License, if you
217a0395d0Smrg# distribute this file as part of a program that contains a
227a0395d0Smrg# configuration script generated by Autoconf, you may include it under
239a011757Smrg# the same distribution terms that you use for the rest of that
249a011757Smrg# program.  This Exception is an additional permission under section 7
259a011757Smrg# of the GNU General Public License, version 3 ("GPLv3").
267a0395d0Smrg
277a0395d0Smrg
2840c5344fSmrg# Please send patches to <config-patches@gnu.org>.
297a0395d0Smrg#
307a0395d0Smrg# Configuration subroutine to validate and canonicalize a configuration type.
317a0395d0Smrg# Supply the specified configuration type as an argument.
327a0395d0Smrg# If it is invalid, we print an error message on stderr and exit with code 1.
337a0395d0Smrg# Otherwise, we print the canonical config type on stdout and succeed.
347a0395d0Smrg
352adc0320Smrg# You can get the latest version of this script from:
366c3c2bceSmrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
372adc0320Smrg
387a0395d0Smrg# This file is supposed to be the same for all GNU packages
397a0395d0Smrg# and recognize all the CPU types, system types and aliases
407a0395d0Smrg# that are meaningful with *any* GNU software.
417a0395d0Smrg# Each package is responsible for reporting which valid configurations
427a0395d0Smrg# it does not support.  The user should be able to distinguish
437a0395d0Smrg# a failure to support a valid configuration from a meaningless
447a0395d0Smrg# configuration.
457a0395d0Smrg
467a0395d0Smrg# The goal of this file is to map all the various variations of a given
477a0395d0Smrg# machine specification into a single specification in the form:
487a0395d0Smrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
497a0395d0Smrg# or in some cases, the newer four-part form:
507a0395d0Smrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
517a0395d0Smrg# It is wrong to echo any other type of specification.
527a0395d0Smrg
537a0395d0Smrgme=`echo "$0" | sed -e 's,.*/,,'`
547a0395d0Smrg
557a0395d0Smrgusage="\
5640c5344fSmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
577a0395d0Smrg
587a0395d0SmrgCanonicalize a configuration name.
597a0395d0Smrg
606c3c2bceSmrgOptions:
617a0395d0Smrg  -h, --help         print this help, then exit
627a0395d0Smrg  -t, --time-stamp   print date of last modification, then exit
637a0395d0Smrg  -v, --version      print version number, then exit
647a0395d0Smrg
657a0395d0SmrgReport bugs and patches to <config-patches@gnu.org>."
667a0395d0Smrg
677a0395d0Smrgversion="\
687a0395d0SmrgGNU config.sub ($timestamp)
697a0395d0Smrg
706c3c2bceSmrgCopyright 1992-2018 Free Software Foundation, Inc.
717a0395d0Smrg
727a0395d0SmrgThis is free software; see the source for copying conditions.  There is NO
737a0395d0Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
747a0395d0Smrg
757a0395d0Smrghelp="
767a0395d0SmrgTry \`$me --help' for more information."
777a0395d0Smrg
787a0395d0Smrg# Parse command line
797a0395d0Smrgwhile test $# -gt 0 ; do
807a0395d0Smrg  case $1 in
817a0395d0Smrg    --time-stamp | --time* | -t )
827a0395d0Smrg       echo "$timestamp" ; exit ;;
837a0395d0Smrg    --version | -v )
847a0395d0Smrg       echo "$version" ; exit ;;
857a0395d0Smrg    --help | --h* | -h )
867a0395d0Smrg       echo "$usage"; exit ;;
877a0395d0Smrg    -- )     # Stop option processing
887a0395d0Smrg       shift; break ;;
897a0395d0Smrg    - )	# Use stdin as input.
907a0395d0Smrg       break ;;
917a0395d0Smrg    -* )
927a0395d0Smrg       echo "$me: invalid option $1$help"
937a0395d0Smrg       exit 1 ;;
947a0395d0Smrg
957a0395d0Smrg    *local*)
967a0395d0Smrg       # First pass through any local machine types.
976c3c2bceSmrg       echo "$1"
987a0395d0Smrg       exit ;;
997a0395d0Smrg
1007a0395d0Smrg    * )
1017a0395d0Smrg       break ;;
1027a0395d0Smrg  esac
1037a0395d0Smrgdone
1047a0395d0Smrg
1057a0395d0Smrgcase $# in
1067a0395d0Smrg 0) echo "$me: missing argument$help" >&2
1077a0395d0Smrg    exit 1;;
1087a0395d0Smrg 1) ;;
1097a0395d0Smrg *) echo "$me: too many arguments$help" >&2
1107a0395d0Smrg    exit 1;;
1117a0395d0Smrgesac
1127a0395d0Smrg
1136c3c2bceSmrg# Split fields of configuration type
1146c3c2bceSmrgIFS="-" read -r field1 field2 field3 field4 <<EOF
1156c3c2bceSmrg$1
1166c3c2bceSmrgEOF
1177a0395d0Smrg
1186c3c2bceSmrg# Separate into logical components for further validation
1196c3c2bceSmrgcase $1 in
1206c3c2bceSmrg	*-*-*-*-*)
1216c3c2bceSmrg		echo Invalid configuration \`"$1"\': more than four components >&2
1226c3c2bceSmrg		exit 1
1237a0395d0Smrg		;;
1246c3c2bceSmrg	*-*-*-*)
1256c3c2bceSmrg		basic_machine=$field1-$field2
1266c3c2bceSmrg		os=$field3-$field4
1277a0395d0Smrg		;;
1286c3c2bceSmrg	*-*-*)
1296c3c2bceSmrg		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
1306c3c2bceSmrg		# parts
1316c3c2bceSmrg		maybe_os=$field2-$field3
1326c3c2bceSmrg		case $maybe_os in
1336c3c2bceSmrg			nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
1346c3c2bceSmrg			| linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
1356c3c2bceSmrg			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
1366c3c2bceSmrg			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
1376c3c2bceSmrg			| storm-chaos* | os2-emx* | rtmk-nova*)
1386c3c2bceSmrg				basic_machine=$field1
1396c3c2bceSmrg				os=$maybe_os
1406c3c2bceSmrg				;;
1416c3c2bceSmrg			android-linux)
1426c3c2bceSmrg				basic_machine=$field1-unknown
1436c3c2bceSmrg				os=linux-android
1446c3c2bceSmrg				;;
1456c3c2bceSmrg			*)
1466c3c2bceSmrg				basic_machine=$field1-$field2
1476c3c2bceSmrg				os=$field3
1486c3c2bceSmrg				;;
1496c3c2bceSmrg		esac
1507a0395d0Smrg		;;
1516c3c2bceSmrg	*-*)
1526c3c2bceSmrg		# A lone config we happen to match not fitting any patern
1536c3c2bceSmrg		case $field1-$field2 in
1546c3c2bceSmrg			decstation-3100)
1556c3c2bceSmrg				basic_machine=mips-dec
1566c3c2bceSmrg				os=
1576c3c2bceSmrg				;;
1586c3c2bceSmrg			*-*)
1596c3c2bceSmrg				# Second component is usually, but not always the OS
1606c3c2bceSmrg				case $field2 in
1616c3c2bceSmrg					# Prevent following clause from handling this valid os
1626c3c2bceSmrg					sun*os*)
1636c3c2bceSmrg						basic_machine=$field1
1646c3c2bceSmrg						os=$field2
1656c3c2bceSmrg						;;
1666c3c2bceSmrg					# Manufacturers
1676c3c2bceSmrg					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
1686c3c2bceSmrg					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
1696c3c2bceSmrg					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
1706c3c2bceSmrg					| convergent* | ncr* | news | 32* | 3600* | 3100* \
1716c3c2bceSmrg					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
1726c3c2bceSmrg					| ultra | tti* | harris | dolphin | highlevel | gould \
1736c3c2bceSmrg					| cbm | ns | masscomp | apple | axis | knuth | cray \
1746c3c2bceSmrg					| microblaze* | sim | cisco \
1756c3c2bceSmrg					| oki | wec | wrs | winbond)
1766c3c2bceSmrg						basic_machine=$field1-$field2
1776c3c2bceSmrg						os=
1786c3c2bceSmrg						;;
1796c3c2bceSmrg					*)
1806c3c2bceSmrg						basic_machine=$field1
1816c3c2bceSmrg						os=$field2
1826c3c2bceSmrg						;;
1836c3c2bceSmrg				esac
1846c3c2bceSmrg			;;
1856c3c2bceSmrg		esac
1867a0395d0Smrg		;;
1876c3c2bceSmrg	*)
1886c3c2bceSmrg		# Convert single-component short-hands not valid as part of
1896c3c2bceSmrg		# multi-component configurations.
1906c3c2bceSmrg		case $field1 in
1916c3c2bceSmrg			386bsd)
1926c3c2bceSmrg				basic_machine=i386-pc
1936c3c2bceSmrg				os=bsd
1946c3c2bceSmrg				;;
1956c3c2bceSmrg			a29khif)
1966c3c2bceSmrg				basic_machine=a29k-amd
1976c3c2bceSmrg				os=udi
1986c3c2bceSmrg				;;
1996c3c2bceSmrg			adobe68k)
2006c3c2bceSmrg				basic_machine=m68010-adobe
2016c3c2bceSmrg				os=scout
2026c3c2bceSmrg				;;
2036c3c2bceSmrg			alliant)
2046c3c2bceSmrg				basic_machine=fx80-alliant
2056c3c2bceSmrg				os=
2066c3c2bceSmrg				;;
2076c3c2bceSmrg			altos | altos3068)
2086c3c2bceSmrg				basic_machine=m68k-altos
2096c3c2bceSmrg				os=
2106c3c2bceSmrg				;;
2116c3c2bceSmrg			am29k)
2126c3c2bceSmrg				basic_machine=a29k-none
2136c3c2bceSmrg				os=bsd
2146c3c2bceSmrg				;;
2156c3c2bceSmrg			amdahl)
2166c3c2bceSmrg				basic_machine=580-amdahl
2176c3c2bceSmrg				os=sysv
2186c3c2bceSmrg				;;
2196c3c2bceSmrg			amiga)
2206c3c2bceSmrg				basic_machine=m68k-unknown
2216c3c2bceSmrg				os=
2226c3c2bceSmrg				;;
2236c3c2bceSmrg			amigaos | amigados)
2246c3c2bceSmrg				basic_machine=m68k-unknown
2256c3c2bceSmrg				os=amigaos
2266c3c2bceSmrg				;;
2276c3c2bceSmrg			amigaunix | amix)
2286c3c2bceSmrg				basic_machine=m68k-unknown
2296c3c2bceSmrg				os=sysv4
2306c3c2bceSmrg				;;
2316c3c2bceSmrg			apollo68)
2326c3c2bceSmrg				basic_machine=m68k-apollo
2336c3c2bceSmrg				os=sysv
2346c3c2bceSmrg				;;
2356c3c2bceSmrg			apollo68bsd)
2366c3c2bceSmrg				basic_machine=m68k-apollo
2376c3c2bceSmrg				os=bsd
2386c3c2bceSmrg				;;
2396c3c2bceSmrg			aros)
2406c3c2bceSmrg				basic_machine=i386-pc
2416c3c2bceSmrg				os=aros
2426c3c2bceSmrg				;;
2436c3c2bceSmrg			aux)
2446c3c2bceSmrg				basic_machine=m68k-apple
2456c3c2bceSmrg				os=aux
2466c3c2bceSmrg				;;
2476c3c2bceSmrg			balance)
2486c3c2bceSmrg				basic_machine=ns32k-sequent
2496c3c2bceSmrg				os=dynix
2506c3c2bceSmrg				;;
2516c3c2bceSmrg			blackfin)
2526c3c2bceSmrg				basic_machine=bfin-unknown
2536c3c2bceSmrg				os=linux
2546c3c2bceSmrg				;;
2556c3c2bceSmrg			cegcc)
2566c3c2bceSmrg				basic_machine=arm-unknown
2576c3c2bceSmrg				os=cegcc
2586c3c2bceSmrg				;;
2596c3c2bceSmrg			convex-c1)
2606c3c2bceSmrg				basic_machine=c1-convex
2616c3c2bceSmrg				os=bsd
2626c3c2bceSmrg				;;
2636c3c2bceSmrg			convex-c2)
2646c3c2bceSmrg				basic_machine=c2-convex
2656c3c2bceSmrg				os=bsd
2666c3c2bceSmrg				;;
2676c3c2bceSmrg			convex-c32)
2686c3c2bceSmrg				basic_machine=c32-convex
2696c3c2bceSmrg				os=bsd
2706c3c2bceSmrg				;;
2716c3c2bceSmrg			convex-c34)
2726c3c2bceSmrg				basic_machine=c34-convex
2736c3c2bceSmrg				os=bsd
2746c3c2bceSmrg				;;
2756c3c2bceSmrg			convex-c38)
2766c3c2bceSmrg				basic_machine=c38-convex
2776c3c2bceSmrg				os=bsd
2786c3c2bceSmrg				;;
2796c3c2bceSmrg			cray)
2806c3c2bceSmrg				basic_machine=j90-cray
2816c3c2bceSmrg				os=unicos
2826c3c2bceSmrg				;;
2836c3c2bceSmrg			crds | unos)
2846c3c2bceSmrg				basic_machine=m68k-crds
2856c3c2bceSmrg				os=
2866c3c2bceSmrg				;;
2876c3c2bceSmrg			da30)
2886c3c2bceSmrg				basic_machine=m68k-da30
2896c3c2bceSmrg				os=
2906c3c2bceSmrg				;;
2916c3c2bceSmrg			decstation | pmax | pmin | dec3100 | decstatn)
2926c3c2bceSmrg				basic_machine=mips-dec
2936c3c2bceSmrg				os=
2946c3c2bceSmrg				;;
2956c3c2bceSmrg			delta88)
2966c3c2bceSmrg				basic_machine=m88k-motorola
2976c3c2bceSmrg				os=sysv3
2986c3c2bceSmrg				;;
2996c3c2bceSmrg			dicos)
3006c3c2bceSmrg				basic_machine=i686-pc
3016c3c2bceSmrg				os=dicos
3026c3c2bceSmrg				;;
3036c3c2bceSmrg			djgpp)
3046c3c2bceSmrg				basic_machine=i586-pc
3056c3c2bceSmrg				os=msdosdjgpp
3066c3c2bceSmrg				;;
3076c3c2bceSmrg			ebmon29k)
3086c3c2bceSmrg				basic_machine=a29k-amd
3096c3c2bceSmrg				os=ebmon
3106c3c2bceSmrg				;;
3116c3c2bceSmrg			es1800 | OSE68k | ose68k | ose | OSE)
3126c3c2bceSmrg				basic_machine=m68k-ericsson
3136c3c2bceSmrg				os=ose
3146c3c2bceSmrg				;;
3156c3c2bceSmrg			gmicro)
3166c3c2bceSmrg				basic_machine=tron-gmicro
3176c3c2bceSmrg				os=sysv
3186c3c2bceSmrg				;;
3196c3c2bceSmrg			go32)
3206c3c2bceSmrg				basic_machine=i386-pc
3216c3c2bceSmrg				os=go32
3226c3c2bceSmrg				;;
3236c3c2bceSmrg			h8300hms)
3246c3c2bceSmrg				basic_machine=h8300-hitachi
3256c3c2bceSmrg				os=hms
3266c3c2bceSmrg				;;
3276c3c2bceSmrg			h8300xray)
3286c3c2bceSmrg				basic_machine=h8300-hitachi
3296c3c2bceSmrg				os=xray
3306c3c2bceSmrg				;;
3316c3c2bceSmrg			h8500hms)
3326c3c2bceSmrg				basic_machine=h8500-hitachi
3336c3c2bceSmrg				os=hms
3346c3c2bceSmrg				;;
3356c3c2bceSmrg			harris)
3366c3c2bceSmrg				basic_machine=m88k-harris
3376c3c2bceSmrg				os=sysv3
3386c3c2bceSmrg				;;
3396c3c2bceSmrg			hp300)
3406c3c2bceSmrg				basic_machine=m68k-hp
3416c3c2bceSmrg				;;
3426c3c2bceSmrg			hp300bsd)
3436c3c2bceSmrg				basic_machine=m68k-hp
3446c3c2bceSmrg				os=bsd
3456c3c2bceSmrg				;;
3466c3c2bceSmrg			hp300hpux)
3476c3c2bceSmrg				basic_machine=m68k-hp
3486c3c2bceSmrg				os=hpux
3496c3c2bceSmrg				;;
3506c3c2bceSmrg			hppaosf)
3516c3c2bceSmrg				basic_machine=hppa1.1-hp
3526c3c2bceSmrg				os=osf
3536c3c2bceSmrg				;;
3546c3c2bceSmrg			hppro)
3556c3c2bceSmrg				basic_machine=hppa1.1-hp
3566c3c2bceSmrg				os=proelf
3576c3c2bceSmrg				;;
3586c3c2bceSmrg			i386mach)
3596c3c2bceSmrg				basic_machine=i386-mach
3606c3c2bceSmrg				os=mach
3616c3c2bceSmrg				;;
3626c3c2bceSmrg			vsta)
3636c3c2bceSmrg				basic_machine=i386-pc
3646c3c2bceSmrg				os=vsta
3656c3c2bceSmrg				;;
3666c3c2bceSmrg			isi68 | isi)
3676c3c2bceSmrg				basic_machine=m68k-isi
3686c3c2bceSmrg				os=sysv
3696c3c2bceSmrg				;;
3706c3c2bceSmrg			m68knommu)
3716c3c2bceSmrg				basic_machine=m68k-unknown
3726c3c2bceSmrg				os=linux
3736c3c2bceSmrg				;;
3746c3c2bceSmrg			magnum | m3230)
3756c3c2bceSmrg				basic_machine=mips-mips
3766c3c2bceSmrg				os=sysv
3776c3c2bceSmrg				;;
3786c3c2bceSmrg			merlin)
3796c3c2bceSmrg				basic_machine=ns32k-utek
3806c3c2bceSmrg				os=sysv
3816c3c2bceSmrg				;;
3826c3c2bceSmrg			mingw64)
3836c3c2bceSmrg				basic_machine=x86_64-pc
3846c3c2bceSmrg				os=mingw64
3856c3c2bceSmrg				;;
3866c3c2bceSmrg			mingw32)
3876c3c2bceSmrg				basic_machine=i686-pc
3886c3c2bceSmrg				os=mingw32
3896c3c2bceSmrg				;;
3906c3c2bceSmrg			mingw32ce)
3916c3c2bceSmrg				basic_machine=arm-unknown
3926c3c2bceSmrg				os=mingw32ce
3936c3c2bceSmrg				;;
3946c3c2bceSmrg			monitor)
3956c3c2bceSmrg				basic_machine=m68k-rom68k
3966c3c2bceSmrg				os=coff
3976c3c2bceSmrg				;;
3986c3c2bceSmrg			morphos)
3996c3c2bceSmrg				basic_machine=powerpc-unknown
4006c3c2bceSmrg				os=morphos
4016c3c2bceSmrg				;;
4026c3c2bceSmrg			moxiebox)
4036c3c2bceSmrg				basic_machine=moxie-unknown
4046c3c2bceSmrg				os=moxiebox
4056c3c2bceSmrg				;;
4066c3c2bceSmrg			msdos)
4076c3c2bceSmrg				basic_machine=i386-pc
4086c3c2bceSmrg				os=msdos
4096c3c2bceSmrg				;;
4106c3c2bceSmrg			msys)
4116c3c2bceSmrg				basic_machine=i686-pc
4126c3c2bceSmrg				os=msys
4136c3c2bceSmrg				;;
4146c3c2bceSmrg			mvs)
4156c3c2bceSmrg				basic_machine=i370-ibm
4166c3c2bceSmrg				os=mvs
4176c3c2bceSmrg				;;
4186c3c2bceSmrg			nacl)
4196c3c2bceSmrg				basic_machine=le32-unknown
4206c3c2bceSmrg				os=nacl
4216c3c2bceSmrg				;;
4226c3c2bceSmrg			ncr3000)
4236c3c2bceSmrg				basic_machine=i486-ncr
4246c3c2bceSmrg				os=sysv4
4256c3c2bceSmrg				;;
4266c3c2bceSmrg			netbsd386)
4276c3c2bceSmrg				basic_machine=i386-pc
4286c3c2bceSmrg				os=netbsd
4296c3c2bceSmrg				;;
4306c3c2bceSmrg			netwinder)
4316c3c2bceSmrg				basic_machine=armv4l-rebel
4326c3c2bceSmrg				os=linux
4336c3c2bceSmrg				;;
4346c3c2bceSmrg			news | news700 | news800 | news900)
4356c3c2bceSmrg				basic_machine=m68k-sony
4366c3c2bceSmrg				os=newsos
4376c3c2bceSmrg				;;
4386c3c2bceSmrg			news1000)
4396c3c2bceSmrg				basic_machine=m68030-sony
4406c3c2bceSmrg				os=newsos
4416c3c2bceSmrg				;;
4426c3c2bceSmrg			necv70)
4436c3c2bceSmrg				basic_machine=v70-nec
4446c3c2bceSmrg				os=sysv
4456c3c2bceSmrg				;;
4466c3c2bceSmrg			nh3000)
4476c3c2bceSmrg				basic_machine=m68k-harris
4486c3c2bceSmrg				os=cxux
4496c3c2bceSmrg				;;
4506c3c2bceSmrg			nh[45]000)
4516c3c2bceSmrg				basic_machine=m88k-harris
4526c3c2bceSmrg				os=cxux
4536c3c2bceSmrg				;;
4546c3c2bceSmrg			nindy960)
4556c3c2bceSmrg				basic_machine=i960-intel
4566c3c2bceSmrg				os=nindy
4576c3c2bceSmrg				;;
4586c3c2bceSmrg			mon960)
4596c3c2bceSmrg				basic_machine=i960-intel
4606c3c2bceSmrg				os=mon960
4616c3c2bceSmrg				;;
4626c3c2bceSmrg			nonstopux)
4636c3c2bceSmrg				basic_machine=mips-compaq
4646c3c2bceSmrg				os=nonstopux
4656c3c2bceSmrg				;;
4666c3c2bceSmrg			os400)
4676c3c2bceSmrg				basic_machine=powerpc-ibm
4686c3c2bceSmrg				os=os400
4696c3c2bceSmrg				;;
4706c3c2bceSmrg			OSE68000 | ose68000)
4716c3c2bceSmrg				basic_machine=m68000-ericsson
4726c3c2bceSmrg				os=ose
4736c3c2bceSmrg				;;
4746c3c2bceSmrg			os68k)
4756c3c2bceSmrg				basic_machine=m68k-none
4766c3c2bceSmrg				os=os68k
4776c3c2bceSmrg				;;
4786c3c2bceSmrg			paragon)
4796c3c2bceSmrg				basic_machine=i860-intel
4806c3c2bceSmrg				os=osf
4816c3c2bceSmrg				;;
4826c3c2bceSmrg			parisc)
4836c3c2bceSmrg				basic_machine=hppa-unknown
4846c3c2bceSmrg				os=linux
4856c3c2bceSmrg				;;
4866c3c2bceSmrg			pw32)
4876c3c2bceSmrg				basic_machine=i586-unknown
4886c3c2bceSmrg				os=pw32
4896c3c2bceSmrg				;;
4906c3c2bceSmrg			rdos | rdos64)
4916c3c2bceSmrg				basic_machine=x86_64-pc
4926c3c2bceSmrg				os=rdos
4936c3c2bceSmrg				;;
4946c3c2bceSmrg			rdos32)
4956c3c2bceSmrg				basic_machine=i386-pc
4966c3c2bceSmrg				os=rdos
4976c3c2bceSmrg				;;
4986c3c2bceSmrg			rom68k)
4996c3c2bceSmrg				basic_machine=m68k-rom68k
5006c3c2bceSmrg				os=coff
5016c3c2bceSmrg				;;
5026c3c2bceSmrg			sa29200)
5036c3c2bceSmrg				basic_machine=a29k-amd
5046c3c2bceSmrg				os=udi
5056c3c2bceSmrg				;;
5066c3c2bceSmrg			sei)
5076c3c2bceSmrg				basic_machine=mips-sei
5086c3c2bceSmrg				os=seiux
5096c3c2bceSmrg				;;
5106c3c2bceSmrg			sequent)
5116c3c2bceSmrg				basic_machine=i386-sequent
5126c3c2bceSmrg				os=
5136c3c2bceSmrg				;;
5146c3c2bceSmrg			sps7)
5156c3c2bceSmrg				basic_machine=m68k-bull
5166c3c2bceSmrg				os=sysv2
5176c3c2bceSmrg				;;
5186c3c2bceSmrg			st2000)
5196c3c2bceSmrg				basic_machine=m68k-tandem
5206c3c2bceSmrg				os=
5216c3c2bceSmrg				;;
5226c3c2bceSmrg			stratus)
5236c3c2bceSmrg				basic_machine=i860-stratus
5246c3c2bceSmrg				os=sysv4
5256c3c2bceSmrg				;;
5266c3c2bceSmrg			sun2)
5276c3c2bceSmrg				basic_machine=m68000-sun
5286c3c2bceSmrg				os=
5296c3c2bceSmrg				;;
5306c3c2bceSmrg			sun2os3)
5316c3c2bceSmrg				basic_machine=m68000-sun
5326c3c2bceSmrg				os=sunos3
5336c3c2bceSmrg				;;
5346c3c2bceSmrg			sun2os4)
5356c3c2bceSmrg				basic_machine=m68000-sun
5366c3c2bceSmrg				os=sunos4
5376c3c2bceSmrg				;;
5386c3c2bceSmrg			sun3)
5396c3c2bceSmrg				basic_machine=m68k-sun
5406c3c2bceSmrg				os=
5416c3c2bceSmrg				;;
5426c3c2bceSmrg			sun3os3)
5436c3c2bceSmrg				basic_machine=m68k-sun
5446c3c2bceSmrg				os=sunos3
5456c3c2bceSmrg				;;
5466c3c2bceSmrg			sun3os4)
5476c3c2bceSmrg				basic_machine=m68k-sun
5486c3c2bceSmrg				os=sunos4
5496c3c2bceSmrg				;;
5506c3c2bceSmrg			sun4)
5516c3c2bceSmrg				basic_machine=sparc-sun
5526c3c2bceSmrg				os=
5536c3c2bceSmrg				;;
5546c3c2bceSmrg			sun4os3)
5556c3c2bceSmrg				basic_machine=sparc-sun
5566c3c2bceSmrg				os=sunos3
5576c3c2bceSmrg				;;
5586c3c2bceSmrg			sun4os4)
5596c3c2bceSmrg				basic_machine=sparc-sun
5606c3c2bceSmrg				os=sunos4
5616c3c2bceSmrg				;;
5626c3c2bceSmrg			sun4sol2)
5636c3c2bceSmrg				basic_machine=sparc-sun
5646c3c2bceSmrg				os=solaris2
5656c3c2bceSmrg				;;
5666c3c2bceSmrg			sun386 | sun386i | roadrunner)
5676c3c2bceSmrg				basic_machine=i386-sun
5686c3c2bceSmrg				os=
5696c3c2bceSmrg				;;
5706c3c2bceSmrg			sv1)
5716c3c2bceSmrg				basic_machine=sv1-cray
5726c3c2bceSmrg				os=unicos
5736c3c2bceSmrg				;;
5746c3c2bceSmrg			symmetry)
5756c3c2bceSmrg				basic_machine=i386-sequent
5766c3c2bceSmrg				os=dynix
5776c3c2bceSmrg				;;
5786c3c2bceSmrg			t3e)
5796c3c2bceSmrg				basic_machine=alphaev5-cray
5806c3c2bceSmrg				os=unicos
5816c3c2bceSmrg				;;
5826c3c2bceSmrg			t90)
5836c3c2bceSmrg				basic_machine=t90-cray
5846c3c2bceSmrg				os=unicos
5856c3c2bceSmrg				;;
5866c3c2bceSmrg			toad1)
5876c3c2bceSmrg				basic_machine=pdp10-xkl
5886c3c2bceSmrg				os=tops20
5896c3c2bceSmrg				;;
5906c3c2bceSmrg			tpf)
5916c3c2bceSmrg				basic_machine=s390x-ibm
5926c3c2bceSmrg				os=tpf
5936c3c2bceSmrg				;;
5946c3c2bceSmrg			udi29k)
5956c3c2bceSmrg				basic_machine=a29k-amd
5966c3c2bceSmrg				os=udi
5976c3c2bceSmrg				;;
5986c3c2bceSmrg			ultra3)
5996c3c2bceSmrg				basic_machine=a29k-nyu
6006c3c2bceSmrg				os=sym1
6016c3c2bceSmrg				;;
6026c3c2bceSmrg			v810 | necv810)
6036c3c2bceSmrg				basic_machine=v810-nec
6046c3c2bceSmrg				os=none
6056c3c2bceSmrg				;;
6066c3c2bceSmrg			vaxv)
6076c3c2bceSmrg				basic_machine=vax-dec
6086c3c2bceSmrg				os=sysv
6096c3c2bceSmrg				;;
6106c3c2bceSmrg			vms)
6116c3c2bceSmrg				basic_machine=vax-dec
6126c3c2bceSmrg				os=vms
6136c3c2bceSmrg				;;
6146c3c2bceSmrg			vxworks960)
6156c3c2bceSmrg				basic_machine=i960-wrs
6166c3c2bceSmrg				os=vxworks
6176c3c2bceSmrg				;;
6186c3c2bceSmrg			vxworks68)
6196c3c2bceSmrg				basic_machine=m68k-wrs
6206c3c2bceSmrg				os=vxworks
6216c3c2bceSmrg				;;
6226c3c2bceSmrg			vxworks29k)
6236c3c2bceSmrg				basic_machine=a29k-wrs
6246c3c2bceSmrg				os=vxworks
6256c3c2bceSmrg				;;
6266c3c2bceSmrg			xbox)
6276c3c2bceSmrg				basic_machine=i686-pc
6286c3c2bceSmrg				os=mingw32
6296c3c2bceSmrg				;;
6306c3c2bceSmrg			ymp)
6316c3c2bceSmrg				basic_machine=ymp-cray
6326c3c2bceSmrg				os=unicos
6336c3c2bceSmrg				;;
6346c3c2bceSmrg			*)
6356c3c2bceSmrg				basic_machine=$1
6366c3c2bceSmrg				os=
6376c3c2bceSmrg				;;
6386c3c2bceSmrg		esac
6397a0395d0Smrg		;;
6407a0395d0Smrgesac
6417a0395d0Smrg
6426c3c2bceSmrg# Decode 1-component or ad-hoc basic machines
6437a0395d0Smrgcase $basic_machine in
6446c3c2bceSmrg	# Here we handle the default manufacturer of certain CPU types.  It is in
6456c3c2bceSmrg	# some cases the only manufacturer, in others, it is the most popular.
6466c3c2bceSmrg	w89k)
6476c3c2bceSmrg		cpu=hppa1.1
6486c3c2bceSmrg		vendor=winbond
6497a0395d0Smrg		;;
6506c3c2bceSmrg	op50n)
6516c3c2bceSmrg		cpu=hppa1.1
6526c3c2bceSmrg		vendor=oki
6537a0395d0Smrg		;;
6546c3c2bceSmrg	op60c)
6556c3c2bceSmrg		cpu=hppa1.1
6566c3c2bceSmrg		vendor=oki
6577a0395d0Smrg		;;
6586c3c2bceSmrg	ibm*)
6596c3c2bceSmrg		cpu=i370
6606c3c2bceSmrg		vendor=ibm
6618abc0ccfSmrg		;;
6626c3c2bceSmrg	orion105)
6636c3c2bceSmrg		cpu=clipper
6646c3c2bceSmrg		vendor=highlevel
6658abc0ccfSmrg		;;
6666c3c2bceSmrg	mac | mpw | mac-mpw)
6676c3c2bceSmrg		cpu=m68k
6686c3c2bceSmrg		vendor=apple
6698abc0ccfSmrg		;;
6706c3c2bceSmrg	pmac | pmac-mpw)
6716c3c2bceSmrg		cpu=powerpc
6726c3c2bceSmrg		vendor=apple
6738abc0ccfSmrg		;;
6748abc0ccfSmrg
6757a0395d0Smrg	# Recognize the various machine names and aliases which stand
6767a0395d0Smrg	# for a CPU type and a company and sometimes even an OS.
6777a0395d0Smrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
6786c3c2bceSmrg		cpu=m68000
6796c3c2bceSmrg		vendor=att
6807a0395d0Smrg		;;
6817a0395d0Smrg	3b*)
6826c3c2bceSmrg		cpu=we32k
6836c3c2bceSmrg		vendor=att
6847a0395d0Smrg		;;
6852adc0320Smrg	bluegene*)
6866c3c2bceSmrg		cpu=powerpc
6876c3c2bceSmrg		vendor=ibm
6886c3c2bceSmrg		os=cnk
6897a0395d0Smrg		;;
6907a0395d0Smrg	decsystem10* | dec10*)
6916c3c2bceSmrg		cpu=pdp10
6926c3c2bceSmrg		vendor=dec
6936c3c2bceSmrg		os=tops10
6947a0395d0Smrg		;;
6957a0395d0Smrg	decsystem20* | dec20*)
6966c3c2bceSmrg		cpu=pdp10
6976c3c2bceSmrg		vendor=dec
6986c3c2bceSmrg		os=tops20
6997a0395d0Smrg		;;
7007a0395d0Smrg	delta | 3300 | motorola-3300 | motorola-delta \
7017a0395d0Smrg	      | 3300-motorola | delta-motorola)
7026c3c2bceSmrg		cpu=m68k
7036c3c2bceSmrg		vendor=motorola
7047a0395d0Smrg		;;
7056c3c2bceSmrg	dpx2*)
7066c3c2bceSmrg		cpu=m68k
7076c3c2bceSmrg		vendor=bull
7086c3c2bceSmrg		os=sysv3
7097a0395d0Smrg		;;
7107a0395d0Smrg	encore | umax | mmax)
7116c3c2bceSmrg		cpu=ns32k
7126c3c2bceSmrg		vendor=encore
7137a0395d0Smrg		;;
7146c3c2bceSmrg	elxsi)
7156c3c2bceSmrg		cpu=elxsi
7166c3c2bceSmrg		vendor=elxsi
7176c3c2bceSmrg		os=${os:-bsd}
7187a0395d0Smrg		;;
7197a0395d0Smrg	fx2800)
7206c3c2bceSmrg		cpu=i860
7216c3c2bceSmrg		vendor=alliant
7227a0395d0Smrg		;;
7237a0395d0Smrg	genix)
7246c3c2bceSmrg		cpu=ns32k
7256c3c2bceSmrg		vendor=ns
7267a0395d0Smrg		;;
7277a0395d0Smrg	h3050r* | hiux*)
7286c3c2bceSmrg		cpu=hppa1.1
7296c3c2bceSmrg		vendor=hitachi
7306c3c2bceSmrg		os=hiuxwe2
7317a0395d0Smrg		;;
7327a0395d0Smrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
7336c3c2bceSmrg		cpu=hppa1.0
7346c3c2bceSmrg		vendor=hp
7357a0395d0Smrg		;;
7367a0395d0Smrg	hp9k2[0-9][0-9] | hp9k31[0-9])
7376c3c2bceSmrg		cpu=m68000
7386c3c2bceSmrg		vendor=hp
7397a0395d0Smrg		;;
7407a0395d0Smrg	hp9k3[2-9][0-9])
7416c3c2bceSmrg		cpu=m68k
7426c3c2bceSmrg		vendor=hp
7437a0395d0Smrg		;;
7447a0395d0Smrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
7456c3c2bceSmrg		cpu=hppa1.0
7466c3c2bceSmrg		vendor=hp
7477a0395d0Smrg		;;
7487a0395d0Smrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
7496c3c2bceSmrg		cpu=hppa1.1
7506c3c2bceSmrg		vendor=hp
7517a0395d0Smrg		;;
7527a0395d0Smrg	hp9k78[0-9] | hp78[0-9])
7537a0395d0Smrg		# FIXME: really hppa2.0-hp
7546c3c2bceSmrg		cpu=hppa1.1
7556c3c2bceSmrg		vendor=hp
7567a0395d0Smrg		;;
7577a0395d0Smrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
7587a0395d0Smrg		# FIXME: really hppa2.0-hp
7596c3c2bceSmrg		cpu=hppa1.1
7606c3c2bceSmrg		vendor=hp
7617a0395d0Smrg		;;
7627a0395d0Smrg	hp9k8[0-9][13679] | hp8[0-9][13679])
7636c3c2bceSmrg		cpu=hppa1.1
7646c3c2bceSmrg		vendor=hp
7657a0395d0Smrg		;;
7667a0395d0Smrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
7676c3c2bceSmrg		cpu=hppa1.0
7686c3c2bceSmrg		vendor=hp
7697a0395d0Smrg		;;
7707a0395d0Smrg	i*86v32)
7716c3c2bceSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7726c3c2bceSmrg		vendor=pc
7736c3c2bceSmrg		os=sysv32
7747a0395d0Smrg		;;
7757a0395d0Smrg	i*86v4*)
7766c3c2bceSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7776c3c2bceSmrg		vendor=pc
7786c3c2bceSmrg		os=sysv4
7797a0395d0Smrg		;;
7807a0395d0Smrg	i*86v)
7816c3c2bceSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7826c3c2bceSmrg		vendor=pc
7836c3c2bceSmrg		os=sysv
7847a0395d0Smrg		;;
7857a0395d0Smrg	i*86sol2)
7866c3c2bceSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7876c3c2bceSmrg		vendor=pc
7886c3c2bceSmrg		os=solaris2
7897a0395d0Smrg		;;
7906c3c2bceSmrg	j90 | j90-cray)
7916c3c2bceSmrg		cpu=j90
7926c3c2bceSmrg		vendor=cray
7936c3c2bceSmrg		os=${os:-unicos}
7947a0395d0Smrg		;;
7957a0395d0Smrg	iris | iris4d)
7966c3c2bceSmrg		cpu=mips
7976c3c2bceSmrg		vendor=sgi
7987a0395d0Smrg		case $os in
7996c3c2bceSmrg		    irix*)
8007a0395d0Smrg			;;
8017a0395d0Smrg		    *)
8026c3c2bceSmrg			os=irix4
8037a0395d0Smrg			;;
8047a0395d0Smrg		esac
8057a0395d0Smrg		;;
8067a0395d0Smrg	miniframe)
8076c3c2bceSmrg		cpu=m68000
8086c3c2bceSmrg		vendor=convergent
8097a0395d0Smrg		;;
8106c3c2bceSmrg	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
8116c3c2bceSmrg		cpu=m68k
8126c3c2bceSmrg		vendor=atari
8136c3c2bceSmrg		os=mint
8147a0395d0Smrg		;;
8157a0395d0Smrg	news-3600 | risc-news)
8166c3c2bceSmrg		cpu=mips
8176c3c2bceSmrg		vendor=sony
8186c3c2bceSmrg		os=newsos
8197a0395d0Smrg		;;
8206c3c2bceSmrg	next | m*-next)
8216c3c2bceSmrg		cpu=m68k
8226c3c2bceSmrg		vendor=next
8237a0395d0Smrg		case $os in
8246c3c2bceSmrg		    nextstep* )
8257a0395d0Smrg			;;
8266c3c2bceSmrg		    ns2*)
8276c3c2bceSmrg		      os=nextstep2
8287a0395d0Smrg			;;
8297a0395d0Smrg		    *)
8306c3c2bceSmrg		      os=nextstep3
8317a0395d0Smrg			;;
8327a0395d0Smrg		esac
8337a0395d0Smrg		;;
8347a0395d0Smrg	np1)
8356c3c2bceSmrg		cpu=np1
8366c3c2bceSmrg		vendor=gould
8377a0395d0Smrg		;;
8387a0395d0Smrg	op50n-* | op60c-*)
8396c3c2bceSmrg		cpu=hppa1.1
8406c3c2bceSmrg		vendor=oki
8416c3c2bceSmrg		os=proelf
8427a0395d0Smrg		;;
8437a0395d0Smrg	pa-hitachi)
8446c3c2bceSmrg		cpu=hppa1.1
8456c3c2bceSmrg		vendor=hitachi
8466c3c2bceSmrg		os=hiuxwe2
8477a0395d0Smrg		;;
8487a0395d0Smrg	pbd)
8496c3c2bceSmrg		cpu=sparc
8506c3c2bceSmrg		vendor=tti
8517a0395d0Smrg		;;
8527a0395d0Smrg	pbb)
8536c3c2bceSmrg		cpu=m68k
8546c3c2bceSmrg		vendor=tti
8557a0395d0Smrg		;;
8566c3c2bceSmrg	pc532)
8576c3c2bceSmrg		cpu=ns32k
8586c3c2bceSmrg		vendor=pc532
8597a0395d0Smrg		;;
8607a0395d0Smrg	pn)
8616c3c2bceSmrg		cpu=pn
8626c3c2bceSmrg		vendor=gould
8637a0395d0Smrg		;;
8646c3c2bceSmrg	power)
8656c3c2bceSmrg		cpu=power
8666c3c2bceSmrg		vendor=ibm
8677a0395d0Smrg		;;
8687a0395d0Smrg	ps2)
8696c3c2bceSmrg		cpu=i386
8706c3c2bceSmrg		vendor=ibm
8717a0395d0Smrg		;;
8727a0395d0Smrg	rm[46]00)
8736c3c2bceSmrg		cpu=mips
8746c3c2bceSmrg		vendor=siemens
8757a0395d0Smrg		;;
8767a0395d0Smrg	rtpc | rtpc-*)
8776c3c2bceSmrg		cpu=romp
8786c3c2bceSmrg		vendor=ibm
8797a0395d0Smrg		;;
8806c3c2bceSmrg	sde)
8816c3c2bceSmrg		cpu=mipsisa32
8826c3c2bceSmrg		vendor=sde
8836c3c2bceSmrg		os=${os:-elf}
8847a0395d0Smrg		;;
8856c3c2bceSmrg	simso-wrs)
8866c3c2bceSmrg		cpu=sparclite
8876c3c2bceSmrg		vendor=wrs
8886c3c2bceSmrg		os=vxworks
8897a0395d0Smrg		;;
8906c3c2bceSmrg	tower | tower-32)
8916c3c2bceSmrg		cpu=m68k
8926c3c2bceSmrg		vendor=ncr
8937a0395d0Smrg		;;
8946c3c2bceSmrg	vpp*|vx|vx-*)
8956c3c2bceSmrg		cpu=f301
8966c3c2bceSmrg		vendor=fujitsu
8977a0395d0Smrg		;;
8986c3c2bceSmrg	w65)
8996c3c2bceSmrg		cpu=w65
9006c3c2bceSmrg		vendor=wdc
9017a0395d0Smrg		;;
9026c3c2bceSmrg	w89k-*)
9036c3c2bceSmrg		cpu=hppa1.1
9046c3c2bceSmrg		vendor=winbond
9056c3c2bceSmrg		os=proelf
9067a0395d0Smrg		;;
9076c3c2bceSmrg	none)
9086c3c2bceSmrg		cpu=none
9096c3c2bceSmrg		vendor=none
9107a0395d0Smrg		;;
9116c3c2bceSmrg	leon|leon[3-9])
9126c3c2bceSmrg		cpu=sparc
9136c3c2bceSmrg		vendor=$basic_machine
9147a0395d0Smrg		;;
9156c3c2bceSmrg	leon-*|leon[3-9]-*)
9166c3c2bceSmrg		cpu=sparc
9176c3c2bceSmrg		vendor=`echo "$basic_machine" | sed 's/-.*//'`
9187a0395d0Smrg		;;
9196c3c2bceSmrg
9206c3c2bceSmrg	*-*)
9216c3c2bceSmrg		IFS="-" read -r cpu vendor <<EOF
9226c3c2bceSmrg$basic_machine
9236c3c2bceSmrgEOF
9247a0395d0Smrg		;;
9256c3c2bceSmrg	# We use `pc' rather than `unknown'
9266c3c2bceSmrg	# because (1) that's what they normally are, and
9276c3c2bceSmrg	# (2) the word "unknown" tends to confuse beginning users.
9286c3c2bceSmrg	i*86 | x86_64)
9296c3c2bceSmrg		cpu=$basic_machine
9306c3c2bceSmrg		vendor=pc
9317a0395d0Smrg		;;
9326c3c2bceSmrg	# These rules are duplicated from below for sake of the special case above;
9336c3c2bceSmrg	# i.e. things that normalized to x86 arches should also default to "pc"
9346c3c2bceSmrg	pc98)
9356c3c2bceSmrg		cpu=i386
9366c3c2bceSmrg		vendor=pc
9377a0395d0Smrg		;;
9386c3c2bceSmrg	x64 | amd64)
9396c3c2bceSmrg		cpu=x86_64
9406c3c2bceSmrg		vendor=pc
9417a0395d0Smrg		;;
9426c3c2bceSmrg	# Recognize the basic CPU types without company name.
9436c3c2bceSmrg	*)
9446c3c2bceSmrg		cpu=$basic_machine
9456c3c2bceSmrg		vendor=unknown
9467a0395d0Smrg		;;
9476c3c2bceSmrgesac
9486c3c2bceSmrg
9496c3c2bceSmrgunset -v basic_machine
9506c3c2bceSmrg
9516c3c2bceSmrg# Decode basic machines in the full and proper CPU-Company form.
9526c3c2bceSmrgcase $cpu-$vendor in
9536c3c2bceSmrg	# Here we handle the default manufacturer of certain CPU types in cannonical form. It is in
9546c3c2bceSmrg	# some cases the only manufacturer, in others, it is the most popular.
9556c3c2bceSmrg	craynv-unknown)
9566c3c2bceSmrg		vendor=cray
9576c3c2bceSmrg		os=${os:-unicosmp}
9588abc0ccfSmrg		;;
9596c3c2bceSmrg	c90-unknown | c90-cray)
9606c3c2bceSmrg		vendor=cray
9616c3c2bceSmrg		os=${os:-unicos}
9627a0395d0Smrg		;;
9636c3c2bceSmrg	fx80-unknown)
9646c3c2bceSmrg		vendor=alliant
9657a0395d0Smrg		;;
9666c3c2bceSmrg	romp-unknown)
9676c3c2bceSmrg		vendor=ibm
9687a0395d0Smrg		;;
9696c3c2bceSmrg	mmix-unknown)
9706c3c2bceSmrg		vendor=knuth
9717a0395d0Smrg		;;
9726c3c2bceSmrg	microblaze-unknown | microblazeel-unknown)
9736c3c2bceSmrg		vendor=xilinx
9747a0395d0Smrg		;;
9756c3c2bceSmrg	rs6000-unknown)
9766c3c2bceSmrg		vendor=ibm
9777a0395d0Smrg		;;
9786c3c2bceSmrg	vax-unknown)
9796c3c2bceSmrg		vendor=dec
9807a0395d0Smrg		;;
9816c3c2bceSmrg	pdp11-unknown)
9826c3c2bceSmrg		vendor=dec
9837a0395d0Smrg		;;
9846c3c2bceSmrg	we32k-unknown)
9856c3c2bceSmrg		vendor=att
9867a0395d0Smrg		;;
9876c3c2bceSmrg	cydra-unknown)
9886c3c2bceSmrg		vendor=cydrome
9897a0395d0Smrg		;;
9906c3c2bceSmrg	i370-ibm*)
9916c3c2bceSmrg		vendor=ibm
9927a0395d0Smrg		;;
9936c3c2bceSmrg	orion-unknown)
9946c3c2bceSmrg		vendor=highlevel
9957a0395d0Smrg		;;
9966c3c2bceSmrg	xps-unknown | xps100-unknown)
9976c3c2bceSmrg		cpu=xps100
9986c3c2bceSmrg		vendor=honeywell
9997a0395d0Smrg		;;
10006c3c2bceSmrg
10016c3c2bceSmrg	# Here we normalize CPU types with a missing or matching vendor
10026c3c2bceSmrg	dpx20-unknown | dpx20-bull)
10036c3c2bceSmrg		cpu=rs6000
10046c3c2bceSmrg		vendor=bull
10056c3c2bceSmrg		os=${os:-bosx}
10067a0395d0Smrg		;;
10076c3c2bceSmrg
10086c3c2bceSmrg	# Here we normalize CPU types irrespective of the vendor
10096c3c2bceSmrg	amd64-*)
10106c3c2bceSmrg		cpu=x86_64
10117a0395d0Smrg		;;
10126c3c2bceSmrg	blackfin-*)
10136c3c2bceSmrg		cpu=bfin
10146c3c2bceSmrg		os=linux
10157a0395d0Smrg		;;
10166c3c2bceSmrg	c54x-*)
10176c3c2bceSmrg		cpu=tic54x
10187a0395d0Smrg		;;
10196c3c2bceSmrg	c55x-*)
10206c3c2bceSmrg		cpu=tic55x
10217a0395d0Smrg		;;
10226c3c2bceSmrg	c6x-*)
10236c3c2bceSmrg		cpu=tic6x
10247a0395d0Smrg		;;
10256c3c2bceSmrg	e500v[12]-*)
10266c3c2bceSmrg		cpu=powerpc
10276c3c2bceSmrg		os=$os"spe"
10287a0395d0Smrg		;;
10296c3c2bceSmrg	mips3*-*)
10306c3c2bceSmrg		cpu=mips64
10317a0395d0Smrg		;;
10326c3c2bceSmrg	ms1-*)
10336c3c2bceSmrg		cpu=mt
10347a0395d0Smrg		;;
10356c3c2bceSmrg	m68knommu-*)
10366c3c2bceSmrg		cpu=m68k
10376c3c2bceSmrg		os=linux
10387a0395d0Smrg		;;
10396c3c2bceSmrg	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
10406c3c2bceSmrg		cpu=s12z
10417a0395d0Smrg		;;
10426c3c2bceSmrg	openrisc-*)
10436c3c2bceSmrg		cpu=or32
10447a0395d0Smrg		;;
10456c3c2bceSmrg	parisc-*)
10466c3c2bceSmrg		cpu=hppa
10476c3c2bceSmrg		os=linux
10487a0395d0Smrg		;;
10496c3c2bceSmrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
10506c3c2bceSmrg		cpu=i586
10517a0395d0Smrg		;;
10526c3c2bceSmrg	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
10536c3c2bceSmrg		cpu=i686
10547a0395d0Smrg		;;
10556c3c2bceSmrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
10566c3c2bceSmrg		cpu=i686
10577a0395d0Smrg		;;
10586c3c2bceSmrg	pentium4-*)
10596c3c2bceSmrg		cpu=i786
10607a0395d0Smrg		;;
10616c3c2bceSmrg	pc98-*)
10626c3c2bceSmrg		cpu=i386
10637a0395d0Smrg		;;
10646c3c2bceSmrg	ppc-* | ppcbe-*)
10656c3c2bceSmrg		cpu=powerpc
10667a0395d0Smrg		;;
10676c3c2bceSmrg	ppcle-* | powerpclittle-*)
10686c3c2bceSmrg		cpu=powerpcle
10697a0395d0Smrg		;;
10706c3c2bceSmrg	ppc64-*)
10716c3c2bceSmrg		cpu=powerpc64
10727a0395d0Smrg		;;
10736c3c2bceSmrg	ppc64le-* | powerpc64little-*)
10746c3c2bceSmrg		cpu=powerpc64le
10758abc0ccfSmrg		;;
10766c3c2bceSmrg	sb1-*)
10776c3c2bceSmrg		cpu=mipsisa64sb1
10787a0395d0Smrg		;;
10796c3c2bceSmrg	sb1el-*)
10806c3c2bceSmrg		cpu=mipsisa64sb1el
10817a0395d0Smrg		;;
10826c3c2bceSmrg	sh5e[lb]-*)
10836c3c2bceSmrg		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
10847366012aSmrg		;;
10856c3c2bceSmrg	spur-*)
10866c3c2bceSmrg		cpu=spur
10877a0395d0Smrg		;;
10886c3c2bceSmrg	strongarm-* | thumb-*)
10896c3c2bceSmrg		cpu=arm
10907a0395d0Smrg		;;
10916c3c2bceSmrg	tx39-*)
10926c3c2bceSmrg		cpu=mipstx39
10937a0395d0Smrg		;;
10946c3c2bceSmrg	tx39el-*)
10956c3c2bceSmrg		cpu=mipstx39el
10967a0395d0Smrg		;;
10976c3c2bceSmrg	x64-*)
10986c3c2bceSmrg		cpu=x86_64
10997a0395d0Smrg		;;
11006c3c2bceSmrg	xscale-* | xscalee[bl]-*)
11016c3c2bceSmrg		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
11027a0395d0Smrg		;;
11036c3c2bceSmrg
11046c3c2bceSmrg	# Recognize the cannonical CPU Types that limit and/or modify the
11056c3c2bceSmrg	# company names they are paired with.
11066c3c2bceSmrg	cr16-*)
11076c3c2bceSmrg		os=${os:-elf}
11087a0395d0Smrg		;;
11096c3c2bceSmrg	crisv32-* | etraxfs*-*)
11106c3c2bceSmrg		cpu=crisv32
11116c3c2bceSmrg		vendor=axis
11127a0395d0Smrg		;;
11136c3c2bceSmrg	cris-* | etrax*-*)
11146c3c2bceSmrg		cpu=cris
11156c3c2bceSmrg		vendor=axis
11167a0395d0Smrg		;;
11176c3c2bceSmrg	crx-*)
11186c3c2bceSmrg		os=${os:-elf}
11197a0395d0Smrg		;;
11206c3c2bceSmrg	neo-tandem)
11216c3c2bceSmrg		cpu=neo
11226c3c2bceSmrg		vendor=tandem
11237a0395d0Smrg		;;
11246c3c2bceSmrg	nse-tandem)
11256c3c2bceSmrg		cpu=nse
11266c3c2bceSmrg		vendor=tandem
11277a0395d0Smrg		;;
11286c3c2bceSmrg	nsr-tandem)
11296c3c2bceSmrg		cpu=nsr
11306c3c2bceSmrg		vendor=tandem
11317a0395d0Smrg		;;
11326c3c2bceSmrg	nsv-tandem)
11336c3c2bceSmrg		cpu=nsv
11346c3c2bceSmrg		vendor=tandem
11357a0395d0Smrg		;;
11366c3c2bceSmrg	nsx-tandem)
11376c3c2bceSmrg		cpu=nsx
11386c3c2bceSmrg		vendor=tandem
11397a0395d0Smrg		;;
11406c3c2bceSmrg	s390-*)
11416c3c2bceSmrg		cpu=s390
11426c3c2bceSmrg		vendor=ibm
11437a0395d0Smrg		;;
11446c3c2bceSmrg	s390x-*)
11456c3c2bceSmrg		cpu=s390x
11466c3c2bceSmrg		vendor=ibm
11477a0395d0Smrg		;;
11486c3c2bceSmrg	tile*-*)
11496c3c2bceSmrg		os=${os:-linux-gnu}
11507a0395d0Smrg		;;
11516c3c2bceSmrg
11527a0395d0Smrg	*)
11536c3c2bceSmrg		# Recognize the cannonical CPU types that are allowed with any
11546c3c2bceSmrg		# company name.
11556c3c2bceSmrg		case $cpu in
11566c3c2bceSmrg			1750a | 580 \
11576c3c2bceSmrg			| a29k \
11586c3c2bceSmrg			| aarch64 | aarch64_be \
11596c3c2bceSmrg			| abacus \
11606c3c2bceSmrg			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
11616c3c2bceSmrg			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
11626c3c2bceSmrg			| alphapca5[67] | alpha64pca5[67] \
11636c3c2bceSmrg			| am33_2.0 \
11646c3c2bceSmrg			| arc | arceb \
11656c3c2bceSmrg			| arm  | arm[lb]e | arme[lb] | armv* \
11666c3c2bceSmrg			| avr | avr32 \
11676c3c2bceSmrg			| asmjs \
11686c3c2bceSmrg			| ba \
11696c3c2bceSmrg			| be32 | be64 \
11706c3c2bceSmrg			| bfin | bs2000 \
11716c3c2bceSmrg			| c[123]* | c30 | [cjt]90 | c4x \
11726c3c2bceSmrg			| c8051 | clipper | craynv | csky | cydra \
11736c3c2bceSmrg			| d10v | d30v | dlx | dsp16xx \
11746c3c2bceSmrg			| e2k | elxsi | epiphany \
11756c3c2bceSmrg			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
11766c3c2bceSmrg			| h8300 | h8500 \
11776c3c2bceSmrg			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
11786c3c2bceSmrg			| hexagon \
11796c3c2bceSmrg			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
11806c3c2bceSmrg			| ip2k | iq2000 \
11816c3c2bceSmrg			| k1om \
11826c3c2bceSmrg			| le32 | le64 \
11836c3c2bceSmrg			| lm32 \
11846c3c2bceSmrg			| m32c | m32r | m32rle \
11856c3c2bceSmrg			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
11866c3c2bceSmrg			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
11876c3c2bceSmrg			| m88110 | m88k | maxq | mb | mcore | mep | metag \
11886c3c2bceSmrg			| microblaze | microblazeel \
11896c3c2bceSmrg			| mips | mipsbe | mipseb | mipsel | mipsle \
11906c3c2bceSmrg			| mips16 \
11916c3c2bceSmrg			| mips64 | mips64el \
11926c3c2bceSmrg			| mips64octeon | mips64octeonel \
11936c3c2bceSmrg			| mips64orion | mips64orionel \
11946c3c2bceSmrg			| mips64r5900 | mips64r5900el \
11956c3c2bceSmrg			| mips64vr | mips64vrel \
11966c3c2bceSmrg			| mips64vr4100 | mips64vr4100el \
11976c3c2bceSmrg			| mips64vr4300 | mips64vr4300el \
11986c3c2bceSmrg			| mips64vr5000 | mips64vr5000el \
11996c3c2bceSmrg			| mips64vr5900 | mips64vr5900el \
12006c3c2bceSmrg			| mipsisa32 | mipsisa32el \
12016c3c2bceSmrg			| mipsisa32r2 | mipsisa32r2el \
12026c3c2bceSmrg			| mipsisa32r6 | mipsisa32r6el \
12036c3c2bceSmrg			| mipsisa64 | mipsisa64el \
12046c3c2bceSmrg			| mipsisa64r2 | mipsisa64r2el \
12056c3c2bceSmrg			| mipsisa64r6 | mipsisa64r6el \
12066c3c2bceSmrg			| mipsisa64sb1 | mipsisa64sb1el \
12076c3c2bceSmrg			| mipsisa64sr71k | mipsisa64sr71kel \
12086c3c2bceSmrg			| mipsr5900 | mipsr5900el \
12096c3c2bceSmrg			| mipstx39 | mipstx39el \
12106c3c2bceSmrg			| mmix \
12116c3c2bceSmrg			| mn10200 | mn10300 \
12126c3c2bceSmrg			| moxie \
12136c3c2bceSmrg			| mt \
12146c3c2bceSmrg			| msp430 \
12156c3c2bceSmrg			| nds32 | nds32le | nds32be \
12166c3c2bceSmrg			| nfp \
12176c3c2bceSmrg			| nios | nios2 | nios2eb | nios2el \
12186c3c2bceSmrg			| none | np1 | ns16k | ns32k \
12196c3c2bceSmrg			| open8 \
12206c3c2bceSmrg			| or1k* \
12216c3c2bceSmrg			| or32 \
12226c3c2bceSmrg			| orion \
12236c3c2bceSmrg			| pdp10 | pdp11 | pj | pjl | pn | power \
12246c3c2bceSmrg			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
12256c3c2bceSmrg			| pru \
12266c3c2bceSmrg			| pyramid \
12276c3c2bceSmrg			| riscv | riscv32 | riscv64 \
12286c3c2bceSmrg			| rl78 | romp | rs6000 | rx \
12296c3c2bceSmrg			| score \
12306c3c2bceSmrg			| sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
12316c3c2bceSmrg			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
12326c3c2bceSmrg			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
12336c3c2bceSmrg			| sparclite \
12346c3c2bceSmrg			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
12356c3c2bceSmrg			| spu \
12366c3c2bceSmrg			| tahoe \
12376c3c2bceSmrg			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
12386c3c2bceSmrg			| tron \
12396c3c2bceSmrg			| ubicom32 \
12406c3c2bceSmrg			| v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
12416c3c2bceSmrg			| vax \
12426c3c2bceSmrg			| visium \
12436c3c2bceSmrg			| wasm32 \
12446c3c2bceSmrg			| we32k \
12456c3c2bceSmrg			| x86 | x86_64 | xc16x | xgate | xps100 \
12466c3c2bceSmrg			| xstormy16 | xtensa* \
12476c3c2bceSmrg			| ymp \
12486c3c2bceSmrg			| z8k | z80)
12496c3c2bceSmrg				;;
12506c3c2bceSmrg
12516c3c2bceSmrg			*)
12526c3c2bceSmrg				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
12536c3c2bceSmrg				exit 1
12546c3c2bceSmrg				;;
12556c3c2bceSmrg		esac
12567a0395d0Smrg		;;
12577a0395d0Smrgesac
12587a0395d0Smrg
12597a0395d0Smrg# Here we canonicalize certain aliases for manufacturers.
12606c3c2bceSmrgcase $vendor in
12616c3c2bceSmrg	digital*)
12626c3c2bceSmrg		vendor=dec
12637a0395d0Smrg		;;
12646c3c2bceSmrg	commodore*)
12656c3c2bceSmrg		vendor=cbm
12667a0395d0Smrg		;;
12677a0395d0Smrg	*)
12687a0395d0Smrg		;;
12697a0395d0Smrgesac
12707a0395d0Smrg
12717a0395d0Smrg# Decode manufacturer-specific aliases for certain operating systems.
12727a0395d0Smrg
12736c3c2bceSmrgif [ x$os != x ]
12747a0395d0Smrgthen
12757a0395d0Smrgcase $os in
12766c3c2bceSmrg	# First match some system type aliases that might get confused
12776c3c2bceSmrg	# with valid system types.
12786c3c2bceSmrg	# solaris* is a basic system type, with this one exception.
12796c3c2bceSmrg	auroraux)
12806c3c2bceSmrg		os=auroraux
12812adc0320Smrg		;;
12826c3c2bceSmrg	bluegene*)
12836c3c2bceSmrg		os=cnk
12847a0395d0Smrg		;;
12856c3c2bceSmrg	solaris1 | solaris1.*)
12866c3c2bceSmrg		os=`echo $os | sed -e 's|solaris1|sunos4|'`
12877a0395d0Smrg		;;
12886c3c2bceSmrg	solaris)
12896c3c2bceSmrg		os=solaris2
12907a0395d0Smrg		;;
12916c3c2bceSmrg	unixware*)
12926c3c2bceSmrg		os=sysv4.2uw
12937a0395d0Smrg		;;
12946c3c2bceSmrg	gnu/linux*)
12957a0395d0Smrg		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
12967a0395d0Smrg		;;
12976c3c2bceSmrg	# es1800 is here to avoid being matched by es* (a different OS)
12986c3c2bceSmrg	es1800*)
12996c3c2bceSmrg		os=ose
13006c3c2bceSmrg		;;
13016c3c2bceSmrg	# Some version numbers need modification
13026c3c2bceSmrg	chorusos*)
13036c3c2bceSmrg		os=chorusos
13046c3c2bceSmrg		;;
13056c3c2bceSmrg	isc)
13066c3c2bceSmrg		os=isc2.2
13076c3c2bceSmrg		;;
13086c3c2bceSmrg	sco6)
13096c3c2bceSmrg		os=sco5v6
13106c3c2bceSmrg		;;
13116c3c2bceSmrg	sco5)
13126c3c2bceSmrg		os=sco3.2v5
13136c3c2bceSmrg		;;
13146c3c2bceSmrg	sco4)
13156c3c2bceSmrg		os=sco3.2v4
13166c3c2bceSmrg		;;
13176c3c2bceSmrg	sco3.2.[4-9]*)
13186c3c2bceSmrg		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
13196c3c2bceSmrg		;;
13206c3c2bceSmrg	sco3.2v[4-9]* | sco5v6*)
13216c3c2bceSmrg		# Don't forget version if it is 3.2v4 or newer.
13226c3c2bceSmrg		;;
13236c3c2bceSmrg	scout)
13246c3c2bceSmrg		# Don't match below
13256c3c2bceSmrg		;;
13266c3c2bceSmrg	sco*)
13276c3c2bceSmrg		os=sco3.2v2
13286c3c2bceSmrg		;;
13296c3c2bceSmrg	psos*)
13306c3c2bceSmrg		os=psos
13316c3c2bceSmrg		;;
13326c3c2bceSmrg	# Now accept the basic system types.
13337a0395d0Smrg	# The portable systems comes first.
13346c3c2bceSmrg	# Each alternative MUST end in a * to match a version number.
13356c3c2bceSmrg	# sysv* is not here because it comes later, after sysvr4.
13366c3c2bceSmrg	gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
13376c3c2bceSmrg	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
13386c3c2bceSmrg	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
13396c3c2bceSmrg	     | sym* | kopensolaris* | plan9* \
13406c3c2bceSmrg	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
13416c3c2bceSmrg	     | aos* | aros* | cloudabi* | sortix* \
13426c3c2bceSmrg	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
13436c3c2bceSmrg	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
13446c3c2bceSmrg	     | knetbsd* | mirbsd* | netbsd* \
13456c3c2bceSmrg	     | bitrig* | openbsd* | solidbsd* | libertybsd* \
13466c3c2bceSmrg	     | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
13476c3c2bceSmrg	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
13486c3c2bceSmrg	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
13496c3c2bceSmrg	     | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
13506c3c2bceSmrg	     | chorusrdb* | cegcc* | glidix* \
13516c3c2bceSmrg	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
13526c3c2bceSmrg	     | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
13536c3c2bceSmrg	     | linux-newlib* | linux-musl* | linux-uclibc* \
13546c3c2bceSmrg	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
13556c3c2bceSmrg	     | interix* | uwin* | mks* | rhapsody* | darwin* \
13566c3c2bceSmrg	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
13576c3c2bceSmrg	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
13586c3c2bceSmrg	     | os2* | vos* | palmos* | uclinux* | nucleus* \
13596c3c2bceSmrg	     | morphos* | superux* | rtmk* | windiss* \
13606c3c2bceSmrg	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
13616c3c2bceSmrg	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
13626c3c2bceSmrg	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
13636c3c2bceSmrg	     | midnightbsd*)
13647a0395d0Smrg	# Remember, each alternative MUST END IN *, to match a version number.
13657a0395d0Smrg		;;
13666c3c2bceSmrg	qnx*)
13676c3c2bceSmrg		case $cpu in
13686c3c2bceSmrg		    x86 | i*86)
13697a0395d0Smrg			;;
13707a0395d0Smrg		    *)
13716c3c2bceSmrg			os=nto-$os
13727a0395d0Smrg			;;
13737a0395d0Smrg		esac
13747a0395d0Smrg		;;
13756c3c2bceSmrg	hiux*)
13766c3c2bceSmrg		os=hiuxwe2
13777a0395d0Smrg		;;
13786c3c2bceSmrg	nto-qnx*)
13797a0395d0Smrg		;;
13806c3c2bceSmrg	nto*)
13816c3c2bceSmrg		os=`echo $os | sed -e 's|nto|nto-qnx|'`
13827a0395d0Smrg		;;
13836c3c2bceSmrg	sim | xray | os68k* | v88r* \
13846c3c2bceSmrg	    | windows* | osx | abug | netware* | os9* \
13856c3c2bceSmrg	    | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
13867a0395d0Smrg		;;
13876c3c2bceSmrg	linux-dietlibc)
13886c3c2bceSmrg		os=linux-dietlibc
13897a0395d0Smrg		;;
13906c3c2bceSmrg	linux*)
13917a0395d0Smrg		os=`echo $os | sed -e 's|linux|linux-gnu|'`
13927a0395d0Smrg		;;
13936c3c2bceSmrg	lynx*178)
13946c3c2bceSmrg		os=lynxos178
13957a0395d0Smrg		;;
13966c3c2bceSmrg	lynx*5)
13976c3c2bceSmrg		os=lynxos5
13987a0395d0Smrg		;;
13996c3c2bceSmrg	lynx*)
14006c3c2bceSmrg		os=lynxos
14017a0395d0Smrg		;;
14026c3c2bceSmrg	mac*)
14036c3c2bceSmrg		os=`echo "$os" | sed -e 's|mac|macos|'`
14047a0395d0Smrg		;;
14056c3c2bceSmrg	opened*)
14066c3c2bceSmrg		os=openedition
14077a0395d0Smrg		;;
14086c3c2bceSmrg	os400*)
14096c3c2bceSmrg		os=os400
14107a0395d0Smrg		;;
14116c3c2bceSmrg	sunos5*)
14126c3c2bceSmrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
14137a0395d0Smrg		;;
14146c3c2bceSmrg	sunos6*)
14156c3c2bceSmrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
14167a0395d0Smrg		;;
14176c3c2bceSmrg	wince*)
14186c3c2bceSmrg		os=wince
14197a0395d0Smrg		;;
14206c3c2bceSmrg	utek*)
14216c3c2bceSmrg		os=bsd
14227a0395d0Smrg		;;
14236c3c2bceSmrg	dynix*)
14246c3c2bceSmrg		os=bsd
14257a0395d0Smrg		;;
14266c3c2bceSmrg	acis*)
14276c3c2bceSmrg		os=aos
14287a0395d0Smrg		;;
14296c3c2bceSmrg	atheos*)
14306c3c2bceSmrg		os=atheos
14317a0395d0Smrg		;;
14326c3c2bceSmrg	syllable*)
14336c3c2bceSmrg		os=syllable
14347a0395d0Smrg		;;
14356c3c2bceSmrg	386bsd)
14366c3c2bceSmrg		os=bsd
14376c3c2bceSmrg		;;
14386c3c2bceSmrg	ctix* | uts*)
14396c3c2bceSmrg		os=sysv
14406c3c2bceSmrg		;;
14416c3c2bceSmrg	nova*)
14426c3c2bceSmrg		os=rtmk-nova
14437a0395d0Smrg		;;
14446c3c2bceSmrg	ns2)
14456c3c2bceSmrg		os=nextstep2
14467a0395d0Smrg		;;
14476c3c2bceSmrg	nsk*)
14486c3c2bceSmrg		os=nsk
14497a0395d0Smrg		;;
14507a0395d0Smrg	# Preserve the version number of sinix5.
14516c3c2bceSmrg	sinix5.*)
14527a0395d0Smrg		os=`echo $os | sed -e 's|sinix|sysv|'`
14537a0395d0Smrg		;;
14546c3c2bceSmrg	sinix*)
14556c3c2bceSmrg		os=sysv4
14567a0395d0Smrg		;;
14576c3c2bceSmrg	tpf*)
14586c3c2bceSmrg		os=tpf
14597a0395d0Smrg		;;
14606c3c2bceSmrg	triton*)
14616c3c2bceSmrg		os=sysv3
14627a0395d0Smrg		;;
14636c3c2bceSmrg	oss*)
14646c3c2bceSmrg		os=sysv3
14657a0395d0Smrg		;;
14666c3c2bceSmrg	svr4*)
14676c3c2bceSmrg		os=sysv4
14687a0395d0Smrg		;;
14696c3c2bceSmrg	svr3)
14706c3c2bceSmrg		os=sysv3
14717a0395d0Smrg		;;
14726c3c2bceSmrg	sysvr4)
14736c3c2bceSmrg		os=sysv4
14747a0395d0Smrg		;;
14756c3c2bceSmrg	# This must come after sysvr4.
14766c3c2bceSmrg	sysv*)
14777a0395d0Smrg		;;
14786c3c2bceSmrg	ose*)
14796c3c2bceSmrg		os=ose
14807a0395d0Smrg		;;
14816c3c2bceSmrg	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
14826c3c2bceSmrg		os=mint
14837a0395d0Smrg		;;
14846c3c2bceSmrg	zvmoe)
14856c3c2bceSmrg		os=zvmoe
14867a0395d0Smrg		;;
14876c3c2bceSmrg	dicos*)
14886c3c2bceSmrg		os=dicos
14897a0395d0Smrg		;;
14906c3c2bceSmrg	pikeos*)
14916c3c2bceSmrg		# Until real need of OS specific support for
14926c3c2bceSmrg		# particular features comes up, bare metal
14936c3c2bceSmrg		# configurations are quite functional.
14946c3c2bceSmrg		case $cpu in
14956c3c2bceSmrg		    arm*)
14966c3c2bceSmrg			os=eabi
14976c3c2bceSmrg			;;
14986c3c2bceSmrg		    *)
14996c3c2bceSmrg			os=elf
15006c3c2bceSmrg			;;
15016c3c2bceSmrg		esac
15027a0395d0Smrg		;;
15036c3c2bceSmrg	nacl*)
15047366012aSmrg		;;
15056c3c2bceSmrg	ios)
15068abc0ccfSmrg		;;
15076c3c2bceSmrg	none)
150840c5344fSmrg		;;
15096c3c2bceSmrg	*-eabi)
15107a0395d0Smrg		;;
15117a0395d0Smrg	*)
15126c3c2bceSmrg		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
15137a0395d0Smrg		exit 1
15147a0395d0Smrg		;;
15157a0395d0Smrgesac
15167a0395d0Smrgelse
15177a0395d0Smrg
15187a0395d0Smrg# Here we handle the default operating systems that come with various machines.
15197a0395d0Smrg# The value should be what the vendor currently ships out the door with their
15207a0395d0Smrg# machine or put another way, the most popular os provided with the machine.
15217a0395d0Smrg
15227a0395d0Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
15237a0395d0Smrg# "-sun"), then you have to tell the case statement up towards the top
15247a0395d0Smrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
15257a0395d0Smrg# will signal an error saying that MANUFACTURER isn't an operating
15267a0395d0Smrg# system, and we'll never get to this point.
15277a0395d0Smrg
15286c3c2bceSmrgcase $cpu-$vendor in
15298abc0ccfSmrg	score-*)
15306c3c2bceSmrg		os=elf
15317a0395d0Smrg		;;
15328abc0ccfSmrg	spu-*)
15336c3c2bceSmrg		os=elf
15347a0395d0Smrg		;;
15357a0395d0Smrg	*-acorn)
15366c3c2bceSmrg		os=riscix1.2
15377a0395d0Smrg		;;
15387a0395d0Smrg	arm*-rebel)
15396c3c2bceSmrg		os=linux
15407a0395d0Smrg		;;
15417a0395d0Smrg	arm*-semi)
15426c3c2bceSmrg		os=aout
15437a0395d0Smrg		;;
15448abc0ccfSmrg	c4x-* | tic4x-*)
15456c3c2bceSmrg		os=coff
15468abc0ccfSmrg		;;
154740c5344fSmrg	c8051-*)
15486c3c2bceSmrg		os=elf
15496c3c2bceSmrg		;;
15506c3c2bceSmrg	clipper-intergraph)
15516c3c2bceSmrg		os=clix
155240c5344fSmrg		;;
15538abc0ccfSmrg	hexagon-*)
15546c3c2bceSmrg		os=elf
15557a0395d0Smrg		;;
155696402570Smrg	tic54x-*)
15576c3c2bceSmrg		os=coff
155896402570Smrg		;;
155996402570Smrg	tic55x-*)
15606c3c2bceSmrg		os=coff
156196402570Smrg		;;
156296402570Smrg	tic6x-*)
15636c3c2bceSmrg		os=coff
156496402570Smrg		;;
15657a0395d0Smrg	# This must come before the *-dec entry.
15667a0395d0Smrg	pdp10-*)
15676c3c2bceSmrg		os=tops20
15687a0395d0Smrg		;;
15697a0395d0Smrg	pdp11-*)
15706c3c2bceSmrg		os=none
15717a0395d0Smrg		;;
15727a0395d0Smrg	*-dec | vax-*)
15736c3c2bceSmrg		os=ultrix4.2
15747a0395d0Smrg		;;
15757a0395d0Smrg	m68*-apollo)
15766c3c2bceSmrg		os=domain
15777a0395d0Smrg		;;
15787a0395d0Smrg	i386-sun)
15796c3c2bceSmrg		os=sunos4.0.2
15807a0395d0Smrg		;;
15817a0395d0Smrg	m68000-sun)
15826c3c2bceSmrg		os=sunos3
15837a0395d0Smrg		;;
15847a0395d0Smrg	m68*-cisco)
15856c3c2bceSmrg		os=aout
15867a0395d0Smrg		;;
15878abc0ccfSmrg	mep-*)
15886c3c2bceSmrg		os=elf
15897a0395d0Smrg		;;
15907a0395d0Smrg	mips*-cisco)
15916c3c2bceSmrg		os=elf
15927a0395d0Smrg		;;
15937a0395d0Smrg	mips*-*)
15946c3c2bceSmrg		os=elf
15957a0395d0Smrg		;;
15967a0395d0Smrg	or32-*)
15976c3c2bceSmrg		os=coff
15987a0395d0Smrg		;;
15997a0395d0Smrg	*-tti)	# must be before sparc entry or we get the wrong os.
16006c3c2bceSmrg		os=sysv3
16017a0395d0Smrg		;;
16027a0395d0Smrg	sparc-* | *-sun)
16036c3c2bceSmrg		os=sunos4.1.1
16047a0395d0Smrg		;;
16056c3c2bceSmrg	pru-*)
16066c3c2bceSmrg		os=elf
16077a0395d0Smrg		;;
16086c3c2bceSmrg	*-be)
16096c3c2bceSmrg		os=beos
16107a0395d0Smrg		;;
16117a0395d0Smrg	*-ibm)
16126c3c2bceSmrg		os=aix
16137a0395d0Smrg		;;
16148abc0ccfSmrg	*-knuth)
16156c3c2bceSmrg		os=mmixware
16167a0395d0Smrg		;;
16177a0395d0Smrg	*-wec)
16186c3c2bceSmrg		os=proelf
16197a0395d0Smrg		;;
16207a0395d0Smrg	*-winbond)
16216c3c2bceSmrg		os=proelf
16227a0395d0Smrg		;;
16237a0395d0Smrg	*-oki)
16246c3c2bceSmrg		os=proelf
16257a0395d0Smrg		;;
16267a0395d0Smrg	*-hp)
16276c3c2bceSmrg		os=hpux
16287a0395d0Smrg		;;
16297a0395d0Smrg	*-hitachi)
16306c3c2bceSmrg		os=hiux
16317a0395d0Smrg		;;
16327a0395d0Smrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
16336c3c2bceSmrg		os=sysv
16347a0395d0Smrg		;;
16357a0395d0Smrg	*-cbm)
16366c3c2bceSmrg		os=amigaos
16377a0395d0Smrg		;;
16387a0395d0Smrg	*-dg)
16396c3c2bceSmrg		os=dgux
16407a0395d0Smrg		;;
16417a0395d0Smrg	*-dolphin)
16426c3c2bceSmrg		os=sysv3
16437a0395d0Smrg		;;
16447a0395d0Smrg	m68k-ccur)
16456c3c2bceSmrg		os=rtu
16467a0395d0Smrg		;;
16477a0395d0Smrg	m88k-omron*)
16486c3c2bceSmrg		os=luna
16497a0395d0Smrg		;;
16506c3c2bceSmrg	*-next)
16516c3c2bceSmrg		os=nextstep
16527a0395d0Smrg		;;
16537a0395d0Smrg	*-sequent)
16546c3c2bceSmrg		os=ptx
16557a0395d0Smrg		;;
16567a0395d0Smrg	*-crds)
16576c3c2bceSmrg		os=unos
16587a0395d0Smrg		;;
16597a0395d0Smrg	*-ns)
16606c3c2bceSmrg		os=genix
16617a0395d0Smrg		;;
16627a0395d0Smrg	i370-*)
16636c3c2bceSmrg		os=mvs
16647a0395d0Smrg		;;
16657a0395d0Smrg	*-gould)
16666c3c2bceSmrg		os=sysv
16677a0395d0Smrg		;;
16687a0395d0Smrg	*-highlevel)
16696c3c2bceSmrg		os=bsd
16707a0395d0Smrg		;;
16717a0395d0Smrg	*-encore)
16726c3c2bceSmrg		os=bsd
16737a0395d0Smrg		;;
16747a0395d0Smrg	*-sgi)
16756c3c2bceSmrg		os=irix
16767a0395d0Smrg		;;
16777a0395d0Smrg	*-siemens)
16786c3c2bceSmrg		os=sysv4
16797a0395d0Smrg		;;
16807a0395d0Smrg	*-masscomp)
16816c3c2bceSmrg		os=rtu
16827a0395d0Smrg		;;
16837a0395d0Smrg	f30[01]-fujitsu | f700-fujitsu)
16846c3c2bceSmrg		os=uxpv
16857a0395d0Smrg		;;
16867a0395d0Smrg	*-rom68k)
16876c3c2bceSmrg		os=coff
16887a0395d0Smrg		;;
16897a0395d0Smrg	*-*bug)
16906c3c2bceSmrg		os=coff
16917a0395d0Smrg		;;
16927a0395d0Smrg	*-apple)
16936c3c2bceSmrg		os=macos
16947a0395d0Smrg		;;
16957a0395d0Smrg	*-atari*)
16966c3c2bceSmrg		os=mint
16976c3c2bceSmrg		;;
16986c3c2bceSmrg	*-wrs)
16996c3c2bceSmrg		os=vxworks
17007a0395d0Smrg		;;
17017a0395d0Smrg	*)
17026c3c2bceSmrg		os=none
17037a0395d0Smrg		;;
17047a0395d0Smrgesac
17057a0395d0Smrgfi
17067a0395d0Smrg
17077a0395d0Smrg# Here we handle the case where we know the os, and the CPU type, but not the
17087a0395d0Smrg# manufacturer.  We pick the logical manufacturer.
17096c3c2bceSmrgcase $vendor in
17106c3c2bceSmrg	unknown)
17117a0395d0Smrg		case $os in
17126c3c2bceSmrg			riscix*)
17137a0395d0Smrg				vendor=acorn
17147a0395d0Smrg				;;
17156c3c2bceSmrg			sunos*)
17167a0395d0Smrg				vendor=sun
17177a0395d0Smrg				;;
17186c3c2bceSmrg			cnk*|-aix*)
17197a0395d0Smrg				vendor=ibm
17207a0395d0Smrg				;;
17216c3c2bceSmrg			beos*)
17227a0395d0Smrg				vendor=be
17237a0395d0Smrg				;;
17246c3c2bceSmrg			hpux*)
17257a0395d0Smrg				vendor=hp
17267a0395d0Smrg				;;
17276c3c2bceSmrg			mpeix*)
17287a0395d0Smrg				vendor=hp
17297a0395d0Smrg				;;
17306c3c2bceSmrg			hiux*)
17317a0395d0Smrg				vendor=hitachi
17327a0395d0Smrg				;;
17336c3c2bceSmrg			unos*)
17347a0395d0Smrg				vendor=crds
17357a0395d0Smrg				;;
17366c3c2bceSmrg			dgux*)
17377a0395d0Smrg				vendor=dg
17387a0395d0Smrg				;;
17396c3c2bceSmrg			luna*)
17407a0395d0Smrg				vendor=omron
17417a0395d0Smrg				;;
17426c3c2bceSmrg			genix*)
17437a0395d0Smrg				vendor=ns
17447a0395d0Smrg				;;
17456c3c2bceSmrg			clix*)
17466c3c2bceSmrg				vendor=intergraph
17476c3c2bceSmrg				;;
17486c3c2bceSmrg			mvs* | opened*)
17497a0395d0Smrg				vendor=ibm
17507a0395d0Smrg				;;
17516c3c2bceSmrg			os400*)
17527a0395d0Smrg				vendor=ibm
17537a0395d0Smrg				;;
17546c3c2bceSmrg			ptx*)
17557a0395d0Smrg				vendor=sequent
17567a0395d0Smrg				;;
17576c3c2bceSmrg			tpf*)
17587a0395d0Smrg				vendor=ibm
17597a0395d0Smrg				;;
17606c3c2bceSmrg			vxsim* | vxworks* | windiss*)
17617a0395d0Smrg				vendor=wrs
17627a0395d0Smrg				;;
17636c3c2bceSmrg			aux*)
17647a0395d0Smrg				vendor=apple
17657a0395d0Smrg				;;
17666c3c2bceSmrg			hms*)
17677a0395d0Smrg				vendor=hitachi
17687a0395d0Smrg				;;
17696c3c2bceSmrg			mpw* | macos*)
17707a0395d0Smrg				vendor=apple
17717a0395d0Smrg				;;
17726c3c2bceSmrg			*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
17737a0395d0Smrg				vendor=atari
17747a0395d0Smrg				;;
17756c3c2bceSmrg			vos*)
17767a0395d0Smrg				vendor=stratus
17777a0395d0Smrg				;;
17787a0395d0Smrg		esac
17797a0395d0Smrg		;;
17807a0395d0Smrgesac
17817a0395d0Smrg
17826c3c2bceSmrgecho "$cpu-$vendor-$os"
17837a0395d0Smrgexit
17847a0395d0Smrg
17857a0395d0Smrg# Local variables:
17866c3c2bceSmrg# eval: (add-hook 'before-save-hook 'time-stamp)
17877a0395d0Smrg# time-stamp-start: "timestamp='"
17887a0395d0Smrg# time-stamp-format: "%:y-%02m-%02d"
17897a0395d0Smrg# time-stamp-end: "'"
17907a0395d0Smrg# End:
1791