132b578d3Smrg#! /bin/sh
232b578d3Smrg# Configuration validation subroutine script.
30b0ce0bfSmrg#   Copyright 1992-2021 Free Software Foundation, Inc.
432b578d3Smrg
50b0ce0bfSmrg# shellcheck disable=SC2006,SC2268 # see below for rationale
60b0ce0bfSmrg
70b0ce0bfSmrgtimestamp='2021-08-14'
832b578d3Smrg
95a81ca49Smrg# This file is free software; you can redistribute it and/or modify it
105a81ca49Smrg# under the terms of the GNU General Public License as published by
115a81ca49Smrg# the Free Software Foundation; either version 3 of the License, or
1232b578d3Smrg# (at your option) any later version.
1332b578d3Smrg#
145a81ca49Smrg# This program is distributed in the hope that it will be useful, but
155a81ca49Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
165a81ca49Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
175a81ca49Smrg# General Public License for more details.
1832b578d3Smrg#
1932b578d3Smrg# You should have received a copy of the GNU General Public License
200b0ce0bfSmrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
2132b578d3Smrg#
2232b578d3Smrg# As a special exception to the GNU General Public License, if you
2332b578d3Smrg# distribute this file as part of a program that contains a
2432b578d3Smrg# configuration script generated by Autoconf, you may include it under
255a81ca49Smrg# the same distribution terms that you use for the rest of that
265a81ca49Smrg# program.  This Exception is an additional permission under section 7
275a81ca49Smrg# of the GNU General Public License, version 3 ("GPLv3").
2832b578d3Smrg
2932b578d3Smrg
305a81ca49Smrg# Please send patches to <config-patches@gnu.org>.
3132b578d3Smrg#
3232b578d3Smrg# Configuration subroutine to validate and canonicalize a configuration type.
3332b578d3Smrg# Supply the specified configuration type as an argument.
3432b578d3Smrg# If it is invalid, we print an error message on stderr and exit with code 1.
3532b578d3Smrg# Otherwise, we print the canonical config type on stdout and succeed.
3632b578d3Smrg
371b12faf6Smrg# You can get the latest version of this script from:
380b0ce0bfSmrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
391b12faf6Smrg
4032b578d3Smrg# This file is supposed to be the same for all GNU packages
4132b578d3Smrg# and recognize all the CPU types, system types and aliases
4232b578d3Smrg# that are meaningful with *any* GNU software.
4332b578d3Smrg# Each package is responsible for reporting which valid configurations
4432b578d3Smrg# it does not support.  The user should be able to distinguish
4532b578d3Smrg# a failure to support a valid configuration from a meaningless
4632b578d3Smrg# configuration.
4732b578d3Smrg
4832b578d3Smrg# The goal of this file is to map all the various variations of a given
4932b578d3Smrg# machine specification into a single specification in the form:
5032b578d3Smrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
5132b578d3Smrg# or in some cases, the newer four-part form:
5232b578d3Smrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
5332b578d3Smrg# It is wrong to echo any other type of specification.
5432b578d3Smrg
550b0ce0bfSmrg# The "shellcheck disable" line above the timestamp inhibits complaints
560b0ce0bfSmrg# about features and limitations of the classic Bourne shell that were
570b0ce0bfSmrg# superseded or lifted in POSIX.  However, this script identifies a wide
580b0ce0bfSmrg# variety of pre-POSIX systems that do not have POSIX shells at all, and
590b0ce0bfSmrg# even some reasonably current systems (Solaris 10 as case-in-point) still
600b0ce0bfSmrg# have a pre-POSIX /bin/sh.
610b0ce0bfSmrg
6232b578d3Smrgme=`echo "$0" | sed -e 's,.*/,,'`
6332b578d3Smrg
6432b578d3Smrgusage="\
650b0ce0bfSmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
6632b578d3Smrg
6732b578d3SmrgCanonicalize a configuration name.
6832b578d3Smrg
690b0ce0bfSmrgOptions:
7032b578d3Smrg  -h, --help         print this help, then exit
7132b578d3Smrg  -t, --time-stamp   print date of last modification, then exit
7232b578d3Smrg  -v, --version      print version number, then exit
7332b578d3Smrg
7432b578d3SmrgReport bugs and patches to <config-patches@gnu.org>."
7532b578d3Smrg
7632b578d3Smrgversion="\
7732b578d3SmrgGNU config.sub ($timestamp)
7832b578d3Smrg
790b0ce0bfSmrgCopyright 1992-2021 Free Software Foundation, Inc.
8032b578d3Smrg
8132b578d3SmrgThis is free software; see the source for copying conditions.  There is NO
8232b578d3Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
8332b578d3Smrg
8432b578d3Smrghelp="
8532b578d3SmrgTry \`$me --help' for more information."
8632b578d3Smrg
8732b578d3Smrg# Parse command line
8832b578d3Smrgwhile test $# -gt 0 ; do
8932b578d3Smrg  case $1 in
9032b578d3Smrg    --time-stamp | --time* | -t )
9132b578d3Smrg       echo "$timestamp" ; exit ;;
9232b578d3Smrg    --version | -v )
9332b578d3Smrg       echo "$version" ; exit ;;
9432b578d3Smrg    --help | --h* | -h )
9532b578d3Smrg       echo "$usage"; exit ;;
9632b578d3Smrg    -- )     # Stop option processing
9732b578d3Smrg       shift; break ;;
9832b578d3Smrg    - )	# Use stdin as input.
9932b578d3Smrg       break ;;
10032b578d3Smrg    -* )
1010b0ce0bfSmrg       echo "$me: invalid option $1$help" >&2
10232b578d3Smrg       exit 1 ;;
10332b578d3Smrg
10432b578d3Smrg    *local*)
10532b578d3Smrg       # First pass through any local machine types.
1060b0ce0bfSmrg       echo "$1"
10732b578d3Smrg       exit ;;
10832b578d3Smrg
10932b578d3Smrg    * )
11032b578d3Smrg       break ;;
11132b578d3Smrg  esac
11232b578d3Smrgdone
11332b578d3Smrg
11432b578d3Smrgcase $# in
11532b578d3Smrg 0) echo "$me: missing argument$help" >&2
11632b578d3Smrg    exit 1;;
11732b578d3Smrg 1) ;;
11832b578d3Smrg *) echo "$me: too many arguments$help" >&2
11932b578d3Smrg    exit 1;;
12032b578d3Smrgesac
12132b578d3Smrg
1220b0ce0bfSmrg# Split fields of configuration type
1230b0ce0bfSmrg# shellcheck disable=SC2162
1240b0ce0bfSmrgsaved_IFS=$IFS
1250b0ce0bfSmrgIFS="-" read field1 field2 field3 field4 <<EOF
1260b0ce0bfSmrg$1
1270b0ce0bfSmrgEOF
1280b0ce0bfSmrgIFS=$saved_IFS
12932b578d3Smrg
1300b0ce0bfSmrg# Separate into logical components for further validation
1310b0ce0bfSmrgcase $1 in
1320b0ce0bfSmrg	*-*-*-*-*)
1330b0ce0bfSmrg		echo Invalid configuration \`"$1"\': more than four components >&2
1340b0ce0bfSmrg		exit 1
13532b578d3Smrg		;;
1360b0ce0bfSmrg	*-*-*-*)
1370b0ce0bfSmrg		basic_machine=$field1-$field2
1380b0ce0bfSmrg		basic_os=$field3-$field4
13932b578d3Smrg		;;
1400b0ce0bfSmrg	*-*-*)
1410b0ce0bfSmrg		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
1420b0ce0bfSmrg		# parts
1430b0ce0bfSmrg		maybe_os=$field2-$field3
1440b0ce0bfSmrg		case $maybe_os in
1450b0ce0bfSmrg			nto-qnx* | linux-* | uclinux-uclibc* \
1460b0ce0bfSmrg			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
1470b0ce0bfSmrg			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
1480b0ce0bfSmrg			| storm-chaos* | os2-emx* | rtmk-nova*)
1490b0ce0bfSmrg				basic_machine=$field1
1500b0ce0bfSmrg				basic_os=$maybe_os
1510b0ce0bfSmrg				;;
1520b0ce0bfSmrg			android-linux)
1530b0ce0bfSmrg				basic_machine=$field1-unknown
1540b0ce0bfSmrg				basic_os=linux-android
1550b0ce0bfSmrg				;;
1560b0ce0bfSmrg			*)
1570b0ce0bfSmrg				basic_machine=$field1-$field2
1580b0ce0bfSmrg				basic_os=$field3
1590b0ce0bfSmrg				;;
1600b0ce0bfSmrg		esac
16132b578d3Smrg		;;
1620b0ce0bfSmrg	*-*)
1630b0ce0bfSmrg		# A lone config we happen to match not fitting any pattern
1640b0ce0bfSmrg		case $field1-$field2 in
1650b0ce0bfSmrg			decstation-3100)
1660b0ce0bfSmrg				basic_machine=mips-dec
1670b0ce0bfSmrg				basic_os=
1680b0ce0bfSmrg				;;
1690b0ce0bfSmrg			*-*)
1700b0ce0bfSmrg				# Second component is usually, but not always the OS
1710b0ce0bfSmrg				case $field2 in
1720b0ce0bfSmrg					# Prevent following clause from handling this valid os
1730b0ce0bfSmrg					sun*os*)
1740b0ce0bfSmrg						basic_machine=$field1
1750b0ce0bfSmrg						basic_os=$field2
1760b0ce0bfSmrg						;;
1770b0ce0bfSmrg					zephyr*)
1780b0ce0bfSmrg						basic_machine=$field1-unknown
1790b0ce0bfSmrg						basic_os=$field2
1800b0ce0bfSmrg						;;
1810b0ce0bfSmrg					# Manufacturers
1820b0ce0bfSmrg					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
1830b0ce0bfSmrg					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
1840b0ce0bfSmrg					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
1850b0ce0bfSmrg					| convergent* | ncr* | news | 32* | 3600* | 3100* \
1860b0ce0bfSmrg					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
1870b0ce0bfSmrg					| ultra | tti* | harris | dolphin | highlevel | gould \
1880b0ce0bfSmrg					| cbm | ns | masscomp | apple | axis | knuth | cray \
1890b0ce0bfSmrg					| microblaze* | sim | cisco \
1900b0ce0bfSmrg					| oki | wec | wrs | winbond)
1910b0ce0bfSmrg						basic_machine=$field1-$field2
1920b0ce0bfSmrg						basic_os=
1930b0ce0bfSmrg						;;
1940b0ce0bfSmrg					*)
1950b0ce0bfSmrg						basic_machine=$field1
1960b0ce0bfSmrg						basic_os=$field2
1970b0ce0bfSmrg						;;
1980b0ce0bfSmrg				esac
1990b0ce0bfSmrg			;;
2000b0ce0bfSmrg		esac
20132b578d3Smrg		;;
2020b0ce0bfSmrg	*)
2030b0ce0bfSmrg		# Convert single-component short-hands not valid as part of
2040b0ce0bfSmrg		# multi-component configurations.
2050b0ce0bfSmrg		case $field1 in
2060b0ce0bfSmrg			386bsd)
2070b0ce0bfSmrg				basic_machine=i386-pc
2080b0ce0bfSmrg				basic_os=bsd
2090b0ce0bfSmrg				;;
2100b0ce0bfSmrg			a29khif)
2110b0ce0bfSmrg				basic_machine=a29k-amd
2120b0ce0bfSmrg				basic_os=udi
2130b0ce0bfSmrg				;;
2140b0ce0bfSmrg			adobe68k)
2150b0ce0bfSmrg				basic_machine=m68010-adobe
2160b0ce0bfSmrg				basic_os=scout
2170b0ce0bfSmrg				;;
2180b0ce0bfSmrg			alliant)
2190b0ce0bfSmrg				basic_machine=fx80-alliant
2200b0ce0bfSmrg				basic_os=
2210b0ce0bfSmrg				;;
2220b0ce0bfSmrg			altos | altos3068)
2230b0ce0bfSmrg				basic_machine=m68k-altos
2240b0ce0bfSmrg				basic_os=
2250b0ce0bfSmrg				;;
2260b0ce0bfSmrg			am29k)
2270b0ce0bfSmrg				basic_machine=a29k-none
2280b0ce0bfSmrg				basic_os=bsd
2290b0ce0bfSmrg				;;
2300b0ce0bfSmrg			amdahl)
2310b0ce0bfSmrg				basic_machine=580-amdahl
2320b0ce0bfSmrg				basic_os=sysv
2330b0ce0bfSmrg				;;
2340b0ce0bfSmrg			amiga)
2350b0ce0bfSmrg				basic_machine=m68k-unknown
2360b0ce0bfSmrg				basic_os=
2370b0ce0bfSmrg				;;
2380b0ce0bfSmrg			amigaos | amigados)
2390b0ce0bfSmrg				basic_machine=m68k-unknown
2400b0ce0bfSmrg				basic_os=amigaos
2410b0ce0bfSmrg				;;
2420b0ce0bfSmrg			amigaunix | amix)
2430b0ce0bfSmrg				basic_machine=m68k-unknown
2440b0ce0bfSmrg				basic_os=sysv4
2450b0ce0bfSmrg				;;
2460b0ce0bfSmrg			apollo68)
2470b0ce0bfSmrg				basic_machine=m68k-apollo
2480b0ce0bfSmrg				basic_os=sysv
2490b0ce0bfSmrg				;;
2500b0ce0bfSmrg			apollo68bsd)
2510b0ce0bfSmrg				basic_machine=m68k-apollo
2520b0ce0bfSmrg				basic_os=bsd
2530b0ce0bfSmrg				;;
2540b0ce0bfSmrg			aros)
2550b0ce0bfSmrg				basic_machine=i386-pc
2560b0ce0bfSmrg				basic_os=aros
2570b0ce0bfSmrg				;;
2580b0ce0bfSmrg			aux)
2590b0ce0bfSmrg				basic_machine=m68k-apple
2600b0ce0bfSmrg				basic_os=aux
2610b0ce0bfSmrg				;;
2620b0ce0bfSmrg			balance)
2630b0ce0bfSmrg				basic_machine=ns32k-sequent
2640b0ce0bfSmrg				basic_os=dynix
2650b0ce0bfSmrg				;;
2660b0ce0bfSmrg			blackfin)
2670b0ce0bfSmrg				basic_machine=bfin-unknown
2680b0ce0bfSmrg				basic_os=linux
2690b0ce0bfSmrg				;;
2700b0ce0bfSmrg			cegcc)
2710b0ce0bfSmrg				basic_machine=arm-unknown
2720b0ce0bfSmrg				basic_os=cegcc
2730b0ce0bfSmrg				;;
2740b0ce0bfSmrg			convex-c1)
2750b0ce0bfSmrg				basic_machine=c1-convex
2760b0ce0bfSmrg				basic_os=bsd
2770b0ce0bfSmrg				;;
2780b0ce0bfSmrg			convex-c2)
2790b0ce0bfSmrg				basic_machine=c2-convex
2800b0ce0bfSmrg				basic_os=bsd
2810b0ce0bfSmrg				;;
2820b0ce0bfSmrg			convex-c32)
2830b0ce0bfSmrg				basic_machine=c32-convex
2840b0ce0bfSmrg				basic_os=bsd
2850b0ce0bfSmrg				;;
2860b0ce0bfSmrg			convex-c34)
2870b0ce0bfSmrg				basic_machine=c34-convex
2880b0ce0bfSmrg				basic_os=bsd
2890b0ce0bfSmrg				;;
2900b0ce0bfSmrg			convex-c38)
2910b0ce0bfSmrg				basic_machine=c38-convex
2920b0ce0bfSmrg				basic_os=bsd
2930b0ce0bfSmrg				;;
2940b0ce0bfSmrg			cray)
2950b0ce0bfSmrg				basic_machine=j90-cray
2960b0ce0bfSmrg				basic_os=unicos
2970b0ce0bfSmrg				;;
2980b0ce0bfSmrg			crds | unos)
2990b0ce0bfSmrg				basic_machine=m68k-crds
3000b0ce0bfSmrg				basic_os=
3010b0ce0bfSmrg				;;
3020b0ce0bfSmrg			da30)
3030b0ce0bfSmrg				basic_machine=m68k-da30
3040b0ce0bfSmrg				basic_os=
3050b0ce0bfSmrg				;;
3060b0ce0bfSmrg			decstation | pmax | pmin | dec3100 | decstatn)
3070b0ce0bfSmrg				basic_machine=mips-dec
3080b0ce0bfSmrg				basic_os=
3090b0ce0bfSmrg				;;
3100b0ce0bfSmrg			delta88)
3110b0ce0bfSmrg				basic_machine=m88k-motorola
3120b0ce0bfSmrg				basic_os=sysv3
3130b0ce0bfSmrg				;;
3140b0ce0bfSmrg			dicos)
3150b0ce0bfSmrg				basic_machine=i686-pc
3160b0ce0bfSmrg				basic_os=dicos
3170b0ce0bfSmrg				;;
3180b0ce0bfSmrg			djgpp)
3190b0ce0bfSmrg				basic_machine=i586-pc
3200b0ce0bfSmrg				basic_os=msdosdjgpp
3210b0ce0bfSmrg				;;
3220b0ce0bfSmrg			ebmon29k)
3230b0ce0bfSmrg				basic_machine=a29k-amd
3240b0ce0bfSmrg				basic_os=ebmon
3250b0ce0bfSmrg				;;
3260b0ce0bfSmrg			es1800 | OSE68k | ose68k | ose | OSE)
3270b0ce0bfSmrg				basic_machine=m68k-ericsson
3280b0ce0bfSmrg				basic_os=ose
3290b0ce0bfSmrg				;;
3300b0ce0bfSmrg			gmicro)
3310b0ce0bfSmrg				basic_machine=tron-gmicro
3320b0ce0bfSmrg				basic_os=sysv
3330b0ce0bfSmrg				;;
3340b0ce0bfSmrg			go32)
3350b0ce0bfSmrg				basic_machine=i386-pc
3360b0ce0bfSmrg				basic_os=go32
3370b0ce0bfSmrg				;;
3380b0ce0bfSmrg			h8300hms)
3390b0ce0bfSmrg				basic_machine=h8300-hitachi
3400b0ce0bfSmrg				basic_os=hms
3410b0ce0bfSmrg				;;
3420b0ce0bfSmrg			h8300xray)
3430b0ce0bfSmrg				basic_machine=h8300-hitachi
3440b0ce0bfSmrg				basic_os=xray
3450b0ce0bfSmrg				;;
3460b0ce0bfSmrg			h8500hms)
3470b0ce0bfSmrg				basic_machine=h8500-hitachi
3480b0ce0bfSmrg				basic_os=hms
3490b0ce0bfSmrg				;;
3500b0ce0bfSmrg			harris)
3510b0ce0bfSmrg				basic_machine=m88k-harris
3520b0ce0bfSmrg				basic_os=sysv3
3530b0ce0bfSmrg				;;
3540b0ce0bfSmrg			hp300 | hp300hpux)
3550b0ce0bfSmrg				basic_machine=m68k-hp
3560b0ce0bfSmrg				basic_os=hpux
3570b0ce0bfSmrg				;;
3580b0ce0bfSmrg			hp300bsd)
3590b0ce0bfSmrg				basic_machine=m68k-hp
3600b0ce0bfSmrg				basic_os=bsd
3610b0ce0bfSmrg				;;
3620b0ce0bfSmrg			hppaosf)
3630b0ce0bfSmrg				basic_machine=hppa1.1-hp
3640b0ce0bfSmrg				basic_os=osf
3650b0ce0bfSmrg				;;
3660b0ce0bfSmrg			hppro)
3670b0ce0bfSmrg				basic_machine=hppa1.1-hp
3680b0ce0bfSmrg				basic_os=proelf
3690b0ce0bfSmrg				;;
3700b0ce0bfSmrg			i386mach)
3710b0ce0bfSmrg				basic_machine=i386-mach
3720b0ce0bfSmrg				basic_os=mach
3730b0ce0bfSmrg				;;
3740b0ce0bfSmrg			isi68 | isi)
3750b0ce0bfSmrg				basic_machine=m68k-isi
3760b0ce0bfSmrg				basic_os=sysv
3770b0ce0bfSmrg				;;
3780b0ce0bfSmrg			m68knommu)
3790b0ce0bfSmrg				basic_machine=m68k-unknown
3800b0ce0bfSmrg				basic_os=linux
3810b0ce0bfSmrg				;;
3820b0ce0bfSmrg			magnum | m3230)
3830b0ce0bfSmrg				basic_machine=mips-mips
3840b0ce0bfSmrg				basic_os=sysv
3850b0ce0bfSmrg				;;
3860b0ce0bfSmrg			merlin)
3870b0ce0bfSmrg				basic_machine=ns32k-utek
3880b0ce0bfSmrg				basic_os=sysv
3890b0ce0bfSmrg				;;
3900b0ce0bfSmrg			mingw64)
3910b0ce0bfSmrg				basic_machine=x86_64-pc
3920b0ce0bfSmrg				basic_os=mingw64
3930b0ce0bfSmrg				;;
3940b0ce0bfSmrg			mingw32)
3950b0ce0bfSmrg				basic_machine=i686-pc
3960b0ce0bfSmrg				basic_os=mingw32
3970b0ce0bfSmrg				;;
3980b0ce0bfSmrg			mingw32ce)
3990b0ce0bfSmrg				basic_machine=arm-unknown
4000b0ce0bfSmrg				basic_os=mingw32ce
4010b0ce0bfSmrg				;;
4020b0ce0bfSmrg			monitor)
4030b0ce0bfSmrg				basic_machine=m68k-rom68k
4040b0ce0bfSmrg				basic_os=coff
4050b0ce0bfSmrg				;;
4060b0ce0bfSmrg			morphos)
4070b0ce0bfSmrg				basic_machine=powerpc-unknown
4080b0ce0bfSmrg				basic_os=morphos
4090b0ce0bfSmrg				;;
4100b0ce0bfSmrg			moxiebox)
4110b0ce0bfSmrg				basic_machine=moxie-unknown
4120b0ce0bfSmrg				basic_os=moxiebox
4130b0ce0bfSmrg				;;
4140b0ce0bfSmrg			msdos)
4150b0ce0bfSmrg				basic_machine=i386-pc
4160b0ce0bfSmrg				basic_os=msdos
4170b0ce0bfSmrg				;;
4180b0ce0bfSmrg			msys)
4190b0ce0bfSmrg				basic_machine=i686-pc
4200b0ce0bfSmrg				basic_os=msys
4210b0ce0bfSmrg				;;
4220b0ce0bfSmrg			mvs)
4230b0ce0bfSmrg				basic_machine=i370-ibm
4240b0ce0bfSmrg				basic_os=mvs
4250b0ce0bfSmrg				;;
4260b0ce0bfSmrg			nacl)
4270b0ce0bfSmrg				basic_machine=le32-unknown
4280b0ce0bfSmrg				basic_os=nacl
4290b0ce0bfSmrg				;;
4300b0ce0bfSmrg			ncr3000)
4310b0ce0bfSmrg				basic_machine=i486-ncr
4320b0ce0bfSmrg				basic_os=sysv4
4330b0ce0bfSmrg				;;
4340b0ce0bfSmrg			netbsd386)
4350b0ce0bfSmrg				basic_machine=i386-pc
4360b0ce0bfSmrg				basic_os=netbsd
4370b0ce0bfSmrg				;;
4380b0ce0bfSmrg			netwinder)
4390b0ce0bfSmrg				basic_machine=armv4l-rebel
4400b0ce0bfSmrg				basic_os=linux
4410b0ce0bfSmrg				;;
4420b0ce0bfSmrg			news | news700 | news800 | news900)
4430b0ce0bfSmrg				basic_machine=m68k-sony
4440b0ce0bfSmrg				basic_os=newsos
4450b0ce0bfSmrg				;;
4460b0ce0bfSmrg			news1000)
4470b0ce0bfSmrg				basic_machine=m68030-sony
4480b0ce0bfSmrg				basic_os=newsos
4490b0ce0bfSmrg				;;
4500b0ce0bfSmrg			necv70)
4510b0ce0bfSmrg				basic_machine=v70-nec
4520b0ce0bfSmrg				basic_os=sysv
4530b0ce0bfSmrg				;;
4540b0ce0bfSmrg			nh3000)
4550b0ce0bfSmrg				basic_machine=m68k-harris
4560b0ce0bfSmrg				basic_os=cxux
4570b0ce0bfSmrg				;;
4580b0ce0bfSmrg			nh[45]000)
4590b0ce0bfSmrg				basic_machine=m88k-harris
4600b0ce0bfSmrg				basic_os=cxux
4610b0ce0bfSmrg				;;
4620b0ce0bfSmrg			nindy960)
4630b0ce0bfSmrg				basic_machine=i960-intel
4640b0ce0bfSmrg				basic_os=nindy
4650b0ce0bfSmrg				;;
4660b0ce0bfSmrg			mon960)
4670b0ce0bfSmrg				basic_machine=i960-intel
4680b0ce0bfSmrg				basic_os=mon960
4690b0ce0bfSmrg				;;
4700b0ce0bfSmrg			nonstopux)
4710b0ce0bfSmrg				basic_machine=mips-compaq
4720b0ce0bfSmrg				basic_os=nonstopux
4730b0ce0bfSmrg				;;
4740b0ce0bfSmrg			os400)
4750b0ce0bfSmrg				basic_machine=powerpc-ibm
4760b0ce0bfSmrg				basic_os=os400
4770b0ce0bfSmrg				;;
4780b0ce0bfSmrg			OSE68000 | ose68000)
4790b0ce0bfSmrg				basic_machine=m68000-ericsson
4800b0ce0bfSmrg				basic_os=ose
4810b0ce0bfSmrg				;;
4820b0ce0bfSmrg			os68k)
4830b0ce0bfSmrg				basic_machine=m68k-none
4840b0ce0bfSmrg				basic_os=os68k
4850b0ce0bfSmrg				;;
4860b0ce0bfSmrg			paragon)
4870b0ce0bfSmrg				basic_machine=i860-intel
4880b0ce0bfSmrg				basic_os=osf
4890b0ce0bfSmrg				;;
4900b0ce0bfSmrg			parisc)
4910b0ce0bfSmrg				basic_machine=hppa-unknown
4920b0ce0bfSmrg				basic_os=linux
4930b0ce0bfSmrg				;;
4940b0ce0bfSmrg			psp)
4950b0ce0bfSmrg				basic_machine=mipsallegrexel-sony
4960b0ce0bfSmrg				basic_os=psp
4970b0ce0bfSmrg				;;
4980b0ce0bfSmrg			pw32)
4990b0ce0bfSmrg				basic_machine=i586-unknown
5000b0ce0bfSmrg				basic_os=pw32
5010b0ce0bfSmrg				;;
5020b0ce0bfSmrg			rdos | rdos64)
5030b0ce0bfSmrg				basic_machine=x86_64-pc
5040b0ce0bfSmrg				basic_os=rdos
5050b0ce0bfSmrg				;;
5060b0ce0bfSmrg			rdos32)
5070b0ce0bfSmrg				basic_machine=i386-pc
5080b0ce0bfSmrg				basic_os=rdos
5090b0ce0bfSmrg				;;
5100b0ce0bfSmrg			rom68k)
5110b0ce0bfSmrg				basic_machine=m68k-rom68k
5120b0ce0bfSmrg				basic_os=coff
5130b0ce0bfSmrg				;;
5140b0ce0bfSmrg			sa29200)
5150b0ce0bfSmrg				basic_machine=a29k-amd
5160b0ce0bfSmrg				basic_os=udi
5170b0ce0bfSmrg				;;
5180b0ce0bfSmrg			sei)
5190b0ce0bfSmrg				basic_machine=mips-sei
5200b0ce0bfSmrg				basic_os=seiux
5210b0ce0bfSmrg				;;
5220b0ce0bfSmrg			sequent)
5230b0ce0bfSmrg				basic_machine=i386-sequent
5240b0ce0bfSmrg				basic_os=
5250b0ce0bfSmrg				;;
5260b0ce0bfSmrg			sps7)
5270b0ce0bfSmrg				basic_machine=m68k-bull
5280b0ce0bfSmrg				basic_os=sysv2
5290b0ce0bfSmrg				;;
5300b0ce0bfSmrg			st2000)
5310b0ce0bfSmrg				basic_machine=m68k-tandem
5320b0ce0bfSmrg				basic_os=
5330b0ce0bfSmrg				;;
5340b0ce0bfSmrg			stratus)
5350b0ce0bfSmrg				basic_machine=i860-stratus
5360b0ce0bfSmrg				basic_os=sysv4
5370b0ce0bfSmrg				;;
5380b0ce0bfSmrg			sun2)
5390b0ce0bfSmrg				basic_machine=m68000-sun
5400b0ce0bfSmrg				basic_os=
5410b0ce0bfSmrg				;;
5420b0ce0bfSmrg			sun2os3)
5430b0ce0bfSmrg				basic_machine=m68000-sun
5440b0ce0bfSmrg				basic_os=sunos3
5450b0ce0bfSmrg				;;
5460b0ce0bfSmrg			sun2os4)
5470b0ce0bfSmrg				basic_machine=m68000-sun
5480b0ce0bfSmrg				basic_os=sunos4
5490b0ce0bfSmrg				;;
5500b0ce0bfSmrg			sun3)
5510b0ce0bfSmrg				basic_machine=m68k-sun
5520b0ce0bfSmrg				basic_os=
5530b0ce0bfSmrg				;;
5540b0ce0bfSmrg			sun3os3)
5550b0ce0bfSmrg				basic_machine=m68k-sun
5560b0ce0bfSmrg				basic_os=sunos3
5570b0ce0bfSmrg				;;
5580b0ce0bfSmrg			sun3os4)
5590b0ce0bfSmrg				basic_machine=m68k-sun
5600b0ce0bfSmrg				basic_os=sunos4
5610b0ce0bfSmrg				;;
5620b0ce0bfSmrg			sun4)
5630b0ce0bfSmrg				basic_machine=sparc-sun
5640b0ce0bfSmrg				basic_os=
5650b0ce0bfSmrg				;;
5660b0ce0bfSmrg			sun4os3)
5670b0ce0bfSmrg				basic_machine=sparc-sun
5680b0ce0bfSmrg				basic_os=sunos3
5690b0ce0bfSmrg				;;
5700b0ce0bfSmrg			sun4os4)
5710b0ce0bfSmrg				basic_machine=sparc-sun
5720b0ce0bfSmrg				basic_os=sunos4
5730b0ce0bfSmrg				;;
5740b0ce0bfSmrg			sun4sol2)
5750b0ce0bfSmrg				basic_machine=sparc-sun
5760b0ce0bfSmrg				basic_os=solaris2
5770b0ce0bfSmrg				;;
5780b0ce0bfSmrg			sun386 | sun386i | roadrunner)
5790b0ce0bfSmrg				basic_machine=i386-sun
5800b0ce0bfSmrg				basic_os=
5810b0ce0bfSmrg				;;
5820b0ce0bfSmrg			sv1)
5830b0ce0bfSmrg				basic_machine=sv1-cray
5840b0ce0bfSmrg				basic_os=unicos
5850b0ce0bfSmrg				;;
5860b0ce0bfSmrg			symmetry)
5870b0ce0bfSmrg				basic_machine=i386-sequent
5880b0ce0bfSmrg				basic_os=dynix
5890b0ce0bfSmrg				;;
5900b0ce0bfSmrg			t3e)
5910b0ce0bfSmrg				basic_machine=alphaev5-cray
5920b0ce0bfSmrg				basic_os=unicos
5930b0ce0bfSmrg				;;
5940b0ce0bfSmrg			t90)
5950b0ce0bfSmrg				basic_machine=t90-cray
5960b0ce0bfSmrg				basic_os=unicos
5970b0ce0bfSmrg				;;
5980b0ce0bfSmrg			toad1)
5990b0ce0bfSmrg				basic_machine=pdp10-xkl
6000b0ce0bfSmrg				basic_os=tops20
6010b0ce0bfSmrg				;;
6020b0ce0bfSmrg			tpf)
6030b0ce0bfSmrg				basic_machine=s390x-ibm
6040b0ce0bfSmrg				basic_os=tpf
6050b0ce0bfSmrg				;;
6060b0ce0bfSmrg			udi29k)
6070b0ce0bfSmrg				basic_machine=a29k-amd
6080b0ce0bfSmrg				basic_os=udi
6090b0ce0bfSmrg				;;
6100b0ce0bfSmrg			ultra3)
6110b0ce0bfSmrg				basic_machine=a29k-nyu
6120b0ce0bfSmrg				basic_os=sym1
6130b0ce0bfSmrg				;;
6140b0ce0bfSmrg			v810 | necv810)
6150b0ce0bfSmrg				basic_machine=v810-nec
6160b0ce0bfSmrg				basic_os=none
6170b0ce0bfSmrg				;;
6180b0ce0bfSmrg			vaxv)
6190b0ce0bfSmrg				basic_machine=vax-dec
6200b0ce0bfSmrg				basic_os=sysv
6210b0ce0bfSmrg				;;
6220b0ce0bfSmrg			vms)
6230b0ce0bfSmrg				basic_machine=vax-dec
6240b0ce0bfSmrg				basic_os=vms
6250b0ce0bfSmrg				;;
6260b0ce0bfSmrg			vsta)
6270b0ce0bfSmrg				basic_machine=i386-pc
6280b0ce0bfSmrg				basic_os=vsta
6290b0ce0bfSmrg				;;
6300b0ce0bfSmrg			vxworks960)
6310b0ce0bfSmrg				basic_machine=i960-wrs
6320b0ce0bfSmrg				basic_os=vxworks
6330b0ce0bfSmrg				;;
6340b0ce0bfSmrg			vxworks68)
6350b0ce0bfSmrg				basic_machine=m68k-wrs
6360b0ce0bfSmrg				basic_os=vxworks
6370b0ce0bfSmrg				;;
6380b0ce0bfSmrg			vxworks29k)
6390b0ce0bfSmrg				basic_machine=a29k-wrs
6400b0ce0bfSmrg				basic_os=vxworks
6410b0ce0bfSmrg				;;
6420b0ce0bfSmrg			xbox)
6430b0ce0bfSmrg				basic_machine=i686-pc
6440b0ce0bfSmrg				basic_os=mingw32
6450b0ce0bfSmrg				;;
6460b0ce0bfSmrg			ymp)
6470b0ce0bfSmrg				basic_machine=ymp-cray
6480b0ce0bfSmrg				basic_os=unicos
6490b0ce0bfSmrg				;;
6500b0ce0bfSmrg			*)
6510b0ce0bfSmrg				basic_machine=$1
6520b0ce0bfSmrg				basic_os=
6530b0ce0bfSmrg				;;
6540b0ce0bfSmrg		esac
65532b578d3Smrg		;;
65632b578d3Smrgesac
65732b578d3Smrg
6580b0ce0bfSmrg# Decode 1-component or ad-hoc basic machines
65932b578d3Smrgcase $basic_machine in
6600b0ce0bfSmrg	# Here we handle the default manufacturer of certain CPU types.  It is in
6610b0ce0bfSmrg	# some cases the only manufacturer, in others, it is the most popular.
6620b0ce0bfSmrg	w89k)
6630b0ce0bfSmrg		cpu=hppa1.1
6640b0ce0bfSmrg		vendor=winbond
6655a81ca49Smrg		;;
6660b0ce0bfSmrg	op50n)
6670b0ce0bfSmrg		cpu=hppa1.1
6680b0ce0bfSmrg		vendor=oki
66932b578d3Smrg		;;
6700b0ce0bfSmrg	op60c)
6710b0ce0bfSmrg		cpu=hppa1.1
6720b0ce0bfSmrg		vendor=oki
67332b578d3Smrg		;;
6740b0ce0bfSmrg	ibm*)
6750b0ce0bfSmrg		cpu=i370
6760b0ce0bfSmrg		vendor=ibm
67732b578d3Smrg		;;
6780b0ce0bfSmrg	orion105)
6790b0ce0bfSmrg		cpu=clipper
6800b0ce0bfSmrg		vendor=highlevel
6815a81ca49Smrg		;;
6820b0ce0bfSmrg	mac | mpw | mac-mpw)
6830b0ce0bfSmrg		cpu=m68k
6840b0ce0bfSmrg		vendor=apple
685e35d4d8eSmrg		;;
6860b0ce0bfSmrg	pmac | pmac-mpw)
6870b0ce0bfSmrg		cpu=powerpc
6880b0ce0bfSmrg		vendor=apple
689e35d4d8eSmrg		;;
690e35d4d8eSmrg
69132b578d3Smrg	# Recognize the various machine names and aliases which stand
69232b578d3Smrg	# for a CPU type and a company and sometimes even an OS.
69332b578d3Smrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
6940b0ce0bfSmrg		cpu=m68000
6950b0ce0bfSmrg		vendor=att
69632b578d3Smrg		;;
69732b578d3Smrg	3b*)
6980b0ce0bfSmrg		cpu=we32k
6990b0ce0bfSmrg		vendor=att
700d31dbc53Smrg		;;
7011b12faf6Smrg	bluegene*)
7020b0ce0bfSmrg		cpu=powerpc
7030b0ce0bfSmrg		vendor=ibm
7040b0ce0bfSmrg		basic_os=cnk
70532b578d3Smrg		;;
70632b578d3Smrg	decsystem10* | dec10*)
7070b0ce0bfSmrg		cpu=pdp10
7080b0ce0bfSmrg		vendor=dec
7090b0ce0bfSmrg		basic_os=tops10
71032b578d3Smrg		;;
71132b578d3Smrg	decsystem20* | dec20*)
7120b0ce0bfSmrg		cpu=pdp10
7130b0ce0bfSmrg		vendor=dec
7140b0ce0bfSmrg		basic_os=tops20
71532b578d3Smrg		;;
71632b578d3Smrg	delta | 3300 | motorola-3300 | motorola-delta \
71732b578d3Smrg	      | 3300-motorola | delta-motorola)
7180b0ce0bfSmrg		cpu=m68k
7190b0ce0bfSmrg		vendor=motorola
72032b578d3Smrg		;;
7210b0ce0bfSmrg	dpx2*)
7220b0ce0bfSmrg		cpu=m68k
7230b0ce0bfSmrg		vendor=bull
7240b0ce0bfSmrg		basic_os=sysv3
72532b578d3Smrg		;;
72632b578d3Smrg	encore | umax | mmax)
7270b0ce0bfSmrg		cpu=ns32k
7280b0ce0bfSmrg		vendor=encore
72932b578d3Smrg		;;
7300b0ce0bfSmrg	elxsi)
7310b0ce0bfSmrg		cpu=elxsi
7320b0ce0bfSmrg		vendor=elxsi
7330b0ce0bfSmrg		basic_os=${basic_os:-bsd}
73432b578d3Smrg		;;
73532b578d3Smrg	fx2800)
7360b0ce0bfSmrg		cpu=i860
7370b0ce0bfSmrg		vendor=alliant
73832b578d3Smrg		;;
73932b578d3Smrg	genix)
7400b0ce0bfSmrg		cpu=ns32k
7410b0ce0bfSmrg		vendor=ns
74232b578d3Smrg		;;
74332b578d3Smrg	h3050r* | hiux*)
7440b0ce0bfSmrg		cpu=hppa1.1
7450b0ce0bfSmrg		vendor=hitachi
7460b0ce0bfSmrg		basic_os=hiuxwe2
74732b578d3Smrg		;;
74832b578d3Smrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
7490b0ce0bfSmrg		cpu=hppa1.0
7500b0ce0bfSmrg		vendor=hp
75132b578d3Smrg		;;
75232b578d3Smrg	hp9k2[0-9][0-9] | hp9k31[0-9])
7530b0ce0bfSmrg		cpu=m68000
7540b0ce0bfSmrg		vendor=hp
75532b578d3Smrg		;;
75632b578d3Smrg	hp9k3[2-9][0-9])
7570b0ce0bfSmrg		cpu=m68k
7580b0ce0bfSmrg		vendor=hp
75932b578d3Smrg		;;
76032b578d3Smrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
7610b0ce0bfSmrg		cpu=hppa1.0
7620b0ce0bfSmrg		vendor=hp
76332b578d3Smrg		;;
76432b578d3Smrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
7650b0ce0bfSmrg		cpu=hppa1.1
7660b0ce0bfSmrg		vendor=hp
76732b578d3Smrg		;;
76832b578d3Smrg	hp9k78[0-9] | hp78[0-9])
76932b578d3Smrg		# FIXME: really hppa2.0-hp
7700b0ce0bfSmrg		cpu=hppa1.1
7710b0ce0bfSmrg		vendor=hp
77232b578d3Smrg		;;
77332b578d3Smrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
77432b578d3Smrg		# FIXME: really hppa2.0-hp
7750b0ce0bfSmrg		cpu=hppa1.1
7760b0ce0bfSmrg		vendor=hp
77732b578d3Smrg		;;
77832b578d3Smrg	hp9k8[0-9][13679] | hp8[0-9][13679])
7790b0ce0bfSmrg		cpu=hppa1.1
7800b0ce0bfSmrg		vendor=hp
78132b578d3Smrg		;;
78232b578d3Smrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
7830b0ce0bfSmrg		cpu=hppa1.0
7840b0ce0bfSmrg		vendor=hp
78532b578d3Smrg		;;
78632b578d3Smrg	i*86v32)
7870b0ce0bfSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7880b0ce0bfSmrg		vendor=pc
7890b0ce0bfSmrg		basic_os=sysv32
79032b578d3Smrg		;;
79132b578d3Smrg	i*86v4*)
7920b0ce0bfSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7930b0ce0bfSmrg		vendor=pc
7940b0ce0bfSmrg		basic_os=sysv4
79532b578d3Smrg		;;
79632b578d3Smrg	i*86v)
7970b0ce0bfSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7980b0ce0bfSmrg		vendor=pc
7990b0ce0bfSmrg		basic_os=sysv
80032b578d3Smrg		;;
80132b578d3Smrg	i*86sol2)
8020b0ce0bfSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
8030b0ce0bfSmrg		vendor=pc
8040b0ce0bfSmrg		basic_os=solaris2
80532b578d3Smrg		;;
8060b0ce0bfSmrg	j90 | j90-cray)
8070b0ce0bfSmrg		cpu=j90
8080b0ce0bfSmrg		vendor=cray
8090b0ce0bfSmrg		basic_os=${basic_os:-unicos}
81032b578d3Smrg		;;
81132b578d3Smrg	iris | iris4d)
8120b0ce0bfSmrg		cpu=mips
8130b0ce0bfSmrg		vendor=sgi
8140b0ce0bfSmrg		case $basic_os in
8150b0ce0bfSmrg		    irix*)
81632b578d3Smrg			;;
81732b578d3Smrg		    *)
8180b0ce0bfSmrg			basic_os=irix4
81932b578d3Smrg			;;
82032b578d3Smrg		esac
82132b578d3Smrg		;;
82232b578d3Smrg	miniframe)
8230b0ce0bfSmrg		cpu=m68000
8240b0ce0bfSmrg		vendor=convergent
825e35d4d8eSmrg		;;
8260b0ce0bfSmrg	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
8270b0ce0bfSmrg		cpu=m68k
8280b0ce0bfSmrg		vendor=atari
8290b0ce0bfSmrg		basic_os=mint
83032b578d3Smrg		;;
83132b578d3Smrg	news-3600 | risc-news)
8320b0ce0bfSmrg		cpu=mips
8330b0ce0bfSmrg		vendor=sony
8340b0ce0bfSmrg		basic_os=newsos
8350b0ce0bfSmrg		;;
8360b0ce0bfSmrg	next | m*-next)
8370b0ce0bfSmrg		cpu=m68k
8380b0ce0bfSmrg		vendor=next
8390b0ce0bfSmrg		case $basic_os in
8400b0ce0bfSmrg		    openstep*)
8410b0ce0bfSmrg		        ;;
8420b0ce0bfSmrg		    nextstep*)
84332b578d3Smrg			;;
8440b0ce0bfSmrg		    ns2*)
8450b0ce0bfSmrg		      basic_os=nextstep2
84632b578d3Smrg			;;
84732b578d3Smrg		    *)
8480b0ce0bfSmrg		      basic_os=nextstep3
84932b578d3Smrg			;;
85032b578d3Smrg		esac
85132b578d3Smrg		;;
85232b578d3Smrg	np1)
8530b0ce0bfSmrg		cpu=np1
8540b0ce0bfSmrg		vendor=gould
85532b578d3Smrg		;;
85632b578d3Smrg	op50n-* | op60c-*)
8570b0ce0bfSmrg		cpu=hppa1.1
8580b0ce0bfSmrg		vendor=oki
8590b0ce0bfSmrg		basic_os=proelf
86032b578d3Smrg		;;
86132b578d3Smrg	pa-hitachi)
8620b0ce0bfSmrg		cpu=hppa1.1
8630b0ce0bfSmrg		vendor=hitachi
8640b0ce0bfSmrg		basic_os=hiuxwe2
865d31dbc53Smrg		;;
86632b578d3Smrg	pbd)
8670b0ce0bfSmrg		cpu=sparc
8680b0ce0bfSmrg		vendor=tti
86932b578d3Smrg		;;
87032b578d3Smrg	pbb)
8710b0ce0bfSmrg		cpu=m68k
8720b0ce0bfSmrg		vendor=tti
87332b578d3Smrg		;;
8740b0ce0bfSmrg	pc532)
8750b0ce0bfSmrg		cpu=ns32k
8760b0ce0bfSmrg		vendor=pc532
87732b578d3Smrg		;;
87832b578d3Smrg	pn)
8790b0ce0bfSmrg		cpu=pn
8800b0ce0bfSmrg		vendor=gould
88132b578d3Smrg		;;
8820b0ce0bfSmrg	power)
8830b0ce0bfSmrg		cpu=power
8840b0ce0bfSmrg		vendor=ibm
88532b578d3Smrg		;;
88632b578d3Smrg	ps2)
8870b0ce0bfSmrg		cpu=i386
8880b0ce0bfSmrg		vendor=ibm
88932b578d3Smrg		;;
89032b578d3Smrg	rm[46]00)
8910b0ce0bfSmrg		cpu=mips
8920b0ce0bfSmrg		vendor=siemens
89332b578d3Smrg		;;
89432b578d3Smrg	rtpc | rtpc-*)
8950b0ce0bfSmrg		cpu=romp
8960b0ce0bfSmrg		vendor=ibm
89732b578d3Smrg		;;
8980b0ce0bfSmrg	sde)
8990b0ce0bfSmrg		cpu=mipsisa32
9000b0ce0bfSmrg		vendor=sde
9010b0ce0bfSmrg		basic_os=${basic_os:-elf}
90232b578d3Smrg		;;
9030b0ce0bfSmrg	simso-wrs)
9040b0ce0bfSmrg		cpu=sparclite
9050b0ce0bfSmrg		vendor=wrs
9060b0ce0bfSmrg		basic_os=vxworks
90732b578d3Smrg		;;
9080b0ce0bfSmrg	tower | tower-32)
9090b0ce0bfSmrg		cpu=m68k
9100b0ce0bfSmrg		vendor=ncr
91132b578d3Smrg		;;
9120b0ce0bfSmrg	vpp*|vx|vx-*)
9130b0ce0bfSmrg		cpu=f301
9140b0ce0bfSmrg		vendor=fujitsu
91532b578d3Smrg		;;
9160b0ce0bfSmrg	w65)
9170b0ce0bfSmrg		cpu=w65
9180b0ce0bfSmrg		vendor=wdc
91932b578d3Smrg		;;
9200b0ce0bfSmrg	w89k-*)
9210b0ce0bfSmrg		cpu=hppa1.1
9220b0ce0bfSmrg		vendor=winbond
9230b0ce0bfSmrg		basic_os=proelf
92432b578d3Smrg		;;
9250b0ce0bfSmrg	none)
9260b0ce0bfSmrg		cpu=none
9270b0ce0bfSmrg		vendor=none
92832b578d3Smrg		;;
9290b0ce0bfSmrg	leon|leon[3-9])
9300b0ce0bfSmrg		cpu=sparc
9310b0ce0bfSmrg		vendor=$basic_machine
93232b578d3Smrg		;;
9330b0ce0bfSmrg	leon-*|leon[3-9]-*)
9340b0ce0bfSmrg		cpu=sparc
9350b0ce0bfSmrg		vendor=`echo "$basic_machine" | sed 's/-.*//'`
93632b578d3Smrg		;;
9370b0ce0bfSmrg
9380b0ce0bfSmrg	*-*)
9390b0ce0bfSmrg		# shellcheck disable=SC2162
9400b0ce0bfSmrg		saved_IFS=$IFS
9410b0ce0bfSmrg		IFS="-" read cpu vendor <<EOF
9420b0ce0bfSmrg$basic_machine
9430b0ce0bfSmrgEOF
9440b0ce0bfSmrg		IFS=$saved_IFS
94532b578d3Smrg		;;
9460b0ce0bfSmrg	# We use `pc' rather than `unknown'
9470b0ce0bfSmrg	# because (1) that's what they normally are, and
9480b0ce0bfSmrg	# (2) the word "unknown" tends to confuse beginning users.
9490b0ce0bfSmrg	i*86 | x86_64)
9500b0ce0bfSmrg		cpu=$basic_machine
9510b0ce0bfSmrg		vendor=pc
95232b578d3Smrg		;;
9530b0ce0bfSmrg	# These rules are duplicated from below for sake of the special case above;
9540b0ce0bfSmrg	# i.e. things that normalized to x86 arches should also default to "pc"
9550b0ce0bfSmrg	pc98)
9560b0ce0bfSmrg		cpu=i386
9570b0ce0bfSmrg		vendor=pc
95832b578d3Smrg		;;
9590b0ce0bfSmrg	x64 | amd64)
9600b0ce0bfSmrg		cpu=x86_64
9610b0ce0bfSmrg		vendor=pc
96232b578d3Smrg		;;
9630b0ce0bfSmrg	# Recognize the basic CPU types without company name.
9640b0ce0bfSmrg	*)
9650b0ce0bfSmrg		cpu=$basic_machine
9660b0ce0bfSmrg		vendor=unknown
967e35d4d8eSmrg		;;
9680b0ce0bfSmrgesac
9690b0ce0bfSmrg
9700b0ce0bfSmrgunset -v basic_machine
9710b0ce0bfSmrg
9720b0ce0bfSmrg# Decode basic machines in the full and proper CPU-Company form.
9730b0ce0bfSmrgcase $cpu-$vendor in
9740b0ce0bfSmrg	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
9750b0ce0bfSmrg	# some cases the only manufacturer, in others, it is the most popular.
9760b0ce0bfSmrg	craynv-unknown)
9770b0ce0bfSmrg		vendor=cray
9780b0ce0bfSmrg		basic_os=${basic_os:-unicosmp}
97932b578d3Smrg		;;
9800b0ce0bfSmrg	c90-unknown | c90-cray)
9810b0ce0bfSmrg		vendor=cray
9820b0ce0bfSmrg		basic_os=${Basic_os:-unicos}
98332b578d3Smrg		;;
9840b0ce0bfSmrg	fx80-unknown)
9850b0ce0bfSmrg		vendor=alliant
98632b578d3Smrg		;;
9870b0ce0bfSmrg	romp-unknown)
9880b0ce0bfSmrg		vendor=ibm
98932b578d3Smrg		;;
9900b0ce0bfSmrg	mmix-unknown)
9910b0ce0bfSmrg		vendor=knuth
99232b578d3Smrg		;;
9930b0ce0bfSmrg	microblaze-unknown | microblazeel-unknown)
9940b0ce0bfSmrg		vendor=xilinx
99532b578d3Smrg		;;
9960b0ce0bfSmrg	rs6000-unknown)
9970b0ce0bfSmrg		vendor=ibm
99832b578d3Smrg		;;
9990b0ce0bfSmrg	vax-unknown)
10000b0ce0bfSmrg		vendor=dec
100132b578d3Smrg		;;
10020b0ce0bfSmrg	pdp11-unknown)
10030b0ce0bfSmrg		vendor=dec
100432b578d3Smrg		;;
10050b0ce0bfSmrg	we32k-unknown)
10060b0ce0bfSmrg		vendor=att
100732b578d3Smrg		;;
10080b0ce0bfSmrg	cydra-unknown)
10090b0ce0bfSmrg		vendor=cydrome
101032b578d3Smrg		;;
10110b0ce0bfSmrg	i370-ibm*)
10120b0ce0bfSmrg		vendor=ibm
101332b578d3Smrg		;;
10140b0ce0bfSmrg	orion-unknown)
10150b0ce0bfSmrg		vendor=highlevel
101632b578d3Smrg		;;
10170b0ce0bfSmrg	xps-unknown | xps100-unknown)
10180b0ce0bfSmrg		cpu=xps100
10190b0ce0bfSmrg		vendor=honeywell
102032b578d3Smrg		;;
10210b0ce0bfSmrg
10220b0ce0bfSmrg	# Here we normalize CPU types with a missing or matching vendor
10230b0ce0bfSmrg	dpx20-unknown | dpx20-bull)
10240b0ce0bfSmrg		cpu=rs6000
10250b0ce0bfSmrg		vendor=bull
10260b0ce0bfSmrg		basic_os=${basic_os:-bosx}
102732b578d3Smrg		;;
10280b0ce0bfSmrg
10290b0ce0bfSmrg	# Here we normalize CPU types irrespective of the vendor
10300b0ce0bfSmrg	amd64-*)
10310b0ce0bfSmrg		cpu=x86_64
1032d31dbc53Smrg		;;
10330b0ce0bfSmrg	blackfin-*)
10340b0ce0bfSmrg		cpu=bfin
10350b0ce0bfSmrg		basic_os=linux
103632b578d3Smrg		;;
10370b0ce0bfSmrg	c54x-*)
10380b0ce0bfSmrg		cpu=tic54x
103932b578d3Smrg		;;
10400b0ce0bfSmrg	c55x-*)
10410b0ce0bfSmrg		cpu=tic55x
104232b578d3Smrg		;;
10430b0ce0bfSmrg	c6x-*)
10440b0ce0bfSmrg		cpu=tic6x
104532b578d3Smrg		;;
10460b0ce0bfSmrg	e500v[12]-*)
10470b0ce0bfSmrg		cpu=powerpc
10480b0ce0bfSmrg		basic_os=${basic_os}"spe"
104932b578d3Smrg		;;
10500b0ce0bfSmrg	mips3*-*)
10510b0ce0bfSmrg		cpu=mips64
105232b578d3Smrg		;;
10530b0ce0bfSmrg	ms1-*)
10540b0ce0bfSmrg		cpu=mt
105532b578d3Smrg		;;
10560b0ce0bfSmrg	m68knommu-*)
10570b0ce0bfSmrg		cpu=m68k
10580b0ce0bfSmrg		basic_os=linux
105932b578d3Smrg		;;
10600b0ce0bfSmrg	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
10610b0ce0bfSmrg		cpu=s12z
106232b578d3Smrg		;;
10630b0ce0bfSmrg	openrisc-*)
10640b0ce0bfSmrg		cpu=or32
106532b578d3Smrg		;;
10660b0ce0bfSmrg	parisc-*)
10670b0ce0bfSmrg		cpu=hppa
10680b0ce0bfSmrg		basic_os=linux
106932b578d3Smrg		;;
10700b0ce0bfSmrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
10710b0ce0bfSmrg		cpu=i586
107232b578d3Smrg		;;
10730b0ce0bfSmrg	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
10740b0ce0bfSmrg		cpu=i686
107532b578d3Smrg		;;
10760b0ce0bfSmrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
10770b0ce0bfSmrg		cpu=i686
107832b578d3Smrg		;;
10790b0ce0bfSmrg	pentium4-*)
10800b0ce0bfSmrg		cpu=i786
108132b578d3Smrg		;;
10820b0ce0bfSmrg	pc98-*)
10830b0ce0bfSmrg		cpu=i386
108432b578d3Smrg		;;
10850b0ce0bfSmrg	ppc-* | ppcbe-*)
10860b0ce0bfSmrg		cpu=powerpc
108732b578d3Smrg		;;
10880b0ce0bfSmrg	ppcle-* | powerpclittle-*)
10890b0ce0bfSmrg		cpu=powerpcle
109032b578d3Smrg		;;
10910b0ce0bfSmrg	ppc64-*)
10920b0ce0bfSmrg		cpu=powerpc64
1093e35d4d8eSmrg		;;
10940b0ce0bfSmrg	ppc64le-* | powerpc64little-*)
10950b0ce0bfSmrg		cpu=powerpc64le
109632b578d3Smrg		;;
10970b0ce0bfSmrg	sb1-*)
10980b0ce0bfSmrg		cpu=mipsisa64sb1
109932b578d3Smrg		;;
11000b0ce0bfSmrg	sb1el-*)
11010b0ce0bfSmrg		cpu=mipsisa64sb1el
11021b12faf6Smrg		;;
11030b0ce0bfSmrg	sh5e[lb]-*)
11040b0ce0bfSmrg		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
110532b578d3Smrg		;;
11060b0ce0bfSmrg	spur-*)
11070b0ce0bfSmrg		cpu=spur
110832b578d3Smrg		;;
11090b0ce0bfSmrg	strongarm-* | thumb-*)
11100b0ce0bfSmrg		cpu=arm
111132b578d3Smrg		;;
11120b0ce0bfSmrg	tx39-*)
11130b0ce0bfSmrg		cpu=mipstx39
111432b578d3Smrg		;;
11150b0ce0bfSmrg	tx39el-*)
11160b0ce0bfSmrg		cpu=mipstx39el
111732b578d3Smrg		;;
11180b0ce0bfSmrg	x64-*)
11190b0ce0bfSmrg		cpu=x86_64
112032b578d3Smrg		;;
11210b0ce0bfSmrg	xscale-* | xscalee[bl]-*)
11220b0ce0bfSmrg		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
112332b578d3Smrg		;;
11240b0ce0bfSmrg	arm64-*)
11250b0ce0bfSmrg		cpu=aarch64
112632b578d3Smrg		;;
11270b0ce0bfSmrg
11280b0ce0bfSmrg	# Recognize the canonical CPU Types that limit and/or modify the
11290b0ce0bfSmrg	# company names they are paired with.
11300b0ce0bfSmrg	cr16-*)
11310b0ce0bfSmrg		basic_os=${basic_os:-elf}
113232b578d3Smrg		;;
11330b0ce0bfSmrg	crisv32-* | etraxfs*-*)
11340b0ce0bfSmrg		cpu=crisv32
11350b0ce0bfSmrg		vendor=axis
113632b578d3Smrg		;;
11370b0ce0bfSmrg	cris-* | etrax*-*)
11380b0ce0bfSmrg		cpu=cris
11390b0ce0bfSmrg		vendor=axis
114032b578d3Smrg		;;
11410b0ce0bfSmrg	crx-*)
11420b0ce0bfSmrg		basic_os=${basic_os:-elf}
114332b578d3Smrg		;;
11440b0ce0bfSmrg	neo-tandem)
11450b0ce0bfSmrg		cpu=neo
11460b0ce0bfSmrg		vendor=tandem
114732b578d3Smrg		;;
11480b0ce0bfSmrg	nse-tandem)
11490b0ce0bfSmrg		cpu=nse
11500b0ce0bfSmrg		vendor=tandem
115132b578d3Smrg		;;
11520b0ce0bfSmrg	nsr-tandem)
11530b0ce0bfSmrg		cpu=nsr
11540b0ce0bfSmrg		vendor=tandem
115532b578d3Smrg		;;
11560b0ce0bfSmrg	nsv-tandem)
11570b0ce0bfSmrg		cpu=nsv
11580b0ce0bfSmrg		vendor=tandem
115932b578d3Smrg		;;
11600b0ce0bfSmrg	nsx-tandem)
11610b0ce0bfSmrg		cpu=nsx
11620b0ce0bfSmrg		vendor=tandem
116332b578d3Smrg		;;
11640b0ce0bfSmrg	mipsallegrexel-sony)
11650b0ce0bfSmrg		cpu=mipsallegrexel
11660b0ce0bfSmrg		vendor=sony
116732b578d3Smrg		;;
11680b0ce0bfSmrg	tile*-*)
11690b0ce0bfSmrg		basic_os=${basic_os:-linux-gnu}
117032b578d3Smrg		;;
11710b0ce0bfSmrg
117232b578d3Smrg	*)
11730b0ce0bfSmrg		# Recognize the canonical CPU types that are allowed with any
11740b0ce0bfSmrg		# company name.
11750b0ce0bfSmrg		case $cpu in
11760b0ce0bfSmrg			1750a | 580 \
11770b0ce0bfSmrg			| a29k \
11780b0ce0bfSmrg			| aarch64 | aarch64_be \
11790b0ce0bfSmrg			| abacus \
11800b0ce0bfSmrg			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
11810b0ce0bfSmrg			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
11820b0ce0bfSmrg			| alphapca5[67] | alpha64pca5[67] \
11830b0ce0bfSmrg			| am33_2.0 \
11840b0ce0bfSmrg			| amdgcn \
11850b0ce0bfSmrg			| arc | arceb | arc32 | arc64 \
11860b0ce0bfSmrg			| arm | arm[lb]e | arme[lb] | armv* \
11870b0ce0bfSmrg			| avr | avr32 \
11880b0ce0bfSmrg			| asmjs \
11890b0ce0bfSmrg			| ba \
11900b0ce0bfSmrg			| be32 | be64 \
11910b0ce0bfSmrg			| bfin | bpf | bs2000 \
11920b0ce0bfSmrg			| c[123]* | c30 | [cjt]90 | c4x \
11930b0ce0bfSmrg			| c8051 | clipper | craynv | csky | cydra \
11940b0ce0bfSmrg			| d10v | d30v | dlx | dsp16xx \
11950b0ce0bfSmrg			| e2k | elxsi | epiphany \
11960b0ce0bfSmrg			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
11970b0ce0bfSmrg			| h8300 | h8500 \
11980b0ce0bfSmrg			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
11990b0ce0bfSmrg			| hexagon \
12000b0ce0bfSmrg			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
12010b0ce0bfSmrg			| ip2k | iq2000 \
12020b0ce0bfSmrg			| k1om \
12030b0ce0bfSmrg			| le32 | le64 \
12040b0ce0bfSmrg			| lm32 \
12050b0ce0bfSmrg			| loongarch32 | loongarch64 | loongarchx32 \
12060b0ce0bfSmrg			| m32c | m32r | m32rle \
12070b0ce0bfSmrg			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
12080b0ce0bfSmrg			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
12090b0ce0bfSmrg			| m88110 | m88k | maxq | mb | mcore | mep | metag \
12100b0ce0bfSmrg			| microblaze | microblazeel \
12110b0ce0bfSmrg			| mips | mipsbe | mipseb | mipsel | mipsle \
12120b0ce0bfSmrg			| mips16 \
12130b0ce0bfSmrg			| mips64 | mips64eb | mips64el \
12140b0ce0bfSmrg			| mips64octeon | mips64octeonel \
12150b0ce0bfSmrg			| mips64orion | mips64orionel \
12160b0ce0bfSmrg			| mips64r5900 | mips64r5900el \
12170b0ce0bfSmrg			| mips64vr | mips64vrel \
12180b0ce0bfSmrg			| mips64vr4100 | mips64vr4100el \
12190b0ce0bfSmrg			| mips64vr4300 | mips64vr4300el \
12200b0ce0bfSmrg			| mips64vr5000 | mips64vr5000el \
12210b0ce0bfSmrg			| mips64vr5900 | mips64vr5900el \
12220b0ce0bfSmrg			| mipsisa32 | mipsisa32el \
12230b0ce0bfSmrg			| mipsisa32r2 | mipsisa32r2el \
12240b0ce0bfSmrg			| mipsisa32r3 | mipsisa32r3el \
12250b0ce0bfSmrg			| mipsisa32r5 | mipsisa32r5el \
12260b0ce0bfSmrg			| mipsisa32r6 | mipsisa32r6el \
12270b0ce0bfSmrg			| mipsisa64 | mipsisa64el \
12280b0ce0bfSmrg			| mipsisa64r2 | mipsisa64r2el \
12290b0ce0bfSmrg			| mipsisa64r3 | mipsisa64r3el \
12300b0ce0bfSmrg			| mipsisa64r5 | mipsisa64r5el \
12310b0ce0bfSmrg			| mipsisa64r6 | mipsisa64r6el \
12320b0ce0bfSmrg			| mipsisa64sb1 | mipsisa64sb1el \
12330b0ce0bfSmrg			| mipsisa64sr71k | mipsisa64sr71kel \
12340b0ce0bfSmrg			| mipsr5900 | mipsr5900el \
12350b0ce0bfSmrg			| mipstx39 | mipstx39el \
12360b0ce0bfSmrg			| mmix \
12370b0ce0bfSmrg			| mn10200 | mn10300 \
12380b0ce0bfSmrg			| moxie \
12390b0ce0bfSmrg			| mt \
12400b0ce0bfSmrg			| msp430 \
12410b0ce0bfSmrg			| nds32 | nds32le | nds32be \
12420b0ce0bfSmrg			| nfp \
12430b0ce0bfSmrg			| nios | nios2 | nios2eb | nios2el \
12440b0ce0bfSmrg			| none | np1 | ns16k | ns32k | nvptx \
12450b0ce0bfSmrg			| open8 \
12460b0ce0bfSmrg			| or1k* \
12470b0ce0bfSmrg			| or32 \
12480b0ce0bfSmrg			| orion \
12490b0ce0bfSmrg			| picochip \
12500b0ce0bfSmrg			| pdp10 | pdp11 | pj | pjl | pn | power \
12510b0ce0bfSmrg			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
12520b0ce0bfSmrg			| pru \
12530b0ce0bfSmrg			| pyramid \
12540b0ce0bfSmrg			| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
12550b0ce0bfSmrg			| rl78 | romp | rs6000 | rx \
12560b0ce0bfSmrg			| s390 | s390x \
12570b0ce0bfSmrg			| score \
12580b0ce0bfSmrg			| sh | shl \
12590b0ce0bfSmrg			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
12600b0ce0bfSmrg			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
12610b0ce0bfSmrg			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
12620b0ce0bfSmrg			| sparclite \
12630b0ce0bfSmrg			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
12640b0ce0bfSmrg			| spu \
12650b0ce0bfSmrg			| tahoe \
12660b0ce0bfSmrg			| thumbv7* \
12670b0ce0bfSmrg			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
12680b0ce0bfSmrg			| tron \
12690b0ce0bfSmrg			| ubicom32 \
12700b0ce0bfSmrg			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
12710b0ce0bfSmrg			| vax \
12720b0ce0bfSmrg			| visium \
12730b0ce0bfSmrg			| w65 \
12740b0ce0bfSmrg			| wasm32 | wasm64 \
12750b0ce0bfSmrg			| we32k \
12760b0ce0bfSmrg			| x86 | x86_64 | xc16x | xgate | xps100 \
12770b0ce0bfSmrg			| xstormy16 | xtensa* \
12780b0ce0bfSmrg			| ymp \
12790b0ce0bfSmrg			| z8k | z80)
12800b0ce0bfSmrg				;;
12810b0ce0bfSmrg
12820b0ce0bfSmrg			*)
12830b0ce0bfSmrg				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
12840b0ce0bfSmrg				exit 1
12850b0ce0bfSmrg				;;
12860b0ce0bfSmrg		esac
128732b578d3Smrg		;;
128832b578d3Smrgesac
128932b578d3Smrg
129032b578d3Smrg# Here we canonicalize certain aliases for manufacturers.
12910b0ce0bfSmrgcase $vendor in
12920b0ce0bfSmrg	digital*)
12930b0ce0bfSmrg		vendor=dec
129432b578d3Smrg		;;
12950b0ce0bfSmrg	commodore*)
12960b0ce0bfSmrg		vendor=cbm
129732b578d3Smrg		;;
129832b578d3Smrg	*)
129932b578d3Smrg		;;
130032b578d3Smrgesac
130132b578d3Smrg
130232b578d3Smrg# Decode manufacturer-specific aliases for certain operating systems.
130332b578d3Smrg
13040b0ce0bfSmrgif test x$basic_os != x
130532b578d3Smrgthen
13060b0ce0bfSmrg
13070b0ce0bfSmrg# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
13080b0ce0bfSmrg# set os.
13090b0ce0bfSmrgcase $basic_os in
13100b0ce0bfSmrg	gnu/linux*)
13110b0ce0bfSmrg		kernel=linux
13120b0ce0bfSmrg		os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
13130b0ce0bfSmrg		;;
13140b0ce0bfSmrg	os2-emx)
13150b0ce0bfSmrg		kernel=os2
13160b0ce0bfSmrg		os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
13170b0ce0bfSmrg		;;
13180b0ce0bfSmrg	nto-qnx*)
13190b0ce0bfSmrg		kernel=nto
13200b0ce0bfSmrg		os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
13210b0ce0bfSmrg		;;
13220b0ce0bfSmrg	*-*)
13230b0ce0bfSmrg		# shellcheck disable=SC2162
13240b0ce0bfSmrg		saved_IFS=$IFS
13250b0ce0bfSmrg		IFS="-" read kernel os <<EOF
13260b0ce0bfSmrg$basic_os
13270b0ce0bfSmrgEOF
13280b0ce0bfSmrg		IFS=$saved_IFS
13290b0ce0bfSmrg		;;
13300b0ce0bfSmrg	# Default OS when just kernel was specified
13310b0ce0bfSmrg	nto*)
13320b0ce0bfSmrg		kernel=nto
13330b0ce0bfSmrg		os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
13340b0ce0bfSmrg		;;
13350b0ce0bfSmrg	linux*)
13360b0ce0bfSmrg		kernel=linux
13370b0ce0bfSmrg		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
13380b0ce0bfSmrg		;;
13390b0ce0bfSmrg	*)
13400b0ce0bfSmrg		kernel=
13410b0ce0bfSmrg		os=$basic_os
13420b0ce0bfSmrg		;;
13430b0ce0bfSmrgesac
13440b0ce0bfSmrg
13450b0ce0bfSmrg# Now, normalize the OS (knowing we just have one component, it's not a kernel,
13460b0ce0bfSmrg# etc.)
134732b578d3Smrgcase $os in
13480b0ce0bfSmrg	# First match some system type aliases that might get confused
13490b0ce0bfSmrg	# with valid system types.
13500b0ce0bfSmrg	# solaris* is a basic system type, with this one exception.
13510b0ce0bfSmrg	auroraux)
13520b0ce0bfSmrg		os=auroraux
13531b12faf6Smrg		;;
13540b0ce0bfSmrg	bluegene*)
13550b0ce0bfSmrg		os=cnk
135632b578d3Smrg		;;
13570b0ce0bfSmrg	solaris1 | solaris1.*)
13580b0ce0bfSmrg		os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
135932b578d3Smrg		;;
13600b0ce0bfSmrg	solaris)
13610b0ce0bfSmrg		os=solaris2
136232b578d3Smrg		;;
13630b0ce0bfSmrg	unixware*)
13640b0ce0bfSmrg		os=sysv4.2uw
136532b578d3Smrg		;;
13660b0ce0bfSmrg	# es1800 is here to avoid being matched by es* (a different OS)
13670b0ce0bfSmrg	es1800*)
13680b0ce0bfSmrg		os=ose
136932b578d3Smrg		;;
13700b0ce0bfSmrg	# Some version numbers need modification
13710b0ce0bfSmrg	chorusos*)
13720b0ce0bfSmrg		os=chorusos
137332b578d3Smrg		;;
13740b0ce0bfSmrg	isc)
13750b0ce0bfSmrg		os=isc2.2
137632b578d3Smrg		;;
13770b0ce0bfSmrg	sco6)
13780b0ce0bfSmrg		os=sco5v6
137932b578d3Smrg		;;
13800b0ce0bfSmrg	sco5)
13810b0ce0bfSmrg		os=sco3.2v5
138232b578d3Smrg		;;
13830b0ce0bfSmrg	sco4)
13840b0ce0bfSmrg		os=sco3.2v4
138532b578d3Smrg		;;
13860b0ce0bfSmrg	sco3.2.[4-9]*)
13870b0ce0bfSmrg		os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
138832b578d3Smrg		;;
13890b0ce0bfSmrg	sco*v* | scout)
13900b0ce0bfSmrg		# Don't match below
139132b578d3Smrg		;;
13920b0ce0bfSmrg	sco*)
13930b0ce0bfSmrg		os=sco3.2v2
139432b578d3Smrg		;;
13950b0ce0bfSmrg	psos*)
13960b0ce0bfSmrg		os=psos
139732b578d3Smrg		;;
13980b0ce0bfSmrg	qnx*)
13990b0ce0bfSmrg		os=qnx
140032b578d3Smrg		;;
14010b0ce0bfSmrg	hiux*)
14020b0ce0bfSmrg		os=hiuxwe2
140332b578d3Smrg		;;
14040b0ce0bfSmrg	lynx*178)
14050b0ce0bfSmrg		os=lynxos178
140632b578d3Smrg		;;
14070b0ce0bfSmrg	lynx*5)
14080b0ce0bfSmrg		os=lynxos5
140932b578d3Smrg		;;
14100b0ce0bfSmrg	lynxos*)
14110b0ce0bfSmrg		# don't get caught up in next wildcard
141232b578d3Smrg		;;
14130b0ce0bfSmrg	lynx*)
14140b0ce0bfSmrg		os=lynxos
141532b578d3Smrg		;;
14160b0ce0bfSmrg	mac[0-9]*)
14170b0ce0bfSmrg		os=`echo "$os" | sed -e 's|mac|macos|'`
141832b578d3Smrg		;;
14190b0ce0bfSmrg	opened*)
14200b0ce0bfSmrg		os=openedition
142132b578d3Smrg		;;
14220b0ce0bfSmrg	os400*)
14230b0ce0bfSmrg		os=os400
142432b578d3Smrg		;;
14250b0ce0bfSmrg	sunos5*)
14260b0ce0bfSmrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
142732b578d3Smrg		;;
14280b0ce0bfSmrg	sunos6*)
14290b0ce0bfSmrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
143032b578d3Smrg		;;
14310b0ce0bfSmrg	wince*)
14320b0ce0bfSmrg		os=wince
143332b578d3Smrg		;;
14340b0ce0bfSmrg	utek*)
14350b0ce0bfSmrg		os=bsd
143632b578d3Smrg		;;
14370b0ce0bfSmrg	dynix*)
14380b0ce0bfSmrg		os=bsd
143932b578d3Smrg		;;
14400b0ce0bfSmrg	acis*)
14410b0ce0bfSmrg		os=aos
144232b578d3Smrg		;;
14430b0ce0bfSmrg	atheos*)
14440b0ce0bfSmrg		os=atheos
144532b578d3Smrg		;;
14460b0ce0bfSmrg	syllable*)
14470b0ce0bfSmrg		os=syllable
144832b578d3Smrg		;;
14490b0ce0bfSmrg	386bsd)
14500b0ce0bfSmrg		os=bsd
145132b578d3Smrg		;;
14520b0ce0bfSmrg	ctix* | uts*)
14530b0ce0bfSmrg		os=sysv
145432b578d3Smrg		;;
14550b0ce0bfSmrg	nova*)
14560b0ce0bfSmrg		os=rtmk-nova
145732b578d3Smrg		;;
14580b0ce0bfSmrg	ns2)
14590b0ce0bfSmrg		os=nextstep2
146032b578d3Smrg		;;
14610b0ce0bfSmrg	# Preserve the version number of sinix5.
14620b0ce0bfSmrg	sinix5.*)
14630b0ce0bfSmrg		os=`echo "$os" | sed -e 's|sinix|sysv|'`
146432b578d3Smrg		;;
14650b0ce0bfSmrg	sinix*)
14660b0ce0bfSmrg		os=sysv4
146732b578d3Smrg		;;
14680b0ce0bfSmrg	tpf*)
14690b0ce0bfSmrg		os=tpf
147032b578d3Smrg		;;
14710b0ce0bfSmrg	triton*)
14720b0ce0bfSmrg		os=sysv3
147332b578d3Smrg		;;
14740b0ce0bfSmrg	oss*)
14750b0ce0bfSmrg		os=sysv3
147632b578d3Smrg		;;
14770b0ce0bfSmrg	svr4*)
14780b0ce0bfSmrg		os=sysv4
147932b578d3Smrg		;;
14800b0ce0bfSmrg	svr3)
14810b0ce0bfSmrg		os=sysv3
148232b578d3Smrg		;;
14830b0ce0bfSmrg	sysvr4)
14840b0ce0bfSmrg		os=sysv4
148532b578d3Smrg		;;
14860b0ce0bfSmrg	ose*)
14870b0ce0bfSmrg		os=ose
148832b578d3Smrg		;;
14890b0ce0bfSmrg	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
14900b0ce0bfSmrg		os=mint
14911b12faf6Smrg		;;
14920b0ce0bfSmrg	dicos*)
14930b0ce0bfSmrg		os=dicos
1494e35d4d8eSmrg		;;
14950b0ce0bfSmrg	pikeos*)
14960b0ce0bfSmrg		# Until real need of OS specific support for
14970b0ce0bfSmrg		# particular features comes up, bare metal
14980b0ce0bfSmrg		# configurations are quite functional.
14990b0ce0bfSmrg		case $cpu in
15000b0ce0bfSmrg		    arm*)
15010b0ce0bfSmrg			os=eabi
15020b0ce0bfSmrg			;;
15030b0ce0bfSmrg		    *)
15040b0ce0bfSmrg			os=elf
15050b0ce0bfSmrg			;;
15060b0ce0bfSmrg		esac
150732b578d3Smrg		;;
150832b578d3Smrg	*)
15090b0ce0bfSmrg		# No normalization, but not necessarily accepted, that comes below.
151032b578d3Smrg		;;
151132b578d3Smrgesac
15120b0ce0bfSmrg
151332b578d3Smrgelse
151432b578d3Smrg
151532b578d3Smrg# Here we handle the default operating systems that come with various machines.
151632b578d3Smrg# The value should be what the vendor currently ships out the door with their
151732b578d3Smrg# machine or put another way, the most popular os provided with the machine.
151832b578d3Smrg
151932b578d3Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
152032b578d3Smrg# "-sun"), then you have to tell the case statement up towards the top
152132b578d3Smrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
152232b578d3Smrg# will signal an error saying that MANUFACTURER isn't an operating
152332b578d3Smrg# system, and we'll never get to this point.
152432b578d3Smrg
15250b0ce0bfSmrgkernel=
15260b0ce0bfSmrgcase $cpu-$vendor in
1527e35d4d8eSmrg	score-*)
15280b0ce0bfSmrg		os=elf
152932b578d3Smrg		;;
1530e35d4d8eSmrg	spu-*)
15310b0ce0bfSmrg		os=elf
153232b578d3Smrg		;;
153332b578d3Smrg	*-acorn)
15340b0ce0bfSmrg		os=riscix1.2
153532b578d3Smrg		;;
153632b578d3Smrg	arm*-rebel)
15370b0ce0bfSmrg		kernel=linux
15380b0ce0bfSmrg		os=gnu
153932b578d3Smrg		;;
154032b578d3Smrg	arm*-semi)
15410b0ce0bfSmrg		os=aout
154232b578d3Smrg		;;
1543e35d4d8eSmrg	c4x-* | tic4x-*)
15440b0ce0bfSmrg		os=coff
1545e35d4d8eSmrg		;;
15465a81ca49Smrg	c8051-*)
15470b0ce0bfSmrg		os=elf
15480b0ce0bfSmrg		;;
15490b0ce0bfSmrg	clipper-intergraph)
15500b0ce0bfSmrg		os=clix
15515a81ca49Smrg		;;
15525a81ca49Smrg	hexagon-*)
15530b0ce0bfSmrg		os=elf
15545a81ca49Smrg		;;
1555e35d4d8eSmrg	tic54x-*)
15560b0ce0bfSmrg		os=coff
1557e35d4d8eSmrg		;;
1558e35d4d8eSmrg	tic55x-*)
15590b0ce0bfSmrg		os=coff
1560e35d4d8eSmrg		;;
1561e35d4d8eSmrg	tic6x-*)
15620b0ce0bfSmrg		os=coff
156332b578d3Smrg		;;
156432b578d3Smrg	# This must come before the *-dec entry.
156532b578d3Smrg	pdp10-*)
15660b0ce0bfSmrg		os=tops20
156732b578d3Smrg		;;
156832b578d3Smrg	pdp11-*)
15690b0ce0bfSmrg		os=none
157032b578d3Smrg		;;
157132b578d3Smrg	*-dec | vax-*)
15720b0ce0bfSmrg		os=ultrix4.2
157332b578d3Smrg		;;
157432b578d3Smrg	m68*-apollo)
15750b0ce0bfSmrg		os=domain
157632b578d3Smrg		;;
157732b578d3Smrg	i386-sun)
15780b0ce0bfSmrg		os=sunos4.0.2
157932b578d3Smrg		;;
158032b578d3Smrg	m68000-sun)
15810b0ce0bfSmrg		os=sunos3
158232b578d3Smrg		;;
158332b578d3Smrg	m68*-cisco)
15840b0ce0bfSmrg		os=aout
158532b578d3Smrg		;;
1586e35d4d8eSmrg	mep-*)
15870b0ce0bfSmrg		os=elf
158832b578d3Smrg		;;
158932b578d3Smrg	mips*-cisco)
15900b0ce0bfSmrg		os=elf
159132b578d3Smrg		;;
159232b578d3Smrg	mips*-*)
15930b0ce0bfSmrg		os=elf
159432b578d3Smrg		;;
159532b578d3Smrg	or32-*)
15960b0ce0bfSmrg		os=coff
159732b578d3Smrg		;;
159832b578d3Smrg	*-tti)	# must be before sparc entry or we get the wrong os.
15990b0ce0bfSmrg		os=sysv3
160032b578d3Smrg		;;
160132b578d3Smrg	sparc-* | *-sun)
16020b0ce0bfSmrg		os=sunos4.1.1
160332b578d3Smrg		;;
16040b0ce0bfSmrg	pru-*)
16050b0ce0bfSmrg		os=elf
160632b578d3Smrg		;;
16070b0ce0bfSmrg	*-be)
16080b0ce0bfSmrg		os=beos
160932b578d3Smrg		;;
161032b578d3Smrg	*-ibm)
16110b0ce0bfSmrg		os=aix
161232b578d3Smrg		;;
1613e35d4d8eSmrg	*-knuth)
16140b0ce0bfSmrg		os=mmixware
161532b578d3Smrg		;;
161632b578d3Smrg	*-wec)
16170b0ce0bfSmrg		os=proelf
161832b578d3Smrg		;;
161932b578d3Smrg	*-winbond)
16200b0ce0bfSmrg		os=proelf
162132b578d3Smrg		;;
162232b578d3Smrg	*-oki)
16230b0ce0bfSmrg		os=proelf
162432b578d3Smrg		;;
162532b578d3Smrg	*-hp)
16260b0ce0bfSmrg		os=hpux
162732b578d3Smrg		;;
162832b578d3Smrg	*-hitachi)
16290b0ce0bfSmrg		os=hiux
163032b578d3Smrg		;;
163132b578d3Smrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
16320b0ce0bfSmrg		os=sysv
163332b578d3Smrg		;;
163432b578d3Smrg	*-cbm)
16350b0ce0bfSmrg		os=amigaos
163632b578d3Smrg		;;
163732b578d3Smrg	*-dg)
16380b0ce0bfSmrg		os=dgux
163932b578d3Smrg		;;
164032b578d3Smrg	*-dolphin)
16410b0ce0bfSmrg		os=sysv3
164232b578d3Smrg		;;
164332b578d3Smrg	m68k-ccur)
16440b0ce0bfSmrg		os=rtu
164532b578d3Smrg		;;
164632b578d3Smrg	m88k-omron*)
16470b0ce0bfSmrg		os=luna
164832b578d3Smrg		;;
16490b0ce0bfSmrg	*-next)
16500b0ce0bfSmrg		os=nextstep
165132b578d3Smrg		;;
165232b578d3Smrg	*-sequent)
16530b0ce0bfSmrg		os=ptx
165432b578d3Smrg		;;
165532b578d3Smrg	*-crds)
16560b0ce0bfSmrg		os=unos
165732b578d3Smrg		;;
165832b578d3Smrg	*-ns)
16590b0ce0bfSmrg		os=genix
166032b578d3Smrg		;;
166132b578d3Smrg	i370-*)
16620b0ce0bfSmrg		os=mvs
166332b578d3Smrg		;;
166432b578d3Smrg	*-gould)
16650b0ce0bfSmrg		os=sysv
166632b578d3Smrg		;;
166732b578d3Smrg	*-highlevel)
16680b0ce0bfSmrg		os=bsd
166932b578d3Smrg		;;
167032b578d3Smrg	*-encore)
16710b0ce0bfSmrg		os=bsd
167232b578d3Smrg		;;
167332b578d3Smrg	*-sgi)
16740b0ce0bfSmrg		os=irix
167532b578d3Smrg		;;
167632b578d3Smrg	*-siemens)
16770b0ce0bfSmrg		os=sysv4
167832b578d3Smrg		;;
167932b578d3Smrg	*-masscomp)
16800b0ce0bfSmrg		os=rtu
168132b578d3Smrg		;;
168232b578d3Smrg	f30[01]-fujitsu | f700-fujitsu)
16830b0ce0bfSmrg		os=uxpv
168432b578d3Smrg		;;
168532b578d3Smrg	*-rom68k)
16860b0ce0bfSmrg		os=coff
168732b578d3Smrg		;;
168832b578d3Smrg	*-*bug)
16890b0ce0bfSmrg		os=coff
169032b578d3Smrg		;;
169132b578d3Smrg	*-apple)
16920b0ce0bfSmrg		os=macos
169332b578d3Smrg		;;
169432b578d3Smrg	*-atari*)
16950b0ce0bfSmrg		os=mint
16960b0ce0bfSmrg		;;
16970b0ce0bfSmrg	*-wrs)
16980b0ce0bfSmrg		os=vxworks
169932b578d3Smrg		;;
170032b578d3Smrg	*)
17010b0ce0bfSmrg		os=none
170232b578d3Smrg		;;
170332b578d3Smrgesac
17040b0ce0bfSmrg
170532b578d3Smrgfi
170632b578d3Smrg
17070b0ce0bfSmrg# Now, validate our (potentially fixed-up) OS.
17080b0ce0bfSmrgcase $os in
17090b0ce0bfSmrg	# Sometimes we do "kernel-libc", so those need to count as OSes.
17100b0ce0bfSmrg	musl* | newlib* | relibc* | uclibc*)
17110b0ce0bfSmrg		;;
17120b0ce0bfSmrg	# Likewise for "kernel-abi"
17130b0ce0bfSmrg	eabi* | gnueabi*)
17140b0ce0bfSmrg		;;
17150b0ce0bfSmrg	# VxWorks passes extra cpu info in the 4th filed.
17160b0ce0bfSmrg	simlinux | simwindows | spe)
17170b0ce0bfSmrg		;;
17180b0ce0bfSmrg	# Now accept the basic system types.
17190b0ce0bfSmrg	# The portable systems comes first.
17200b0ce0bfSmrg	# Each alternative MUST end in a * to match a version number.
17210b0ce0bfSmrg	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
17220b0ce0bfSmrg	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
17230b0ce0bfSmrg	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
17240b0ce0bfSmrg	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
17250b0ce0bfSmrg	     | hiux* | abug | nacl* | netware* | windows* \
17260b0ce0bfSmrg	     | os9* | macos* | osx* | ios* \
17270b0ce0bfSmrg	     | mpw* | magic* | mmixware* | mon960* | lnews* \
17280b0ce0bfSmrg	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
17290b0ce0bfSmrg	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
17300b0ce0bfSmrg	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
17310b0ce0bfSmrg	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
17320b0ce0bfSmrg	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
17330b0ce0bfSmrg	     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
17340b0ce0bfSmrg	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
17350b0ce0bfSmrg	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
17360b0ce0bfSmrg	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
17370b0ce0bfSmrg	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
17380b0ce0bfSmrg	     | chorusrdb* | cegcc* | glidix* | serenity* \
17390b0ce0bfSmrg	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
17400b0ce0bfSmrg	     | midipix* | mingw32* | mingw64* | mint* \
17410b0ce0bfSmrg	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
17420b0ce0bfSmrg	     | interix* | uwin* | mks* | rhapsody* | darwin* \
17430b0ce0bfSmrg	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
17440b0ce0bfSmrg	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
17450b0ce0bfSmrg	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
17460b0ce0bfSmrg	     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
17470b0ce0bfSmrg	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
17480b0ce0bfSmrg	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
17490b0ce0bfSmrg	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
17500b0ce0bfSmrg	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
17510b0ce0bfSmrg	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr*)
17520b0ce0bfSmrg		;;
17530b0ce0bfSmrg	# This one is extra strict with allowed versions
17540b0ce0bfSmrg	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
17550b0ce0bfSmrg		# Don't forget version if it is 3.2v4 or newer.
17560b0ce0bfSmrg		;;
17570b0ce0bfSmrg	none)
17580b0ce0bfSmrg		;;
17590b0ce0bfSmrg	*)
17600b0ce0bfSmrg		echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
17610b0ce0bfSmrg		exit 1
17620b0ce0bfSmrg		;;
17630b0ce0bfSmrgesac
17640b0ce0bfSmrg
17650b0ce0bfSmrg# As a final step for OS-related things, validate the OS-kernel combination
17660b0ce0bfSmrg# (given a valid OS), if there is a kernel.
17670b0ce0bfSmrgcase $kernel-$os in
17680b0ce0bfSmrg	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
17690b0ce0bfSmrg		   | linux-musl* | linux-relibc* | linux-uclibc* )
17700b0ce0bfSmrg		;;
17710b0ce0bfSmrg	uclinux-uclibc* )
17720b0ce0bfSmrg		;;
17730b0ce0bfSmrg	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
17740b0ce0bfSmrg		# These are just libc implementations, not actual OSes, and thus
17750b0ce0bfSmrg		# require a kernel.
17760b0ce0bfSmrg		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
17770b0ce0bfSmrg		exit 1
17780b0ce0bfSmrg		;;
17790b0ce0bfSmrg	kfreebsd*-gnu* | kopensolaris*-gnu*)
17800b0ce0bfSmrg		;;
17810b0ce0bfSmrg	vxworks-simlinux | vxworks-simwindows | vxworks-spe)
17820b0ce0bfSmrg		;;
17830b0ce0bfSmrg	nto-qnx*)
17840b0ce0bfSmrg		;;
17850b0ce0bfSmrg	os2-emx)
17860b0ce0bfSmrg		;;
17870b0ce0bfSmrg	*-eabi* | *-gnueabi*)
17880b0ce0bfSmrg		;;
17890b0ce0bfSmrg	-*)
17900b0ce0bfSmrg		# Blank kernel with real OS is always fine.
17910b0ce0bfSmrg		;;
17920b0ce0bfSmrg	*-*)
17930b0ce0bfSmrg		echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
17940b0ce0bfSmrg		exit 1
17950b0ce0bfSmrg		;;
17960b0ce0bfSmrgesac
17970b0ce0bfSmrg
179832b578d3Smrg# Here we handle the case where we know the os, and the CPU type, but not the
179932b578d3Smrg# manufacturer.  We pick the logical manufacturer.
18000b0ce0bfSmrgcase $vendor in
18010b0ce0bfSmrg	unknown)
18020b0ce0bfSmrg		case $cpu-$os in
18030b0ce0bfSmrg			*-riscix*)
180432b578d3Smrg				vendor=acorn
180532b578d3Smrg				;;
18060b0ce0bfSmrg			*-sunos*)
180732b578d3Smrg				vendor=sun
180832b578d3Smrg				;;
18090b0ce0bfSmrg			*-cnk* | *-aix*)
181032b578d3Smrg				vendor=ibm
181132b578d3Smrg				;;
18120b0ce0bfSmrg			*-beos*)
181332b578d3Smrg				vendor=be
181432b578d3Smrg				;;
18150b0ce0bfSmrg			*-hpux*)
181632b578d3Smrg				vendor=hp
181732b578d3Smrg				;;
18180b0ce0bfSmrg			*-mpeix*)
181932b578d3Smrg				vendor=hp
182032b578d3Smrg				;;
18210b0ce0bfSmrg			*-hiux*)
182232b578d3Smrg				vendor=hitachi
182332b578d3Smrg				;;
18240b0ce0bfSmrg			*-unos*)
182532b578d3Smrg				vendor=crds
182632b578d3Smrg				;;
18270b0ce0bfSmrg			*-dgux*)
182832b578d3Smrg				vendor=dg
182932b578d3Smrg				;;
18300b0ce0bfSmrg			*-luna*)
183132b578d3Smrg				vendor=omron
183232b578d3Smrg				;;
18330b0ce0bfSmrg			*-genix*)
183432b578d3Smrg				vendor=ns
183532b578d3Smrg				;;
18360b0ce0bfSmrg			*-clix*)
18370b0ce0bfSmrg				vendor=intergraph
18380b0ce0bfSmrg				;;
18390b0ce0bfSmrg			*-mvs* | *-opened*)
18400b0ce0bfSmrg				vendor=ibm
18410b0ce0bfSmrg				;;
18420b0ce0bfSmrg			*-os400*)
184332b578d3Smrg				vendor=ibm
184432b578d3Smrg				;;
18450b0ce0bfSmrg			s390-* | s390x-*)
184632b578d3Smrg				vendor=ibm
184732b578d3Smrg				;;
18480b0ce0bfSmrg			*-ptx*)
184932b578d3Smrg				vendor=sequent
185032b578d3Smrg				;;
18510b0ce0bfSmrg			*-tpf*)
185232b578d3Smrg				vendor=ibm
185332b578d3Smrg				;;
18540b0ce0bfSmrg			*-vxsim* | *-vxworks* | *-windiss*)
185532b578d3Smrg				vendor=wrs
185632b578d3Smrg				;;
18570b0ce0bfSmrg			*-aux*)
185832b578d3Smrg				vendor=apple
185932b578d3Smrg				;;
18600b0ce0bfSmrg			*-hms*)
186132b578d3Smrg				vendor=hitachi
186232b578d3Smrg				;;
18630b0ce0bfSmrg			*-mpw* | *-macos*)
186432b578d3Smrg				vendor=apple
186532b578d3Smrg				;;
18660b0ce0bfSmrg			*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
186732b578d3Smrg				vendor=atari
186832b578d3Smrg				;;
18690b0ce0bfSmrg			*-vos*)
187032b578d3Smrg				vendor=stratus
187132b578d3Smrg				;;
187232b578d3Smrg		esac
187332b578d3Smrg		;;
187432b578d3Smrgesac
187532b578d3Smrg
18760b0ce0bfSmrgecho "$cpu-$vendor-${kernel:+$kernel-}$os"
187732b578d3Smrgexit
187832b578d3Smrg
187932b578d3Smrg# Local variables:
18800b0ce0bfSmrg# eval: (add-hook 'before-save-hook 'time-stamp)
188132b578d3Smrg# time-stamp-start: "timestamp='"
188232b578d3Smrg# time-stamp-format: "%:y-%02m-%02d"
188332b578d3Smrg# time-stamp-end: "'"
188432b578d3Smrg# End:
1885