config.sub revision 46845023
1d6c0b56eSmrg#! /bin/sh
2d6c0b56eSmrg# Configuration validation subroutine script.
324b90cf4Smrg#   Copyright 1992-2018 Free Software Foundation, Inc.
4d6c0b56eSmrg
546845023Smrgtimestamp='2018-08-29'
6d6c0b56eSmrg
7d6c0b56eSmrg# This file is free software; you can redistribute it and/or modify it
8d6c0b56eSmrg# under the terms of the GNU General Public License as published by
9d6c0b56eSmrg# the Free Software Foundation; either version 3 of the License, or
10d6c0b56eSmrg# (at your option) any later version.
11d6c0b56eSmrg#
12d6c0b56eSmrg# This program is distributed in the hope that it will be useful, but
13d6c0b56eSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of
14d6c0b56eSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15d6c0b56eSmrg# General Public License for more details.
16d6c0b56eSmrg#
17d6c0b56eSmrg# You should have received a copy of the GNU General Public License
1824b90cf4Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
19d6c0b56eSmrg#
20d6c0b56eSmrg# As a special exception to the GNU General Public License, if you
21d6c0b56eSmrg# distribute this file as part of a program that contains a
22d6c0b56eSmrg# configuration script generated by Autoconf, you may include it under
23d6c0b56eSmrg# the same distribution terms that you use for the rest of that
24d6c0b56eSmrg# program.  This Exception is an additional permission under section 7
25d6c0b56eSmrg# of the GNU General Public License, version 3 ("GPLv3").
26d6c0b56eSmrg
27d6c0b56eSmrg
28d6c0b56eSmrg# Please send patches to <config-patches@gnu.org>.
29d6c0b56eSmrg#
30d6c0b56eSmrg# Configuration subroutine to validate and canonicalize a configuration type.
31d6c0b56eSmrg# Supply the specified configuration type as an argument.
32d6c0b56eSmrg# If it is invalid, we print an error message on stderr and exit with code 1.
33d6c0b56eSmrg# Otherwise, we print the canonical config type on stdout and succeed.
34d6c0b56eSmrg
35d6c0b56eSmrg# You can get the latest version of this script from:
3624b90cf4Smrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
37d6c0b56eSmrg
38d6c0b56eSmrg# This file is supposed to be the same for all GNU packages
39d6c0b56eSmrg# and recognize all the CPU types, system types and aliases
40d6c0b56eSmrg# that are meaningful with *any* GNU software.
41d6c0b56eSmrg# Each package is responsible for reporting which valid configurations
42d6c0b56eSmrg# it does not support.  The user should be able to distinguish
43d6c0b56eSmrg# a failure to support a valid configuration from a meaningless
44d6c0b56eSmrg# configuration.
45d6c0b56eSmrg
46d6c0b56eSmrg# The goal of this file is to map all the various variations of a given
47d6c0b56eSmrg# machine specification into a single specification in the form:
48d6c0b56eSmrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
49d6c0b56eSmrg# or in some cases, the newer four-part form:
50d6c0b56eSmrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
51d6c0b56eSmrg# It is wrong to echo any other type of specification.
52d6c0b56eSmrg
53d6c0b56eSmrgme=`echo "$0" | sed -e 's,.*/,,'`
54d6c0b56eSmrg
55d6c0b56eSmrgusage="\
5611bf0794SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
57d6c0b56eSmrg
58d6c0b56eSmrgCanonicalize a configuration name.
59d6c0b56eSmrg
6024b90cf4SmrgOptions:
61d6c0b56eSmrg  -h, --help         print this help, then exit
62d6c0b56eSmrg  -t, --time-stamp   print date of last modification, then exit
63d6c0b56eSmrg  -v, --version      print version number, then exit
64d6c0b56eSmrg
65d6c0b56eSmrgReport bugs and patches to <config-patches@gnu.org>."
66d6c0b56eSmrg
67d6c0b56eSmrgversion="\
68d6c0b56eSmrgGNU config.sub ($timestamp)
69d6c0b56eSmrg
7024b90cf4SmrgCopyright 1992-2018 Free Software Foundation, Inc.
71d6c0b56eSmrg
72d6c0b56eSmrgThis is free software; see the source for copying conditions.  There is NO
73d6c0b56eSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
74d6c0b56eSmrg
75d6c0b56eSmrghelp="
76d6c0b56eSmrgTry \`$me --help' for more information."
77d6c0b56eSmrg
78d6c0b56eSmrg# Parse command line
79d6c0b56eSmrgwhile test $# -gt 0 ; do
80d6c0b56eSmrg  case $1 in
81d6c0b56eSmrg    --time-stamp | --time* | -t )
82d6c0b56eSmrg       echo "$timestamp" ; exit ;;
83d6c0b56eSmrg    --version | -v )
84d6c0b56eSmrg       echo "$version" ; exit ;;
85d6c0b56eSmrg    --help | --h* | -h )
86d6c0b56eSmrg       echo "$usage"; exit ;;
87d6c0b56eSmrg    -- )     # Stop option processing
88d6c0b56eSmrg       shift; break ;;
89d6c0b56eSmrg    - )	# Use stdin as input.
90d6c0b56eSmrg       break ;;
91d6c0b56eSmrg    -* )
92d6c0b56eSmrg       echo "$me: invalid option $1$help"
93d6c0b56eSmrg       exit 1 ;;
94d6c0b56eSmrg
95d6c0b56eSmrg    *local*)
96d6c0b56eSmrg       # First pass through any local machine types.
9724b90cf4Smrg       echo "$1"
98d6c0b56eSmrg       exit ;;
99d6c0b56eSmrg
100d6c0b56eSmrg    * )
101d6c0b56eSmrg       break ;;
102d6c0b56eSmrg  esac
103d6c0b56eSmrgdone
104d6c0b56eSmrg
105d6c0b56eSmrgcase $# in
106d6c0b56eSmrg 0) echo "$me: missing argument$help" >&2
107d6c0b56eSmrg    exit 1;;
108d6c0b56eSmrg 1) ;;
109d6c0b56eSmrg *) echo "$me: too many arguments$help" >&2
110d6c0b56eSmrg    exit 1;;
111d6c0b56eSmrgesac
112d6c0b56eSmrg
11346845023Smrg# Split fields of configuration type
11446845023SmrgIFS="-" read -r field1 field2 field3 field4 <<EOF
11546845023Smrg$1
11646845023SmrgEOF
117d6c0b56eSmrg
11846845023Smrg# Separate into logical components for further validation
11946845023Smrgcase $1 in
12046845023Smrg	*-*-*-*-*)
12146845023Smrg		echo Invalid configuration \`"$1"\': more than four components >&2
12246845023Smrg		exit 1
123d6c0b56eSmrg		;;
12446845023Smrg	*-*-*-*)
12546845023Smrg		basic_machine=$field1-$field2
12646845023Smrg		os=$field3-$field4
127d6c0b56eSmrg		;;
12846845023Smrg	*-*-*)
12946845023Smrg		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
13046845023Smrg		# parts
13146845023Smrg		maybe_os=$field2-$field3
13246845023Smrg		case $maybe_os in
13346845023Smrg			nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
13446845023Smrg			| linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
13546845023Smrg			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
13646845023Smrg			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
13746845023Smrg			| storm-chaos* | os2-emx* | rtmk-nova*)
13846845023Smrg				basic_machine=$field1
13946845023Smrg				os=$maybe_os
14046845023Smrg				;;
14146845023Smrg			android-linux)
14246845023Smrg				basic_machine=$field1-unknown
14346845023Smrg				os=linux-android
14446845023Smrg				;;
14546845023Smrg			*)
14646845023Smrg				basic_machine=$field1-$field2
14746845023Smrg				os=$field3
14846845023Smrg				;;
14946845023Smrg		esac
150d6c0b56eSmrg		;;
15146845023Smrg	*-*)
15246845023Smrg		# A lone config we happen to match not fitting any patern
15346845023Smrg		case $field1-$field2 in
15446845023Smrg			decstation-3100)
15546845023Smrg				basic_machine=mips-dec
15646845023Smrg				os=
15746845023Smrg				;;
15846845023Smrg			*-*)
15946845023Smrg				# Second component is usually, but not always the OS
16046845023Smrg				case $field2 in
16146845023Smrg					# Prevent following clause from handling this valid os
16246845023Smrg					sun*os*)
16346845023Smrg						basic_machine=$field1
16446845023Smrg						os=$field2
16546845023Smrg						;;
16646845023Smrg					# Manufacturers
16746845023Smrg					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
16846845023Smrg					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
16946845023Smrg					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
17046845023Smrg					| convergent* | ncr* | news | 32* | 3600* | 3100* \
17146845023Smrg					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
17246845023Smrg					| ultra | tti* | harris | dolphin | highlevel | gould \
17346845023Smrg					| cbm | ns | masscomp | apple | axis | knuth | cray \
17446845023Smrg					| microblaze* | sim | cisco \
17546845023Smrg					| oki | wec | wrs | winbond)
17646845023Smrg						basic_machine=$field1-$field2
17746845023Smrg						os=
17846845023Smrg						;;
17946845023Smrg					*)
18046845023Smrg						basic_machine=$field1
18146845023Smrg						os=$field2
18246845023Smrg						;;
18346845023Smrg				esac
18446845023Smrg			;;
18546845023Smrg		esac
186d6c0b56eSmrg		;;
18746845023Smrg	*)
18846845023Smrg		# Convert single-component short-hands not valid as part of
18946845023Smrg		# multi-component configurations.
19046845023Smrg		case $field1 in
19146845023Smrg			386bsd)
19246845023Smrg				basic_machine=i386-pc
19346845023Smrg				os=bsd
19446845023Smrg				;;
19546845023Smrg			a29khif)
19646845023Smrg				basic_machine=a29k-amd
19746845023Smrg				os=udi
19846845023Smrg				;;
19946845023Smrg			adobe68k)
20046845023Smrg				basic_machine=m68010-adobe
20146845023Smrg				os=scout
20246845023Smrg				;;
20346845023Smrg			alliant)
20446845023Smrg				basic_machine=fx80-alliant
20546845023Smrg				os=
20646845023Smrg				;;
20746845023Smrg			altos | altos3068)
20846845023Smrg				basic_machine=m68k-altos
20946845023Smrg				os=
21046845023Smrg				;;
21146845023Smrg			am29k)
21246845023Smrg				basic_machine=a29k-none
21346845023Smrg				os=bsd
21446845023Smrg				;;
21546845023Smrg			amdahl)
21646845023Smrg				basic_machine=580-amdahl
21746845023Smrg				os=sysv
21846845023Smrg				;;
21946845023Smrg			amiga)
22046845023Smrg				basic_machine=m68k-unknown
22146845023Smrg				os=
22246845023Smrg				;;
22346845023Smrg			amigaos | amigados)
22446845023Smrg				basic_machine=m68k-unknown
22546845023Smrg				os=amigaos
22646845023Smrg				;;
22746845023Smrg			amigaunix | amix)
22846845023Smrg				basic_machine=m68k-unknown
22946845023Smrg				os=sysv4
23046845023Smrg				;;
23146845023Smrg			apollo68)
23246845023Smrg				basic_machine=m68k-apollo
23346845023Smrg				os=sysv
23446845023Smrg				;;
23546845023Smrg			apollo68bsd)
23646845023Smrg				basic_machine=m68k-apollo
23746845023Smrg				os=bsd
23846845023Smrg				;;
23946845023Smrg			aros)
24046845023Smrg				basic_machine=i386-pc
24146845023Smrg				os=aros
24246845023Smrg				;;
24346845023Smrg			aux)
24446845023Smrg				basic_machine=m68k-apple
24546845023Smrg				os=aux
24646845023Smrg				;;
24746845023Smrg			balance)
24846845023Smrg				basic_machine=ns32k-sequent
24946845023Smrg				os=dynix
25046845023Smrg				;;
25146845023Smrg			blackfin)
25246845023Smrg				basic_machine=bfin-unknown
25346845023Smrg				os=linux
25446845023Smrg				;;
25546845023Smrg			cegcc)
25646845023Smrg				basic_machine=arm-unknown
25746845023Smrg				os=cegcc
25846845023Smrg				;;
25946845023Smrg			convex-c1)
26046845023Smrg				basic_machine=c1-convex
26146845023Smrg				os=bsd
26246845023Smrg				;;
26346845023Smrg			convex-c2)
26446845023Smrg				basic_machine=c2-convex
26546845023Smrg				os=bsd
26646845023Smrg				;;
26746845023Smrg			convex-c32)
26846845023Smrg				basic_machine=c32-convex
26946845023Smrg				os=bsd
27046845023Smrg				;;
27146845023Smrg			convex-c34)
27246845023Smrg				basic_machine=c34-convex
27346845023Smrg				os=bsd
27446845023Smrg				;;
27546845023Smrg			convex-c38)
27646845023Smrg				basic_machine=c38-convex
27746845023Smrg				os=bsd
27846845023Smrg				;;
27946845023Smrg			cray)
28046845023Smrg				basic_machine=j90-cray
28146845023Smrg				os=unicos
28246845023Smrg				;;
28346845023Smrg			crds | unos)
28446845023Smrg				basic_machine=m68k-crds
28546845023Smrg				os=
28646845023Smrg				;;
28746845023Smrg			da30)
28846845023Smrg				basic_machine=m68k-da30
28946845023Smrg				os=
29046845023Smrg				;;
29146845023Smrg			decstation | pmax | pmin | dec3100 | decstatn)
29246845023Smrg				basic_machine=mips-dec
29346845023Smrg				os=
29446845023Smrg				;;
29546845023Smrg			delta88)
29646845023Smrg				basic_machine=m88k-motorola
29746845023Smrg				os=sysv3
29846845023Smrg				;;
29946845023Smrg			dicos)
30046845023Smrg				basic_machine=i686-pc
30146845023Smrg				os=dicos
30246845023Smrg				;;
30346845023Smrg			djgpp)
30446845023Smrg				basic_machine=i586-pc
30546845023Smrg				os=msdosdjgpp
30646845023Smrg				;;
30746845023Smrg			ebmon29k)
30846845023Smrg				basic_machine=a29k-amd
30946845023Smrg				os=ebmon
31046845023Smrg				;;
31146845023Smrg			es1800 | OSE68k | ose68k | ose | OSE)
31246845023Smrg				basic_machine=m68k-ericsson
31346845023Smrg				os=ose
31446845023Smrg				;;
31546845023Smrg			gmicro)
31646845023Smrg				basic_machine=tron-gmicro
31746845023Smrg				os=sysv
31846845023Smrg				;;
31946845023Smrg			go32)
32046845023Smrg				basic_machine=i386-pc
32146845023Smrg				os=go32
32246845023Smrg				;;
32346845023Smrg			h8300hms)
32446845023Smrg				basic_machine=h8300-hitachi
32546845023Smrg				os=hms
32646845023Smrg				;;
32746845023Smrg			h8300xray)
32846845023Smrg				basic_machine=h8300-hitachi
32946845023Smrg				os=xray
33046845023Smrg				;;
33146845023Smrg			h8500hms)
33246845023Smrg				basic_machine=h8500-hitachi
33346845023Smrg				os=hms
33446845023Smrg				;;
33546845023Smrg			harris)
33646845023Smrg				basic_machine=m88k-harris
33746845023Smrg				os=sysv3
33846845023Smrg				;;
33946845023Smrg			hp300)
34046845023Smrg				basic_machine=m68k-hp
34146845023Smrg				;;
34246845023Smrg			hp300bsd)
34346845023Smrg				basic_machine=m68k-hp
34446845023Smrg				os=bsd
34546845023Smrg				;;
34646845023Smrg			hp300hpux)
34746845023Smrg				basic_machine=m68k-hp
34846845023Smrg				os=hpux
34946845023Smrg				;;
35046845023Smrg			hppaosf)
35146845023Smrg				basic_machine=hppa1.1-hp
35246845023Smrg				os=osf
35346845023Smrg				;;
35446845023Smrg			hppro)
35546845023Smrg				basic_machine=hppa1.1-hp
35646845023Smrg				os=proelf
35746845023Smrg				;;
35846845023Smrg			i386mach)
35946845023Smrg				basic_machine=i386-mach
36046845023Smrg				os=mach
36146845023Smrg				;;
36246845023Smrg			vsta)
36346845023Smrg				basic_machine=i386-pc
36446845023Smrg				os=vsta
36546845023Smrg				;;
36646845023Smrg			isi68 | isi)
36746845023Smrg				basic_machine=m68k-isi
36846845023Smrg				os=sysv
36946845023Smrg				;;
37046845023Smrg			m68knommu)
37146845023Smrg				basic_machine=m68k-unknown
37246845023Smrg				os=linux
37346845023Smrg				;;
37446845023Smrg			magnum | m3230)
37546845023Smrg				basic_machine=mips-mips
37646845023Smrg				os=sysv
37746845023Smrg				;;
37846845023Smrg			merlin)
37946845023Smrg				basic_machine=ns32k-utek
38046845023Smrg				os=sysv
38146845023Smrg				;;
38246845023Smrg			mingw64)
38346845023Smrg				basic_machine=x86_64-pc
38446845023Smrg				os=mingw64
38546845023Smrg				;;
38646845023Smrg			mingw32)
38746845023Smrg				basic_machine=i686-pc
38846845023Smrg				os=mingw32
38946845023Smrg				;;
39046845023Smrg			mingw32ce)
39146845023Smrg				basic_machine=arm-unknown
39246845023Smrg				os=mingw32ce
39346845023Smrg				;;
39446845023Smrg			monitor)
39546845023Smrg				basic_machine=m68k-rom68k
39646845023Smrg				os=coff
39746845023Smrg				;;
39846845023Smrg			morphos)
39946845023Smrg				basic_machine=powerpc-unknown
40046845023Smrg				os=morphos
40146845023Smrg				;;
40246845023Smrg			moxiebox)
40346845023Smrg				basic_machine=moxie-unknown
40446845023Smrg				os=moxiebox
40546845023Smrg				;;
40646845023Smrg			msdos)
40746845023Smrg				basic_machine=i386-pc
40846845023Smrg				os=msdos
40946845023Smrg				;;
41046845023Smrg			msys)
41146845023Smrg				basic_machine=i686-pc
41246845023Smrg				os=msys
41346845023Smrg				;;
41446845023Smrg			mvs)
41546845023Smrg				basic_machine=i370-ibm
41646845023Smrg				os=mvs
41746845023Smrg				;;
41846845023Smrg			nacl)
41946845023Smrg				basic_machine=le32-unknown
42046845023Smrg				os=nacl
42146845023Smrg				;;
42246845023Smrg			ncr3000)
42346845023Smrg				basic_machine=i486-ncr
42446845023Smrg				os=sysv4
42546845023Smrg				;;
42646845023Smrg			netbsd386)
42746845023Smrg				basic_machine=i386-pc
42846845023Smrg				os=netbsd
42946845023Smrg				;;
43046845023Smrg			netwinder)
43146845023Smrg				basic_machine=armv4l-rebel
43246845023Smrg				os=linux
43346845023Smrg				;;
43446845023Smrg			news | news700 | news800 | news900)
43546845023Smrg				basic_machine=m68k-sony
43646845023Smrg				os=newsos
43746845023Smrg				;;
43846845023Smrg			news1000)
43946845023Smrg				basic_machine=m68030-sony
44046845023Smrg				os=newsos
44146845023Smrg				;;
44246845023Smrg			necv70)
44346845023Smrg				basic_machine=v70-nec
44446845023Smrg				os=sysv
44546845023Smrg				;;
44646845023Smrg			nh3000)
44746845023Smrg				basic_machine=m68k-harris
44846845023Smrg				os=cxux
44946845023Smrg				;;
45046845023Smrg			nh[45]000)
45146845023Smrg				basic_machine=m88k-harris
45246845023Smrg				os=cxux
45346845023Smrg				;;
45446845023Smrg			nindy960)
45546845023Smrg				basic_machine=i960-intel
45646845023Smrg				os=nindy
45746845023Smrg				;;
45846845023Smrg			mon960)
45946845023Smrg				basic_machine=i960-intel
46046845023Smrg				os=mon960
46146845023Smrg				;;
46246845023Smrg			nonstopux)
46346845023Smrg				basic_machine=mips-compaq
46446845023Smrg				os=nonstopux
46546845023Smrg				;;
46646845023Smrg			os400)
46746845023Smrg				basic_machine=powerpc-ibm
46846845023Smrg				os=os400
46946845023Smrg				;;
47046845023Smrg			OSE68000 | ose68000)
47146845023Smrg				basic_machine=m68000-ericsson
47246845023Smrg				os=ose
47346845023Smrg				;;
47446845023Smrg			os68k)
47546845023Smrg				basic_machine=m68k-none
47646845023Smrg				os=os68k
47746845023Smrg				;;
47846845023Smrg			paragon)
47946845023Smrg				basic_machine=i860-intel
48046845023Smrg				os=osf
48146845023Smrg				;;
48246845023Smrg			parisc)
48346845023Smrg				basic_machine=hppa-unknown
48446845023Smrg				os=linux
48546845023Smrg				;;
48646845023Smrg			pw32)
48746845023Smrg				basic_machine=i586-unknown
48846845023Smrg				os=pw32
48946845023Smrg				;;
49046845023Smrg			rdos | rdos64)
49146845023Smrg				basic_machine=x86_64-pc
49246845023Smrg				os=rdos
49346845023Smrg				;;
49446845023Smrg			rdos32)
49546845023Smrg				basic_machine=i386-pc
49646845023Smrg				os=rdos
49746845023Smrg				;;
49846845023Smrg			rom68k)
49946845023Smrg				basic_machine=m68k-rom68k
50046845023Smrg				os=coff
50146845023Smrg				;;
50246845023Smrg			sa29200)
50346845023Smrg				basic_machine=a29k-amd
50446845023Smrg				os=udi
50546845023Smrg				;;
50646845023Smrg			sei)
50746845023Smrg				basic_machine=mips-sei
50846845023Smrg				os=seiux
50946845023Smrg				;;
51046845023Smrg			sequent)
51146845023Smrg				basic_machine=i386-sequent
51246845023Smrg				os=
51346845023Smrg				;;
51446845023Smrg			sps7)
51546845023Smrg				basic_machine=m68k-bull
51646845023Smrg				os=sysv2
51746845023Smrg				;;
51846845023Smrg			st2000)
51946845023Smrg				basic_machine=m68k-tandem
52046845023Smrg				os=
52146845023Smrg				;;
52246845023Smrg			stratus)
52346845023Smrg				basic_machine=i860-stratus
52446845023Smrg				os=sysv4
52546845023Smrg				;;
52646845023Smrg			sun2)
52746845023Smrg				basic_machine=m68000-sun
52846845023Smrg				os=
52946845023Smrg				;;
53046845023Smrg			sun2os3)
53146845023Smrg				basic_machine=m68000-sun
53246845023Smrg				os=sunos3
53346845023Smrg				;;
53446845023Smrg			sun2os4)
53546845023Smrg				basic_machine=m68000-sun
53646845023Smrg				os=sunos4
53746845023Smrg				;;
53846845023Smrg			sun3)
53946845023Smrg				basic_machine=m68k-sun
54046845023Smrg				os=
54146845023Smrg				;;
54246845023Smrg			sun3os3)
54346845023Smrg				basic_machine=m68k-sun
54446845023Smrg				os=sunos3
54546845023Smrg				;;
54646845023Smrg			sun3os4)
54746845023Smrg				basic_machine=m68k-sun
54846845023Smrg				os=sunos4
54946845023Smrg				;;
55046845023Smrg			sun4)
55146845023Smrg				basic_machine=sparc-sun
55246845023Smrg				os=
55346845023Smrg				;;
55446845023Smrg			sun4os3)
55546845023Smrg				basic_machine=sparc-sun
55646845023Smrg				os=sunos3
55746845023Smrg				;;
55846845023Smrg			sun4os4)
55946845023Smrg				basic_machine=sparc-sun
56046845023Smrg				os=sunos4
56146845023Smrg				;;
56246845023Smrg			sun4sol2)
56346845023Smrg				basic_machine=sparc-sun
56446845023Smrg				os=solaris2
56546845023Smrg				;;
56646845023Smrg			sun386 | sun386i | roadrunner)
56746845023Smrg				basic_machine=i386-sun
56846845023Smrg				os=
56946845023Smrg				;;
57046845023Smrg			sv1)
57146845023Smrg				basic_machine=sv1-cray
57246845023Smrg				os=unicos
57346845023Smrg				;;
57446845023Smrg			symmetry)
57546845023Smrg				basic_machine=i386-sequent
57646845023Smrg				os=dynix
57746845023Smrg				;;
57846845023Smrg			t3e)
57946845023Smrg				basic_machine=alphaev5-cray
58046845023Smrg				os=unicos
58146845023Smrg				;;
58246845023Smrg			t90)
58346845023Smrg				basic_machine=t90-cray
58446845023Smrg				os=unicos
58546845023Smrg				;;
58646845023Smrg			toad1)
58746845023Smrg				basic_machine=pdp10-xkl
58846845023Smrg				os=tops20
58946845023Smrg				;;
59046845023Smrg			tpf)
59146845023Smrg				basic_machine=s390x-ibm
59246845023Smrg				os=tpf
59346845023Smrg				;;
59446845023Smrg			udi29k)
59546845023Smrg				basic_machine=a29k-amd
59646845023Smrg				os=udi
59746845023Smrg				;;
59846845023Smrg			ultra3)
59946845023Smrg				basic_machine=a29k-nyu
60046845023Smrg				os=sym1
60146845023Smrg				;;
60246845023Smrg			v810 | necv810)
60346845023Smrg				basic_machine=v810-nec
60446845023Smrg				os=none
60546845023Smrg				;;
60646845023Smrg			vaxv)
60746845023Smrg				basic_machine=vax-dec
60846845023Smrg				os=sysv
60946845023Smrg				;;
61046845023Smrg			vms)
61146845023Smrg				basic_machine=vax-dec
61246845023Smrg				os=vms
61346845023Smrg				;;
61446845023Smrg			vxworks960)
61546845023Smrg				basic_machine=i960-wrs
61646845023Smrg				os=vxworks
61746845023Smrg				;;
61846845023Smrg			vxworks68)
61946845023Smrg				basic_machine=m68k-wrs
62046845023Smrg				os=vxworks
62146845023Smrg				;;
62246845023Smrg			vxworks29k)
62346845023Smrg				basic_machine=a29k-wrs
62446845023Smrg				os=vxworks
62546845023Smrg				;;
62646845023Smrg			xbox)
62746845023Smrg				basic_machine=i686-pc
62846845023Smrg				os=mingw32
62946845023Smrg				;;
63046845023Smrg			ymp)
63146845023Smrg				basic_machine=ymp-cray
63246845023Smrg				os=unicos
63346845023Smrg				;;
63446845023Smrg			*)
63546845023Smrg				basic_machine=$1
63646845023Smrg				os=
63746845023Smrg				;;
63846845023Smrg		esac
639d6c0b56eSmrg		;;
640d6c0b56eSmrgesac
641d6c0b56eSmrg
64246845023Smrg# Decode 1-component or ad-hoc basic machines
643d6c0b56eSmrgcase $basic_machine in
64446845023Smrg	# Here we handle the default manufacturer of certain CPU types.  It is in
64546845023Smrg	# some cases the only manufacturer, in others, it is the most popular.
64646845023Smrg	w89k)
64746845023Smrg		cpu=hppa1.1
64846845023Smrg		vendor=winbond
649d6c0b56eSmrg		;;
65046845023Smrg	op50n)
65146845023Smrg		cpu=hppa1.1
65246845023Smrg		vendor=oki
653d6c0b56eSmrg		;;
65446845023Smrg	op60c)
65546845023Smrg		cpu=hppa1.1
65646845023Smrg		vendor=oki
657d6c0b56eSmrg		;;
65846845023Smrg	ibm*)
65946845023Smrg		cpu=i370
66046845023Smrg		vendor=ibm
661d6c0b56eSmrg		;;
66246845023Smrg	orion105)
66346845023Smrg		cpu=clipper
66446845023Smrg		vendor=highlevel
665d6c0b56eSmrg		;;
66646845023Smrg	mac | mpw | mac-mpw)
66746845023Smrg		cpu=m68k
66846845023Smrg		vendor=apple
669d6c0b56eSmrg		;;
67046845023Smrg	pmac | pmac-mpw)
67146845023Smrg		cpu=powerpc
67246845023Smrg		vendor=apple
673d6c0b56eSmrg		;;
674d6c0b56eSmrg
675d6c0b56eSmrg	# Recognize the various machine names and aliases which stand
676d6c0b56eSmrg	# for a CPU type and a company and sometimes even an OS.
677d6c0b56eSmrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
67846845023Smrg		cpu=m68000
67946845023Smrg		vendor=att
680d6c0b56eSmrg		;;
681d6c0b56eSmrg	3b*)
68246845023Smrg		cpu=we32k
68346845023Smrg		vendor=att
684d6c0b56eSmrg		;;
685d6c0b56eSmrg	bluegene*)
68646845023Smrg		cpu=powerpc
68746845023Smrg		vendor=ibm
68846845023Smrg		os=cnk
689d6c0b56eSmrg		;;
690d6c0b56eSmrg	decsystem10* | dec10*)
69146845023Smrg		cpu=pdp10
69246845023Smrg		vendor=dec
69346845023Smrg		os=tops10
694d6c0b56eSmrg		;;
695d6c0b56eSmrg	decsystem20* | dec20*)
69646845023Smrg		cpu=pdp10
69746845023Smrg		vendor=dec
69846845023Smrg		os=tops20
699d6c0b56eSmrg		;;
700d6c0b56eSmrg	delta | 3300 | motorola-3300 | motorola-delta \
701d6c0b56eSmrg	      | 3300-motorola | delta-motorola)
70246845023Smrg		cpu=m68k
70346845023Smrg		vendor=motorola
704d6c0b56eSmrg		;;
70524b90cf4Smrg	dpx2*)
70646845023Smrg		cpu=m68k
70746845023Smrg		vendor=bull
70846845023Smrg		os=sysv3
709d6c0b56eSmrg		;;
710d6c0b56eSmrg	encore | umax | mmax)
71146845023Smrg		cpu=ns32k
71246845023Smrg		vendor=encore
713d6c0b56eSmrg		;;
71446845023Smrg	elxsi)
71546845023Smrg		cpu=elxsi
71646845023Smrg		vendor=elxsi
71746845023Smrg		os=${os:-bsd}
718d6c0b56eSmrg		;;
719d6c0b56eSmrg	fx2800)
72046845023Smrg		cpu=i860
72146845023Smrg		vendor=alliant
722d6c0b56eSmrg		;;
723d6c0b56eSmrg	genix)
72446845023Smrg		cpu=ns32k
72546845023Smrg		vendor=ns
726d6c0b56eSmrg		;;
727d6c0b56eSmrg	h3050r* | hiux*)
72846845023Smrg		cpu=hppa1.1
72946845023Smrg		vendor=hitachi
73046845023Smrg		os=hiuxwe2
731d6c0b56eSmrg		;;
732d6c0b56eSmrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
73346845023Smrg		cpu=hppa1.0
73446845023Smrg		vendor=hp
735d6c0b56eSmrg		;;
736d6c0b56eSmrg	hp9k2[0-9][0-9] | hp9k31[0-9])
73746845023Smrg		cpu=m68000
73846845023Smrg		vendor=hp
739d6c0b56eSmrg		;;
740d6c0b56eSmrg	hp9k3[2-9][0-9])
74146845023Smrg		cpu=m68k
74246845023Smrg		vendor=hp
743d6c0b56eSmrg		;;
744d6c0b56eSmrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
74546845023Smrg		cpu=hppa1.0
74646845023Smrg		vendor=hp
747d6c0b56eSmrg		;;
748d6c0b56eSmrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
74946845023Smrg		cpu=hppa1.1
75046845023Smrg		vendor=hp
751d6c0b56eSmrg		;;
752d6c0b56eSmrg	hp9k78[0-9] | hp78[0-9])
753d6c0b56eSmrg		# FIXME: really hppa2.0-hp
75446845023Smrg		cpu=hppa1.1
75546845023Smrg		vendor=hp
756d6c0b56eSmrg		;;
757d6c0b56eSmrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
758d6c0b56eSmrg		# FIXME: really hppa2.0-hp
75946845023Smrg		cpu=hppa1.1
76046845023Smrg		vendor=hp
761d6c0b56eSmrg		;;
762d6c0b56eSmrg	hp9k8[0-9][13679] | hp8[0-9][13679])
76346845023Smrg		cpu=hppa1.1
76446845023Smrg		vendor=hp
765d6c0b56eSmrg		;;
766d6c0b56eSmrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
76746845023Smrg		cpu=hppa1.0
76846845023Smrg		vendor=hp
769d6c0b56eSmrg		;;
770d6c0b56eSmrg	i*86v32)
77146845023Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
77246845023Smrg		vendor=pc
77346845023Smrg		os=sysv32
774d6c0b56eSmrg		;;
775d6c0b56eSmrg	i*86v4*)
77646845023Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
77746845023Smrg		vendor=pc
77846845023Smrg		os=sysv4
779d6c0b56eSmrg		;;
780d6c0b56eSmrg	i*86v)
78146845023Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
78246845023Smrg		vendor=pc
78346845023Smrg		os=sysv
784d6c0b56eSmrg		;;
785d6c0b56eSmrg	i*86sol2)
78646845023Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
78746845023Smrg		vendor=pc
78846845023Smrg		os=solaris2
789d6c0b56eSmrg		;;
79046845023Smrg	j90 | j90-cray)
79146845023Smrg		cpu=j90
79246845023Smrg		vendor=cray
79346845023Smrg		os=${os:-unicos}
794d6c0b56eSmrg		;;
795d6c0b56eSmrg	iris | iris4d)
79646845023Smrg		cpu=mips
79746845023Smrg		vendor=sgi
798d6c0b56eSmrg		case $os in
79946845023Smrg		    irix*)
800d6c0b56eSmrg			;;
801d6c0b56eSmrg		    *)
80246845023Smrg			os=irix4
803d6c0b56eSmrg			;;
804d6c0b56eSmrg		esac
805d6c0b56eSmrg		;;
806d6c0b56eSmrg	miniframe)
80746845023Smrg		cpu=m68000
80846845023Smrg		vendor=convergent
809d6c0b56eSmrg		;;
81046845023Smrg	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
81146845023Smrg		cpu=m68k
81246845023Smrg		vendor=atari
81346845023Smrg		os=mint
814d6c0b56eSmrg		;;
815d6c0b56eSmrg	news-3600 | risc-news)
81646845023Smrg		cpu=mips
81746845023Smrg		vendor=sony
81846845023Smrg		os=newsos
819d6c0b56eSmrg		;;
82024b90cf4Smrg	next | m*-next)
82146845023Smrg		cpu=m68k
82246845023Smrg		vendor=next
823d6c0b56eSmrg		case $os in
82446845023Smrg		    nextstep* )
825d6c0b56eSmrg			;;
82646845023Smrg		    ns2*)
82746845023Smrg		      os=nextstep2
828d6c0b56eSmrg			;;
829d6c0b56eSmrg		    *)
83046845023Smrg		      os=nextstep3
831d6c0b56eSmrg			;;
832d6c0b56eSmrg		esac
833d6c0b56eSmrg		;;
834d6c0b56eSmrg	np1)
83546845023Smrg		cpu=np1
83646845023Smrg		vendor=gould
83724b90cf4Smrg		;;
838d6c0b56eSmrg	op50n-* | op60c-*)
83946845023Smrg		cpu=hppa1.1
84046845023Smrg		vendor=oki
84146845023Smrg		os=proelf
842d6c0b56eSmrg		;;
843d6c0b56eSmrg	pa-hitachi)
84446845023Smrg		cpu=hppa1.1
84546845023Smrg		vendor=hitachi
84646845023Smrg		os=hiuxwe2
847d6c0b56eSmrg		;;
848d6c0b56eSmrg	pbd)
84946845023Smrg		cpu=sparc
85046845023Smrg		vendor=tti
851d6c0b56eSmrg		;;
852d6c0b56eSmrg	pbb)
85346845023Smrg		cpu=m68k
85446845023Smrg		vendor=tti
855d6c0b56eSmrg		;;
85646845023Smrg	pc532)
85746845023Smrg		cpu=ns32k
85846845023Smrg		vendor=pc532
859d6c0b56eSmrg		;;
860d6c0b56eSmrg	pn)
86146845023Smrg		cpu=pn
86246845023Smrg		vendor=gould
863d6c0b56eSmrg		;;
86446845023Smrg	power)
86546845023Smrg		cpu=power
86646845023Smrg		vendor=ibm
867d6c0b56eSmrg		;;
86846845023Smrg	ps2)
86946845023Smrg		cpu=i386
87046845023Smrg		vendor=ibm
871d6c0b56eSmrg		;;
87246845023Smrg	rm[46]00)
87346845023Smrg		cpu=mips
87446845023Smrg		vendor=siemens
875d6c0b56eSmrg		;;
87646845023Smrg	rtpc | rtpc-*)
87746845023Smrg		cpu=romp
87846845023Smrg		vendor=ibm
879d6c0b56eSmrg		;;
88046845023Smrg	sde)
88146845023Smrg		cpu=mipsisa32
88246845023Smrg		vendor=sde
88346845023Smrg		os=${os:-elf}
884d6c0b56eSmrg		;;
88546845023Smrg	simso-wrs)
88646845023Smrg		cpu=sparclite
88746845023Smrg		vendor=wrs
88846845023Smrg		os=vxworks
889d6c0b56eSmrg		;;
89046845023Smrg	tower | tower-32)
89146845023Smrg		cpu=m68k
89246845023Smrg		vendor=ncr
893d6c0b56eSmrg		;;
89446845023Smrg	vpp*|vx|vx-*)
89546845023Smrg		cpu=f301
89646845023Smrg		vendor=fujitsu
897d6c0b56eSmrg		;;
89846845023Smrg	w65)
89946845023Smrg		cpu=w65
90046845023Smrg		vendor=wdc
901d6c0b56eSmrg		;;
90246845023Smrg	w89k-*)
90346845023Smrg		cpu=hppa1.1
90446845023Smrg		vendor=winbond
90546845023Smrg		os=proelf
906d6c0b56eSmrg		;;
90746845023Smrg	none)
90846845023Smrg		cpu=none
90946845023Smrg		vendor=none
910d6c0b56eSmrg		;;
91146845023Smrg	leon|leon[3-9])
91246845023Smrg		cpu=sparc
91346845023Smrg		vendor=$basic_machine
914d6c0b56eSmrg		;;
91546845023Smrg	leon-*|leon[3-9]-*)
91646845023Smrg		cpu=sparc
91746845023Smrg		vendor=`echo "$basic_machine" | sed 's/-.*//'`
918d6c0b56eSmrg		;;
91946845023Smrg
92046845023Smrg	*-*)
92146845023Smrg		IFS="-" read -r cpu vendor <<EOF
92246845023Smrg$basic_machine
92346845023SmrgEOF
924d6c0b56eSmrg		;;
92546845023Smrg	# We use `pc' rather than `unknown'
92646845023Smrg	# because (1) that's what they normally are, and
92746845023Smrg	# (2) the word "unknown" tends to confuse beginning users.
92846845023Smrg	i*86 | x86_64)
92946845023Smrg		cpu=$basic_machine
93046845023Smrg		vendor=pc
931d6c0b56eSmrg		;;
93246845023Smrg	# These rules are duplicated from below for sake of the special case above;
93346845023Smrg	# i.e. things that normalized to x86 arches should also default to "pc"
93446845023Smrg	pc98)
93546845023Smrg		cpu=i386
93646845023Smrg		vendor=pc
937d6c0b56eSmrg		;;
93846845023Smrg	x64 | amd64)
93946845023Smrg		cpu=x86_64
94046845023Smrg		vendor=pc
941d6c0b56eSmrg		;;
94246845023Smrg	# Recognize the basic CPU types without company name.
94346845023Smrg	*)
94446845023Smrg		cpu=$basic_machine
94546845023Smrg		vendor=unknown
946d6c0b56eSmrg		;;
94746845023Smrgesac
94846845023Smrg
94946845023Smrgunset -v basic_machine
95046845023Smrg
95146845023Smrg# Decode basic machines in the full and proper CPU-Company form.
95246845023Smrgcase $cpu-$vendor in
95346845023Smrg	# Here we handle the default manufacturer of certain CPU types in cannonical form. It is in
95446845023Smrg	# some cases the only manufacturer, in others, it is the most popular.
95546845023Smrg	craynv-unknown)
95646845023Smrg		vendor=cray
95746845023Smrg		os=${os:-unicosmp}
958d6c0b56eSmrg		;;
95946845023Smrg	c90-unknown | c90-cray)
96046845023Smrg		vendor=cray
96146845023Smrg		os=${os:-unicos}
962d6c0b56eSmrg		;;
96346845023Smrg	fx80-unknown)
96446845023Smrg		vendor=alliant
965d6c0b56eSmrg		;;
96646845023Smrg	romp-unknown)
96746845023Smrg		vendor=ibm
968d6c0b56eSmrg		;;
96946845023Smrg	mmix-unknown)
97046845023Smrg		vendor=knuth
971d6c0b56eSmrg		;;
97246845023Smrg	microblaze-unknown | microblazeel-unknown)
97346845023Smrg		vendor=xilinx
974d6c0b56eSmrg		;;
97546845023Smrg	rs6000-unknown)
97646845023Smrg		vendor=ibm
977d6c0b56eSmrg		;;
97846845023Smrg	vax-unknown)
97946845023Smrg		vendor=dec
980d6c0b56eSmrg		;;
98146845023Smrg	pdp11-unknown)
98246845023Smrg		vendor=dec
983d6c0b56eSmrg		;;
98446845023Smrg	we32k-unknown)
98546845023Smrg		vendor=att
986d6c0b56eSmrg		;;
98746845023Smrg	cydra-unknown)
98846845023Smrg		vendor=cydrome
989d6c0b56eSmrg		;;
99046845023Smrg	i370-ibm*)
99146845023Smrg		vendor=ibm
992d6c0b56eSmrg		;;
99346845023Smrg	orion-unknown)
99446845023Smrg		vendor=highlevel
995d6c0b56eSmrg		;;
99646845023Smrg	xps-unknown | xps100-unknown)
99746845023Smrg		cpu=xps100
99846845023Smrg		vendor=honeywell
999d6c0b56eSmrg		;;
100046845023Smrg
100146845023Smrg	# Here we normalize CPU types with a missing or matching vendor
100246845023Smrg	dpx20-unknown | dpx20-bull)
100346845023Smrg		cpu=rs6000
100446845023Smrg		vendor=bull
100546845023Smrg		os=${os:-bosx}
1006d6c0b56eSmrg		;;
100746845023Smrg
100846845023Smrg	# Here we normalize CPU types irrespective of the vendor
100946845023Smrg	amd64-*)
101046845023Smrg		cpu=x86_64
1011d6c0b56eSmrg		;;
101246845023Smrg	blackfin-*)
101346845023Smrg		cpu=bfin
101446845023Smrg		os=linux
1015d6c0b56eSmrg		;;
101646845023Smrg	c54x-*)
101746845023Smrg		cpu=tic54x
1018d6c0b56eSmrg		;;
101946845023Smrg	c55x-*)
102046845023Smrg		cpu=tic55x
1021d6c0b56eSmrg		;;
102246845023Smrg	c6x-*)
102346845023Smrg		cpu=tic6x
1024d6c0b56eSmrg		;;
102546845023Smrg	e500v[12]-*)
102646845023Smrg		cpu=powerpc
102746845023Smrg		os=$os"spe"
1028d6c0b56eSmrg		;;
102946845023Smrg	mips3*-*)
103046845023Smrg		cpu=mips64
1031d6c0b56eSmrg		;;
103246845023Smrg	ms1-*)
103346845023Smrg		cpu=mt
1034d6c0b56eSmrg		;;
103546845023Smrg	m68knommu-*)
103646845023Smrg		cpu=m68k
103746845023Smrg		os=linux
1038d6c0b56eSmrg		;;
103946845023Smrg	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
104046845023Smrg		cpu=s12z
1041d6c0b56eSmrg		;;
104246845023Smrg	openrisc-*)
104346845023Smrg		cpu=or32
1044d6c0b56eSmrg		;;
104546845023Smrg	parisc-*)
104646845023Smrg		cpu=hppa
104746845023Smrg		os=linux
1048d6c0b56eSmrg		;;
104946845023Smrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
105046845023Smrg		cpu=i586
1051d6c0b56eSmrg		;;
105246845023Smrg	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
105346845023Smrg		cpu=i686
1054d6c0b56eSmrg		;;
105546845023Smrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
105646845023Smrg		cpu=i686
1057d6c0b56eSmrg		;;
105846845023Smrg	pentium4-*)
105946845023Smrg		cpu=i786
1060d6c0b56eSmrg		;;
106146845023Smrg	pc98-*)
106246845023Smrg		cpu=i386
1063d6c0b56eSmrg		;;
106446845023Smrg	ppc-* | ppcbe-*)
106546845023Smrg		cpu=powerpc
1066d6c0b56eSmrg		;;
106746845023Smrg	ppcle-* | powerpclittle-*)
106846845023Smrg		cpu=powerpcle
1069d6c0b56eSmrg		;;
107046845023Smrg	ppc64-*)
107146845023Smrg		cpu=powerpc64
1072d6c0b56eSmrg		;;
107346845023Smrg	ppc64le-* | powerpc64little-*)
107446845023Smrg		cpu=powerpc64le
1075d6c0b56eSmrg		;;
107646845023Smrg	sb1-*)
107746845023Smrg		cpu=mipsisa64sb1
1078d6c0b56eSmrg		;;
107946845023Smrg	sb1el-*)
108046845023Smrg		cpu=mipsisa64sb1el
1081d6c0b56eSmrg		;;
108246845023Smrg	sh5e[lb]-*)
108346845023Smrg		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
1084d6c0b56eSmrg		;;
108546845023Smrg	spur-*)
108646845023Smrg		cpu=spur
1087d6c0b56eSmrg		;;
108846845023Smrg	strongarm-* | thumb-*)
108946845023Smrg		cpu=arm
1090d6c0b56eSmrg		;;
109146845023Smrg	tx39-*)
109246845023Smrg		cpu=mipstx39
109324b90cf4Smrg		;;
109446845023Smrg	tx39el-*)
109546845023Smrg		cpu=mipstx39el
1096d6c0b56eSmrg		;;
109746845023Smrg	x64-*)
109846845023Smrg		cpu=x86_64
1099d6c0b56eSmrg		;;
1100d6c0b56eSmrg	xscale-* | xscalee[bl]-*)
110146845023Smrg		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
1102d6c0b56eSmrg		;;
1103d6c0b56eSmrg
110446845023Smrg	# Recognize the cannonical CPU Types that limit and/or modify the
110546845023Smrg	# company names they are paired with.
110646845023Smrg	cr16-*)
110746845023Smrg		os=${os:-elf}
1108d6c0b56eSmrg		;;
110946845023Smrg	crisv32-* | etraxfs*-*)
111046845023Smrg		cpu=crisv32
111146845023Smrg		vendor=axis
1112d6c0b56eSmrg		;;
111346845023Smrg	cris-* | etrax*-*)
111446845023Smrg		cpu=cris
111546845023Smrg		vendor=axis
1116d6c0b56eSmrg		;;
111746845023Smrg	crx-*)
111846845023Smrg		os=${os:-elf}
1119d6c0b56eSmrg		;;
112046845023Smrg	neo-tandem)
112146845023Smrg		cpu=neo
112246845023Smrg		vendor=tandem
1123d6c0b56eSmrg		;;
112446845023Smrg	nse-tandem)
112546845023Smrg		cpu=nse
112646845023Smrg		vendor=tandem
1127d6c0b56eSmrg		;;
112846845023Smrg	nsr-tandem)
112946845023Smrg		cpu=nsr
113046845023Smrg		vendor=tandem
1131d6c0b56eSmrg		;;
113246845023Smrg	nsv-tandem)
113346845023Smrg		cpu=nsv
113446845023Smrg		vendor=tandem
1135d6c0b56eSmrg		;;
113646845023Smrg	nsx-tandem)
113746845023Smrg		cpu=nsx
113846845023Smrg		vendor=tandem
1139d6c0b56eSmrg		;;
114046845023Smrg	s390-*)
114146845023Smrg		cpu=s390
114246845023Smrg		vendor=ibm
1143d6c0b56eSmrg		;;
114446845023Smrg	s390x-*)
114546845023Smrg		cpu=s390x
114646845023Smrg		vendor=ibm
1147d6c0b56eSmrg		;;
114846845023Smrg	tile*-*)
114946845023Smrg		os=${os:-linux-gnu}
1150d6c0b56eSmrg		;;
115146845023Smrg
1152d6c0b56eSmrg	*)
115346845023Smrg		# Recognize the cannonical CPU types that are allowed with any
115446845023Smrg		# company name.
115546845023Smrg		case $cpu in
115646845023Smrg			1750a | 580 \
115746845023Smrg			| a29k \
115846845023Smrg			| aarch64 | aarch64_be \
115946845023Smrg			| abacus \
116046845023Smrg			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
116146845023Smrg			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
116246845023Smrg			| alphapca5[67] | alpha64pca5[67] \
116346845023Smrg			| am33_2.0 \
116446845023Smrg			| arc | arceb \
116546845023Smrg			| arm  | arm[lb]e | arme[lb] | armv* \
116646845023Smrg			| avr | avr32 \
116746845023Smrg			| asmjs \
116846845023Smrg			| ba \
116946845023Smrg			| be32 | be64 \
117046845023Smrg			| bfin | bs2000 \
117146845023Smrg			| c[123]* | c30 | [cjt]90 | c4x \
117246845023Smrg			| c8051 | clipper | craynv | csky | cydra \
117346845023Smrg			| d10v | d30v | dlx | dsp16xx \
117446845023Smrg			| e2k | elxsi | epiphany \
117546845023Smrg			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
117646845023Smrg			| h8300 | h8500 \
117746845023Smrg			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
117846845023Smrg			| hexagon \
117946845023Smrg			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
118046845023Smrg			| ip2k | iq2000 \
118146845023Smrg			| k1om \
118246845023Smrg			| le32 | le64 \
118346845023Smrg			| lm32 \
118446845023Smrg			| m32c | m32r | m32rle \
118546845023Smrg			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
118646845023Smrg			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
118746845023Smrg			| m88110 | m88k | maxq | mb | mcore | mep | metag \
118846845023Smrg			| microblaze | microblazeel \
118946845023Smrg			| mips | mipsbe | mipseb | mipsel | mipsle \
119046845023Smrg			| mips16 \
119146845023Smrg			| mips64 | mips64el \
119246845023Smrg			| mips64octeon | mips64octeonel \
119346845023Smrg			| mips64orion | mips64orionel \
119446845023Smrg			| mips64r5900 | mips64r5900el \
119546845023Smrg			| mips64vr | mips64vrel \
119646845023Smrg			| mips64vr4100 | mips64vr4100el \
119746845023Smrg			| mips64vr4300 | mips64vr4300el \
119846845023Smrg			| mips64vr5000 | mips64vr5000el \
119946845023Smrg			| mips64vr5900 | mips64vr5900el \
120046845023Smrg			| mipsisa32 | mipsisa32el \
120146845023Smrg			| mipsisa32r2 | mipsisa32r2el \
120246845023Smrg			| mipsisa32r6 | mipsisa32r6el \
120346845023Smrg			| mipsisa64 | mipsisa64el \
120446845023Smrg			| mipsisa64r2 | mipsisa64r2el \
120546845023Smrg			| mipsisa64r6 | mipsisa64r6el \
120646845023Smrg			| mipsisa64sb1 | mipsisa64sb1el \
120746845023Smrg			| mipsisa64sr71k | mipsisa64sr71kel \
120846845023Smrg			| mipsr5900 | mipsr5900el \
120946845023Smrg			| mipstx39 | mipstx39el \
121046845023Smrg			| mmix \
121146845023Smrg			| mn10200 | mn10300 \
121246845023Smrg			| moxie \
121346845023Smrg			| mt \
121446845023Smrg			| msp430 \
121546845023Smrg			| nds32 | nds32le | nds32be \
121646845023Smrg			| nfp \
121746845023Smrg			| nios | nios2 | nios2eb | nios2el \
121846845023Smrg			| none | np1 | ns16k | ns32k \
121946845023Smrg			| open8 \
122046845023Smrg			| or1k* \
122146845023Smrg			| or32 \
122246845023Smrg			| orion \
122346845023Smrg			| pdp10 | pdp11 | pj | pjl | pn | power \
122446845023Smrg			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
122546845023Smrg			| pru \
122646845023Smrg			| pyramid \
122746845023Smrg			| riscv | riscv32 | riscv64 \
122846845023Smrg			| rl78 | romp | rs6000 | rx \
122946845023Smrg			| score \
123046845023Smrg			| sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
123146845023Smrg			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
123246845023Smrg			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
123346845023Smrg			| sparclite \
123446845023Smrg			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
123546845023Smrg			| spu \
123646845023Smrg			| tahoe \
123746845023Smrg			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
123846845023Smrg			| tron \
123946845023Smrg			| ubicom32 \
124046845023Smrg			| v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
124146845023Smrg			| vax \
124246845023Smrg			| visium \
124346845023Smrg			| wasm32 \
124446845023Smrg			| we32k \
124546845023Smrg			| x86 | x86_64 | xc16x | xgate | xps100 \
124646845023Smrg			| xstormy16 | xtensa* \
124746845023Smrg			| ymp \
124846845023Smrg			| z8k | z80)
124946845023Smrg				;;
125046845023Smrg
125146845023Smrg			*)
125246845023Smrg				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
125346845023Smrg				exit 1
125446845023Smrg				;;
125546845023Smrg		esac
1256d6c0b56eSmrg		;;
1257d6c0b56eSmrgesac
1258d6c0b56eSmrg
1259d6c0b56eSmrg# Here we canonicalize certain aliases for manufacturers.
126046845023Smrgcase $vendor in
126146845023Smrg	digital*)
126246845023Smrg		vendor=dec
1263d6c0b56eSmrg		;;
126446845023Smrg	commodore*)
126546845023Smrg		vendor=cbm
1266d6c0b56eSmrg		;;
1267d6c0b56eSmrg	*)
1268d6c0b56eSmrg		;;
1269d6c0b56eSmrgesac
1270d6c0b56eSmrg
1271d6c0b56eSmrg# Decode manufacturer-specific aliases for certain operating systems.
1272d6c0b56eSmrg
127346845023Smrgif [ x$os != x ]
1274d6c0b56eSmrgthen
1275d6c0b56eSmrgcase $os in
127624b90cf4Smrg	# First match some system type aliases that might get confused
127724b90cf4Smrg	# with valid system types.
127846845023Smrg	# solaris* is a basic system type, with this one exception.
127946845023Smrg	auroraux)
128046845023Smrg		os=auroraux
1281d6c0b56eSmrg		;;
128246845023Smrg	bluegene*)
128346845023Smrg		os=cnk
128446845023Smrg		;;
128546845023Smrg	solaris1 | solaris1.*)
1286d6c0b56eSmrg		os=`echo $os | sed -e 's|solaris1|sunos4|'`
1287d6c0b56eSmrg		;;
128846845023Smrg	solaris)
128946845023Smrg		os=solaris2
1290d6c0b56eSmrg		;;
129146845023Smrg	unixware*)
129246845023Smrg		os=sysv4.2uw
1293d6c0b56eSmrg		;;
129446845023Smrg	gnu/linux*)
1295d6c0b56eSmrg		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1296d6c0b56eSmrg		;;
129724b90cf4Smrg	# es1800 is here to avoid being matched by es* (a different OS)
129846845023Smrg	es1800*)
129946845023Smrg		os=ose
130046845023Smrg		;;
130146845023Smrg	# Some version numbers need modification
130246845023Smrg	chorusos*)
130346845023Smrg		os=chorusos
130446845023Smrg		;;
130546845023Smrg	isc)
130646845023Smrg		os=isc2.2
130746845023Smrg		;;
130846845023Smrg	sco6)
130946845023Smrg		os=sco5v6
131046845023Smrg		;;
131146845023Smrg	sco5)
131246845023Smrg		os=sco3.2v5
131346845023Smrg		;;
131446845023Smrg	sco4)
131546845023Smrg		os=sco3.2v4
131646845023Smrg		;;
131746845023Smrg	sco3.2.[4-9]*)
131846845023Smrg		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
131946845023Smrg		;;
132046845023Smrg	sco3.2v[4-9]* | sco5v6*)
132146845023Smrg		# Don't forget version if it is 3.2v4 or newer.
132246845023Smrg		;;
132346845023Smrg	scout)
132446845023Smrg		# Don't match below
132546845023Smrg		;;
132646845023Smrg	sco*)
132746845023Smrg		os=sco3.2v2
132846845023Smrg		;;
132946845023Smrg	psos*)
133046845023Smrg		os=psos
133124b90cf4Smrg		;;
133224b90cf4Smrg	# Now accept the basic system types.
1333d6c0b56eSmrg	# The portable systems comes first.
133424b90cf4Smrg	# Each alternative MUST end in a * to match a version number.
133546845023Smrg	# sysv* is not here because it comes later, after sysvr4.
133646845023Smrg	gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
133746845023Smrg	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
133846845023Smrg	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
133946845023Smrg	     | sym* | kopensolaris* | plan9* \
134046845023Smrg	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
134146845023Smrg	     | aos* | aros* | cloudabi* | sortix* \
134246845023Smrg	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
134346845023Smrg	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
134446845023Smrg	     | knetbsd* | mirbsd* | netbsd* \
134546845023Smrg	     | bitrig* | openbsd* | solidbsd* | libertybsd* \
134646845023Smrg	     | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
134746845023Smrg	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
134846845023Smrg	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
134946845023Smrg	     | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
135046845023Smrg	     | chorusrdb* | cegcc* | glidix* \
135146845023Smrg	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
135246845023Smrg	     | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
135346845023Smrg	     | linux-newlib* | linux-musl* | linux-uclibc* \
135446845023Smrg	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
135546845023Smrg	     | interix* | uwin* | mks* | rhapsody* | darwin* \
135646845023Smrg	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
135746845023Smrg	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
135846845023Smrg	     | os2* | vos* | palmos* | uclinux* | nucleus* \
135946845023Smrg	     | morphos* | superux* | rtmk* | windiss* \
136046845023Smrg	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
136146845023Smrg	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
136246845023Smrg	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
136346845023Smrg	     | midnightbsd*)
1364d6c0b56eSmrg	# Remember, each alternative MUST END IN *, to match a version number.
1365d6c0b56eSmrg		;;
136646845023Smrg	qnx*)
136746845023Smrg		case $cpu in
136846845023Smrg		    x86 | i*86)
1369d6c0b56eSmrg			;;
1370d6c0b56eSmrg		    *)
137146845023Smrg			os=nto-$os
1372d6c0b56eSmrg			;;
1373d6c0b56eSmrg		esac
1374d6c0b56eSmrg		;;
137546845023Smrg	hiux*)
137646845023Smrg		os=hiuxwe2
137746845023Smrg		;;
137846845023Smrg	nto-qnx*)
1379d6c0b56eSmrg		;;
138046845023Smrg	nto*)
1381d6c0b56eSmrg		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1382d6c0b56eSmrg		;;
138346845023Smrg	sim | xray | os68k* | v88r* \
138446845023Smrg	    | windows* | osx | abug | netware* | os9* \
138546845023Smrg	    | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
138646845023Smrg		;;
138746845023Smrg	linux-dietlibc)
138846845023Smrg		os=linux-dietlibc
138946845023Smrg		;;
139046845023Smrg	linux*)
139146845023Smrg		os=`echo $os | sed -e 's|linux|linux-gnu|'`
139246845023Smrg		;;
139346845023Smrg	lynx*178)
139446845023Smrg		os=lynxos178
1395d6c0b56eSmrg		;;
139646845023Smrg	lynx*5)
139746845023Smrg		os=lynxos5
139846845023Smrg		;;
139946845023Smrg	lynx*)
140046845023Smrg		os=lynxos
140146845023Smrg		;;
140246845023Smrg	mac*)
140324b90cf4Smrg		os=`echo "$os" | sed -e 's|mac|macos|'`
1404d6c0b56eSmrg		;;
140546845023Smrg	opened*)
140646845023Smrg		os=openedition
1407d6c0b56eSmrg		;;
140846845023Smrg	os400*)
140946845023Smrg		os=os400
1410d6c0b56eSmrg		;;
141146845023Smrg	sunos5*)
141224b90cf4Smrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
1413d6c0b56eSmrg		;;
141446845023Smrg	sunos6*)
141524b90cf4Smrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
1416d6c0b56eSmrg		;;
141746845023Smrg	wince*)
141846845023Smrg		os=wince
1419d6c0b56eSmrg		;;
142046845023Smrg	utek*)
142146845023Smrg		os=bsd
1422d6c0b56eSmrg		;;
142346845023Smrg	dynix*)
142446845023Smrg		os=bsd
1425d6c0b56eSmrg		;;
142646845023Smrg	acis*)
142746845023Smrg		os=aos
1428d6c0b56eSmrg		;;
142946845023Smrg	atheos*)
143046845023Smrg		os=atheos
1431d6c0b56eSmrg		;;
143246845023Smrg	syllable*)
143346845023Smrg		os=syllable
1434d6c0b56eSmrg		;;
143546845023Smrg	386bsd)
143646845023Smrg		os=bsd
1437d6c0b56eSmrg		;;
143846845023Smrg	ctix* | uts*)
143946845023Smrg		os=sysv
1440d6c0b56eSmrg		;;
144146845023Smrg	nova*)
144246845023Smrg		os=rtmk-nova
1443d6c0b56eSmrg		;;
144446845023Smrg	ns2)
144546845023Smrg		os=nextstep2
1446d6c0b56eSmrg		;;
144746845023Smrg	nsk*)
144846845023Smrg		os=nsk
1449d6c0b56eSmrg		;;
1450d6c0b56eSmrg	# Preserve the version number of sinix5.
145146845023Smrg	sinix5.*)
1452d6c0b56eSmrg		os=`echo $os | sed -e 's|sinix|sysv|'`
1453d6c0b56eSmrg		;;
145446845023Smrg	sinix*)
145546845023Smrg		os=sysv4
1456d6c0b56eSmrg		;;
145746845023Smrg	tpf*)
145846845023Smrg		os=tpf
1459d6c0b56eSmrg		;;
146046845023Smrg	triton*)
146146845023Smrg		os=sysv3
1462d6c0b56eSmrg		;;
146346845023Smrg	oss*)
146446845023Smrg		os=sysv3
1465d6c0b56eSmrg		;;
146646845023Smrg	svr4*)
146746845023Smrg		os=sysv4
1468d6c0b56eSmrg		;;
146946845023Smrg	svr3)
147046845023Smrg		os=sysv3
1471d6c0b56eSmrg		;;
147246845023Smrg	sysvr4)
147346845023Smrg		os=sysv4
1474d6c0b56eSmrg		;;
147546845023Smrg	# This must come after sysvr4.
147646845023Smrg	sysv*)
1477d6c0b56eSmrg		;;
147846845023Smrg	ose*)
147946845023Smrg		os=ose
1480d6c0b56eSmrg		;;
148146845023Smrg	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
148246845023Smrg		os=mint
1483d6c0b56eSmrg		;;
148446845023Smrg	zvmoe)
148546845023Smrg		os=zvmoe
1486d6c0b56eSmrg		;;
148746845023Smrg	dicos*)
148846845023Smrg		os=dicos
1489d6c0b56eSmrg		;;
149046845023Smrg	pikeos*)
149124b90cf4Smrg		# Until real need of OS specific support for
149224b90cf4Smrg		# particular features comes up, bare metal
149324b90cf4Smrg		# configurations are quite functional.
149446845023Smrg		case $cpu in
149524b90cf4Smrg		    arm*)
149646845023Smrg			os=eabi
149724b90cf4Smrg			;;
149824b90cf4Smrg		    *)
149946845023Smrg			os=elf
150024b90cf4Smrg			;;
150124b90cf4Smrg		esac
150224b90cf4Smrg		;;
150346845023Smrg	nacl*)
1504d6c0b56eSmrg		;;
150546845023Smrg	ios)
150611bf0794Smrg		;;
150746845023Smrg	none)
150846845023Smrg		;;
150946845023Smrg	*-eabi)
1510d6c0b56eSmrg		;;
1511d6c0b56eSmrg	*)
151224b90cf4Smrg		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
1513d6c0b56eSmrg		exit 1
1514d6c0b56eSmrg		;;
1515d6c0b56eSmrgesac
1516d6c0b56eSmrgelse
1517d6c0b56eSmrg
1518d6c0b56eSmrg# Here we handle the default operating systems that come with various machines.
1519d6c0b56eSmrg# The value should be what the vendor currently ships out the door with their
1520d6c0b56eSmrg# machine or put another way, the most popular os provided with the machine.
1521d6c0b56eSmrg
1522d6c0b56eSmrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
1523d6c0b56eSmrg# "-sun"), then you have to tell the case statement up towards the top
1524d6c0b56eSmrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
1525d6c0b56eSmrg# will signal an error saying that MANUFACTURER isn't an operating
1526d6c0b56eSmrg# system, and we'll never get to this point.
1527d6c0b56eSmrg
152846845023Smrgcase $cpu-$vendor in
1529d6c0b56eSmrg	score-*)
153046845023Smrg		os=elf
1531d6c0b56eSmrg		;;
1532d6c0b56eSmrg	spu-*)
153346845023Smrg		os=elf
1534d6c0b56eSmrg		;;
1535d6c0b56eSmrg	*-acorn)
153646845023Smrg		os=riscix1.2
1537d6c0b56eSmrg		;;
1538d6c0b56eSmrg	arm*-rebel)
153946845023Smrg		os=linux
1540d6c0b56eSmrg		;;
1541d6c0b56eSmrg	arm*-semi)
154246845023Smrg		os=aout
1543d6c0b56eSmrg		;;
1544d6c0b56eSmrg	c4x-* | tic4x-*)
154546845023Smrg		os=coff
1546d6c0b56eSmrg		;;
1547d6c0b56eSmrg	c8051-*)
154846845023Smrg		os=elf
154946845023Smrg		;;
155046845023Smrg	clipper-intergraph)
155146845023Smrg		os=clix
1552d6c0b56eSmrg		;;
1553d6c0b56eSmrg	hexagon-*)
155446845023Smrg		os=elf
1555d6c0b56eSmrg		;;
1556d6c0b56eSmrg	tic54x-*)
155746845023Smrg		os=coff
1558d6c0b56eSmrg		;;
1559d6c0b56eSmrg	tic55x-*)
156046845023Smrg		os=coff
1561d6c0b56eSmrg		;;
1562d6c0b56eSmrg	tic6x-*)
156346845023Smrg		os=coff
1564d6c0b56eSmrg		;;
1565d6c0b56eSmrg	# This must come before the *-dec entry.
1566d6c0b56eSmrg	pdp10-*)
156746845023Smrg		os=tops20
1568d6c0b56eSmrg		;;
1569d6c0b56eSmrg	pdp11-*)
157046845023Smrg		os=none
1571d6c0b56eSmrg		;;
1572d6c0b56eSmrg	*-dec | vax-*)
157346845023Smrg		os=ultrix4.2
1574d6c0b56eSmrg		;;
1575d6c0b56eSmrg	m68*-apollo)
157646845023Smrg		os=domain
1577d6c0b56eSmrg		;;
1578d6c0b56eSmrg	i386-sun)
157946845023Smrg		os=sunos4.0.2
1580d6c0b56eSmrg		;;
1581d6c0b56eSmrg	m68000-sun)
158246845023Smrg		os=sunos3
1583d6c0b56eSmrg		;;
1584d6c0b56eSmrg	m68*-cisco)
158546845023Smrg		os=aout
1586d6c0b56eSmrg		;;
1587d6c0b56eSmrg	mep-*)
158846845023Smrg		os=elf
1589d6c0b56eSmrg		;;
1590d6c0b56eSmrg	mips*-cisco)
159146845023Smrg		os=elf
1592d6c0b56eSmrg		;;
1593d6c0b56eSmrg	mips*-*)
159446845023Smrg		os=elf
1595d6c0b56eSmrg		;;
1596d6c0b56eSmrg	or32-*)
159746845023Smrg		os=coff
1598d6c0b56eSmrg		;;
1599d6c0b56eSmrg	*-tti)	# must be before sparc entry or we get the wrong os.
160046845023Smrg		os=sysv3
1601d6c0b56eSmrg		;;
1602d6c0b56eSmrg	sparc-* | *-sun)
160346845023Smrg		os=sunos4.1.1
1604d6c0b56eSmrg		;;
160524b90cf4Smrg	pru-*)
160646845023Smrg		os=elf
160724b90cf4Smrg		;;
1608d6c0b56eSmrg	*-be)
160946845023Smrg		os=beos
1610d6c0b56eSmrg		;;
1611d6c0b56eSmrg	*-ibm)
161246845023Smrg		os=aix
1613d6c0b56eSmrg		;;
1614d6c0b56eSmrg	*-knuth)
161546845023Smrg		os=mmixware
1616d6c0b56eSmrg		;;
1617d6c0b56eSmrg	*-wec)
161846845023Smrg		os=proelf
1619d6c0b56eSmrg		;;
1620d6c0b56eSmrg	*-winbond)
162146845023Smrg		os=proelf
1622d6c0b56eSmrg		;;
1623d6c0b56eSmrg	*-oki)
162446845023Smrg		os=proelf
1625d6c0b56eSmrg		;;
1626d6c0b56eSmrg	*-hp)
162746845023Smrg		os=hpux
1628d6c0b56eSmrg		;;
1629d6c0b56eSmrg	*-hitachi)
163046845023Smrg		os=hiux
1631d6c0b56eSmrg		;;
1632d6c0b56eSmrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
163346845023Smrg		os=sysv
1634d6c0b56eSmrg		;;
1635d6c0b56eSmrg	*-cbm)
163646845023Smrg		os=amigaos
1637d6c0b56eSmrg		;;
1638d6c0b56eSmrg	*-dg)
163946845023Smrg		os=dgux
1640d6c0b56eSmrg		;;
1641d6c0b56eSmrg	*-dolphin)
164246845023Smrg		os=sysv3
1643d6c0b56eSmrg		;;
1644d6c0b56eSmrg	m68k-ccur)
164546845023Smrg		os=rtu
1646d6c0b56eSmrg		;;
1647d6c0b56eSmrg	m88k-omron*)
164846845023Smrg		os=luna
1649d6c0b56eSmrg		;;
165024b90cf4Smrg	*-next)
165146845023Smrg		os=nextstep
1652d6c0b56eSmrg		;;
1653d6c0b56eSmrg	*-sequent)
165446845023Smrg		os=ptx
1655d6c0b56eSmrg		;;
1656d6c0b56eSmrg	*-crds)
165746845023Smrg		os=unos
1658d6c0b56eSmrg		;;
1659d6c0b56eSmrg	*-ns)
166046845023Smrg		os=genix
1661d6c0b56eSmrg		;;
1662d6c0b56eSmrg	i370-*)
166346845023Smrg		os=mvs
1664d6c0b56eSmrg		;;
1665d6c0b56eSmrg	*-gould)
166646845023Smrg		os=sysv
1667d6c0b56eSmrg		;;
1668d6c0b56eSmrg	*-highlevel)
166946845023Smrg		os=bsd
1670d6c0b56eSmrg		;;
1671d6c0b56eSmrg	*-encore)
167246845023Smrg		os=bsd
1673d6c0b56eSmrg		;;
1674d6c0b56eSmrg	*-sgi)
167546845023Smrg		os=irix
1676d6c0b56eSmrg		;;
1677d6c0b56eSmrg	*-siemens)
167846845023Smrg		os=sysv4
1679d6c0b56eSmrg		;;
1680d6c0b56eSmrg	*-masscomp)
168146845023Smrg		os=rtu
1682d6c0b56eSmrg		;;
1683d6c0b56eSmrg	f30[01]-fujitsu | f700-fujitsu)
168446845023Smrg		os=uxpv
1685d6c0b56eSmrg		;;
1686d6c0b56eSmrg	*-rom68k)
168746845023Smrg		os=coff
1688d6c0b56eSmrg		;;
1689d6c0b56eSmrg	*-*bug)
169046845023Smrg		os=coff
1691d6c0b56eSmrg		;;
1692d6c0b56eSmrg	*-apple)
169346845023Smrg		os=macos
1694d6c0b56eSmrg		;;
1695d6c0b56eSmrg	*-atari*)
169646845023Smrg		os=mint
169746845023Smrg		;;
169846845023Smrg	*-wrs)
169946845023Smrg		os=vxworks
1700d6c0b56eSmrg		;;
1701d6c0b56eSmrg	*)
170246845023Smrg		os=none
1703d6c0b56eSmrg		;;
1704d6c0b56eSmrgesac
1705d6c0b56eSmrgfi
1706d6c0b56eSmrg
1707d6c0b56eSmrg# Here we handle the case where we know the os, and the CPU type, but not the
1708d6c0b56eSmrg# manufacturer.  We pick the logical manufacturer.
170946845023Smrgcase $vendor in
171046845023Smrg	unknown)
1711d6c0b56eSmrg		case $os in
171246845023Smrg			riscix*)
1713d6c0b56eSmrg				vendor=acorn
1714d6c0b56eSmrg				;;
171546845023Smrg			sunos*)
1716d6c0b56eSmrg				vendor=sun
1717d6c0b56eSmrg				;;
171846845023Smrg			cnk*|-aix*)
1719d6c0b56eSmrg				vendor=ibm
1720d6c0b56eSmrg				;;
172146845023Smrg			beos*)
1722d6c0b56eSmrg				vendor=be
1723d6c0b56eSmrg				;;
172446845023Smrg			hpux*)
1725d6c0b56eSmrg				vendor=hp
1726d6c0b56eSmrg				;;
172746845023Smrg			mpeix*)
1728d6c0b56eSmrg				vendor=hp
1729d6c0b56eSmrg				;;
173046845023Smrg			hiux*)
1731d6c0b56eSmrg				vendor=hitachi
1732d6c0b56eSmrg				;;
173346845023Smrg			unos*)
1734d6c0b56eSmrg				vendor=crds
1735d6c0b56eSmrg				;;
173646845023Smrg			dgux*)
1737d6c0b56eSmrg				vendor=dg
1738d6c0b56eSmrg				;;
173946845023Smrg			luna*)
1740d6c0b56eSmrg				vendor=omron
1741d6c0b56eSmrg				;;
174246845023Smrg			genix*)
1743d6c0b56eSmrg				vendor=ns
1744d6c0b56eSmrg				;;
174546845023Smrg			clix*)
174646845023Smrg				vendor=intergraph
174746845023Smrg				;;
174846845023Smrg			mvs* | opened*)
1749d6c0b56eSmrg				vendor=ibm
1750d6c0b56eSmrg				;;
175146845023Smrg			os400*)
1752d6c0b56eSmrg				vendor=ibm
1753d6c0b56eSmrg				;;
175446845023Smrg			ptx*)
1755d6c0b56eSmrg				vendor=sequent
1756d6c0b56eSmrg				;;
175746845023Smrg			tpf*)
1758d6c0b56eSmrg				vendor=ibm
1759d6c0b56eSmrg				;;
176046845023Smrg			vxsim* | vxworks* | windiss*)
1761d6c0b56eSmrg				vendor=wrs
1762d6c0b56eSmrg				;;
176346845023Smrg			aux*)
1764d6c0b56eSmrg				vendor=apple
1765d6c0b56eSmrg				;;
176646845023Smrg			hms*)
1767d6c0b56eSmrg				vendor=hitachi
1768d6c0b56eSmrg				;;
176946845023Smrg			mpw* | macos*)
1770d6c0b56eSmrg				vendor=apple
1771d6c0b56eSmrg				;;
177246845023Smrg			*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1773d6c0b56eSmrg				vendor=atari
1774d6c0b56eSmrg				;;
177546845023Smrg			vos*)
1776d6c0b56eSmrg				vendor=stratus
1777d6c0b56eSmrg				;;
1778d6c0b56eSmrg		esac
1779d6c0b56eSmrg		;;
1780d6c0b56eSmrgesac
1781d6c0b56eSmrg
178246845023Smrgecho "$cpu-$vendor-$os"
1783d6c0b56eSmrgexit
1784d6c0b56eSmrg
1785d6c0b56eSmrg# Local variables:
178646845023Smrg# eval: (add-hook 'before-save-hook 'time-stamp)
1787d6c0b56eSmrg# time-stamp-start: "timestamp='"
1788d6c0b56eSmrg# time-stamp-format: "%:y-%02m-%02d"
1789d6c0b56eSmrg# time-stamp-end: "'"
1790d6c0b56eSmrg# End:
1791