104007ebaSmrg#! /bin/sh
204007ebaSmrg# Configuration validation subroutine script.
379d5fcd7Smrg#   Copyright 1992-2023 Free Software Foundation, Inc.
404007ebaSmrg
579d5fcd7Smrg# shellcheck disable=SC2006,SC2268 # see below for rationale
679d5fcd7Smrg
779d5fcd7Smrgtimestamp='2023-01-21'
804007ebaSmrg
904007ebaSmrg# This file is free software; you can redistribute it and/or modify it
1004007ebaSmrg# under the terms of the GNU General Public License as published by
1179d5fcd7Smrg# the Free Software Foundation, either version 3 of the License, or
1204007ebaSmrg# (at your option) any later version.
1304007ebaSmrg#
1404007ebaSmrg# This program is distributed in the hope that it will be useful, but
1504007ebaSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of
1604007ebaSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1704007ebaSmrg# General Public License for more details.
1804007ebaSmrg#
1904007ebaSmrg# You should have received a copy of the GNU General Public License
2005cf1079Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
2104007ebaSmrg#
2204007ebaSmrg# As a special exception to the GNU General Public License, if you
2304007ebaSmrg# distribute this file as part of a program that contains a
2404007ebaSmrg# configuration script generated by Autoconf, you may include it under
2504007ebaSmrg# the same distribution terms that you use for the rest of that
2604007ebaSmrg# program.  This Exception is an additional permission under section 7
2704007ebaSmrg# of the GNU General Public License, version 3 ("GPLv3").
2804007ebaSmrg
2904007ebaSmrg
3005cf1079Smrg# Please send patches to <config-patches@gnu.org>.
3104007ebaSmrg#
3204007ebaSmrg# Configuration subroutine to validate and canonicalize a configuration type.
3304007ebaSmrg# Supply the specified configuration type as an argument.
3404007ebaSmrg# If it is invalid, we print an error message on stderr and exit with code 1.
3504007ebaSmrg# Otherwise, we print the canonical config type on stdout and succeed.
3604007ebaSmrg
3704007ebaSmrg# You can get the latest version of this script from:
3879d5fcd7Smrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
3904007ebaSmrg
4004007ebaSmrg# This file is supposed to be the same for all GNU packages
4104007ebaSmrg# and recognize all the CPU types, system types and aliases
4204007ebaSmrg# that are meaningful with *any* GNU software.
4304007ebaSmrg# Each package is responsible for reporting which valid configurations
4404007ebaSmrg# it does not support.  The user should be able to distinguish
4504007ebaSmrg# a failure to support a valid configuration from a meaningless
4604007ebaSmrg# configuration.
4704007ebaSmrg
4804007ebaSmrg# The goal of this file is to map all the various variations of a given
4904007ebaSmrg# machine specification into a single specification in the form:
5004007ebaSmrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
5104007ebaSmrg# or in some cases, the newer four-part form:
5204007ebaSmrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
5304007ebaSmrg# It is wrong to echo any other type of specification.
5404007ebaSmrg
5579d5fcd7Smrg# The "shellcheck disable" line above the timestamp inhibits complaints
5679d5fcd7Smrg# about features and limitations of the classic Bourne shell that were
5779d5fcd7Smrg# superseded or lifted in POSIX.  However, this script identifies a wide
5879d5fcd7Smrg# variety of pre-POSIX systems that do not have POSIX shells at all, and
5979d5fcd7Smrg# even some reasonably current systems (Solaris 10 as case-in-point) still
6079d5fcd7Smrg# have a pre-POSIX /bin/sh.
6179d5fcd7Smrg
6204007ebaSmrgme=`echo "$0" | sed -e 's,.*/,,'`
6304007ebaSmrg
6404007ebaSmrgusage="\
6505cf1079SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
6604007ebaSmrg
6704007ebaSmrgCanonicalize a configuration name.
6804007ebaSmrg
6905cf1079SmrgOptions:
7004007ebaSmrg  -h, --help         print this help, then exit
7104007ebaSmrg  -t, --time-stamp   print date of last modification, then exit
7204007ebaSmrg  -v, --version      print version number, then exit
7304007ebaSmrg
7404007ebaSmrgReport bugs and patches to <config-patches@gnu.org>."
7504007ebaSmrg
7604007ebaSmrgversion="\
7704007ebaSmrgGNU config.sub ($timestamp)
7804007ebaSmrg
7979d5fcd7SmrgCopyright 1992-2023 Free Software Foundation, Inc.
8004007ebaSmrg
8104007ebaSmrgThis is free software; see the source for copying conditions.  There is NO
8204007ebaSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
8304007ebaSmrg
8404007ebaSmrghelp="
8504007ebaSmrgTry \`$me --help' for more information."
8604007ebaSmrg
8704007ebaSmrg# Parse command line
8804007ebaSmrgwhile test $# -gt 0 ; do
8904007ebaSmrg  case $1 in
9004007ebaSmrg    --time-stamp | --time* | -t )
9104007ebaSmrg       echo "$timestamp" ; exit ;;
9204007ebaSmrg    --version | -v )
9304007ebaSmrg       echo "$version" ; exit ;;
9404007ebaSmrg    --help | --h* | -h )
9504007ebaSmrg       echo "$usage"; exit ;;
9604007ebaSmrg    -- )     # Stop option processing
9704007ebaSmrg       shift; break ;;
9804007ebaSmrg    - )	# Use stdin as input.
9904007ebaSmrg       break ;;
10004007ebaSmrg    -* )
10179d5fcd7Smrg       echo "$me: invalid option $1$help" >&2
10204007ebaSmrg       exit 1 ;;
10304007ebaSmrg
10404007ebaSmrg    *local*)
10504007ebaSmrg       # First pass through any local machine types.
10605cf1079Smrg       echo "$1"
10704007ebaSmrg       exit ;;
10804007ebaSmrg
10904007ebaSmrg    * )
11004007ebaSmrg       break ;;
11104007ebaSmrg  esac
11204007ebaSmrgdone
11304007ebaSmrg
11404007ebaSmrgcase $# in
11504007ebaSmrg 0) echo "$me: missing argument$help" >&2
11604007ebaSmrg    exit 1;;
11704007ebaSmrg 1) ;;
11804007ebaSmrg *) echo "$me: too many arguments$help" >&2
11904007ebaSmrg    exit 1;;
12004007ebaSmrgesac
12104007ebaSmrg
12279d5fcd7Smrg# Split fields of configuration type
12379d5fcd7Smrg# shellcheck disable=SC2162
12479d5fcd7Smrgsaved_IFS=$IFS
12579d5fcd7SmrgIFS="-" read field1 field2 field3 field4 <<EOF
12679d5fcd7Smrg$1
12779d5fcd7SmrgEOF
12879d5fcd7SmrgIFS=$saved_IFS
12904007ebaSmrg
13079d5fcd7Smrg# Separate into logical components for further validation
13179d5fcd7Smrgcase $1 in
13279d5fcd7Smrg	*-*-*-*-*)
13379d5fcd7Smrg		echo Invalid configuration \`"$1"\': more than four components >&2
13479d5fcd7Smrg		exit 1
13504007ebaSmrg		;;
13679d5fcd7Smrg	*-*-*-*)
13779d5fcd7Smrg		basic_machine=$field1-$field2
13879d5fcd7Smrg		basic_os=$field3-$field4
13904007ebaSmrg		;;
14079d5fcd7Smrg	*-*-*)
14179d5fcd7Smrg		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
14279d5fcd7Smrg		# parts
14379d5fcd7Smrg		maybe_os=$field2-$field3
14479d5fcd7Smrg		case $maybe_os in
14579d5fcd7Smrg			nto-qnx* | linux-* | uclinux-uclibc* \
14679d5fcd7Smrg			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
14779d5fcd7Smrg			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
14879d5fcd7Smrg			| storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
14979d5fcd7Smrg				basic_machine=$field1
15079d5fcd7Smrg				basic_os=$maybe_os
15179d5fcd7Smrg				;;
15279d5fcd7Smrg			android-linux)
15379d5fcd7Smrg				basic_machine=$field1-unknown
15479d5fcd7Smrg				basic_os=linux-android
15579d5fcd7Smrg				;;
15679d5fcd7Smrg			*)
15779d5fcd7Smrg				basic_machine=$field1-$field2
15879d5fcd7Smrg				basic_os=$field3
15979d5fcd7Smrg				;;
16079d5fcd7Smrg		esac
16104007ebaSmrg		;;
16279d5fcd7Smrg	*-*)
16379d5fcd7Smrg		# A lone config we happen to match not fitting any pattern
16479d5fcd7Smrg		case $field1-$field2 in
16579d5fcd7Smrg			decstation-3100)
16679d5fcd7Smrg				basic_machine=mips-dec
16779d5fcd7Smrg				basic_os=
16879d5fcd7Smrg				;;
16979d5fcd7Smrg			*-*)
17079d5fcd7Smrg				# Second component is usually, but not always the OS
17179d5fcd7Smrg				case $field2 in
17279d5fcd7Smrg					# Prevent following clause from handling this valid os
17379d5fcd7Smrg					sun*os*)
17479d5fcd7Smrg						basic_machine=$field1
17579d5fcd7Smrg						basic_os=$field2
17679d5fcd7Smrg						;;
17779d5fcd7Smrg					zephyr*)
17879d5fcd7Smrg						basic_machine=$field1-unknown
17979d5fcd7Smrg						basic_os=$field2
18079d5fcd7Smrg						;;
18179d5fcd7Smrg					# Manufacturers
18279d5fcd7Smrg					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
18379d5fcd7Smrg					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
18479d5fcd7Smrg					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
18579d5fcd7Smrg					| convergent* | ncr* | news | 32* | 3600* | 3100* \
18679d5fcd7Smrg					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
18779d5fcd7Smrg					| ultra | tti* | harris | dolphin | highlevel | gould \
18879d5fcd7Smrg					| cbm | ns | masscomp | apple | axis | knuth | cray \
18979d5fcd7Smrg					| microblaze* | sim | cisco \
19079d5fcd7Smrg					| oki | wec | wrs | winbond)
19179d5fcd7Smrg						basic_machine=$field1-$field2
19279d5fcd7Smrg						basic_os=
19379d5fcd7Smrg						;;
19479d5fcd7Smrg					*)
19579d5fcd7Smrg						basic_machine=$field1
19679d5fcd7Smrg						basic_os=$field2
19779d5fcd7Smrg						;;
19879d5fcd7Smrg				esac
19979d5fcd7Smrg			;;
20079d5fcd7Smrg		esac
20104007ebaSmrg		;;
20279d5fcd7Smrg	*)
20379d5fcd7Smrg		# Convert single-component short-hands not valid as part of
20479d5fcd7Smrg		# multi-component configurations.
20579d5fcd7Smrg		case $field1 in
20679d5fcd7Smrg			386bsd)
20779d5fcd7Smrg				basic_machine=i386-pc
20879d5fcd7Smrg				basic_os=bsd
20979d5fcd7Smrg				;;
21079d5fcd7Smrg			a29khif)
21179d5fcd7Smrg				basic_machine=a29k-amd
21279d5fcd7Smrg				basic_os=udi
21379d5fcd7Smrg				;;
21479d5fcd7Smrg			adobe68k)
21579d5fcd7Smrg				basic_machine=m68010-adobe
21679d5fcd7Smrg				basic_os=scout
21779d5fcd7Smrg				;;
21879d5fcd7Smrg			alliant)
21979d5fcd7Smrg				basic_machine=fx80-alliant
22079d5fcd7Smrg				basic_os=
22179d5fcd7Smrg				;;
22279d5fcd7Smrg			altos | altos3068)
22379d5fcd7Smrg				basic_machine=m68k-altos
22479d5fcd7Smrg				basic_os=
22579d5fcd7Smrg				;;
22679d5fcd7Smrg			am29k)
22779d5fcd7Smrg				basic_machine=a29k-none
22879d5fcd7Smrg				basic_os=bsd
22979d5fcd7Smrg				;;
23079d5fcd7Smrg			amdahl)
23179d5fcd7Smrg				basic_machine=580-amdahl
23279d5fcd7Smrg				basic_os=sysv
23379d5fcd7Smrg				;;
23479d5fcd7Smrg			amiga)
23579d5fcd7Smrg				basic_machine=m68k-unknown
23679d5fcd7Smrg				basic_os=
23779d5fcd7Smrg				;;
23879d5fcd7Smrg			amigaos | amigados)
23979d5fcd7Smrg				basic_machine=m68k-unknown
24079d5fcd7Smrg				basic_os=amigaos
24179d5fcd7Smrg				;;
24279d5fcd7Smrg			amigaunix | amix)
24379d5fcd7Smrg				basic_machine=m68k-unknown
24479d5fcd7Smrg				basic_os=sysv4
24579d5fcd7Smrg				;;
24679d5fcd7Smrg			apollo68)
24779d5fcd7Smrg				basic_machine=m68k-apollo
24879d5fcd7Smrg				basic_os=sysv
24979d5fcd7Smrg				;;
25079d5fcd7Smrg			apollo68bsd)
25179d5fcd7Smrg				basic_machine=m68k-apollo
25279d5fcd7Smrg				basic_os=bsd
25379d5fcd7Smrg				;;
25479d5fcd7Smrg			aros)
25579d5fcd7Smrg				basic_machine=i386-pc
25679d5fcd7Smrg				basic_os=aros
25779d5fcd7Smrg				;;
25879d5fcd7Smrg			aux)
25979d5fcd7Smrg				basic_machine=m68k-apple
26079d5fcd7Smrg				basic_os=aux
26179d5fcd7Smrg				;;
26279d5fcd7Smrg			balance)
26379d5fcd7Smrg				basic_machine=ns32k-sequent
26479d5fcd7Smrg				basic_os=dynix
26579d5fcd7Smrg				;;
26679d5fcd7Smrg			blackfin)
26779d5fcd7Smrg				basic_machine=bfin-unknown
26879d5fcd7Smrg				basic_os=linux
26979d5fcd7Smrg				;;
27079d5fcd7Smrg			cegcc)
27179d5fcd7Smrg				basic_machine=arm-unknown
27279d5fcd7Smrg				basic_os=cegcc
27379d5fcd7Smrg				;;
27479d5fcd7Smrg			convex-c1)
27579d5fcd7Smrg				basic_machine=c1-convex
27679d5fcd7Smrg				basic_os=bsd
27779d5fcd7Smrg				;;
27879d5fcd7Smrg			convex-c2)
27979d5fcd7Smrg				basic_machine=c2-convex
28079d5fcd7Smrg				basic_os=bsd
28179d5fcd7Smrg				;;
28279d5fcd7Smrg			convex-c32)
28379d5fcd7Smrg				basic_machine=c32-convex
28479d5fcd7Smrg				basic_os=bsd
28579d5fcd7Smrg				;;
28679d5fcd7Smrg			convex-c34)
28779d5fcd7Smrg				basic_machine=c34-convex
28879d5fcd7Smrg				basic_os=bsd
28979d5fcd7Smrg				;;
29079d5fcd7Smrg			convex-c38)
29179d5fcd7Smrg				basic_machine=c38-convex
29279d5fcd7Smrg				basic_os=bsd
29379d5fcd7Smrg				;;
29479d5fcd7Smrg			cray)
29579d5fcd7Smrg				basic_machine=j90-cray
29679d5fcd7Smrg				basic_os=unicos
29779d5fcd7Smrg				;;
29879d5fcd7Smrg			crds | unos)
29979d5fcd7Smrg				basic_machine=m68k-crds
30079d5fcd7Smrg				basic_os=
30179d5fcd7Smrg				;;
30279d5fcd7Smrg			da30)
30379d5fcd7Smrg				basic_machine=m68k-da30
30479d5fcd7Smrg				basic_os=
30579d5fcd7Smrg				;;
30679d5fcd7Smrg			decstation | pmax | pmin | dec3100 | decstatn)
30779d5fcd7Smrg				basic_machine=mips-dec
30879d5fcd7Smrg				basic_os=
30979d5fcd7Smrg				;;
31079d5fcd7Smrg			delta88)
31179d5fcd7Smrg				basic_machine=m88k-motorola
31279d5fcd7Smrg				basic_os=sysv3
31379d5fcd7Smrg				;;
31479d5fcd7Smrg			dicos)
31579d5fcd7Smrg				basic_machine=i686-pc
31679d5fcd7Smrg				basic_os=dicos
31779d5fcd7Smrg				;;
31879d5fcd7Smrg			djgpp)
31979d5fcd7Smrg				basic_machine=i586-pc
32079d5fcd7Smrg				basic_os=msdosdjgpp
32179d5fcd7Smrg				;;
32279d5fcd7Smrg			ebmon29k)
32379d5fcd7Smrg				basic_machine=a29k-amd
32479d5fcd7Smrg				basic_os=ebmon
32579d5fcd7Smrg				;;
32679d5fcd7Smrg			es1800 | OSE68k | ose68k | ose | OSE)
32779d5fcd7Smrg				basic_machine=m68k-ericsson
32879d5fcd7Smrg				basic_os=ose
32979d5fcd7Smrg				;;
33079d5fcd7Smrg			gmicro)
33179d5fcd7Smrg				basic_machine=tron-gmicro
33279d5fcd7Smrg				basic_os=sysv
33379d5fcd7Smrg				;;
33479d5fcd7Smrg			go32)
33579d5fcd7Smrg				basic_machine=i386-pc
33679d5fcd7Smrg				basic_os=go32
33779d5fcd7Smrg				;;
33879d5fcd7Smrg			h8300hms)
33979d5fcd7Smrg				basic_machine=h8300-hitachi
34079d5fcd7Smrg				basic_os=hms
34179d5fcd7Smrg				;;
34279d5fcd7Smrg			h8300xray)
34379d5fcd7Smrg				basic_machine=h8300-hitachi
34479d5fcd7Smrg				basic_os=xray
34579d5fcd7Smrg				;;
34679d5fcd7Smrg			h8500hms)
34779d5fcd7Smrg				basic_machine=h8500-hitachi
34879d5fcd7Smrg				basic_os=hms
34979d5fcd7Smrg				;;
35079d5fcd7Smrg			harris)
35179d5fcd7Smrg				basic_machine=m88k-harris
35279d5fcd7Smrg				basic_os=sysv3
35379d5fcd7Smrg				;;
35479d5fcd7Smrg			hp300 | hp300hpux)
35579d5fcd7Smrg				basic_machine=m68k-hp
35679d5fcd7Smrg				basic_os=hpux
35779d5fcd7Smrg				;;
35879d5fcd7Smrg			hp300bsd)
35979d5fcd7Smrg				basic_machine=m68k-hp
36079d5fcd7Smrg				basic_os=bsd
36179d5fcd7Smrg				;;
36279d5fcd7Smrg			hppaosf)
36379d5fcd7Smrg				basic_machine=hppa1.1-hp
36479d5fcd7Smrg				basic_os=osf
36579d5fcd7Smrg				;;
36679d5fcd7Smrg			hppro)
36779d5fcd7Smrg				basic_machine=hppa1.1-hp
36879d5fcd7Smrg				basic_os=proelf
36979d5fcd7Smrg				;;
37079d5fcd7Smrg			i386mach)
37179d5fcd7Smrg				basic_machine=i386-mach
37279d5fcd7Smrg				basic_os=mach
37379d5fcd7Smrg				;;
37479d5fcd7Smrg			isi68 | isi)
37579d5fcd7Smrg				basic_machine=m68k-isi
37679d5fcd7Smrg				basic_os=sysv
37779d5fcd7Smrg				;;
37879d5fcd7Smrg			m68knommu)
37979d5fcd7Smrg				basic_machine=m68k-unknown
38079d5fcd7Smrg				basic_os=linux
38179d5fcd7Smrg				;;
38279d5fcd7Smrg			magnum | m3230)
38379d5fcd7Smrg				basic_machine=mips-mips
38479d5fcd7Smrg				basic_os=sysv
38579d5fcd7Smrg				;;
38679d5fcd7Smrg			merlin)
38779d5fcd7Smrg				basic_machine=ns32k-utek
38879d5fcd7Smrg				basic_os=sysv
38979d5fcd7Smrg				;;
39079d5fcd7Smrg			mingw64)
39179d5fcd7Smrg				basic_machine=x86_64-pc
39279d5fcd7Smrg				basic_os=mingw64
39379d5fcd7Smrg				;;
39479d5fcd7Smrg			mingw32)
39579d5fcd7Smrg				basic_machine=i686-pc
39679d5fcd7Smrg				basic_os=mingw32
39779d5fcd7Smrg				;;
39879d5fcd7Smrg			mingw32ce)
39979d5fcd7Smrg				basic_machine=arm-unknown
40079d5fcd7Smrg				basic_os=mingw32ce
40179d5fcd7Smrg				;;
40279d5fcd7Smrg			monitor)
40379d5fcd7Smrg				basic_machine=m68k-rom68k
40479d5fcd7Smrg				basic_os=coff
40579d5fcd7Smrg				;;
40679d5fcd7Smrg			morphos)
40779d5fcd7Smrg				basic_machine=powerpc-unknown
40879d5fcd7Smrg				basic_os=morphos
40979d5fcd7Smrg				;;
41079d5fcd7Smrg			moxiebox)
41179d5fcd7Smrg				basic_machine=moxie-unknown
41279d5fcd7Smrg				basic_os=moxiebox
41379d5fcd7Smrg				;;
41479d5fcd7Smrg			msdos)
41579d5fcd7Smrg				basic_machine=i386-pc
41679d5fcd7Smrg				basic_os=msdos
41779d5fcd7Smrg				;;
41879d5fcd7Smrg			msys)
41979d5fcd7Smrg				basic_machine=i686-pc
42079d5fcd7Smrg				basic_os=msys
42179d5fcd7Smrg				;;
42279d5fcd7Smrg			mvs)
42379d5fcd7Smrg				basic_machine=i370-ibm
42479d5fcd7Smrg				basic_os=mvs
42579d5fcd7Smrg				;;
42679d5fcd7Smrg			nacl)
42779d5fcd7Smrg				basic_machine=le32-unknown
42879d5fcd7Smrg				basic_os=nacl
42979d5fcd7Smrg				;;
43079d5fcd7Smrg			ncr3000)
43179d5fcd7Smrg				basic_machine=i486-ncr
43279d5fcd7Smrg				basic_os=sysv4
43379d5fcd7Smrg				;;
43479d5fcd7Smrg			netbsd386)
43579d5fcd7Smrg				basic_machine=i386-pc
43679d5fcd7Smrg				basic_os=netbsd
43779d5fcd7Smrg				;;
43879d5fcd7Smrg			netwinder)
43979d5fcd7Smrg				basic_machine=armv4l-rebel
44079d5fcd7Smrg				basic_os=linux
44179d5fcd7Smrg				;;
44279d5fcd7Smrg			news | news700 | news800 | news900)
44379d5fcd7Smrg				basic_machine=m68k-sony
44479d5fcd7Smrg				basic_os=newsos
44579d5fcd7Smrg				;;
44679d5fcd7Smrg			news1000)
44779d5fcd7Smrg				basic_machine=m68030-sony
44879d5fcd7Smrg				basic_os=newsos
44979d5fcd7Smrg				;;
45079d5fcd7Smrg			necv70)
45179d5fcd7Smrg				basic_machine=v70-nec
45279d5fcd7Smrg				basic_os=sysv
45379d5fcd7Smrg				;;
45479d5fcd7Smrg			nh3000)
45579d5fcd7Smrg				basic_machine=m68k-harris
45679d5fcd7Smrg				basic_os=cxux
45779d5fcd7Smrg				;;
45879d5fcd7Smrg			nh[45]000)
45979d5fcd7Smrg				basic_machine=m88k-harris
46079d5fcd7Smrg				basic_os=cxux
46179d5fcd7Smrg				;;
46279d5fcd7Smrg			nindy960)
46379d5fcd7Smrg				basic_machine=i960-intel
46479d5fcd7Smrg				basic_os=nindy
46579d5fcd7Smrg				;;
46679d5fcd7Smrg			mon960)
46779d5fcd7Smrg				basic_machine=i960-intel
46879d5fcd7Smrg				basic_os=mon960
46979d5fcd7Smrg				;;
47079d5fcd7Smrg			nonstopux)
47179d5fcd7Smrg				basic_machine=mips-compaq
47279d5fcd7Smrg				basic_os=nonstopux
47379d5fcd7Smrg				;;
47479d5fcd7Smrg			os400)
47579d5fcd7Smrg				basic_machine=powerpc-ibm
47679d5fcd7Smrg				basic_os=os400
47779d5fcd7Smrg				;;
47879d5fcd7Smrg			OSE68000 | ose68000)
47979d5fcd7Smrg				basic_machine=m68000-ericsson
48079d5fcd7Smrg				basic_os=ose
48179d5fcd7Smrg				;;
48279d5fcd7Smrg			os68k)
48379d5fcd7Smrg				basic_machine=m68k-none
48479d5fcd7Smrg				basic_os=os68k
48579d5fcd7Smrg				;;
48679d5fcd7Smrg			paragon)
48779d5fcd7Smrg				basic_machine=i860-intel
48879d5fcd7Smrg				basic_os=osf
48979d5fcd7Smrg				;;
49079d5fcd7Smrg			parisc)
49179d5fcd7Smrg				basic_machine=hppa-unknown
49279d5fcd7Smrg				basic_os=linux
49379d5fcd7Smrg				;;
49479d5fcd7Smrg			psp)
49579d5fcd7Smrg				basic_machine=mipsallegrexel-sony
49679d5fcd7Smrg				basic_os=psp
49779d5fcd7Smrg				;;
49879d5fcd7Smrg			pw32)
49979d5fcd7Smrg				basic_machine=i586-unknown
50079d5fcd7Smrg				basic_os=pw32
50179d5fcd7Smrg				;;
50279d5fcd7Smrg			rdos | rdos64)
50379d5fcd7Smrg				basic_machine=x86_64-pc
50479d5fcd7Smrg				basic_os=rdos
50579d5fcd7Smrg				;;
50679d5fcd7Smrg			rdos32)
50779d5fcd7Smrg				basic_machine=i386-pc
50879d5fcd7Smrg				basic_os=rdos
50979d5fcd7Smrg				;;
51079d5fcd7Smrg			rom68k)
51179d5fcd7Smrg				basic_machine=m68k-rom68k
51279d5fcd7Smrg				basic_os=coff
51379d5fcd7Smrg				;;
51479d5fcd7Smrg			sa29200)
51579d5fcd7Smrg				basic_machine=a29k-amd
51679d5fcd7Smrg				basic_os=udi
51779d5fcd7Smrg				;;
51879d5fcd7Smrg			sei)
51979d5fcd7Smrg				basic_machine=mips-sei
52079d5fcd7Smrg				basic_os=seiux
52179d5fcd7Smrg				;;
52279d5fcd7Smrg			sequent)
52379d5fcd7Smrg				basic_machine=i386-sequent
52479d5fcd7Smrg				basic_os=
52579d5fcd7Smrg				;;
52679d5fcd7Smrg			sps7)
52779d5fcd7Smrg				basic_machine=m68k-bull
52879d5fcd7Smrg				basic_os=sysv2
52979d5fcd7Smrg				;;
53079d5fcd7Smrg			st2000)
53179d5fcd7Smrg				basic_machine=m68k-tandem
53279d5fcd7Smrg				basic_os=
53379d5fcd7Smrg				;;
53479d5fcd7Smrg			stratus)
53579d5fcd7Smrg				basic_machine=i860-stratus
53679d5fcd7Smrg				basic_os=sysv4
53779d5fcd7Smrg				;;
53879d5fcd7Smrg			sun2)
53979d5fcd7Smrg				basic_machine=m68000-sun
54079d5fcd7Smrg				basic_os=
54179d5fcd7Smrg				;;
54279d5fcd7Smrg			sun2os3)
54379d5fcd7Smrg				basic_machine=m68000-sun
54479d5fcd7Smrg				basic_os=sunos3
54579d5fcd7Smrg				;;
54679d5fcd7Smrg			sun2os4)
54779d5fcd7Smrg				basic_machine=m68000-sun
54879d5fcd7Smrg				basic_os=sunos4
54979d5fcd7Smrg				;;
55079d5fcd7Smrg			sun3)
55179d5fcd7Smrg				basic_machine=m68k-sun
55279d5fcd7Smrg				basic_os=
55379d5fcd7Smrg				;;
55479d5fcd7Smrg			sun3os3)
55579d5fcd7Smrg				basic_machine=m68k-sun
55679d5fcd7Smrg				basic_os=sunos3
55779d5fcd7Smrg				;;
55879d5fcd7Smrg			sun3os4)
55979d5fcd7Smrg				basic_machine=m68k-sun
56079d5fcd7Smrg				basic_os=sunos4
56179d5fcd7Smrg				;;
56279d5fcd7Smrg			sun4)
56379d5fcd7Smrg				basic_machine=sparc-sun
56479d5fcd7Smrg				basic_os=
56579d5fcd7Smrg				;;
56679d5fcd7Smrg			sun4os3)
56779d5fcd7Smrg				basic_machine=sparc-sun
56879d5fcd7Smrg				basic_os=sunos3
56979d5fcd7Smrg				;;
57079d5fcd7Smrg			sun4os4)
57179d5fcd7Smrg				basic_machine=sparc-sun
57279d5fcd7Smrg				basic_os=sunos4
57379d5fcd7Smrg				;;
57479d5fcd7Smrg			sun4sol2)
57579d5fcd7Smrg				basic_machine=sparc-sun
57679d5fcd7Smrg				basic_os=solaris2
57779d5fcd7Smrg				;;
57879d5fcd7Smrg			sun386 | sun386i | roadrunner)
57979d5fcd7Smrg				basic_machine=i386-sun
58079d5fcd7Smrg				basic_os=
58179d5fcd7Smrg				;;
58279d5fcd7Smrg			sv1)
58379d5fcd7Smrg				basic_machine=sv1-cray
58479d5fcd7Smrg				basic_os=unicos
58579d5fcd7Smrg				;;
58679d5fcd7Smrg			symmetry)
58779d5fcd7Smrg				basic_machine=i386-sequent
58879d5fcd7Smrg				basic_os=dynix
58979d5fcd7Smrg				;;
59079d5fcd7Smrg			t3e)
59179d5fcd7Smrg				basic_machine=alphaev5-cray
59279d5fcd7Smrg				basic_os=unicos
59379d5fcd7Smrg				;;
59479d5fcd7Smrg			t90)
59579d5fcd7Smrg				basic_machine=t90-cray
59679d5fcd7Smrg				basic_os=unicos
59779d5fcd7Smrg				;;
59879d5fcd7Smrg			toad1)
59979d5fcd7Smrg				basic_machine=pdp10-xkl
60079d5fcd7Smrg				basic_os=tops20
60179d5fcd7Smrg				;;
60279d5fcd7Smrg			tpf)
60379d5fcd7Smrg				basic_machine=s390x-ibm
60479d5fcd7Smrg				basic_os=tpf
60579d5fcd7Smrg				;;
60679d5fcd7Smrg			udi29k)
60779d5fcd7Smrg				basic_machine=a29k-amd
60879d5fcd7Smrg				basic_os=udi
60979d5fcd7Smrg				;;
61079d5fcd7Smrg			ultra3)
61179d5fcd7Smrg				basic_machine=a29k-nyu
61279d5fcd7Smrg				basic_os=sym1
61379d5fcd7Smrg				;;
61479d5fcd7Smrg			v810 | necv810)
61579d5fcd7Smrg				basic_machine=v810-nec
61679d5fcd7Smrg				basic_os=none
61779d5fcd7Smrg				;;
61879d5fcd7Smrg			vaxv)
61979d5fcd7Smrg				basic_machine=vax-dec
62079d5fcd7Smrg				basic_os=sysv
62179d5fcd7Smrg				;;
62279d5fcd7Smrg			vms)
62379d5fcd7Smrg				basic_machine=vax-dec
62479d5fcd7Smrg				basic_os=vms
62579d5fcd7Smrg				;;
62679d5fcd7Smrg			vsta)
62779d5fcd7Smrg				basic_machine=i386-pc
62879d5fcd7Smrg				basic_os=vsta
62979d5fcd7Smrg				;;
63079d5fcd7Smrg			vxworks960)
63179d5fcd7Smrg				basic_machine=i960-wrs
63279d5fcd7Smrg				basic_os=vxworks
63379d5fcd7Smrg				;;
63479d5fcd7Smrg			vxworks68)
63579d5fcd7Smrg				basic_machine=m68k-wrs
63679d5fcd7Smrg				basic_os=vxworks
63779d5fcd7Smrg				;;
63879d5fcd7Smrg			vxworks29k)
63979d5fcd7Smrg				basic_machine=a29k-wrs
64079d5fcd7Smrg				basic_os=vxworks
64179d5fcd7Smrg				;;
64279d5fcd7Smrg			xbox)
64379d5fcd7Smrg				basic_machine=i686-pc
64479d5fcd7Smrg				basic_os=mingw32
64579d5fcd7Smrg				;;
64679d5fcd7Smrg			ymp)
64779d5fcd7Smrg				basic_machine=ymp-cray
64879d5fcd7Smrg				basic_os=unicos
64979d5fcd7Smrg				;;
65079d5fcd7Smrg			*)
65179d5fcd7Smrg				basic_machine=$1
65279d5fcd7Smrg				basic_os=
65379d5fcd7Smrg				;;
65479d5fcd7Smrg		esac
65504007ebaSmrg		;;
65604007ebaSmrgesac
65704007ebaSmrg
65879d5fcd7Smrg# Decode 1-component or ad-hoc basic machines
65904007ebaSmrgcase $basic_machine in
66079d5fcd7Smrg	# Here we handle the default manufacturer of certain CPU types.  It is in
66179d5fcd7Smrg	# some cases the only manufacturer, in others, it is the most popular.
66279d5fcd7Smrg	w89k)
66379d5fcd7Smrg		cpu=hppa1.1
66479d5fcd7Smrg		vendor=winbond
66504007ebaSmrg		;;
66679d5fcd7Smrg	op50n)
66779d5fcd7Smrg		cpu=hppa1.1
66879d5fcd7Smrg		vendor=oki
66904007ebaSmrg		;;
67079d5fcd7Smrg	op60c)
67179d5fcd7Smrg		cpu=hppa1.1
67279d5fcd7Smrg		vendor=oki
67304007ebaSmrg		;;
67479d5fcd7Smrg	ibm*)
67579d5fcd7Smrg		cpu=i370
67679d5fcd7Smrg		vendor=ibm
67704007ebaSmrg		;;
67879d5fcd7Smrg	orion105)
67979d5fcd7Smrg		cpu=clipper
68079d5fcd7Smrg		vendor=highlevel
68104007ebaSmrg		;;
68279d5fcd7Smrg	mac | mpw | mac-mpw)
68379d5fcd7Smrg		cpu=m68k
68479d5fcd7Smrg		vendor=apple
68504007ebaSmrg		;;
68679d5fcd7Smrg	pmac | pmac-mpw)
68779d5fcd7Smrg		cpu=powerpc
68879d5fcd7Smrg		vendor=apple
68904007ebaSmrg		;;
69004007ebaSmrg
69104007ebaSmrg	# Recognize the various machine names and aliases which stand
69204007ebaSmrg	# for a CPU type and a company and sometimes even an OS.
69304007ebaSmrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
69479d5fcd7Smrg		cpu=m68000
69579d5fcd7Smrg		vendor=att
69604007ebaSmrg		;;
69704007ebaSmrg	3b*)
69879d5fcd7Smrg		cpu=we32k
69979d5fcd7Smrg		vendor=att
70004007ebaSmrg		;;
70104007ebaSmrg	bluegene*)
70279d5fcd7Smrg		cpu=powerpc
70379d5fcd7Smrg		vendor=ibm
70479d5fcd7Smrg		basic_os=cnk
70504007ebaSmrg		;;
70604007ebaSmrg	decsystem10* | dec10*)
70779d5fcd7Smrg		cpu=pdp10
70879d5fcd7Smrg		vendor=dec
70979d5fcd7Smrg		basic_os=tops10
71004007ebaSmrg		;;
71104007ebaSmrg	decsystem20* | dec20*)
71279d5fcd7Smrg		cpu=pdp10
71379d5fcd7Smrg		vendor=dec
71479d5fcd7Smrg		basic_os=tops20
71504007ebaSmrg		;;
71604007ebaSmrg	delta | 3300 | motorola-3300 | motorola-delta \
71704007ebaSmrg	      | 3300-motorola | delta-motorola)
71879d5fcd7Smrg		cpu=m68k
71979d5fcd7Smrg		vendor=motorola
72004007ebaSmrg		;;
72105cf1079Smrg	dpx2*)
72279d5fcd7Smrg		cpu=m68k
72379d5fcd7Smrg		vendor=bull
72479d5fcd7Smrg		basic_os=sysv3
72504007ebaSmrg		;;
72604007ebaSmrg	encore | umax | mmax)
72779d5fcd7Smrg		cpu=ns32k
72879d5fcd7Smrg		vendor=encore
72904007ebaSmrg		;;
73079d5fcd7Smrg	elxsi)
73179d5fcd7Smrg		cpu=elxsi
73279d5fcd7Smrg		vendor=elxsi
73379d5fcd7Smrg		basic_os=${basic_os:-bsd}
73404007ebaSmrg		;;
73504007ebaSmrg	fx2800)
73679d5fcd7Smrg		cpu=i860
73779d5fcd7Smrg		vendor=alliant
73804007ebaSmrg		;;
73904007ebaSmrg	genix)
74079d5fcd7Smrg		cpu=ns32k
74179d5fcd7Smrg		vendor=ns
74204007ebaSmrg		;;
74304007ebaSmrg	h3050r* | hiux*)
74479d5fcd7Smrg		cpu=hppa1.1
74579d5fcd7Smrg		vendor=hitachi
74679d5fcd7Smrg		basic_os=hiuxwe2
74704007ebaSmrg		;;
74804007ebaSmrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
74979d5fcd7Smrg		cpu=hppa1.0
75079d5fcd7Smrg		vendor=hp
75104007ebaSmrg		;;
75204007ebaSmrg	hp9k2[0-9][0-9] | hp9k31[0-9])
75379d5fcd7Smrg		cpu=m68000
75479d5fcd7Smrg		vendor=hp
75504007ebaSmrg		;;
75604007ebaSmrg	hp9k3[2-9][0-9])
75779d5fcd7Smrg		cpu=m68k
75879d5fcd7Smrg		vendor=hp
75904007ebaSmrg		;;
76004007ebaSmrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
76179d5fcd7Smrg		cpu=hppa1.0
76279d5fcd7Smrg		vendor=hp
76304007ebaSmrg		;;
76404007ebaSmrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
76579d5fcd7Smrg		cpu=hppa1.1
76679d5fcd7Smrg		vendor=hp
76704007ebaSmrg		;;
76804007ebaSmrg	hp9k78[0-9] | hp78[0-9])
76904007ebaSmrg		# FIXME: really hppa2.0-hp
77079d5fcd7Smrg		cpu=hppa1.1
77179d5fcd7Smrg		vendor=hp
77204007ebaSmrg		;;
77304007ebaSmrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
77404007ebaSmrg		# FIXME: really hppa2.0-hp
77579d5fcd7Smrg		cpu=hppa1.1
77679d5fcd7Smrg		vendor=hp
77704007ebaSmrg		;;
77804007ebaSmrg	hp9k8[0-9][13679] | hp8[0-9][13679])
77979d5fcd7Smrg		cpu=hppa1.1
78079d5fcd7Smrg		vendor=hp
78104007ebaSmrg		;;
78204007ebaSmrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
78379d5fcd7Smrg		cpu=hppa1.0
78479d5fcd7Smrg		vendor=hp
78504007ebaSmrg		;;
78604007ebaSmrg	i*86v32)
78779d5fcd7Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
78879d5fcd7Smrg		vendor=pc
78979d5fcd7Smrg		basic_os=sysv32
79004007ebaSmrg		;;
79104007ebaSmrg	i*86v4*)
79279d5fcd7Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
79379d5fcd7Smrg		vendor=pc
79479d5fcd7Smrg		basic_os=sysv4
79504007ebaSmrg		;;
79604007ebaSmrg	i*86v)
79779d5fcd7Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
79879d5fcd7Smrg		vendor=pc
79979d5fcd7Smrg		basic_os=sysv
80004007ebaSmrg		;;
80104007ebaSmrg	i*86sol2)
80279d5fcd7Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
80379d5fcd7Smrg		vendor=pc
80479d5fcd7Smrg		basic_os=solaris2
80504007ebaSmrg		;;
80679d5fcd7Smrg	j90 | j90-cray)
80779d5fcd7Smrg		cpu=j90
80879d5fcd7Smrg		vendor=cray
80979d5fcd7Smrg		basic_os=${basic_os:-unicos}
81004007ebaSmrg		;;
81104007ebaSmrg	iris | iris4d)
81279d5fcd7Smrg		cpu=mips
81379d5fcd7Smrg		vendor=sgi
81479d5fcd7Smrg		case $basic_os in
81579d5fcd7Smrg		    irix*)
81604007ebaSmrg			;;
81704007ebaSmrg		    *)
81879d5fcd7Smrg			basic_os=irix4
81904007ebaSmrg			;;
82004007ebaSmrg		esac
82104007ebaSmrg		;;
82204007ebaSmrg	miniframe)
82379d5fcd7Smrg		cpu=m68000
82479d5fcd7Smrg		vendor=convergent
82504007ebaSmrg		;;
82679d5fcd7Smrg	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
82779d5fcd7Smrg		cpu=m68k
82879d5fcd7Smrg		vendor=atari
82979d5fcd7Smrg		basic_os=mint
83004007ebaSmrg		;;
83104007ebaSmrg	news-3600 | risc-news)
83279d5fcd7Smrg		cpu=mips
83379d5fcd7Smrg		vendor=sony
83479d5fcd7Smrg		basic_os=newsos
83504007ebaSmrg		;;
83605cf1079Smrg	next | m*-next)
83779d5fcd7Smrg		cpu=m68k
83879d5fcd7Smrg		vendor=next
83979d5fcd7Smrg		case $basic_os in
84079d5fcd7Smrg		    openstep*)
84179d5fcd7Smrg		        ;;
84279d5fcd7Smrg		    nextstep*)
84304007ebaSmrg			;;
84479d5fcd7Smrg		    ns2*)
84579d5fcd7Smrg		      basic_os=nextstep2
84604007ebaSmrg			;;
84704007ebaSmrg		    *)
84879d5fcd7Smrg		      basic_os=nextstep3
84904007ebaSmrg			;;
85004007ebaSmrg		esac
85104007ebaSmrg		;;
85204007ebaSmrg	np1)
85379d5fcd7Smrg		cpu=np1
85479d5fcd7Smrg		vendor=gould
85505cf1079Smrg		;;
85604007ebaSmrg	op50n-* | op60c-*)
85779d5fcd7Smrg		cpu=hppa1.1
85879d5fcd7Smrg		vendor=oki
85979d5fcd7Smrg		basic_os=proelf
86004007ebaSmrg		;;
86104007ebaSmrg	pa-hitachi)
86279d5fcd7Smrg		cpu=hppa1.1
86379d5fcd7Smrg		vendor=hitachi
86479d5fcd7Smrg		basic_os=hiuxwe2
86504007ebaSmrg		;;
86604007ebaSmrg	pbd)
86779d5fcd7Smrg		cpu=sparc
86879d5fcd7Smrg		vendor=tti
86904007ebaSmrg		;;
87004007ebaSmrg	pbb)
87179d5fcd7Smrg		cpu=m68k
87279d5fcd7Smrg		vendor=tti
87304007ebaSmrg		;;
87479d5fcd7Smrg	pc532)
87579d5fcd7Smrg		cpu=ns32k
87679d5fcd7Smrg		vendor=pc532
87704007ebaSmrg		;;
87804007ebaSmrg	pn)
87979d5fcd7Smrg		cpu=pn
88079d5fcd7Smrg		vendor=gould
88104007ebaSmrg		;;
88279d5fcd7Smrg	power)
88379d5fcd7Smrg		cpu=power
88479d5fcd7Smrg		vendor=ibm
88504007ebaSmrg		;;
88679d5fcd7Smrg	ps2)
88779d5fcd7Smrg		cpu=i386
88879d5fcd7Smrg		vendor=ibm
88904007ebaSmrg		;;
89079d5fcd7Smrg	rm[46]00)
89179d5fcd7Smrg		cpu=mips
89279d5fcd7Smrg		vendor=siemens
89304007ebaSmrg		;;
89479d5fcd7Smrg	rtpc | rtpc-*)
89579d5fcd7Smrg		cpu=romp
89679d5fcd7Smrg		vendor=ibm
89704007ebaSmrg		;;
89879d5fcd7Smrg	sde)
89979d5fcd7Smrg		cpu=mipsisa32
90079d5fcd7Smrg		vendor=sde
90179d5fcd7Smrg		basic_os=${basic_os:-elf}
90204007ebaSmrg		;;
90379d5fcd7Smrg	simso-wrs)
90479d5fcd7Smrg		cpu=sparclite
90579d5fcd7Smrg		vendor=wrs
90679d5fcd7Smrg		basic_os=vxworks
90704007ebaSmrg		;;
90879d5fcd7Smrg	tower | tower-32)
90979d5fcd7Smrg		cpu=m68k
91079d5fcd7Smrg		vendor=ncr
91104007ebaSmrg		;;
91279d5fcd7Smrg	vpp*|vx|vx-*)
91379d5fcd7Smrg		cpu=f301
91479d5fcd7Smrg		vendor=fujitsu
91504007ebaSmrg		;;
91679d5fcd7Smrg	w65)
91779d5fcd7Smrg		cpu=w65
91879d5fcd7Smrg		vendor=wdc
91904007ebaSmrg		;;
92079d5fcd7Smrg	w89k-*)
92179d5fcd7Smrg		cpu=hppa1.1
92279d5fcd7Smrg		vendor=winbond
92379d5fcd7Smrg		basic_os=proelf
92404007ebaSmrg		;;
92579d5fcd7Smrg	none)
92679d5fcd7Smrg		cpu=none
92779d5fcd7Smrg		vendor=none
92804007ebaSmrg		;;
92979d5fcd7Smrg	leon|leon[3-9])
93079d5fcd7Smrg		cpu=sparc
93179d5fcd7Smrg		vendor=$basic_machine
93204007ebaSmrg		;;
93379d5fcd7Smrg	leon-*|leon[3-9]-*)
93479d5fcd7Smrg		cpu=sparc
93579d5fcd7Smrg		vendor=`echo "$basic_machine" | sed 's/-.*//'`
93604007ebaSmrg		;;
93779d5fcd7Smrg
93879d5fcd7Smrg	*-*)
93979d5fcd7Smrg		# shellcheck disable=SC2162
94079d5fcd7Smrg		saved_IFS=$IFS
94179d5fcd7Smrg		IFS="-" read cpu vendor <<EOF
94279d5fcd7Smrg$basic_machine
94379d5fcd7SmrgEOF
94479d5fcd7Smrg		IFS=$saved_IFS
94504007ebaSmrg		;;
94679d5fcd7Smrg	# We use `pc' rather than `unknown'
94779d5fcd7Smrg	# because (1) that's what they normally are, and
94879d5fcd7Smrg	# (2) the word "unknown" tends to confuse beginning users.
94979d5fcd7Smrg	i*86 | x86_64)
95079d5fcd7Smrg		cpu=$basic_machine
95179d5fcd7Smrg		vendor=pc
95204007ebaSmrg		;;
95379d5fcd7Smrg	# These rules are duplicated from below for sake of the special case above;
95479d5fcd7Smrg	# i.e. things that normalized to x86 arches should also default to "pc"
95579d5fcd7Smrg	pc98)
95679d5fcd7Smrg		cpu=i386
95779d5fcd7Smrg		vendor=pc
95804007ebaSmrg		;;
95979d5fcd7Smrg	x64 | amd64)
96079d5fcd7Smrg		cpu=x86_64
96179d5fcd7Smrg		vendor=pc
96204007ebaSmrg		;;
96379d5fcd7Smrg	# Recognize the basic CPU types without company name.
96479d5fcd7Smrg	*)
96579d5fcd7Smrg		cpu=$basic_machine
96679d5fcd7Smrg		vendor=unknown
96704007ebaSmrg		;;
96879d5fcd7Smrgesac
96979d5fcd7Smrg
97079d5fcd7Smrgunset -v basic_machine
97179d5fcd7Smrg
97279d5fcd7Smrg# Decode basic machines in the full and proper CPU-Company form.
97379d5fcd7Smrgcase $cpu-$vendor in
97479d5fcd7Smrg	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
97579d5fcd7Smrg	# some cases the only manufacturer, in others, it is the most popular.
97679d5fcd7Smrg	craynv-unknown)
97779d5fcd7Smrg		vendor=cray
97879d5fcd7Smrg		basic_os=${basic_os:-unicosmp}
97904007ebaSmrg		;;
98079d5fcd7Smrg	c90-unknown | c90-cray)
98179d5fcd7Smrg		vendor=cray
98279d5fcd7Smrg		basic_os=${Basic_os:-unicos}
98304007ebaSmrg		;;
98479d5fcd7Smrg	fx80-unknown)
98579d5fcd7Smrg		vendor=alliant
98604007ebaSmrg		;;
98779d5fcd7Smrg	romp-unknown)
98879d5fcd7Smrg		vendor=ibm
98904007ebaSmrg		;;
99079d5fcd7Smrg	mmix-unknown)
99179d5fcd7Smrg		vendor=knuth
99204007ebaSmrg		;;
99379d5fcd7Smrg	microblaze-unknown | microblazeel-unknown)
99479d5fcd7Smrg		vendor=xilinx
99504007ebaSmrg		;;
99679d5fcd7Smrg	rs6000-unknown)
99779d5fcd7Smrg		vendor=ibm
99804007ebaSmrg		;;
99979d5fcd7Smrg	vax-unknown)
100079d5fcd7Smrg		vendor=dec
100104007ebaSmrg		;;
100279d5fcd7Smrg	pdp11-unknown)
100379d5fcd7Smrg		vendor=dec
100404007ebaSmrg		;;
100579d5fcd7Smrg	we32k-unknown)
100679d5fcd7Smrg		vendor=att
100704007ebaSmrg		;;
100879d5fcd7Smrg	cydra-unknown)
100979d5fcd7Smrg		vendor=cydrome
101004007ebaSmrg		;;
101179d5fcd7Smrg	i370-ibm*)
101279d5fcd7Smrg		vendor=ibm
101304007ebaSmrg		;;
101479d5fcd7Smrg	orion-unknown)
101579d5fcd7Smrg		vendor=highlevel
101604007ebaSmrg		;;
101779d5fcd7Smrg	xps-unknown | xps100-unknown)
101879d5fcd7Smrg		cpu=xps100
101979d5fcd7Smrg		vendor=honeywell
102004007ebaSmrg		;;
102179d5fcd7Smrg
102279d5fcd7Smrg	# Here we normalize CPU types with a missing or matching vendor
102379d5fcd7Smrg	armh-unknown | armh-alt)
102479d5fcd7Smrg		cpu=armv7l
102579d5fcd7Smrg		vendor=alt
102679d5fcd7Smrg		basic_os=${basic_os:-linux-gnueabihf}
102704007ebaSmrg		;;
102879d5fcd7Smrg	dpx20-unknown | dpx20-bull)
102979d5fcd7Smrg		cpu=rs6000
103079d5fcd7Smrg		vendor=bull
103179d5fcd7Smrg		basic_os=${basic_os:-bosx}
103204007ebaSmrg		;;
103379d5fcd7Smrg
103479d5fcd7Smrg	# Here we normalize CPU types irrespective of the vendor
103579d5fcd7Smrg	amd64-*)
103679d5fcd7Smrg		cpu=x86_64
103704007ebaSmrg		;;
103879d5fcd7Smrg	blackfin-*)
103979d5fcd7Smrg		cpu=bfin
104079d5fcd7Smrg		basic_os=linux
104104007ebaSmrg		;;
104279d5fcd7Smrg	c54x-*)
104379d5fcd7Smrg		cpu=tic54x
104404007ebaSmrg		;;
104579d5fcd7Smrg	c55x-*)
104679d5fcd7Smrg		cpu=tic55x
104704007ebaSmrg		;;
104879d5fcd7Smrg	c6x-*)
104979d5fcd7Smrg		cpu=tic6x
105004007ebaSmrg		;;
105179d5fcd7Smrg	e500v[12]-*)
105279d5fcd7Smrg		cpu=powerpc
105379d5fcd7Smrg		basic_os=${basic_os}"spe"
105404007ebaSmrg		;;
105579d5fcd7Smrg	mips3*-*)
105679d5fcd7Smrg		cpu=mips64
105704007ebaSmrg		;;
105879d5fcd7Smrg	ms1-*)
105979d5fcd7Smrg		cpu=mt
106004007ebaSmrg		;;
106179d5fcd7Smrg	m68knommu-*)
106279d5fcd7Smrg		cpu=m68k
106379d5fcd7Smrg		basic_os=linux
106404007ebaSmrg		;;
106579d5fcd7Smrg	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
106679d5fcd7Smrg		cpu=s12z
106704007ebaSmrg		;;
106879d5fcd7Smrg	openrisc-*)
106979d5fcd7Smrg		cpu=or32
107004007ebaSmrg		;;
107179d5fcd7Smrg	parisc-*)
107279d5fcd7Smrg		cpu=hppa
107379d5fcd7Smrg		basic_os=linux
107404007ebaSmrg		;;
107579d5fcd7Smrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
107679d5fcd7Smrg		cpu=i586
107704007ebaSmrg		;;
107879d5fcd7Smrg	pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
107979d5fcd7Smrg		cpu=i686
108004007ebaSmrg		;;
108179d5fcd7Smrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
108279d5fcd7Smrg		cpu=i686
108304007ebaSmrg		;;
108479d5fcd7Smrg	pentium4-*)
108579d5fcd7Smrg		cpu=i786
108604007ebaSmrg		;;
108779d5fcd7Smrg	pc98-*)
108879d5fcd7Smrg		cpu=i386
108904007ebaSmrg		;;
109079d5fcd7Smrg	ppc-* | ppcbe-*)
109179d5fcd7Smrg		cpu=powerpc
109204007ebaSmrg		;;
109379d5fcd7Smrg	ppcle-* | powerpclittle-*)
109479d5fcd7Smrg		cpu=powerpcle
109504007ebaSmrg		;;
109679d5fcd7Smrg	ppc64-*)
109779d5fcd7Smrg		cpu=powerpc64
109804007ebaSmrg		;;
109979d5fcd7Smrg	ppc64le-* | powerpc64little-*)
110079d5fcd7Smrg		cpu=powerpc64le
110104007ebaSmrg		;;
110279d5fcd7Smrg	sb1-*)
110379d5fcd7Smrg		cpu=mipsisa64sb1
110404007ebaSmrg		;;
110579d5fcd7Smrg	sb1el-*)
110679d5fcd7Smrg		cpu=mipsisa64sb1el
110704007ebaSmrg		;;
110879d5fcd7Smrg	sh5e[lb]-*)
110979d5fcd7Smrg		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
111004007ebaSmrg		;;
111179d5fcd7Smrg	spur-*)
111279d5fcd7Smrg		cpu=spur
111304007ebaSmrg		;;
111479d5fcd7Smrg	strongarm-* | thumb-*)
111579d5fcd7Smrg		cpu=arm
111604007ebaSmrg		;;
111779d5fcd7Smrg	tx39-*)
111879d5fcd7Smrg		cpu=mipstx39
111905cf1079Smrg		;;
112079d5fcd7Smrg	tx39el-*)
112179d5fcd7Smrg		cpu=mipstx39el
112204007ebaSmrg		;;
112379d5fcd7Smrg	x64-*)
112479d5fcd7Smrg		cpu=x86_64
112504007ebaSmrg		;;
112604007ebaSmrg	xscale-* | xscalee[bl]-*)
112779d5fcd7Smrg		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
112804007ebaSmrg		;;
112979d5fcd7Smrg	arm64-* | aarch64le-*)
113079d5fcd7Smrg		cpu=aarch64
113104007ebaSmrg		;;
113204007ebaSmrg
113379d5fcd7Smrg	# Recognize the canonical CPU Types that limit and/or modify the
113479d5fcd7Smrg	# company names they are paired with.
113579d5fcd7Smrg	cr16-*)
113679d5fcd7Smrg		basic_os=${basic_os:-elf}
113704007ebaSmrg		;;
113879d5fcd7Smrg	crisv32-* | etraxfs*-*)
113979d5fcd7Smrg		cpu=crisv32
114079d5fcd7Smrg		vendor=axis
114104007ebaSmrg		;;
114279d5fcd7Smrg	cris-* | etrax*-*)
114379d5fcd7Smrg		cpu=cris
114479d5fcd7Smrg		vendor=axis
114504007ebaSmrg		;;
114679d5fcd7Smrg	crx-*)
114779d5fcd7Smrg		basic_os=${basic_os:-elf}
114804007ebaSmrg		;;
114979d5fcd7Smrg	neo-tandem)
115079d5fcd7Smrg		cpu=neo
115179d5fcd7Smrg		vendor=tandem
115204007ebaSmrg		;;
115379d5fcd7Smrg	nse-tandem)
115479d5fcd7Smrg		cpu=nse
115579d5fcd7Smrg		vendor=tandem
115604007ebaSmrg		;;
115779d5fcd7Smrg	nsr-tandem)
115879d5fcd7Smrg		cpu=nsr
115979d5fcd7Smrg		vendor=tandem
116004007ebaSmrg		;;
116179d5fcd7Smrg	nsv-tandem)
116279d5fcd7Smrg		cpu=nsv
116379d5fcd7Smrg		vendor=tandem
116404007ebaSmrg		;;
116579d5fcd7Smrg	nsx-tandem)
116679d5fcd7Smrg		cpu=nsx
116779d5fcd7Smrg		vendor=tandem
116804007ebaSmrg		;;
116979d5fcd7Smrg	mipsallegrexel-sony)
117079d5fcd7Smrg		cpu=mipsallegrexel
117179d5fcd7Smrg		vendor=sony
117204007ebaSmrg		;;
117379d5fcd7Smrg	tile*-*)
117479d5fcd7Smrg		basic_os=${basic_os:-linux-gnu}
117504007ebaSmrg		;;
117679d5fcd7Smrg
117704007ebaSmrg	*)
117879d5fcd7Smrg		# Recognize the canonical CPU types that are allowed with any
117979d5fcd7Smrg		# company name.
118079d5fcd7Smrg		case $cpu in
118179d5fcd7Smrg			1750a | 580 \
118279d5fcd7Smrg			| a29k \
118379d5fcd7Smrg			| aarch64 | aarch64_be \
118479d5fcd7Smrg			| abacus \
118579d5fcd7Smrg			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
118679d5fcd7Smrg			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
118779d5fcd7Smrg			| alphapca5[67] | alpha64pca5[67] \
118879d5fcd7Smrg			| am33_2.0 \
118979d5fcd7Smrg			| amdgcn \
119079d5fcd7Smrg			| arc | arceb | arc32 | arc64 \
119179d5fcd7Smrg			| arm | arm[lb]e | arme[lb] | armv* \
119279d5fcd7Smrg			| avr | avr32 \
119379d5fcd7Smrg			| asmjs \
119479d5fcd7Smrg			| ba \
119579d5fcd7Smrg			| be32 | be64 \
119679d5fcd7Smrg			| bfin | bpf | bs2000 \
119779d5fcd7Smrg			| c[123]* | c30 | [cjt]90 | c4x \
119879d5fcd7Smrg			| c8051 | clipper | craynv | csky | cydra \
119979d5fcd7Smrg			| d10v | d30v | dlx | dsp16xx \
120079d5fcd7Smrg			| e2k | elxsi | epiphany \
120179d5fcd7Smrg			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
120279d5fcd7Smrg			| h8300 | h8500 \
120379d5fcd7Smrg			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
120479d5fcd7Smrg			| hexagon \
120579d5fcd7Smrg			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
120679d5fcd7Smrg			| ip2k | iq2000 \
120779d5fcd7Smrg			| k1om \
120879d5fcd7Smrg			| le32 | le64 \
120979d5fcd7Smrg			| lm32 \
121079d5fcd7Smrg			| loongarch32 | loongarch64 \
121179d5fcd7Smrg			| m32c | m32r | m32rle \
121279d5fcd7Smrg			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
121379d5fcd7Smrg			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
121479d5fcd7Smrg			| m88110 | m88k | maxq | mb | mcore | mep | metag \
121579d5fcd7Smrg			| microblaze | microblazeel \
121679d5fcd7Smrg			| mips | mipsbe | mipseb | mipsel | mipsle \
121779d5fcd7Smrg			| mips16 \
121879d5fcd7Smrg			| mips64 | mips64eb | mips64el \
121979d5fcd7Smrg			| mips64octeon | mips64octeonel \
122079d5fcd7Smrg			| mips64orion | mips64orionel \
122179d5fcd7Smrg			| mips64r5900 | mips64r5900el \
122279d5fcd7Smrg			| mips64vr | mips64vrel \
122379d5fcd7Smrg			| mips64vr4100 | mips64vr4100el \
122479d5fcd7Smrg			| mips64vr4300 | mips64vr4300el \
122579d5fcd7Smrg			| mips64vr5000 | mips64vr5000el \
122679d5fcd7Smrg			| mips64vr5900 | mips64vr5900el \
122779d5fcd7Smrg			| mipsisa32 | mipsisa32el \
122879d5fcd7Smrg			| mipsisa32r2 | mipsisa32r2el \
122979d5fcd7Smrg			| mipsisa32r3 | mipsisa32r3el \
123079d5fcd7Smrg			| mipsisa32r5 | mipsisa32r5el \
123179d5fcd7Smrg			| mipsisa32r6 | mipsisa32r6el \
123279d5fcd7Smrg			| mipsisa64 | mipsisa64el \
123379d5fcd7Smrg			| mipsisa64r2 | mipsisa64r2el \
123479d5fcd7Smrg			| mipsisa64r3 | mipsisa64r3el \
123579d5fcd7Smrg			| mipsisa64r5 | mipsisa64r5el \
123679d5fcd7Smrg			| mipsisa64r6 | mipsisa64r6el \
123779d5fcd7Smrg			| mipsisa64sb1 | mipsisa64sb1el \
123879d5fcd7Smrg			| mipsisa64sr71k | mipsisa64sr71kel \
123979d5fcd7Smrg			| mipsr5900 | mipsr5900el \
124079d5fcd7Smrg			| mipstx39 | mipstx39el \
124179d5fcd7Smrg			| mmix \
124279d5fcd7Smrg			| mn10200 | mn10300 \
124379d5fcd7Smrg			| moxie \
124479d5fcd7Smrg			| mt \
124579d5fcd7Smrg			| msp430 \
124679d5fcd7Smrg			| nds32 | nds32le | nds32be \
124779d5fcd7Smrg			| nfp \
124879d5fcd7Smrg			| nios | nios2 | nios2eb | nios2el \
124979d5fcd7Smrg			| none | np1 | ns16k | ns32k | nvptx \
125079d5fcd7Smrg			| open8 \
125179d5fcd7Smrg			| or1k* \
125279d5fcd7Smrg			| or32 \
125379d5fcd7Smrg			| orion \
125479d5fcd7Smrg			| picochip \
125579d5fcd7Smrg			| pdp10 | pdp11 | pj | pjl | pn | power \
125679d5fcd7Smrg			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
125779d5fcd7Smrg			| pru \
125879d5fcd7Smrg			| pyramid \
125979d5fcd7Smrg			| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
126079d5fcd7Smrg			| rl78 | romp | rs6000 | rx \
126179d5fcd7Smrg			| s390 | s390x \
126279d5fcd7Smrg			| score \
126379d5fcd7Smrg			| sh | shl \
126479d5fcd7Smrg			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
126579d5fcd7Smrg			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
126679d5fcd7Smrg			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
126779d5fcd7Smrg			| sparclite \
126879d5fcd7Smrg			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
126979d5fcd7Smrg			| spu \
127079d5fcd7Smrg			| tahoe \
127179d5fcd7Smrg			| thumbv7* \
127279d5fcd7Smrg			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
127379d5fcd7Smrg			| tron \
127479d5fcd7Smrg			| ubicom32 \
127579d5fcd7Smrg			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
127679d5fcd7Smrg			| vax \
127779d5fcd7Smrg			| visium \
127879d5fcd7Smrg			| w65 \
127979d5fcd7Smrg			| wasm32 | wasm64 \
128079d5fcd7Smrg			| we32k \
128179d5fcd7Smrg			| x86 | x86_64 | xc16x | xgate | xps100 \
128279d5fcd7Smrg			| xstormy16 | xtensa* \
128379d5fcd7Smrg			| ymp \
128479d5fcd7Smrg			| z8k | z80)
128579d5fcd7Smrg				;;
128679d5fcd7Smrg
128779d5fcd7Smrg			*)
128879d5fcd7Smrg				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
128979d5fcd7Smrg				exit 1
129079d5fcd7Smrg				;;
129179d5fcd7Smrg		esac
129204007ebaSmrg		;;
129304007ebaSmrgesac
129404007ebaSmrg
129504007ebaSmrg# Here we canonicalize certain aliases for manufacturers.
129679d5fcd7Smrgcase $vendor in
129779d5fcd7Smrg	digital*)
129879d5fcd7Smrg		vendor=dec
129904007ebaSmrg		;;
130079d5fcd7Smrg	commodore*)
130179d5fcd7Smrg		vendor=cbm
130204007ebaSmrg		;;
130304007ebaSmrg	*)
130404007ebaSmrg		;;
130504007ebaSmrgesac
130604007ebaSmrg
130704007ebaSmrg# Decode manufacturer-specific aliases for certain operating systems.
130804007ebaSmrg
130979d5fcd7Smrgif test x$basic_os != x
131004007ebaSmrgthen
131179d5fcd7Smrg
131279d5fcd7Smrg# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
131379d5fcd7Smrg# set os.
131479d5fcd7Smrgcase $basic_os in
131579d5fcd7Smrg	gnu/linux*)
131679d5fcd7Smrg		kernel=linux
131779d5fcd7Smrg		os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
131879d5fcd7Smrg		;;
131979d5fcd7Smrg	os2-emx)
132079d5fcd7Smrg		kernel=os2
132179d5fcd7Smrg		os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
132279d5fcd7Smrg		;;
132379d5fcd7Smrg	nto-qnx*)
132479d5fcd7Smrg		kernel=nto
132579d5fcd7Smrg		os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
132679d5fcd7Smrg		;;
132779d5fcd7Smrg	*-*)
132879d5fcd7Smrg		# shellcheck disable=SC2162
132979d5fcd7Smrg		saved_IFS=$IFS
133079d5fcd7Smrg		IFS="-" read kernel os <<EOF
133179d5fcd7Smrg$basic_os
133279d5fcd7SmrgEOF
133379d5fcd7Smrg		IFS=$saved_IFS
133479d5fcd7Smrg		;;
133579d5fcd7Smrg	# Default OS when just kernel was specified
133679d5fcd7Smrg	nto*)
133779d5fcd7Smrg		kernel=nto
133879d5fcd7Smrg		os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
133979d5fcd7Smrg		;;
134079d5fcd7Smrg	linux*)
134179d5fcd7Smrg		kernel=linux
134279d5fcd7Smrg		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
134379d5fcd7Smrg		;;
134479d5fcd7Smrg	managarm*)
134579d5fcd7Smrg		kernel=managarm
134679d5fcd7Smrg		os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
134779d5fcd7Smrg		;;
134879d5fcd7Smrg	*)
134979d5fcd7Smrg		kernel=
135079d5fcd7Smrg		os=$basic_os
135179d5fcd7Smrg		;;
135279d5fcd7Smrgesac
135379d5fcd7Smrg
135479d5fcd7Smrg# Now, normalize the OS (knowing we just have one component, it's not a kernel,
135579d5fcd7Smrg# etc.)
135604007ebaSmrgcase $os in
135705cf1079Smrg	# First match some system type aliases that might get confused
135805cf1079Smrg	# with valid system types.
135979d5fcd7Smrg	# solaris* is a basic system type, with this one exception.
136079d5fcd7Smrg	auroraux)
136179d5fcd7Smrg		os=auroraux
136204007ebaSmrg		;;
136379d5fcd7Smrg	bluegene*)
136479d5fcd7Smrg		os=cnk
136504007ebaSmrg		;;
136679d5fcd7Smrg	solaris1 | solaris1.*)
136779d5fcd7Smrg		os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
136804007ebaSmrg		;;
136979d5fcd7Smrg	solaris)
137079d5fcd7Smrg		os=solaris2
137104007ebaSmrg		;;
137279d5fcd7Smrg	unixware*)
137379d5fcd7Smrg		os=sysv4.2uw
137404007ebaSmrg		;;
137505cf1079Smrg	# es1800 is here to avoid being matched by es* (a different OS)
137679d5fcd7Smrg	es1800*)
137779d5fcd7Smrg		os=ose
137805cf1079Smrg		;;
137979d5fcd7Smrg	# Some version numbers need modification
138079d5fcd7Smrg	chorusos*)
138179d5fcd7Smrg		os=chorusos
138204007ebaSmrg		;;
138379d5fcd7Smrg	isc)
138479d5fcd7Smrg		os=isc2.2
138504007ebaSmrg		;;
138679d5fcd7Smrg	sco6)
138779d5fcd7Smrg		os=sco5v6
138804007ebaSmrg		;;
138979d5fcd7Smrg	sco5)
139079d5fcd7Smrg		os=sco3.2v5
139104007ebaSmrg		;;
139279d5fcd7Smrg	sco4)
139379d5fcd7Smrg		os=sco3.2v4
139404007ebaSmrg		;;
139579d5fcd7Smrg	sco3.2.[4-9]*)
139679d5fcd7Smrg		os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
139704007ebaSmrg		;;
139879d5fcd7Smrg	sco*v* | scout)
139979d5fcd7Smrg		# Don't match below
140004007ebaSmrg		;;
140179d5fcd7Smrg	sco*)
140279d5fcd7Smrg		os=sco3.2v2
140304007ebaSmrg		;;
140479d5fcd7Smrg	psos*)
140579d5fcd7Smrg		os=psos
140604007ebaSmrg		;;
140779d5fcd7Smrg	qnx*)
140879d5fcd7Smrg		os=qnx
140904007ebaSmrg		;;
141079d5fcd7Smrg	hiux*)
141179d5fcd7Smrg		os=hiuxwe2
141204007ebaSmrg		;;
141379d5fcd7Smrg	lynx*178)
141479d5fcd7Smrg		os=lynxos178
141504007ebaSmrg		;;
141679d5fcd7Smrg	lynx*5)
141779d5fcd7Smrg		os=lynxos5
141804007ebaSmrg		;;
141979d5fcd7Smrg	lynxos*)
142079d5fcd7Smrg		# don't get caught up in next wildcard
142104007ebaSmrg		;;
142279d5fcd7Smrg	lynx*)
142379d5fcd7Smrg		os=lynxos
142404007ebaSmrg		;;
142579d5fcd7Smrg	mac[0-9]*)
142679d5fcd7Smrg		os=`echo "$os" | sed -e 's|mac|macos|'`
142704007ebaSmrg		;;
142879d5fcd7Smrg	opened*)
142979d5fcd7Smrg		os=openedition
143004007ebaSmrg		;;
143179d5fcd7Smrg	os400*)
143279d5fcd7Smrg		os=os400
143304007ebaSmrg		;;
143479d5fcd7Smrg	sunos5*)
143579d5fcd7Smrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
143604007ebaSmrg		;;
143779d5fcd7Smrg	sunos6*)
143879d5fcd7Smrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
143904007ebaSmrg		;;
144079d5fcd7Smrg	wince*)
144179d5fcd7Smrg		os=wince
144204007ebaSmrg		;;
144379d5fcd7Smrg	utek*)
144479d5fcd7Smrg		os=bsd
144504007ebaSmrg		;;
144679d5fcd7Smrg	dynix*)
144779d5fcd7Smrg		os=bsd
144879d5fcd7Smrg		;;
144979d5fcd7Smrg	acis*)
145079d5fcd7Smrg		os=aos
145179d5fcd7Smrg		;;
145279d5fcd7Smrg	atheos*)
145379d5fcd7Smrg		os=atheos
145479d5fcd7Smrg		;;
145579d5fcd7Smrg	syllable*)
145679d5fcd7Smrg		os=syllable
145704007ebaSmrg		;;
145879d5fcd7Smrg	386bsd)
145979d5fcd7Smrg		os=bsd
146079d5fcd7Smrg		;;
146179d5fcd7Smrg	ctix* | uts*)
146279d5fcd7Smrg		os=sysv
146304007ebaSmrg		;;
146479d5fcd7Smrg	nova*)
146579d5fcd7Smrg		os=rtmk-nova
146604007ebaSmrg		;;
146779d5fcd7Smrg	ns2)
146879d5fcd7Smrg		os=nextstep2
146979d5fcd7Smrg		;;
147079d5fcd7Smrg	# Preserve the version number of sinix5.
147179d5fcd7Smrg	sinix5.*)
147279d5fcd7Smrg		os=`echo "$os" | sed -e 's|sinix|sysv|'`
147304007ebaSmrg		;;
147479d5fcd7Smrg	sinix*)
147579d5fcd7Smrg		os=sysv4
147604007ebaSmrg		;;
147779d5fcd7Smrg	tpf*)
147879d5fcd7Smrg		os=tpf
147904007ebaSmrg		;;
148079d5fcd7Smrg	triton*)
148179d5fcd7Smrg		os=sysv3
148204007ebaSmrg		;;
148379d5fcd7Smrg	oss*)
148479d5fcd7Smrg		os=sysv3
148504007ebaSmrg		;;
148679d5fcd7Smrg	svr4*)
148779d5fcd7Smrg		os=sysv4
148804007ebaSmrg		;;
148979d5fcd7Smrg	svr3)
149079d5fcd7Smrg		os=sysv3
149104007ebaSmrg		;;
149279d5fcd7Smrg	sysvr4)
149379d5fcd7Smrg		os=sysv4
149404007ebaSmrg		;;
149579d5fcd7Smrg	ose*)
149679d5fcd7Smrg		os=ose
149704007ebaSmrg		;;
149879d5fcd7Smrg	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
149979d5fcd7Smrg		os=mint
150004007ebaSmrg		;;
150179d5fcd7Smrg	dicos*)
150279d5fcd7Smrg		os=dicos
150379d5fcd7Smrg		;;
150479d5fcd7Smrg	pikeos*)
150505cf1079Smrg		# Until real need of OS specific support for
150605cf1079Smrg		# particular features comes up, bare metal
150705cf1079Smrg		# configurations are quite functional.
150879d5fcd7Smrg		case $cpu in
150905cf1079Smrg		    arm*)
151079d5fcd7Smrg			os=eabi
151105cf1079Smrg			;;
151205cf1079Smrg		    *)
151379d5fcd7Smrg			os=elf
151405cf1079Smrg			;;
151505cf1079Smrg		esac
151605cf1079Smrg		;;
151704007ebaSmrg	*)
151879d5fcd7Smrg		# No normalization, but not necessarily accepted, that comes below.
151904007ebaSmrg		;;
152004007ebaSmrgesac
152179d5fcd7Smrg
152204007ebaSmrgelse
152304007ebaSmrg
152404007ebaSmrg# Here we handle the default operating systems that come with various machines.
152504007ebaSmrg# The value should be what the vendor currently ships out the door with their
152604007ebaSmrg# machine or put another way, the most popular os provided with the machine.
152704007ebaSmrg
152804007ebaSmrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
152904007ebaSmrg# "-sun"), then you have to tell the case statement up towards the top
153004007ebaSmrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
153104007ebaSmrg# will signal an error saying that MANUFACTURER isn't an operating
153204007ebaSmrg# system, and we'll never get to this point.
153304007ebaSmrg
153479d5fcd7Smrgkernel=
153579d5fcd7Smrgcase $cpu-$vendor in
153604007ebaSmrg	score-*)
153779d5fcd7Smrg		os=elf
153804007ebaSmrg		;;
153904007ebaSmrg	spu-*)
154079d5fcd7Smrg		os=elf
154104007ebaSmrg		;;
154204007ebaSmrg	*-acorn)
154379d5fcd7Smrg		os=riscix1.2
154404007ebaSmrg		;;
154504007ebaSmrg	arm*-rebel)
154679d5fcd7Smrg		kernel=linux
154779d5fcd7Smrg		os=gnu
154804007ebaSmrg		;;
154904007ebaSmrg	arm*-semi)
155079d5fcd7Smrg		os=aout
155104007ebaSmrg		;;
155204007ebaSmrg	c4x-* | tic4x-*)
155379d5fcd7Smrg		os=coff
155404007ebaSmrg		;;
155504007ebaSmrg	c8051-*)
155679d5fcd7Smrg		os=elf
155779d5fcd7Smrg		;;
155879d5fcd7Smrg	clipper-intergraph)
155979d5fcd7Smrg		os=clix
156004007ebaSmrg		;;
156104007ebaSmrg	hexagon-*)
156279d5fcd7Smrg		os=elf
156304007ebaSmrg		;;
156404007ebaSmrg	tic54x-*)
156579d5fcd7Smrg		os=coff
156604007ebaSmrg		;;
156704007ebaSmrg	tic55x-*)
156879d5fcd7Smrg		os=coff
156904007ebaSmrg		;;
157004007ebaSmrg	tic6x-*)
157179d5fcd7Smrg		os=coff
157204007ebaSmrg		;;
157304007ebaSmrg	# This must come before the *-dec entry.
157404007ebaSmrg	pdp10-*)
157579d5fcd7Smrg		os=tops20
157604007ebaSmrg		;;
157704007ebaSmrg	pdp11-*)
157879d5fcd7Smrg		os=none
157904007ebaSmrg		;;
158004007ebaSmrg	*-dec | vax-*)
158179d5fcd7Smrg		os=ultrix4.2
158204007ebaSmrg		;;
158304007ebaSmrg	m68*-apollo)
158479d5fcd7Smrg		os=domain
158504007ebaSmrg		;;
158604007ebaSmrg	i386-sun)
158779d5fcd7Smrg		os=sunos4.0.2
158804007ebaSmrg		;;
158904007ebaSmrg	m68000-sun)
159079d5fcd7Smrg		os=sunos3
159104007ebaSmrg		;;
159204007ebaSmrg	m68*-cisco)
159379d5fcd7Smrg		os=aout
159404007ebaSmrg		;;
159504007ebaSmrg	mep-*)
159679d5fcd7Smrg		os=elf
159704007ebaSmrg		;;
159804007ebaSmrg	mips*-cisco)
159979d5fcd7Smrg		os=elf
160004007ebaSmrg		;;
160104007ebaSmrg	mips*-*)
160279d5fcd7Smrg		os=elf
160304007ebaSmrg		;;
160404007ebaSmrg	or32-*)
160579d5fcd7Smrg		os=coff
160604007ebaSmrg		;;
160704007ebaSmrg	*-tti)	# must be before sparc entry or we get the wrong os.
160879d5fcd7Smrg		os=sysv3
160904007ebaSmrg		;;
161004007ebaSmrg	sparc-* | *-sun)
161179d5fcd7Smrg		os=sunos4.1.1
161204007ebaSmrg		;;
161305cf1079Smrg	pru-*)
161479d5fcd7Smrg		os=elf
161505cf1079Smrg		;;
161604007ebaSmrg	*-be)
161779d5fcd7Smrg		os=beos
161804007ebaSmrg		;;
161904007ebaSmrg	*-ibm)
162079d5fcd7Smrg		os=aix
162104007ebaSmrg		;;
162204007ebaSmrg	*-knuth)
162379d5fcd7Smrg		os=mmixware
162404007ebaSmrg		;;
162504007ebaSmrg	*-wec)
162679d5fcd7Smrg		os=proelf
162704007ebaSmrg		;;
162804007ebaSmrg	*-winbond)
162979d5fcd7Smrg		os=proelf
163004007ebaSmrg		;;
163104007ebaSmrg	*-oki)
163279d5fcd7Smrg		os=proelf
163304007ebaSmrg		;;
163404007ebaSmrg	*-hp)
163579d5fcd7Smrg		os=hpux
163604007ebaSmrg		;;
163704007ebaSmrg	*-hitachi)
163879d5fcd7Smrg		os=hiux
163904007ebaSmrg		;;
164004007ebaSmrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
164179d5fcd7Smrg		os=sysv
164204007ebaSmrg		;;
164304007ebaSmrg	*-cbm)
164479d5fcd7Smrg		os=amigaos
164504007ebaSmrg		;;
164604007ebaSmrg	*-dg)
164779d5fcd7Smrg		os=dgux
164804007ebaSmrg		;;
164904007ebaSmrg	*-dolphin)
165079d5fcd7Smrg		os=sysv3
165104007ebaSmrg		;;
165204007ebaSmrg	m68k-ccur)
165379d5fcd7Smrg		os=rtu
165404007ebaSmrg		;;
165504007ebaSmrg	m88k-omron*)
165679d5fcd7Smrg		os=luna
165704007ebaSmrg		;;
165805cf1079Smrg	*-next)
165979d5fcd7Smrg		os=nextstep
166004007ebaSmrg		;;
166104007ebaSmrg	*-sequent)
166279d5fcd7Smrg		os=ptx
166304007ebaSmrg		;;
166404007ebaSmrg	*-crds)
166579d5fcd7Smrg		os=unos
166604007ebaSmrg		;;
166704007ebaSmrg	*-ns)
166879d5fcd7Smrg		os=genix
166904007ebaSmrg		;;
167004007ebaSmrg	i370-*)
167179d5fcd7Smrg		os=mvs
167204007ebaSmrg		;;
167304007ebaSmrg	*-gould)
167479d5fcd7Smrg		os=sysv
167504007ebaSmrg		;;
167604007ebaSmrg	*-highlevel)
167779d5fcd7Smrg		os=bsd
167804007ebaSmrg		;;
167904007ebaSmrg	*-encore)
168079d5fcd7Smrg		os=bsd
168104007ebaSmrg		;;
168204007ebaSmrg	*-sgi)
168379d5fcd7Smrg		os=irix
168404007ebaSmrg		;;
168504007ebaSmrg	*-siemens)
168679d5fcd7Smrg		os=sysv4
168704007ebaSmrg		;;
168804007ebaSmrg	*-masscomp)
168979d5fcd7Smrg		os=rtu
169004007ebaSmrg		;;
169104007ebaSmrg	f30[01]-fujitsu | f700-fujitsu)
169279d5fcd7Smrg		os=uxpv
169304007ebaSmrg		;;
169404007ebaSmrg	*-rom68k)
169579d5fcd7Smrg		os=coff
169604007ebaSmrg		;;
169704007ebaSmrg	*-*bug)
169879d5fcd7Smrg		os=coff
169904007ebaSmrg		;;
170004007ebaSmrg	*-apple)
170179d5fcd7Smrg		os=macos
170204007ebaSmrg		;;
170304007ebaSmrg	*-atari*)
170479d5fcd7Smrg		os=mint
170579d5fcd7Smrg		;;
170679d5fcd7Smrg	*-wrs)
170779d5fcd7Smrg		os=vxworks
170804007ebaSmrg		;;
170904007ebaSmrg	*)
171079d5fcd7Smrg		os=none
171104007ebaSmrg		;;
171204007ebaSmrgesac
171379d5fcd7Smrg
171404007ebaSmrgfi
171504007ebaSmrg
171679d5fcd7Smrg# Now, validate our (potentially fixed-up) OS.
171779d5fcd7Smrgcase $os in
171879d5fcd7Smrg	# Sometimes we do "kernel-libc", so those need to count as OSes.
171979d5fcd7Smrg	musl* | newlib* | relibc* | uclibc*)
172079d5fcd7Smrg		;;
172179d5fcd7Smrg	# Likewise for "kernel-abi"
172279d5fcd7Smrg	eabi* | gnueabi*)
172379d5fcd7Smrg		;;
172479d5fcd7Smrg	# VxWorks passes extra cpu info in the 4th filed.
172579d5fcd7Smrg	simlinux | simwindows | spe)
172679d5fcd7Smrg		;;
172779d5fcd7Smrg	# Now accept the basic system types.
172879d5fcd7Smrg	# The portable systems comes first.
172979d5fcd7Smrg	# Each alternative MUST end in a * to match a version number.
173079d5fcd7Smrg	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
173179d5fcd7Smrg	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
173279d5fcd7Smrg	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
173379d5fcd7Smrg	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
173479d5fcd7Smrg	     | hiux* | abug | nacl* | netware* | windows* \
173579d5fcd7Smrg	     | os9* | macos* | osx* | ios* \
173679d5fcd7Smrg	     | mpw* | magic* | mmixware* | mon960* | lnews* \
173779d5fcd7Smrg	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
173879d5fcd7Smrg	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
173979d5fcd7Smrg	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
174079d5fcd7Smrg	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
174179d5fcd7Smrg	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
174279d5fcd7Smrg	     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
174379d5fcd7Smrg	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
174479d5fcd7Smrg	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
174579d5fcd7Smrg	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
174679d5fcd7Smrg	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
174779d5fcd7Smrg	     | chorusrdb* | cegcc* | glidix* | serenity* \
174879d5fcd7Smrg	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
174979d5fcd7Smrg	     | midipix* | mingw32* | mingw64* | mint* \
175079d5fcd7Smrg	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
175179d5fcd7Smrg	     | interix* | uwin* | mks* | rhapsody* | darwin* \
175279d5fcd7Smrg	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
175379d5fcd7Smrg	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
175479d5fcd7Smrg	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
175579d5fcd7Smrg	     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
175679d5fcd7Smrg	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
175779d5fcd7Smrg	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
175879d5fcd7Smrg	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
175979d5fcd7Smrg	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
176079d5fcd7Smrg	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
176179d5fcd7Smrg	     | fiwix* | mlibc* )
176279d5fcd7Smrg		;;
176379d5fcd7Smrg	# This one is extra strict with allowed versions
176479d5fcd7Smrg	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
176579d5fcd7Smrg		# Don't forget version if it is 3.2v4 or newer.
176679d5fcd7Smrg		;;
176779d5fcd7Smrg	none)
176879d5fcd7Smrg		;;
176979d5fcd7Smrg	kernel* )
177079d5fcd7Smrg		# Restricted further below
177179d5fcd7Smrg		;;
177279d5fcd7Smrg	*)
177379d5fcd7Smrg		echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
177479d5fcd7Smrg		exit 1
177579d5fcd7Smrg		;;
177679d5fcd7Smrgesac
177779d5fcd7Smrg
177879d5fcd7Smrg# As a final step for OS-related things, validate the OS-kernel combination
177979d5fcd7Smrg# (given a valid OS), if there is a kernel.
178079d5fcd7Smrgcase $kernel-$os in
178179d5fcd7Smrg	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
178279d5fcd7Smrg		   | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
178379d5fcd7Smrg		;;
178479d5fcd7Smrg	uclinux-uclibc* )
178579d5fcd7Smrg		;;
178679d5fcd7Smrg	managarm-mlibc* | managarm-kernel* )
178779d5fcd7Smrg		;;
178879d5fcd7Smrg	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
178979d5fcd7Smrg		# These are just libc implementations, not actual OSes, and thus
179079d5fcd7Smrg		# require a kernel.
179179d5fcd7Smrg		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
179279d5fcd7Smrg		exit 1
179379d5fcd7Smrg		;;
179479d5fcd7Smrg	-kernel* )
179579d5fcd7Smrg		echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
179679d5fcd7Smrg		exit 1
179779d5fcd7Smrg		;;
179879d5fcd7Smrg	*-kernel* )
179979d5fcd7Smrg		echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
180079d5fcd7Smrg		exit 1
180179d5fcd7Smrg		;;
180279d5fcd7Smrg	kfreebsd*-gnu* | kopensolaris*-gnu*)
180379d5fcd7Smrg		;;
180479d5fcd7Smrg	vxworks-simlinux | vxworks-simwindows | vxworks-spe)
180579d5fcd7Smrg		;;
180679d5fcd7Smrg	nto-qnx*)
180779d5fcd7Smrg		;;
180879d5fcd7Smrg	os2-emx)
180979d5fcd7Smrg		;;
181079d5fcd7Smrg	*-eabi* | *-gnueabi*)
181179d5fcd7Smrg		;;
181279d5fcd7Smrg	-*)
181379d5fcd7Smrg		# Blank kernel with real OS is always fine.
181479d5fcd7Smrg		;;
181579d5fcd7Smrg	*-*)
181679d5fcd7Smrg		echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
181779d5fcd7Smrg		exit 1
181879d5fcd7Smrg		;;
181979d5fcd7Smrgesac
182079d5fcd7Smrg
182104007ebaSmrg# Here we handle the case where we know the os, and the CPU type, but not the
182204007ebaSmrg# manufacturer.  We pick the logical manufacturer.
182379d5fcd7Smrgcase $vendor in
182479d5fcd7Smrg	unknown)
182579d5fcd7Smrg		case $cpu-$os in
182679d5fcd7Smrg			*-riscix*)
182704007ebaSmrg				vendor=acorn
182804007ebaSmrg				;;
182979d5fcd7Smrg			*-sunos*)
183004007ebaSmrg				vendor=sun
183104007ebaSmrg				;;
183279d5fcd7Smrg			*-cnk* | *-aix*)
183304007ebaSmrg				vendor=ibm
183404007ebaSmrg				;;
183579d5fcd7Smrg			*-beos*)
183604007ebaSmrg				vendor=be
183704007ebaSmrg				;;
183879d5fcd7Smrg			*-hpux*)
183904007ebaSmrg				vendor=hp
184004007ebaSmrg				;;
184179d5fcd7Smrg			*-mpeix*)
184204007ebaSmrg				vendor=hp
184304007ebaSmrg				;;
184479d5fcd7Smrg			*-hiux*)
184504007ebaSmrg				vendor=hitachi
184604007ebaSmrg				;;
184779d5fcd7Smrg			*-unos*)
184804007ebaSmrg				vendor=crds
184904007ebaSmrg				;;
185079d5fcd7Smrg			*-dgux*)
185104007ebaSmrg				vendor=dg
185204007ebaSmrg				;;
185379d5fcd7Smrg			*-luna*)
185404007ebaSmrg				vendor=omron
185504007ebaSmrg				;;
185679d5fcd7Smrg			*-genix*)
185704007ebaSmrg				vendor=ns
185804007ebaSmrg				;;
185979d5fcd7Smrg			*-clix*)
186079d5fcd7Smrg				vendor=intergraph
186179d5fcd7Smrg				;;
186279d5fcd7Smrg			*-mvs* | *-opened*)
186379d5fcd7Smrg				vendor=ibm
186479d5fcd7Smrg				;;
186579d5fcd7Smrg			*-os400*)
186604007ebaSmrg				vendor=ibm
186704007ebaSmrg				;;
186879d5fcd7Smrg			s390-* | s390x-*)
186904007ebaSmrg				vendor=ibm
187004007ebaSmrg				;;
187179d5fcd7Smrg			*-ptx*)
187204007ebaSmrg				vendor=sequent
187304007ebaSmrg				;;
187479d5fcd7Smrg			*-tpf*)
187504007ebaSmrg				vendor=ibm
187604007ebaSmrg				;;
187779d5fcd7Smrg			*-vxsim* | *-vxworks* | *-windiss*)
187804007ebaSmrg				vendor=wrs
187904007ebaSmrg				;;
188079d5fcd7Smrg			*-aux*)
188104007ebaSmrg				vendor=apple
188204007ebaSmrg				;;
188379d5fcd7Smrg			*-hms*)
188404007ebaSmrg				vendor=hitachi
188504007ebaSmrg				;;
188679d5fcd7Smrg			*-mpw* | *-macos*)
188704007ebaSmrg				vendor=apple
188804007ebaSmrg				;;
188979d5fcd7Smrg			*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
189004007ebaSmrg				vendor=atari
189104007ebaSmrg				;;
189279d5fcd7Smrg			*-vos*)
189304007ebaSmrg				vendor=stratus
189404007ebaSmrg				;;
189504007ebaSmrg		esac
189604007ebaSmrg		;;
189704007ebaSmrgesac
189804007ebaSmrg
189979d5fcd7Smrgecho "$cpu-$vendor-${kernel:+$kernel-}$os"
190004007ebaSmrgexit
190104007ebaSmrg
190204007ebaSmrg# Local variables:
190379d5fcd7Smrg# eval: (add-hook 'before-save-hook 'time-stamp)
190404007ebaSmrg# time-stamp-start: "timestamp='"
190504007ebaSmrg# time-stamp-format: "%:y-%02m-%02d"
190604007ebaSmrg# time-stamp-end: "'"
190704007ebaSmrg# End:
1908