config.sub revision fbfaf8f3
1ea148d1dSmrg#! /bin/sh
243f32c10Smrg# Configuration validation subroutine script.
3fbfaf8f3Smrg#   Copyright 1992-2023 Free Software Foundation, Inc.
443f32c10Smrg
5fbfaf8f3Smrg# shellcheck disable=SC2006,SC2268 # see below for rationale
6fbfaf8f3Smrg
7fbfaf8f3Smrgtimestamp='2023-01-21'
843f32c10Smrg
96ef05171Smrg# This file is free software; you can redistribute it and/or modify it
106ef05171Smrg# under the terms of the GNU General Public License as published by
11fbfaf8f3Smrg# the Free Software Foundation, either version 3 of the License, or
1243f32c10Smrg# (at your option) any later version.
1343f32c10Smrg#
146ef05171Smrg# This program is distributed in the hope that it will be useful, but
156ef05171Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
166ef05171Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
176ef05171Smrg# General Public License for more details.
1843f32c10Smrg#
1943f32c10Smrg# You should have received a copy of the GNU General Public License
20ea148d1dSmrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
2143f32c10Smrg#
2243f32c10Smrg# As a special exception to the GNU General Public License, if you
2343f32c10Smrg# distribute this file as part of a program that contains a
2443f32c10Smrg# configuration script generated by Autoconf, you may include it under
256ef05171Smrg# the same distribution terms that you use for the rest of that
266ef05171Smrg# program.  This Exception is an additional permission under section 7
276ef05171Smrg# of the GNU General Public License, version 3 ("GPLv3").
2843f32c10Smrg
2943f32c10Smrg
306ef05171Smrg# Please send patches to <config-patches@gnu.org>.
3143f32c10Smrg#
3243f32c10Smrg# Configuration subroutine to validate and canonicalize a configuration type.
3343f32c10Smrg# Supply the specified configuration type as an argument.
3443f32c10Smrg# If it is invalid, we print an error message on stderr and exit with code 1.
3543f32c10Smrg# Otherwise, we print the canonical config type on stdout and succeed.
3643f32c10Smrg
376ef05171Smrg# You can get the latest version of this script from:
38fbfaf8f3Smrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
396ef05171Smrg
4043f32c10Smrg# This file is supposed to be the same for all GNU packages
4143f32c10Smrg# and recognize all the CPU types, system types and aliases
4243f32c10Smrg# that are meaningful with *any* GNU software.
4343f32c10Smrg# Each package is responsible for reporting which valid configurations
4443f32c10Smrg# it does not support.  The user should be able to distinguish
4543f32c10Smrg# a failure to support a valid configuration from a meaningless
4643f32c10Smrg# configuration.
4743f32c10Smrg
4843f32c10Smrg# The goal of this file is to map all the various variations of a given
4943f32c10Smrg# machine specification into a single specification in the form:
5043f32c10Smrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
5143f32c10Smrg# or in some cases, the newer four-part form:
5243f32c10Smrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
5343f32c10Smrg# It is wrong to echo any other type of specification.
5443f32c10Smrg
55fbfaf8f3Smrg# The "shellcheck disable" line above the timestamp inhibits complaints
56fbfaf8f3Smrg# about features and limitations of the classic Bourne shell that were
57fbfaf8f3Smrg# superseded or lifted in POSIX.  However, this script identifies a wide
58fbfaf8f3Smrg# variety of pre-POSIX systems that do not have POSIX shells at all, and
59fbfaf8f3Smrg# even some reasonably current systems (Solaris 10 as case-in-point) still
60fbfaf8f3Smrg# have a pre-POSIX /bin/sh.
61fbfaf8f3Smrg
6243f32c10Smrgme=`echo "$0" | sed -e 's,.*/,,'`
6343f32c10Smrg
6443f32c10Smrgusage="\
656ef05171SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
6643f32c10Smrg
6743f32c10SmrgCanonicalize a configuration name.
6843f32c10Smrg
69ea148d1dSmrgOptions:
7043f32c10Smrg  -h, --help         print this help, then exit
7143f32c10Smrg  -t, --time-stamp   print date of last modification, then exit
7243f32c10Smrg  -v, --version      print version number, then exit
7343f32c10Smrg
7443f32c10SmrgReport bugs and patches to <config-patches@gnu.org>."
7543f32c10Smrg
7643f32c10Smrgversion="\
7743f32c10SmrgGNU config.sub ($timestamp)
7843f32c10Smrg
79fbfaf8f3SmrgCopyright 1992-2023 Free Software Foundation, Inc.
8043f32c10Smrg
8143f32c10SmrgThis is free software; see the source for copying conditions.  There is NO
8243f32c10Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
8343f32c10Smrg
8443f32c10Smrghelp="
8543f32c10SmrgTry \`$me --help' for more information."
8643f32c10Smrg
8743f32c10Smrg# Parse command line
8843f32c10Smrgwhile test $# -gt 0 ; do
8943f32c10Smrg  case $1 in
9043f32c10Smrg    --time-stamp | --time* | -t )
9143f32c10Smrg       echo "$timestamp" ; exit ;;
9243f32c10Smrg    --version | -v )
9343f32c10Smrg       echo "$version" ; exit ;;
9443f32c10Smrg    --help | --h* | -h )
9543f32c10Smrg       echo "$usage"; exit ;;
9643f32c10Smrg    -- )     # Stop option processing
9743f32c10Smrg       shift; break ;;
9843f32c10Smrg    - )	# Use stdin as input.
9943f32c10Smrg       break ;;
10043f32c10Smrg    -* )
101fbfaf8f3Smrg       echo "$me: invalid option $1$help" >&2
10243f32c10Smrg       exit 1 ;;
10343f32c10Smrg
10443f32c10Smrg    *local*)
10543f32c10Smrg       # First pass through any local machine types.
106ea148d1dSmrg       echo "$1"
10743f32c10Smrg       exit ;;
10843f32c10Smrg
10943f32c10Smrg    * )
11043f32c10Smrg       break ;;
11143f32c10Smrg  esac
11243f32c10Smrgdone
11343f32c10Smrg
11443f32c10Smrgcase $# in
11543f32c10Smrg 0) echo "$me: missing argument$help" >&2
11643f32c10Smrg    exit 1;;
11743f32c10Smrg 1) ;;
11843f32c10Smrg *) echo "$me: too many arguments$help" >&2
11943f32c10Smrg    exit 1;;
12043f32c10Smrgesac
12143f32c10Smrg
122ea148d1dSmrg# Split fields of configuration type
123fbfaf8f3Smrg# shellcheck disable=SC2162
124fbfaf8f3Smrgsaved_IFS=$IFS
125fbfaf8f3SmrgIFS="-" read field1 field2 field3 field4 <<EOF
126ea148d1dSmrg$1
127ea148d1dSmrgEOF
128fbfaf8f3SmrgIFS=$saved_IFS
12943f32c10Smrg
130ea148d1dSmrg# Separate into logical components for further validation
131ea148d1dSmrgcase $1 in
132ea148d1dSmrg	*-*-*-*-*)
133ea148d1dSmrg		echo Invalid configuration \`"$1"\': more than four components >&2
134ea148d1dSmrg		exit 1
13543f32c10Smrg		;;
136ea148d1dSmrg	*-*-*-*)
137ea148d1dSmrg		basic_machine=$field1-$field2
138fbfaf8f3Smrg		basic_os=$field3-$field4
13943f32c10Smrg		;;
140ea148d1dSmrg	*-*-*)
141ea148d1dSmrg		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
142ea148d1dSmrg		# parts
143ea148d1dSmrg		maybe_os=$field2-$field3
144ea148d1dSmrg		case $maybe_os in
145fbfaf8f3Smrg			nto-qnx* | linux-* | uclinux-uclibc* \
146ea148d1dSmrg			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
147ea148d1dSmrg			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
148fbfaf8f3Smrg			| storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
149ea148d1dSmrg				basic_machine=$field1
150fbfaf8f3Smrg				basic_os=$maybe_os
151ea148d1dSmrg				;;
152ea148d1dSmrg			android-linux)
153ea148d1dSmrg				basic_machine=$field1-unknown
154fbfaf8f3Smrg				basic_os=linux-android
155ea148d1dSmrg				;;
156ea148d1dSmrg			*)
157ea148d1dSmrg				basic_machine=$field1-$field2
158fbfaf8f3Smrg				basic_os=$field3
159ea148d1dSmrg				;;
160ea148d1dSmrg		esac
16143f32c10Smrg		;;
162ea148d1dSmrg	*-*)
163fbfaf8f3Smrg		# A lone config we happen to match not fitting any pattern
164ea148d1dSmrg		case $field1-$field2 in
165ea148d1dSmrg			decstation-3100)
166ea148d1dSmrg				basic_machine=mips-dec
167fbfaf8f3Smrg				basic_os=
168ea148d1dSmrg				;;
169ea148d1dSmrg			*-*)
170ea148d1dSmrg				# Second component is usually, but not always the OS
171ea148d1dSmrg				case $field2 in
172ea148d1dSmrg					# Prevent following clause from handling this valid os
173ea148d1dSmrg					sun*os*)
174ea148d1dSmrg						basic_machine=$field1
175fbfaf8f3Smrg						basic_os=$field2
176fbfaf8f3Smrg						;;
177fbfaf8f3Smrg					zephyr*)
178fbfaf8f3Smrg						basic_machine=$field1-unknown
179fbfaf8f3Smrg						basic_os=$field2
180ea148d1dSmrg						;;
181ea148d1dSmrg					# Manufacturers
182ea148d1dSmrg					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
183ea148d1dSmrg					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
184ea148d1dSmrg					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
185ea148d1dSmrg					| convergent* | ncr* | news | 32* | 3600* | 3100* \
186ea148d1dSmrg					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
187ea148d1dSmrg					| ultra | tti* | harris | dolphin | highlevel | gould \
188ea148d1dSmrg					| cbm | ns | masscomp | apple | axis | knuth | cray \
189ea148d1dSmrg					| microblaze* | sim | cisco \
190ea148d1dSmrg					| oki | wec | wrs | winbond)
191ea148d1dSmrg						basic_machine=$field1-$field2
192fbfaf8f3Smrg						basic_os=
193ea148d1dSmrg						;;
194ea148d1dSmrg					*)
195ea148d1dSmrg						basic_machine=$field1
196fbfaf8f3Smrg						basic_os=$field2
197ea148d1dSmrg						;;
198ea148d1dSmrg				esac
199ea148d1dSmrg			;;
200ea148d1dSmrg		esac
20143f32c10Smrg		;;
202ea148d1dSmrg	*)
203ea148d1dSmrg		# Convert single-component short-hands not valid as part of
204ea148d1dSmrg		# multi-component configurations.
205ea148d1dSmrg		case $field1 in
206ea148d1dSmrg			386bsd)
207ea148d1dSmrg				basic_machine=i386-pc
208fbfaf8f3Smrg				basic_os=bsd
209ea148d1dSmrg				;;
210ea148d1dSmrg			a29khif)
211ea148d1dSmrg				basic_machine=a29k-amd
212fbfaf8f3Smrg				basic_os=udi
213ea148d1dSmrg				;;
214ea148d1dSmrg			adobe68k)
215ea148d1dSmrg				basic_machine=m68010-adobe
216fbfaf8f3Smrg				basic_os=scout
217ea148d1dSmrg				;;
218ea148d1dSmrg			alliant)
219ea148d1dSmrg				basic_machine=fx80-alliant
220fbfaf8f3Smrg				basic_os=
221ea148d1dSmrg				;;
222ea148d1dSmrg			altos | altos3068)
223ea148d1dSmrg				basic_machine=m68k-altos
224fbfaf8f3Smrg				basic_os=
225ea148d1dSmrg				;;
226ea148d1dSmrg			am29k)
227ea148d1dSmrg				basic_machine=a29k-none
228fbfaf8f3Smrg				basic_os=bsd
229ea148d1dSmrg				;;
230ea148d1dSmrg			amdahl)
231ea148d1dSmrg				basic_machine=580-amdahl
232fbfaf8f3Smrg				basic_os=sysv
233ea148d1dSmrg				;;
234ea148d1dSmrg			amiga)
235ea148d1dSmrg				basic_machine=m68k-unknown
236fbfaf8f3Smrg				basic_os=
237ea148d1dSmrg				;;
238ea148d1dSmrg			amigaos | amigados)
239ea148d1dSmrg				basic_machine=m68k-unknown
240fbfaf8f3Smrg				basic_os=amigaos
241ea148d1dSmrg				;;
242ea148d1dSmrg			amigaunix | amix)
243ea148d1dSmrg				basic_machine=m68k-unknown
244fbfaf8f3Smrg				basic_os=sysv4
245ea148d1dSmrg				;;
246ea148d1dSmrg			apollo68)
247ea148d1dSmrg				basic_machine=m68k-apollo
248fbfaf8f3Smrg				basic_os=sysv
249ea148d1dSmrg				;;
250ea148d1dSmrg			apollo68bsd)
251ea148d1dSmrg				basic_machine=m68k-apollo
252fbfaf8f3Smrg				basic_os=bsd
253ea148d1dSmrg				;;
254ea148d1dSmrg			aros)
255ea148d1dSmrg				basic_machine=i386-pc
256fbfaf8f3Smrg				basic_os=aros
257ea148d1dSmrg				;;
258ea148d1dSmrg			aux)
259ea148d1dSmrg				basic_machine=m68k-apple
260fbfaf8f3Smrg				basic_os=aux
261ea148d1dSmrg				;;
262ea148d1dSmrg			balance)
263ea148d1dSmrg				basic_machine=ns32k-sequent
264fbfaf8f3Smrg				basic_os=dynix
265ea148d1dSmrg				;;
266ea148d1dSmrg			blackfin)
267ea148d1dSmrg				basic_machine=bfin-unknown
268fbfaf8f3Smrg				basic_os=linux
269ea148d1dSmrg				;;
270ea148d1dSmrg			cegcc)
271ea148d1dSmrg				basic_machine=arm-unknown
272fbfaf8f3Smrg				basic_os=cegcc
273ea148d1dSmrg				;;
274ea148d1dSmrg			convex-c1)
275ea148d1dSmrg				basic_machine=c1-convex
276fbfaf8f3Smrg				basic_os=bsd
277ea148d1dSmrg				;;
278ea148d1dSmrg			convex-c2)
279ea148d1dSmrg				basic_machine=c2-convex
280fbfaf8f3Smrg				basic_os=bsd
281ea148d1dSmrg				;;
282ea148d1dSmrg			convex-c32)
283ea148d1dSmrg				basic_machine=c32-convex
284fbfaf8f3Smrg				basic_os=bsd
285ea148d1dSmrg				;;
286ea148d1dSmrg			convex-c34)
287ea148d1dSmrg				basic_machine=c34-convex
288fbfaf8f3Smrg				basic_os=bsd
289ea148d1dSmrg				;;
290ea148d1dSmrg			convex-c38)
291ea148d1dSmrg				basic_machine=c38-convex
292fbfaf8f3Smrg				basic_os=bsd
293ea148d1dSmrg				;;
294ea148d1dSmrg			cray)
295ea148d1dSmrg				basic_machine=j90-cray
296fbfaf8f3Smrg				basic_os=unicos
297ea148d1dSmrg				;;
298ea148d1dSmrg			crds | unos)
299ea148d1dSmrg				basic_machine=m68k-crds
300fbfaf8f3Smrg				basic_os=
301ea148d1dSmrg				;;
302ea148d1dSmrg			da30)
303ea148d1dSmrg				basic_machine=m68k-da30
304fbfaf8f3Smrg				basic_os=
305ea148d1dSmrg				;;
306ea148d1dSmrg			decstation | pmax | pmin | dec3100 | decstatn)
307ea148d1dSmrg				basic_machine=mips-dec
308fbfaf8f3Smrg				basic_os=
309ea148d1dSmrg				;;
310ea148d1dSmrg			delta88)
311ea148d1dSmrg				basic_machine=m88k-motorola
312fbfaf8f3Smrg				basic_os=sysv3
313ea148d1dSmrg				;;
314ea148d1dSmrg			dicos)
315ea148d1dSmrg				basic_machine=i686-pc
316fbfaf8f3Smrg				basic_os=dicos
317ea148d1dSmrg				;;
318ea148d1dSmrg			djgpp)
319ea148d1dSmrg				basic_machine=i586-pc
320fbfaf8f3Smrg				basic_os=msdosdjgpp
321ea148d1dSmrg				;;
322ea148d1dSmrg			ebmon29k)
323ea148d1dSmrg				basic_machine=a29k-amd
324fbfaf8f3Smrg				basic_os=ebmon
325ea148d1dSmrg				;;
326ea148d1dSmrg			es1800 | OSE68k | ose68k | ose | OSE)
327ea148d1dSmrg				basic_machine=m68k-ericsson
328fbfaf8f3Smrg				basic_os=ose
329ea148d1dSmrg				;;
330ea148d1dSmrg			gmicro)
331ea148d1dSmrg				basic_machine=tron-gmicro
332fbfaf8f3Smrg				basic_os=sysv
333ea148d1dSmrg				;;
334ea148d1dSmrg			go32)
335ea148d1dSmrg				basic_machine=i386-pc
336fbfaf8f3Smrg				basic_os=go32
337ea148d1dSmrg				;;
338ea148d1dSmrg			h8300hms)
339ea148d1dSmrg				basic_machine=h8300-hitachi
340fbfaf8f3Smrg				basic_os=hms
341ea148d1dSmrg				;;
342ea148d1dSmrg			h8300xray)
343ea148d1dSmrg				basic_machine=h8300-hitachi
344fbfaf8f3Smrg				basic_os=xray
345ea148d1dSmrg				;;
346ea148d1dSmrg			h8500hms)
347ea148d1dSmrg				basic_machine=h8500-hitachi
348fbfaf8f3Smrg				basic_os=hms
349ea148d1dSmrg				;;
350ea148d1dSmrg			harris)
351ea148d1dSmrg				basic_machine=m88k-harris
352fbfaf8f3Smrg				basic_os=sysv3
353ea148d1dSmrg				;;
354fbfaf8f3Smrg			hp300 | hp300hpux)
355ea148d1dSmrg				basic_machine=m68k-hp
356fbfaf8f3Smrg				basic_os=hpux
357ea148d1dSmrg				;;
358ea148d1dSmrg			hp300bsd)
359ea148d1dSmrg				basic_machine=m68k-hp
360fbfaf8f3Smrg				basic_os=bsd
361ea148d1dSmrg				;;
362ea148d1dSmrg			hppaosf)
363ea148d1dSmrg				basic_machine=hppa1.1-hp
364fbfaf8f3Smrg				basic_os=osf
365ea148d1dSmrg				;;
366ea148d1dSmrg			hppro)
367ea148d1dSmrg				basic_machine=hppa1.1-hp
368fbfaf8f3Smrg				basic_os=proelf
369ea148d1dSmrg				;;
370ea148d1dSmrg			i386mach)
371ea148d1dSmrg				basic_machine=i386-mach
372fbfaf8f3Smrg				basic_os=mach
373ea148d1dSmrg				;;
374ea148d1dSmrg			isi68 | isi)
375ea148d1dSmrg				basic_machine=m68k-isi
376fbfaf8f3Smrg				basic_os=sysv
377ea148d1dSmrg				;;
378ea148d1dSmrg			m68knommu)
379ea148d1dSmrg				basic_machine=m68k-unknown
380fbfaf8f3Smrg				basic_os=linux
381ea148d1dSmrg				;;
382ea148d1dSmrg			magnum | m3230)
383ea148d1dSmrg				basic_machine=mips-mips
384fbfaf8f3Smrg				basic_os=sysv
385ea148d1dSmrg				;;
386ea148d1dSmrg			merlin)
387ea148d1dSmrg				basic_machine=ns32k-utek
388fbfaf8f3Smrg				basic_os=sysv
389ea148d1dSmrg				;;
390ea148d1dSmrg			mingw64)
391ea148d1dSmrg				basic_machine=x86_64-pc
392fbfaf8f3Smrg				basic_os=mingw64
393ea148d1dSmrg				;;
394ea148d1dSmrg			mingw32)
395ea148d1dSmrg				basic_machine=i686-pc
396fbfaf8f3Smrg				basic_os=mingw32
397ea148d1dSmrg				;;
398ea148d1dSmrg			mingw32ce)
399ea148d1dSmrg				basic_machine=arm-unknown
400fbfaf8f3Smrg				basic_os=mingw32ce
401ea148d1dSmrg				;;
402ea148d1dSmrg			monitor)
403ea148d1dSmrg				basic_machine=m68k-rom68k
404fbfaf8f3Smrg				basic_os=coff
405ea148d1dSmrg				;;
406ea148d1dSmrg			morphos)
407ea148d1dSmrg				basic_machine=powerpc-unknown
408fbfaf8f3Smrg				basic_os=morphos
409ea148d1dSmrg				;;
410ea148d1dSmrg			moxiebox)
411ea148d1dSmrg				basic_machine=moxie-unknown
412fbfaf8f3Smrg				basic_os=moxiebox
413ea148d1dSmrg				;;
414ea148d1dSmrg			msdos)
415ea148d1dSmrg				basic_machine=i386-pc
416fbfaf8f3Smrg				basic_os=msdos
417ea148d1dSmrg				;;
418ea148d1dSmrg			msys)
419ea148d1dSmrg				basic_machine=i686-pc
420fbfaf8f3Smrg				basic_os=msys
421ea148d1dSmrg				;;
422ea148d1dSmrg			mvs)
423ea148d1dSmrg				basic_machine=i370-ibm
424fbfaf8f3Smrg				basic_os=mvs
425ea148d1dSmrg				;;
426ea148d1dSmrg			nacl)
427ea148d1dSmrg				basic_machine=le32-unknown
428fbfaf8f3Smrg				basic_os=nacl
429ea148d1dSmrg				;;
430ea148d1dSmrg			ncr3000)
431ea148d1dSmrg				basic_machine=i486-ncr
432fbfaf8f3Smrg				basic_os=sysv4
433ea148d1dSmrg				;;
434ea148d1dSmrg			netbsd386)
435ea148d1dSmrg				basic_machine=i386-pc
436fbfaf8f3Smrg				basic_os=netbsd
437ea148d1dSmrg				;;
438ea148d1dSmrg			netwinder)
439ea148d1dSmrg				basic_machine=armv4l-rebel
440fbfaf8f3Smrg				basic_os=linux
441ea148d1dSmrg				;;
442ea148d1dSmrg			news | news700 | news800 | news900)
443ea148d1dSmrg				basic_machine=m68k-sony
444fbfaf8f3Smrg				basic_os=newsos
445ea148d1dSmrg				;;
446ea148d1dSmrg			news1000)
447ea148d1dSmrg				basic_machine=m68030-sony
448fbfaf8f3Smrg				basic_os=newsos
449ea148d1dSmrg				;;
450ea148d1dSmrg			necv70)
451ea148d1dSmrg				basic_machine=v70-nec
452fbfaf8f3Smrg				basic_os=sysv
453ea148d1dSmrg				;;
454ea148d1dSmrg			nh3000)
455ea148d1dSmrg				basic_machine=m68k-harris
456fbfaf8f3Smrg				basic_os=cxux
457ea148d1dSmrg				;;
458ea148d1dSmrg			nh[45]000)
459ea148d1dSmrg				basic_machine=m88k-harris
460fbfaf8f3Smrg				basic_os=cxux
461ea148d1dSmrg				;;
462ea148d1dSmrg			nindy960)
463ea148d1dSmrg				basic_machine=i960-intel
464fbfaf8f3Smrg				basic_os=nindy
465ea148d1dSmrg				;;
466ea148d1dSmrg			mon960)
467ea148d1dSmrg				basic_machine=i960-intel
468fbfaf8f3Smrg				basic_os=mon960
469ea148d1dSmrg				;;
470ea148d1dSmrg			nonstopux)
471ea148d1dSmrg				basic_machine=mips-compaq
472fbfaf8f3Smrg				basic_os=nonstopux
473ea148d1dSmrg				;;
474ea148d1dSmrg			os400)
475ea148d1dSmrg				basic_machine=powerpc-ibm
476fbfaf8f3Smrg				basic_os=os400
477ea148d1dSmrg				;;
478ea148d1dSmrg			OSE68000 | ose68000)
479ea148d1dSmrg				basic_machine=m68000-ericsson
480fbfaf8f3Smrg				basic_os=ose
481ea148d1dSmrg				;;
482ea148d1dSmrg			os68k)
483ea148d1dSmrg				basic_machine=m68k-none
484fbfaf8f3Smrg				basic_os=os68k
485ea148d1dSmrg				;;
486ea148d1dSmrg			paragon)
487ea148d1dSmrg				basic_machine=i860-intel
488fbfaf8f3Smrg				basic_os=osf
489ea148d1dSmrg				;;
490ea148d1dSmrg			parisc)
491ea148d1dSmrg				basic_machine=hppa-unknown
492fbfaf8f3Smrg				basic_os=linux
493fbfaf8f3Smrg				;;
494fbfaf8f3Smrg			psp)
495fbfaf8f3Smrg				basic_machine=mipsallegrexel-sony
496fbfaf8f3Smrg				basic_os=psp
497ea148d1dSmrg				;;
498ea148d1dSmrg			pw32)
499ea148d1dSmrg				basic_machine=i586-unknown
500fbfaf8f3Smrg				basic_os=pw32
501ea148d1dSmrg				;;
502ea148d1dSmrg			rdos | rdos64)
503ea148d1dSmrg				basic_machine=x86_64-pc
504fbfaf8f3Smrg				basic_os=rdos
505ea148d1dSmrg				;;
506ea148d1dSmrg			rdos32)
507ea148d1dSmrg				basic_machine=i386-pc
508fbfaf8f3Smrg				basic_os=rdos
509ea148d1dSmrg				;;
510ea148d1dSmrg			rom68k)
511ea148d1dSmrg				basic_machine=m68k-rom68k
512fbfaf8f3Smrg				basic_os=coff
513ea148d1dSmrg				;;
514ea148d1dSmrg			sa29200)
515ea148d1dSmrg				basic_machine=a29k-amd
516fbfaf8f3Smrg				basic_os=udi
517ea148d1dSmrg				;;
518ea148d1dSmrg			sei)
519ea148d1dSmrg				basic_machine=mips-sei
520fbfaf8f3Smrg				basic_os=seiux
521ea148d1dSmrg				;;
522ea148d1dSmrg			sequent)
523ea148d1dSmrg				basic_machine=i386-sequent
524fbfaf8f3Smrg				basic_os=
525ea148d1dSmrg				;;
526ea148d1dSmrg			sps7)
527ea148d1dSmrg				basic_machine=m68k-bull
528fbfaf8f3Smrg				basic_os=sysv2
529ea148d1dSmrg				;;
530ea148d1dSmrg			st2000)
531ea148d1dSmrg				basic_machine=m68k-tandem
532fbfaf8f3Smrg				basic_os=
533ea148d1dSmrg				;;
534ea148d1dSmrg			stratus)
535ea148d1dSmrg				basic_machine=i860-stratus
536fbfaf8f3Smrg				basic_os=sysv4
537ea148d1dSmrg				;;
538ea148d1dSmrg			sun2)
539ea148d1dSmrg				basic_machine=m68000-sun
540fbfaf8f3Smrg				basic_os=
541ea148d1dSmrg				;;
542ea148d1dSmrg			sun2os3)
543ea148d1dSmrg				basic_machine=m68000-sun
544fbfaf8f3Smrg				basic_os=sunos3
545ea148d1dSmrg				;;
546ea148d1dSmrg			sun2os4)
547ea148d1dSmrg				basic_machine=m68000-sun
548fbfaf8f3Smrg				basic_os=sunos4
549ea148d1dSmrg				;;
550ea148d1dSmrg			sun3)
551ea148d1dSmrg				basic_machine=m68k-sun
552fbfaf8f3Smrg				basic_os=
553ea148d1dSmrg				;;
554ea148d1dSmrg			sun3os3)
555ea148d1dSmrg				basic_machine=m68k-sun
556fbfaf8f3Smrg				basic_os=sunos3
557ea148d1dSmrg				;;
558ea148d1dSmrg			sun3os4)
559ea148d1dSmrg				basic_machine=m68k-sun
560fbfaf8f3Smrg				basic_os=sunos4
561ea148d1dSmrg				;;
562ea148d1dSmrg			sun4)
563ea148d1dSmrg				basic_machine=sparc-sun
564fbfaf8f3Smrg				basic_os=
565ea148d1dSmrg				;;
566ea148d1dSmrg			sun4os3)
567ea148d1dSmrg				basic_machine=sparc-sun
568fbfaf8f3Smrg				basic_os=sunos3
569ea148d1dSmrg				;;
570ea148d1dSmrg			sun4os4)
571ea148d1dSmrg				basic_machine=sparc-sun
572fbfaf8f3Smrg				basic_os=sunos4
573ea148d1dSmrg				;;
574ea148d1dSmrg			sun4sol2)
575ea148d1dSmrg				basic_machine=sparc-sun
576fbfaf8f3Smrg				basic_os=solaris2
577ea148d1dSmrg				;;
578ea148d1dSmrg			sun386 | sun386i | roadrunner)
579ea148d1dSmrg				basic_machine=i386-sun
580fbfaf8f3Smrg				basic_os=
581ea148d1dSmrg				;;
582ea148d1dSmrg			sv1)
583ea148d1dSmrg				basic_machine=sv1-cray
584fbfaf8f3Smrg				basic_os=unicos
585ea148d1dSmrg				;;
586ea148d1dSmrg			symmetry)
587ea148d1dSmrg				basic_machine=i386-sequent
588fbfaf8f3Smrg				basic_os=dynix
589ea148d1dSmrg				;;
590ea148d1dSmrg			t3e)
591ea148d1dSmrg				basic_machine=alphaev5-cray
592fbfaf8f3Smrg				basic_os=unicos
593ea148d1dSmrg				;;
594ea148d1dSmrg			t90)
595ea148d1dSmrg				basic_machine=t90-cray
596fbfaf8f3Smrg				basic_os=unicos
597ea148d1dSmrg				;;
598ea148d1dSmrg			toad1)
599ea148d1dSmrg				basic_machine=pdp10-xkl
600fbfaf8f3Smrg				basic_os=tops20
601ea148d1dSmrg				;;
602ea148d1dSmrg			tpf)
603ea148d1dSmrg				basic_machine=s390x-ibm
604fbfaf8f3Smrg				basic_os=tpf
605ea148d1dSmrg				;;
606ea148d1dSmrg			udi29k)
607ea148d1dSmrg				basic_machine=a29k-amd
608fbfaf8f3Smrg				basic_os=udi
609ea148d1dSmrg				;;
610ea148d1dSmrg			ultra3)
611ea148d1dSmrg				basic_machine=a29k-nyu
612fbfaf8f3Smrg				basic_os=sym1
613ea148d1dSmrg				;;
614ea148d1dSmrg			v810 | necv810)
615ea148d1dSmrg				basic_machine=v810-nec
616fbfaf8f3Smrg				basic_os=none
617ea148d1dSmrg				;;
618ea148d1dSmrg			vaxv)
619ea148d1dSmrg				basic_machine=vax-dec
620fbfaf8f3Smrg				basic_os=sysv
621ea148d1dSmrg				;;
622ea148d1dSmrg			vms)
623ea148d1dSmrg				basic_machine=vax-dec
624fbfaf8f3Smrg				basic_os=vms
625fbfaf8f3Smrg				;;
626fbfaf8f3Smrg			vsta)
627fbfaf8f3Smrg				basic_machine=i386-pc
628fbfaf8f3Smrg				basic_os=vsta
629ea148d1dSmrg				;;
630ea148d1dSmrg			vxworks960)
631ea148d1dSmrg				basic_machine=i960-wrs
632fbfaf8f3Smrg				basic_os=vxworks
633ea148d1dSmrg				;;
634ea148d1dSmrg			vxworks68)
635ea148d1dSmrg				basic_machine=m68k-wrs
636fbfaf8f3Smrg				basic_os=vxworks
637ea148d1dSmrg				;;
638ea148d1dSmrg			vxworks29k)
639ea148d1dSmrg				basic_machine=a29k-wrs
640fbfaf8f3Smrg				basic_os=vxworks
641ea148d1dSmrg				;;
642ea148d1dSmrg			xbox)
643ea148d1dSmrg				basic_machine=i686-pc
644fbfaf8f3Smrg				basic_os=mingw32
645ea148d1dSmrg				;;
646ea148d1dSmrg			ymp)
647ea148d1dSmrg				basic_machine=ymp-cray
648fbfaf8f3Smrg				basic_os=unicos
649ea148d1dSmrg				;;
650ea148d1dSmrg			*)
651ea148d1dSmrg				basic_machine=$1
652fbfaf8f3Smrg				basic_os=
653ea148d1dSmrg				;;
654ea148d1dSmrg		esac
65543f32c10Smrg		;;
65643f32c10Smrgesac
65743f32c10Smrg
658ea148d1dSmrg# Decode 1-component or ad-hoc basic machines
65943f32c10Smrgcase $basic_machine in
660ea148d1dSmrg	# Here we handle the default manufacturer of certain CPU types.  It is in
661ea148d1dSmrg	# some cases the only manufacturer, in others, it is the most popular.
662ea148d1dSmrg	w89k)
663ea148d1dSmrg		cpu=hppa1.1
664ea148d1dSmrg		vendor=winbond
66543f32c10Smrg		;;
666ea148d1dSmrg	op50n)
667ea148d1dSmrg		cpu=hppa1.1
668ea148d1dSmrg		vendor=oki
66943f32c10Smrg		;;
670ea148d1dSmrg	op60c)
671ea148d1dSmrg		cpu=hppa1.1
672ea148d1dSmrg		vendor=oki
67343f32c10Smrg		;;
674ea148d1dSmrg	ibm*)
675ea148d1dSmrg		cpu=i370
676ea148d1dSmrg		vendor=ibm
6776ef05171Smrg		;;
678ea148d1dSmrg	orion105)
679ea148d1dSmrg		cpu=clipper
680ea148d1dSmrg		vendor=highlevel
6816ef05171Smrg		;;
682ea148d1dSmrg	mac | mpw | mac-mpw)
683ea148d1dSmrg		cpu=m68k
684ea148d1dSmrg		vendor=apple
6856ef05171Smrg		;;
686ea148d1dSmrg	pmac | pmac-mpw)
687ea148d1dSmrg		cpu=powerpc
688ea148d1dSmrg		vendor=apple
6896ef05171Smrg		;;
6906ef05171Smrg
69143f32c10Smrg	# Recognize the various machine names and aliases which stand
69243f32c10Smrg	# for a CPU type and a company and sometimes even an OS.
69343f32c10Smrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
694ea148d1dSmrg		cpu=m68000
695ea148d1dSmrg		vendor=att
69643f32c10Smrg		;;
69743f32c10Smrg	3b*)
698ea148d1dSmrg		cpu=we32k
699ea148d1dSmrg		vendor=att
70043f32c10Smrg		;;
7016ef05171Smrg	bluegene*)
702ea148d1dSmrg		cpu=powerpc
703ea148d1dSmrg		vendor=ibm
704fbfaf8f3Smrg		basic_os=cnk
70543f32c10Smrg		;;
70643f32c10Smrg	decsystem10* | dec10*)
707ea148d1dSmrg		cpu=pdp10
708ea148d1dSmrg		vendor=dec
709fbfaf8f3Smrg		basic_os=tops10
71043f32c10Smrg		;;
71143f32c10Smrg	decsystem20* | dec20*)
712ea148d1dSmrg		cpu=pdp10
713ea148d1dSmrg		vendor=dec
714fbfaf8f3Smrg		basic_os=tops20
71543f32c10Smrg		;;
71643f32c10Smrg	delta | 3300 | motorola-3300 | motorola-delta \
71743f32c10Smrg	      | 3300-motorola | delta-motorola)
718ea148d1dSmrg		cpu=m68k
719ea148d1dSmrg		vendor=motorola
72043f32c10Smrg		;;
721ea148d1dSmrg	dpx2*)
722ea148d1dSmrg		cpu=m68k
723ea148d1dSmrg		vendor=bull
724fbfaf8f3Smrg		basic_os=sysv3
72543f32c10Smrg		;;
72643f32c10Smrg	encore | umax | mmax)
727ea148d1dSmrg		cpu=ns32k
728ea148d1dSmrg		vendor=encore
72943f32c10Smrg		;;
730ea148d1dSmrg	elxsi)
731ea148d1dSmrg		cpu=elxsi
732ea148d1dSmrg		vendor=elxsi
733fbfaf8f3Smrg		basic_os=${basic_os:-bsd}
73443f32c10Smrg		;;
73543f32c10Smrg	fx2800)
736ea148d1dSmrg		cpu=i860
737ea148d1dSmrg		vendor=alliant
73843f32c10Smrg		;;
73943f32c10Smrg	genix)
740ea148d1dSmrg		cpu=ns32k
741ea148d1dSmrg		vendor=ns
74243f32c10Smrg		;;
74343f32c10Smrg	h3050r* | hiux*)
744ea148d1dSmrg		cpu=hppa1.1
745ea148d1dSmrg		vendor=hitachi
746fbfaf8f3Smrg		basic_os=hiuxwe2
74743f32c10Smrg		;;
74843f32c10Smrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
749ea148d1dSmrg		cpu=hppa1.0
750ea148d1dSmrg		vendor=hp
75143f32c10Smrg		;;
75243f32c10Smrg	hp9k2[0-9][0-9] | hp9k31[0-9])
753ea148d1dSmrg		cpu=m68000
754ea148d1dSmrg		vendor=hp
75543f32c10Smrg		;;
75643f32c10Smrg	hp9k3[2-9][0-9])
757ea148d1dSmrg		cpu=m68k
758ea148d1dSmrg		vendor=hp
75943f32c10Smrg		;;
76043f32c10Smrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
761ea148d1dSmrg		cpu=hppa1.0
762ea148d1dSmrg		vendor=hp
76343f32c10Smrg		;;
76443f32c10Smrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
765ea148d1dSmrg		cpu=hppa1.1
766ea148d1dSmrg		vendor=hp
76743f32c10Smrg		;;
76843f32c10Smrg	hp9k78[0-9] | hp78[0-9])
76943f32c10Smrg		# FIXME: really hppa2.0-hp
770ea148d1dSmrg		cpu=hppa1.1
771ea148d1dSmrg		vendor=hp
77243f32c10Smrg		;;
77343f32c10Smrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
77443f32c10Smrg		# FIXME: really hppa2.0-hp
775ea148d1dSmrg		cpu=hppa1.1
776ea148d1dSmrg		vendor=hp
77743f32c10Smrg		;;
77843f32c10Smrg	hp9k8[0-9][13679] | hp8[0-9][13679])
779ea148d1dSmrg		cpu=hppa1.1
780ea148d1dSmrg		vendor=hp
78143f32c10Smrg		;;
78243f32c10Smrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
783ea148d1dSmrg		cpu=hppa1.0
784ea148d1dSmrg		vendor=hp
78543f32c10Smrg		;;
78643f32c10Smrg	i*86v32)
787ea148d1dSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
788ea148d1dSmrg		vendor=pc
789fbfaf8f3Smrg		basic_os=sysv32
79043f32c10Smrg		;;
79143f32c10Smrg	i*86v4*)
792ea148d1dSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
793ea148d1dSmrg		vendor=pc
794fbfaf8f3Smrg		basic_os=sysv4
79543f32c10Smrg		;;
79643f32c10Smrg	i*86v)
797ea148d1dSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
798ea148d1dSmrg		vendor=pc
799fbfaf8f3Smrg		basic_os=sysv
80043f32c10Smrg		;;
80143f32c10Smrg	i*86sol2)
802ea148d1dSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
803ea148d1dSmrg		vendor=pc
804fbfaf8f3Smrg		basic_os=solaris2
80543f32c10Smrg		;;
806ea148d1dSmrg	j90 | j90-cray)
807ea148d1dSmrg		cpu=j90
808ea148d1dSmrg		vendor=cray
809fbfaf8f3Smrg		basic_os=${basic_os:-unicos}
81043f32c10Smrg		;;
81143f32c10Smrg	iris | iris4d)
812ea148d1dSmrg		cpu=mips
813ea148d1dSmrg		vendor=sgi
814fbfaf8f3Smrg		case $basic_os in
815ea148d1dSmrg		    irix*)
81643f32c10Smrg			;;
81743f32c10Smrg		    *)
818fbfaf8f3Smrg			basic_os=irix4
81943f32c10Smrg			;;
82043f32c10Smrg		esac
82143f32c10Smrg		;;
82243f32c10Smrg	miniframe)
823ea148d1dSmrg		cpu=m68000
824ea148d1dSmrg		vendor=convergent
8256ef05171Smrg		;;
826ea148d1dSmrg	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
827ea148d1dSmrg		cpu=m68k
828ea148d1dSmrg		vendor=atari
829fbfaf8f3Smrg		basic_os=mint
83043f32c10Smrg		;;
83143f32c10Smrg	news-3600 | risc-news)
832ea148d1dSmrg		cpu=mips
833ea148d1dSmrg		vendor=sony
834fbfaf8f3Smrg		basic_os=newsos
83543f32c10Smrg		;;
836ea148d1dSmrg	next | m*-next)
837ea148d1dSmrg		cpu=m68k
838ea148d1dSmrg		vendor=next
839fbfaf8f3Smrg		case $basic_os in
840fbfaf8f3Smrg		    openstep*)
841fbfaf8f3Smrg		        ;;
842fbfaf8f3Smrg		    nextstep*)
84343f32c10Smrg			;;
844ea148d1dSmrg		    ns2*)
845fbfaf8f3Smrg		      basic_os=nextstep2
84643f32c10Smrg			;;
84743f32c10Smrg		    *)
848fbfaf8f3Smrg		      basic_os=nextstep3
84943f32c10Smrg			;;
85043f32c10Smrg		esac
85143f32c10Smrg		;;
85243f32c10Smrg	np1)
853ea148d1dSmrg		cpu=np1
854ea148d1dSmrg		vendor=gould
8556ef05171Smrg		;;
85643f32c10Smrg	op50n-* | op60c-*)
857ea148d1dSmrg		cpu=hppa1.1
858ea148d1dSmrg		vendor=oki
859fbfaf8f3Smrg		basic_os=proelf
86043f32c10Smrg		;;
86143f32c10Smrg	pa-hitachi)
862ea148d1dSmrg		cpu=hppa1.1
863ea148d1dSmrg		vendor=hitachi
864fbfaf8f3Smrg		basic_os=hiuxwe2
86543f32c10Smrg		;;
86643f32c10Smrg	pbd)
867ea148d1dSmrg		cpu=sparc
868ea148d1dSmrg		vendor=tti
86943f32c10Smrg		;;
87043f32c10Smrg	pbb)
871ea148d1dSmrg		cpu=m68k
872ea148d1dSmrg		vendor=tti
87343f32c10Smrg		;;
874ea148d1dSmrg	pc532)
875ea148d1dSmrg		cpu=ns32k
876ea148d1dSmrg		vendor=pc532
87743f32c10Smrg		;;
87843f32c10Smrg	pn)
879ea148d1dSmrg		cpu=pn
880ea148d1dSmrg		vendor=gould
88143f32c10Smrg		;;
882ea148d1dSmrg	power)
883ea148d1dSmrg		cpu=power
884ea148d1dSmrg		vendor=ibm
88543f32c10Smrg		;;
88643f32c10Smrg	ps2)
887ea148d1dSmrg		cpu=i386
888ea148d1dSmrg		vendor=ibm
88943f32c10Smrg		;;
89043f32c10Smrg	rm[46]00)
891ea148d1dSmrg		cpu=mips
892ea148d1dSmrg		vendor=siemens
89343f32c10Smrg		;;
89443f32c10Smrg	rtpc | rtpc-*)
895ea148d1dSmrg		cpu=romp
896ea148d1dSmrg		vendor=ibm
89743f32c10Smrg		;;
89843f32c10Smrg	sde)
899ea148d1dSmrg		cpu=mipsisa32
900ea148d1dSmrg		vendor=sde
901fbfaf8f3Smrg		basic_os=${basic_os:-elf}
90243f32c10Smrg		;;
903ea148d1dSmrg	simso-wrs)
904ea148d1dSmrg		cpu=sparclite
905ea148d1dSmrg		vendor=wrs
906fbfaf8f3Smrg		basic_os=vxworks
90743f32c10Smrg		;;
908ea148d1dSmrg	tower | tower-32)
909ea148d1dSmrg		cpu=m68k
910ea148d1dSmrg		vendor=ncr
91143f32c10Smrg		;;
912ea148d1dSmrg	vpp*|vx|vx-*)
913ea148d1dSmrg		cpu=f301
914ea148d1dSmrg		vendor=fujitsu
91543f32c10Smrg		;;
916ea148d1dSmrg	w65)
917ea148d1dSmrg		cpu=w65
918ea148d1dSmrg		vendor=wdc
91943f32c10Smrg		;;
920ea148d1dSmrg	w89k-*)
921ea148d1dSmrg		cpu=hppa1.1
922ea148d1dSmrg		vendor=winbond
923fbfaf8f3Smrg		basic_os=proelf
92443f32c10Smrg		;;
925ea148d1dSmrg	none)
926ea148d1dSmrg		cpu=none
927ea148d1dSmrg		vendor=none
92843f32c10Smrg		;;
929ea148d1dSmrg	leon|leon[3-9])
930ea148d1dSmrg		cpu=sparc
931ea148d1dSmrg		vendor=$basic_machine
93243f32c10Smrg		;;
933ea148d1dSmrg	leon-*|leon[3-9]-*)
934ea148d1dSmrg		cpu=sparc
935ea148d1dSmrg		vendor=`echo "$basic_machine" | sed 's/-.*//'`
93643f32c10Smrg		;;
937ea148d1dSmrg
938ea148d1dSmrg	*-*)
939fbfaf8f3Smrg		# shellcheck disable=SC2162
940fbfaf8f3Smrg		saved_IFS=$IFS
941fbfaf8f3Smrg		IFS="-" read cpu vendor <<EOF
942ea148d1dSmrg$basic_machine
943ea148d1dSmrgEOF
944fbfaf8f3Smrg		IFS=$saved_IFS
94543f32c10Smrg		;;
946ea148d1dSmrg	# We use `pc' rather than `unknown'
947ea148d1dSmrg	# because (1) that's what they normally are, and
948ea148d1dSmrg	# (2) the word "unknown" tends to confuse beginning users.
949ea148d1dSmrg	i*86 | x86_64)
950ea148d1dSmrg		cpu=$basic_machine
951ea148d1dSmrg		vendor=pc
95243f32c10Smrg		;;
953ea148d1dSmrg	# These rules are duplicated from below for sake of the special case above;
954ea148d1dSmrg	# i.e. things that normalized to x86 arches should also default to "pc"
955ea148d1dSmrg	pc98)
956ea148d1dSmrg		cpu=i386
957ea148d1dSmrg		vendor=pc
9586ef05171Smrg		;;
959ea148d1dSmrg	x64 | amd64)
960ea148d1dSmrg		cpu=x86_64
961ea148d1dSmrg		vendor=pc
96243f32c10Smrg		;;
963ea148d1dSmrg	# Recognize the basic CPU types without company name.
964ea148d1dSmrg	*)
965ea148d1dSmrg		cpu=$basic_machine
966ea148d1dSmrg		vendor=unknown
96743f32c10Smrg		;;
968ea148d1dSmrgesac
969ea148d1dSmrg
970ea148d1dSmrgunset -v basic_machine
971ea148d1dSmrg
972ea148d1dSmrg# Decode basic machines in the full and proper CPU-Company form.
973ea148d1dSmrgcase $cpu-$vendor in
974fbfaf8f3Smrg	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
975ea148d1dSmrg	# some cases the only manufacturer, in others, it is the most popular.
976ea148d1dSmrg	craynv-unknown)
977ea148d1dSmrg		vendor=cray
978fbfaf8f3Smrg		basic_os=${basic_os:-unicosmp}
97943f32c10Smrg		;;
980ea148d1dSmrg	c90-unknown | c90-cray)
981ea148d1dSmrg		vendor=cray
982fbfaf8f3Smrg		basic_os=${Basic_os:-unicos}
98343f32c10Smrg		;;
984ea148d1dSmrg	fx80-unknown)
985ea148d1dSmrg		vendor=alliant
98643f32c10Smrg		;;
987ea148d1dSmrg	romp-unknown)
988ea148d1dSmrg		vendor=ibm
98943f32c10Smrg		;;
990ea148d1dSmrg	mmix-unknown)
991ea148d1dSmrg		vendor=knuth
99243f32c10Smrg		;;
993ea148d1dSmrg	microblaze-unknown | microblazeel-unknown)
994ea148d1dSmrg		vendor=xilinx
99543f32c10Smrg		;;
996ea148d1dSmrg	rs6000-unknown)
997ea148d1dSmrg		vendor=ibm
99843f32c10Smrg		;;
999ea148d1dSmrg	vax-unknown)
1000ea148d1dSmrg		vendor=dec
100143f32c10Smrg		;;
1002ea148d1dSmrg	pdp11-unknown)
1003ea148d1dSmrg		vendor=dec
100443f32c10Smrg		;;
1005ea148d1dSmrg	we32k-unknown)
1006ea148d1dSmrg		vendor=att
100743f32c10Smrg		;;
1008ea148d1dSmrg	cydra-unknown)
1009ea148d1dSmrg		vendor=cydrome
101043f32c10Smrg		;;
1011ea148d1dSmrg	i370-ibm*)
1012ea148d1dSmrg		vendor=ibm
101343f32c10Smrg		;;
1014ea148d1dSmrg	orion-unknown)
1015ea148d1dSmrg		vendor=highlevel
101643f32c10Smrg		;;
1017ea148d1dSmrg	xps-unknown | xps100-unknown)
1018ea148d1dSmrg		cpu=xps100
1019ea148d1dSmrg		vendor=honeywell
102043f32c10Smrg		;;
1021ea148d1dSmrg
1022ea148d1dSmrg	# Here we normalize CPU types with a missing or matching vendor
1023fbfaf8f3Smrg	armh-unknown | armh-alt)
1024fbfaf8f3Smrg		cpu=armv7l
1025fbfaf8f3Smrg		vendor=alt
1026fbfaf8f3Smrg		basic_os=${basic_os:-linux-gnueabihf}
1027fbfaf8f3Smrg		;;
1028ea148d1dSmrg	dpx20-unknown | dpx20-bull)
1029ea148d1dSmrg		cpu=rs6000
1030ea148d1dSmrg		vendor=bull
1031fbfaf8f3Smrg		basic_os=${basic_os:-bosx}
103243f32c10Smrg		;;
1033ea148d1dSmrg
1034ea148d1dSmrg	# Here we normalize CPU types irrespective of the vendor
1035ea148d1dSmrg	amd64-*)
1036ea148d1dSmrg		cpu=x86_64
103743f32c10Smrg		;;
1038ea148d1dSmrg	blackfin-*)
1039ea148d1dSmrg		cpu=bfin
1040fbfaf8f3Smrg		basic_os=linux
104143f32c10Smrg		;;
1042ea148d1dSmrg	c54x-*)
1043ea148d1dSmrg		cpu=tic54x
104443f32c10Smrg		;;
1045ea148d1dSmrg	c55x-*)
1046ea148d1dSmrg		cpu=tic55x
104743f32c10Smrg		;;
1048ea148d1dSmrg	c6x-*)
1049ea148d1dSmrg		cpu=tic6x
105043f32c10Smrg		;;
1051ea148d1dSmrg	e500v[12]-*)
1052ea148d1dSmrg		cpu=powerpc
1053fbfaf8f3Smrg		basic_os=${basic_os}"spe"
105443f32c10Smrg		;;
1055ea148d1dSmrg	mips3*-*)
1056ea148d1dSmrg		cpu=mips64
105743f32c10Smrg		;;
1058ea148d1dSmrg	ms1-*)
1059ea148d1dSmrg		cpu=mt
106043f32c10Smrg		;;
1061ea148d1dSmrg	m68knommu-*)
1062ea148d1dSmrg		cpu=m68k
1063fbfaf8f3Smrg		basic_os=linux
106443f32c10Smrg		;;
1065ea148d1dSmrg	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1066ea148d1dSmrg		cpu=s12z
106743f32c10Smrg		;;
1068ea148d1dSmrg	openrisc-*)
1069ea148d1dSmrg		cpu=or32
107043f32c10Smrg		;;
1071ea148d1dSmrg	parisc-*)
1072ea148d1dSmrg		cpu=hppa
1073fbfaf8f3Smrg		basic_os=linux
107443f32c10Smrg		;;
1075ea148d1dSmrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1076ea148d1dSmrg		cpu=i586
107743f32c10Smrg		;;
1078fbfaf8f3Smrg	pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
1079ea148d1dSmrg		cpu=i686
10806ef05171Smrg		;;
1081ea148d1dSmrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1082ea148d1dSmrg		cpu=i686
108343f32c10Smrg		;;
1084ea148d1dSmrg	pentium4-*)
1085ea148d1dSmrg		cpu=i786
108643f32c10Smrg		;;
1087ea148d1dSmrg	pc98-*)
1088ea148d1dSmrg		cpu=i386
108943f32c10Smrg		;;
1090ea148d1dSmrg	ppc-* | ppcbe-*)
1091ea148d1dSmrg		cpu=powerpc
109243f32c10Smrg		;;
1093ea148d1dSmrg	ppcle-* | powerpclittle-*)
1094ea148d1dSmrg		cpu=powerpcle
10956ef05171Smrg		;;
1096ea148d1dSmrg	ppc64-*)
1097ea148d1dSmrg		cpu=powerpc64
109843f32c10Smrg		;;
1099ea148d1dSmrg	ppc64le-* | powerpc64little-*)
1100ea148d1dSmrg		cpu=powerpc64le
110143f32c10Smrg		;;
1102ea148d1dSmrg	sb1-*)
1103ea148d1dSmrg		cpu=mipsisa64sb1
11046ef05171Smrg		;;
1105ea148d1dSmrg	sb1el-*)
1106ea148d1dSmrg		cpu=mipsisa64sb1el
110743f32c10Smrg		;;
1108ea148d1dSmrg	sh5e[lb]-*)
1109ea148d1dSmrg		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
111043f32c10Smrg		;;
1111ea148d1dSmrg	spur-*)
1112ea148d1dSmrg		cpu=spur
111343f32c10Smrg		;;
1114ea148d1dSmrg	strongarm-* | thumb-*)
1115ea148d1dSmrg		cpu=arm
111643f32c10Smrg		;;
1117ea148d1dSmrg	tx39-*)
1118ea148d1dSmrg		cpu=mipstx39
111943f32c10Smrg		;;
1120ea148d1dSmrg	tx39el-*)
1121ea148d1dSmrg		cpu=mipstx39el
112243f32c10Smrg		;;
1123ea148d1dSmrg	x64-*)
1124ea148d1dSmrg		cpu=x86_64
112543f32c10Smrg		;;
1126ea148d1dSmrg	xscale-* | xscalee[bl]-*)
1127ea148d1dSmrg		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
112843f32c10Smrg		;;
1129fbfaf8f3Smrg	arm64-* | aarch64le-*)
1130fbfaf8f3Smrg		cpu=aarch64
1131fbfaf8f3Smrg		;;
1132ea148d1dSmrg
1133fbfaf8f3Smrg	# Recognize the canonical CPU Types that limit and/or modify the
1134ea148d1dSmrg	# company names they are paired with.
1135ea148d1dSmrg	cr16-*)
1136fbfaf8f3Smrg		basic_os=${basic_os:-elf}
113743f32c10Smrg		;;
1138ea148d1dSmrg	crisv32-* | etraxfs*-*)
1139ea148d1dSmrg		cpu=crisv32
1140ea148d1dSmrg		vendor=axis
114143f32c10Smrg		;;
1142ea148d1dSmrg	cris-* | etrax*-*)
1143ea148d1dSmrg		cpu=cris
1144ea148d1dSmrg		vendor=axis
114543f32c10Smrg		;;
1146ea148d1dSmrg	crx-*)
1147fbfaf8f3Smrg		basic_os=${basic_os:-elf}
114843f32c10Smrg		;;
1149ea148d1dSmrg	neo-tandem)
1150ea148d1dSmrg		cpu=neo
1151ea148d1dSmrg		vendor=tandem
115243f32c10Smrg		;;
1153ea148d1dSmrg	nse-tandem)
1154ea148d1dSmrg		cpu=nse
1155ea148d1dSmrg		vendor=tandem
115643f32c10Smrg		;;
1157ea148d1dSmrg	nsr-tandem)
1158ea148d1dSmrg		cpu=nsr
1159ea148d1dSmrg		vendor=tandem
116043f32c10Smrg		;;
1161ea148d1dSmrg	nsv-tandem)
1162ea148d1dSmrg		cpu=nsv
1163ea148d1dSmrg		vendor=tandem
116443f32c10Smrg		;;
1165ea148d1dSmrg	nsx-tandem)
1166ea148d1dSmrg		cpu=nsx
1167ea148d1dSmrg		vendor=tandem
116843f32c10Smrg		;;
1169fbfaf8f3Smrg	mipsallegrexel-sony)
1170fbfaf8f3Smrg		cpu=mipsallegrexel
1171fbfaf8f3Smrg		vendor=sony
117243f32c10Smrg		;;
1173ea148d1dSmrg	tile*-*)
1174fbfaf8f3Smrg		basic_os=${basic_os:-linux-gnu}
117543f32c10Smrg		;;
1176ea148d1dSmrg
117743f32c10Smrg	*)
1178fbfaf8f3Smrg		# Recognize the canonical CPU types that are allowed with any
1179ea148d1dSmrg		# company name.
1180ea148d1dSmrg		case $cpu in
1181ea148d1dSmrg			1750a | 580 \
1182ea148d1dSmrg			| a29k \
1183ea148d1dSmrg			| aarch64 | aarch64_be \
1184ea148d1dSmrg			| abacus \
1185ea148d1dSmrg			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
1186ea148d1dSmrg			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
1187ea148d1dSmrg			| alphapca5[67] | alpha64pca5[67] \
1188ea148d1dSmrg			| am33_2.0 \
1189fbfaf8f3Smrg			| amdgcn \
1190fbfaf8f3Smrg			| arc | arceb | arc32 | arc64 \
1191fbfaf8f3Smrg			| arm | arm[lb]e | arme[lb] | armv* \
1192ea148d1dSmrg			| avr | avr32 \
1193ea148d1dSmrg			| asmjs \
1194ea148d1dSmrg			| ba \
1195ea148d1dSmrg			| be32 | be64 \
1196fbfaf8f3Smrg			| bfin | bpf | bs2000 \
1197ea148d1dSmrg			| c[123]* | c30 | [cjt]90 | c4x \
1198ea148d1dSmrg			| c8051 | clipper | craynv | csky | cydra \
1199ea148d1dSmrg			| d10v | d30v | dlx | dsp16xx \
1200ea148d1dSmrg			| e2k | elxsi | epiphany \
1201ea148d1dSmrg			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
1202ea148d1dSmrg			| h8300 | h8500 \
1203ea148d1dSmrg			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
1204ea148d1dSmrg			| hexagon \
1205ea148d1dSmrg			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
1206ea148d1dSmrg			| ip2k | iq2000 \
1207ea148d1dSmrg			| k1om \
1208ea148d1dSmrg			| le32 | le64 \
1209ea148d1dSmrg			| lm32 \
1210fbfaf8f3Smrg			| loongarch32 | loongarch64 \
1211ea148d1dSmrg			| m32c | m32r | m32rle \
1212fbfaf8f3Smrg			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
1213fbfaf8f3Smrg			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
1214ea148d1dSmrg			| m88110 | m88k | maxq | mb | mcore | mep | metag \
1215ea148d1dSmrg			| microblaze | microblazeel \
1216ea148d1dSmrg			| mips | mipsbe | mipseb | mipsel | mipsle \
1217ea148d1dSmrg			| mips16 \
1218fbfaf8f3Smrg			| mips64 | mips64eb | mips64el \
1219ea148d1dSmrg			| mips64octeon | mips64octeonel \
1220ea148d1dSmrg			| mips64orion | mips64orionel \
1221ea148d1dSmrg			| mips64r5900 | mips64r5900el \
1222ea148d1dSmrg			| mips64vr | mips64vrel \
1223ea148d1dSmrg			| mips64vr4100 | mips64vr4100el \
1224ea148d1dSmrg			| mips64vr4300 | mips64vr4300el \
1225ea148d1dSmrg			| mips64vr5000 | mips64vr5000el \
1226ea148d1dSmrg			| mips64vr5900 | mips64vr5900el \
1227ea148d1dSmrg			| mipsisa32 | mipsisa32el \
1228ea148d1dSmrg			| mipsisa32r2 | mipsisa32r2el \
1229fbfaf8f3Smrg			| mipsisa32r3 | mipsisa32r3el \
1230fbfaf8f3Smrg			| mipsisa32r5 | mipsisa32r5el \
1231ea148d1dSmrg			| mipsisa32r6 | mipsisa32r6el \
1232ea148d1dSmrg			| mipsisa64 | mipsisa64el \
1233ea148d1dSmrg			| mipsisa64r2 | mipsisa64r2el \
1234fbfaf8f3Smrg			| mipsisa64r3 | mipsisa64r3el \
1235fbfaf8f3Smrg			| mipsisa64r5 | mipsisa64r5el \
1236ea148d1dSmrg			| mipsisa64r6 | mipsisa64r6el \
1237ea148d1dSmrg			| mipsisa64sb1 | mipsisa64sb1el \
1238ea148d1dSmrg			| mipsisa64sr71k | mipsisa64sr71kel \
1239ea148d1dSmrg			| mipsr5900 | mipsr5900el \
1240ea148d1dSmrg			| mipstx39 | mipstx39el \
1241ea148d1dSmrg			| mmix \
1242ea148d1dSmrg			| mn10200 | mn10300 \
1243ea148d1dSmrg			| moxie \
1244ea148d1dSmrg			| mt \
1245ea148d1dSmrg			| msp430 \
1246ea148d1dSmrg			| nds32 | nds32le | nds32be \
1247ea148d1dSmrg			| nfp \
1248ea148d1dSmrg			| nios | nios2 | nios2eb | nios2el \
1249fbfaf8f3Smrg			| none | np1 | ns16k | ns32k | nvptx \
1250ea148d1dSmrg			| open8 \
1251ea148d1dSmrg			| or1k* \
1252ea148d1dSmrg			| or32 \
1253ea148d1dSmrg			| orion \
1254fbfaf8f3Smrg			| picochip \
1255ea148d1dSmrg			| pdp10 | pdp11 | pj | pjl | pn | power \
1256ea148d1dSmrg			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
1257ea148d1dSmrg			| pru \
1258ea148d1dSmrg			| pyramid \
1259fbfaf8f3Smrg			| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
1260ea148d1dSmrg			| rl78 | romp | rs6000 | rx \
1261fbfaf8f3Smrg			| s390 | s390x \
1262ea148d1dSmrg			| score \
1263fbfaf8f3Smrg			| sh | shl \
1264fbfaf8f3Smrg			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
1265ea148d1dSmrg			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
1266ea148d1dSmrg			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
1267ea148d1dSmrg			| sparclite \
1268ea148d1dSmrg			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
1269ea148d1dSmrg			| spu \
1270ea148d1dSmrg			| tahoe \
1271fbfaf8f3Smrg			| thumbv7* \
1272ea148d1dSmrg			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
1273ea148d1dSmrg			| tron \
1274ea148d1dSmrg			| ubicom32 \
1275fbfaf8f3Smrg			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
1276ea148d1dSmrg			| vax \
1277ea148d1dSmrg			| visium \
1278fbfaf8f3Smrg			| w65 \
1279fbfaf8f3Smrg			| wasm32 | wasm64 \
1280ea148d1dSmrg			| we32k \
1281ea148d1dSmrg			| x86 | x86_64 | xc16x | xgate | xps100 \
1282ea148d1dSmrg			| xstormy16 | xtensa* \
1283ea148d1dSmrg			| ymp \
1284ea148d1dSmrg			| z8k | z80)
1285ea148d1dSmrg				;;
1286ea148d1dSmrg
1287ea148d1dSmrg			*)
1288ea148d1dSmrg				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
1289ea148d1dSmrg				exit 1
1290ea148d1dSmrg				;;
1291ea148d1dSmrg		esac
129243f32c10Smrg		;;
129343f32c10Smrgesac
129443f32c10Smrg
129543f32c10Smrg# Here we canonicalize certain aliases for manufacturers.
1296ea148d1dSmrgcase $vendor in
1297ea148d1dSmrg	digital*)
1298ea148d1dSmrg		vendor=dec
129943f32c10Smrg		;;
1300ea148d1dSmrg	commodore*)
1301ea148d1dSmrg		vendor=cbm
130243f32c10Smrg		;;
130343f32c10Smrg	*)
130443f32c10Smrg		;;
130543f32c10Smrgesac
130643f32c10Smrg
130743f32c10Smrg# Decode manufacturer-specific aliases for certain operating systems.
130843f32c10Smrg
1309fbfaf8f3Smrgif test x$basic_os != x
131043f32c10Smrgthen
1311fbfaf8f3Smrg
1312fbfaf8f3Smrg# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
1313fbfaf8f3Smrg# set os.
1314fbfaf8f3Smrgcase $basic_os in
1315fbfaf8f3Smrg	gnu/linux*)
1316fbfaf8f3Smrg		kernel=linux
1317fbfaf8f3Smrg		os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
1318fbfaf8f3Smrg		;;
1319fbfaf8f3Smrg	os2-emx)
1320fbfaf8f3Smrg		kernel=os2
1321fbfaf8f3Smrg		os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
1322fbfaf8f3Smrg		;;
1323fbfaf8f3Smrg	nto-qnx*)
1324fbfaf8f3Smrg		kernel=nto
1325fbfaf8f3Smrg		os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
1326fbfaf8f3Smrg		;;
1327fbfaf8f3Smrg	*-*)
1328fbfaf8f3Smrg		# shellcheck disable=SC2162
1329fbfaf8f3Smrg		saved_IFS=$IFS
1330fbfaf8f3Smrg		IFS="-" read kernel os <<EOF
1331fbfaf8f3Smrg$basic_os
1332fbfaf8f3SmrgEOF
1333fbfaf8f3Smrg		IFS=$saved_IFS
1334fbfaf8f3Smrg		;;
1335fbfaf8f3Smrg	# Default OS when just kernel was specified
1336fbfaf8f3Smrg	nto*)
1337fbfaf8f3Smrg		kernel=nto
1338fbfaf8f3Smrg		os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
1339fbfaf8f3Smrg		;;
1340fbfaf8f3Smrg	linux*)
1341fbfaf8f3Smrg		kernel=linux
1342fbfaf8f3Smrg		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
1343fbfaf8f3Smrg		;;
1344fbfaf8f3Smrg	managarm*)
1345fbfaf8f3Smrg		kernel=managarm
1346fbfaf8f3Smrg		os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
1347fbfaf8f3Smrg		;;
1348fbfaf8f3Smrg	*)
1349fbfaf8f3Smrg		kernel=
1350fbfaf8f3Smrg		os=$basic_os
1351fbfaf8f3Smrg		;;
1352fbfaf8f3Smrgesac
1353fbfaf8f3Smrg
1354fbfaf8f3Smrg# Now, normalize the OS (knowing we just have one component, it's not a kernel,
1355fbfaf8f3Smrg# etc.)
135643f32c10Smrgcase $os in
1357ea148d1dSmrg	# First match some system type aliases that might get confused
1358ea148d1dSmrg	# with valid system types.
1359ea148d1dSmrg	# solaris* is a basic system type, with this one exception.
1360ea148d1dSmrg	auroraux)
1361ea148d1dSmrg		os=auroraux
13626ef05171Smrg		;;
1363ea148d1dSmrg	bluegene*)
1364ea148d1dSmrg		os=cnk
136543f32c10Smrg		;;
1366ea148d1dSmrg	solaris1 | solaris1.*)
1367fbfaf8f3Smrg		os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
136843f32c10Smrg		;;
1369ea148d1dSmrg	solaris)
1370ea148d1dSmrg		os=solaris2
137143f32c10Smrg		;;
1372ea148d1dSmrg	unixware*)
1373ea148d1dSmrg		os=sysv4.2uw
137443f32c10Smrg		;;
1375ea148d1dSmrg	# es1800 is here to avoid being matched by es* (a different OS)
1376ea148d1dSmrg	es1800*)
1377ea148d1dSmrg		os=ose
1378ea148d1dSmrg		;;
1379ea148d1dSmrg	# Some version numbers need modification
1380ea148d1dSmrg	chorusos*)
1381ea148d1dSmrg		os=chorusos
1382ea148d1dSmrg		;;
1383ea148d1dSmrg	isc)
1384ea148d1dSmrg		os=isc2.2
1385ea148d1dSmrg		;;
1386ea148d1dSmrg	sco6)
1387ea148d1dSmrg		os=sco5v6
1388ea148d1dSmrg		;;
1389ea148d1dSmrg	sco5)
1390ea148d1dSmrg		os=sco3.2v5
1391ea148d1dSmrg		;;
1392ea148d1dSmrg	sco4)
1393ea148d1dSmrg		os=sco3.2v4
1394ea148d1dSmrg		;;
1395ea148d1dSmrg	sco3.2.[4-9]*)
1396fbfaf8f3Smrg		os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
1397ea148d1dSmrg		;;
1398fbfaf8f3Smrg	sco*v* | scout)
1399ea148d1dSmrg		# Don't match below
1400ea148d1dSmrg		;;
1401ea148d1dSmrg	sco*)
1402ea148d1dSmrg		os=sco3.2v2
1403ea148d1dSmrg		;;
1404ea148d1dSmrg	psos*)
1405ea148d1dSmrg		os=psos
1406ea148d1dSmrg		;;
1407ea148d1dSmrg	qnx*)
1408fbfaf8f3Smrg		os=qnx
140943f32c10Smrg		;;
1410ea148d1dSmrg	hiux*)
1411ea148d1dSmrg		os=hiuxwe2
141243f32c10Smrg		;;
1413ea148d1dSmrg	lynx*178)
1414ea148d1dSmrg		os=lynxos178
141543f32c10Smrg		;;
1416ea148d1dSmrg	lynx*5)
1417ea148d1dSmrg		os=lynxos5
141843f32c10Smrg		;;
1419fbfaf8f3Smrg	lynxos*)
1420fbfaf8f3Smrg		# don't get caught up in next wildcard
1421fbfaf8f3Smrg		;;
1422ea148d1dSmrg	lynx*)
1423ea148d1dSmrg		os=lynxos
142443f32c10Smrg		;;
1425fbfaf8f3Smrg	mac[0-9]*)
1426ea148d1dSmrg		os=`echo "$os" | sed -e 's|mac|macos|'`
142743f32c10Smrg		;;
1428ea148d1dSmrg	opened*)
1429ea148d1dSmrg		os=openedition
143043f32c10Smrg		;;
1431ea148d1dSmrg	os400*)
1432ea148d1dSmrg		os=os400
143343f32c10Smrg		;;
1434ea148d1dSmrg	sunos5*)
1435ea148d1dSmrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
143643f32c10Smrg		;;
1437ea148d1dSmrg	sunos6*)
1438ea148d1dSmrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
143943f32c10Smrg		;;
1440ea148d1dSmrg	wince*)
1441ea148d1dSmrg		os=wince
144243f32c10Smrg		;;
1443ea148d1dSmrg	utek*)
1444ea148d1dSmrg		os=bsd
144543f32c10Smrg		;;
1446ea148d1dSmrg	dynix*)
1447ea148d1dSmrg		os=bsd
144843f32c10Smrg		;;
1449ea148d1dSmrg	acis*)
1450ea148d1dSmrg		os=aos
145143f32c10Smrg		;;
1452ea148d1dSmrg	atheos*)
1453ea148d1dSmrg		os=atheos
145443f32c10Smrg		;;
1455ea148d1dSmrg	syllable*)
1456ea148d1dSmrg		os=syllable
1457ea148d1dSmrg		;;
1458ea148d1dSmrg	386bsd)
1459ea148d1dSmrg		os=bsd
146043f32c10Smrg		;;
1461ea148d1dSmrg	ctix* | uts*)
1462ea148d1dSmrg		os=sysv
146343f32c10Smrg		;;
1464ea148d1dSmrg	nova*)
1465ea148d1dSmrg		os=rtmk-nova
146643f32c10Smrg		;;
1467ea148d1dSmrg	ns2)
1468ea148d1dSmrg		os=nextstep2
1469ea148d1dSmrg		;;
147043f32c10Smrg	# Preserve the version number of sinix5.
1471ea148d1dSmrg	sinix5.*)
1472fbfaf8f3Smrg		os=`echo "$os" | sed -e 's|sinix|sysv|'`
147343f32c10Smrg		;;
1474ea148d1dSmrg	sinix*)
1475ea148d1dSmrg		os=sysv4
147643f32c10Smrg		;;
1477ea148d1dSmrg	tpf*)
1478ea148d1dSmrg		os=tpf
147943f32c10Smrg		;;
1480ea148d1dSmrg	triton*)
1481ea148d1dSmrg		os=sysv3
148243f32c10Smrg		;;
1483ea148d1dSmrg	oss*)
1484ea148d1dSmrg		os=sysv3
148543f32c10Smrg		;;
1486ea148d1dSmrg	svr4*)
1487ea148d1dSmrg		os=sysv4
148843f32c10Smrg		;;
1489ea148d1dSmrg	svr3)
1490ea148d1dSmrg		os=sysv3
149143f32c10Smrg		;;
1492ea148d1dSmrg	sysvr4)
1493ea148d1dSmrg		os=sysv4
149443f32c10Smrg		;;
1495ea148d1dSmrg	ose*)
1496ea148d1dSmrg		os=ose
149743f32c10Smrg		;;
1498ea148d1dSmrg	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1499ea148d1dSmrg		os=mint
150043f32c10Smrg		;;
1501ea148d1dSmrg	dicos*)
1502ea148d1dSmrg		os=dicos
150343f32c10Smrg		;;
1504ea148d1dSmrg	pikeos*)
1505ea148d1dSmrg		# Until real need of OS specific support for
1506ea148d1dSmrg		# particular features comes up, bare metal
1507ea148d1dSmrg		# configurations are quite functional.
1508ea148d1dSmrg		case $cpu in
1509ea148d1dSmrg		    arm*)
1510ea148d1dSmrg			os=eabi
1511ea148d1dSmrg			;;
1512ea148d1dSmrg		    *)
1513ea148d1dSmrg			os=elf
1514ea148d1dSmrg			;;
1515ea148d1dSmrg		esac
151643f32c10Smrg		;;
151743f32c10Smrg	*)
1518fbfaf8f3Smrg		# No normalization, but not necessarily accepted, that comes below.
151943f32c10Smrg		;;
152043f32c10Smrgesac
1521fbfaf8f3Smrg
152243f32c10Smrgelse
152343f32c10Smrg
152443f32c10Smrg# Here we handle the default operating systems that come with various machines.
152543f32c10Smrg# The value should be what the vendor currently ships out the door with their
152643f32c10Smrg# machine or put another way, the most popular os provided with the machine.
152743f32c10Smrg
152843f32c10Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
152943f32c10Smrg# "-sun"), then you have to tell the case statement up towards the top
153043f32c10Smrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
153143f32c10Smrg# will signal an error saying that MANUFACTURER isn't an operating
153243f32c10Smrg# system, and we'll never get to this point.
153343f32c10Smrg
1534fbfaf8f3Smrgkernel=
1535ea148d1dSmrgcase $cpu-$vendor in
15366ef05171Smrg	score-*)
1537ea148d1dSmrg		os=elf
153843f32c10Smrg		;;
15396ef05171Smrg	spu-*)
1540ea148d1dSmrg		os=elf
154143f32c10Smrg		;;
154243f32c10Smrg	*-acorn)
1543ea148d1dSmrg		os=riscix1.2
154443f32c10Smrg		;;
154543f32c10Smrg	arm*-rebel)
1546fbfaf8f3Smrg		kernel=linux
1547fbfaf8f3Smrg		os=gnu
154843f32c10Smrg		;;
154943f32c10Smrg	arm*-semi)
1550ea148d1dSmrg		os=aout
155143f32c10Smrg		;;
15526ef05171Smrg	c4x-* | tic4x-*)
1553ea148d1dSmrg		os=coff
15546ef05171Smrg		;;
15556ef05171Smrg	c8051-*)
1556ea148d1dSmrg		os=elf
1557ea148d1dSmrg		;;
1558ea148d1dSmrg	clipper-intergraph)
1559ea148d1dSmrg		os=clix
15606ef05171Smrg		;;
15616ef05171Smrg	hexagon-*)
1562ea148d1dSmrg		os=elf
15636ef05171Smrg		;;
15646ef05171Smrg	tic54x-*)
1565ea148d1dSmrg		os=coff
15666ef05171Smrg		;;
15676ef05171Smrg	tic55x-*)
1568ea148d1dSmrg		os=coff
15696ef05171Smrg		;;
15706ef05171Smrg	tic6x-*)
1571ea148d1dSmrg		os=coff
157243f32c10Smrg		;;
157343f32c10Smrg	# This must come before the *-dec entry.
157443f32c10Smrg	pdp10-*)
1575ea148d1dSmrg		os=tops20
157643f32c10Smrg		;;
157743f32c10Smrg	pdp11-*)
1578ea148d1dSmrg		os=none
157943f32c10Smrg		;;
158043f32c10Smrg	*-dec | vax-*)
1581ea148d1dSmrg		os=ultrix4.2
158243f32c10Smrg		;;
158343f32c10Smrg	m68*-apollo)
1584ea148d1dSmrg		os=domain
158543f32c10Smrg		;;
158643f32c10Smrg	i386-sun)
1587ea148d1dSmrg		os=sunos4.0.2
158843f32c10Smrg		;;
158943f32c10Smrg	m68000-sun)
1590ea148d1dSmrg		os=sunos3
159143f32c10Smrg		;;
159243f32c10Smrg	m68*-cisco)
1593ea148d1dSmrg		os=aout
159443f32c10Smrg		;;
15956ef05171Smrg	mep-*)
1596ea148d1dSmrg		os=elf
159743f32c10Smrg		;;
159843f32c10Smrg	mips*-cisco)
1599ea148d1dSmrg		os=elf
160043f32c10Smrg		;;
160143f32c10Smrg	mips*-*)
1602ea148d1dSmrg		os=elf
160343f32c10Smrg		;;
160443f32c10Smrg	or32-*)
1605ea148d1dSmrg		os=coff
160643f32c10Smrg		;;
160743f32c10Smrg	*-tti)	# must be before sparc entry or we get the wrong os.
1608ea148d1dSmrg		os=sysv3
160943f32c10Smrg		;;
161043f32c10Smrg	sparc-* | *-sun)
1611ea148d1dSmrg		os=sunos4.1.1
161243f32c10Smrg		;;
16136ef05171Smrg	pru-*)
1614ea148d1dSmrg		os=elf
16156ef05171Smrg		;;
161643f32c10Smrg	*-be)
1617ea148d1dSmrg		os=beos
161843f32c10Smrg		;;
161943f32c10Smrg	*-ibm)
1620ea148d1dSmrg		os=aix
162143f32c10Smrg		;;
16226ef05171Smrg	*-knuth)
1623ea148d1dSmrg		os=mmixware
162443f32c10Smrg		;;
162543f32c10Smrg	*-wec)
1626ea148d1dSmrg		os=proelf
162743f32c10Smrg		;;
162843f32c10Smrg	*-winbond)
1629ea148d1dSmrg		os=proelf
163043f32c10Smrg		;;
163143f32c10Smrg	*-oki)
1632ea148d1dSmrg		os=proelf
163343f32c10Smrg		;;
163443f32c10Smrg	*-hp)
1635ea148d1dSmrg		os=hpux
163643f32c10Smrg		;;
163743f32c10Smrg	*-hitachi)
1638ea148d1dSmrg		os=hiux
163943f32c10Smrg		;;
164043f32c10Smrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1641ea148d1dSmrg		os=sysv
164243f32c10Smrg		;;
164343f32c10Smrg	*-cbm)
1644ea148d1dSmrg		os=amigaos
164543f32c10Smrg		;;
164643f32c10Smrg	*-dg)
1647ea148d1dSmrg		os=dgux
164843f32c10Smrg		;;
164943f32c10Smrg	*-dolphin)
1650ea148d1dSmrg		os=sysv3
165143f32c10Smrg		;;
165243f32c10Smrg	m68k-ccur)
1653ea148d1dSmrg		os=rtu
165443f32c10Smrg		;;
165543f32c10Smrg	m88k-omron*)
1656ea148d1dSmrg		os=luna
165743f32c10Smrg		;;
1658ea148d1dSmrg	*-next)
1659ea148d1dSmrg		os=nextstep
166043f32c10Smrg		;;
166143f32c10Smrg	*-sequent)
1662ea148d1dSmrg		os=ptx
166343f32c10Smrg		;;
166443f32c10Smrg	*-crds)
1665ea148d1dSmrg		os=unos
166643f32c10Smrg		;;
166743f32c10Smrg	*-ns)
1668ea148d1dSmrg		os=genix
166943f32c10Smrg		;;
167043f32c10Smrg	i370-*)
1671ea148d1dSmrg		os=mvs
167243f32c10Smrg		;;
167343f32c10Smrg	*-gould)
1674ea148d1dSmrg		os=sysv
167543f32c10Smrg		;;
167643f32c10Smrg	*-highlevel)
1677ea148d1dSmrg		os=bsd
167843f32c10Smrg		;;
167943f32c10Smrg	*-encore)
1680ea148d1dSmrg		os=bsd
168143f32c10Smrg		;;
168243f32c10Smrg	*-sgi)
1683ea148d1dSmrg		os=irix
168443f32c10Smrg		;;
168543f32c10Smrg	*-siemens)
1686ea148d1dSmrg		os=sysv4
168743f32c10Smrg		;;
168843f32c10Smrg	*-masscomp)
1689ea148d1dSmrg		os=rtu
169043f32c10Smrg		;;
169143f32c10Smrg	f30[01]-fujitsu | f700-fujitsu)
1692ea148d1dSmrg		os=uxpv
169343f32c10Smrg		;;
169443f32c10Smrg	*-rom68k)
1695ea148d1dSmrg		os=coff
169643f32c10Smrg		;;
169743f32c10Smrg	*-*bug)
1698ea148d1dSmrg		os=coff
169943f32c10Smrg		;;
170043f32c10Smrg	*-apple)
1701ea148d1dSmrg		os=macos
170243f32c10Smrg		;;
170343f32c10Smrg	*-atari*)
1704ea148d1dSmrg		os=mint
1705ea148d1dSmrg		;;
1706ea148d1dSmrg	*-wrs)
1707ea148d1dSmrg		os=vxworks
170843f32c10Smrg		;;
170943f32c10Smrg	*)
1710ea148d1dSmrg		os=none
171143f32c10Smrg		;;
171243f32c10Smrgesac
1713fbfaf8f3Smrg
171443f32c10Smrgfi
171543f32c10Smrg
1716fbfaf8f3Smrg# Now, validate our (potentially fixed-up) OS.
1717fbfaf8f3Smrgcase $os in
1718fbfaf8f3Smrg	# Sometimes we do "kernel-libc", so those need to count as OSes.
1719fbfaf8f3Smrg	musl* | newlib* | relibc* | uclibc*)
1720fbfaf8f3Smrg		;;
1721fbfaf8f3Smrg	# Likewise for "kernel-abi"
1722fbfaf8f3Smrg	eabi* | gnueabi*)
1723fbfaf8f3Smrg		;;
1724fbfaf8f3Smrg	# VxWorks passes extra cpu info in the 4th filed.
1725fbfaf8f3Smrg	simlinux | simwindows | spe)
1726fbfaf8f3Smrg		;;
1727fbfaf8f3Smrg	# Now accept the basic system types.
1728fbfaf8f3Smrg	# The portable systems comes first.
1729fbfaf8f3Smrg	# Each alternative MUST end in a * to match a version number.
1730fbfaf8f3Smrg	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
1731fbfaf8f3Smrg	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
1732fbfaf8f3Smrg	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
1733fbfaf8f3Smrg	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
1734fbfaf8f3Smrg	     | hiux* | abug | nacl* | netware* | windows* \
1735fbfaf8f3Smrg	     | os9* | macos* | osx* | ios* \
1736fbfaf8f3Smrg	     | mpw* | magic* | mmixware* | mon960* | lnews* \
1737fbfaf8f3Smrg	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
1738fbfaf8f3Smrg	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
1739fbfaf8f3Smrg	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
1740fbfaf8f3Smrg	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
1741fbfaf8f3Smrg	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
1742fbfaf8f3Smrg	     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
1743fbfaf8f3Smrg	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
1744fbfaf8f3Smrg	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
1745fbfaf8f3Smrg	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
1746fbfaf8f3Smrg	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
1747fbfaf8f3Smrg	     | chorusrdb* | cegcc* | glidix* | serenity* \
1748fbfaf8f3Smrg	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
1749fbfaf8f3Smrg	     | midipix* | mingw32* | mingw64* | mint* \
1750fbfaf8f3Smrg	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
1751fbfaf8f3Smrg	     | interix* | uwin* | mks* | rhapsody* | darwin* \
1752fbfaf8f3Smrg	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
1753fbfaf8f3Smrg	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
1754fbfaf8f3Smrg	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
1755fbfaf8f3Smrg	     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
1756fbfaf8f3Smrg	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
1757fbfaf8f3Smrg	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
1758fbfaf8f3Smrg	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
1759fbfaf8f3Smrg	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
1760fbfaf8f3Smrg	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
1761fbfaf8f3Smrg	     | fiwix* | mlibc* )
1762fbfaf8f3Smrg		;;
1763fbfaf8f3Smrg	# This one is extra strict with allowed versions
1764fbfaf8f3Smrg	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
1765fbfaf8f3Smrg		# Don't forget version if it is 3.2v4 or newer.
1766fbfaf8f3Smrg		;;
1767fbfaf8f3Smrg	none)
1768fbfaf8f3Smrg		;;
1769fbfaf8f3Smrg	kernel* )
1770fbfaf8f3Smrg		# Restricted further below
1771fbfaf8f3Smrg		;;
1772fbfaf8f3Smrg	*)
1773fbfaf8f3Smrg		echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
1774fbfaf8f3Smrg		exit 1
1775fbfaf8f3Smrg		;;
1776fbfaf8f3Smrgesac
1777fbfaf8f3Smrg
1778fbfaf8f3Smrg# As a final step for OS-related things, validate the OS-kernel combination
1779fbfaf8f3Smrg# (given a valid OS), if there is a kernel.
1780fbfaf8f3Smrgcase $kernel-$os in
1781fbfaf8f3Smrg	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
1782fbfaf8f3Smrg		   | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
1783fbfaf8f3Smrg		;;
1784fbfaf8f3Smrg	uclinux-uclibc* )
1785fbfaf8f3Smrg		;;
1786fbfaf8f3Smrg	managarm-mlibc* | managarm-kernel* )
1787fbfaf8f3Smrg		;;
1788fbfaf8f3Smrg	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
1789fbfaf8f3Smrg		# These are just libc implementations, not actual OSes, and thus
1790fbfaf8f3Smrg		# require a kernel.
1791fbfaf8f3Smrg		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
1792fbfaf8f3Smrg		exit 1
1793fbfaf8f3Smrg		;;
1794fbfaf8f3Smrg	-kernel* )
1795fbfaf8f3Smrg		echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
1796fbfaf8f3Smrg		exit 1
1797fbfaf8f3Smrg		;;
1798fbfaf8f3Smrg	*-kernel* )
1799fbfaf8f3Smrg		echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
1800fbfaf8f3Smrg		exit 1
1801fbfaf8f3Smrg		;;
1802fbfaf8f3Smrg	kfreebsd*-gnu* | kopensolaris*-gnu*)
1803fbfaf8f3Smrg		;;
1804fbfaf8f3Smrg	vxworks-simlinux | vxworks-simwindows | vxworks-spe)
1805fbfaf8f3Smrg		;;
1806fbfaf8f3Smrg	nto-qnx*)
1807fbfaf8f3Smrg		;;
1808fbfaf8f3Smrg	os2-emx)
1809fbfaf8f3Smrg		;;
1810fbfaf8f3Smrg	*-eabi* | *-gnueabi*)
1811fbfaf8f3Smrg		;;
1812fbfaf8f3Smrg	-*)
1813fbfaf8f3Smrg		# Blank kernel with real OS is always fine.
1814fbfaf8f3Smrg		;;
1815fbfaf8f3Smrg	*-*)
1816fbfaf8f3Smrg		echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
1817fbfaf8f3Smrg		exit 1
1818fbfaf8f3Smrg		;;
1819fbfaf8f3Smrgesac
1820fbfaf8f3Smrg
182143f32c10Smrg# Here we handle the case where we know the os, and the CPU type, but not the
182243f32c10Smrg# manufacturer.  We pick the logical manufacturer.
1823ea148d1dSmrgcase $vendor in
1824ea148d1dSmrg	unknown)
1825fbfaf8f3Smrg		case $cpu-$os in
1826fbfaf8f3Smrg			*-riscix*)
182743f32c10Smrg				vendor=acorn
182843f32c10Smrg				;;
1829fbfaf8f3Smrg			*-sunos*)
183043f32c10Smrg				vendor=sun
183143f32c10Smrg				;;
1832fbfaf8f3Smrg			*-cnk* | *-aix*)
183343f32c10Smrg				vendor=ibm
183443f32c10Smrg				;;
1835fbfaf8f3Smrg			*-beos*)
183643f32c10Smrg				vendor=be
183743f32c10Smrg				;;
1838fbfaf8f3Smrg			*-hpux*)
183943f32c10Smrg				vendor=hp
184043f32c10Smrg				;;
1841fbfaf8f3Smrg			*-mpeix*)
184243f32c10Smrg				vendor=hp
184343f32c10Smrg				;;
1844fbfaf8f3Smrg			*-hiux*)
184543f32c10Smrg				vendor=hitachi
184643f32c10Smrg				;;
1847fbfaf8f3Smrg			*-unos*)
184843f32c10Smrg				vendor=crds
184943f32c10Smrg				;;
1850fbfaf8f3Smrg			*-dgux*)
185143f32c10Smrg				vendor=dg
185243f32c10Smrg				;;
1853fbfaf8f3Smrg			*-luna*)
185443f32c10Smrg				vendor=omron
185543f32c10Smrg				;;
1856fbfaf8f3Smrg			*-genix*)
185743f32c10Smrg				vendor=ns
185843f32c10Smrg				;;
1859fbfaf8f3Smrg			*-clix*)
1860ea148d1dSmrg				vendor=intergraph
1861ea148d1dSmrg				;;
1862fbfaf8f3Smrg			*-mvs* | *-opened*)
1863fbfaf8f3Smrg				vendor=ibm
1864fbfaf8f3Smrg				;;
1865fbfaf8f3Smrg			*-os400*)
186643f32c10Smrg				vendor=ibm
186743f32c10Smrg				;;
1868fbfaf8f3Smrg			s390-* | s390x-*)
186943f32c10Smrg				vendor=ibm
187043f32c10Smrg				;;
1871fbfaf8f3Smrg			*-ptx*)
187243f32c10Smrg				vendor=sequent
187343f32c10Smrg				;;
1874fbfaf8f3Smrg			*-tpf*)
187543f32c10Smrg				vendor=ibm
187643f32c10Smrg				;;
1877fbfaf8f3Smrg			*-vxsim* | *-vxworks* | *-windiss*)
187843f32c10Smrg				vendor=wrs
187943f32c10Smrg				;;
1880fbfaf8f3Smrg			*-aux*)
188143f32c10Smrg				vendor=apple
188243f32c10Smrg				;;
1883fbfaf8f3Smrg			*-hms*)
188443f32c10Smrg				vendor=hitachi
188543f32c10Smrg				;;
1886fbfaf8f3Smrg			*-mpw* | *-macos*)
188743f32c10Smrg				vendor=apple
188843f32c10Smrg				;;
1889fbfaf8f3Smrg			*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
189043f32c10Smrg				vendor=atari
189143f32c10Smrg				;;
1892fbfaf8f3Smrg			*-vos*)
189343f32c10Smrg				vendor=stratus
189443f32c10Smrg				;;
189543f32c10Smrg		esac
189643f32c10Smrg		;;
189743f32c10Smrgesac
189843f32c10Smrg
1899fbfaf8f3Smrgecho "$cpu-$vendor-${kernel:+$kernel-}$os"
190043f32c10Smrgexit
190143f32c10Smrg
190243f32c10Smrg# Local variables:
1903ea148d1dSmrg# eval: (add-hook 'before-save-hook 'time-stamp)
190443f32c10Smrg# time-stamp-start: "timestamp='"
190543f32c10Smrg# time-stamp-format: "%:y-%02m-%02d"
190643f32c10Smrg# time-stamp-end: "'"
190743f32c10Smrg# End:
1908