config.sub revision 273c00b8
17a0395d0Smrg#! /bin/sh
27a0395d0Smrg# Configuration validation subroutine script.
3273c00b8Smrg#   Copyright 1992-2023 Free Software Foundation, Inc.
47a0395d0Smrg
5273c00b8Smrg# shellcheck disable=SC2006,SC2268 # see below for rationale
6273c00b8Smrg
7273c00b8Smrgtimestamp='2023-01-21'
87a0395d0Smrg
99a011757Smrg# This file is free software; you can redistribute it and/or modify it
109a011757Smrg# under the terms of the GNU General Public License as published by
11273c00b8Smrg# the Free Software Foundation, either version 3 of the License, or
127a0395d0Smrg# (at your option) any later version.
137a0395d0Smrg#
149a011757Smrg# This program is distributed in the hope that it will be useful, but
159a011757Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
169a011757Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
179a011757Smrg# General Public License for more details.
187a0395d0Smrg#
197a0395d0Smrg# You should have received a copy of the GNU General Public License
206c3c2bceSmrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
217a0395d0Smrg#
227a0395d0Smrg# As a special exception to the GNU General Public License, if you
237a0395d0Smrg# distribute this file as part of a program that contains a
247a0395d0Smrg# configuration script generated by Autoconf, you may include it under
259a011757Smrg# the same distribution terms that you use for the rest of that
269a011757Smrg# program.  This Exception is an additional permission under section 7
279a011757Smrg# of the GNU General Public License, version 3 ("GPLv3").
287a0395d0Smrg
297a0395d0Smrg
3040c5344fSmrg# Please send patches to <config-patches@gnu.org>.
317a0395d0Smrg#
327a0395d0Smrg# Configuration subroutine to validate and canonicalize a configuration type.
337a0395d0Smrg# Supply the specified configuration type as an argument.
347a0395d0Smrg# If it is invalid, we print an error message on stderr and exit with code 1.
357a0395d0Smrg# Otherwise, we print the canonical config type on stdout and succeed.
367a0395d0Smrg
372adc0320Smrg# You can get the latest version of this script from:
38765b7306Smrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
392adc0320Smrg
407a0395d0Smrg# This file is supposed to be the same for all GNU packages
417a0395d0Smrg# and recognize all the CPU types, system types and aliases
427a0395d0Smrg# that are meaningful with *any* GNU software.
437a0395d0Smrg# Each package is responsible for reporting which valid configurations
447a0395d0Smrg# it does not support.  The user should be able to distinguish
457a0395d0Smrg# a failure to support a valid configuration from a meaningless
467a0395d0Smrg# configuration.
477a0395d0Smrg
487a0395d0Smrg# The goal of this file is to map all the various variations of a given
497a0395d0Smrg# machine specification into a single specification in the form:
507a0395d0Smrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
517a0395d0Smrg# or in some cases, the newer four-part form:
527a0395d0Smrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
537a0395d0Smrg# It is wrong to echo any other type of specification.
547a0395d0Smrg
55273c00b8Smrg# The "shellcheck disable" line above the timestamp inhibits complaints
56273c00b8Smrg# about features and limitations of the classic Bourne shell that were
57273c00b8Smrg# superseded or lifted in POSIX.  However, this script identifies a wide
58273c00b8Smrg# variety of pre-POSIX systems that do not have POSIX shells at all, and
59273c00b8Smrg# even some reasonably current systems (Solaris 10 as case-in-point) still
60273c00b8Smrg# have a pre-POSIX /bin/sh.
61273c00b8Smrg
62273c00b8Smrgme=`echo "$0" | sed -e 's,.*/,,'`
637a0395d0Smrg
647a0395d0Smrgusage="\
6540c5344fSmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
667a0395d0Smrg
677a0395d0SmrgCanonicalize a configuration name.
687a0395d0Smrg
696c3c2bceSmrgOptions:
707a0395d0Smrg  -h, --help         print this help, then exit
717a0395d0Smrg  -t, --time-stamp   print date of last modification, then exit
727a0395d0Smrg  -v, --version      print version number, then exit
737a0395d0Smrg
747a0395d0SmrgReport bugs and patches to <config-patches@gnu.org>."
757a0395d0Smrg
767a0395d0Smrgversion="\
777a0395d0SmrgGNU config.sub ($timestamp)
787a0395d0Smrg
79273c00b8SmrgCopyright 1992-2023 Free Software Foundation, Inc.
807a0395d0Smrg
817a0395d0SmrgThis is free software; see the source for copying conditions.  There is NO
827a0395d0Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
837a0395d0Smrg
847a0395d0Smrghelp="
857a0395d0SmrgTry \`$me --help' for more information."
867a0395d0Smrg
877a0395d0Smrg# Parse command line
887a0395d0Smrgwhile test $# -gt 0 ; do
897a0395d0Smrg  case $1 in
907a0395d0Smrg    --time-stamp | --time* | -t )
917a0395d0Smrg       echo "$timestamp" ; exit ;;
927a0395d0Smrg    --version | -v )
937a0395d0Smrg       echo "$version" ; exit ;;
947a0395d0Smrg    --help | --h* | -h )
957a0395d0Smrg       echo "$usage"; exit ;;
967a0395d0Smrg    -- )     # Stop option processing
977a0395d0Smrg       shift; break ;;
987a0395d0Smrg    - )	# Use stdin as input.
997a0395d0Smrg       break ;;
1007a0395d0Smrg    -* )
1010d22642bSmrg       echo "$me: invalid option $1$help" >&2
1027a0395d0Smrg       exit 1 ;;
1037a0395d0Smrg
1047a0395d0Smrg    *local*)
1057a0395d0Smrg       # First pass through any local machine types.
1066c3c2bceSmrg       echo "$1"
1077a0395d0Smrg       exit ;;
1087a0395d0Smrg
1097a0395d0Smrg    * )
1107a0395d0Smrg       break ;;
1117a0395d0Smrg  esac
1127a0395d0Smrgdone
1137a0395d0Smrg
1147a0395d0Smrgcase $# in
1157a0395d0Smrg 0) echo "$me: missing argument$help" >&2
1167a0395d0Smrg    exit 1;;
1177a0395d0Smrg 1) ;;
1187a0395d0Smrg *) echo "$me: too many arguments$help" >&2
1197a0395d0Smrg    exit 1;;
1207a0395d0Smrgesac
1217a0395d0Smrg
1226c3c2bceSmrg# Split fields of configuration type
1230d22642bSmrg# shellcheck disable=SC2162
124273c00b8Smrgsaved_IFS=$IFS
1250d22642bSmrgIFS="-" read field1 field2 field3 field4 <<EOF
1266c3c2bceSmrg$1
1276c3c2bceSmrgEOF
128273c00b8SmrgIFS=$saved_IFS
1297a0395d0Smrg
1306c3c2bceSmrg# Separate into logical components for further validation
1316c3c2bceSmrgcase $1 in
1326c3c2bceSmrg	*-*-*-*-*)
1336c3c2bceSmrg		echo Invalid configuration \`"$1"\': more than four components >&2
1346c3c2bceSmrg		exit 1
1357a0395d0Smrg		;;
1366c3c2bceSmrg	*-*-*-*)
1376c3c2bceSmrg		basic_machine=$field1-$field2
1380d22642bSmrg		basic_os=$field3-$field4
1397a0395d0Smrg		;;
1406c3c2bceSmrg	*-*-*)
1416c3c2bceSmrg		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
1426c3c2bceSmrg		# parts
1436c3c2bceSmrg		maybe_os=$field2-$field3
1446c3c2bceSmrg		case $maybe_os in
1450d22642bSmrg			nto-qnx* | linux-* | uclinux-uclibc* \
1466c3c2bceSmrg			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
1476c3c2bceSmrg			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
148273c00b8Smrg			| storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
1496c3c2bceSmrg				basic_machine=$field1
1500d22642bSmrg				basic_os=$maybe_os
1516c3c2bceSmrg				;;
1526c3c2bceSmrg			android-linux)
1536c3c2bceSmrg				basic_machine=$field1-unknown
1540d22642bSmrg				basic_os=linux-android
1556c3c2bceSmrg				;;
1566c3c2bceSmrg			*)
1576c3c2bceSmrg				basic_machine=$field1-$field2
1580d22642bSmrg				basic_os=$field3
1596c3c2bceSmrg				;;
1606c3c2bceSmrg		esac
1617a0395d0Smrg		;;
1626c3c2bceSmrg	*-*)
1630d22642bSmrg		# A lone config we happen to match not fitting any pattern
1646c3c2bceSmrg		case $field1-$field2 in
1656c3c2bceSmrg			decstation-3100)
1666c3c2bceSmrg				basic_machine=mips-dec
1670d22642bSmrg				basic_os=
1686c3c2bceSmrg				;;
1696c3c2bceSmrg			*-*)
1706c3c2bceSmrg				# Second component is usually, but not always the OS
1716c3c2bceSmrg				case $field2 in
1726c3c2bceSmrg					# Prevent following clause from handling this valid os
1736c3c2bceSmrg					sun*os*)
1746c3c2bceSmrg						basic_machine=$field1
1750d22642bSmrg						basic_os=$field2
1766c3c2bceSmrg						;;
177273c00b8Smrg					zephyr*)
178273c00b8Smrg						basic_machine=$field1-unknown
179273c00b8Smrg						basic_os=$field2
180273c00b8Smrg						;;
1816c3c2bceSmrg					# Manufacturers
1826c3c2bceSmrg					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
1836c3c2bceSmrg					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
1846c3c2bceSmrg					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
1856c3c2bceSmrg					| convergent* | ncr* | news | 32* | 3600* | 3100* \
1866c3c2bceSmrg					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
1876c3c2bceSmrg					| ultra | tti* | harris | dolphin | highlevel | gould \
1886c3c2bceSmrg					| cbm | ns | masscomp | apple | axis | knuth | cray \
1896c3c2bceSmrg					| microblaze* | sim | cisco \
1906c3c2bceSmrg					| oki | wec | wrs | winbond)
1916c3c2bceSmrg						basic_machine=$field1-$field2
1920d22642bSmrg						basic_os=
1936c3c2bceSmrg						;;
1946c3c2bceSmrg					*)
1956c3c2bceSmrg						basic_machine=$field1
1960d22642bSmrg						basic_os=$field2
1976c3c2bceSmrg						;;
1986c3c2bceSmrg				esac
1996c3c2bceSmrg			;;
2006c3c2bceSmrg		esac
2017a0395d0Smrg		;;
2026c3c2bceSmrg	*)
2036c3c2bceSmrg		# Convert single-component short-hands not valid as part of
2046c3c2bceSmrg		# multi-component configurations.
2056c3c2bceSmrg		case $field1 in
2066c3c2bceSmrg			386bsd)
2076c3c2bceSmrg				basic_machine=i386-pc
2080d22642bSmrg				basic_os=bsd
2096c3c2bceSmrg				;;
2106c3c2bceSmrg			a29khif)
2116c3c2bceSmrg				basic_machine=a29k-amd
2120d22642bSmrg				basic_os=udi
2136c3c2bceSmrg				;;
2146c3c2bceSmrg			adobe68k)
2156c3c2bceSmrg				basic_machine=m68010-adobe
2160d22642bSmrg				basic_os=scout
2176c3c2bceSmrg				;;
2186c3c2bceSmrg			alliant)
2196c3c2bceSmrg				basic_machine=fx80-alliant
2200d22642bSmrg				basic_os=
2216c3c2bceSmrg				;;
2226c3c2bceSmrg			altos | altos3068)
2236c3c2bceSmrg				basic_machine=m68k-altos
2240d22642bSmrg				basic_os=
2256c3c2bceSmrg				;;
2266c3c2bceSmrg			am29k)
2276c3c2bceSmrg				basic_machine=a29k-none
2280d22642bSmrg				basic_os=bsd
2296c3c2bceSmrg				;;
2306c3c2bceSmrg			amdahl)
2316c3c2bceSmrg				basic_machine=580-amdahl
2320d22642bSmrg				basic_os=sysv
2336c3c2bceSmrg				;;
2346c3c2bceSmrg			amiga)
2356c3c2bceSmrg				basic_machine=m68k-unknown
2360d22642bSmrg				basic_os=
2376c3c2bceSmrg				;;
2386c3c2bceSmrg			amigaos | amigados)
2396c3c2bceSmrg				basic_machine=m68k-unknown
2400d22642bSmrg				basic_os=amigaos
2416c3c2bceSmrg				;;
2426c3c2bceSmrg			amigaunix | amix)
2436c3c2bceSmrg				basic_machine=m68k-unknown
2440d22642bSmrg				basic_os=sysv4
2456c3c2bceSmrg				;;
2466c3c2bceSmrg			apollo68)
2476c3c2bceSmrg				basic_machine=m68k-apollo
2480d22642bSmrg				basic_os=sysv
2496c3c2bceSmrg				;;
2506c3c2bceSmrg			apollo68bsd)
2516c3c2bceSmrg				basic_machine=m68k-apollo
2520d22642bSmrg				basic_os=bsd
2536c3c2bceSmrg				;;
2546c3c2bceSmrg			aros)
2556c3c2bceSmrg				basic_machine=i386-pc
2560d22642bSmrg				basic_os=aros
2576c3c2bceSmrg				;;
2586c3c2bceSmrg			aux)
2596c3c2bceSmrg				basic_machine=m68k-apple
2600d22642bSmrg				basic_os=aux
2616c3c2bceSmrg				;;
2626c3c2bceSmrg			balance)
2636c3c2bceSmrg				basic_machine=ns32k-sequent
2640d22642bSmrg				basic_os=dynix
2656c3c2bceSmrg				;;
2666c3c2bceSmrg			blackfin)
2676c3c2bceSmrg				basic_machine=bfin-unknown
2680d22642bSmrg				basic_os=linux
2696c3c2bceSmrg				;;
2706c3c2bceSmrg			cegcc)
2716c3c2bceSmrg				basic_machine=arm-unknown
2720d22642bSmrg				basic_os=cegcc
2736c3c2bceSmrg				;;
2746c3c2bceSmrg			convex-c1)
2756c3c2bceSmrg				basic_machine=c1-convex
2760d22642bSmrg				basic_os=bsd
2776c3c2bceSmrg				;;
2786c3c2bceSmrg			convex-c2)
2796c3c2bceSmrg				basic_machine=c2-convex
2800d22642bSmrg				basic_os=bsd
2816c3c2bceSmrg				;;
2826c3c2bceSmrg			convex-c32)
2836c3c2bceSmrg				basic_machine=c32-convex
2840d22642bSmrg				basic_os=bsd
2856c3c2bceSmrg				;;
2866c3c2bceSmrg			convex-c34)
2876c3c2bceSmrg				basic_machine=c34-convex
2880d22642bSmrg				basic_os=bsd
2896c3c2bceSmrg				;;
2906c3c2bceSmrg			convex-c38)
2916c3c2bceSmrg				basic_machine=c38-convex
2920d22642bSmrg				basic_os=bsd
2936c3c2bceSmrg				;;
2946c3c2bceSmrg			cray)
2956c3c2bceSmrg				basic_machine=j90-cray
2960d22642bSmrg				basic_os=unicos
2976c3c2bceSmrg				;;
2986c3c2bceSmrg			crds | unos)
2996c3c2bceSmrg				basic_machine=m68k-crds
3000d22642bSmrg				basic_os=
3016c3c2bceSmrg				;;
3026c3c2bceSmrg			da30)
3036c3c2bceSmrg				basic_machine=m68k-da30
3040d22642bSmrg				basic_os=
3056c3c2bceSmrg				;;
3066c3c2bceSmrg			decstation | pmax | pmin | dec3100 | decstatn)
3076c3c2bceSmrg				basic_machine=mips-dec
3080d22642bSmrg				basic_os=
3096c3c2bceSmrg				;;
3106c3c2bceSmrg			delta88)
3116c3c2bceSmrg				basic_machine=m88k-motorola
3120d22642bSmrg				basic_os=sysv3
3136c3c2bceSmrg				;;
3146c3c2bceSmrg			dicos)
3156c3c2bceSmrg				basic_machine=i686-pc
3160d22642bSmrg				basic_os=dicos
3176c3c2bceSmrg				;;
3186c3c2bceSmrg			djgpp)
3196c3c2bceSmrg				basic_machine=i586-pc
3200d22642bSmrg				basic_os=msdosdjgpp
3216c3c2bceSmrg				;;
3226c3c2bceSmrg			ebmon29k)
3236c3c2bceSmrg				basic_machine=a29k-amd
3240d22642bSmrg				basic_os=ebmon
3256c3c2bceSmrg				;;
3266c3c2bceSmrg			es1800 | OSE68k | ose68k | ose | OSE)
3276c3c2bceSmrg				basic_machine=m68k-ericsson
3280d22642bSmrg				basic_os=ose
3296c3c2bceSmrg				;;
3306c3c2bceSmrg			gmicro)
3316c3c2bceSmrg				basic_machine=tron-gmicro
3320d22642bSmrg				basic_os=sysv
3336c3c2bceSmrg				;;
3346c3c2bceSmrg			go32)
3356c3c2bceSmrg				basic_machine=i386-pc
3360d22642bSmrg				basic_os=go32
3376c3c2bceSmrg				;;
3386c3c2bceSmrg			h8300hms)
3396c3c2bceSmrg				basic_machine=h8300-hitachi
3400d22642bSmrg				basic_os=hms
3416c3c2bceSmrg				;;
3426c3c2bceSmrg			h8300xray)
3436c3c2bceSmrg				basic_machine=h8300-hitachi
3440d22642bSmrg				basic_os=xray
3456c3c2bceSmrg				;;
3466c3c2bceSmrg			h8500hms)
3476c3c2bceSmrg				basic_machine=h8500-hitachi
3480d22642bSmrg				basic_os=hms
3496c3c2bceSmrg				;;
3506c3c2bceSmrg			harris)
3516c3c2bceSmrg				basic_machine=m88k-harris
3520d22642bSmrg				basic_os=sysv3
3536c3c2bceSmrg				;;
3540d22642bSmrg			hp300 | hp300hpux)
3556c3c2bceSmrg				basic_machine=m68k-hp
3560d22642bSmrg				basic_os=hpux
3576c3c2bceSmrg				;;
3586c3c2bceSmrg			hp300bsd)
3596c3c2bceSmrg				basic_machine=m68k-hp
3600d22642bSmrg				basic_os=bsd
3616c3c2bceSmrg				;;
3626c3c2bceSmrg			hppaosf)
3636c3c2bceSmrg				basic_machine=hppa1.1-hp
3640d22642bSmrg				basic_os=osf
3656c3c2bceSmrg				;;
3666c3c2bceSmrg			hppro)
3676c3c2bceSmrg				basic_machine=hppa1.1-hp
3680d22642bSmrg				basic_os=proelf
3696c3c2bceSmrg				;;
3706c3c2bceSmrg			i386mach)
3716c3c2bceSmrg				basic_machine=i386-mach
3720d22642bSmrg				basic_os=mach
3736c3c2bceSmrg				;;
3746c3c2bceSmrg			isi68 | isi)
3756c3c2bceSmrg				basic_machine=m68k-isi
3760d22642bSmrg				basic_os=sysv
3776c3c2bceSmrg				;;
3786c3c2bceSmrg			m68knommu)
3796c3c2bceSmrg				basic_machine=m68k-unknown
3800d22642bSmrg				basic_os=linux
3816c3c2bceSmrg				;;
3826c3c2bceSmrg			magnum | m3230)
3836c3c2bceSmrg				basic_machine=mips-mips
3840d22642bSmrg				basic_os=sysv
3856c3c2bceSmrg				;;
3866c3c2bceSmrg			merlin)
3876c3c2bceSmrg				basic_machine=ns32k-utek
3880d22642bSmrg				basic_os=sysv
3896c3c2bceSmrg				;;
3906c3c2bceSmrg			mingw64)
3916c3c2bceSmrg				basic_machine=x86_64-pc
3920d22642bSmrg				basic_os=mingw64
3936c3c2bceSmrg				;;
3946c3c2bceSmrg			mingw32)
3956c3c2bceSmrg				basic_machine=i686-pc
3960d22642bSmrg				basic_os=mingw32
3976c3c2bceSmrg				;;
3986c3c2bceSmrg			mingw32ce)
3996c3c2bceSmrg				basic_machine=arm-unknown
4000d22642bSmrg				basic_os=mingw32ce
4016c3c2bceSmrg				;;
4026c3c2bceSmrg			monitor)
4036c3c2bceSmrg				basic_machine=m68k-rom68k
4040d22642bSmrg				basic_os=coff
4056c3c2bceSmrg				;;
4066c3c2bceSmrg			morphos)
4076c3c2bceSmrg				basic_machine=powerpc-unknown
4080d22642bSmrg				basic_os=morphos
4096c3c2bceSmrg				;;
4106c3c2bceSmrg			moxiebox)
4116c3c2bceSmrg				basic_machine=moxie-unknown
4120d22642bSmrg				basic_os=moxiebox
4136c3c2bceSmrg				;;
4146c3c2bceSmrg			msdos)
4156c3c2bceSmrg				basic_machine=i386-pc
4160d22642bSmrg				basic_os=msdos
4176c3c2bceSmrg				;;
4186c3c2bceSmrg			msys)
4196c3c2bceSmrg				basic_machine=i686-pc
4200d22642bSmrg				basic_os=msys
4216c3c2bceSmrg				;;
4226c3c2bceSmrg			mvs)
4236c3c2bceSmrg				basic_machine=i370-ibm
4240d22642bSmrg				basic_os=mvs
4256c3c2bceSmrg				;;
4266c3c2bceSmrg			nacl)
4276c3c2bceSmrg				basic_machine=le32-unknown
4280d22642bSmrg				basic_os=nacl
4296c3c2bceSmrg				;;
4306c3c2bceSmrg			ncr3000)
4316c3c2bceSmrg				basic_machine=i486-ncr
4320d22642bSmrg				basic_os=sysv4
4336c3c2bceSmrg				;;
4346c3c2bceSmrg			netbsd386)
4356c3c2bceSmrg				basic_machine=i386-pc
4360d22642bSmrg				basic_os=netbsd
4376c3c2bceSmrg				;;
4386c3c2bceSmrg			netwinder)
4396c3c2bceSmrg				basic_machine=armv4l-rebel
4400d22642bSmrg				basic_os=linux
4416c3c2bceSmrg				;;
4426c3c2bceSmrg			news | news700 | news800 | news900)
4436c3c2bceSmrg				basic_machine=m68k-sony
4440d22642bSmrg				basic_os=newsos
4456c3c2bceSmrg				;;
4466c3c2bceSmrg			news1000)
4476c3c2bceSmrg				basic_machine=m68030-sony
4480d22642bSmrg				basic_os=newsos
4496c3c2bceSmrg				;;
4506c3c2bceSmrg			necv70)
4516c3c2bceSmrg				basic_machine=v70-nec
4520d22642bSmrg				basic_os=sysv
4536c3c2bceSmrg				;;
4546c3c2bceSmrg			nh3000)
4556c3c2bceSmrg				basic_machine=m68k-harris
4560d22642bSmrg				basic_os=cxux
4576c3c2bceSmrg				;;
4586c3c2bceSmrg			nh[45]000)
4596c3c2bceSmrg				basic_machine=m88k-harris
4600d22642bSmrg				basic_os=cxux
4616c3c2bceSmrg				;;
4626c3c2bceSmrg			nindy960)
4636c3c2bceSmrg				basic_machine=i960-intel
4640d22642bSmrg				basic_os=nindy
4656c3c2bceSmrg				;;
4666c3c2bceSmrg			mon960)
4676c3c2bceSmrg				basic_machine=i960-intel
4680d22642bSmrg				basic_os=mon960
4696c3c2bceSmrg				;;
4706c3c2bceSmrg			nonstopux)
4716c3c2bceSmrg				basic_machine=mips-compaq
4720d22642bSmrg				basic_os=nonstopux
4736c3c2bceSmrg				;;
4746c3c2bceSmrg			os400)
4756c3c2bceSmrg				basic_machine=powerpc-ibm
4760d22642bSmrg				basic_os=os400
4776c3c2bceSmrg				;;
4786c3c2bceSmrg			OSE68000 | ose68000)
4796c3c2bceSmrg				basic_machine=m68000-ericsson
4800d22642bSmrg				basic_os=ose
4816c3c2bceSmrg				;;
4826c3c2bceSmrg			os68k)
4836c3c2bceSmrg				basic_machine=m68k-none
4840d22642bSmrg				basic_os=os68k
4856c3c2bceSmrg				;;
4866c3c2bceSmrg			paragon)
4876c3c2bceSmrg				basic_machine=i860-intel
4880d22642bSmrg				basic_os=osf
4896c3c2bceSmrg				;;
4906c3c2bceSmrg			parisc)
4916c3c2bceSmrg				basic_machine=hppa-unknown
4920d22642bSmrg				basic_os=linux
4930d22642bSmrg				;;
4940d22642bSmrg			psp)
4950d22642bSmrg				basic_machine=mipsallegrexel-sony
4960d22642bSmrg				basic_os=psp
4976c3c2bceSmrg				;;
4986c3c2bceSmrg			pw32)
4996c3c2bceSmrg				basic_machine=i586-unknown
5000d22642bSmrg				basic_os=pw32
5016c3c2bceSmrg				;;
5026c3c2bceSmrg			rdos | rdos64)
5036c3c2bceSmrg				basic_machine=x86_64-pc
5040d22642bSmrg				basic_os=rdos
5056c3c2bceSmrg				;;
5066c3c2bceSmrg			rdos32)
5076c3c2bceSmrg				basic_machine=i386-pc
5080d22642bSmrg				basic_os=rdos
5096c3c2bceSmrg				;;
5106c3c2bceSmrg			rom68k)
5116c3c2bceSmrg				basic_machine=m68k-rom68k
5120d22642bSmrg				basic_os=coff
5136c3c2bceSmrg				;;
5146c3c2bceSmrg			sa29200)
5156c3c2bceSmrg				basic_machine=a29k-amd
5160d22642bSmrg				basic_os=udi
5176c3c2bceSmrg				;;
5186c3c2bceSmrg			sei)
5196c3c2bceSmrg				basic_machine=mips-sei
5200d22642bSmrg				basic_os=seiux
5216c3c2bceSmrg				;;
5226c3c2bceSmrg			sequent)
5236c3c2bceSmrg				basic_machine=i386-sequent
5240d22642bSmrg				basic_os=
5256c3c2bceSmrg				;;
5266c3c2bceSmrg			sps7)
5276c3c2bceSmrg				basic_machine=m68k-bull
5280d22642bSmrg				basic_os=sysv2
5296c3c2bceSmrg				;;
5306c3c2bceSmrg			st2000)
5316c3c2bceSmrg				basic_machine=m68k-tandem
5320d22642bSmrg				basic_os=
5336c3c2bceSmrg				;;
5346c3c2bceSmrg			stratus)
5356c3c2bceSmrg				basic_machine=i860-stratus
5360d22642bSmrg				basic_os=sysv4
5376c3c2bceSmrg				;;
5386c3c2bceSmrg			sun2)
5396c3c2bceSmrg				basic_machine=m68000-sun
5400d22642bSmrg				basic_os=
5416c3c2bceSmrg				;;
5426c3c2bceSmrg			sun2os3)
5436c3c2bceSmrg				basic_machine=m68000-sun
5440d22642bSmrg				basic_os=sunos3
5456c3c2bceSmrg				;;
5466c3c2bceSmrg			sun2os4)
5476c3c2bceSmrg				basic_machine=m68000-sun
5480d22642bSmrg				basic_os=sunos4
5496c3c2bceSmrg				;;
5506c3c2bceSmrg			sun3)
5516c3c2bceSmrg				basic_machine=m68k-sun
5520d22642bSmrg				basic_os=
5536c3c2bceSmrg				;;
5546c3c2bceSmrg			sun3os3)
5556c3c2bceSmrg				basic_machine=m68k-sun
5560d22642bSmrg				basic_os=sunos3
5576c3c2bceSmrg				;;
5586c3c2bceSmrg			sun3os4)
5596c3c2bceSmrg				basic_machine=m68k-sun
5600d22642bSmrg				basic_os=sunos4
5616c3c2bceSmrg				;;
5626c3c2bceSmrg			sun4)
5636c3c2bceSmrg				basic_machine=sparc-sun
5640d22642bSmrg				basic_os=
5656c3c2bceSmrg				;;
5666c3c2bceSmrg			sun4os3)
5676c3c2bceSmrg				basic_machine=sparc-sun
5680d22642bSmrg				basic_os=sunos3
5696c3c2bceSmrg				;;
5706c3c2bceSmrg			sun4os4)
5716c3c2bceSmrg				basic_machine=sparc-sun
5720d22642bSmrg				basic_os=sunos4
5736c3c2bceSmrg				;;
5746c3c2bceSmrg			sun4sol2)
5756c3c2bceSmrg				basic_machine=sparc-sun
5760d22642bSmrg				basic_os=solaris2
5776c3c2bceSmrg				;;
5786c3c2bceSmrg			sun386 | sun386i | roadrunner)
5796c3c2bceSmrg				basic_machine=i386-sun
5800d22642bSmrg				basic_os=
5816c3c2bceSmrg				;;
5826c3c2bceSmrg			sv1)
5836c3c2bceSmrg				basic_machine=sv1-cray
5840d22642bSmrg				basic_os=unicos
5856c3c2bceSmrg				;;
5866c3c2bceSmrg			symmetry)
5876c3c2bceSmrg				basic_machine=i386-sequent
5880d22642bSmrg				basic_os=dynix
5896c3c2bceSmrg				;;
5906c3c2bceSmrg			t3e)
5916c3c2bceSmrg				basic_machine=alphaev5-cray
5920d22642bSmrg				basic_os=unicos
5936c3c2bceSmrg				;;
5946c3c2bceSmrg			t90)
5956c3c2bceSmrg				basic_machine=t90-cray
5960d22642bSmrg				basic_os=unicos
5976c3c2bceSmrg				;;
5986c3c2bceSmrg			toad1)
5996c3c2bceSmrg				basic_machine=pdp10-xkl
6000d22642bSmrg				basic_os=tops20
6016c3c2bceSmrg				;;
6026c3c2bceSmrg			tpf)
6036c3c2bceSmrg				basic_machine=s390x-ibm
6040d22642bSmrg				basic_os=tpf
6056c3c2bceSmrg				;;
6066c3c2bceSmrg			udi29k)
6076c3c2bceSmrg				basic_machine=a29k-amd
6080d22642bSmrg				basic_os=udi
6096c3c2bceSmrg				;;
6106c3c2bceSmrg			ultra3)
6116c3c2bceSmrg				basic_machine=a29k-nyu
6120d22642bSmrg				basic_os=sym1
6136c3c2bceSmrg				;;
6146c3c2bceSmrg			v810 | necv810)
6156c3c2bceSmrg				basic_machine=v810-nec
6160d22642bSmrg				basic_os=none
6176c3c2bceSmrg				;;
6186c3c2bceSmrg			vaxv)
6196c3c2bceSmrg				basic_machine=vax-dec
6200d22642bSmrg				basic_os=sysv
6216c3c2bceSmrg				;;
6226c3c2bceSmrg			vms)
6236c3c2bceSmrg				basic_machine=vax-dec
6240d22642bSmrg				basic_os=vms
6250d22642bSmrg				;;
6260d22642bSmrg			vsta)
6270d22642bSmrg				basic_machine=i386-pc
6280d22642bSmrg				basic_os=vsta
6296c3c2bceSmrg				;;
6306c3c2bceSmrg			vxworks960)
6316c3c2bceSmrg				basic_machine=i960-wrs
6320d22642bSmrg				basic_os=vxworks
6336c3c2bceSmrg				;;
6346c3c2bceSmrg			vxworks68)
6356c3c2bceSmrg				basic_machine=m68k-wrs
6360d22642bSmrg				basic_os=vxworks
6376c3c2bceSmrg				;;
6386c3c2bceSmrg			vxworks29k)
6396c3c2bceSmrg				basic_machine=a29k-wrs
6400d22642bSmrg				basic_os=vxworks
6416c3c2bceSmrg				;;
6426c3c2bceSmrg			xbox)
6436c3c2bceSmrg				basic_machine=i686-pc
6440d22642bSmrg				basic_os=mingw32
6456c3c2bceSmrg				;;
6466c3c2bceSmrg			ymp)
6476c3c2bceSmrg				basic_machine=ymp-cray
6480d22642bSmrg				basic_os=unicos
6496c3c2bceSmrg				;;
6506c3c2bceSmrg			*)
6516c3c2bceSmrg				basic_machine=$1
6520d22642bSmrg				basic_os=
6536c3c2bceSmrg				;;
6546c3c2bceSmrg		esac
6557a0395d0Smrg		;;
6567a0395d0Smrgesac
6577a0395d0Smrg
6586c3c2bceSmrg# Decode 1-component or ad-hoc basic machines
6597a0395d0Smrgcase $basic_machine in
6606c3c2bceSmrg	# Here we handle the default manufacturer of certain CPU types.  It is in
6616c3c2bceSmrg	# some cases the only manufacturer, in others, it is the most popular.
6626c3c2bceSmrg	w89k)
6636c3c2bceSmrg		cpu=hppa1.1
6646c3c2bceSmrg		vendor=winbond
6657a0395d0Smrg		;;
6666c3c2bceSmrg	op50n)
6676c3c2bceSmrg		cpu=hppa1.1
6686c3c2bceSmrg		vendor=oki
6697a0395d0Smrg		;;
6706c3c2bceSmrg	op60c)
6716c3c2bceSmrg		cpu=hppa1.1
6726c3c2bceSmrg		vendor=oki
6737a0395d0Smrg		;;
6746c3c2bceSmrg	ibm*)
6756c3c2bceSmrg		cpu=i370
6766c3c2bceSmrg		vendor=ibm
6778abc0ccfSmrg		;;
6786c3c2bceSmrg	orion105)
6796c3c2bceSmrg		cpu=clipper
6806c3c2bceSmrg		vendor=highlevel
6818abc0ccfSmrg		;;
6826c3c2bceSmrg	mac | mpw | mac-mpw)
6836c3c2bceSmrg		cpu=m68k
6846c3c2bceSmrg		vendor=apple
6858abc0ccfSmrg		;;
6866c3c2bceSmrg	pmac | pmac-mpw)
6876c3c2bceSmrg		cpu=powerpc
6886c3c2bceSmrg		vendor=apple
6898abc0ccfSmrg		;;
6908abc0ccfSmrg
6917a0395d0Smrg	# Recognize the various machine names and aliases which stand
6927a0395d0Smrg	# for a CPU type and a company and sometimes even an OS.
6937a0395d0Smrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
6946c3c2bceSmrg		cpu=m68000
6956c3c2bceSmrg		vendor=att
6967a0395d0Smrg		;;
6977a0395d0Smrg	3b*)
6986c3c2bceSmrg		cpu=we32k
6996c3c2bceSmrg		vendor=att
7007a0395d0Smrg		;;
7012adc0320Smrg	bluegene*)
7026c3c2bceSmrg		cpu=powerpc
7036c3c2bceSmrg		vendor=ibm
7040d22642bSmrg		basic_os=cnk
7057a0395d0Smrg		;;
7067a0395d0Smrg	decsystem10* | dec10*)
7076c3c2bceSmrg		cpu=pdp10
7086c3c2bceSmrg		vendor=dec
7090d22642bSmrg		basic_os=tops10
7107a0395d0Smrg		;;
7117a0395d0Smrg	decsystem20* | dec20*)
7126c3c2bceSmrg		cpu=pdp10
7136c3c2bceSmrg		vendor=dec
7140d22642bSmrg		basic_os=tops20
7157a0395d0Smrg		;;
7167a0395d0Smrg	delta | 3300 | motorola-3300 | motorola-delta \
7177a0395d0Smrg	      | 3300-motorola | delta-motorola)
7186c3c2bceSmrg		cpu=m68k
7196c3c2bceSmrg		vendor=motorola
7207a0395d0Smrg		;;
7216c3c2bceSmrg	dpx2*)
7226c3c2bceSmrg		cpu=m68k
7236c3c2bceSmrg		vendor=bull
7240d22642bSmrg		basic_os=sysv3
7257a0395d0Smrg		;;
7267a0395d0Smrg	encore | umax | mmax)
7276c3c2bceSmrg		cpu=ns32k
7286c3c2bceSmrg		vendor=encore
7297a0395d0Smrg		;;
7306c3c2bceSmrg	elxsi)
7316c3c2bceSmrg		cpu=elxsi
7326c3c2bceSmrg		vendor=elxsi
7330d22642bSmrg		basic_os=${basic_os:-bsd}
7347a0395d0Smrg		;;
7357a0395d0Smrg	fx2800)
7366c3c2bceSmrg		cpu=i860
7376c3c2bceSmrg		vendor=alliant
7387a0395d0Smrg		;;
7397a0395d0Smrg	genix)
7406c3c2bceSmrg		cpu=ns32k
7416c3c2bceSmrg		vendor=ns
7427a0395d0Smrg		;;
7437a0395d0Smrg	h3050r* | hiux*)
7446c3c2bceSmrg		cpu=hppa1.1
7456c3c2bceSmrg		vendor=hitachi
7460d22642bSmrg		basic_os=hiuxwe2
7477a0395d0Smrg		;;
7487a0395d0Smrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
7496c3c2bceSmrg		cpu=hppa1.0
7506c3c2bceSmrg		vendor=hp
7517a0395d0Smrg		;;
7527a0395d0Smrg	hp9k2[0-9][0-9] | hp9k31[0-9])
7536c3c2bceSmrg		cpu=m68000
7546c3c2bceSmrg		vendor=hp
7557a0395d0Smrg		;;
7567a0395d0Smrg	hp9k3[2-9][0-9])
7576c3c2bceSmrg		cpu=m68k
7586c3c2bceSmrg		vendor=hp
7597a0395d0Smrg		;;
7607a0395d0Smrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
7616c3c2bceSmrg		cpu=hppa1.0
7626c3c2bceSmrg		vendor=hp
7637a0395d0Smrg		;;
7647a0395d0Smrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
7656c3c2bceSmrg		cpu=hppa1.1
7666c3c2bceSmrg		vendor=hp
7677a0395d0Smrg		;;
7687a0395d0Smrg	hp9k78[0-9] | hp78[0-9])
7697a0395d0Smrg		# FIXME: really hppa2.0-hp
7706c3c2bceSmrg		cpu=hppa1.1
7716c3c2bceSmrg		vendor=hp
7727a0395d0Smrg		;;
7737a0395d0Smrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
7747a0395d0Smrg		# FIXME: really hppa2.0-hp
7756c3c2bceSmrg		cpu=hppa1.1
7766c3c2bceSmrg		vendor=hp
7777a0395d0Smrg		;;
7787a0395d0Smrg	hp9k8[0-9][13679] | hp8[0-9][13679])
7796c3c2bceSmrg		cpu=hppa1.1
7806c3c2bceSmrg		vendor=hp
7817a0395d0Smrg		;;
7827a0395d0Smrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
7836c3c2bceSmrg		cpu=hppa1.0
7846c3c2bceSmrg		vendor=hp
7857a0395d0Smrg		;;
7867a0395d0Smrg	i*86v32)
787273c00b8Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7886c3c2bceSmrg		vendor=pc
7890d22642bSmrg		basic_os=sysv32
7907a0395d0Smrg		;;
7917a0395d0Smrg	i*86v4*)
792273c00b8Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7936c3c2bceSmrg		vendor=pc
7940d22642bSmrg		basic_os=sysv4
7957a0395d0Smrg		;;
7967a0395d0Smrg	i*86v)
797273c00b8Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7986c3c2bceSmrg		vendor=pc
7990d22642bSmrg		basic_os=sysv
8007a0395d0Smrg		;;
8017a0395d0Smrg	i*86sol2)
802273c00b8Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
8036c3c2bceSmrg		vendor=pc
8040d22642bSmrg		basic_os=solaris2
8057a0395d0Smrg		;;
8066c3c2bceSmrg	j90 | j90-cray)
8076c3c2bceSmrg		cpu=j90
8086c3c2bceSmrg		vendor=cray
8090d22642bSmrg		basic_os=${basic_os:-unicos}
8107a0395d0Smrg		;;
8117a0395d0Smrg	iris | iris4d)
8126c3c2bceSmrg		cpu=mips
8136c3c2bceSmrg		vendor=sgi
8140d22642bSmrg		case $basic_os in
8156c3c2bceSmrg		    irix*)
8167a0395d0Smrg			;;
8177a0395d0Smrg		    *)
8180d22642bSmrg			basic_os=irix4
8197a0395d0Smrg			;;
8207a0395d0Smrg		esac
8217a0395d0Smrg		;;
8227a0395d0Smrg	miniframe)
8236c3c2bceSmrg		cpu=m68000
8246c3c2bceSmrg		vendor=convergent
8257a0395d0Smrg		;;
8266c3c2bceSmrg	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
8276c3c2bceSmrg		cpu=m68k
8286c3c2bceSmrg		vendor=atari
8290d22642bSmrg		basic_os=mint
8307a0395d0Smrg		;;
8317a0395d0Smrg	news-3600 | risc-news)
8326c3c2bceSmrg		cpu=mips
8336c3c2bceSmrg		vendor=sony
8340d22642bSmrg		basic_os=newsos
8357a0395d0Smrg		;;
8366c3c2bceSmrg	next | m*-next)
8376c3c2bceSmrg		cpu=m68k
8386c3c2bceSmrg		vendor=next
8390d22642bSmrg		case $basic_os in
8400d22642bSmrg		    openstep*)
8410d22642bSmrg		        ;;
8420d22642bSmrg		    nextstep*)
8437a0395d0Smrg			;;
8446c3c2bceSmrg		    ns2*)
8450d22642bSmrg		      basic_os=nextstep2
8467a0395d0Smrg			;;
8477a0395d0Smrg		    *)
8480d22642bSmrg		      basic_os=nextstep3
8497a0395d0Smrg			;;
8507a0395d0Smrg		esac
8517a0395d0Smrg		;;
8527a0395d0Smrg	np1)
8536c3c2bceSmrg		cpu=np1
8546c3c2bceSmrg		vendor=gould
8557a0395d0Smrg		;;
8567a0395d0Smrg	op50n-* | op60c-*)
8576c3c2bceSmrg		cpu=hppa1.1
8586c3c2bceSmrg		vendor=oki
8590d22642bSmrg		basic_os=proelf
8607a0395d0Smrg		;;
8617a0395d0Smrg	pa-hitachi)
8626c3c2bceSmrg		cpu=hppa1.1
8636c3c2bceSmrg		vendor=hitachi
8640d22642bSmrg		basic_os=hiuxwe2
8657a0395d0Smrg		;;
8667a0395d0Smrg	pbd)
8676c3c2bceSmrg		cpu=sparc
8686c3c2bceSmrg		vendor=tti
8697a0395d0Smrg		;;
8707a0395d0Smrg	pbb)
8716c3c2bceSmrg		cpu=m68k
8726c3c2bceSmrg		vendor=tti
8737a0395d0Smrg		;;
8746c3c2bceSmrg	pc532)
8756c3c2bceSmrg		cpu=ns32k
8766c3c2bceSmrg		vendor=pc532
8777a0395d0Smrg		;;
8787a0395d0Smrg	pn)
8796c3c2bceSmrg		cpu=pn
8806c3c2bceSmrg		vendor=gould
8817a0395d0Smrg		;;
8826c3c2bceSmrg	power)
8836c3c2bceSmrg		cpu=power
8846c3c2bceSmrg		vendor=ibm
8857a0395d0Smrg		;;
8867a0395d0Smrg	ps2)
8876c3c2bceSmrg		cpu=i386
8886c3c2bceSmrg		vendor=ibm
8897a0395d0Smrg		;;
8907a0395d0Smrg	rm[46]00)
8916c3c2bceSmrg		cpu=mips
8926c3c2bceSmrg		vendor=siemens
8937a0395d0Smrg		;;
8947a0395d0Smrg	rtpc | rtpc-*)
8956c3c2bceSmrg		cpu=romp
8966c3c2bceSmrg		vendor=ibm
8977a0395d0Smrg		;;
8986c3c2bceSmrg	sde)
8996c3c2bceSmrg		cpu=mipsisa32
9006c3c2bceSmrg		vendor=sde
9010d22642bSmrg		basic_os=${basic_os:-elf}
9027a0395d0Smrg		;;
9036c3c2bceSmrg	simso-wrs)
9046c3c2bceSmrg		cpu=sparclite
9056c3c2bceSmrg		vendor=wrs
9060d22642bSmrg		basic_os=vxworks
9077a0395d0Smrg		;;
9086c3c2bceSmrg	tower | tower-32)
9096c3c2bceSmrg		cpu=m68k
9106c3c2bceSmrg		vendor=ncr
9117a0395d0Smrg		;;
9126c3c2bceSmrg	vpp*|vx|vx-*)
9136c3c2bceSmrg		cpu=f301
9146c3c2bceSmrg		vendor=fujitsu
9157a0395d0Smrg		;;
9166c3c2bceSmrg	w65)
9176c3c2bceSmrg		cpu=w65
9186c3c2bceSmrg		vendor=wdc
9197a0395d0Smrg		;;
9206c3c2bceSmrg	w89k-*)
9216c3c2bceSmrg		cpu=hppa1.1
9226c3c2bceSmrg		vendor=winbond
9230d22642bSmrg		basic_os=proelf
9247a0395d0Smrg		;;
9256c3c2bceSmrg	none)
9266c3c2bceSmrg		cpu=none
9276c3c2bceSmrg		vendor=none
9287a0395d0Smrg		;;
9296c3c2bceSmrg	leon|leon[3-9])
9306c3c2bceSmrg		cpu=sparc
9316c3c2bceSmrg		vendor=$basic_machine
9327a0395d0Smrg		;;
9336c3c2bceSmrg	leon-*|leon[3-9]-*)
9346c3c2bceSmrg		cpu=sparc
935273c00b8Smrg		vendor=`echo "$basic_machine" | sed 's/-.*//'`
9367a0395d0Smrg		;;
9376c3c2bceSmrg
9386c3c2bceSmrg	*-*)
9390d22642bSmrg		# shellcheck disable=SC2162
940273c00b8Smrg		saved_IFS=$IFS
9410d22642bSmrg		IFS="-" read cpu vendor <<EOF
9426c3c2bceSmrg$basic_machine
9436c3c2bceSmrgEOF
944273c00b8Smrg		IFS=$saved_IFS
9457a0395d0Smrg		;;
9466c3c2bceSmrg	# We use `pc' rather than `unknown'
9476c3c2bceSmrg	# because (1) that's what they normally are, and
9486c3c2bceSmrg	# (2) the word "unknown" tends to confuse beginning users.
9496c3c2bceSmrg	i*86 | x86_64)
9506c3c2bceSmrg		cpu=$basic_machine
9516c3c2bceSmrg		vendor=pc
9527a0395d0Smrg		;;
9536c3c2bceSmrg	# These rules are duplicated from below for sake of the special case above;
9546c3c2bceSmrg	# i.e. things that normalized to x86 arches should also default to "pc"
9556c3c2bceSmrg	pc98)
9566c3c2bceSmrg		cpu=i386
9576c3c2bceSmrg		vendor=pc
9587a0395d0Smrg		;;
9596c3c2bceSmrg	x64 | amd64)
9606c3c2bceSmrg		cpu=x86_64
9616c3c2bceSmrg		vendor=pc
9627a0395d0Smrg		;;
9636c3c2bceSmrg	# Recognize the basic CPU types without company name.
9646c3c2bceSmrg	*)
9656c3c2bceSmrg		cpu=$basic_machine
9666c3c2bceSmrg		vendor=unknown
9677a0395d0Smrg		;;
9686c3c2bceSmrgesac
9696c3c2bceSmrg
9706c3c2bceSmrgunset -v basic_machine
9716c3c2bceSmrg
9726c3c2bceSmrg# Decode basic machines in the full and proper CPU-Company form.
9736c3c2bceSmrgcase $cpu-$vendor in
9740d22642bSmrg	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
9756c3c2bceSmrg	# some cases the only manufacturer, in others, it is the most popular.
9766c3c2bceSmrg	craynv-unknown)
9776c3c2bceSmrg		vendor=cray
9780d22642bSmrg		basic_os=${basic_os:-unicosmp}
9798abc0ccfSmrg		;;
9806c3c2bceSmrg	c90-unknown | c90-cray)
9816c3c2bceSmrg		vendor=cray
9820d22642bSmrg		basic_os=${Basic_os:-unicos}
9837a0395d0Smrg		;;
9846c3c2bceSmrg	fx80-unknown)
9856c3c2bceSmrg		vendor=alliant
9867a0395d0Smrg		;;
9876c3c2bceSmrg	romp-unknown)
9886c3c2bceSmrg		vendor=ibm
9897a0395d0Smrg		;;
9906c3c2bceSmrg	mmix-unknown)
9916c3c2bceSmrg		vendor=knuth
9927a0395d0Smrg		;;
9936c3c2bceSmrg	microblaze-unknown | microblazeel-unknown)
9946c3c2bceSmrg		vendor=xilinx
9957a0395d0Smrg		;;
9966c3c2bceSmrg	rs6000-unknown)
9976c3c2bceSmrg		vendor=ibm
9987a0395d0Smrg		;;
9996c3c2bceSmrg	vax-unknown)
10006c3c2bceSmrg		vendor=dec
10017a0395d0Smrg		;;
10026c3c2bceSmrg	pdp11-unknown)
10036c3c2bceSmrg		vendor=dec
10047a0395d0Smrg		;;
10056c3c2bceSmrg	we32k-unknown)
10066c3c2bceSmrg		vendor=att
10077a0395d0Smrg		;;
10086c3c2bceSmrg	cydra-unknown)
10096c3c2bceSmrg		vendor=cydrome
10107a0395d0Smrg		;;
10116c3c2bceSmrg	i370-ibm*)
10126c3c2bceSmrg		vendor=ibm
10137a0395d0Smrg		;;
10146c3c2bceSmrg	orion-unknown)
10156c3c2bceSmrg		vendor=highlevel
10167a0395d0Smrg		;;
10176c3c2bceSmrg	xps-unknown | xps100-unknown)
10186c3c2bceSmrg		cpu=xps100
10196c3c2bceSmrg		vendor=honeywell
10207a0395d0Smrg		;;
10216c3c2bceSmrg
10226c3c2bceSmrg	# Here we normalize CPU types with a missing or matching vendor
1023273c00b8Smrg	armh-unknown | armh-alt)
1024273c00b8Smrg		cpu=armv7l
1025273c00b8Smrg		vendor=alt
1026273c00b8Smrg		basic_os=${basic_os:-linux-gnueabihf}
1027273c00b8Smrg		;;
10286c3c2bceSmrg	dpx20-unknown | dpx20-bull)
10296c3c2bceSmrg		cpu=rs6000
10306c3c2bceSmrg		vendor=bull
10310d22642bSmrg		basic_os=${basic_os:-bosx}
10327a0395d0Smrg		;;
10336c3c2bceSmrg
10346c3c2bceSmrg	# Here we normalize CPU types irrespective of the vendor
10356c3c2bceSmrg	amd64-*)
10366c3c2bceSmrg		cpu=x86_64
10377a0395d0Smrg		;;
10386c3c2bceSmrg	blackfin-*)
10396c3c2bceSmrg		cpu=bfin
10400d22642bSmrg		basic_os=linux
10417a0395d0Smrg		;;
10426c3c2bceSmrg	c54x-*)
10436c3c2bceSmrg		cpu=tic54x
10447a0395d0Smrg		;;
10456c3c2bceSmrg	c55x-*)
10466c3c2bceSmrg		cpu=tic55x
10477a0395d0Smrg		;;
10486c3c2bceSmrg	c6x-*)
10496c3c2bceSmrg		cpu=tic6x
10507a0395d0Smrg		;;
10516c3c2bceSmrg	e500v[12]-*)
10526c3c2bceSmrg		cpu=powerpc
10530d22642bSmrg		basic_os=${basic_os}"spe"
10547a0395d0Smrg		;;
10556c3c2bceSmrg	mips3*-*)
10566c3c2bceSmrg		cpu=mips64
10577a0395d0Smrg		;;
10586c3c2bceSmrg	ms1-*)
10596c3c2bceSmrg		cpu=mt
10607a0395d0Smrg		;;
10616c3c2bceSmrg	m68knommu-*)
10626c3c2bceSmrg		cpu=m68k
10630d22642bSmrg		basic_os=linux
10647a0395d0Smrg		;;
10656c3c2bceSmrg	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
10666c3c2bceSmrg		cpu=s12z
10677a0395d0Smrg		;;
10686c3c2bceSmrg	openrisc-*)
10696c3c2bceSmrg		cpu=or32
10707a0395d0Smrg		;;
10716c3c2bceSmrg	parisc-*)
10726c3c2bceSmrg		cpu=hppa
10730d22642bSmrg		basic_os=linux
10747a0395d0Smrg		;;
10756c3c2bceSmrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
10766c3c2bceSmrg		cpu=i586
10777a0395d0Smrg		;;
1078273c00b8Smrg	pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
10796c3c2bceSmrg		cpu=i686
10807a0395d0Smrg		;;
10816c3c2bceSmrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
10826c3c2bceSmrg		cpu=i686
10837a0395d0Smrg		;;
10846c3c2bceSmrg	pentium4-*)
10856c3c2bceSmrg		cpu=i786
10867a0395d0Smrg		;;
10876c3c2bceSmrg	pc98-*)
10886c3c2bceSmrg		cpu=i386
10897a0395d0Smrg		;;
10906c3c2bceSmrg	ppc-* | ppcbe-*)
10916c3c2bceSmrg		cpu=powerpc
10927a0395d0Smrg		;;
10936c3c2bceSmrg	ppcle-* | powerpclittle-*)
10946c3c2bceSmrg		cpu=powerpcle
10957a0395d0Smrg		;;
10966c3c2bceSmrg	ppc64-*)
10976c3c2bceSmrg		cpu=powerpc64
10987a0395d0Smrg		;;
10996c3c2bceSmrg	ppc64le-* | powerpc64little-*)
11006c3c2bceSmrg		cpu=powerpc64le
11018abc0ccfSmrg		;;
11026c3c2bceSmrg	sb1-*)
11036c3c2bceSmrg		cpu=mipsisa64sb1
11047a0395d0Smrg		;;
11056c3c2bceSmrg	sb1el-*)
11066c3c2bceSmrg		cpu=mipsisa64sb1el
11077a0395d0Smrg		;;
11086c3c2bceSmrg	sh5e[lb]-*)
1109273c00b8Smrg		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
11107366012aSmrg		;;
11116c3c2bceSmrg	spur-*)
11126c3c2bceSmrg		cpu=spur
11137a0395d0Smrg		;;
11146c3c2bceSmrg	strongarm-* | thumb-*)
11156c3c2bceSmrg		cpu=arm
11167a0395d0Smrg		;;
11176c3c2bceSmrg	tx39-*)
11186c3c2bceSmrg		cpu=mipstx39
11197a0395d0Smrg		;;
11206c3c2bceSmrg	tx39el-*)
11216c3c2bceSmrg		cpu=mipstx39el
11227a0395d0Smrg		;;
11236c3c2bceSmrg	x64-*)
11246c3c2bceSmrg		cpu=x86_64
11257a0395d0Smrg		;;
11266c3c2bceSmrg	xscale-* | xscalee[bl]-*)
1127273c00b8Smrg		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
11280d22642bSmrg		;;
1129273c00b8Smrg	arm64-* | aarch64le-*)
11300d22642bSmrg		cpu=aarch64
11317a0395d0Smrg		;;
11326c3c2bceSmrg
11330d22642bSmrg	# Recognize the canonical CPU Types that limit and/or modify the
11346c3c2bceSmrg	# company names they are paired with.
11356c3c2bceSmrg	cr16-*)
11360d22642bSmrg		basic_os=${basic_os:-elf}
11377a0395d0Smrg		;;
11386c3c2bceSmrg	crisv32-* | etraxfs*-*)
11396c3c2bceSmrg		cpu=crisv32
11406c3c2bceSmrg		vendor=axis
11417a0395d0Smrg		;;
11426c3c2bceSmrg	cris-* | etrax*-*)
11436c3c2bceSmrg		cpu=cris
11446c3c2bceSmrg		vendor=axis
11457a0395d0Smrg		;;
11466c3c2bceSmrg	crx-*)
11470d22642bSmrg		basic_os=${basic_os:-elf}
11487a0395d0Smrg		;;
11496c3c2bceSmrg	neo-tandem)
11506c3c2bceSmrg		cpu=neo
11516c3c2bceSmrg		vendor=tandem
11527a0395d0Smrg		;;
11536c3c2bceSmrg	nse-tandem)
11546c3c2bceSmrg		cpu=nse
11556c3c2bceSmrg		vendor=tandem
11567a0395d0Smrg		;;
11576c3c2bceSmrg	nsr-tandem)
11586c3c2bceSmrg		cpu=nsr
11596c3c2bceSmrg		vendor=tandem
11607a0395d0Smrg		;;
11616c3c2bceSmrg	nsv-tandem)
11626c3c2bceSmrg		cpu=nsv
11636c3c2bceSmrg		vendor=tandem
11647a0395d0Smrg		;;
11656c3c2bceSmrg	nsx-tandem)
11666c3c2bceSmrg		cpu=nsx
11676c3c2bceSmrg		vendor=tandem
11687a0395d0Smrg		;;
11690d22642bSmrg	mipsallegrexel-sony)
11700d22642bSmrg		cpu=mipsallegrexel
11710d22642bSmrg		vendor=sony
11727a0395d0Smrg		;;
11736c3c2bceSmrg	tile*-*)
11740d22642bSmrg		basic_os=${basic_os:-linux-gnu}
11757a0395d0Smrg		;;
11766c3c2bceSmrg
11777a0395d0Smrg	*)
11780d22642bSmrg		# Recognize the canonical CPU types that are allowed with any
11796c3c2bceSmrg		# company name.
11806c3c2bceSmrg		case $cpu in
11816c3c2bceSmrg			1750a | 580 \
11826c3c2bceSmrg			| a29k \
11836c3c2bceSmrg			| aarch64 | aarch64_be \
11846c3c2bceSmrg			| abacus \
11856c3c2bceSmrg			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
11866c3c2bceSmrg			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
11876c3c2bceSmrg			| alphapca5[67] | alpha64pca5[67] \
11886c3c2bceSmrg			| am33_2.0 \
11890d22642bSmrg			| amdgcn \
1190273c00b8Smrg			| arc | arceb | arc32 | arc64 \
11910d22642bSmrg			| arm | arm[lb]e | arme[lb] | armv* \
11926c3c2bceSmrg			| avr | avr32 \
11936c3c2bceSmrg			| asmjs \
11946c3c2bceSmrg			| ba \
11956c3c2bceSmrg			| be32 | be64 \
11960d22642bSmrg			| bfin | bpf | bs2000 \
11976c3c2bceSmrg			| c[123]* | c30 | [cjt]90 | c4x \
11986c3c2bceSmrg			| c8051 | clipper | craynv | csky | cydra \
1199273c00b8Smrg			| d10v | d30v | dlx | dsp16xx \
12006c3c2bceSmrg			| e2k | elxsi | epiphany \
12016c3c2bceSmrg			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
12026c3c2bceSmrg			| h8300 | h8500 \
12036c3c2bceSmrg			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
12046c3c2bceSmrg			| hexagon \
12056c3c2bceSmrg			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
12066c3c2bceSmrg			| ip2k | iq2000 \
12076c3c2bceSmrg			| k1om \
12086c3c2bceSmrg			| le32 | le64 \
12096c3c2bceSmrg			| lm32 \
1210273c00b8Smrg			| loongarch32 | loongarch64 \
12116c3c2bceSmrg			| m32c | m32r | m32rle \
12120d22642bSmrg			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
12130d22642bSmrg			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
12146c3c2bceSmrg			| m88110 | m88k | maxq | mb | mcore | mep | metag \
12156c3c2bceSmrg			| microblaze | microblazeel \
12166c3c2bceSmrg			| mips | mipsbe | mipseb | mipsel | mipsle \
12176c3c2bceSmrg			| mips16 \
12180d22642bSmrg			| mips64 | mips64eb | mips64el \
12196c3c2bceSmrg			| mips64octeon | mips64octeonel \
12206c3c2bceSmrg			| mips64orion | mips64orionel \
12216c3c2bceSmrg			| mips64r5900 | mips64r5900el \
12226c3c2bceSmrg			| mips64vr | mips64vrel \
12236c3c2bceSmrg			| mips64vr4100 | mips64vr4100el \
12246c3c2bceSmrg			| mips64vr4300 | mips64vr4300el \
12256c3c2bceSmrg			| mips64vr5000 | mips64vr5000el \
12266c3c2bceSmrg			| mips64vr5900 | mips64vr5900el \
12276c3c2bceSmrg			| mipsisa32 | mipsisa32el \
12286c3c2bceSmrg			| mipsisa32r2 | mipsisa32r2el \
1229273c00b8Smrg			| mipsisa32r3 | mipsisa32r3el \
1230273c00b8Smrg			| mipsisa32r5 | mipsisa32r5el \
12316c3c2bceSmrg			| mipsisa32r6 | mipsisa32r6el \
12326c3c2bceSmrg			| mipsisa64 | mipsisa64el \
12336c3c2bceSmrg			| mipsisa64r2 | mipsisa64r2el \
1234273c00b8Smrg			| mipsisa64r3 | mipsisa64r3el \
1235273c00b8Smrg			| mipsisa64r5 | mipsisa64r5el \
12366c3c2bceSmrg			| mipsisa64r6 | mipsisa64r6el \
12376c3c2bceSmrg			| mipsisa64sb1 | mipsisa64sb1el \
12386c3c2bceSmrg			| mipsisa64sr71k | mipsisa64sr71kel \
12396c3c2bceSmrg			| mipsr5900 | mipsr5900el \
12406c3c2bceSmrg			| mipstx39 | mipstx39el \
12416c3c2bceSmrg			| mmix \
12426c3c2bceSmrg			| mn10200 | mn10300 \
12436c3c2bceSmrg			| moxie \
12446c3c2bceSmrg			| mt \
12456c3c2bceSmrg			| msp430 \
12466c3c2bceSmrg			| nds32 | nds32le | nds32be \
12476c3c2bceSmrg			| nfp \
12486c3c2bceSmrg			| nios | nios2 | nios2eb | nios2el \
12490d22642bSmrg			| none | np1 | ns16k | ns32k | nvptx \
12506c3c2bceSmrg			| open8 \
12516c3c2bceSmrg			| or1k* \
12526c3c2bceSmrg			| or32 \
12536c3c2bceSmrg			| orion \
12540d22642bSmrg			| picochip \
12556c3c2bceSmrg			| pdp10 | pdp11 | pj | pjl | pn | power \
12566c3c2bceSmrg			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
12576c3c2bceSmrg			| pru \
12586c3c2bceSmrg			| pyramid \
1259765b7306Smrg			| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
12606c3c2bceSmrg			| rl78 | romp | rs6000 | rx \
12610d22642bSmrg			| s390 | s390x \
12626c3c2bceSmrg			| score \
12630d22642bSmrg			| sh | shl \
12640d22642bSmrg			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
12656c3c2bceSmrg			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
12666c3c2bceSmrg			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
12676c3c2bceSmrg			| sparclite \
12686c3c2bceSmrg			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
12696c3c2bceSmrg			| spu \
12706c3c2bceSmrg			| tahoe \
1271765b7306Smrg			| thumbv7* \
12726c3c2bceSmrg			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
12736c3c2bceSmrg			| tron \
12746c3c2bceSmrg			| ubicom32 \
12750d22642bSmrg			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
12766c3c2bceSmrg			| vax \
12776c3c2bceSmrg			| visium \
12780d22642bSmrg			| w65 \
12790d22642bSmrg			| wasm32 | wasm64 \
12806c3c2bceSmrg			| we32k \
12816c3c2bceSmrg			| x86 | x86_64 | xc16x | xgate | xps100 \
12826c3c2bceSmrg			| xstormy16 | xtensa* \
12836c3c2bceSmrg			| ymp \
12846c3c2bceSmrg			| z8k | z80)
12856c3c2bceSmrg				;;
12866c3c2bceSmrg
12876c3c2bceSmrg			*)
12886c3c2bceSmrg				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
12896c3c2bceSmrg				exit 1
12906c3c2bceSmrg				;;
12916c3c2bceSmrg		esac
12927a0395d0Smrg		;;
12937a0395d0Smrgesac
12947a0395d0Smrg
12957a0395d0Smrg# Here we canonicalize certain aliases for manufacturers.
12966c3c2bceSmrgcase $vendor in
12976c3c2bceSmrg	digital*)
12986c3c2bceSmrg		vendor=dec
12997a0395d0Smrg		;;
13006c3c2bceSmrg	commodore*)
13016c3c2bceSmrg		vendor=cbm
13027a0395d0Smrg		;;
13037a0395d0Smrg	*)
13047a0395d0Smrg		;;
13057a0395d0Smrgesac
13067a0395d0Smrg
13077a0395d0Smrg# Decode manufacturer-specific aliases for certain operating systems.
13087a0395d0Smrg
13090d22642bSmrgif test x$basic_os != x
13107a0395d0Smrgthen
13110d22642bSmrg
1312273c00b8Smrg# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
13130d22642bSmrg# set os.
13140d22642bSmrgcase $basic_os in
13150d22642bSmrg	gnu/linux*)
13160d22642bSmrg		kernel=linux
1317273c00b8Smrg		os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
13180d22642bSmrg		;;
13190d22642bSmrg	os2-emx)
13200d22642bSmrg		kernel=os2
1321273c00b8Smrg		os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
13220d22642bSmrg		;;
13230d22642bSmrg	nto-qnx*)
13240d22642bSmrg		kernel=nto
1325273c00b8Smrg		os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
13260d22642bSmrg		;;
13270d22642bSmrg	*-*)
13280d22642bSmrg		# shellcheck disable=SC2162
1329273c00b8Smrg		saved_IFS=$IFS
13300d22642bSmrg		IFS="-" read kernel os <<EOF
13310d22642bSmrg$basic_os
13320d22642bSmrgEOF
1333273c00b8Smrg		IFS=$saved_IFS
13340d22642bSmrg		;;
13350d22642bSmrg	# Default OS when just kernel was specified
13360d22642bSmrg	nto*)
13370d22642bSmrg		kernel=nto
1338273c00b8Smrg		os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
13390d22642bSmrg		;;
13400d22642bSmrg	linux*)
13410d22642bSmrg		kernel=linux
1342273c00b8Smrg		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
1343273c00b8Smrg		;;
1344273c00b8Smrg	managarm*)
1345273c00b8Smrg		kernel=managarm
1346273c00b8Smrg		os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
13470d22642bSmrg		;;
13480d22642bSmrg	*)
13490d22642bSmrg		kernel=
13500d22642bSmrg		os=$basic_os
13510d22642bSmrg		;;
13520d22642bSmrgesac
13530d22642bSmrg
13540d22642bSmrg# Now, normalize the OS (knowing we just have one component, it's not a kernel,
13550d22642bSmrg# etc.)
13567a0395d0Smrgcase $os in
13576c3c2bceSmrg	# First match some system type aliases that might get confused
13586c3c2bceSmrg	# with valid system types.
13596c3c2bceSmrg	# solaris* is a basic system type, with this one exception.
13606c3c2bceSmrg	auroraux)
13616c3c2bceSmrg		os=auroraux
13622adc0320Smrg		;;
13636c3c2bceSmrg	bluegene*)
13646c3c2bceSmrg		os=cnk
13657a0395d0Smrg		;;
13666c3c2bceSmrg	solaris1 | solaris1.*)
1367273c00b8Smrg		os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
13687a0395d0Smrg		;;
13696c3c2bceSmrg	solaris)
13706c3c2bceSmrg		os=solaris2
13717a0395d0Smrg		;;
13726c3c2bceSmrg	unixware*)
13736c3c2bceSmrg		os=sysv4.2uw
13747a0395d0Smrg		;;
13756c3c2bceSmrg	# es1800 is here to avoid being matched by es* (a different OS)
13766c3c2bceSmrg	es1800*)
13776c3c2bceSmrg		os=ose
13786c3c2bceSmrg		;;
13796c3c2bceSmrg	# Some version numbers need modification
13806c3c2bceSmrg	chorusos*)
13816c3c2bceSmrg		os=chorusos
13826c3c2bceSmrg		;;
13836c3c2bceSmrg	isc)
13846c3c2bceSmrg		os=isc2.2
13856c3c2bceSmrg		;;
13866c3c2bceSmrg	sco6)
13876c3c2bceSmrg		os=sco5v6
13886c3c2bceSmrg		;;
13896c3c2bceSmrg	sco5)
13906c3c2bceSmrg		os=sco3.2v5
13916c3c2bceSmrg		;;
13926c3c2bceSmrg	sco4)
13936c3c2bceSmrg		os=sco3.2v4
13946c3c2bceSmrg		;;
13956c3c2bceSmrg	sco3.2.[4-9]*)
1396273c00b8Smrg		os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
13976c3c2bceSmrg		;;
13980d22642bSmrg	sco*v* | scout)
13996c3c2bceSmrg		# Don't match below
14006c3c2bceSmrg		;;
14016c3c2bceSmrg	sco*)
14026c3c2bceSmrg		os=sco3.2v2
14036c3c2bceSmrg		;;
14046c3c2bceSmrg	psos*)
14056c3c2bceSmrg		os=psos
14066c3c2bceSmrg		;;
14076c3c2bceSmrg	qnx*)
14080d22642bSmrg		os=qnx
14097a0395d0Smrg		;;
14106c3c2bceSmrg	hiux*)
14116c3c2bceSmrg		os=hiuxwe2
14127a0395d0Smrg		;;
14136c3c2bceSmrg	lynx*178)
14146c3c2bceSmrg		os=lynxos178
14157a0395d0Smrg		;;
14166c3c2bceSmrg	lynx*5)
14176c3c2bceSmrg		os=lynxos5
14187a0395d0Smrg		;;
14190d22642bSmrg	lynxos*)
14200d22642bSmrg		# don't get caught up in next wildcard
14210d22642bSmrg		;;
14226c3c2bceSmrg	lynx*)
14236c3c2bceSmrg		os=lynxos
14247a0395d0Smrg		;;
14250d22642bSmrg	mac[0-9]*)
1426273c00b8Smrg		os=`echo "$os" | sed -e 's|mac|macos|'`
14277a0395d0Smrg		;;
14286c3c2bceSmrg	opened*)
14296c3c2bceSmrg		os=openedition
14307a0395d0Smrg		;;
14316c3c2bceSmrg	os400*)
14326c3c2bceSmrg		os=os400
14337a0395d0Smrg		;;
14346c3c2bceSmrg	sunos5*)
1435273c00b8Smrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
14367a0395d0Smrg		;;
14376c3c2bceSmrg	sunos6*)
1438273c00b8Smrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
14397a0395d0Smrg		;;
14406c3c2bceSmrg	wince*)
14416c3c2bceSmrg		os=wince
14427a0395d0Smrg		;;
14436c3c2bceSmrg	utek*)
14446c3c2bceSmrg		os=bsd
14457a0395d0Smrg		;;
14466c3c2bceSmrg	dynix*)
14476c3c2bceSmrg		os=bsd
14487a0395d0Smrg		;;
14496c3c2bceSmrg	acis*)
14506c3c2bceSmrg		os=aos
14517a0395d0Smrg		;;
14526c3c2bceSmrg	atheos*)
14536c3c2bceSmrg		os=atheos
14547a0395d0Smrg		;;
14556c3c2bceSmrg	syllable*)
14566c3c2bceSmrg		os=syllable
14577a0395d0Smrg		;;
14586c3c2bceSmrg	386bsd)
14596c3c2bceSmrg		os=bsd
14606c3c2bceSmrg		;;
14616c3c2bceSmrg	ctix* | uts*)
14626c3c2bceSmrg		os=sysv
14636c3c2bceSmrg		;;
14646c3c2bceSmrg	nova*)
14656c3c2bceSmrg		os=rtmk-nova
14667a0395d0Smrg		;;
14676c3c2bceSmrg	ns2)
14686c3c2bceSmrg		os=nextstep2
14697a0395d0Smrg		;;
14707a0395d0Smrg	# Preserve the version number of sinix5.
14716c3c2bceSmrg	sinix5.*)
1472273c00b8Smrg		os=`echo "$os" | sed -e 's|sinix|sysv|'`
14737a0395d0Smrg		;;
14746c3c2bceSmrg	sinix*)
14756c3c2bceSmrg		os=sysv4
14767a0395d0Smrg		;;
14776c3c2bceSmrg	tpf*)
14786c3c2bceSmrg		os=tpf
14797a0395d0Smrg		;;
14806c3c2bceSmrg	triton*)
14816c3c2bceSmrg		os=sysv3
14827a0395d0Smrg		;;
14836c3c2bceSmrg	oss*)
14846c3c2bceSmrg		os=sysv3
14857a0395d0Smrg		;;
14866c3c2bceSmrg	svr4*)
14876c3c2bceSmrg		os=sysv4
14887a0395d0Smrg		;;
14896c3c2bceSmrg	svr3)
14906c3c2bceSmrg		os=sysv3
14917a0395d0Smrg		;;
14926c3c2bceSmrg	sysvr4)
14936c3c2bceSmrg		os=sysv4
14947a0395d0Smrg		;;
14956c3c2bceSmrg	ose*)
14966c3c2bceSmrg		os=ose
14977a0395d0Smrg		;;
14986c3c2bceSmrg	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
14996c3c2bceSmrg		os=mint
15007a0395d0Smrg		;;
15016c3c2bceSmrg	dicos*)
15026c3c2bceSmrg		os=dicos
15037a0395d0Smrg		;;
15046c3c2bceSmrg	pikeos*)
15056c3c2bceSmrg		# Until real need of OS specific support for
15066c3c2bceSmrg		# particular features comes up, bare metal
15076c3c2bceSmrg		# configurations are quite functional.
15086c3c2bceSmrg		case $cpu in
15096c3c2bceSmrg		    arm*)
15106c3c2bceSmrg			os=eabi
15116c3c2bceSmrg			;;
15126c3c2bceSmrg		    *)
15136c3c2bceSmrg			os=elf
15146c3c2bceSmrg			;;
15156c3c2bceSmrg		esac
15167a0395d0Smrg		;;
15177a0395d0Smrg	*)
15180d22642bSmrg		# No normalization, but not necessarily accepted, that comes below.
15197a0395d0Smrg		;;
15207a0395d0Smrgesac
15210d22642bSmrg
15227a0395d0Smrgelse
15237a0395d0Smrg
15247a0395d0Smrg# Here we handle the default operating systems that come with various machines.
15257a0395d0Smrg# The value should be what the vendor currently ships out the door with their
15267a0395d0Smrg# machine or put another way, the most popular os provided with the machine.
15277a0395d0Smrg
15287a0395d0Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
15297a0395d0Smrg# "-sun"), then you have to tell the case statement up towards the top
15307a0395d0Smrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
15317a0395d0Smrg# will signal an error saying that MANUFACTURER isn't an operating
15327a0395d0Smrg# system, and we'll never get to this point.
15337a0395d0Smrg
15340d22642bSmrgkernel=
15356c3c2bceSmrgcase $cpu-$vendor in
15368abc0ccfSmrg	score-*)
15376c3c2bceSmrg		os=elf
15387a0395d0Smrg		;;
15398abc0ccfSmrg	spu-*)
15406c3c2bceSmrg		os=elf
15417a0395d0Smrg		;;
15427a0395d0Smrg	*-acorn)
15436c3c2bceSmrg		os=riscix1.2
15447a0395d0Smrg		;;
15457a0395d0Smrg	arm*-rebel)
15460d22642bSmrg		kernel=linux
15470d22642bSmrg		os=gnu
15487a0395d0Smrg		;;
15497a0395d0Smrg	arm*-semi)
15506c3c2bceSmrg		os=aout
15517a0395d0Smrg		;;
15528abc0ccfSmrg	c4x-* | tic4x-*)
15536c3c2bceSmrg		os=coff
15548abc0ccfSmrg		;;
155540c5344fSmrg	c8051-*)
15566c3c2bceSmrg		os=elf
15576c3c2bceSmrg		;;
15586c3c2bceSmrg	clipper-intergraph)
15596c3c2bceSmrg		os=clix
156040c5344fSmrg		;;
15618abc0ccfSmrg	hexagon-*)
15626c3c2bceSmrg		os=elf
15637a0395d0Smrg		;;
156496402570Smrg	tic54x-*)
15656c3c2bceSmrg		os=coff
156696402570Smrg		;;
156796402570Smrg	tic55x-*)
15686c3c2bceSmrg		os=coff
156996402570Smrg		;;
157096402570Smrg	tic6x-*)
15716c3c2bceSmrg		os=coff
157296402570Smrg		;;
15737a0395d0Smrg	# This must come before the *-dec entry.
15747a0395d0Smrg	pdp10-*)
15756c3c2bceSmrg		os=tops20
15767a0395d0Smrg		;;
15777a0395d0Smrg	pdp11-*)
15786c3c2bceSmrg		os=none
15797a0395d0Smrg		;;
15807a0395d0Smrg	*-dec | vax-*)
15816c3c2bceSmrg		os=ultrix4.2
15827a0395d0Smrg		;;
15837a0395d0Smrg	m68*-apollo)
15846c3c2bceSmrg		os=domain
15857a0395d0Smrg		;;
15867a0395d0Smrg	i386-sun)
15876c3c2bceSmrg		os=sunos4.0.2
15887a0395d0Smrg		;;
15897a0395d0Smrg	m68000-sun)
15906c3c2bceSmrg		os=sunos3
15917a0395d0Smrg		;;
15927a0395d0Smrg	m68*-cisco)
15936c3c2bceSmrg		os=aout
15947a0395d0Smrg		;;
15958abc0ccfSmrg	mep-*)
15966c3c2bceSmrg		os=elf
15977a0395d0Smrg		;;
15987a0395d0Smrg	mips*-cisco)
15996c3c2bceSmrg		os=elf
16007a0395d0Smrg		;;
16017a0395d0Smrg	mips*-*)
16026c3c2bceSmrg		os=elf
16037a0395d0Smrg		;;
16047a0395d0Smrg	or32-*)
16056c3c2bceSmrg		os=coff
16067a0395d0Smrg		;;
16077a0395d0Smrg	*-tti)	# must be before sparc entry or we get the wrong os.
16086c3c2bceSmrg		os=sysv3
16097a0395d0Smrg		;;
16107a0395d0Smrg	sparc-* | *-sun)
16116c3c2bceSmrg		os=sunos4.1.1
16127a0395d0Smrg		;;
16136c3c2bceSmrg	pru-*)
16146c3c2bceSmrg		os=elf
16157a0395d0Smrg		;;
16166c3c2bceSmrg	*-be)
16176c3c2bceSmrg		os=beos
16187a0395d0Smrg		;;
16197a0395d0Smrg	*-ibm)
16206c3c2bceSmrg		os=aix
16217a0395d0Smrg		;;
16228abc0ccfSmrg	*-knuth)
16236c3c2bceSmrg		os=mmixware
16247a0395d0Smrg		;;
16257a0395d0Smrg	*-wec)
16266c3c2bceSmrg		os=proelf
16277a0395d0Smrg		;;
16287a0395d0Smrg	*-winbond)
16296c3c2bceSmrg		os=proelf
16307a0395d0Smrg		;;
16317a0395d0Smrg	*-oki)
16326c3c2bceSmrg		os=proelf
16337a0395d0Smrg		;;
16347a0395d0Smrg	*-hp)
16356c3c2bceSmrg		os=hpux
16367a0395d0Smrg		;;
16377a0395d0Smrg	*-hitachi)
16386c3c2bceSmrg		os=hiux
16397a0395d0Smrg		;;
16407a0395d0Smrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
16416c3c2bceSmrg		os=sysv
16427a0395d0Smrg		;;
16437a0395d0Smrg	*-cbm)
16446c3c2bceSmrg		os=amigaos
16457a0395d0Smrg		;;
16467a0395d0Smrg	*-dg)
16476c3c2bceSmrg		os=dgux
16487a0395d0Smrg		;;
16497a0395d0Smrg	*-dolphin)
16506c3c2bceSmrg		os=sysv3
16517a0395d0Smrg		;;
16527a0395d0Smrg	m68k-ccur)
16536c3c2bceSmrg		os=rtu
16547a0395d0Smrg		;;
16557a0395d0Smrg	m88k-omron*)
16566c3c2bceSmrg		os=luna
16577a0395d0Smrg		;;
16586c3c2bceSmrg	*-next)
16596c3c2bceSmrg		os=nextstep
16607a0395d0Smrg		;;
16617a0395d0Smrg	*-sequent)
16626c3c2bceSmrg		os=ptx
16637a0395d0Smrg		;;
16647a0395d0Smrg	*-crds)
16656c3c2bceSmrg		os=unos
16667a0395d0Smrg		;;
16677a0395d0Smrg	*-ns)
16686c3c2bceSmrg		os=genix
16697a0395d0Smrg		;;
16707a0395d0Smrg	i370-*)
16716c3c2bceSmrg		os=mvs
16727a0395d0Smrg		;;
16737a0395d0Smrg	*-gould)
16746c3c2bceSmrg		os=sysv
16757a0395d0Smrg		;;
16767a0395d0Smrg	*-highlevel)
16776c3c2bceSmrg		os=bsd
16787a0395d0Smrg		;;
16797a0395d0Smrg	*-encore)
16806c3c2bceSmrg		os=bsd
16817a0395d0Smrg		;;
16827a0395d0Smrg	*-sgi)
16836c3c2bceSmrg		os=irix
16847a0395d0Smrg		;;
16857a0395d0Smrg	*-siemens)
16866c3c2bceSmrg		os=sysv4
16877a0395d0Smrg		;;
16887a0395d0Smrg	*-masscomp)
16896c3c2bceSmrg		os=rtu
16907a0395d0Smrg		;;
16917a0395d0Smrg	f30[01]-fujitsu | f700-fujitsu)
16926c3c2bceSmrg		os=uxpv
16937a0395d0Smrg		;;
16947a0395d0Smrg	*-rom68k)
16956c3c2bceSmrg		os=coff
16967a0395d0Smrg		;;
16977a0395d0Smrg	*-*bug)
16986c3c2bceSmrg		os=coff
16997a0395d0Smrg		;;
17007a0395d0Smrg	*-apple)
17016c3c2bceSmrg		os=macos
17027a0395d0Smrg		;;
17037a0395d0Smrg	*-atari*)
17046c3c2bceSmrg		os=mint
17056c3c2bceSmrg		;;
17066c3c2bceSmrg	*-wrs)
17076c3c2bceSmrg		os=vxworks
17087a0395d0Smrg		;;
17097a0395d0Smrg	*)
17106c3c2bceSmrg		os=none
17117a0395d0Smrg		;;
17127a0395d0Smrgesac
17130d22642bSmrg
17147a0395d0Smrgfi
17157a0395d0Smrg
17160d22642bSmrg# Now, validate our (potentially fixed-up) OS.
17170d22642bSmrgcase $os in
1718273c00b8Smrg	# Sometimes we do "kernel-libc", so those need to count as OSes.
1719273c00b8Smrg	musl* | newlib* | relibc* | uclibc*)
17200d22642bSmrg		;;
1721273c00b8Smrg	# Likewise for "kernel-abi"
1722765b7306Smrg	eabi* | gnueabi*)
17230d22642bSmrg		;;
1724273c00b8Smrg	# VxWorks passes extra cpu info in the 4th filed.
1725273c00b8Smrg	simlinux | simwindows | spe)
1726273c00b8Smrg		;;
17270d22642bSmrg	# Now accept the basic system types.
17280d22642bSmrg	# The portable systems comes first.
17290d22642bSmrg	# Each alternative MUST end in a * to match a version number.
17300d22642bSmrg	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
17310d22642bSmrg	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
17320d22642bSmrg	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
17330d22642bSmrg	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
17340d22642bSmrg	     | hiux* | abug | nacl* | netware* | windows* \
17350d22642bSmrg	     | os9* | macos* | osx* | ios* \
17360d22642bSmrg	     | mpw* | magic* | mmixware* | mon960* | lnews* \
17370d22642bSmrg	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
17380d22642bSmrg	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
17390d22642bSmrg	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
17400d22642bSmrg	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
17410d22642bSmrg	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
1742273c00b8Smrg	     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
17430d22642bSmrg	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
17440d22642bSmrg	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
17450d22642bSmrg	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
17460d22642bSmrg	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
1747273c00b8Smrg	     | chorusrdb* | cegcc* | glidix* | serenity* \
17480d22642bSmrg	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
17490d22642bSmrg	     | midipix* | mingw32* | mingw64* | mint* \
17500d22642bSmrg	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
17510d22642bSmrg	     | interix* | uwin* | mks* | rhapsody* | darwin* \
17520d22642bSmrg	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
1753273c00b8Smrg	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
17540d22642bSmrg	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
17550d22642bSmrg	     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
17560d22642bSmrg	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
17570d22642bSmrg	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
17580d22642bSmrg	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
17590d22642bSmrg	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
1760273c00b8Smrg	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
1761273c00b8Smrg	     | fiwix* | mlibc* )
17620d22642bSmrg		;;
17630d22642bSmrg	# This one is extra strict with allowed versions
17640d22642bSmrg	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
17650d22642bSmrg		# Don't forget version if it is 3.2v4 or newer.
17660d22642bSmrg		;;
17670d22642bSmrg	none)
17680d22642bSmrg		;;
1769273c00b8Smrg	kernel* )
1770273c00b8Smrg		# Restricted further below
1771273c00b8Smrg		;;
17720d22642bSmrg	*)
17730d22642bSmrg		echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
17740d22642bSmrg		exit 1
17750d22642bSmrg		;;
17760d22642bSmrgesac
17770d22642bSmrg
17780d22642bSmrg# As a final step for OS-related things, validate the OS-kernel combination
17790d22642bSmrg# (given a valid OS), if there is a kernel.
17800d22642bSmrgcase $kernel-$os in
1781273c00b8Smrg	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
1782273c00b8Smrg		   | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
17830d22642bSmrg		;;
17840d22642bSmrg	uclinux-uclibc* )
17850d22642bSmrg		;;
1786273c00b8Smrg	managarm-mlibc* | managarm-kernel* )
1787273c00b8Smrg		;;
1788273c00b8Smrg	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
17890d22642bSmrg		# These are just libc implementations, not actual OSes, and thus
17900d22642bSmrg		# require a kernel.
17910d22642bSmrg		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
17920d22642bSmrg		exit 1
17930d22642bSmrg		;;
1794273c00b8Smrg	-kernel* )
1795273c00b8Smrg		echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
1796273c00b8Smrg		exit 1
1797273c00b8Smrg		;;
1798273c00b8Smrg	*-kernel* )
1799273c00b8Smrg		echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
1800273c00b8Smrg		exit 1
1801273c00b8Smrg		;;
18020d22642bSmrg	kfreebsd*-gnu* | kopensolaris*-gnu*)
18030d22642bSmrg		;;
1804273c00b8Smrg	vxworks-simlinux | vxworks-simwindows | vxworks-spe)
1805273c00b8Smrg		;;
18060d22642bSmrg	nto-qnx*)
18070d22642bSmrg		;;
18080d22642bSmrg	os2-emx)
18090d22642bSmrg		;;
18100d22642bSmrg	*-eabi* | *-gnueabi*)
18110d22642bSmrg		;;
18120d22642bSmrg	-*)
18130d22642bSmrg		# Blank kernel with real OS is always fine.
18140d22642bSmrg		;;
18150d22642bSmrg	*-*)
18160d22642bSmrg		echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
18170d22642bSmrg		exit 1
18180d22642bSmrg		;;
18190d22642bSmrgesac
18200d22642bSmrg
18217a0395d0Smrg# Here we handle the case where we know the os, and the CPU type, but not the
18227a0395d0Smrg# manufacturer.  We pick the logical manufacturer.
18236c3c2bceSmrgcase $vendor in
18246c3c2bceSmrg	unknown)
18250d22642bSmrg		case $cpu-$os in
18260d22642bSmrg			*-riscix*)
18277a0395d0Smrg				vendor=acorn
18287a0395d0Smrg				;;
18290d22642bSmrg			*-sunos*)
18307a0395d0Smrg				vendor=sun
18317a0395d0Smrg				;;
18320d22642bSmrg			*-cnk* | *-aix*)
18337a0395d0Smrg				vendor=ibm
18347a0395d0Smrg				;;
18350d22642bSmrg			*-beos*)
18367a0395d0Smrg				vendor=be
18377a0395d0Smrg				;;
18380d22642bSmrg			*-hpux*)
18397a0395d0Smrg				vendor=hp
18407a0395d0Smrg				;;
18410d22642bSmrg			*-mpeix*)
18427a0395d0Smrg				vendor=hp
18437a0395d0Smrg				;;
18440d22642bSmrg			*-hiux*)
18457a0395d0Smrg				vendor=hitachi
18467a0395d0Smrg				;;
18470d22642bSmrg			*-unos*)
18487a0395d0Smrg				vendor=crds
18497a0395d0Smrg				;;
18500d22642bSmrg			*-dgux*)
18517a0395d0Smrg				vendor=dg
18527a0395d0Smrg				;;
18530d22642bSmrg			*-luna*)
18547a0395d0Smrg				vendor=omron
18557a0395d0Smrg				;;
18560d22642bSmrg			*-genix*)
18577a0395d0Smrg				vendor=ns
18587a0395d0Smrg				;;
18590d22642bSmrg			*-clix*)
18606c3c2bceSmrg				vendor=intergraph
18616c3c2bceSmrg				;;
18620d22642bSmrg			*-mvs* | *-opened*)
18630d22642bSmrg				vendor=ibm
18640d22642bSmrg				;;
18650d22642bSmrg			*-os400*)
18667a0395d0Smrg				vendor=ibm
18677a0395d0Smrg				;;
18680d22642bSmrg			s390-* | s390x-*)
18697a0395d0Smrg				vendor=ibm
18707a0395d0Smrg				;;
18710d22642bSmrg			*-ptx*)
18727a0395d0Smrg				vendor=sequent
18737a0395d0Smrg				;;
18740d22642bSmrg			*-tpf*)
18757a0395d0Smrg				vendor=ibm
18767a0395d0Smrg				;;
18770d22642bSmrg			*-vxsim* | *-vxworks* | *-windiss*)
18787a0395d0Smrg				vendor=wrs
18797a0395d0Smrg				;;
18800d22642bSmrg			*-aux*)
18817a0395d0Smrg				vendor=apple
18827a0395d0Smrg				;;
18830d22642bSmrg			*-hms*)
18847a0395d0Smrg				vendor=hitachi
18857a0395d0Smrg				;;
18860d22642bSmrg			*-mpw* | *-macos*)
18877a0395d0Smrg				vendor=apple
18887a0395d0Smrg				;;
18890d22642bSmrg			*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
18907a0395d0Smrg				vendor=atari
18917a0395d0Smrg				;;
18920d22642bSmrg			*-vos*)
18937a0395d0Smrg				vendor=stratus
18947a0395d0Smrg				;;
18957a0395d0Smrg		esac
18967a0395d0Smrg		;;
18977a0395d0Smrgesac
18987a0395d0Smrg
18990d22642bSmrgecho "$cpu-$vendor-${kernel:+$kernel-}$os"
19007a0395d0Smrgexit
19017a0395d0Smrg
19027a0395d0Smrg# Local variables:
19036c3c2bceSmrg# eval: (add-hook 'before-save-hook 'time-stamp)
19047a0395d0Smrg# time-stamp-start: "timestamp='"
19057a0395d0Smrg# time-stamp-format: "%:y-%02m-%02d"
19067a0395d0Smrg# time-stamp-end: "'"
19077a0395d0Smrg# End:
1908