16f03b1f6Smrg#! /bin/sh
26f03b1f6Smrg# Configuration validation subroutine script.
30f57e2e1Smrg#   Copyright 1992-2023 Free Software Foundation, Inc.
46f03b1f6Smrg
50f57e2e1Smrg# shellcheck disable=SC2006,SC2268 # see below for rationale
60f57e2e1Smrg
70f57e2e1Smrgtimestamp='2023-01-21'
86f03b1f6Smrg
917caa701Smrg# This file is free software; you can redistribute it and/or modify it
1017caa701Smrg# under the terms of the GNU General Public License as published by
110f57e2e1Smrg# the Free Software Foundation, either version 3 of the License, or
126f03b1f6Smrg# (at your option) any later version.
136f03b1f6Smrg#
1417caa701Smrg# This program is distributed in the hope that it will be useful, but
1517caa701Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
1617caa701Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1717caa701Smrg# General Public License for more details.
186f03b1f6Smrg#
196f03b1f6Smrg# You should have received a copy of the GNU General Public License
20c1e3c5d0Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
216f03b1f6Smrg#
226f03b1f6Smrg# As a special exception to the GNU General Public License, if you
236f03b1f6Smrg# distribute this file as part of a program that contains a
246f03b1f6Smrg# configuration script generated by Autoconf, you may include it under
2517caa701Smrg# the same distribution terms that you use for the rest of that
2617caa701Smrg# program.  This Exception is an additional permission under section 7
2717caa701Smrg# of the GNU General Public License, version 3 ("GPLv3").
286f03b1f6Smrg
296f03b1f6Smrg
30c1e3c5d0Smrg# Please send patches to <config-patches@gnu.org>.
316f03b1f6Smrg#
326f03b1f6Smrg# Configuration subroutine to validate and canonicalize a configuration type.
336f03b1f6Smrg# Supply the specified configuration type as an argument.
346f03b1f6Smrg# If it is invalid, we print an error message on stderr and exit with code 1.
356f03b1f6Smrg# Otherwise, we print the canonical config type on stdout and succeed.
366f03b1f6Smrg
37356f6debSmrg# You can get the latest version of this script from:
3840613eb2Smrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
39356f6debSmrg
406f03b1f6Smrg# This file is supposed to be the same for all GNU packages
416f03b1f6Smrg# and recognize all the CPU types, system types and aliases
426f03b1f6Smrg# that are meaningful with *any* GNU software.
436f03b1f6Smrg# Each package is responsible for reporting which valid configurations
446f03b1f6Smrg# it does not support.  The user should be able to distinguish
456f03b1f6Smrg# a failure to support a valid configuration from a meaningless
466f03b1f6Smrg# configuration.
476f03b1f6Smrg
486f03b1f6Smrg# The goal of this file is to map all the various variations of a given
496f03b1f6Smrg# machine specification into a single specification in the form:
506f03b1f6Smrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
516f03b1f6Smrg# or in some cases, the newer four-part form:
526f03b1f6Smrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
536f03b1f6Smrg# It is wrong to echo any other type of specification.
546f03b1f6Smrg
550f57e2e1Smrg# The "shellcheck disable" line above the timestamp inhibits complaints
560f57e2e1Smrg# about features and limitations of the classic Bourne shell that were
570f57e2e1Smrg# superseded or lifted in POSIX.  However, this script identifies a wide
580f57e2e1Smrg# variety of pre-POSIX systems that do not have POSIX shells at all, and
590f57e2e1Smrg# even some reasonably current systems (Solaris 10 as case-in-point) still
600f57e2e1Smrg# have a pre-POSIX /bin/sh.
610f57e2e1Smrg
620f57e2e1Smrgme=`echo "$0" | sed -e 's,.*/,,'`
636f03b1f6Smrg
646f03b1f6Smrgusage="\
65c1e3c5d0SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
666f03b1f6Smrg
676f03b1f6SmrgCanonicalize a configuration name.
686f03b1f6Smrg
69c1e3c5d0SmrgOptions:
706f03b1f6Smrg  -h, --help         print this help, then exit
716f03b1f6Smrg  -t, --time-stamp   print date of last modification, then exit
726f03b1f6Smrg  -v, --version      print version number, then exit
736f03b1f6Smrg
746f03b1f6SmrgReport bugs and patches to <config-patches@gnu.org>."
756f03b1f6Smrg
766f03b1f6Smrgversion="\
776f03b1f6SmrgGNU config.sub ($timestamp)
786f03b1f6Smrg
790f57e2e1SmrgCopyright 1992-2023 Free Software Foundation, Inc.
806f03b1f6Smrg
816f03b1f6SmrgThis is free software; see the source for copying conditions.  There is NO
826f03b1f6Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
836f03b1f6Smrg
846f03b1f6Smrghelp="
856f03b1f6SmrgTry \`$me --help' for more information."
866f03b1f6Smrg
876f03b1f6Smrg# Parse command line
886f03b1f6Smrgwhile test $# -gt 0 ; do
896f03b1f6Smrg  case $1 in
906f03b1f6Smrg    --time-stamp | --time* | -t )
916f03b1f6Smrg       echo "$timestamp" ; exit ;;
926f03b1f6Smrg    --version | -v )
936f03b1f6Smrg       echo "$version" ; exit ;;
946f03b1f6Smrg    --help | --h* | -h )
956f03b1f6Smrg       echo "$usage"; exit ;;
966f03b1f6Smrg    -- )     # Stop option processing
976f03b1f6Smrg       shift; break ;;
986f03b1f6Smrg    - )	# Use stdin as input.
996f03b1f6Smrg       break ;;
1006f03b1f6Smrg    -* )
10140613eb2Smrg       echo "$me: invalid option $1$help" >&2
1026f03b1f6Smrg       exit 1 ;;
1036f03b1f6Smrg
1046f03b1f6Smrg    *local*)
1056f03b1f6Smrg       # First pass through any local machine types.
106c1e3c5d0Smrg       echo "$1"
1076f03b1f6Smrg       exit ;;
1086f03b1f6Smrg
1096f03b1f6Smrg    * )
1106f03b1f6Smrg       break ;;
1116f03b1f6Smrg  esac
1126f03b1f6Smrgdone
1136f03b1f6Smrg
1146f03b1f6Smrgcase $# in
1156f03b1f6Smrg 0) echo "$me: missing argument$help" >&2
1166f03b1f6Smrg    exit 1;;
1176f03b1f6Smrg 1) ;;
1186f03b1f6Smrg *) echo "$me: too many arguments$help" >&2
1196f03b1f6Smrg    exit 1;;
1206f03b1f6Smrgesac
1216f03b1f6Smrg
122cfcf9057Smrg# Split fields of configuration type
12340613eb2Smrg# shellcheck disable=SC2162
1240f57e2e1Smrgsaved_IFS=$IFS
12540613eb2SmrgIFS="-" read field1 field2 field3 field4 <<EOF
126cfcf9057Smrg$1
127cfcf9057SmrgEOF
1280f57e2e1SmrgIFS=$saved_IFS
1296f03b1f6Smrg
130cfcf9057Smrg# Separate into logical components for further validation
131cfcf9057Smrgcase $1 in
132cfcf9057Smrg	*-*-*-*-*)
133cfcf9057Smrg		echo Invalid configuration \`"$1"\': more than four components >&2
134cfcf9057Smrg		exit 1
13517caa701Smrg		;;
136cfcf9057Smrg	*-*-*-*)
137cfcf9057Smrg		basic_machine=$field1-$field2
13840613eb2Smrg		basic_os=$field3-$field4
1396f03b1f6Smrg		;;
140cfcf9057Smrg	*-*-*)
141cfcf9057Smrg		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
142cfcf9057Smrg		# parts
143cfcf9057Smrg		maybe_os=$field2-$field3
144cfcf9057Smrg		case $maybe_os in
14540613eb2Smrg			nto-qnx* | linux-* | uclinux-uclibc* \
146cfcf9057Smrg			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
147cfcf9057Smrg			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
1480f57e2e1Smrg			| storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
149cfcf9057Smrg				basic_machine=$field1
15040613eb2Smrg				basic_os=$maybe_os
151cfcf9057Smrg				;;
152cfcf9057Smrg			android-linux)
153cfcf9057Smrg				basic_machine=$field1-unknown
15440613eb2Smrg				basic_os=linux-android
155cfcf9057Smrg				;;
156cfcf9057Smrg			*)
157cfcf9057Smrg				basic_machine=$field1-$field2
15840613eb2Smrg				basic_os=$field3
159cfcf9057Smrg				;;
160cfcf9057Smrg		esac
1616f03b1f6Smrg		;;
162cfcf9057Smrg	*-*)
16340613eb2Smrg		# A lone config we happen to match not fitting any pattern
164cfcf9057Smrg		case $field1-$field2 in
165cfcf9057Smrg			decstation-3100)
166cfcf9057Smrg				basic_machine=mips-dec
16740613eb2Smrg				basic_os=
168cfcf9057Smrg				;;
169cfcf9057Smrg			*-*)
170cfcf9057Smrg				# Second component is usually, but not always the OS
171cfcf9057Smrg				case $field2 in
172cfcf9057Smrg					# Prevent following clause from handling this valid os
173cfcf9057Smrg					sun*os*)
174cfcf9057Smrg						basic_machine=$field1
17540613eb2Smrg						basic_os=$field2
176cfcf9057Smrg						;;
1770f57e2e1Smrg					zephyr*)
1780f57e2e1Smrg						basic_machine=$field1-unknown
1790f57e2e1Smrg						basic_os=$field2
1800f57e2e1Smrg						;;
181cfcf9057Smrg					# Manufacturers
182cfcf9057Smrg					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
183cfcf9057Smrg					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
184cfcf9057Smrg					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
185cfcf9057Smrg					| convergent* | ncr* | news | 32* | 3600* | 3100* \
186cfcf9057Smrg					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
187cfcf9057Smrg					| ultra | tti* | harris | dolphin | highlevel | gould \
188cfcf9057Smrg					| cbm | ns | masscomp | apple | axis | knuth | cray \
189cfcf9057Smrg					| microblaze* | sim | cisco \
190cfcf9057Smrg					| oki | wec | wrs | winbond)
191cfcf9057Smrg						basic_machine=$field1-$field2
19240613eb2Smrg						basic_os=
193cfcf9057Smrg						;;
194cfcf9057Smrg					*)
195cfcf9057Smrg						basic_machine=$field1
19640613eb2Smrg						basic_os=$field2
197cfcf9057Smrg						;;
198cfcf9057Smrg				esac
199cfcf9057Smrg			;;
200cfcf9057Smrg		esac
2016f03b1f6Smrg		;;
202cfcf9057Smrg	*)
203cfcf9057Smrg		# Convert single-component short-hands not valid as part of
204cfcf9057Smrg		# multi-component configurations.
205cfcf9057Smrg		case $field1 in
206cfcf9057Smrg			386bsd)
207cfcf9057Smrg				basic_machine=i386-pc
20840613eb2Smrg				basic_os=bsd
209cfcf9057Smrg				;;
210cfcf9057Smrg			a29khif)
211cfcf9057Smrg				basic_machine=a29k-amd
21240613eb2Smrg				basic_os=udi
213cfcf9057Smrg				;;
214cfcf9057Smrg			adobe68k)
215cfcf9057Smrg				basic_machine=m68010-adobe
21640613eb2Smrg				basic_os=scout
217cfcf9057Smrg				;;
218cfcf9057Smrg			alliant)
219cfcf9057Smrg				basic_machine=fx80-alliant
22040613eb2Smrg				basic_os=
221cfcf9057Smrg				;;
222cfcf9057Smrg			altos | altos3068)
223cfcf9057Smrg				basic_machine=m68k-altos
22440613eb2Smrg				basic_os=
225cfcf9057Smrg				;;
226cfcf9057Smrg			am29k)
227cfcf9057Smrg				basic_machine=a29k-none
22840613eb2Smrg				basic_os=bsd
229cfcf9057Smrg				;;
230cfcf9057Smrg			amdahl)
231cfcf9057Smrg				basic_machine=580-amdahl
23240613eb2Smrg				basic_os=sysv
233cfcf9057Smrg				;;
234cfcf9057Smrg			amiga)
235cfcf9057Smrg				basic_machine=m68k-unknown
23640613eb2Smrg				basic_os=
237cfcf9057Smrg				;;
238cfcf9057Smrg			amigaos | amigados)
239cfcf9057Smrg				basic_machine=m68k-unknown
24040613eb2Smrg				basic_os=amigaos
241cfcf9057Smrg				;;
242cfcf9057Smrg			amigaunix | amix)
243cfcf9057Smrg				basic_machine=m68k-unknown
24440613eb2Smrg				basic_os=sysv4
245cfcf9057Smrg				;;
246cfcf9057Smrg			apollo68)
247cfcf9057Smrg				basic_machine=m68k-apollo
24840613eb2Smrg				basic_os=sysv
249cfcf9057Smrg				;;
250cfcf9057Smrg			apollo68bsd)
251cfcf9057Smrg				basic_machine=m68k-apollo
25240613eb2Smrg				basic_os=bsd
253cfcf9057Smrg				;;
254cfcf9057Smrg			aros)
255cfcf9057Smrg				basic_machine=i386-pc
25640613eb2Smrg				basic_os=aros
257cfcf9057Smrg				;;
258cfcf9057Smrg			aux)
259cfcf9057Smrg				basic_machine=m68k-apple
26040613eb2Smrg				basic_os=aux
261cfcf9057Smrg				;;
262cfcf9057Smrg			balance)
263cfcf9057Smrg				basic_machine=ns32k-sequent
26440613eb2Smrg				basic_os=dynix
265cfcf9057Smrg				;;
266cfcf9057Smrg			blackfin)
267cfcf9057Smrg				basic_machine=bfin-unknown
26840613eb2Smrg				basic_os=linux
269cfcf9057Smrg				;;
270cfcf9057Smrg			cegcc)
271cfcf9057Smrg				basic_machine=arm-unknown
27240613eb2Smrg				basic_os=cegcc
273cfcf9057Smrg				;;
274cfcf9057Smrg			convex-c1)
275cfcf9057Smrg				basic_machine=c1-convex
27640613eb2Smrg				basic_os=bsd
277cfcf9057Smrg				;;
278cfcf9057Smrg			convex-c2)
279cfcf9057Smrg				basic_machine=c2-convex
28040613eb2Smrg				basic_os=bsd
281cfcf9057Smrg				;;
282cfcf9057Smrg			convex-c32)
283cfcf9057Smrg				basic_machine=c32-convex
28440613eb2Smrg				basic_os=bsd
285cfcf9057Smrg				;;
286cfcf9057Smrg			convex-c34)
287cfcf9057Smrg				basic_machine=c34-convex
28840613eb2Smrg				basic_os=bsd
289cfcf9057Smrg				;;
290cfcf9057Smrg			convex-c38)
291cfcf9057Smrg				basic_machine=c38-convex
29240613eb2Smrg				basic_os=bsd
293cfcf9057Smrg				;;
294cfcf9057Smrg			cray)
295cfcf9057Smrg				basic_machine=j90-cray
29640613eb2Smrg				basic_os=unicos
297cfcf9057Smrg				;;
298cfcf9057Smrg			crds | unos)
299cfcf9057Smrg				basic_machine=m68k-crds
30040613eb2Smrg				basic_os=
301cfcf9057Smrg				;;
302cfcf9057Smrg			da30)
303cfcf9057Smrg				basic_machine=m68k-da30
30440613eb2Smrg				basic_os=
305cfcf9057Smrg				;;
306cfcf9057Smrg			decstation | pmax | pmin | dec3100 | decstatn)
307cfcf9057Smrg				basic_machine=mips-dec
30840613eb2Smrg				basic_os=
309cfcf9057Smrg				;;
310cfcf9057Smrg			delta88)
311cfcf9057Smrg				basic_machine=m88k-motorola
31240613eb2Smrg				basic_os=sysv3
313cfcf9057Smrg				;;
314cfcf9057Smrg			dicos)
315cfcf9057Smrg				basic_machine=i686-pc
31640613eb2Smrg				basic_os=dicos
317cfcf9057Smrg				;;
318cfcf9057Smrg			djgpp)
319cfcf9057Smrg				basic_machine=i586-pc
32040613eb2Smrg				basic_os=msdosdjgpp
321cfcf9057Smrg				;;
322cfcf9057Smrg			ebmon29k)
323cfcf9057Smrg				basic_machine=a29k-amd
32440613eb2Smrg				basic_os=ebmon
325cfcf9057Smrg				;;
326cfcf9057Smrg			es1800 | OSE68k | ose68k | ose | OSE)
327cfcf9057Smrg				basic_machine=m68k-ericsson
32840613eb2Smrg				basic_os=ose
329cfcf9057Smrg				;;
330cfcf9057Smrg			gmicro)
331cfcf9057Smrg				basic_machine=tron-gmicro
33240613eb2Smrg				basic_os=sysv
333cfcf9057Smrg				;;
334cfcf9057Smrg			go32)
335cfcf9057Smrg				basic_machine=i386-pc
33640613eb2Smrg				basic_os=go32
337cfcf9057Smrg				;;
338cfcf9057Smrg			h8300hms)
339cfcf9057Smrg				basic_machine=h8300-hitachi
34040613eb2Smrg				basic_os=hms
341cfcf9057Smrg				;;
342cfcf9057Smrg			h8300xray)
343cfcf9057Smrg				basic_machine=h8300-hitachi
34440613eb2Smrg				basic_os=xray
345cfcf9057Smrg				;;
346cfcf9057Smrg			h8500hms)
347cfcf9057Smrg				basic_machine=h8500-hitachi
34840613eb2Smrg				basic_os=hms
349cfcf9057Smrg				;;
350cfcf9057Smrg			harris)
351cfcf9057Smrg				basic_machine=m88k-harris
35240613eb2Smrg				basic_os=sysv3
353cfcf9057Smrg				;;
35440613eb2Smrg			hp300 | hp300hpux)
355cfcf9057Smrg				basic_machine=m68k-hp
35640613eb2Smrg				basic_os=hpux
357cfcf9057Smrg				;;
358cfcf9057Smrg			hp300bsd)
359cfcf9057Smrg				basic_machine=m68k-hp
36040613eb2Smrg				basic_os=bsd
361cfcf9057Smrg				;;
362cfcf9057Smrg			hppaosf)
363cfcf9057Smrg				basic_machine=hppa1.1-hp
36440613eb2Smrg				basic_os=osf
365cfcf9057Smrg				;;
366cfcf9057Smrg			hppro)
367cfcf9057Smrg				basic_machine=hppa1.1-hp
36840613eb2Smrg				basic_os=proelf
369cfcf9057Smrg				;;
370cfcf9057Smrg			i386mach)
371cfcf9057Smrg				basic_machine=i386-mach
37240613eb2Smrg				basic_os=mach
373cfcf9057Smrg				;;
374cfcf9057Smrg			isi68 | isi)
375cfcf9057Smrg				basic_machine=m68k-isi
37640613eb2Smrg				basic_os=sysv
377cfcf9057Smrg				;;
378cfcf9057Smrg			m68knommu)
379cfcf9057Smrg				basic_machine=m68k-unknown
38040613eb2Smrg				basic_os=linux
381cfcf9057Smrg				;;
382cfcf9057Smrg			magnum | m3230)
383cfcf9057Smrg				basic_machine=mips-mips
38440613eb2Smrg				basic_os=sysv
385cfcf9057Smrg				;;
386cfcf9057Smrg			merlin)
387cfcf9057Smrg				basic_machine=ns32k-utek
38840613eb2Smrg				basic_os=sysv
389cfcf9057Smrg				;;
390cfcf9057Smrg			mingw64)
391cfcf9057Smrg				basic_machine=x86_64-pc
39240613eb2Smrg				basic_os=mingw64
393cfcf9057Smrg				;;
394cfcf9057Smrg			mingw32)
395cfcf9057Smrg				basic_machine=i686-pc
39640613eb2Smrg				basic_os=mingw32
397cfcf9057Smrg				;;
398cfcf9057Smrg			mingw32ce)
399cfcf9057Smrg				basic_machine=arm-unknown
40040613eb2Smrg				basic_os=mingw32ce
401cfcf9057Smrg				;;
402cfcf9057Smrg			monitor)
403cfcf9057Smrg				basic_machine=m68k-rom68k
40440613eb2Smrg				basic_os=coff
405cfcf9057Smrg				;;
406cfcf9057Smrg			morphos)
407cfcf9057Smrg				basic_machine=powerpc-unknown
40840613eb2Smrg				basic_os=morphos
409cfcf9057Smrg				;;
410cfcf9057Smrg			moxiebox)
411cfcf9057Smrg				basic_machine=moxie-unknown
41240613eb2Smrg				basic_os=moxiebox
413cfcf9057Smrg				;;
414cfcf9057Smrg			msdos)
415cfcf9057Smrg				basic_machine=i386-pc
41640613eb2Smrg				basic_os=msdos
417cfcf9057Smrg				;;
418cfcf9057Smrg			msys)
419cfcf9057Smrg				basic_machine=i686-pc
42040613eb2Smrg				basic_os=msys
421cfcf9057Smrg				;;
422cfcf9057Smrg			mvs)
423cfcf9057Smrg				basic_machine=i370-ibm
42440613eb2Smrg				basic_os=mvs
425cfcf9057Smrg				;;
426cfcf9057Smrg			nacl)
427cfcf9057Smrg				basic_machine=le32-unknown
42840613eb2Smrg				basic_os=nacl
429cfcf9057Smrg				;;
430cfcf9057Smrg			ncr3000)
431cfcf9057Smrg				basic_machine=i486-ncr
43240613eb2Smrg				basic_os=sysv4
433cfcf9057Smrg				;;
434cfcf9057Smrg			netbsd386)
435cfcf9057Smrg				basic_machine=i386-pc
43640613eb2Smrg				basic_os=netbsd
437cfcf9057Smrg				;;
438cfcf9057Smrg			netwinder)
439cfcf9057Smrg				basic_machine=armv4l-rebel
44040613eb2Smrg				basic_os=linux
441cfcf9057Smrg				;;
442cfcf9057Smrg			news | news700 | news800 | news900)
443cfcf9057Smrg				basic_machine=m68k-sony
44440613eb2Smrg				basic_os=newsos
445cfcf9057Smrg				;;
446cfcf9057Smrg			news1000)
447cfcf9057Smrg				basic_machine=m68030-sony
44840613eb2Smrg				basic_os=newsos
449cfcf9057Smrg				;;
450cfcf9057Smrg			necv70)
451cfcf9057Smrg				basic_machine=v70-nec
45240613eb2Smrg				basic_os=sysv
453cfcf9057Smrg				;;
454cfcf9057Smrg			nh3000)
455cfcf9057Smrg				basic_machine=m68k-harris
45640613eb2Smrg				basic_os=cxux
457cfcf9057Smrg				;;
458cfcf9057Smrg			nh[45]000)
459cfcf9057Smrg				basic_machine=m88k-harris
46040613eb2Smrg				basic_os=cxux
461cfcf9057Smrg				;;
462cfcf9057Smrg			nindy960)
463cfcf9057Smrg				basic_machine=i960-intel
46440613eb2Smrg				basic_os=nindy
465cfcf9057Smrg				;;
466cfcf9057Smrg			mon960)
467cfcf9057Smrg				basic_machine=i960-intel
46840613eb2Smrg				basic_os=mon960
469cfcf9057Smrg				;;
470cfcf9057Smrg			nonstopux)
471cfcf9057Smrg				basic_machine=mips-compaq
47240613eb2Smrg				basic_os=nonstopux
473cfcf9057Smrg				;;
474cfcf9057Smrg			os400)
475cfcf9057Smrg				basic_machine=powerpc-ibm
47640613eb2Smrg				basic_os=os400
477cfcf9057Smrg				;;
478cfcf9057Smrg			OSE68000 | ose68000)
479cfcf9057Smrg				basic_machine=m68000-ericsson
48040613eb2Smrg				basic_os=ose
481cfcf9057Smrg				;;
482cfcf9057Smrg			os68k)
483cfcf9057Smrg				basic_machine=m68k-none
48440613eb2Smrg				basic_os=os68k
485cfcf9057Smrg				;;
486cfcf9057Smrg			paragon)
487cfcf9057Smrg				basic_machine=i860-intel
48840613eb2Smrg				basic_os=osf
489cfcf9057Smrg				;;
490cfcf9057Smrg			parisc)
491cfcf9057Smrg				basic_machine=hppa-unknown
49240613eb2Smrg				basic_os=linux
49340613eb2Smrg				;;
49440613eb2Smrg			psp)
49540613eb2Smrg				basic_machine=mipsallegrexel-sony
49640613eb2Smrg				basic_os=psp
497cfcf9057Smrg				;;
498cfcf9057Smrg			pw32)
499cfcf9057Smrg				basic_machine=i586-unknown
50040613eb2Smrg				basic_os=pw32
501cfcf9057Smrg				;;
502cfcf9057Smrg			rdos | rdos64)
503cfcf9057Smrg				basic_machine=x86_64-pc
50440613eb2Smrg				basic_os=rdos
505cfcf9057Smrg				;;
506cfcf9057Smrg			rdos32)
507cfcf9057Smrg				basic_machine=i386-pc
50840613eb2Smrg				basic_os=rdos
509cfcf9057Smrg				;;
510cfcf9057Smrg			rom68k)
511cfcf9057Smrg				basic_machine=m68k-rom68k
51240613eb2Smrg				basic_os=coff
513cfcf9057Smrg				;;
514cfcf9057Smrg			sa29200)
515cfcf9057Smrg				basic_machine=a29k-amd
51640613eb2Smrg				basic_os=udi
517cfcf9057Smrg				;;
518cfcf9057Smrg			sei)
519cfcf9057Smrg				basic_machine=mips-sei
52040613eb2Smrg				basic_os=seiux
521cfcf9057Smrg				;;
522cfcf9057Smrg			sequent)
523cfcf9057Smrg				basic_machine=i386-sequent
52440613eb2Smrg				basic_os=
525cfcf9057Smrg				;;
526cfcf9057Smrg			sps7)
527cfcf9057Smrg				basic_machine=m68k-bull
52840613eb2Smrg				basic_os=sysv2
529cfcf9057Smrg				;;
530cfcf9057Smrg			st2000)
531cfcf9057Smrg				basic_machine=m68k-tandem
53240613eb2Smrg				basic_os=
533cfcf9057Smrg				;;
534cfcf9057Smrg			stratus)
535cfcf9057Smrg				basic_machine=i860-stratus
53640613eb2Smrg				basic_os=sysv4
537cfcf9057Smrg				;;
538cfcf9057Smrg			sun2)
539cfcf9057Smrg				basic_machine=m68000-sun
54040613eb2Smrg				basic_os=
541cfcf9057Smrg				;;
542cfcf9057Smrg			sun2os3)
543cfcf9057Smrg				basic_machine=m68000-sun
54440613eb2Smrg				basic_os=sunos3
545cfcf9057Smrg				;;
546cfcf9057Smrg			sun2os4)
547cfcf9057Smrg				basic_machine=m68000-sun
54840613eb2Smrg				basic_os=sunos4
549cfcf9057Smrg				;;
550cfcf9057Smrg			sun3)
551cfcf9057Smrg				basic_machine=m68k-sun
55240613eb2Smrg				basic_os=
553cfcf9057Smrg				;;
554cfcf9057Smrg			sun3os3)
555cfcf9057Smrg				basic_machine=m68k-sun
55640613eb2Smrg				basic_os=sunos3
557cfcf9057Smrg				;;
558cfcf9057Smrg			sun3os4)
559cfcf9057Smrg				basic_machine=m68k-sun
56040613eb2Smrg				basic_os=sunos4
561cfcf9057Smrg				;;
562cfcf9057Smrg			sun4)
563cfcf9057Smrg				basic_machine=sparc-sun
56440613eb2Smrg				basic_os=
565cfcf9057Smrg				;;
566cfcf9057Smrg			sun4os3)
567cfcf9057Smrg				basic_machine=sparc-sun
56840613eb2Smrg				basic_os=sunos3
569cfcf9057Smrg				;;
570cfcf9057Smrg			sun4os4)
571cfcf9057Smrg				basic_machine=sparc-sun
57240613eb2Smrg				basic_os=sunos4
573cfcf9057Smrg				;;
574cfcf9057Smrg			sun4sol2)
575cfcf9057Smrg				basic_machine=sparc-sun
57640613eb2Smrg				basic_os=solaris2
577cfcf9057Smrg				;;
578cfcf9057Smrg			sun386 | sun386i | roadrunner)
579cfcf9057Smrg				basic_machine=i386-sun
58040613eb2Smrg				basic_os=
581cfcf9057Smrg				;;
582cfcf9057Smrg			sv1)
583cfcf9057Smrg				basic_machine=sv1-cray
58440613eb2Smrg				basic_os=unicos
585cfcf9057Smrg				;;
586cfcf9057Smrg			symmetry)
587cfcf9057Smrg				basic_machine=i386-sequent
58840613eb2Smrg				basic_os=dynix
589cfcf9057Smrg				;;
590cfcf9057Smrg			t3e)
591cfcf9057Smrg				basic_machine=alphaev5-cray
59240613eb2Smrg				basic_os=unicos
593cfcf9057Smrg				;;
594cfcf9057Smrg			t90)
595cfcf9057Smrg				basic_machine=t90-cray
59640613eb2Smrg				basic_os=unicos
597cfcf9057Smrg				;;
598cfcf9057Smrg			toad1)
599cfcf9057Smrg				basic_machine=pdp10-xkl
60040613eb2Smrg				basic_os=tops20
601cfcf9057Smrg				;;
602cfcf9057Smrg			tpf)
603cfcf9057Smrg				basic_machine=s390x-ibm
60440613eb2Smrg				basic_os=tpf
605cfcf9057Smrg				;;
606cfcf9057Smrg			udi29k)
607cfcf9057Smrg				basic_machine=a29k-amd
60840613eb2Smrg				basic_os=udi
609cfcf9057Smrg				;;
610cfcf9057Smrg			ultra3)
611cfcf9057Smrg				basic_machine=a29k-nyu
61240613eb2Smrg				basic_os=sym1
613cfcf9057Smrg				;;
614cfcf9057Smrg			v810 | necv810)
615cfcf9057Smrg				basic_machine=v810-nec
61640613eb2Smrg				basic_os=none
617cfcf9057Smrg				;;
618cfcf9057Smrg			vaxv)
619cfcf9057Smrg				basic_machine=vax-dec
62040613eb2Smrg				basic_os=sysv
621cfcf9057Smrg				;;
622cfcf9057Smrg			vms)
623cfcf9057Smrg				basic_machine=vax-dec
62440613eb2Smrg				basic_os=vms
62540613eb2Smrg				;;
62640613eb2Smrg			vsta)
62740613eb2Smrg				basic_machine=i386-pc
62840613eb2Smrg				basic_os=vsta
629cfcf9057Smrg				;;
630cfcf9057Smrg			vxworks960)
631cfcf9057Smrg				basic_machine=i960-wrs
63240613eb2Smrg				basic_os=vxworks
633cfcf9057Smrg				;;
634cfcf9057Smrg			vxworks68)
635cfcf9057Smrg				basic_machine=m68k-wrs
63640613eb2Smrg				basic_os=vxworks
637cfcf9057Smrg				;;
638cfcf9057Smrg			vxworks29k)
639cfcf9057Smrg				basic_machine=a29k-wrs
64040613eb2Smrg				basic_os=vxworks
641cfcf9057Smrg				;;
642cfcf9057Smrg			xbox)
643cfcf9057Smrg				basic_machine=i686-pc
64440613eb2Smrg				basic_os=mingw32
645cfcf9057Smrg				;;
646cfcf9057Smrg			ymp)
647cfcf9057Smrg				basic_machine=ymp-cray
64840613eb2Smrg				basic_os=unicos
649cfcf9057Smrg				;;
650cfcf9057Smrg			*)
651cfcf9057Smrg				basic_machine=$1
65240613eb2Smrg				basic_os=
653cfcf9057Smrg				;;
654cfcf9057Smrg		esac
6556f03b1f6Smrg		;;
6566f03b1f6Smrgesac
6576f03b1f6Smrg
658cfcf9057Smrg# Decode 1-component or ad-hoc basic machines
6596f03b1f6Smrgcase $basic_machine in
660cfcf9057Smrg	# Here we handle the default manufacturer of certain CPU types.  It is in
661cfcf9057Smrg	# some cases the only manufacturer, in others, it is the most popular.
662cfcf9057Smrg	w89k)
663cfcf9057Smrg		cpu=hppa1.1
664cfcf9057Smrg		vendor=winbond
6656f03b1f6Smrg		;;
666cfcf9057Smrg	op50n)
667cfcf9057Smrg		cpu=hppa1.1
668cfcf9057Smrg		vendor=oki
6696f03b1f6Smrg		;;
670cfcf9057Smrg	op60c)
671cfcf9057Smrg		cpu=hppa1.1
672cfcf9057Smrg		vendor=oki
6736f03b1f6Smrg		;;
674cfcf9057Smrg	ibm*)
675cfcf9057Smrg		cpu=i370
676cfcf9057Smrg		vendor=ibm
67717caa701Smrg		;;
678cfcf9057Smrg	orion105)
679cfcf9057Smrg		cpu=clipper
680cfcf9057Smrg		vendor=highlevel
68117caa701Smrg		;;
682cfcf9057Smrg	mac | mpw | mac-mpw)
683cfcf9057Smrg		cpu=m68k
684cfcf9057Smrg		vendor=apple
68517caa701Smrg		;;
686cfcf9057Smrg	pmac | pmac-mpw)
687cfcf9057Smrg		cpu=powerpc
688cfcf9057Smrg		vendor=apple
68917caa701Smrg		;;
69017caa701Smrg
6916f03b1f6Smrg	# Recognize the various machine names and aliases which stand
6926f03b1f6Smrg	# for a CPU type and a company and sometimes even an OS.
6936f03b1f6Smrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
694cfcf9057Smrg		cpu=m68000
695cfcf9057Smrg		vendor=att
6966f03b1f6Smrg		;;
6976f03b1f6Smrg	3b*)
698cfcf9057Smrg		cpu=we32k
699cfcf9057Smrg		vendor=att
70098af18c5Smrg		;;
701356f6debSmrg	bluegene*)
702cfcf9057Smrg		cpu=powerpc
703cfcf9057Smrg		vendor=ibm
70440613eb2Smrg		basic_os=cnk
7056f03b1f6Smrg		;;
7066f03b1f6Smrg	decsystem10* | dec10*)
707cfcf9057Smrg		cpu=pdp10
708cfcf9057Smrg		vendor=dec
70940613eb2Smrg		basic_os=tops10
7106f03b1f6Smrg		;;
7116f03b1f6Smrg	decsystem20* | dec20*)
712cfcf9057Smrg		cpu=pdp10
713cfcf9057Smrg		vendor=dec
71440613eb2Smrg		basic_os=tops20
7156f03b1f6Smrg		;;
7166f03b1f6Smrg	delta | 3300 | motorola-3300 | motorola-delta \
7176f03b1f6Smrg	      | 3300-motorola | delta-motorola)
718cfcf9057Smrg		cpu=m68k
719cfcf9057Smrg		vendor=motorola
7206f03b1f6Smrg		;;
721c1e3c5d0Smrg	dpx2*)
722cfcf9057Smrg		cpu=m68k
723cfcf9057Smrg		vendor=bull
72440613eb2Smrg		basic_os=sysv3
7256f03b1f6Smrg		;;
7266f03b1f6Smrg	encore | umax | mmax)
727cfcf9057Smrg		cpu=ns32k
728cfcf9057Smrg		vendor=encore
7296f03b1f6Smrg		;;
730cfcf9057Smrg	elxsi)
731cfcf9057Smrg		cpu=elxsi
732cfcf9057Smrg		vendor=elxsi
73340613eb2Smrg		basic_os=${basic_os:-bsd}
7346f03b1f6Smrg		;;
7356f03b1f6Smrg	fx2800)
736cfcf9057Smrg		cpu=i860
737cfcf9057Smrg		vendor=alliant
7386f03b1f6Smrg		;;
7396f03b1f6Smrg	genix)
740cfcf9057Smrg		cpu=ns32k
741cfcf9057Smrg		vendor=ns
7426f03b1f6Smrg		;;
7436f03b1f6Smrg	h3050r* | hiux*)
744cfcf9057Smrg		cpu=hppa1.1
745cfcf9057Smrg		vendor=hitachi
74640613eb2Smrg		basic_os=hiuxwe2
7476f03b1f6Smrg		;;
7486f03b1f6Smrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
749cfcf9057Smrg		cpu=hppa1.0
750cfcf9057Smrg		vendor=hp
7516f03b1f6Smrg		;;
7526f03b1f6Smrg	hp9k2[0-9][0-9] | hp9k31[0-9])
753cfcf9057Smrg		cpu=m68000
754cfcf9057Smrg		vendor=hp
7556f03b1f6Smrg		;;
7566f03b1f6Smrg	hp9k3[2-9][0-9])
757cfcf9057Smrg		cpu=m68k
758cfcf9057Smrg		vendor=hp
7596f03b1f6Smrg		;;
7606f03b1f6Smrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
761cfcf9057Smrg		cpu=hppa1.0
762cfcf9057Smrg		vendor=hp
7636f03b1f6Smrg		;;
7646f03b1f6Smrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
765cfcf9057Smrg		cpu=hppa1.1
766cfcf9057Smrg		vendor=hp
7676f03b1f6Smrg		;;
7686f03b1f6Smrg	hp9k78[0-9] | hp78[0-9])
7696f03b1f6Smrg		# FIXME: really hppa2.0-hp
770cfcf9057Smrg		cpu=hppa1.1
771cfcf9057Smrg		vendor=hp
7726f03b1f6Smrg		;;
7736f03b1f6Smrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
7746f03b1f6Smrg		# FIXME: really hppa2.0-hp
775cfcf9057Smrg		cpu=hppa1.1
776cfcf9057Smrg		vendor=hp
7776f03b1f6Smrg		;;
7786f03b1f6Smrg	hp9k8[0-9][13679] | hp8[0-9][13679])
779cfcf9057Smrg		cpu=hppa1.1
780cfcf9057Smrg		vendor=hp
7816f03b1f6Smrg		;;
7826f03b1f6Smrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
783cfcf9057Smrg		cpu=hppa1.0
784cfcf9057Smrg		vendor=hp
7856f03b1f6Smrg		;;
7866f03b1f6Smrg	i*86v32)
7870f57e2e1Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
788cfcf9057Smrg		vendor=pc
78940613eb2Smrg		basic_os=sysv32
7906f03b1f6Smrg		;;
7916f03b1f6Smrg	i*86v4*)
7920f57e2e1Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
793cfcf9057Smrg		vendor=pc
79440613eb2Smrg		basic_os=sysv4
7956f03b1f6Smrg		;;
7966f03b1f6Smrg	i*86v)
7970f57e2e1Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
798cfcf9057Smrg		vendor=pc
79940613eb2Smrg		basic_os=sysv
8006f03b1f6Smrg		;;
8016f03b1f6Smrg	i*86sol2)
8020f57e2e1Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
803cfcf9057Smrg		vendor=pc
80440613eb2Smrg		basic_os=solaris2
8056f03b1f6Smrg		;;
806cfcf9057Smrg	j90 | j90-cray)
807cfcf9057Smrg		cpu=j90
808cfcf9057Smrg		vendor=cray
80940613eb2Smrg		basic_os=${basic_os:-unicos}
8106f03b1f6Smrg		;;
8116f03b1f6Smrg	iris | iris4d)
812cfcf9057Smrg		cpu=mips
813cfcf9057Smrg		vendor=sgi
81440613eb2Smrg		case $basic_os in
815cfcf9057Smrg		    irix*)
8166f03b1f6Smrg			;;
8176f03b1f6Smrg		    *)
81840613eb2Smrg			basic_os=irix4
8196f03b1f6Smrg			;;
8206f03b1f6Smrg		esac
8216f03b1f6Smrg		;;
8226f03b1f6Smrg	miniframe)
823cfcf9057Smrg		cpu=m68000
824cfcf9057Smrg		vendor=convergent
82517caa701Smrg		;;
826cfcf9057Smrg	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
827cfcf9057Smrg		cpu=m68k
828cfcf9057Smrg		vendor=atari
82940613eb2Smrg		basic_os=mint
83040613eb2Smrg		;;
8316f03b1f6Smrg	news-3600 | risc-news)
832cfcf9057Smrg		cpu=mips
833cfcf9057Smrg		vendor=sony
83440613eb2Smrg		basic_os=newsos
8356f03b1f6Smrg		;;
836c1e3c5d0Smrg	next | m*-next)
837cfcf9057Smrg		cpu=m68k
838cfcf9057Smrg		vendor=next
83940613eb2Smrg		case $basic_os in
84040613eb2Smrg		    openstep*)
84140613eb2Smrg		        ;;
84240613eb2Smrg		    nextstep*)
8436f03b1f6Smrg			;;
844cfcf9057Smrg		    ns2*)
84540613eb2Smrg		      basic_os=nextstep2
8466f03b1f6Smrg			;;
8476f03b1f6Smrg		    *)
84840613eb2Smrg		      basic_os=nextstep3
8496f03b1f6Smrg			;;
8506f03b1f6Smrg		esac
8516f03b1f6Smrg		;;
8526f03b1f6Smrg	np1)
853cfcf9057Smrg		cpu=np1
854cfcf9057Smrg		vendor=gould
855c1e3c5d0Smrg		;;
8566f03b1f6Smrg	op50n-* | op60c-*)
857cfcf9057Smrg		cpu=hppa1.1
858cfcf9057Smrg		vendor=oki
85940613eb2Smrg		basic_os=proelf
8606f03b1f6Smrg		;;
8616f03b1f6Smrg	pa-hitachi)
862cfcf9057Smrg		cpu=hppa1.1
863cfcf9057Smrg		vendor=hitachi
86440613eb2Smrg		basic_os=hiuxwe2
86598af18c5Smrg		;;
8666f03b1f6Smrg	pbd)
867cfcf9057Smrg		cpu=sparc
868cfcf9057Smrg		vendor=tti
8696f03b1f6Smrg		;;
8706f03b1f6Smrg	pbb)
871cfcf9057Smrg		cpu=m68k
872cfcf9057Smrg		vendor=tti
8736f03b1f6Smrg		;;
874cfcf9057Smrg	pc532)
875cfcf9057Smrg		cpu=ns32k
876cfcf9057Smrg		vendor=pc532
8776f03b1f6Smrg		;;
8786f03b1f6Smrg	pn)
879cfcf9057Smrg		cpu=pn
880cfcf9057Smrg		vendor=gould
8816f03b1f6Smrg		;;
882cfcf9057Smrg	power)
883cfcf9057Smrg		cpu=power
884cfcf9057Smrg		vendor=ibm
8856f03b1f6Smrg		;;
886cfcf9057Smrg	ps2)
887cfcf9057Smrg		cpu=i386
888cfcf9057Smrg		vendor=ibm
8896f03b1f6Smrg		;;
890cfcf9057Smrg	rm[46]00)
891cfcf9057Smrg		cpu=mips
892cfcf9057Smrg		vendor=siemens
8936f03b1f6Smrg		;;
894cfcf9057Smrg	rtpc | rtpc-*)
895cfcf9057Smrg		cpu=romp
896cfcf9057Smrg		vendor=ibm
8976f03b1f6Smrg		;;
898cfcf9057Smrg	sde)
899cfcf9057Smrg		cpu=mipsisa32
900cfcf9057Smrg		vendor=sde
90140613eb2Smrg		basic_os=${basic_os:-elf}
9026f03b1f6Smrg		;;
903cfcf9057Smrg	simso-wrs)
904cfcf9057Smrg		cpu=sparclite
905cfcf9057Smrg		vendor=wrs
90640613eb2Smrg		basic_os=vxworks
9076f03b1f6Smrg		;;
908cfcf9057Smrg	tower | tower-32)
909cfcf9057Smrg		cpu=m68k
910cfcf9057Smrg		vendor=ncr
9116f03b1f6Smrg		;;
912cfcf9057Smrg	vpp*|vx|vx-*)
913cfcf9057Smrg		cpu=f301
914cfcf9057Smrg		vendor=fujitsu
91517caa701Smrg		;;
916cfcf9057Smrg	w65)
917cfcf9057Smrg		cpu=w65
918cfcf9057Smrg		vendor=wdc
9196f03b1f6Smrg		;;
920cfcf9057Smrg	w89k-*)
921cfcf9057Smrg		cpu=hppa1.1
922cfcf9057Smrg		vendor=winbond
92340613eb2Smrg		basic_os=proelf
9246f03b1f6Smrg		;;
925cfcf9057Smrg	none)
926cfcf9057Smrg		cpu=none
927cfcf9057Smrg		vendor=none
9286f03b1f6Smrg		;;
929cfcf9057Smrg	leon|leon[3-9])
930cfcf9057Smrg		cpu=sparc
931cfcf9057Smrg		vendor=$basic_machine
9326f03b1f6Smrg		;;
933cfcf9057Smrg	leon-*|leon[3-9]-*)
934cfcf9057Smrg		cpu=sparc
9350f57e2e1Smrg		vendor=`echo "$basic_machine" | sed 's/-.*//'`
9366f03b1f6Smrg		;;
937cfcf9057Smrg
938cfcf9057Smrg	*-*)
93940613eb2Smrg		# shellcheck disable=SC2162
9400f57e2e1Smrg		saved_IFS=$IFS
94140613eb2Smrg		IFS="-" read cpu vendor <<EOF
942cfcf9057Smrg$basic_machine
943cfcf9057SmrgEOF
9440f57e2e1Smrg		IFS=$saved_IFS
9456f03b1f6Smrg		;;
946cfcf9057Smrg	# We use `pc' rather than `unknown'
947cfcf9057Smrg	# because (1) that's what they normally are, and
948cfcf9057Smrg	# (2) the word "unknown" tends to confuse beginning users.
949cfcf9057Smrg	i*86 | x86_64)
950cfcf9057Smrg		cpu=$basic_machine
951cfcf9057Smrg		vendor=pc
9526f03b1f6Smrg		;;
953cfcf9057Smrg	# These rules are duplicated from below for sake of the special case above;
954cfcf9057Smrg	# i.e. things that normalized to x86 arches should also default to "pc"
955cfcf9057Smrg	pc98)
956cfcf9057Smrg		cpu=i386
957cfcf9057Smrg		vendor=pc
9586f03b1f6Smrg		;;
959cfcf9057Smrg	x64 | amd64)
960cfcf9057Smrg		cpu=x86_64
961cfcf9057Smrg		vendor=pc
9626f03b1f6Smrg		;;
963cfcf9057Smrg	# Recognize the basic CPU types without company name.
964cfcf9057Smrg	*)
965cfcf9057Smrg		cpu=$basic_machine
966cfcf9057Smrg		vendor=unknown
96798af18c5Smrg		;;
968cfcf9057Smrgesac
969cfcf9057Smrg
970cfcf9057Smrgunset -v basic_machine
971cfcf9057Smrg
972cfcf9057Smrg# Decode basic machines in the full and proper CPU-Company form.
973cfcf9057Smrgcase $cpu-$vendor in
97440613eb2Smrg	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
975cfcf9057Smrg	# some cases the only manufacturer, in others, it is the most popular.
976cfcf9057Smrg	craynv-unknown)
977cfcf9057Smrg		vendor=cray
97840613eb2Smrg		basic_os=${basic_os:-unicosmp}
9796f03b1f6Smrg		;;
980cfcf9057Smrg	c90-unknown | c90-cray)
981cfcf9057Smrg		vendor=cray
98240613eb2Smrg		basic_os=${Basic_os:-unicos}
9836f03b1f6Smrg		;;
984cfcf9057Smrg	fx80-unknown)
985cfcf9057Smrg		vendor=alliant
98698af18c5Smrg		;;
987cfcf9057Smrg	romp-unknown)
988cfcf9057Smrg		vendor=ibm
9896f03b1f6Smrg		;;
990cfcf9057Smrg	mmix-unknown)
991cfcf9057Smrg		vendor=knuth
9926f03b1f6Smrg		;;
993cfcf9057Smrg	microblaze-unknown | microblazeel-unknown)
994cfcf9057Smrg		vendor=xilinx
9956f03b1f6Smrg		;;
996cfcf9057Smrg	rs6000-unknown)
997cfcf9057Smrg		vendor=ibm
9986f03b1f6Smrg		;;
999cfcf9057Smrg	vax-unknown)
1000cfcf9057Smrg		vendor=dec
10016f03b1f6Smrg		;;
1002cfcf9057Smrg	pdp11-unknown)
1003cfcf9057Smrg		vendor=dec
100417caa701Smrg		;;
1005cfcf9057Smrg	we32k-unknown)
1006cfcf9057Smrg		vendor=att
10076f03b1f6Smrg		;;
1008cfcf9057Smrg	cydra-unknown)
1009cfcf9057Smrg		vendor=cydrome
10106f03b1f6Smrg		;;
1011cfcf9057Smrg	i370-ibm*)
1012cfcf9057Smrg		vendor=ibm
10136f03b1f6Smrg		;;
1014cfcf9057Smrg	orion-unknown)
1015cfcf9057Smrg		vendor=highlevel
10166f03b1f6Smrg		;;
1017cfcf9057Smrg	xps-unknown | xps100-unknown)
1018cfcf9057Smrg		cpu=xps100
1019cfcf9057Smrg		vendor=honeywell
10206f03b1f6Smrg		;;
1021cfcf9057Smrg
1022cfcf9057Smrg	# Here we normalize CPU types with a missing or matching vendor
10230f57e2e1Smrg	armh-unknown | armh-alt)
10240f57e2e1Smrg		cpu=armv7l
10250f57e2e1Smrg		vendor=alt
10260f57e2e1Smrg		basic_os=${basic_os:-linux-gnueabihf}
10270f57e2e1Smrg		;;
1028cfcf9057Smrg	dpx20-unknown | dpx20-bull)
1029cfcf9057Smrg		cpu=rs6000
1030cfcf9057Smrg		vendor=bull
103140613eb2Smrg		basic_os=${basic_os:-bosx}
10326f03b1f6Smrg		;;
1033cfcf9057Smrg
1034cfcf9057Smrg	# Here we normalize CPU types irrespective of the vendor
1035cfcf9057Smrg	amd64-*)
1036cfcf9057Smrg		cpu=x86_64
10376f03b1f6Smrg		;;
1038cfcf9057Smrg	blackfin-*)
1039cfcf9057Smrg		cpu=bfin
104040613eb2Smrg		basic_os=linux
10416f03b1f6Smrg		;;
1042cfcf9057Smrg	c54x-*)
1043cfcf9057Smrg		cpu=tic54x
10446f03b1f6Smrg		;;
1045cfcf9057Smrg	c55x-*)
1046cfcf9057Smrg		cpu=tic55x
10476f03b1f6Smrg		;;
1048cfcf9057Smrg	c6x-*)
1049cfcf9057Smrg		cpu=tic6x
10506f03b1f6Smrg		;;
1051cfcf9057Smrg	e500v[12]-*)
1052cfcf9057Smrg		cpu=powerpc
105340613eb2Smrg		basic_os=${basic_os}"spe"
10546f03b1f6Smrg		;;
1055cfcf9057Smrg	mips3*-*)
1056cfcf9057Smrg		cpu=mips64
10576f03b1f6Smrg		;;
1058cfcf9057Smrg	ms1-*)
1059cfcf9057Smrg		cpu=mt
10606f03b1f6Smrg		;;
1061cfcf9057Smrg	m68knommu-*)
1062cfcf9057Smrg		cpu=m68k
106340613eb2Smrg		basic_os=linux
10646f03b1f6Smrg		;;
1065cfcf9057Smrg	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1066cfcf9057Smrg		cpu=s12z
106798af18c5Smrg		;;
1068cfcf9057Smrg	openrisc-*)
1069cfcf9057Smrg		cpu=or32
10706f03b1f6Smrg		;;
1071cfcf9057Smrg	parisc-*)
1072cfcf9057Smrg		cpu=hppa
107340613eb2Smrg		basic_os=linux
10746f03b1f6Smrg		;;
1075cfcf9057Smrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1076cfcf9057Smrg		cpu=i586
10776f03b1f6Smrg		;;
10780f57e2e1Smrg	pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
1079cfcf9057Smrg		cpu=i686
10806f03b1f6Smrg		;;
1081cfcf9057Smrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1082cfcf9057Smrg		cpu=i686
10836f03b1f6Smrg		;;
1084cfcf9057Smrg	pentium4-*)
1085cfcf9057Smrg		cpu=i786
10866f03b1f6Smrg		;;
1087cfcf9057Smrg	pc98-*)
1088cfcf9057Smrg		cpu=i386
10896f03b1f6Smrg		;;
1090cfcf9057Smrg	ppc-* | ppcbe-*)
1091cfcf9057Smrg		cpu=powerpc
10926f03b1f6Smrg		;;
1093cfcf9057Smrg	ppcle-* | powerpclittle-*)
1094cfcf9057Smrg		cpu=powerpcle
10956f03b1f6Smrg		;;
1096cfcf9057Smrg	ppc64-*)
1097cfcf9057Smrg		cpu=powerpc64
10986f03b1f6Smrg		;;
1099cfcf9057Smrg	ppc64le-* | powerpc64little-*)
1100cfcf9057Smrg		cpu=powerpc64le
11016f03b1f6Smrg		;;
1102cfcf9057Smrg	sb1-*)
1103cfcf9057Smrg		cpu=mipsisa64sb1
11046f03b1f6Smrg		;;
1105cfcf9057Smrg	sb1el-*)
1106cfcf9057Smrg		cpu=mipsisa64sb1el
11076f03b1f6Smrg		;;
1108cfcf9057Smrg	sh5e[lb]-*)
11090f57e2e1Smrg		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
11106f03b1f6Smrg		;;
1111cfcf9057Smrg	spur-*)
1112cfcf9057Smrg		cpu=spur
11136f03b1f6Smrg		;;
1114cfcf9057Smrg	strongarm-* | thumb-*)
1115cfcf9057Smrg		cpu=arm
11166f03b1f6Smrg		;;
1117cfcf9057Smrg	tx39-*)
1118cfcf9057Smrg		cpu=mipstx39
1119c1e3c5d0Smrg		;;
1120cfcf9057Smrg	tx39el-*)
1121cfcf9057Smrg		cpu=mipstx39el
11226f03b1f6Smrg		;;
1123cfcf9057Smrg	x64-*)
1124cfcf9057Smrg		cpu=x86_64
11256f03b1f6Smrg		;;
112617caa701Smrg	xscale-* | xscalee[bl]-*)
11270f57e2e1Smrg		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
112840613eb2Smrg		;;
11290f57e2e1Smrg	arm64-* | aarch64le-*)
113040613eb2Smrg		cpu=aarch64
11316f03b1f6Smrg		;;
11326f03b1f6Smrg
113340613eb2Smrg	# Recognize the canonical CPU Types that limit and/or modify the
1134cfcf9057Smrg	# company names they are paired with.
1135cfcf9057Smrg	cr16-*)
113640613eb2Smrg		basic_os=${basic_os:-elf}
11376f03b1f6Smrg		;;
1138cfcf9057Smrg	crisv32-* | etraxfs*-*)
1139cfcf9057Smrg		cpu=crisv32
1140cfcf9057Smrg		vendor=axis
11416f03b1f6Smrg		;;
1142cfcf9057Smrg	cris-* | etrax*-*)
1143cfcf9057Smrg		cpu=cris
1144cfcf9057Smrg		vendor=axis
11456f03b1f6Smrg		;;
1146cfcf9057Smrg	crx-*)
114740613eb2Smrg		basic_os=${basic_os:-elf}
11486f03b1f6Smrg		;;
1149cfcf9057Smrg	neo-tandem)
1150cfcf9057Smrg		cpu=neo
1151cfcf9057Smrg		vendor=tandem
11526f03b1f6Smrg		;;
1153cfcf9057Smrg	nse-tandem)
1154cfcf9057Smrg		cpu=nse
1155cfcf9057Smrg		vendor=tandem
11566f03b1f6Smrg		;;
1157cfcf9057Smrg	nsr-tandem)
1158cfcf9057Smrg		cpu=nsr
1159cfcf9057Smrg		vendor=tandem
11606f03b1f6Smrg		;;
1161cfcf9057Smrg	nsv-tandem)
1162cfcf9057Smrg		cpu=nsv
1163cfcf9057Smrg		vendor=tandem
11646f03b1f6Smrg		;;
1165cfcf9057Smrg	nsx-tandem)
1166cfcf9057Smrg		cpu=nsx
1167cfcf9057Smrg		vendor=tandem
11686f03b1f6Smrg		;;
116940613eb2Smrg	mipsallegrexel-sony)
117040613eb2Smrg		cpu=mipsallegrexel
117140613eb2Smrg		vendor=sony
11726f03b1f6Smrg		;;
1173cfcf9057Smrg	tile*-*)
117440613eb2Smrg		basic_os=${basic_os:-linux-gnu}
11756f03b1f6Smrg		;;
1176cfcf9057Smrg
11776f03b1f6Smrg	*)
117840613eb2Smrg		# Recognize the canonical CPU types that are allowed with any
1179cfcf9057Smrg		# company name.
1180cfcf9057Smrg		case $cpu in
1181cfcf9057Smrg			1750a | 580 \
1182cfcf9057Smrg			| a29k \
1183cfcf9057Smrg			| aarch64 | aarch64_be \
1184cfcf9057Smrg			| abacus \
1185cfcf9057Smrg			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
1186cfcf9057Smrg			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
1187cfcf9057Smrg			| alphapca5[67] | alpha64pca5[67] \
1188cfcf9057Smrg			| am33_2.0 \
118940613eb2Smrg			| amdgcn \
11900f57e2e1Smrg			| arc | arceb | arc32 | arc64 \
119140613eb2Smrg			| arm | arm[lb]e | arme[lb] | armv* \
1192cfcf9057Smrg			| avr | avr32 \
1193cfcf9057Smrg			| asmjs \
1194cfcf9057Smrg			| ba \
1195cfcf9057Smrg			| be32 | be64 \
119640613eb2Smrg			| bfin | bpf | bs2000 \
1197cfcf9057Smrg			| c[123]* | c30 | [cjt]90 | c4x \
1198cfcf9057Smrg			| c8051 | clipper | craynv | csky | cydra \
11990f57e2e1Smrg			| d10v | d30v | dlx | dsp16xx \
1200cfcf9057Smrg			| e2k | elxsi | epiphany \
1201cfcf9057Smrg			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
1202cfcf9057Smrg			| h8300 | h8500 \
1203cfcf9057Smrg			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
1204cfcf9057Smrg			| hexagon \
1205cfcf9057Smrg			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
1206cfcf9057Smrg			| ip2k | iq2000 \
1207cfcf9057Smrg			| k1om \
1208cfcf9057Smrg			| le32 | le64 \
1209cfcf9057Smrg			| lm32 \
12100f57e2e1Smrg			| loongarch32 | loongarch64 \
1211cfcf9057Smrg			| m32c | m32r | m32rle \
121240613eb2Smrg			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
121340613eb2Smrg			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
1214cfcf9057Smrg			| m88110 | m88k | maxq | mb | mcore | mep | metag \
1215cfcf9057Smrg			| microblaze | microblazeel \
1216cfcf9057Smrg			| mips | mipsbe | mipseb | mipsel | mipsle \
1217cfcf9057Smrg			| mips16 \
121840613eb2Smrg			| mips64 | mips64eb | mips64el \
1219cfcf9057Smrg			| mips64octeon | mips64octeonel \
1220cfcf9057Smrg			| mips64orion | mips64orionel \
1221cfcf9057Smrg			| mips64r5900 | mips64r5900el \
1222cfcf9057Smrg			| mips64vr | mips64vrel \
1223cfcf9057Smrg			| mips64vr4100 | mips64vr4100el \
1224cfcf9057Smrg			| mips64vr4300 | mips64vr4300el \
1225cfcf9057Smrg			| mips64vr5000 | mips64vr5000el \
1226cfcf9057Smrg			| mips64vr5900 | mips64vr5900el \
1227cfcf9057Smrg			| mipsisa32 | mipsisa32el \
1228cfcf9057Smrg			| mipsisa32r2 | mipsisa32r2el \
12290f57e2e1Smrg			| mipsisa32r3 | mipsisa32r3el \
12300f57e2e1Smrg			| mipsisa32r5 | mipsisa32r5el \
1231cfcf9057Smrg			| mipsisa32r6 | mipsisa32r6el \
1232cfcf9057Smrg			| mipsisa64 | mipsisa64el \
1233cfcf9057Smrg			| mipsisa64r2 | mipsisa64r2el \
12340f57e2e1Smrg			| mipsisa64r3 | mipsisa64r3el \
12350f57e2e1Smrg			| mipsisa64r5 | mipsisa64r5el \
1236cfcf9057Smrg			| mipsisa64r6 | mipsisa64r6el \
1237cfcf9057Smrg			| mipsisa64sb1 | mipsisa64sb1el \
1238cfcf9057Smrg			| mipsisa64sr71k | mipsisa64sr71kel \
1239cfcf9057Smrg			| mipsr5900 | mipsr5900el \
1240cfcf9057Smrg			| mipstx39 | mipstx39el \
1241cfcf9057Smrg			| mmix \
1242cfcf9057Smrg			| mn10200 | mn10300 \
1243cfcf9057Smrg			| moxie \
1244cfcf9057Smrg			| mt \
1245cfcf9057Smrg			| msp430 \
1246cfcf9057Smrg			| nds32 | nds32le | nds32be \
1247cfcf9057Smrg			| nfp \
1248cfcf9057Smrg			| nios | nios2 | nios2eb | nios2el \
124940613eb2Smrg			| none | np1 | ns16k | ns32k | nvptx \
1250cfcf9057Smrg			| open8 \
1251cfcf9057Smrg			| or1k* \
1252cfcf9057Smrg			| or32 \
1253cfcf9057Smrg			| orion \
125440613eb2Smrg			| picochip \
1255cfcf9057Smrg			| pdp10 | pdp11 | pj | pjl | pn | power \
1256cfcf9057Smrg			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
1257cfcf9057Smrg			| pru \
1258cfcf9057Smrg			| pyramid \
125940613eb2Smrg			| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
1260cfcf9057Smrg			| rl78 | romp | rs6000 | rx \
126140613eb2Smrg			| s390 | s390x \
1262cfcf9057Smrg			| score \
126340613eb2Smrg			| sh | shl \
126440613eb2Smrg			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
1265cfcf9057Smrg			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
1266cfcf9057Smrg			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
1267cfcf9057Smrg			| sparclite \
1268cfcf9057Smrg			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
1269cfcf9057Smrg			| spu \
1270cfcf9057Smrg			| tahoe \
127140613eb2Smrg			| thumbv7* \
1272cfcf9057Smrg			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
1273cfcf9057Smrg			| tron \
1274cfcf9057Smrg			| ubicom32 \
127540613eb2Smrg			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
1276cfcf9057Smrg			| vax \
1277cfcf9057Smrg			| visium \
127840613eb2Smrg			| w65 \
127940613eb2Smrg			| wasm32 | wasm64 \
1280cfcf9057Smrg			| we32k \
1281cfcf9057Smrg			| x86 | x86_64 | xc16x | xgate | xps100 \
1282cfcf9057Smrg			| xstormy16 | xtensa* \
1283cfcf9057Smrg			| ymp \
1284cfcf9057Smrg			| z8k | z80)
1285cfcf9057Smrg				;;
1286cfcf9057Smrg
1287cfcf9057Smrg			*)
1288cfcf9057Smrg				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
1289cfcf9057Smrg				exit 1
1290cfcf9057Smrg				;;
1291cfcf9057Smrg		esac
12926f03b1f6Smrg		;;
12936f03b1f6Smrgesac
12946f03b1f6Smrg
12956f03b1f6Smrg# Here we canonicalize certain aliases for manufacturers.
1296cfcf9057Smrgcase $vendor in
1297cfcf9057Smrg	digital*)
1298cfcf9057Smrg		vendor=dec
12996f03b1f6Smrg		;;
1300cfcf9057Smrg	commodore*)
1301cfcf9057Smrg		vendor=cbm
13026f03b1f6Smrg		;;
13036f03b1f6Smrg	*)
13046f03b1f6Smrg		;;
13056f03b1f6Smrgesac
13066f03b1f6Smrg
13076f03b1f6Smrg# Decode manufacturer-specific aliases for certain operating systems.
13086f03b1f6Smrg
130940613eb2Smrgif test x$basic_os != x
13106f03b1f6Smrgthen
131140613eb2Smrg
13120f57e2e1Smrg# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
131340613eb2Smrg# set os.
131440613eb2Smrgcase $basic_os in
131540613eb2Smrg	gnu/linux*)
131640613eb2Smrg		kernel=linux
13170f57e2e1Smrg		os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
131840613eb2Smrg		;;
131940613eb2Smrg	os2-emx)
132040613eb2Smrg		kernel=os2
13210f57e2e1Smrg		os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
132240613eb2Smrg		;;
132340613eb2Smrg	nto-qnx*)
132440613eb2Smrg		kernel=nto
13250f57e2e1Smrg		os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
132640613eb2Smrg		;;
132740613eb2Smrg	*-*)
132840613eb2Smrg		# shellcheck disable=SC2162
13290f57e2e1Smrg		saved_IFS=$IFS
133040613eb2Smrg		IFS="-" read kernel os <<EOF
133140613eb2Smrg$basic_os
133240613eb2SmrgEOF
13330f57e2e1Smrg		IFS=$saved_IFS
133440613eb2Smrg		;;
133540613eb2Smrg	# Default OS when just kernel was specified
133640613eb2Smrg	nto*)
133740613eb2Smrg		kernel=nto
13380f57e2e1Smrg		os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
133940613eb2Smrg		;;
134040613eb2Smrg	linux*)
134140613eb2Smrg		kernel=linux
13420f57e2e1Smrg		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
13430f57e2e1Smrg		;;
13440f57e2e1Smrg	managarm*)
13450f57e2e1Smrg		kernel=managarm
13460f57e2e1Smrg		os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
134740613eb2Smrg		;;
134840613eb2Smrg	*)
134940613eb2Smrg		kernel=
135040613eb2Smrg		os=$basic_os
135140613eb2Smrg		;;
135240613eb2Smrgesac
135340613eb2Smrg
135440613eb2Smrg# Now, normalize the OS (knowing we just have one component, it's not a kernel,
135540613eb2Smrg# etc.)
13566f03b1f6Smrgcase $os in
1357c1e3c5d0Smrg	# First match some system type aliases that might get confused
1358c1e3c5d0Smrg	# with valid system types.
1359cfcf9057Smrg	# solaris* is a basic system type, with this one exception.
1360cfcf9057Smrg	auroraux)
1361cfcf9057Smrg		os=auroraux
1362356f6debSmrg		;;
1363cfcf9057Smrg	bluegene*)
1364cfcf9057Smrg		os=cnk
1365cfcf9057Smrg		;;
1366cfcf9057Smrg	solaris1 | solaris1.*)
13670f57e2e1Smrg		os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
13686f03b1f6Smrg		;;
1369cfcf9057Smrg	solaris)
1370cfcf9057Smrg		os=solaris2
13716f03b1f6Smrg		;;
1372cfcf9057Smrg	unixware*)
1373cfcf9057Smrg		os=sysv4.2uw
13746f03b1f6Smrg		;;
1375c1e3c5d0Smrg	# es1800 is here to avoid being matched by es* (a different OS)
1376cfcf9057Smrg	es1800*)
1377cfcf9057Smrg		os=ose
1378cfcf9057Smrg		;;
1379cfcf9057Smrg	# Some version numbers need modification
1380cfcf9057Smrg	chorusos*)
1381cfcf9057Smrg		os=chorusos
1382cfcf9057Smrg		;;
1383cfcf9057Smrg	isc)
1384cfcf9057Smrg		os=isc2.2
1385cfcf9057Smrg		;;
1386cfcf9057Smrg	sco6)
1387cfcf9057Smrg		os=sco5v6
1388cfcf9057Smrg		;;
1389cfcf9057Smrg	sco5)
1390cfcf9057Smrg		os=sco3.2v5
1391cfcf9057Smrg		;;
1392cfcf9057Smrg	sco4)
1393cfcf9057Smrg		os=sco3.2v4
1394cfcf9057Smrg		;;
1395cfcf9057Smrg	sco3.2.[4-9]*)
13960f57e2e1Smrg		os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
1397cfcf9057Smrg		;;
139840613eb2Smrg	sco*v* | scout)
1399cfcf9057Smrg		# Don't match below
1400cfcf9057Smrg		;;
1401cfcf9057Smrg	sco*)
1402cfcf9057Smrg		os=sco3.2v2
1403cfcf9057Smrg		;;
1404cfcf9057Smrg	psos*)
1405cfcf9057Smrg		os=psos
1406c1e3c5d0Smrg		;;
1407cfcf9057Smrg	qnx*)
140840613eb2Smrg		os=qnx
14096f03b1f6Smrg		;;
1410cfcf9057Smrg	hiux*)
1411cfcf9057Smrg		os=hiuxwe2
1412cfcf9057Smrg		;;
1413cfcf9057Smrg	lynx*178)
1414cfcf9057Smrg		os=lynxos178
14156f03b1f6Smrg		;;
1416cfcf9057Smrg	lynx*5)
1417cfcf9057Smrg		os=lynxos5
1418cfcf9057Smrg		;;
141940613eb2Smrg	lynxos*)
142040613eb2Smrg		# don't get caught up in next wildcard
142140613eb2Smrg		;;
1422cfcf9057Smrg	lynx*)
1423cfcf9057Smrg		os=lynxos
1424cfcf9057Smrg		;;
142540613eb2Smrg	mac[0-9]*)
14260f57e2e1Smrg		os=`echo "$os" | sed -e 's|mac|macos|'`
14276f03b1f6Smrg		;;
1428cfcf9057Smrg	opened*)
1429cfcf9057Smrg		os=openedition
14306f03b1f6Smrg		;;
1431cfcf9057Smrg	os400*)
1432cfcf9057Smrg		os=os400
14336f03b1f6Smrg		;;
1434cfcf9057Smrg	sunos5*)
14350f57e2e1Smrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
14366f03b1f6Smrg		;;
1437cfcf9057Smrg	sunos6*)
14380f57e2e1Smrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
14396f03b1f6Smrg		;;
1440cfcf9057Smrg	wince*)
1441cfcf9057Smrg		os=wince
14426f03b1f6Smrg		;;
1443cfcf9057Smrg	utek*)
1444cfcf9057Smrg		os=bsd
14456f03b1f6Smrg		;;
1446cfcf9057Smrg	dynix*)
1447cfcf9057Smrg		os=bsd
14486f03b1f6Smrg		;;
1449cfcf9057Smrg	acis*)
1450cfcf9057Smrg		os=aos
14516f03b1f6Smrg		;;
1452cfcf9057Smrg	atheos*)
1453cfcf9057Smrg		os=atheos
14546f03b1f6Smrg		;;
1455cfcf9057Smrg	syllable*)
1456cfcf9057Smrg		os=syllable
14576f03b1f6Smrg		;;
1458cfcf9057Smrg	386bsd)
1459cfcf9057Smrg		os=bsd
14606f03b1f6Smrg		;;
1461cfcf9057Smrg	ctix* | uts*)
1462cfcf9057Smrg		os=sysv
14636f03b1f6Smrg		;;
1464cfcf9057Smrg	nova*)
1465cfcf9057Smrg		os=rtmk-nova
14666f03b1f6Smrg		;;
1467cfcf9057Smrg	ns2)
1468cfcf9057Smrg		os=nextstep2
14696f03b1f6Smrg		;;
14706f03b1f6Smrg	# Preserve the version number of sinix5.
1471cfcf9057Smrg	sinix5.*)
14720f57e2e1Smrg		os=`echo "$os" | sed -e 's|sinix|sysv|'`
14736f03b1f6Smrg		;;
1474cfcf9057Smrg	sinix*)
1475cfcf9057Smrg		os=sysv4
14766f03b1f6Smrg		;;
1477cfcf9057Smrg	tpf*)
1478cfcf9057Smrg		os=tpf
14796f03b1f6Smrg		;;
1480cfcf9057Smrg	triton*)
1481cfcf9057Smrg		os=sysv3
14826f03b1f6Smrg		;;
1483cfcf9057Smrg	oss*)
1484cfcf9057Smrg		os=sysv3
14856f03b1f6Smrg		;;
1486cfcf9057Smrg	svr4*)
1487cfcf9057Smrg		os=sysv4
14886f03b1f6Smrg		;;
1489cfcf9057Smrg	svr3)
1490cfcf9057Smrg		os=sysv3
14916f03b1f6Smrg		;;
1492cfcf9057Smrg	sysvr4)
1493cfcf9057Smrg		os=sysv4
14946f03b1f6Smrg		;;
1495cfcf9057Smrg	ose*)
1496cfcf9057Smrg		os=ose
14976f03b1f6Smrg		;;
1498cfcf9057Smrg	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1499cfcf9057Smrg		os=mint
15006f03b1f6Smrg		;;
1501cfcf9057Smrg	dicos*)
1502cfcf9057Smrg		os=dicos
1503356f6debSmrg		;;
1504cfcf9057Smrg	pikeos*)
1505c1e3c5d0Smrg		# Until real need of OS specific support for
1506c1e3c5d0Smrg		# particular features comes up, bare metal
1507c1e3c5d0Smrg		# configurations are quite functional.
1508cfcf9057Smrg		case $cpu in
1509c1e3c5d0Smrg		    arm*)
1510cfcf9057Smrg			os=eabi
1511c1e3c5d0Smrg			;;
1512c1e3c5d0Smrg		    *)
1513cfcf9057Smrg			os=elf
1514c1e3c5d0Smrg			;;
1515c1e3c5d0Smrg		esac
1516c1e3c5d0Smrg		;;
15176f03b1f6Smrg	*)
151840613eb2Smrg		# No normalization, but not necessarily accepted, that comes below.
15196f03b1f6Smrg		;;
15206f03b1f6Smrgesac
152140613eb2Smrg
15226f03b1f6Smrgelse
15236f03b1f6Smrg
15246f03b1f6Smrg# Here we handle the default operating systems that come with various machines.
15256f03b1f6Smrg# The value should be what the vendor currently ships out the door with their
15266f03b1f6Smrg# machine or put another way, the most popular os provided with the machine.
15276f03b1f6Smrg
15286f03b1f6Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
15296f03b1f6Smrg# "-sun"), then you have to tell the case statement up towards the top
15306f03b1f6Smrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
15316f03b1f6Smrg# will signal an error saying that MANUFACTURER isn't an operating
15326f03b1f6Smrg# system, and we'll never get to this point.
15336f03b1f6Smrg
153440613eb2Smrgkernel=
1535cfcf9057Smrgcase $cpu-$vendor in
153617caa701Smrg	score-*)
1537cfcf9057Smrg		os=elf
153898af18c5Smrg		;;
153917caa701Smrg	spu-*)
1540cfcf9057Smrg		os=elf
154198af18c5Smrg		;;
15426f03b1f6Smrg	*-acorn)
1543cfcf9057Smrg		os=riscix1.2
15446f03b1f6Smrg		;;
15456f03b1f6Smrg	arm*-rebel)
154640613eb2Smrg		kernel=linux
154740613eb2Smrg		os=gnu
15486f03b1f6Smrg		;;
15496f03b1f6Smrg	arm*-semi)
1550cfcf9057Smrg		os=aout
15516f03b1f6Smrg		;;
155217caa701Smrg	c4x-* | tic4x-*)
1553cfcf9057Smrg		os=coff
155417caa701Smrg		;;
1555dcbf891fSmrg	c8051-*)
1556cfcf9057Smrg		os=elf
1557cfcf9057Smrg		;;
1558cfcf9057Smrg	clipper-intergraph)
1559cfcf9057Smrg		os=clix
1560dcbf891fSmrg		;;
156117caa701Smrg	hexagon-*)
1562cfcf9057Smrg		os=elf
156398af18c5Smrg		;;
156442941e3bSmrg	tic54x-*)
1565cfcf9057Smrg		os=coff
156642941e3bSmrg		;;
156742941e3bSmrg	tic55x-*)
1568cfcf9057Smrg		os=coff
156942941e3bSmrg		;;
157042941e3bSmrg	tic6x-*)
1571cfcf9057Smrg		os=coff
157242941e3bSmrg		;;
15736f03b1f6Smrg	# This must come before the *-dec entry.
15746f03b1f6Smrg	pdp10-*)
1575cfcf9057Smrg		os=tops20
15766f03b1f6Smrg		;;
15776f03b1f6Smrg	pdp11-*)
1578cfcf9057Smrg		os=none
15796f03b1f6Smrg		;;
15806f03b1f6Smrg	*-dec | vax-*)
1581cfcf9057Smrg		os=ultrix4.2
15826f03b1f6Smrg		;;
15836f03b1f6Smrg	m68*-apollo)
1584cfcf9057Smrg		os=domain
15856f03b1f6Smrg		;;
15866f03b1f6Smrg	i386-sun)
1587cfcf9057Smrg		os=sunos4.0.2
15886f03b1f6Smrg		;;
15896f03b1f6Smrg	m68000-sun)
1590cfcf9057Smrg		os=sunos3
15916f03b1f6Smrg		;;
15926f03b1f6Smrg	m68*-cisco)
1593cfcf9057Smrg		os=aout
15946f03b1f6Smrg		;;
159517caa701Smrg	mep-*)
1596cfcf9057Smrg		os=elf
159798af18c5Smrg		;;
15986f03b1f6Smrg	mips*-cisco)
1599cfcf9057Smrg		os=elf
16006f03b1f6Smrg		;;
16016f03b1f6Smrg	mips*-*)
1602cfcf9057Smrg		os=elf
16036f03b1f6Smrg		;;
16046f03b1f6Smrg	or32-*)
1605cfcf9057Smrg		os=coff
16066f03b1f6Smrg		;;
16076f03b1f6Smrg	*-tti)	# must be before sparc entry or we get the wrong os.
1608cfcf9057Smrg		os=sysv3
16096f03b1f6Smrg		;;
16106f03b1f6Smrg	sparc-* | *-sun)
1611cfcf9057Smrg		os=sunos4.1.1
16126f03b1f6Smrg		;;
1613c1e3c5d0Smrg	pru-*)
1614cfcf9057Smrg		os=elf
1615c1e3c5d0Smrg		;;
16166f03b1f6Smrg	*-be)
1617cfcf9057Smrg		os=beos
16186f03b1f6Smrg		;;
16196f03b1f6Smrg	*-ibm)
1620cfcf9057Smrg		os=aix
16216f03b1f6Smrg		;;
162217caa701Smrg	*-knuth)
1623cfcf9057Smrg		os=mmixware
16246f03b1f6Smrg		;;
16256f03b1f6Smrg	*-wec)
1626cfcf9057Smrg		os=proelf
16276f03b1f6Smrg		;;
16286f03b1f6Smrg	*-winbond)
1629cfcf9057Smrg		os=proelf
16306f03b1f6Smrg		;;
16316f03b1f6Smrg	*-oki)
1632cfcf9057Smrg		os=proelf
16336f03b1f6Smrg		;;
16346f03b1f6Smrg	*-hp)
1635cfcf9057Smrg		os=hpux
16366f03b1f6Smrg		;;
16376f03b1f6Smrg	*-hitachi)
1638cfcf9057Smrg		os=hiux
16396f03b1f6Smrg		;;
16406f03b1f6Smrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1641cfcf9057Smrg		os=sysv
16426f03b1f6Smrg		;;
16436f03b1f6Smrg	*-cbm)
1644cfcf9057Smrg		os=amigaos
16456f03b1f6Smrg		;;
16466f03b1f6Smrg	*-dg)
1647cfcf9057Smrg		os=dgux
16486f03b1f6Smrg		;;
16496f03b1f6Smrg	*-dolphin)
1650cfcf9057Smrg		os=sysv3
16516f03b1f6Smrg		;;
16526f03b1f6Smrg	m68k-ccur)
1653cfcf9057Smrg		os=rtu
16546f03b1f6Smrg		;;
16556f03b1f6Smrg	m88k-omron*)
1656cfcf9057Smrg		os=luna
16576f03b1f6Smrg		;;
1658c1e3c5d0Smrg	*-next)
1659cfcf9057Smrg		os=nextstep
16606f03b1f6Smrg		;;
16616f03b1f6Smrg	*-sequent)
1662cfcf9057Smrg		os=ptx
16636f03b1f6Smrg		;;
16646f03b1f6Smrg	*-crds)
1665cfcf9057Smrg		os=unos
16666f03b1f6Smrg		;;
16676f03b1f6Smrg	*-ns)
1668cfcf9057Smrg		os=genix
16696f03b1f6Smrg		;;
16706f03b1f6Smrg	i370-*)
1671cfcf9057Smrg		os=mvs
16726f03b1f6Smrg		;;
16736f03b1f6Smrg	*-gould)
1674cfcf9057Smrg		os=sysv
16756f03b1f6Smrg		;;
16766f03b1f6Smrg	*-highlevel)
1677cfcf9057Smrg		os=bsd
16786f03b1f6Smrg		;;
16796f03b1f6Smrg	*-encore)
1680cfcf9057Smrg		os=bsd
16816f03b1f6Smrg		;;
16826f03b1f6Smrg	*-sgi)
1683cfcf9057Smrg		os=irix
16846f03b1f6Smrg		;;
16856f03b1f6Smrg	*-siemens)
1686cfcf9057Smrg		os=sysv4
16876f03b1f6Smrg		;;
16886f03b1f6Smrg	*-masscomp)
1689cfcf9057Smrg		os=rtu
16906f03b1f6Smrg		;;
16916f03b1f6Smrg	f30[01]-fujitsu | f700-fujitsu)
1692cfcf9057Smrg		os=uxpv
16936f03b1f6Smrg		;;
16946f03b1f6Smrg	*-rom68k)
1695cfcf9057Smrg		os=coff
16966f03b1f6Smrg		;;
16976f03b1f6Smrg	*-*bug)
1698cfcf9057Smrg		os=coff
16996f03b1f6Smrg		;;
17006f03b1f6Smrg	*-apple)
1701cfcf9057Smrg		os=macos
17026f03b1f6Smrg		;;
17036f03b1f6Smrg	*-atari*)
1704cfcf9057Smrg		os=mint
1705cfcf9057Smrg		;;
1706cfcf9057Smrg	*-wrs)
1707cfcf9057Smrg		os=vxworks
17086f03b1f6Smrg		;;
17096f03b1f6Smrg	*)
1710cfcf9057Smrg		os=none
17116f03b1f6Smrg		;;
17126f03b1f6Smrgesac
171340613eb2Smrg
17146f03b1f6Smrgfi
17156f03b1f6Smrg
171640613eb2Smrg# Now, validate our (potentially fixed-up) OS.
171740613eb2Smrgcase $os in
17180f57e2e1Smrg	# Sometimes we do "kernel-libc", so those need to count as OSes.
17190f57e2e1Smrg	musl* | newlib* | relibc* | uclibc*)
172040613eb2Smrg		;;
17210f57e2e1Smrg	# Likewise for "kernel-abi"
172240613eb2Smrg	eabi* | gnueabi*)
172340613eb2Smrg		;;
17240f57e2e1Smrg	# VxWorks passes extra cpu info in the 4th filed.
17250f57e2e1Smrg	simlinux | simwindows | spe)
17260f57e2e1Smrg		;;
172740613eb2Smrg	# Now accept the basic system types.
172840613eb2Smrg	# The portable systems comes first.
172940613eb2Smrg	# Each alternative MUST end in a * to match a version number.
173040613eb2Smrg	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
173140613eb2Smrg	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
173240613eb2Smrg	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
173340613eb2Smrg	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
173440613eb2Smrg	     | hiux* | abug | nacl* | netware* | windows* \
173540613eb2Smrg	     | os9* | macos* | osx* | ios* \
173640613eb2Smrg	     | mpw* | magic* | mmixware* | mon960* | lnews* \
173740613eb2Smrg	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
173840613eb2Smrg	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
173940613eb2Smrg	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
174040613eb2Smrg	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
174140613eb2Smrg	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
17420f57e2e1Smrg	     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
174340613eb2Smrg	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
174440613eb2Smrg	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
174540613eb2Smrg	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
174640613eb2Smrg	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
17470f57e2e1Smrg	     | chorusrdb* | cegcc* | glidix* | serenity* \
174840613eb2Smrg	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
174940613eb2Smrg	     | midipix* | mingw32* | mingw64* | mint* \
175040613eb2Smrg	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
175140613eb2Smrg	     | interix* | uwin* | mks* | rhapsody* | darwin* \
175240613eb2Smrg	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
17530f57e2e1Smrg	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
175440613eb2Smrg	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
175540613eb2Smrg	     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
175640613eb2Smrg	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
175740613eb2Smrg	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
175840613eb2Smrg	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
175940613eb2Smrg	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
17600f57e2e1Smrg	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
17610f57e2e1Smrg	     | fiwix* | mlibc* )
176240613eb2Smrg		;;
176340613eb2Smrg	# This one is extra strict with allowed versions
176440613eb2Smrg	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
176540613eb2Smrg		# Don't forget version if it is 3.2v4 or newer.
176640613eb2Smrg		;;
176740613eb2Smrg	none)
176840613eb2Smrg		;;
17690f57e2e1Smrg	kernel* )
17700f57e2e1Smrg		# Restricted further below
17710f57e2e1Smrg		;;
177240613eb2Smrg	*)
177340613eb2Smrg		echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
177440613eb2Smrg		exit 1
177540613eb2Smrg		;;
177640613eb2Smrgesac
177740613eb2Smrg
177840613eb2Smrg# As a final step for OS-related things, validate the OS-kernel combination
177940613eb2Smrg# (given a valid OS), if there is a kernel.
178040613eb2Smrgcase $kernel-$os in
17810f57e2e1Smrg	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
17820f57e2e1Smrg		   | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
178340613eb2Smrg		;;
178440613eb2Smrg	uclinux-uclibc* )
178540613eb2Smrg		;;
17860f57e2e1Smrg	managarm-mlibc* | managarm-kernel* )
17870f57e2e1Smrg		;;
17880f57e2e1Smrg	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
178940613eb2Smrg		# These are just libc implementations, not actual OSes, and thus
179040613eb2Smrg		# require a kernel.
179140613eb2Smrg		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
179240613eb2Smrg		exit 1
179340613eb2Smrg		;;
17940f57e2e1Smrg	-kernel* )
17950f57e2e1Smrg		echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
17960f57e2e1Smrg		exit 1
17970f57e2e1Smrg		;;
17980f57e2e1Smrg	*-kernel* )
17990f57e2e1Smrg		echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
18000f57e2e1Smrg		exit 1
18010f57e2e1Smrg		;;
180240613eb2Smrg	kfreebsd*-gnu* | kopensolaris*-gnu*)
180340613eb2Smrg		;;
18040f57e2e1Smrg	vxworks-simlinux | vxworks-simwindows | vxworks-spe)
18050f57e2e1Smrg		;;
180640613eb2Smrg	nto-qnx*)
180740613eb2Smrg		;;
180840613eb2Smrg	os2-emx)
180940613eb2Smrg		;;
181040613eb2Smrg	*-eabi* | *-gnueabi*)
181140613eb2Smrg		;;
181240613eb2Smrg	-*)
181340613eb2Smrg		# Blank kernel with real OS is always fine.
181440613eb2Smrg		;;
181540613eb2Smrg	*-*)
181640613eb2Smrg		echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
181740613eb2Smrg		exit 1
181840613eb2Smrg		;;
181940613eb2Smrgesac
182040613eb2Smrg
18216f03b1f6Smrg# Here we handle the case where we know the os, and the CPU type, but not the
18226f03b1f6Smrg# manufacturer.  We pick the logical manufacturer.
1823cfcf9057Smrgcase $vendor in
1824cfcf9057Smrg	unknown)
182540613eb2Smrg		case $cpu-$os in
182640613eb2Smrg			*-riscix*)
18276f03b1f6Smrg				vendor=acorn
18286f03b1f6Smrg				;;
182940613eb2Smrg			*-sunos*)
18306f03b1f6Smrg				vendor=sun
18316f03b1f6Smrg				;;
183240613eb2Smrg			*-cnk* | *-aix*)
18336f03b1f6Smrg				vendor=ibm
18346f03b1f6Smrg				;;
183540613eb2Smrg			*-beos*)
18366f03b1f6Smrg				vendor=be
18376f03b1f6Smrg				;;
183840613eb2Smrg			*-hpux*)
18396f03b1f6Smrg				vendor=hp
18406f03b1f6Smrg				;;
184140613eb2Smrg			*-mpeix*)
18426f03b1f6Smrg				vendor=hp
18436f03b1f6Smrg				;;
184440613eb2Smrg			*-hiux*)
18456f03b1f6Smrg				vendor=hitachi
18466f03b1f6Smrg				;;
184740613eb2Smrg			*-unos*)
18486f03b1f6Smrg				vendor=crds
18496f03b1f6Smrg				;;
185040613eb2Smrg			*-dgux*)
18516f03b1f6Smrg				vendor=dg
18526f03b1f6Smrg				;;
185340613eb2Smrg			*-luna*)
18546f03b1f6Smrg				vendor=omron
18556f03b1f6Smrg				;;
185640613eb2Smrg			*-genix*)
18576f03b1f6Smrg				vendor=ns
18586f03b1f6Smrg				;;
185940613eb2Smrg			*-clix*)
1860cfcf9057Smrg				vendor=intergraph
1861cfcf9057Smrg				;;
186240613eb2Smrg			*-mvs* | *-opened*)
186340613eb2Smrg				vendor=ibm
186440613eb2Smrg				;;
186540613eb2Smrg			*-os400*)
18666f03b1f6Smrg				vendor=ibm
18676f03b1f6Smrg				;;
186840613eb2Smrg			s390-* | s390x-*)
18696f03b1f6Smrg				vendor=ibm
18706f03b1f6Smrg				;;
187140613eb2Smrg			*-ptx*)
18726f03b1f6Smrg				vendor=sequent
18736f03b1f6Smrg				;;
187440613eb2Smrg			*-tpf*)
18756f03b1f6Smrg				vendor=ibm
18766f03b1f6Smrg				;;
187740613eb2Smrg			*-vxsim* | *-vxworks* | *-windiss*)
18786f03b1f6Smrg				vendor=wrs
18796f03b1f6Smrg				;;
188040613eb2Smrg			*-aux*)
18816f03b1f6Smrg				vendor=apple
18826f03b1f6Smrg				;;
188340613eb2Smrg			*-hms*)
18846f03b1f6Smrg				vendor=hitachi
18856f03b1f6Smrg				;;
188640613eb2Smrg			*-mpw* | *-macos*)
18876f03b1f6Smrg				vendor=apple
18886f03b1f6Smrg				;;
188940613eb2Smrg			*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
18906f03b1f6Smrg				vendor=atari
18916f03b1f6Smrg				;;
189240613eb2Smrg			*-vos*)
18936f03b1f6Smrg				vendor=stratus
18946f03b1f6Smrg				;;
18956f03b1f6Smrg		esac
18966f03b1f6Smrg		;;
18976f03b1f6Smrgesac
18986f03b1f6Smrg
189940613eb2Smrgecho "$cpu-$vendor-${kernel:+$kernel-}$os"
19006f03b1f6Smrgexit
19016f03b1f6Smrg
19026f03b1f6Smrg# Local variables:
1903cfcf9057Smrg# eval: (add-hook 'before-save-hook 'time-stamp)
19046f03b1f6Smrg# time-stamp-start: "timestamp='"
19056f03b1f6Smrg# time-stamp-format: "%:y-%02m-%02d"
19066f03b1f6Smrg# time-stamp-end: "'"
19076f03b1f6Smrg# End:
1908