config.sub revision 6c19a6d3
10ad07f78Smrg#! /bin/sh
20ad07f78Smrg# Configuration validation subroutine script.
36c19a6d3Smrg#   Copyright 1992-2023 Free Software Foundation, Inc.
40ad07f78Smrg
56c19a6d3Smrg# shellcheck disable=SC2006,SC2268 # see below for rationale
60ad07f78Smrg
76c19a6d3Smrgtimestamp='2023-01-21'
86c19a6d3Smrg
96c19a6d3Smrg# This file is free software; you can redistribute it and/or modify it
106c19a6d3Smrg# under the terms of the GNU General Public License as published by
116c19a6d3Smrg# the Free Software Foundation, either version 3 of the License, or
120ad07f78Smrg# (at your option) any later version.
130ad07f78Smrg#
146c19a6d3Smrg# This program is distributed in the hope that it will be useful, but
156c19a6d3Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
166c19a6d3Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
176c19a6d3Smrg# General Public License for more details.
180ad07f78Smrg#
190ad07f78Smrg# You should have received a copy of the GNU General Public License
206c19a6d3Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
210ad07f78Smrg#
220ad07f78Smrg# As a special exception to the GNU General Public License, if you
230ad07f78Smrg# distribute this file as part of a program that contains a
240ad07f78Smrg# configuration script generated by Autoconf, you may include it under
256c19a6d3Smrg# the same distribution terms that you use for the rest of that
266c19a6d3Smrg# program.  This Exception is an additional permission under section 7
276c19a6d3Smrg# of the GNU General Public License, version 3 ("GPLv3").
280ad07f78Smrg
290ad07f78Smrg
306c19a6d3Smrg# Please send patches to <config-patches@gnu.org>.
310ad07f78Smrg#
320ad07f78Smrg# Configuration subroutine to validate and canonicalize a configuration type.
330ad07f78Smrg# Supply the specified configuration type as an argument.
340ad07f78Smrg# If it is invalid, we print an error message on stderr and exit with code 1.
350ad07f78Smrg# Otherwise, we print the canonical config type on stdout and succeed.
360ad07f78Smrg
374028d71eSmrg# You can get the latest version of this script from:
386c19a6d3Smrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
394028d71eSmrg
400ad07f78Smrg# This file is supposed to be the same for all GNU packages
410ad07f78Smrg# and recognize all the CPU types, system types and aliases
420ad07f78Smrg# that are meaningful with *any* GNU software.
430ad07f78Smrg# Each package is responsible for reporting which valid configurations
440ad07f78Smrg# it does not support.  The user should be able to distinguish
450ad07f78Smrg# a failure to support a valid configuration from a meaningless
460ad07f78Smrg# configuration.
470ad07f78Smrg
480ad07f78Smrg# The goal of this file is to map all the various variations of a given
490ad07f78Smrg# machine specification into a single specification in the form:
500ad07f78Smrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
510ad07f78Smrg# or in some cases, the newer four-part form:
520ad07f78Smrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
530ad07f78Smrg# It is wrong to echo any other type of specification.
540ad07f78Smrg
556c19a6d3Smrg# The "shellcheck disable" line above the timestamp inhibits complaints
566c19a6d3Smrg# about features and limitations of the classic Bourne shell that were
576c19a6d3Smrg# superseded or lifted in POSIX.  However, this script identifies a wide
586c19a6d3Smrg# variety of pre-POSIX systems that do not have POSIX shells at all, and
596c19a6d3Smrg# even some reasonably current systems (Solaris 10 as case-in-point) still
606c19a6d3Smrg# have a pre-POSIX /bin/sh.
616c19a6d3Smrg
620ad07f78Smrgme=`echo "$0" | sed -e 's,.*/,,'`
630ad07f78Smrg
640ad07f78Smrgusage="\
656c19a6d3SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
660ad07f78Smrg
670ad07f78SmrgCanonicalize a configuration name.
680ad07f78Smrg
696c19a6d3SmrgOptions:
700ad07f78Smrg  -h, --help         print this help, then exit
710ad07f78Smrg  -t, --time-stamp   print date of last modification, then exit
720ad07f78Smrg  -v, --version      print version number, then exit
730ad07f78Smrg
740ad07f78SmrgReport bugs and patches to <config-patches@gnu.org>."
750ad07f78Smrg
760ad07f78Smrgversion="\
770ad07f78SmrgGNU config.sub ($timestamp)
780ad07f78Smrg
796c19a6d3SmrgCopyright 1992-2023 Free Software Foundation, Inc.
800ad07f78Smrg
810ad07f78SmrgThis is free software; see the source for copying conditions.  There is NO
820ad07f78Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
830ad07f78Smrg
840ad07f78Smrghelp="
850ad07f78SmrgTry \`$me --help' for more information."
860ad07f78Smrg
870ad07f78Smrg# Parse command line
880ad07f78Smrgwhile test $# -gt 0 ; do
890ad07f78Smrg  case $1 in
900ad07f78Smrg    --time-stamp | --time* | -t )
910ad07f78Smrg       echo "$timestamp" ; exit ;;
920ad07f78Smrg    --version | -v )
930ad07f78Smrg       echo "$version" ; exit ;;
940ad07f78Smrg    --help | --h* | -h )
950ad07f78Smrg       echo "$usage"; exit ;;
960ad07f78Smrg    -- )     # Stop option processing
970ad07f78Smrg       shift; break ;;
980ad07f78Smrg    - )	# Use stdin as input.
990ad07f78Smrg       break ;;
1000ad07f78Smrg    -* )
1016c19a6d3Smrg       echo "$me: invalid option $1$help" >&2
1020ad07f78Smrg       exit 1 ;;
1030ad07f78Smrg
1040ad07f78Smrg    *local*)
1050ad07f78Smrg       # First pass through any local machine types.
1066c19a6d3Smrg       echo "$1"
1070ad07f78Smrg       exit ;;
1080ad07f78Smrg
1090ad07f78Smrg    * )
1100ad07f78Smrg       break ;;
1110ad07f78Smrg  esac
1120ad07f78Smrgdone
1130ad07f78Smrg
1140ad07f78Smrgcase $# in
1150ad07f78Smrg 0) echo "$me: missing argument$help" >&2
1160ad07f78Smrg    exit 1;;
1170ad07f78Smrg 1) ;;
1180ad07f78Smrg *) echo "$me: too many arguments$help" >&2
1190ad07f78Smrg    exit 1;;
1200ad07f78Smrgesac
1210ad07f78Smrg
1226c19a6d3Smrg# Split fields of configuration type
1236c19a6d3Smrg# shellcheck disable=SC2162
1246c19a6d3Smrgsaved_IFS=$IFS
1256c19a6d3SmrgIFS="-" read field1 field2 field3 field4 <<EOF
1266c19a6d3Smrg$1
1276c19a6d3SmrgEOF
1286c19a6d3SmrgIFS=$saved_IFS
1290ad07f78Smrg
1306c19a6d3Smrg# Separate into logical components for further validation
1316c19a6d3Smrgcase $1 in
1326c19a6d3Smrg	*-*-*-*-*)
1336c19a6d3Smrg		echo Invalid configuration \`"$1"\': more than four components >&2
1346c19a6d3Smrg		exit 1
1350ad07f78Smrg		;;
1366c19a6d3Smrg	*-*-*-*)
1376c19a6d3Smrg		basic_machine=$field1-$field2
1386c19a6d3Smrg		basic_os=$field3-$field4
1390ad07f78Smrg		;;
1406c19a6d3Smrg	*-*-*)
1416c19a6d3Smrg		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
1426c19a6d3Smrg		# parts
1436c19a6d3Smrg		maybe_os=$field2-$field3
1446c19a6d3Smrg		case $maybe_os in
1456c19a6d3Smrg			nto-qnx* | linux-* | uclinux-uclibc* \
1466c19a6d3Smrg			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
1476c19a6d3Smrg			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
1486c19a6d3Smrg			| storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
1496c19a6d3Smrg				basic_machine=$field1
1506c19a6d3Smrg				basic_os=$maybe_os
1516c19a6d3Smrg				;;
1526c19a6d3Smrg			android-linux)
1536c19a6d3Smrg				basic_machine=$field1-unknown
1546c19a6d3Smrg				basic_os=linux-android
1556c19a6d3Smrg				;;
1566c19a6d3Smrg			*)
1576c19a6d3Smrg				basic_machine=$field1-$field2
1586c19a6d3Smrg				basic_os=$field3
1596c19a6d3Smrg				;;
1606c19a6d3Smrg		esac
1610ad07f78Smrg		;;
1626c19a6d3Smrg	*-*)
1636c19a6d3Smrg		# A lone config we happen to match not fitting any pattern
1646c19a6d3Smrg		case $field1-$field2 in
1656c19a6d3Smrg			decstation-3100)
1666c19a6d3Smrg				basic_machine=mips-dec
1676c19a6d3Smrg				basic_os=
1686c19a6d3Smrg				;;
1696c19a6d3Smrg			*-*)
1706c19a6d3Smrg				# Second component is usually, but not always the OS
1716c19a6d3Smrg				case $field2 in
1726c19a6d3Smrg					# Prevent following clause from handling this valid os
1736c19a6d3Smrg					sun*os*)
1746c19a6d3Smrg						basic_machine=$field1
1756c19a6d3Smrg						basic_os=$field2
1766c19a6d3Smrg						;;
1776c19a6d3Smrg					zephyr*)
1786c19a6d3Smrg						basic_machine=$field1-unknown
1796c19a6d3Smrg						basic_os=$field2
1806c19a6d3Smrg						;;
1816c19a6d3Smrg					# Manufacturers
1826c19a6d3Smrg					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
1836c19a6d3Smrg					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
1846c19a6d3Smrg					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
1856c19a6d3Smrg					| convergent* | ncr* | news | 32* | 3600* | 3100* \
1866c19a6d3Smrg					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
1876c19a6d3Smrg					| ultra | tti* | harris | dolphin | highlevel | gould \
1886c19a6d3Smrg					| cbm | ns | masscomp | apple | axis | knuth | cray \
1896c19a6d3Smrg					| microblaze* | sim | cisco \
1906c19a6d3Smrg					| oki | wec | wrs | winbond)
1916c19a6d3Smrg						basic_machine=$field1-$field2
1926c19a6d3Smrg						basic_os=
1936c19a6d3Smrg						;;
1946c19a6d3Smrg					*)
1956c19a6d3Smrg						basic_machine=$field1
1966c19a6d3Smrg						basic_os=$field2
1976c19a6d3Smrg						;;
1986c19a6d3Smrg				esac
1996c19a6d3Smrg			;;
2006c19a6d3Smrg		esac
2010ad07f78Smrg		;;
2026c19a6d3Smrg	*)
2036c19a6d3Smrg		# Convert single-component short-hands not valid as part of
2046c19a6d3Smrg		# multi-component configurations.
2056c19a6d3Smrg		case $field1 in
2066c19a6d3Smrg			386bsd)
2076c19a6d3Smrg				basic_machine=i386-pc
2086c19a6d3Smrg				basic_os=bsd
2096c19a6d3Smrg				;;
2106c19a6d3Smrg			a29khif)
2116c19a6d3Smrg				basic_machine=a29k-amd
2126c19a6d3Smrg				basic_os=udi
2136c19a6d3Smrg				;;
2146c19a6d3Smrg			adobe68k)
2156c19a6d3Smrg				basic_machine=m68010-adobe
2166c19a6d3Smrg				basic_os=scout
2176c19a6d3Smrg				;;
2186c19a6d3Smrg			alliant)
2196c19a6d3Smrg				basic_machine=fx80-alliant
2206c19a6d3Smrg				basic_os=
2216c19a6d3Smrg				;;
2226c19a6d3Smrg			altos | altos3068)
2236c19a6d3Smrg				basic_machine=m68k-altos
2246c19a6d3Smrg				basic_os=
2256c19a6d3Smrg				;;
2266c19a6d3Smrg			am29k)
2276c19a6d3Smrg				basic_machine=a29k-none
2286c19a6d3Smrg				basic_os=bsd
2296c19a6d3Smrg				;;
2306c19a6d3Smrg			amdahl)
2316c19a6d3Smrg				basic_machine=580-amdahl
2326c19a6d3Smrg				basic_os=sysv
2336c19a6d3Smrg				;;
2346c19a6d3Smrg			amiga)
2356c19a6d3Smrg				basic_machine=m68k-unknown
2366c19a6d3Smrg				basic_os=
2376c19a6d3Smrg				;;
2386c19a6d3Smrg			amigaos | amigados)
2396c19a6d3Smrg				basic_machine=m68k-unknown
2406c19a6d3Smrg				basic_os=amigaos
2416c19a6d3Smrg				;;
2426c19a6d3Smrg			amigaunix | amix)
2436c19a6d3Smrg				basic_machine=m68k-unknown
2446c19a6d3Smrg				basic_os=sysv4
2456c19a6d3Smrg				;;
2466c19a6d3Smrg			apollo68)
2476c19a6d3Smrg				basic_machine=m68k-apollo
2486c19a6d3Smrg				basic_os=sysv
2496c19a6d3Smrg				;;
2506c19a6d3Smrg			apollo68bsd)
2516c19a6d3Smrg				basic_machine=m68k-apollo
2526c19a6d3Smrg				basic_os=bsd
2536c19a6d3Smrg				;;
2546c19a6d3Smrg			aros)
2556c19a6d3Smrg				basic_machine=i386-pc
2566c19a6d3Smrg				basic_os=aros
2576c19a6d3Smrg				;;
2586c19a6d3Smrg			aux)
2596c19a6d3Smrg				basic_machine=m68k-apple
2606c19a6d3Smrg				basic_os=aux
2616c19a6d3Smrg				;;
2626c19a6d3Smrg			balance)
2636c19a6d3Smrg				basic_machine=ns32k-sequent
2646c19a6d3Smrg				basic_os=dynix
2656c19a6d3Smrg				;;
2666c19a6d3Smrg			blackfin)
2676c19a6d3Smrg				basic_machine=bfin-unknown
2686c19a6d3Smrg				basic_os=linux
2696c19a6d3Smrg				;;
2706c19a6d3Smrg			cegcc)
2716c19a6d3Smrg				basic_machine=arm-unknown
2726c19a6d3Smrg				basic_os=cegcc
2736c19a6d3Smrg				;;
2746c19a6d3Smrg			convex-c1)
2756c19a6d3Smrg				basic_machine=c1-convex
2766c19a6d3Smrg				basic_os=bsd
2776c19a6d3Smrg				;;
2786c19a6d3Smrg			convex-c2)
2796c19a6d3Smrg				basic_machine=c2-convex
2806c19a6d3Smrg				basic_os=bsd
2816c19a6d3Smrg				;;
2826c19a6d3Smrg			convex-c32)
2836c19a6d3Smrg				basic_machine=c32-convex
2846c19a6d3Smrg				basic_os=bsd
2856c19a6d3Smrg				;;
2866c19a6d3Smrg			convex-c34)
2876c19a6d3Smrg				basic_machine=c34-convex
2886c19a6d3Smrg				basic_os=bsd
2896c19a6d3Smrg				;;
2906c19a6d3Smrg			convex-c38)
2916c19a6d3Smrg				basic_machine=c38-convex
2926c19a6d3Smrg				basic_os=bsd
2936c19a6d3Smrg				;;
2946c19a6d3Smrg			cray)
2956c19a6d3Smrg				basic_machine=j90-cray
2966c19a6d3Smrg				basic_os=unicos
2976c19a6d3Smrg				;;
2986c19a6d3Smrg			crds | unos)
2996c19a6d3Smrg				basic_machine=m68k-crds
3006c19a6d3Smrg				basic_os=
3016c19a6d3Smrg				;;
3026c19a6d3Smrg			da30)
3036c19a6d3Smrg				basic_machine=m68k-da30
3046c19a6d3Smrg				basic_os=
3056c19a6d3Smrg				;;
3066c19a6d3Smrg			decstation | pmax | pmin | dec3100 | decstatn)
3076c19a6d3Smrg				basic_machine=mips-dec
3086c19a6d3Smrg				basic_os=
3096c19a6d3Smrg				;;
3106c19a6d3Smrg			delta88)
3116c19a6d3Smrg				basic_machine=m88k-motorola
3126c19a6d3Smrg				basic_os=sysv3
3136c19a6d3Smrg				;;
3146c19a6d3Smrg			dicos)
3156c19a6d3Smrg				basic_machine=i686-pc
3166c19a6d3Smrg				basic_os=dicos
3176c19a6d3Smrg				;;
3186c19a6d3Smrg			djgpp)
3196c19a6d3Smrg				basic_machine=i586-pc
3206c19a6d3Smrg				basic_os=msdosdjgpp
3216c19a6d3Smrg				;;
3226c19a6d3Smrg			ebmon29k)
3236c19a6d3Smrg				basic_machine=a29k-amd
3246c19a6d3Smrg				basic_os=ebmon
3256c19a6d3Smrg				;;
3266c19a6d3Smrg			es1800 | OSE68k | ose68k | ose | OSE)
3276c19a6d3Smrg				basic_machine=m68k-ericsson
3286c19a6d3Smrg				basic_os=ose
3296c19a6d3Smrg				;;
3306c19a6d3Smrg			gmicro)
3316c19a6d3Smrg				basic_machine=tron-gmicro
3326c19a6d3Smrg				basic_os=sysv
3336c19a6d3Smrg				;;
3346c19a6d3Smrg			go32)
3356c19a6d3Smrg				basic_machine=i386-pc
3366c19a6d3Smrg				basic_os=go32
3376c19a6d3Smrg				;;
3386c19a6d3Smrg			h8300hms)
3396c19a6d3Smrg				basic_machine=h8300-hitachi
3406c19a6d3Smrg				basic_os=hms
3416c19a6d3Smrg				;;
3426c19a6d3Smrg			h8300xray)
3436c19a6d3Smrg				basic_machine=h8300-hitachi
3446c19a6d3Smrg				basic_os=xray
3456c19a6d3Smrg				;;
3466c19a6d3Smrg			h8500hms)
3476c19a6d3Smrg				basic_machine=h8500-hitachi
3486c19a6d3Smrg				basic_os=hms
3496c19a6d3Smrg				;;
3506c19a6d3Smrg			harris)
3516c19a6d3Smrg				basic_machine=m88k-harris
3526c19a6d3Smrg				basic_os=sysv3
3536c19a6d3Smrg				;;
3546c19a6d3Smrg			hp300 | hp300hpux)
3556c19a6d3Smrg				basic_machine=m68k-hp
3566c19a6d3Smrg				basic_os=hpux
3576c19a6d3Smrg				;;
3586c19a6d3Smrg			hp300bsd)
3596c19a6d3Smrg				basic_machine=m68k-hp
3606c19a6d3Smrg				basic_os=bsd
3616c19a6d3Smrg				;;
3626c19a6d3Smrg			hppaosf)
3636c19a6d3Smrg				basic_machine=hppa1.1-hp
3646c19a6d3Smrg				basic_os=osf
3656c19a6d3Smrg				;;
3666c19a6d3Smrg			hppro)
3676c19a6d3Smrg				basic_machine=hppa1.1-hp
3686c19a6d3Smrg				basic_os=proelf
3696c19a6d3Smrg				;;
3706c19a6d3Smrg			i386mach)
3716c19a6d3Smrg				basic_machine=i386-mach
3726c19a6d3Smrg				basic_os=mach
3736c19a6d3Smrg				;;
3746c19a6d3Smrg			isi68 | isi)
3756c19a6d3Smrg				basic_machine=m68k-isi
3766c19a6d3Smrg				basic_os=sysv
3776c19a6d3Smrg				;;
3786c19a6d3Smrg			m68knommu)
3796c19a6d3Smrg				basic_machine=m68k-unknown
3806c19a6d3Smrg				basic_os=linux
3816c19a6d3Smrg				;;
3826c19a6d3Smrg			magnum | m3230)
3836c19a6d3Smrg				basic_machine=mips-mips
3846c19a6d3Smrg				basic_os=sysv
3856c19a6d3Smrg				;;
3866c19a6d3Smrg			merlin)
3876c19a6d3Smrg				basic_machine=ns32k-utek
3886c19a6d3Smrg				basic_os=sysv
3896c19a6d3Smrg				;;
3906c19a6d3Smrg			mingw64)
3916c19a6d3Smrg				basic_machine=x86_64-pc
3926c19a6d3Smrg				basic_os=mingw64
3936c19a6d3Smrg				;;
3946c19a6d3Smrg			mingw32)
3956c19a6d3Smrg				basic_machine=i686-pc
3966c19a6d3Smrg				basic_os=mingw32
3976c19a6d3Smrg				;;
3986c19a6d3Smrg			mingw32ce)
3996c19a6d3Smrg				basic_machine=arm-unknown
4006c19a6d3Smrg				basic_os=mingw32ce
4016c19a6d3Smrg				;;
4026c19a6d3Smrg			monitor)
4036c19a6d3Smrg				basic_machine=m68k-rom68k
4046c19a6d3Smrg				basic_os=coff
4056c19a6d3Smrg				;;
4066c19a6d3Smrg			morphos)
4076c19a6d3Smrg				basic_machine=powerpc-unknown
4086c19a6d3Smrg				basic_os=morphos
4096c19a6d3Smrg				;;
4106c19a6d3Smrg			moxiebox)
4116c19a6d3Smrg				basic_machine=moxie-unknown
4126c19a6d3Smrg				basic_os=moxiebox
4136c19a6d3Smrg				;;
4146c19a6d3Smrg			msdos)
4156c19a6d3Smrg				basic_machine=i386-pc
4166c19a6d3Smrg				basic_os=msdos
4176c19a6d3Smrg				;;
4186c19a6d3Smrg			msys)
4196c19a6d3Smrg				basic_machine=i686-pc
4206c19a6d3Smrg				basic_os=msys
4216c19a6d3Smrg				;;
4226c19a6d3Smrg			mvs)
4236c19a6d3Smrg				basic_machine=i370-ibm
4246c19a6d3Smrg				basic_os=mvs
4256c19a6d3Smrg				;;
4266c19a6d3Smrg			nacl)
4276c19a6d3Smrg				basic_machine=le32-unknown
4286c19a6d3Smrg				basic_os=nacl
4296c19a6d3Smrg				;;
4306c19a6d3Smrg			ncr3000)
4316c19a6d3Smrg				basic_machine=i486-ncr
4326c19a6d3Smrg				basic_os=sysv4
4336c19a6d3Smrg				;;
4346c19a6d3Smrg			netbsd386)
4356c19a6d3Smrg				basic_machine=i386-pc
4366c19a6d3Smrg				basic_os=netbsd
4376c19a6d3Smrg				;;
4386c19a6d3Smrg			netwinder)
4396c19a6d3Smrg				basic_machine=armv4l-rebel
4406c19a6d3Smrg				basic_os=linux
4416c19a6d3Smrg				;;
4426c19a6d3Smrg			news | news700 | news800 | news900)
4436c19a6d3Smrg				basic_machine=m68k-sony
4446c19a6d3Smrg				basic_os=newsos
4456c19a6d3Smrg				;;
4466c19a6d3Smrg			news1000)
4476c19a6d3Smrg				basic_machine=m68030-sony
4486c19a6d3Smrg				basic_os=newsos
4496c19a6d3Smrg				;;
4506c19a6d3Smrg			necv70)
4516c19a6d3Smrg				basic_machine=v70-nec
4526c19a6d3Smrg				basic_os=sysv
4536c19a6d3Smrg				;;
4546c19a6d3Smrg			nh3000)
4556c19a6d3Smrg				basic_machine=m68k-harris
4566c19a6d3Smrg				basic_os=cxux
4576c19a6d3Smrg				;;
4586c19a6d3Smrg			nh[45]000)
4596c19a6d3Smrg				basic_machine=m88k-harris
4606c19a6d3Smrg				basic_os=cxux
4616c19a6d3Smrg				;;
4626c19a6d3Smrg			nindy960)
4636c19a6d3Smrg				basic_machine=i960-intel
4646c19a6d3Smrg				basic_os=nindy
4656c19a6d3Smrg				;;
4666c19a6d3Smrg			mon960)
4676c19a6d3Smrg				basic_machine=i960-intel
4686c19a6d3Smrg				basic_os=mon960
4696c19a6d3Smrg				;;
4706c19a6d3Smrg			nonstopux)
4716c19a6d3Smrg				basic_machine=mips-compaq
4726c19a6d3Smrg				basic_os=nonstopux
4736c19a6d3Smrg				;;
4746c19a6d3Smrg			os400)
4756c19a6d3Smrg				basic_machine=powerpc-ibm
4766c19a6d3Smrg				basic_os=os400
4776c19a6d3Smrg				;;
4786c19a6d3Smrg			OSE68000 | ose68000)
4796c19a6d3Smrg				basic_machine=m68000-ericsson
4806c19a6d3Smrg				basic_os=ose
4816c19a6d3Smrg				;;
4826c19a6d3Smrg			os68k)
4836c19a6d3Smrg				basic_machine=m68k-none
4846c19a6d3Smrg				basic_os=os68k
4856c19a6d3Smrg				;;
4866c19a6d3Smrg			paragon)
4876c19a6d3Smrg				basic_machine=i860-intel
4886c19a6d3Smrg				basic_os=osf
4896c19a6d3Smrg				;;
4906c19a6d3Smrg			parisc)
4916c19a6d3Smrg				basic_machine=hppa-unknown
4926c19a6d3Smrg				basic_os=linux
4936c19a6d3Smrg				;;
4946c19a6d3Smrg			psp)
4956c19a6d3Smrg				basic_machine=mipsallegrexel-sony
4966c19a6d3Smrg				basic_os=psp
4976c19a6d3Smrg				;;
4986c19a6d3Smrg			pw32)
4996c19a6d3Smrg				basic_machine=i586-unknown
5006c19a6d3Smrg				basic_os=pw32
5016c19a6d3Smrg				;;
5026c19a6d3Smrg			rdos | rdos64)
5036c19a6d3Smrg				basic_machine=x86_64-pc
5046c19a6d3Smrg				basic_os=rdos
5056c19a6d3Smrg				;;
5066c19a6d3Smrg			rdos32)
5076c19a6d3Smrg				basic_machine=i386-pc
5086c19a6d3Smrg				basic_os=rdos
5096c19a6d3Smrg				;;
5106c19a6d3Smrg			rom68k)
5116c19a6d3Smrg				basic_machine=m68k-rom68k
5126c19a6d3Smrg				basic_os=coff
5136c19a6d3Smrg				;;
5146c19a6d3Smrg			sa29200)
5156c19a6d3Smrg				basic_machine=a29k-amd
5166c19a6d3Smrg				basic_os=udi
5176c19a6d3Smrg				;;
5186c19a6d3Smrg			sei)
5196c19a6d3Smrg				basic_machine=mips-sei
5206c19a6d3Smrg				basic_os=seiux
5216c19a6d3Smrg				;;
5226c19a6d3Smrg			sequent)
5236c19a6d3Smrg				basic_machine=i386-sequent
5246c19a6d3Smrg				basic_os=
5256c19a6d3Smrg				;;
5266c19a6d3Smrg			sps7)
5276c19a6d3Smrg				basic_machine=m68k-bull
5286c19a6d3Smrg				basic_os=sysv2
5296c19a6d3Smrg				;;
5306c19a6d3Smrg			st2000)
5316c19a6d3Smrg				basic_machine=m68k-tandem
5326c19a6d3Smrg				basic_os=
5336c19a6d3Smrg				;;
5346c19a6d3Smrg			stratus)
5356c19a6d3Smrg				basic_machine=i860-stratus
5366c19a6d3Smrg				basic_os=sysv4
5376c19a6d3Smrg				;;
5386c19a6d3Smrg			sun2)
5396c19a6d3Smrg				basic_machine=m68000-sun
5406c19a6d3Smrg				basic_os=
5416c19a6d3Smrg				;;
5426c19a6d3Smrg			sun2os3)
5436c19a6d3Smrg				basic_machine=m68000-sun
5446c19a6d3Smrg				basic_os=sunos3
5456c19a6d3Smrg				;;
5466c19a6d3Smrg			sun2os4)
5476c19a6d3Smrg				basic_machine=m68000-sun
5486c19a6d3Smrg				basic_os=sunos4
5496c19a6d3Smrg				;;
5506c19a6d3Smrg			sun3)
5516c19a6d3Smrg				basic_machine=m68k-sun
5526c19a6d3Smrg				basic_os=
5536c19a6d3Smrg				;;
5546c19a6d3Smrg			sun3os3)
5556c19a6d3Smrg				basic_machine=m68k-sun
5566c19a6d3Smrg				basic_os=sunos3
5576c19a6d3Smrg				;;
5586c19a6d3Smrg			sun3os4)
5596c19a6d3Smrg				basic_machine=m68k-sun
5606c19a6d3Smrg				basic_os=sunos4
5616c19a6d3Smrg				;;
5626c19a6d3Smrg			sun4)
5636c19a6d3Smrg				basic_machine=sparc-sun
5646c19a6d3Smrg				basic_os=
5656c19a6d3Smrg				;;
5666c19a6d3Smrg			sun4os3)
5676c19a6d3Smrg				basic_machine=sparc-sun
5686c19a6d3Smrg				basic_os=sunos3
5696c19a6d3Smrg				;;
5706c19a6d3Smrg			sun4os4)
5716c19a6d3Smrg				basic_machine=sparc-sun
5726c19a6d3Smrg				basic_os=sunos4
5736c19a6d3Smrg				;;
5746c19a6d3Smrg			sun4sol2)
5756c19a6d3Smrg				basic_machine=sparc-sun
5766c19a6d3Smrg				basic_os=solaris2
5776c19a6d3Smrg				;;
5786c19a6d3Smrg			sun386 | sun386i | roadrunner)
5796c19a6d3Smrg				basic_machine=i386-sun
5806c19a6d3Smrg				basic_os=
5816c19a6d3Smrg				;;
5826c19a6d3Smrg			sv1)
5836c19a6d3Smrg				basic_machine=sv1-cray
5846c19a6d3Smrg				basic_os=unicos
5856c19a6d3Smrg				;;
5866c19a6d3Smrg			symmetry)
5876c19a6d3Smrg				basic_machine=i386-sequent
5886c19a6d3Smrg				basic_os=dynix
5896c19a6d3Smrg				;;
5906c19a6d3Smrg			t3e)
5916c19a6d3Smrg				basic_machine=alphaev5-cray
5926c19a6d3Smrg				basic_os=unicos
5936c19a6d3Smrg				;;
5946c19a6d3Smrg			t90)
5956c19a6d3Smrg				basic_machine=t90-cray
5966c19a6d3Smrg				basic_os=unicos
5976c19a6d3Smrg				;;
5986c19a6d3Smrg			toad1)
5996c19a6d3Smrg				basic_machine=pdp10-xkl
6006c19a6d3Smrg				basic_os=tops20
6016c19a6d3Smrg				;;
6026c19a6d3Smrg			tpf)
6036c19a6d3Smrg				basic_machine=s390x-ibm
6046c19a6d3Smrg				basic_os=tpf
6056c19a6d3Smrg				;;
6066c19a6d3Smrg			udi29k)
6076c19a6d3Smrg				basic_machine=a29k-amd
6086c19a6d3Smrg				basic_os=udi
6096c19a6d3Smrg				;;
6106c19a6d3Smrg			ultra3)
6116c19a6d3Smrg				basic_machine=a29k-nyu
6126c19a6d3Smrg				basic_os=sym1
6136c19a6d3Smrg				;;
6146c19a6d3Smrg			v810 | necv810)
6156c19a6d3Smrg				basic_machine=v810-nec
6166c19a6d3Smrg				basic_os=none
6176c19a6d3Smrg				;;
6186c19a6d3Smrg			vaxv)
6196c19a6d3Smrg				basic_machine=vax-dec
6206c19a6d3Smrg				basic_os=sysv
6216c19a6d3Smrg				;;
6226c19a6d3Smrg			vms)
6236c19a6d3Smrg				basic_machine=vax-dec
6246c19a6d3Smrg				basic_os=vms
6256c19a6d3Smrg				;;
6266c19a6d3Smrg			vsta)
6276c19a6d3Smrg				basic_machine=i386-pc
6286c19a6d3Smrg				basic_os=vsta
6296c19a6d3Smrg				;;
6306c19a6d3Smrg			vxworks960)
6316c19a6d3Smrg				basic_machine=i960-wrs
6326c19a6d3Smrg				basic_os=vxworks
6336c19a6d3Smrg				;;
6346c19a6d3Smrg			vxworks68)
6356c19a6d3Smrg				basic_machine=m68k-wrs
6366c19a6d3Smrg				basic_os=vxworks
6376c19a6d3Smrg				;;
6386c19a6d3Smrg			vxworks29k)
6396c19a6d3Smrg				basic_machine=a29k-wrs
6406c19a6d3Smrg				basic_os=vxworks
6416c19a6d3Smrg				;;
6426c19a6d3Smrg			xbox)
6436c19a6d3Smrg				basic_machine=i686-pc
6446c19a6d3Smrg				basic_os=mingw32
6456c19a6d3Smrg				;;
6466c19a6d3Smrg			ymp)
6476c19a6d3Smrg				basic_machine=ymp-cray
6486c19a6d3Smrg				basic_os=unicos
6496c19a6d3Smrg				;;
6506c19a6d3Smrg			*)
6516c19a6d3Smrg				basic_machine=$1
6526c19a6d3Smrg				basic_os=
6536c19a6d3Smrg				;;
6546c19a6d3Smrg		esac
6550ad07f78Smrg		;;
6566c19a6d3Smrgesac
6576c19a6d3Smrg
6586c19a6d3Smrg# Decode 1-component or ad-hoc basic machines
6596c19a6d3Smrgcase $basic_machine in
6606c19a6d3Smrg	# Here we handle the default manufacturer of certain CPU types.  It is in
6616c19a6d3Smrg	# some cases the only manufacturer, in others, it is the most popular.
6626c19a6d3Smrg	w89k)
6636c19a6d3Smrg		cpu=hppa1.1
6646c19a6d3Smrg		vendor=winbond
6650ad07f78Smrg		;;
6666c19a6d3Smrg	op50n)
6676c19a6d3Smrg		cpu=hppa1.1
6686c19a6d3Smrg		vendor=oki
6690ad07f78Smrg		;;
6706c19a6d3Smrg	op60c)
6716c19a6d3Smrg		cpu=hppa1.1
6726c19a6d3Smrg		vendor=oki
6730ad07f78Smrg		;;
6746c19a6d3Smrg	ibm*)
6756c19a6d3Smrg		cpu=i370
6766c19a6d3Smrg		vendor=ibm
6770ad07f78Smrg		;;
6786c19a6d3Smrg	orion105)
6796c19a6d3Smrg		cpu=clipper
6806c19a6d3Smrg		vendor=highlevel
6810ad07f78Smrg		;;
6826c19a6d3Smrg	mac | mpw | mac-mpw)
6836c19a6d3Smrg		cpu=m68k
6846c19a6d3Smrg		vendor=apple
6850ad07f78Smrg		;;
6866c19a6d3Smrg	pmac | pmac-mpw)
6876c19a6d3Smrg		cpu=powerpc
6886c19a6d3Smrg		vendor=apple
6890ad07f78Smrg		;;
6900ad07f78Smrg
6910ad07f78Smrg	# Recognize the various machine names and aliases which stand
6920ad07f78Smrg	# for a CPU type and a company and sometimes even an OS.
6930ad07f78Smrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
6946c19a6d3Smrg		cpu=m68000
6956c19a6d3Smrg		vendor=att
6960ad07f78Smrg		;;
6970ad07f78Smrg	3b*)
6986c19a6d3Smrg		cpu=we32k
6996c19a6d3Smrg		vendor=att
7000ad07f78Smrg		;;
7014028d71eSmrg	bluegene*)
7026c19a6d3Smrg		cpu=powerpc
7036c19a6d3Smrg		vendor=ibm
7046c19a6d3Smrg		basic_os=cnk
7050ad07f78Smrg		;;
7060ad07f78Smrg	decsystem10* | dec10*)
7076c19a6d3Smrg		cpu=pdp10
7086c19a6d3Smrg		vendor=dec
7096c19a6d3Smrg		basic_os=tops10
7100ad07f78Smrg		;;
7110ad07f78Smrg	decsystem20* | dec20*)
7126c19a6d3Smrg		cpu=pdp10
7136c19a6d3Smrg		vendor=dec
7146c19a6d3Smrg		basic_os=tops20
7150ad07f78Smrg		;;
7160ad07f78Smrg	delta | 3300 | motorola-3300 | motorola-delta \
7170ad07f78Smrg	      | 3300-motorola | delta-motorola)
7186c19a6d3Smrg		cpu=m68k
7196c19a6d3Smrg		vendor=motorola
7200ad07f78Smrg		;;
7216c19a6d3Smrg	dpx2*)
7226c19a6d3Smrg		cpu=m68k
7236c19a6d3Smrg		vendor=bull
7246c19a6d3Smrg		basic_os=sysv3
7250ad07f78Smrg		;;
7260ad07f78Smrg	encore | umax | mmax)
7276c19a6d3Smrg		cpu=ns32k
7286c19a6d3Smrg		vendor=encore
7290ad07f78Smrg		;;
7306c19a6d3Smrg	elxsi)
7316c19a6d3Smrg		cpu=elxsi
7326c19a6d3Smrg		vendor=elxsi
7336c19a6d3Smrg		basic_os=${basic_os:-bsd}
7340ad07f78Smrg		;;
7350ad07f78Smrg	fx2800)
7366c19a6d3Smrg		cpu=i860
7376c19a6d3Smrg		vendor=alliant
7380ad07f78Smrg		;;
7390ad07f78Smrg	genix)
7406c19a6d3Smrg		cpu=ns32k
7416c19a6d3Smrg		vendor=ns
7420ad07f78Smrg		;;
7430ad07f78Smrg	h3050r* | hiux*)
7446c19a6d3Smrg		cpu=hppa1.1
7456c19a6d3Smrg		vendor=hitachi
7466c19a6d3Smrg		basic_os=hiuxwe2
7470ad07f78Smrg		;;
7480ad07f78Smrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
7496c19a6d3Smrg		cpu=hppa1.0
7506c19a6d3Smrg		vendor=hp
7510ad07f78Smrg		;;
7520ad07f78Smrg	hp9k2[0-9][0-9] | hp9k31[0-9])
7536c19a6d3Smrg		cpu=m68000
7546c19a6d3Smrg		vendor=hp
7550ad07f78Smrg		;;
7560ad07f78Smrg	hp9k3[2-9][0-9])
7576c19a6d3Smrg		cpu=m68k
7586c19a6d3Smrg		vendor=hp
7590ad07f78Smrg		;;
7600ad07f78Smrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
7616c19a6d3Smrg		cpu=hppa1.0
7626c19a6d3Smrg		vendor=hp
7630ad07f78Smrg		;;
7640ad07f78Smrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
7656c19a6d3Smrg		cpu=hppa1.1
7666c19a6d3Smrg		vendor=hp
7670ad07f78Smrg		;;
7680ad07f78Smrg	hp9k78[0-9] | hp78[0-9])
7690ad07f78Smrg		# FIXME: really hppa2.0-hp
7706c19a6d3Smrg		cpu=hppa1.1
7716c19a6d3Smrg		vendor=hp
7720ad07f78Smrg		;;
7730ad07f78Smrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
7740ad07f78Smrg		# FIXME: really hppa2.0-hp
7756c19a6d3Smrg		cpu=hppa1.1
7766c19a6d3Smrg		vendor=hp
7770ad07f78Smrg		;;
7780ad07f78Smrg	hp9k8[0-9][13679] | hp8[0-9][13679])
7796c19a6d3Smrg		cpu=hppa1.1
7806c19a6d3Smrg		vendor=hp
7810ad07f78Smrg		;;
7820ad07f78Smrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
7836c19a6d3Smrg		cpu=hppa1.0
7846c19a6d3Smrg		vendor=hp
7850ad07f78Smrg		;;
7860ad07f78Smrg	i*86v32)
7876c19a6d3Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7886c19a6d3Smrg		vendor=pc
7896c19a6d3Smrg		basic_os=sysv32
7900ad07f78Smrg		;;
7910ad07f78Smrg	i*86v4*)
7926c19a6d3Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7936c19a6d3Smrg		vendor=pc
7946c19a6d3Smrg		basic_os=sysv4
7950ad07f78Smrg		;;
7960ad07f78Smrg	i*86v)
7976c19a6d3Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
7986c19a6d3Smrg		vendor=pc
7996c19a6d3Smrg		basic_os=sysv
8000ad07f78Smrg		;;
8010ad07f78Smrg	i*86sol2)
8026c19a6d3Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
8036c19a6d3Smrg		vendor=pc
8046c19a6d3Smrg		basic_os=solaris2
8050ad07f78Smrg		;;
8066c19a6d3Smrg	j90 | j90-cray)
8076c19a6d3Smrg		cpu=j90
8086c19a6d3Smrg		vendor=cray
8096c19a6d3Smrg		basic_os=${basic_os:-unicos}
8100ad07f78Smrg		;;
8110ad07f78Smrg	iris | iris4d)
8126c19a6d3Smrg		cpu=mips
8136c19a6d3Smrg		vendor=sgi
8146c19a6d3Smrg		case $basic_os in
8156c19a6d3Smrg		    irix*)
8160ad07f78Smrg			;;
8170ad07f78Smrg		    *)
8186c19a6d3Smrg			basic_os=irix4
8190ad07f78Smrg			;;
8200ad07f78Smrg		esac
8210ad07f78Smrg		;;
8220ad07f78Smrg	miniframe)
8236c19a6d3Smrg		cpu=m68000
8246c19a6d3Smrg		vendor=convergent
8250ad07f78Smrg		;;
8266c19a6d3Smrg	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
8276c19a6d3Smrg		cpu=m68k
8286c19a6d3Smrg		vendor=atari
8296c19a6d3Smrg		basic_os=mint
8300ad07f78Smrg		;;
8310ad07f78Smrg	news-3600 | risc-news)
8326c19a6d3Smrg		cpu=mips
8336c19a6d3Smrg		vendor=sony
8346c19a6d3Smrg		basic_os=newsos
8356c19a6d3Smrg		;;
8366c19a6d3Smrg	next | m*-next)
8376c19a6d3Smrg		cpu=m68k
8386c19a6d3Smrg		vendor=next
8396c19a6d3Smrg		case $basic_os in
8406c19a6d3Smrg		    openstep*)
8416c19a6d3Smrg		        ;;
8426c19a6d3Smrg		    nextstep*)
8430ad07f78Smrg			;;
8446c19a6d3Smrg		    ns2*)
8456c19a6d3Smrg		      basic_os=nextstep2
8460ad07f78Smrg			;;
8470ad07f78Smrg		    *)
8486c19a6d3Smrg		      basic_os=nextstep3
8490ad07f78Smrg			;;
8500ad07f78Smrg		esac
8510ad07f78Smrg		;;
8520ad07f78Smrg	np1)
8536c19a6d3Smrg		cpu=np1
8546c19a6d3Smrg		vendor=gould
8550ad07f78Smrg		;;
8560ad07f78Smrg	op50n-* | op60c-*)
8576c19a6d3Smrg		cpu=hppa1.1
8586c19a6d3Smrg		vendor=oki
8596c19a6d3Smrg		basic_os=proelf
8600ad07f78Smrg		;;
8610ad07f78Smrg	pa-hitachi)
8626c19a6d3Smrg		cpu=hppa1.1
8636c19a6d3Smrg		vendor=hitachi
8646c19a6d3Smrg		basic_os=hiuxwe2
8650ad07f78Smrg		;;
8660ad07f78Smrg	pbd)
8676c19a6d3Smrg		cpu=sparc
8686c19a6d3Smrg		vendor=tti
8690ad07f78Smrg		;;
8700ad07f78Smrg	pbb)
8716c19a6d3Smrg		cpu=m68k
8726c19a6d3Smrg		vendor=tti
8730ad07f78Smrg		;;
8746c19a6d3Smrg	pc532)
8756c19a6d3Smrg		cpu=ns32k
8766c19a6d3Smrg		vendor=pc532
8770ad07f78Smrg		;;
8780ad07f78Smrg	pn)
8796c19a6d3Smrg		cpu=pn
8806c19a6d3Smrg		vendor=gould
8810ad07f78Smrg		;;
8826c19a6d3Smrg	power)
8836c19a6d3Smrg		cpu=power
8846c19a6d3Smrg		vendor=ibm
8850ad07f78Smrg		;;
8860ad07f78Smrg	ps2)
8876c19a6d3Smrg		cpu=i386
8886c19a6d3Smrg		vendor=ibm
8890ad07f78Smrg		;;
8900ad07f78Smrg	rm[46]00)
8916c19a6d3Smrg		cpu=mips
8926c19a6d3Smrg		vendor=siemens
8930ad07f78Smrg		;;
8940ad07f78Smrg	rtpc | rtpc-*)
8956c19a6d3Smrg		cpu=romp
8966c19a6d3Smrg		vendor=ibm
8970ad07f78Smrg		;;
8986c19a6d3Smrg	sde)
8996c19a6d3Smrg		cpu=mipsisa32
9006c19a6d3Smrg		vendor=sde
9016c19a6d3Smrg		basic_os=${basic_os:-elf}
9020ad07f78Smrg		;;
9036c19a6d3Smrg	simso-wrs)
9046c19a6d3Smrg		cpu=sparclite
9056c19a6d3Smrg		vendor=wrs
9066c19a6d3Smrg		basic_os=vxworks
9070ad07f78Smrg		;;
9086c19a6d3Smrg	tower | tower-32)
9096c19a6d3Smrg		cpu=m68k
9106c19a6d3Smrg		vendor=ncr
9110ad07f78Smrg		;;
9126c19a6d3Smrg	vpp*|vx|vx-*)
9136c19a6d3Smrg		cpu=f301
9146c19a6d3Smrg		vendor=fujitsu
9150ad07f78Smrg		;;
9166c19a6d3Smrg	w65)
9176c19a6d3Smrg		cpu=w65
9186c19a6d3Smrg		vendor=wdc
9190ad07f78Smrg		;;
9206c19a6d3Smrg	w89k-*)
9216c19a6d3Smrg		cpu=hppa1.1
9226c19a6d3Smrg		vendor=winbond
9236c19a6d3Smrg		basic_os=proelf
9240ad07f78Smrg		;;
9256c19a6d3Smrg	none)
9266c19a6d3Smrg		cpu=none
9276c19a6d3Smrg		vendor=none
9280ad07f78Smrg		;;
9296c19a6d3Smrg	leon|leon[3-9])
9306c19a6d3Smrg		cpu=sparc
9316c19a6d3Smrg		vendor=$basic_machine
9320ad07f78Smrg		;;
9336c19a6d3Smrg	leon-*|leon[3-9]-*)
9346c19a6d3Smrg		cpu=sparc
9356c19a6d3Smrg		vendor=`echo "$basic_machine" | sed 's/-.*//'`
9360ad07f78Smrg		;;
9376c19a6d3Smrg
9386c19a6d3Smrg	*-*)
9396c19a6d3Smrg		# shellcheck disable=SC2162
9406c19a6d3Smrg		saved_IFS=$IFS
9416c19a6d3Smrg		IFS="-" read cpu vendor <<EOF
9426c19a6d3Smrg$basic_machine
9436c19a6d3SmrgEOF
9446c19a6d3Smrg		IFS=$saved_IFS
9450ad07f78Smrg		;;
9466c19a6d3Smrg	# We use `pc' rather than `unknown'
9476c19a6d3Smrg	# because (1) that's what they normally are, and
9486c19a6d3Smrg	# (2) the word "unknown" tends to confuse beginning users.
9496c19a6d3Smrg	i*86 | x86_64)
9506c19a6d3Smrg		cpu=$basic_machine
9516c19a6d3Smrg		vendor=pc
9520ad07f78Smrg		;;
9536c19a6d3Smrg	# These rules are duplicated from below for sake of the special case above;
9546c19a6d3Smrg	# i.e. things that normalized to x86 arches should also default to "pc"
9556c19a6d3Smrg	pc98)
9566c19a6d3Smrg		cpu=i386
9576c19a6d3Smrg		vendor=pc
9580ad07f78Smrg		;;
9596c19a6d3Smrg	x64 | amd64)
9606c19a6d3Smrg		cpu=x86_64
9616c19a6d3Smrg		vendor=pc
9620ad07f78Smrg		;;
9636c19a6d3Smrg	# Recognize the basic CPU types without company name.
9646c19a6d3Smrg	*)
9656c19a6d3Smrg		cpu=$basic_machine
9666c19a6d3Smrg		vendor=unknown
9670ad07f78Smrg		;;
9686c19a6d3Smrgesac
9696c19a6d3Smrg
9706c19a6d3Smrgunset -v basic_machine
9716c19a6d3Smrg
9726c19a6d3Smrg# Decode basic machines in the full and proper CPU-Company form.
9736c19a6d3Smrgcase $cpu-$vendor in
9746c19a6d3Smrg	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
9756c19a6d3Smrg	# some cases the only manufacturer, in others, it is the most popular.
9766c19a6d3Smrg	craynv-unknown)
9776c19a6d3Smrg		vendor=cray
9786c19a6d3Smrg		basic_os=${basic_os:-unicosmp}
9790ad07f78Smrg		;;
9806c19a6d3Smrg	c90-unknown | c90-cray)
9816c19a6d3Smrg		vendor=cray
9826c19a6d3Smrg		basic_os=${Basic_os:-unicos}
9830ad07f78Smrg		;;
9846c19a6d3Smrg	fx80-unknown)
9856c19a6d3Smrg		vendor=alliant
9860ad07f78Smrg		;;
9876c19a6d3Smrg	romp-unknown)
9886c19a6d3Smrg		vendor=ibm
9890ad07f78Smrg		;;
9906c19a6d3Smrg	mmix-unknown)
9916c19a6d3Smrg		vendor=knuth
9920ad07f78Smrg		;;
9936c19a6d3Smrg	microblaze-unknown | microblazeel-unknown)
9946c19a6d3Smrg		vendor=xilinx
9950ad07f78Smrg		;;
9966c19a6d3Smrg	rs6000-unknown)
9976c19a6d3Smrg		vendor=ibm
9980ad07f78Smrg		;;
9996c19a6d3Smrg	vax-unknown)
10006c19a6d3Smrg		vendor=dec
10010ad07f78Smrg		;;
10026c19a6d3Smrg	pdp11-unknown)
10036c19a6d3Smrg		vendor=dec
10040ad07f78Smrg		;;
10056c19a6d3Smrg	we32k-unknown)
10066c19a6d3Smrg		vendor=att
10070ad07f78Smrg		;;
10086c19a6d3Smrg	cydra-unknown)
10096c19a6d3Smrg		vendor=cydrome
10100ad07f78Smrg		;;
10116c19a6d3Smrg	i370-ibm*)
10126c19a6d3Smrg		vendor=ibm
10130ad07f78Smrg		;;
10146c19a6d3Smrg	orion-unknown)
10156c19a6d3Smrg		vendor=highlevel
10160ad07f78Smrg		;;
10176c19a6d3Smrg	xps-unknown | xps100-unknown)
10186c19a6d3Smrg		cpu=xps100
10196c19a6d3Smrg		vendor=honeywell
10200ad07f78Smrg		;;
10216c19a6d3Smrg
10226c19a6d3Smrg	# Here we normalize CPU types with a missing or matching vendor
10236c19a6d3Smrg	armh-unknown | armh-alt)
10246c19a6d3Smrg		cpu=armv7l
10256c19a6d3Smrg		vendor=alt
10266c19a6d3Smrg		basic_os=${basic_os:-linux-gnueabihf}
10270ad07f78Smrg		;;
10286c19a6d3Smrg	dpx20-unknown | dpx20-bull)
10296c19a6d3Smrg		cpu=rs6000
10306c19a6d3Smrg		vendor=bull
10316c19a6d3Smrg		basic_os=${basic_os:-bosx}
10320ad07f78Smrg		;;
10336c19a6d3Smrg
10346c19a6d3Smrg	# Here we normalize CPU types irrespective of the vendor
10356c19a6d3Smrg	amd64-*)
10366c19a6d3Smrg		cpu=x86_64
10370ad07f78Smrg		;;
10386c19a6d3Smrg	blackfin-*)
10396c19a6d3Smrg		cpu=bfin
10406c19a6d3Smrg		basic_os=linux
10410ad07f78Smrg		;;
10426c19a6d3Smrg	c54x-*)
10436c19a6d3Smrg		cpu=tic54x
10440ad07f78Smrg		;;
10456c19a6d3Smrg	c55x-*)
10466c19a6d3Smrg		cpu=tic55x
10470ad07f78Smrg		;;
10486c19a6d3Smrg	c6x-*)
10496c19a6d3Smrg		cpu=tic6x
10500ad07f78Smrg		;;
10516c19a6d3Smrg	e500v[12]-*)
10526c19a6d3Smrg		cpu=powerpc
10536c19a6d3Smrg		basic_os=${basic_os}"spe"
10540ad07f78Smrg		;;
10556c19a6d3Smrg	mips3*-*)
10566c19a6d3Smrg		cpu=mips64
10570ad07f78Smrg		;;
10586c19a6d3Smrg	ms1-*)
10596c19a6d3Smrg		cpu=mt
10600ad07f78Smrg		;;
10616c19a6d3Smrg	m68knommu-*)
10626c19a6d3Smrg		cpu=m68k
10636c19a6d3Smrg		basic_os=linux
10640ad07f78Smrg		;;
10656c19a6d3Smrg	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
10666c19a6d3Smrg		cpu=s12z
10670ad07f78Smrg		;;
10686c19a6d3Smrg	openrisc-*)
10696c19a6d3Smrg		cpu=or32
10700ad07f78Smrg		;;
10716c19a6d3Smrg	parisc-*)
10726c19a6d3Smrg		cpu=hppa
10736c19a6d3Smrg		basic_os=linux
10740ad07f78Smrg		;;
10756c19a6d3Smrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
10766c19a6d3Smrg		cpu=i586
10770ad07f78Smrg		;;
10786c19a6d3Smrg	pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
10796c19a6d3Smrg		cpu=i686
10800ad07f78Smrg		;;
10816c19a6d3Smrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
10826c19a6d3Smrg		cpu=i686
10830ad07f78Smrg		;;
10846c19a6d3Smrg	pentium4-*)
10856c19a6d3Smrg		cpu=i786
10860ad07f78Smrg		;;
10876c19a6d3Smrg	pc98-*)
10886c19a6d3Smrg		cpu=i386
10890ad07f78Smrg		;;
10906c19a6d3Smrg	ppc-* | ppcbe-*)
10916c19a6d3Smrg		cpu=powerpc
10920ad07f78Smrg		;;
10936c19a6d3Smrg	ppcle-* | powerpclittle-*)
10946c19a6d3Smrg		cpu=powerpcle
10950ad07f78Smrg		;;
10966c19a6d3Smrg	ppc64-*)
10976c19a6d3Smrg		cpu=powerpc64
10980ad07f78Smrg		;;
10996c19a6d3Smrg	ppc64le-* | powerpc64little-*)
11006c19a6d3Smrg		cpu=powerpc64le
11010ad07f78Smrg		;;
11026c19a6d3Smrg	sb1-*)
11036c19a6d3Smrg		cpu=mipsisa64sb1
11040ad07f78Smrg		;;
11056c19a6d3Smrg	sb1el-*)
11066c19a6d3Smrg		cpu=mipsisa64sb1el
11070ad07f78Smrg		;;
11086c19a6d3Smrg	sh5e[lb]-*)
11096c19a6d3Smrg		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
11100ad07f78Smrg		;;
11116c19a6d3Smrg	spur-*)
11126c19a6d3Smrg		cpu=spur
11130ad07f78Smrg		;;
11146c19a6d3Smrg	strongarm-* | thumb-*)
11156c19a6d3Smrg		cpu=arm
11160ad07f78Smrg		;;
11176c19a6d3Smrg	tx39-*)
11186c19a6d3Smrg		cpu=mipstx39
11190ad07f78Smrg		;;
11206c19a6d3Smrg	tx39el-*)
11216c19a6d3Smrg		cpu=mipstx39el
11220ad07f78Smrg		;;
11236c19a6d3Smrg	x64-*)
11246c19a6d3Smrg		cpu=x86_64
11250ad07f78Smrg		;;
11266c19a6d3Smrg	xscale-* | xscalee[bl]-*)
11276c19a6d3Smrg		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
11280ad07f78Smrg		;;
11296c19a6d3Smrg	arm64-* | aarch64le-*)
11306c19a6d3Smrg		cpu=aarch64
11310ad07f78Smrg		;;
11326c19a6d3Smrg
11336c19a6d3Smrg	# Recognize the canonical CPU Types that limit and/or modify the
11346c19a6d3Smrg	# company names they are paired with.
11356c19a6d3Smrg	cr16-*)
11366c19a6d3Smrg		basic_os=${basic_os:-elf}
11370ad07f78Smrg		;;
11386c19a6d3Smrg	crisv32-* | etraxfs*-*)
11396c19a6d3Smrg		cpu=crisv32
11406c19a6d3Smrg		vendor=axis
11410ad07f78Smrg		;;
11426c19a6d3Smrg	cris-* | etrax*-*)
11436c19a6d3Smrg		cpu=cris
11446c19a6d3Smrg		vendor=axis
11450ad07f78Smrg		;;
11466c19a6d3Smrg	crx-*)
11476c19a6d3Smrg		basic_os=${basic_os:-elf}
11480ad07f78Smrg		;;
11496c19a6d3Smrg	neo-tandem)
11506c19a6d3Smrg		cpu=neo
11516c19a6d3Smrg		vendor=tandem
11520ad07f78Smrg		;;
11536c19a6d3Smrg	nse-tandem)
11546c19a6d3Smrg		cpu=nse
11556c19a6d3Smrg		vendor=tandem
11560ad07f78Smrg		;;
11576c19a6d3Smrg	nsr-tandem)
11586c19a6d3Smrg		cpu=nsr
11596c19a6d3Smrg		vendor=tandem
11600ad07f78Smrg		;;
11616c19a6d3Smrg	nsv-tandem)
11626c19a6d3Smrg		cpu=nsv
11636c19a6d3Smrg		vendor=tandem
11640ad07f78Smrg		;;
11656c19a6d3Smrg	nsx-tandem)
11666c19a6d3Smrg		cpu=nsx
11676c19a6d3Smrg		vendor=tandem
11680ad07f78Smrg		;;
11696c19a6d3Smrg	mipsallegrexel-sony)
11706c19a6d3Smrg		cpu=mipsallegrexel
11716c19a6d3Smrg		vendor=sony
11720ad07f78Smrg		;;
11736c19a6d3Smrg	tile*-*)
11746c19a6d3Smrg		basic_os=${basic_os:-linux-gnu}
11750ad07f78Smrg		;;
11766c19a6d3Smrg
11770ad07f78Smrg	*)
11786c19a6d3Smrg		# Recognize the canonical CPU types that are allowed with any
11796c19a6d3Smrg		# company name.
11806c19a6d3Smrg		case $cpu in
11816c19a6d3Smrg			1750a | 580 \
11826c19a6d3Smrg			| a29k \
11836c19a6d3Smrg			| aarch64 | aarch64_be \
11846c19a6d3Smrg			| abacus \
11856c19a6d3Smrg			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
11866c19a6d3Smrg			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
11876c19a6d3Smrg			| alphapca5[67] | alpha64pca5[67] \
11886c19a6d3Smrg			| am33_2.0 \
11896c19a6d3Smrg			| amdgcn \
11906c19a6d3Smrg			| arc | arceb | arc32 | arc64 \
11916c19a6d3Smrg			| arm | arm[lb]e | arme[lb] | armv* \
11926c19a6d3Smrg			| avr | avr32 \
11936c19a6d3Smrg			| asmjs \
11946c19a6d3Smrg			| ba \
11956c19a6d3Smrg			| be32 | be64 \
11966c19a6d3Smrg			| bfin | bpf | bs2000 \
11976c19a6d3Smrg			| c[123]* | c30 | [cjt]90 | c4x \
11986c19a6d3Smrg			| c8051 | clipper | craynv | csky | cydra \
11996c19a6d3Smrg			| d10v | d30v | dlx | dsp16xx \
12006c19a6d3Smrg			| e2k | elxsi | epiphany \
12016c19a6d3Smrg			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
12026c19a6d3Smrg			| h8300 | h8500 \
12036c19a6d3Smrg			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
12046c19a6d3Smrg			| hexagon \
12056c19a6d3Smrg			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
12066c19a6d3Smrg			| ip2k | iq2000 \
12076c19a6d3Smrg			| k1om \
12086c19a6d3Smrg			| le32 | le64 \
12096c19a6d3Smrg			| lm32 \
12106c19a6d3Smrg			| loongarch32 | loongarch64 \
12116c19a6d3Smrg			| m32c | m32r | m32rle \
12126c19a6d3Smrg			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
12136c19a6d3Smrg			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
12146c19a6d3Smrg			| m88110 | m88k | maxq | mb | mcore | mep | metag \
12156c19a6d3Smrg			| microblaze | microblazeel \
12166c19a6d3Smrg			| mips | mipsbe | mipseb | mipsel | mipsle \
12176c19a6d3Smrg			| mips16 \
12186c19a6d3Smrg			| mips64 | mips64eb | mips64el \
12196c19a6d3Smrg			| mips64octeon | mips64octeonel \
12206c19a6d3Smrg			| mips64orion | mips64orionel \
12216c19a6d3Smrg			| mips64r5900 | mips64r5900el \
12226c19a6d3Smrg			| mips64vr | mips64vrel \
12236c19a6d3Smrg			| mips64vr4100 | mips64vr4100el \
12246c19a6d3Smrg			| mips64vr4300 | mips64vr4300el \
12256c19a6d3Smrg			| mips64vr5000 | mips64vr5000el \
12266c19a6d3Smrg			| mips64vr5900 | mips64vr5900el \
12276c19a6d3Smrg			| mipsisa32 | mipsisa32el \
12286c19a6d3Smrg			| mipsisa32r2 | mipsisa32r2el \
12296c19a6d3Smrg			| mipsisa32r3 | mipsisa32r3el \
12306c19a6d3Smrg			| mipsisa32r5 | mipsisa32r5el \
12316c19a6d3Smrg			| mipsisa32r6 | mipsisa32r6el \
12326c19a6d3Smrg			| mipsisa64 | mipsisa64el \
12336c19a6d3Smrg			| mipsisa64r2 | mipsisa64r2el \
12346c19a6d3Smrg			| mipsisa64r3 | mipsisa64r3el \
12356c19a6d3Smrg			| mipsisa64r5 | mipsisa64r5el \
12366c19a6d3Smrg			| mipsisa64r6 | mipsisa64r6el \
12376c19a6d3Smrg			| mipsisa64sb1 | mipsisa64sb1el \
12386c19a6d3Smrg			| mipsisa64sr71k | mipsisa64sr71kel \
12396c19a6d3Smrg			| mipsr5900 | mipsr5900el \
12406c19a6d3Smrg			| mipstx39 | mipstx39el \
12416c19a6d3Smrg			| mmix \
12426c19a6d3Smrg			| mn10200 | mn10300 \
12436c19a6d3Smrg			| moxie \
12446c19a6d3Smrg			| mt \
12456c19a6d3Smrg			| msp430 \
12466c19a6d3Smrg			| nds32 | nds32le | nds32be \
12476c19a6d3Smrg			| nfp \
12486c19a6d3Smrg			| nios | nios2 | nios2eb | nios2el \
12496c19a6d3Smrg			| none | np1 | ns16k | ns32k | nvptx \
12506c19a6d3Smrg			| open8 \
12516c19a6d3Smrg			| or1k* \
12526c19a6d3Smrg			| or32 \
12536c19a6d3Smrg			| orion \
12546c19a6d3Smrg			| picochip \
12556c19a6d3Smrg			| pdp10 | pdp11 | pj | pjl | pn | power \
12566c19a6d3Smrg			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
12576c19a6d3Smrg			| pru \
12586c19a6d3Smrg			| pyramid \
12596c19a6d3Smrg			| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
12606c19a6d3Smrg			| rl78 | romp | rs6000 | rx \
12616c19a6d3Smrg			| s390 | s390x \
12626c19a6d3Smrg			| score \
12636c19a6d3Smrg			| sh | shl \
12646c19a6d3Smrg			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
12656c19a6d3Smrg			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
12666c19a6d3Smrg			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
12676c19a6d3Smrg			| sparclite \
12686c19a6d3Smrg			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
12696c19a6d3Smrg			| spu \
12706c19a6d3Smrg			| tahoe \
12716c19a6d3Smrg			| thumbv7* \
12726c19a6d3Smrg			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
12736c19a6d3Smrg			| tron \
12746c19a6d3Smrg			| ubicom32 \
12756c19a6d3Smrg			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
12766c19a6d3Smrg			| vax \
12776c19a6d3Smrg			| visium \
12786c19a6d3Smrg			| w65 \
12796c19a6d3Smrg			| wasm32 | wasm64 \
12806c19a6d3Smrg			| we32k \
12816c19a6d3Smrg			| x86 | x86_64 | xc16x | xgate | xps100 \
12826c19a6d3Smrg			| xstormy16 | xtensa* \
12836c19a6d3Smrg			| ymp \
12846c19a6d3Smrg			| z8k | z80)
12856c19a6d3Smrg				;;
12866c19a6d3Smrg
12876c19a6d3Smrg			*)
12886c19a6d3Smrg				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
12896c19a6d3Smrg				exit 1
12906c19a6d3Smrg				;;
12916c19a6d3Smrg		esac
12920ad07f78Smrg		;;
12930ad07f78Smrgesac
12940ad07f78Smrg
12950ad07f78Smrg# Here we canonicalize certain aliases for manufacturers.
12966c19a6d3Smrgcase $vendor in
12976c19a6d3Smrg	digital*)
12986c19a6d3Smrg		vendor=dec
12990ad07f78Smrg		;;
13006c19a6d3Smrg	commodore*)
13016c19a6d3Smrg		vendor=cbm
13020ad07f78Smrg		;;
13030ad07f78Smrg	*)
13040ad07f78Smrg		;;
13050ad07f78Smrgesac
13060ad07f78Smrg
13070ad07f78Smrg# Decode manufacturer-specific aliases for certain operating systems.
13080ad07f78Smrg
13096c19a6d3Smrgif test x$basic_os != x
13100ad07f78Smrgthen
13116c19a6d3Smrg
13126c19a6d3Smrg# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
13136c19a6d3Smrg# set os.
13146c19a6d3Smrgcase $basic_os in
13156c19a6d3Smrg	gnu/linux*)
13166c19a6d3Smrg		kernel=linux
13176c19a6d3Smrg		os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
13186c19a6d3Smrg		;;
13196c19a6d3Smrg	os2-emx)
13206c19a6d3Smrg		kernel=os2
13216c19a6d3Smrg		os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
13226c19a6d3Smrg		;;
13236c19a6d3Smrg	nto-qnx*)
13246c19a6d3Smrg		kernel=nto
13256c19a6d3Smrg		os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
13266c19a6d3Smrg		;;
13276c19a6d3Smrg	*-*)
13286c19a6d3Smrg		# shellcheck disable=SC2162
13296c19a6d3Smrg		saved_IFS=$IFS
13306c19a6d3Smrg		IFS="-" read kernel os <<EOF
13316c19a6d3Smrg$basic_os
13326c19a6d3SmrgEOF
13336c19a6d3Smrg		IFS=$saved_IFS
13346c19a6d3Smrg		;;
13356c19a6d3Smrg	# Default OS when just kernel was specified
13366c19a6d3Smrg	nto*)
13376c19a6d3Smrg		kernel=nto
13386c19a6d3Smrg		os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
13396c19a6d3Smrg		;;
13406c19a6d3Smrg	linux*)
13416c19a6d3Smrg		kernel=linux
13426c19a6d3Smrg		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
13436c19a6d3Smrg		;;
13446c19a6d3Smrg	managarm*)
13456c19a6d3Smrg		kernel=managarm
13466c19a6d3Smrg		os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
13476c19a6d3Smrg		;;
13486c19a6d3Smrg	*)
13496c19a6d3Smrg		kernel=
13506c19a6d3Smrg		os=$basic_os
13516c19a6d3Smrg		;;
13526c19a6d3Smrgesac
13536c19a6d3Smrg
13546c19a6d3Smrg# Now, normalize the OS (knowing we just have one component, it's not a kernel,
13556c19a6d3Smrg# etc.)
13560ad07f78Smrgcase $os in
13576c19a6d3Smrg	# First match some system type aliases that might get confused
13586c19a6d3Smrg	# with valid system types.
13596c19a6d3Smrg	# solaris* is a basic system type, with this one exception.
13606c19a6d3Smrg	auroraux)
13616c19a6d3Smrg		os=auroraux
13624028d71eSmrg		;;
13636c19a6d3Smrg	bluegene*)
13646c19a6d3Smrg		os=cnk
13650ad07f78Smrg		;;
13666c19a6d3Smrg	solaris1 | solaris1.*)
13676c19a6d3Smrg		os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
13680ad07f78Smrg		;;
13696c19a6d3Smrg	solaris)
13706c19a6d3Smrg		os=solaris2
13710ad07f78Smrg		;;
13726c19a6d3Smrg	unixware*)
13736c19a6d3Smrg		os=sysv4.2uw
13740ad07f78Smrg		;;
13756c19a6d3Smrg	# es1800 is here to avoid being matched by es* (a different OS)
13766c19a6d3Smrg	es1800*)
13776c19a6d3Smrg		os=ose
13780ad07f78Smrg		;;
13796c19a6d3Smrg	# Some version numbers need modification
13806c19a6d3Smrg	chorusos*)
13816c19a6d3Smrg		os=chorusos
13820ad07f78Smrg		;;
13836c19a6d3Smrg	isc)
13846c19a6d3Smrg		os=isc2.2
13850ad07f78Smrg		;;
13866c19a6d3Smrg	sco6)
13876c19a6d3Smrg		os=sco5v6
13880ad07f78Smrg		;;
13896c19a6d3Smrg	sco5)
13906c19a6d3Smrg		os=sco3.2v5
13910ad07f78Smrg		;;
13926c19a6d3Smrg	sco4)
13936c19a6d3Smrg		os=sco3.2v4
13940ad07f78Smrg		;;
13956c19a6d3Smrg	sco3.2.[4-9]*)
13966c19a6d3Smrg		os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
13970ad07f78Smrg		;;
13986c19a6d3Smrg	sco*v* | scout)
13996c19a6d3Smrg		# Don't match below
14000ad07f78Smrg		;;
14016c19a6d3Smrg	sco*)
14026c19a6d3Smrg		os=sco3.2v2
14030ad07f78Smrg		;;
14046c19a6d3Smrg	psos*)
14056c19a6d3Smrg		os=psos
14060ad07f78Smrg		;;
14076c19a6d3Smrg	qnx*)
14086c19a6d3Smrg		os=qnx
14090ad07f78Smrg		;;
14106c19a6d3Smrg	hiux*)
14116c19a6d3Smrg		os=hiuxwe2
14120ad07f78Smrg		;;
14136c19a6d3Smrg	lynx*178)
14146c19a6d3Smrg		os=lynxos178
14150ad07f78Smrg		;;
14166c19a6d3Smrg	lynx*5)
14176c19a6d3Smrg		os=lynxos5
14180ad07f78Smrg		;;
14196c19a6d3Smrg	lynxos*)
14206c19a6d3Smrg		# don't get caught up in next wildcard
14210ad07f78Smrg		;;
14226c19a6d3Smrg	lynx*)
14236c19a6d3Smrg		os=lynxos
14240ad07f78Smrg		;;
14256c19a6d3Smrg	mac[0-9]*)
14266c19a6d3Smrg		os=`echo "$os" | sed -e 's|mac|macos|'`
14270ad07f78Smrg		;;
14286c19a6d3Smrg	opened*)
14296c19a6d3Smrg		os=openedition
14300ad07f78Smrg		;;
14316c19a6d3Smrg	os400*)
14326c19a6d3Smrg		os=os400
14330ad07f78Smrg		;;
14346c19a6d3Smrg	sunos5*)
14356c19a6d3Smrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
14360ad07f78Smrg		;;
14376c19a6d3Smrg	sunos6*)
14386c19a6d3Smrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
14390ad07f78Smrg		;;
14406c19a6d3Smrg	wince*)
14416c19a6d3Smrg		os=wince
14420ad07f78Smrg		;;
14436c19a6d3Smrg	utek*)
14446c19a6d3Smrg		os=bsd
14450ad07f78Smrg		;;
14466c19a6d3Smrg	dynix*)
14476c19a6d3Smrg		os=bsd
14480ad07f78Smrg		;;
14496c19a6d3Smrg	acis*)
14506c19a6d3Smrg		os=aos
14510ad07f78Smrg		;;
14526c19a6d3Smrg	atheos*)
14536c19a6d3Smrg		os=atheos
14540ad07f78Smrg		;;
14556c19a6d3Smrg	syllable*)
14566c19a6d3Smrg		os=syllable
14570ad07f78Smrg		;;
14586c19a6d3Smrg	386bsd)
14596c19a6d3Smrg		os=bsd
14600ad07f78Smrg		;;
14616c19a6d3Smrg	ctix* | uts*)
14626c19a6d3Smrg		os=sysv
14630ad07f78Smrg		;;
14646c19a6d3Smrg	nova*)
14656c19a6d3Smrg		os=rtmk-nova
14660ad07f78Smrg		;;
14676c19a6d3Smrg	ns2)
14686c19a6d3Smrg		os=nextstep2
14690ad07f78Smrg		;;
14706c19a6d3Smrg	# Preserve the version number of sinix5.
14716c19a6d3Smrg	sinix5.*)
14726c19a6d3Smrg		os=`echo "$os" | sed -e 's|sinix|sysv|'`
14730ad07f78Smrg		;;
14746c19a6d3Smrg	sinix*)
14756c19a6d3Smrg		os=sysv4
14760ad07f78Smrg		;;
14776c19a6d3Smrg	tpf*)
14786c19a6d3Smrg		os=tpf
14790ad07f78Smrg		;;
14806c19a6d3Smrg	triton*)
14816c19a6d3Smrg		os=sysv3
14820ad07f78Smrg		;;
14836c19a6d3Smrg	oss*)
14846c19a6d3Smrg		os=sysv3
14850ad07f78Smrg		;;
14866c19a6d3Smrg	svr4*)
14876c19a6d3Smrg		os=sysv4
14880ad07f78Smrg		;;
14896c19a6d3Smrg	svr3)
14906c19a6d3Smrg		os=sysv3
14910ad07f78Smrg		;;
14926c19a6d3Smrg	sysvr4)
14936c19a6d3Smrg		os=sysv4
14940ad07f78Smrg		;;
14956c19a6d3Smrg	ose*)
14966c19a6d3Smrg		os=ose
14970ad07f78Smrg		;;
14986c19a6d3Smrg	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
14996c19a6d3Smrg		os=mint
15000ad07f78Smrg		;;
15016c19a6d3Smrg	dicos*)
15026c19a6d3Smrg		os=dicos
15030ad07f78Smrg		;;
15046c19a6d3Smrg	pikeos*)
15056c19a6d3Smrg		# Until real need of OS specific support for
15066c19a6d3Smrg		# particular features comes up, bare metal
15076c19a6d3Smrg		# configurations are quite functional.
15086c19a6d3Smrg		case $cpu in
15096c19a6d3Smrg		    arm*)
15106c19a6d3Smrg			os=eabi
15116c19a6d3Smrg			;;
15126c19a6d3Smrg		    *)
15136c19a6d3Smrg			os=elf
15146c19a6d3Smrg			;;
15156c19a6d3Smrg		esac
15160ad07f78Smrg		;;
15170ad07f78Smrg	*)
15186c19a6d3Smrg		# No normalization, but not necessarily accepted, that comes below.
15190ad07f78Smrg		;;
15200ad07f78Smrgesac
15216c19a6d3Smrg
15220ad07f78Smrgelse
15230ad07f78Smrg
15240ad07f78Smrg# Here we handle the default operating systems that come with various machines.
15250ad07f78Smrg# The value should be what the vendor currently ships out the door with their
15260ad07f78Smrg# machine or put another way, the most popular os provided with the machine.
15270ad07f78Smrg
15280ad07f78Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
15290ad07f78Smrg# "-sun"), then you have to tell the case statement up towards the top
15300ad07f78Smrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
15310ad07f78Smrg# will signal an error saying that MANUFACTURER isn't an operating
15320ad07f78Smrg# system, and we'll never get to this point.
15330ad07f78Smrg
15346c19a6d3Smrgkernel=
15356c19a6d3Smrgcase $cpu-$vendor in
15366c19a6d3Smrg	score-*)
15376c19a6d3Smrg		os=elf
15380ad07f78Smrg		;;
15396c19a6d3Smrg	spu-*)
15406c19a6d3Smrg		os=elf
15410ad07f78Smrg		;;
15420ad07f78Smrg	*-acorn)
15436c19a6d3Smrg		os=riscix1.2
15440ad07f78Smrg		;;
15450ad07f78Smrg	arm*-rebel)
15466c19a6d3Smrg		kernel=linux
15476c19a6d3Smrg		os=gnu
15480ad07f78Smrg		;;
15490ad07f78Smrg	arm*-semi)
15506c19a6d3Smrg		os=aout
15516c19a6d3Smrg		;;
15526c19a6d3Smrg	c4x-* | tic4x-*)
15536c19a6d3Smrg		os=coff
15546c19a6d3Smrg		;;
15556c19a6d3Smrg	c8051-*)
15566c19a6d3Smrg		os=elf
15576c19a6d3Smrg		;;
15586c19a6d3Smrg	clipper-intergraph)
15596c19a6d3Smrg		os=clix
15600ad07f78Smrg		;;
15616c19a6d3Smrg	hexagon-*)
15626c19a6d3Smrg		os=elf
15630ad07f78Smrg		;;
15644028d71eSmrg	tic54x-*)
15656c19a6d3Smrg		os=coff
15664028d71eSmrg		;;
15674028d71eSmrg	tic55x-*)
15686c19a6d3Smrg		os=coff
15694028d71eSmrg		;;
15704028d71eSmrg	tic6x-*)
15716c19a6d3Smrg		os=coff
15724028d71eSmrg		;;
15730ad07f78Smrg	# This must come before the *-dec entry.
15740ad07f78Smrg	pdp10-*)
15756c19a6d3Smrg		os=tops20
15760ad07f78Smrg		;;
15770ad07f78Smrg	pdp11-*)
15786c19a6d3Smrg		os=none
15790ad07f78Smrg		;;
15800ad07f78Smrg	*-dec | vax-*)
15816c19a6d3Smrg		os=ultrix4.2
15820ad07f78Smrg		;;
15830ad07f78Smrg	m68*-apollo)
15846c19a6d3Smrg		os=domain
15850ad07f78Smrg		;;
15860ad07f78Smrg	i386-sun)
15876c19a6d3Smrg		os=sunos4.0.2
15880ad07f78Smrg		;;
15890ad07f78Smrg	m68000-sun)
15906c19a6d3Smrg		os=sunos3
15910ad07f78Smrg		;;
15920ad07f78Smrg	m68*-cisco)
15936c19a6d3Smrg		os=aout
15940ad07f78Smrg		;;
15956c19a6d3Smrg	mep-*)
15966c19a6d3Smrg		os=elf
15970ad07f78Smrg		;;
15980ad07f78Smrg	mips*-cisco)
15996c19a6d3Smrg		os=elf
16000ad07f78Smrg		;;
16010ad07f78Smrg	mips*-*)
16026c19a6d3Smrg		os=elf
16030ad07f78Smrg		;;
16040ad07f78Smrg	or32-*)
16056c19a6d3Smrg		os=coff
16060ad07f78Smrg		;;
16070ad07f78Smrg	*-tti)	# must be before sparc entry or we get the wrong os.
16086c19a6d3Smrg		os=sysv3
16090ad07f78Smrg		;;
16100ad07f78Smrg	sparc-* | *-sun)
16116c19a6d3Smrg		os=sunos4.1.1
16120ad07f78Smrg		;;
16136c19a6d3Smrg	pru-*)
16146c19a6d3Smrg		os=elf
16150ad07f78Smrg		;;
16166c19a6d3Smrg	*-be)
16176c19a6d3Smrg		os=beos
16180ad07f78Smrg		;;
16190ad07f78Smrg	*-ibm)
16206c19a6d3Smrg		os=aix
16210ad07f78Smrg		;;
16226c19a6d3Smrg	*-knuth)
16236c19a6d3Smrg		os=mmixware
16240ad07f78Smrg		;;
16250ad07f78Smrg	*-wec)
16266c19a6d3Smrg		os=proelf
16270ad07f78Smrg		;;
16280ad07f78Smrg	*-winbond)
16296c19a6d3Smrg		os=proelf
16300ad07f78Smrg		;;
16310ad07f78Smrg	*-oki)
16326c19a6d3Smrg		os=proelf
16330ad07f78Smrg		;;
16340ad07f78Smrg	*-hp)
16356c19a6d3Smrg		os=hpux
16360ad07f78Smrg		;;
16370ad07f78Smrg	*-hitachi)
16386c19a6d3Smrg		os=hiux
16390ad07f78Smrg		;;
16400ad07f78Smrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
16416c19a6d3Smrg		os=sysv
16420ad07f78Smrg		;;
16430ad07f78Smrg	*-cbm)
16446c19a6d3Smrg		os=amigaos
16450ad07f78Smrg		;;
16460ad07f78Smrg	*-dg)
16476c19a6d3Smrg		os=dgux
16480ad07f78Smrg		;;
16490ad07f78Smrg	*-dolphin)
16506c19a6d3Smrg		os=sysv3
16510ad07f78Smrg		;;
16520ad07f78Smrg	m68k-ccur)
16536c19a6d3Smrg		os=rtu
16540ad07f78Smrg		;;
16550ad07f78Smrg	m88k-omron*)
16566c19a6d3Smrg		os=luna
16570ad07f78Smrg		;;
16586c19a6d3Smrg	*-next)
16596c19a6d3Smrg		os=nextstep
16600ad07f78Smrg		;;
16610ad07f78Smrg	*-sequent)
16626c19a6d3Smrg		os=ptx
16630ad07f78Smrg		;;
16640ad07f78Smrg	*-crds)
16656c19a6d3Smrg		os=unos
16660ad07f78Smrg		;;
16670ad07f78Smrg	*-ns)
16686c19a6d3Smrg		os=genix
16690ad07f78Smrg		;;
16700ad07f78Smrg	i370-*)
16716c19a6d3Smrg		os=mvs
16720ad07f78Smrg		;;
16730ad07f78Smrg	*-gould)
16746c19a6d3Smrg		os=sysv
16750ad07f78Smrg		;;
16760ad07f78Smrg	*-highlevel)
16776c19a6d3Smrg		os=bsd
16780ad07f78Smrg		;;
16790ad07f78Smrg	*-encore)
16806c19a6d3Smrg		os=bsd
16810ad07f78Smrg		;;
16820ad07f78Smrg	*-sgi)
16836c19a6d3Smrg		os=irix
16840ad07f78Smrg		;;
16850ad07f78Smrg	*-siemens)
16866c19a6d3Smrg		os=sysv4
16870ad07f78Smrg		;;
16880ad07f78Smrg	*-masscomp)
16896c19a6d3Smrg		os=rtu
16900ad07f78Smrg		;;
16910ad07f78Smrg	f30[01]-fujitsu | f700-fujitsu)
16926c19a6d3Smrg		os=uxpv
16930ad07f78Smrg		;;
16940ad07f78Smrg	*-rom68k)
16956c19a6d3Smrg		os=coff
16960ad07f78Smrg		;;
16970ad07f78Smrg	*-*bug)
16986c19a6d3Smrg		os=coff
16990ad07f78Smrg		;;
17000ad07f78Smrg	*-apple)
17016c19a6d3Smrg		os=macos
17020ad07f78Smrg		;;
17030ad07f78Smrg	*-atari*)
17046c19a6d3Smrg		os=mint
17056c19a6d3Smrg		;;
17066c19a6d3Smrg	*-wrs)
17076c19a6d3Smrg		os=vxworks
17080ad07f78Smrg		;;
17090ad07f78Smrg	*)
17106c19a6d3Smrg		os=none
17110ad07f78Smrg		;;
17120ad07f78Smrgesac
17136c19a6d3Smrg
17140ad07f78Smrgfi
17150ad07f78Smrg
17166c19a6d3Smrg# Now, validate our (potentially fixed-up) OS.
17176c19a6d3Smrgcase $os in
17186c19a6d3Smrg	# Sometimes we do "kernel-libc", so those need to count as OSes.
17196c19a6d3Smrg	musl* | newlib* | relibc* | uclibc*)
17206c19a6d3Smrg		;;
17216c19a6d3Smrg	# Likewise for "kernel-abi"
17226c19a6d3Smrg	eabi* | gnueabi*)
17236c19a6d3Smrg		;;
17246c19a6d3Smrg	# VxWorks passes extra cpu info in the 4th filed.
17256c19a6d3Smrg	simlinux | simwindows | spe)
17266c19a6d3Smrg		;;
17276c19a6d3Smrg	# Now accept the basic system types.
17286c19a6d3Smrg	# The portable systems comes first.
17296c19a6d3Smrg	# Each alternative MUST end in a * to match a version number.
17306c19a6d3Smrg	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
17316c19a6d3Smrg	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
17326c19a6d3Smrg	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
17336c19a6d3Smrg	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
17346c19a6d3Smrg	     | hiux* | abug | nacl* | netware* | windows* \
17356c19a6d3Smrg	     | os9* | macos* | osx* | ios* \
17366c19a6d3Smrg	     | mpw* | magic* | mmixware* | mon960* | lnews* \
17376c19a6d3Smrg	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
17386c19a6d3Smrg	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
17396c19a6d3Smrg	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
17406c19a6d3Smrg	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
17416c19a6d3Smrg	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
17426c19a6d3Smrg	     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
17436c19a6d3Smrg	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
17446c19a6d3Smrg	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
17456c19a6d3Smrg	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
17466c19a6d3Smrg	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
17476c19a6d3Smrg	     | chorusrdb* | cegcc* | glidix* | serenity* \
17486c19a6d3Smrg	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
17496c19a6d3Smrg	     | midipix* | mingw32* | mingw64* | mint* \
17506c19a6d3Smrg	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
17516c19a6d3Smrg	     | interix* | uwin* | mks* | rhapsody* | darwin* \
17526c19a6d3Smrg	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
17536c19a6d3Smrg	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
17546c19a6d3Smrg	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
17556c19a6d3Smrg	     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
17566c19a6d3Smrg	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
17576c19a6d3Smrg	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
17586c19a6d3Smrg	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
17596c19a6d3Smrg	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
17606c19a6d3Smrg	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
17616c19a6d3Smrg	     | fiwix* | mlibc* )
17626c19a6d3Smrg		;;
17636c19a6d3Smrg	# This one is extra strict with allowed versions
17646c19a6d3Smrg	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
17656c19a6d3Smrg		# Don't forget version if it is 3.2v4 or newer.
17666c19a6d3Smrg		;;
17676c19a6d3Smrg	none)
17686c19a6d3Smrg		;;
17696c19a6d3Smrg	kernel* )
17706c19a6d3Smrg		# Restricted further below
17716c19a6d3Smrg		;;
17726c19a6d3Smrg	*)
17736c19a6d3Smrg		echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
17746c19a6d3Smrg		exit 1
17756c19a6d3Smrg		;;
17766c19a6d3Smrgesac
17776c19a6d3Smrg
17786c19a6d3Smrg# As a final step for OS-related things, validate the OS-kernel combination
17796c19a6d3Smrg# (given a valid OS), if there is a kernel.
17806c19a6d3Smrgcase $kernel-$os in
17816c19a6d3Smrg	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
17826c19a6d3Smrg		   | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
17836c19a6d3Smrg		;;
17846c19a6d3Smrg	uclinux-uclibc* )
17856c19a6d3Smrg		;;
17866c19a6d3Smrg	managarm-mlibc* | managarm-kernel* )
17876c19a6d3Smrg		;;
17886c19a6d3Smrg	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
17896c19a6d3Smrg		# These are just libc implementations, not actual OSes, and thus
17906c19a6d3Smrg		# require a kernel.
17916c19a6d3Smrg		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
17926c19a6d3Smrg		exit 1
17936c19a6d3Smrg		;;
17946c19a6d3Smrg	-kernel* )
17956c19a6d3Smrg		echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
17966c19a6d3Smrg		exit 1
17976c19a6d3Smrg		;;
17986c19a6d3Smrg	*-kernel* )
17996c19a6d3Smrg		echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
18006c19a6d3Smrg		exit 1
18016c19a6d3Smrg		;;
18026c19a6d3Smrg	kfreebsd*-gnu* | kopensolaris*-gnu*)
18036c19a6d3Smrg		;;
18046c19a6d3Smrg	vxworks-simlinux | vxworks-simwindows | vxworks-spe)
18056c19a6d3Smrg		;;
18066c19a6d3Smrg	nto-qnx*)
18076c19a6d3Smrg		;;
18086c19a6d3Smrg	os2-emx)
18096c19a6d3Smrg		;;
18106c19a6d3Smrg	*-eabi* | *-gnueabi*)
18116c19a6d3Smrg		;;
18126c19a6d3Smrg	-*)
18136c19a6d3Smrg		# Blank kernel with real OS is always fine.
18146c19a6d3Smrg		;;
18156c19a6d3Smrg	*-*)
18166c19a6d3Smrg		echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
18176c19a6d3Smrg		exit 1
18186c19a6d3Smrg		;;
18196c19a6d3Smrgesac
18206c19a6d3Smrg
18210ad07f78Smrg# Here we handle the case where we know the os, and the CPU type, but not the
18220ad07f78Smrg# manufacturer.  We pick the logical manufacturer.
18236c19a6d3Smrgcase $vendor in
18246c19a6d3Smrg	unknown)
18256c19a6d3Smrg		case $cpu-$os in
18266c19a6d3Smrg			*-riscix*)
18270ad07f78Smrg				vendor=acorn
18280ad07f78Smrg				;;
18296c19a6d3Smrg			*-sunos*)
18300ad07f78Smrg				vendor=sun
18310ad07f78Smrg				;;
18326c19a6d3Smrg			*-cnk* | *-aix*)
18330ad07f78Smrg				vendor=ibm
18340ad07f78Smrg				;;
18356c19a6d3Smrg			*-beos*)
18360ad07f78Smrg				vendor=be
18370ad07f78Smrg				;;
18386c19a6d3Smrg			*-hpux*)
18390ad07f78Smrg				vendor=hp
18400ad07f78Smrg				;;
18416c19a6d3Smrg			*-mpeix*)
18420ad07f78Smrg				vendor=hp
18430ad07f78Smrg				;;
18446c19a6d3Smrg			*-hiux*)
18450ad07f78Smrg				vendor=hitachi
18460ad07f78Smrg				;;
18476c19a6d3Smrg			*-unos*)
18480ad07f78Smrg				vendor=crds
18490ad07f78Smrg				;;
18506c19a6d3Smrg			*-dgux*)
18510ad07f78Smrg				vendor=dg
18520ad07f78Smrg				;;
18536c19a6d3Smrg			*-luna*)
18540ad07f78Smrg				vendor=omron
18550ad07f78Smrg				;;
18566c19a6d3Smrg			*-genix*)
18570ad07f78Smrg				vendor=ns
18580ad07f78Smrg				;;
18596c19a6d3Smrg			*-clix*)
18606c19a6d3Smrg				vendor=intergraph
18616c19a6d3Smrg				;;
18626c19a6d3Smrg			*-mvs* | *-opened*)
18636c19a6d3Smrg				vendor=ibm
18646c19a6d3Smrg				;;
18656c19a6d3Smrg			*-os400*)
18660ad07f78Smrg				vendor=ibm
18670ad07f78Smrg				;;
18686c19a6d3Smrg			s390-* | s390x-*)
18690ad07f78Smrg				vendor=ibm
18700ad07f78Smrg				;;
18716c19a6d3Smrg			*-ptx*)
18720ad07f78Smrg				vendor=sequent
18730ad07f78Smrg				;;
18746c19a6d3Smrg			*-tpf*)
18750ad07f78Smrg				vendor=ibm
18760ad07f78Smrg				;;
18776c19a6d3Smrg			*-vxsim* | *-vxworks* | *-windiss*)
18780ad07f78Smrg				vendor=wrs
18790ad07f78Smrg				;;
18806c19a6d3Smrg			*-aux*)
18810ad07f78Smrg				vendor=apple
18820ad07f78Smrg				;;
18836c19a6d3Smrg			*-hms*)
18840ad07f78Smrg				vendor=hitachi
18850ad07f78Smrg				;;
18866c19a6d3Smrg			*-mpw* | *-macos*)
18870ad07f78Smrg				vendor=apple
18880ad07f78Smrg				;;
18896c19a6d3Smrg			*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
18900ad07f78Smrg				vendor=atari
18910ad07f78Smrg				;;
18926c19a6d3Smrg			*-vos*)
18930ad07f78Smrg				vendor=stratus
18940ad07f78Smrg				;;
18950ad07f78Smrg		esac
18960ad07f78Smrg		;;
18970ad07f78Smrgesac
18980ad07f78Smrg
18996c19a6d3Smrgecho "$cpu-$vendor-${kernel:+$kernel-}$os"
19000ad07f78Smrgexit
19010ad07f78Smrg
19020ad07f78Smrg# Local variables:
19036c19a6d3Smrg# eval: (add-hook 'before-save-hook 'time-stamp)
19040ad07f78Smrg# time-stamp-start: "timestamp='"
19050ad07f78Smrg# time-stamp-format: "%:y-%02m-%02d"
19060ad07f78Smrg# time-stamp-end: "'"
19070ad07f78Smrg# End:
1908