1366095Scy#! /bin/sh
2238106Sdes# Configuration validation subroutine script.
3369939Sgit2svn#   Copyright 1992-2021 Free Software Foundation, Inc.
4238106Sdes
5369939Sgit2svntimestamp='2021-01-08'
6238106Sdes
7276605Sdes# This file is free software; you can redistribute it and/or modify it
8276605Sdes# under the terms of the GNU General Public License as published by
9276605Sdes# the Free Software Foundation; either version 3 of the License, or
10238106Sdes# (at your option) any later version.
11238106Sdes#
12276605Sdes# This program is distributed in the hope that it will be useful, but
13276605Sdes# WITHOUT ANY WARRANTY; without even the implied warranty of
14276605Sdes# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15276605Sdes# General Public License for more details.
16238106Sdes#
17238106Sdes# You should have received a copy of the GNU General Public License
18366095Scy# along with this program; if not, see <https://www.gnu.org/licenses/>.
19238106Sdes#
20238106Sdes# As a special exception to the GNU General Public License, if you
21238106Sdes# distribute this file as part of a program that contains a
22238106Sdes# configuration script generated by Autoconf, you may include it under
23276605Sdes# the same distribution terms that you use for the rest of that
24276605Sdes# program.  This Exception is an additional permission under section 7
25276605Sdes# of the GNU General Public License, version 3 ("GPLv3").
26238106Sdes
27238106Sdes
28356345Scy# Please send patches to <config-patches@gnu.org>.
29238106Sdes#
30238106Sdes# Configuration subroutine to validate and canonicalize a configuration type.
31238106Sdes# Supply the specified configuration type as an argument.
32238106Sdes# If it is invalid, we print an error message on stderr and exit with code 1.
33238106Sdes# Otherwise, we print the canonical config type on stdout and succeed.
34238106Sdes
35238106Sdes# You can get the latest version of this script from:
36368693Scy# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
37238106Sdes
38238106Sdes# This file is supposed to be the same for all GNU packages
39238106Sdes# and recognize all the CPU types, system types and aliases
40238106Sdes# that are meaningful with *any* GNU software.
41238106Sdes# Each package is responsible for reporting which valid configurations
42238106Sdes# it does not support.  The user should be able to distinguish
43238106Sdes# a failure to support a valid configuration from a meaningless
44238106Sdes# configuration.
45238106Sdes
46238106Sdes# The goal of this file is to map all the various variations of a given
47238106Sdes# machine specification into a single specification in the form:
48238106Sdes#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
49238106Sdes# or in some cases, the newer four-part form:
50238106Sdes#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
51238106Sdes# It is wrong to echo any other type of specification.
52238106Sdes
53368693Scyme=$(echo "$0" | sed -e 's,.*/,,')
54238106Sdes
55238106Sdesusage="\
56356345ScyUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
57238106Sdes
58238106SdesCanonicalize a configuration name.
59238106Sdes
60366095ScyOptions:
61238106Sdes  -h, --help         print this help, then exit
62238106Sdes  -t, --time-stamp   print date of last modification, then exit
63238106Sdes  -v, --version      print version number, then exit
64238106Sdes
65238106SdesReport bugs and patches to <config-patches@gnu.org>."
66238106Sdes
67238106Sdesversion="\
68238106SdesGNU config.sub ($timestamp)
69238106Sdes
70369939Sgit2svnCopyright 1992-2021 Free Software Foundation, Inc.
71238106Sdes
72238106SdesThis is free software; see the source for copying conditions.  There is NO
73238106Sdeswarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
74238106Sdes
75238106Sdeshelp="
76238106SdesTry \`$me --help' for more information."
77238106Sdes
78238106Sdes# Parse command line
79238106Sdeswhile test $# -gt 0 ; do
80238106Sdes  case $1 in
81238106Sdes    --time-stamp | --time* | -t )
82238106Sdes       echo "$timestamp" ; exit ;;
83238106Sdes    --version | -v )
84238106Sdes       echo "$version" ; exit ;;
85238106Sdes    --help | --h* | -h )
86238106Sdes       echo "$usage"; exit ;;
87238106Sdes    -- )     # Stop option processing
88238106Sdes       shift; break ;;
89238106Sdes    - )	# Use stdin as input.
90238106Sdes       break ;;
91238106Sdes    -* )
92366095Scy       echo "$me: invalid option $1$help" >&2
93238106Sdes       exit 1 ;;
94238106Sdes
95238106Sdes    *local*)
96238106Sdes       # First pass through any local machine types.
97366095Scy       echo "$1"
98238106Sdes       exit ;;
99238106Sdes
100238106Sdes    * )
101238106Sdes       break ;;
102238106Sdes  esac
103238106Sdesdone
104238106Sdes
105238106Sdescase $# in
106238106Sdes 0) echo "$me: missing argument$help" >&2
107238106Sdes    exit 1;;
108238106Sdes 1) ;;
109238106Sdes *) echo "$me: too many arguments$help" >&2
110238106Sdes    exit 1;;
111238106Sdesesac
112238106Sdes
113366095Scy# Split fields of configuration type
114366095Scy# shellcheck disable=SC2162
115366095ScyIFS="-" read field1 field2 field3 field4 <<EOF
116366095Scy$1
117366095ScyEOF
118238106Sdes
119366095Scy# Separate into logical components for further validation
120366095Scycase $1 in
121366095Scy	*-*-*-*-*)
122366095Scy		echo Invalid configuration \`"$1"\': more than four components >&2
123366095Scy		exit 1
124238106Sdes		;;
125366095Scy	*-*-*-*)
126366095Scy		basic_machine=$field1-$field2
127366095Scy		basic_os=$field3-$field4
128238106Sdes		;;
129366095Scy	*-*-*)
130366095Scy		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
131366095Scy		# parts
132366095Scy		maybe_os=$field2-$field3
133366095Scy		case $maybe_os in
134366095Scy			nto-qnx* | linux-* | uclinux-uclibc* \
135366095Scy			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
136366095Scy			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
137366095Scy			| storm-chaos* | os2-emx* | rtmk-nova*)
138366095Scy				basic_machine=$field1
139366095Scy				basic_os=$maybe_os
140366095Scy				;;
141366095Scy			android-linux)
142366095Scy				basic_machine=$field1-unknown
143366095Scy				basic_os=linux-android
144366095Scy				;;
145366095Scy			*)
146366095Scy				basic_machine=$field1-$field2
147366095Scy				basic_os=$field3
148366095Scy				;;
149366095Scy		esac
150238106Sdes		;;
151366095Scy	*-*)
152366095Scy		# A lone config we happen to match not fitting any pattern
153366095Scy		case $field1-$field2 in
154366095Scy			decstation-3100)
155366095Scy				basic_machine=mips-dec
156366095Scy				basic_os=
157366095Scy				;;
158366095Scy			*-*)
159366095Scy				# Second component is usually, but not always the OS
160366095Scy				case $field2 in
161366095Scy					# Prevent following clause from handling this valid os
162366095Scy					sun*os*)
163366095Scy						basic_machine=$field1
164366095Scy						basic_os=$field2
165366095Scy						;;
166366095Scy					# Manufacturers
167366095Scy					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
168366095Scy					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
169366095Scy					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
170366095Scy					| convergent* | ncr* | news | 32* | 3600* | 3100* \
171366095Scy					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
172366095Scy					| ultra | tti* | harris | dolphin | highlevel | gould \
173366095Scy					| cbm | ns | masscomp | apple | axis | knuth | cray \
174366095Scy					| microblaze* | sim | cisco \
175366095Scy					| oki | wec | wrs | winbond)
176366095Scy						basic_machine=$field1-$field2
177366095Scy						basic_os=
178366095Scy						;;
179366095Scy					*)
180366095Scy						basic_machine=$field1
181366095Scy						basic_os=$field2
182366095Scy						;;
183366095Scy				esac
184366095Scy			;;
185366095Scy		esac
186238106Sdes		;;
187366095Scy	*)
188366095Scy		# Convert single-component short-hands not valid as part of
189366095Scy		# multi-component configurations.
190366095Scy		case $field1 in
191366095Scy			386bsd)
192366095Scy				basic_machine=i386-pc
193366095Scy				basic_os=bsd
194366095Scy				;;
195366095Scy			a29khif)
196366095Scy				basic_machine=a29k-amd
197366095Scy				basic_os=udi
198366095Scy				;;
199366095Scy			adobe68k)
200366095Scy				basic_machine=m68010-adobe
201366095Scy				basic_os=scout
202366095Scy				;;
203366095Scy			alliant)
204366095Scy				basic_machine=fx80-alliant
205366095Scy				basic_os=
206366095Scy				;;
207366095Scy			altos | altos3068)
208366095Scy				basic_machine=m68k-altos
209366095Scy				basic_os=
210366095Scy				;;
211366095Scy			am29k)
212366095Scy				basic_machine=a29k-none
213366095Scy				basic_os=bsd
214366095Scy				;;
215366095Scy			amdahl)
216366095Scy				basic_machine=580-amdahl
217366095Scy				basic_os=sysv
218366095Scy				;;
219366095Scy			amiga)
220366095Scy				basic_machine=m68k-unknown
221366095Scy				basic_os=
222366095Scy				;;
223366095Scy			amigaos | amigados)
224366095Scy				basic_machine=m68k-unknown
225366095Scy				basic_os=amigaos
226366095Scy				;;
227366095Scy			amigaunix | amix)
228366095Scy				basic_machine=m68k-unknown
229366095Scy				basic_os=sysv4
230366095Scy				;;
231366095Scy			apollo68)
232366095Scy				basic_machine=m68k-apollo
233366095Scy				basic_os=sysv
234366095Scy				;;
235366095Scy			apollo68bsd)
236366095Scy				basic_machine=m68k-apollo
237366095Scy				basic_os=bsd
238366095Scy				;;
239366095Scy			aros)
240366095Scy				basic_machine=i386-pc
241366095Scy				basic_os=aros
242366095Scy				;;
243366095Scy			aux)
244366095Scy				basic_machine=m68k-apple
245366095Scy				basic_os=aux
246366095Scy				;;
247366095Scy			balance)
248366095Scy				basic_machine=ns32k-sequent
249366095Scy				basic_os=dynix
250366095Scy				;;
251366095Scy			blackfin)
252366095Scy				basic_machine=bfin-unknown
253366095Scy				basic_os=linux
254366095Scy				;;
255366095Scy			cegcc)
256366095Scy				basic_machine=arm-unknown
257366095Scy				basic_os=cegcc
258366095Scy				;;
259366095Scy			convex-c1)
260366095Scy				basic_machine=c1-convex
261366095Scy				basic_os=bsd
262366095Scy				;;
263366095Scy			convex-c2)
264366095Scy				basic_machine=c2-convex
265366095Scy				basic_os=bsd
266366095Scy				;;
267366095Scy			convex-c32)
268366095Scy				basic_machine=c32-convex
269366095Scy				basic_os=bsd
270366095Scy				;;
271366095Scy			convex-c34)
272366095Scy				basic_machine=c34-convex
273366095Scy				basic_os=bsd
274366095Scy				;;
275366095Scy			convex-c38)
276366095Scy				basic_machine=c38-convex
277366095Scy				basic_os=bsd
278366095Scy				;;
279366095Scy			cray)
280366095Scy				basic_machine=j90-cray
281366095Scy				basic_os=unicos
282366095Scy				;;
283366095Scy			crds | unos)
284366095Scy				basic_machine=m68k-crds
285366095Scy				basic_os=
286366095Scy				;;
287366095Scy			da30)
288366095Scy				basic_machine=m68k-da30
289366095Scy				basic_os=
290366095Scy				;;
291366095Scy			decstation | pmax | pmin | dec3100 | decstatn)
292366095Scy				basic_machine=mips-dec
293366095Scy				basic_os=
294366095Scy				;;
295366095Scy			delta88)
296366095Scy				basic_machine=m88k-motorola
297366095Scy				basic_os=sysv3
298366095Scy				;;
299366095Scy			dicos)
300366095Scy				basic_machine=i686-pc
301366095Scy				basic_os=dicos
302366095Scy				;;
303366095Scy			djgpp)
304366095Scy				basic_machine=i586-pc
305366095Scy				basic_os=msdosdjgpp
306366095Scy				;;
307366095Scy			ebmon29k)
308366095Scy				basic_machine=a29k-amd
309366095Scy				basic_os=ebmon
310366095Scy				;;
311366095Scy			es1800 | OSE68k | ose68k | ose | OSE)
312366095Scy				basic_machine=m68k-ericsson
313366095Scy				basic_os=ose
314366095Scy				;;
315366095Scy			gmicro)
316366095Scy				basic_machine=tron-gmicro
317366095Scy				basic_os=sysv
318366095Scy				;;
319366095Scy			go32)
320366095Scy				basic_machine=i386-pc
321366095Scy				basic_os=go32
322366095Scy				;;
323366095Scy			h8300hms)
324366095Scy				basic_machine=h8300-hitachi
325366095Scy				basic_os=hms
326366095Scy				;;
327366095Scy			h8300xray)
328366095Scy				basic_machine=h8300-hitachi
329366095Scy				basic_os=xray
330366095Scy				;;
331366095Scy			h8500hms)
332366095Scy				basic_machine=h8500-hitachi
333366095Scy				basic_os=hms
334366095Scy				;;
335366095Scy			harris)
336366095Scy				basic_machine=m88k-harris
337366095Scy				basic_os=sysv3
338366095Scy				;;
339366095Scy			hp300 | hp300hpux)
340366095Scy				basic_machine=m68k-hp
341366095Scy				basic_os=hpux
342366095Scy				;;
343366095Scy			hp300bsd)
344366095Scy				basic_machine=m68k-hp
345366095Scy				basic_os=bsd
346366095Scy				;;
347366095Scy			hppaosf)
348366095Scy				basic_machine=hppa1.1-hp
349366095Scy				basic_os=osf
350366095Scy				;;
351366095Scy			hppro)
352366095Scy				basic_machine=hppa1.1-hp
353366095Scy				basic_os=proelf
354366095Scy				;;
355366095Scy			i386mach)
356366095Scy				basic_machine=i386-mach
357366095Scy				basic_os=mach
358366095Scy				;;
359366095Scy			isi68 | isi)
360366095Scy				basic_machine=m68k-isi
361366095Scy				basic_os=sysv
362366095Scy				;;
363366095Scy			m68knommu)
364366095Scy				basic_machine=m68k-unknown
365366095Scy				basic_os=linux
366366095Scy				;;
367366095Scy			magnum | m3230)
368366095Scy				basic_machine=mips-mips
369366095Scy				basic_os=sysv
370366095Scy				;;
371366095Scy			merlin)
372366095Scy				basic_machine=ns32k-utek
373366095Scy				basic_os=sysv
374366095Scy				;;
375366095Scy			mingw64)
376366095Scy				basic_machine=x86_64-pc
377366095Scy				basic_os=mingw64
378366095Scy				;;
379366095Scy			mingw32)
380366095Scy				basic_machine=i686-pc
381366095Scy				basic_os=mingw32
382366095Scy				;;
383366095Scy			mingw32ce)
384366095Scy				basic_machine=arm-unknown
385366095Scy				basic_os=mingw32ce
386366095Scy				;;
387366095Scy			monitor)
388366095Scy				basic_machine=m68k-rom68k
389366095Scy				basic_os=coff
390366095Scy				;;
391366095Scy			morphos)
392366095Scy				basic_machine=powerpc-unknown
393366095Scy				basic_os=morphos
394366095Scy				;;
395366095Scy			moxiebox)
396366095Scy				basic_machine=moxie-unknown
397366095Scy				basic_os=moxiebox
398366095Scy				;;
399366095Scy			msdos)
400366095Scy				basic_machine=i386-pc
401366095Scy				basic_os=msdos
402366095Scy				;;
403366095Scy			msys)
404366095Scy				basic_machine=i686-pc
405366095Scy				basic_os=msys
406366095Scy				;;
407366095Scy			mvs)
408366095Scy				basic_machine=i370-ibm
409366095Scy				basic_os=mvs
410366095Scy				;;
411366095Scy			nacl)
412366095Scy				basic_machine=le32-unknown
413366095Scy				basic_os=nacl
414366095Scy				;;
415366095Scy			ncr3000)
416366095Scy				basic_machine=i486-ncr
417366095Scy				basic_os=sysv4
418366095Scy				;;
419366095Scy			netbsd386)
420366095Scy				basic_machine=i386-pc
421366095Scy				basic_os=netbsd
422366095Scy				;;
423366095Scy			netwinder)
424366095Scy				basic_machine=armv4l-rebel
425366095Scy				basic_os=linux
426366095Scy				;;
427366095Scy			news | news700 | news800 | news900)
428366095Scy				basic_machine=m68k-sony
429366095Scy				basic_os=newsos
430366095Scy				;;
431366095Scy			news1000)
432366095Scy				basic_machine=m68030-sony
433366095Scy				basic_os=newsos
434366095Scy				;;
435366095Scy			necv70)
436366095Scy				basic_machine=v70-nec
437366095Scy				basic_os=sysv
438366095Scy				;;
439366095Scy			nh3000)
440366095Scy				basic_machine=m68k-harris
441366095Scy				basic_os=cxux
442366095Scy				;;
443366095Scy			nh[45]000)
444366095Scy				basic_machine=m88k-harris
445366095Scy				basic_os=cxux
446366095Scy				;;
447366095Scy			nindy960)
448366095Scy				basic_machine=i960-intel
449366095Scy				basic_os=nindy
450366095Scy				;;
451366095Scy			mon960)
452366095Scy				basic_machine=i960-intel
453366095Scy				basic_os=mon960
454366095Scy				;;
455366095Scy			nonstopux)
456366095Scy				basic_machine=mips-compaq
457366095Scy				basic_os=nonstopux
458366095Scy				;;
459366095Scy			os400)
460366095Scy				basic_machine=powerpc-ibm
461366095Scy				basic_os=os400
462366095Scy				;;
463366095Scy			OSE68000 | ose68000)
464366095Scy				basic_machine=m68000-ericsson
465366095Scy				basic_os=ose
466366095Scy				;;
467366095Scy			os68k)
468366095Scy				basic_machine=m68k-none
469366095Scy				basic_os=os68k
470366095Scy				;;
471366095Scy			paragon)
472366095Scy				basic_machine=i860-intel
473366095Scy				basic_os=osf
474366095Scy				;;
475366095Scy			parisc)
476366095Scy				basic_machine=hppa-unknown
477366095Scy				basic_os=linux
478366095Scy				;;
479366095Scy			psp)
480366095Scy				basic_machine=mipsallegrexel-sony
481366095Scy				basic_os=psp
482366095Scy				;;
483366095Scy			pw32)
484366095Scy				basic_machine=i586-unknown
485366095Scy				basic_os=pw32
486366095Scy				;;
487366095Scy			rdos | rdos64)
488366095Scy				basic_machine=x86_64-pc
489366095Scy				basic_os=rdos
490366095Scy				;;
491366095Scy			rdos32)
492366095Scy				basic_machine=i386-pc
493366095Scy				basic_os=rdos
494366095Scy				;;
495366095Scy			rom68k)
496366095Scy				basic_machine=m68k-rom68k
497366095Scy				basic_os=coff
498366095Scy				;;
499366095Scy			sa29200)
500366095Scy				basic_machine=a29k-amd
501366095Scy				basic_os=udi
502366095Scy				;;
503366095Scy			sei)
504366095Scy				basic_machine=mips-sei
505366095Scy				basic_os=seiux
506366095Scy				;;
507366095Scy			sequent)
508366095Scy				basic_machine=i386-sequent
509366095Scy				basic_os=
510366095Scy				;;
511366095Scy			sps7)
512366095Scy				basic_machine=m68k-bull
513366095Scy				basic_os=sysv2
514366095Scy				;;
515366095Scy			st2000)
516366095Scy				basic_machine=m68k-tandem
517366095Scy				basic_os=
518366095Scy				;;
519366095Scy			stratus)
520366095Scy				basic_machine=i860-stratus
521366095Scy				basic_os=sysv4
522366095Scy				;;
523366095Scy			sun2)
524366095Scy				basic_machine=m68000-sun
525366095Scy				basic_os=
526366095Scy				;;
527366095Scy			sun2os3)
528366095Scy				basic_machine=m68000-sun
529366095Scy				basic_os=sunos3
530366095Scy				;;
531366095Scy			sun2os4)
532366095Scy				basic_machine=m68000-sun
533366095Scy				basic_os=sunos4
534366095Scy				;;
535366095Scy			sun3)
536366095Scy				basic_machine=m68k-sun
537366095Scy				basic_os=
538366095Scy				;;
539366095Scy			sun3os3)
540366095Scy				basic_machine=m68k-sun
541366095Scy				basic_os=sunos3
542366095Scy				;;
543366095Scy			sun3os4)
544366095Scy				basic_machine=m68k-sun
545366095Scy				basic_os=sunos4
546366095Scy				;;
547366095Scy			sun4)
548366095Scy				basic_machine=sparc-sun
549366095Scy				basic_os=
550366095Scy				;;
551366095Scy			sun4os3)
552366095Scy				basic_machine=sparc-sun
553366095Scy				basic_os=sunos3
554366095Scy				;;
555366095Scy			sun4os4)
556366095Scy				basic_machine=sparc-sun
557366095Scy				basic_os=sunos4
558366095Scy				;;
559366095Scy			sun4sol2)
560366095Scy				basic_machine=sparc-sun
561366095Scy				basic_os=solaris2
562366095Scy				;;
563366095Scy			sun386 | sun386i | roadrunner)
564366095Scy				basic_machine=i386-sun
565366095Scy				basic_os=
566366095Scy				;;
567366095Scy			sv1)
568366095Scy				basic_machine=sv1-cray
569366095Scy				basic_os=unicos
570366095Scy				;;
571366095Scy			symmetry)
572366095Scy				basic_machine=i386-sequent
573366095Scy				basic_os=dynix
574366095Scy				;;
575366095Scy			t3e)
576366095Scy				basic_machine=alphaev5-cray
577366095Scy				basic_os=unicos
578366095Scy				;;
579366095Scy			t90)
580366095Scy				basic_machine=t90-cray
581366095Scy				basic_os=unicos
582366095Scy				;;
583366095Scy			toad1)
584366095Scy				basic_machine=pdp10-xkl
585366095Scy				basic_os=tops20
586366095Scy				;;
587366095Scy			tpf)
588366095Scy				basic_machine=s390x-ibm
589366095Scy				basic_os=tpf
590366095Scy				;;
591366095Scy			udi29k)
592366095Scy				basic_machine=a29k-amd
593366095Scy				basic_os=udi
594366095Scy				;;
595366095Scy			ultra3)
596366095Scy				basic_machine=a29k-nyu
597366095Scy				basic_os=sym1
598366095Scy				;;
599366095Scy			v810 | necv810)
600366095Scy				basic_machine=v810-nec
601366095Scy				basic_os=none
602366095Scy				;;
603366095Scy			vaxv)
604366095Scy				basic_machine=vax-dec
605366095Scy				basic_os=sysv
606366095Scy				;;
607366095Scy			vms)
608366095Scy				basic_machine=vax-dec
609366095Scy				basic_os=vms
610366095Scy				;;
611366095Scy			vsta)
612366095Scy				basic_machine=i386-pc
613366095Scy				basic_os=vsta
614366095Scy				;;
615366095Scy			vxworks960)
616366095Scy				basic_machine=i960-wrs
617366095Scy				basic_os=vxworks
618366095Scy				;;
619366095Scy			vxworks68)
620366095Scy				basic_machine=m68k-wrs
621366095Scy				basic_os=vxworks
622366095Scy				;;
623366095Scy			vxworks29k)
624366095Scy				basic_machine=a29k-wrs
625366095Scy				basic_os=vxworks
626366095Scy				;;
627366095Scy			xbox)
628366095Scy				basic_machine=i686-pc
629366095Scy				basic_os=mingw32
630366095Scy				;;
631366095Scy			ymp)
632366095Scy				basic_machine=ymp-cray
633366095Scy				basic_os=unicos
634366095Scy				;;
635366095Scy			*)
636366095Scy				basic_machine=$1
637366095Scy				basic_os=
638366095Scy				;;
639366095Scy		esac
640238106Sdes		;;
641238106Sdesesac
642238106Sdes
643366095Scy# Decode 1-component or ad-hoc basic machines
644238106Sdescase $basic_machine in
645366095Scy	# Here we handle the default manufacturer of certain CPU types.  It is in
646366095Scy	# some cases the only manufacturer, in others, it is the most popular.
647366095Scy	w89k)
648366095Scy		cpu=hppa1.1
649366095Scy		vendor=winbond
650238106Sdes		;;
651366095Scy	op50n)
652366095Scy		cpu=hppa1.1
653366095Scy		vendor=oki
654249141Sdes		;;
655366095Scy	op60c)
656366095Scy		cpu=hppa1.1
657366095Scy		vendor=oki
658249141Sdes		;;
659366095Scy	ibm*)
660366095Scy		cpu=i370
661366095Scy		vendor=ibm
662249141Sdes		;;
663366095Scy	orion105)
664366095Scy		cpu=clipper
665366095Scy		vendor=highlevel
666356345Scy		;;
667366095Scy	mac | mpw | mac-mpw)
668366095Scy		cpu=m68k
669366095Scy		vendor=apple
670238106Sdes		;;
671366095Scy	pmac | pmac-mpw)
672366095Scy		cpu=powerpc
673366095Scy		vendor=apple
674238106Sdes		;;
675238106Sdes
676238106Sdes	# Recognize the various machine names and aliases which stand
677238106Sdes	# for a CPU type and a company and sometimes even an OS.
678238106Sdes	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
679366095Scy		cpu=m68000
680366095Scy		vendor=att
681238106Sdes		;;
682238106Sdes	3b*)
683366095Scy		cpu=we32k
684366095Scy		vendor=att
685238106Sdes		;;
686238106Sdes	bluegene*)
687366095Scy		cpu=powerpc
688366095Scy		vendor=ibm
689366095Scy		basic_os=cnk
690238106Sdes		;;
691238106Sdes	decsystem10* | dec10*)
692366095Scy		cpu=pdp10
693366095Scy		vendor=dec
694366095Scy		basic_os=tops10
695238106Sdes		;;
696238106Sdes	decsystem20* | dec20*)
697366095Scy		cpu=pdp10
698366095Scy		vendor=dec
699366095Scy		basic_os=tops20
700238106Sdes		;;
701238106Sdes	delta | 3300 | motorola-3300 | motorola-delta \
702238106Sdes	      | 3300-motorola | delta-motorola)
703366095Scy		cpu=m68k
704366095Scy		vendor=motorola
705238106Sdes		;;
706366095Scy	dpx2*)
707366095Scy		cpu=m68k
708366095Scy		vendor=bull
709366095Scy		basic_os=sysv3
710238106Sdes		;;
711366095Scy	encore | umax | mmax)
712366095Scy		cpu=ns32k
713366095Scy		vendor=encore
714238106Sdes		;;
715238106Sdes	elxsi)
716366095Scy		cpu=elxsi
717366095Scy		vendor=elxsi
718366095Scy		basic_os=${basic_os:-bsd}
719238106Sdes		;;
720238106Sdes	fx2800)
721366095Scy		cpu=i860
722366095Scy		vendor=alliant
723238106Sdes		;;
724238106Sdes	genix)
725366095Scy		cpu=ns32k
726366095Scy		vendor=ns
727238106Sdes		;;
728238106Sdes	h3050r* | hiux*)
729366095Scy		cpu=hppa1.1
730366095Scy		vendor=hitachi
731366095Scy		basic_os=hiuxwe2
732238106Sdes		;;
733238106Sdes	hp3k9[0-9][0-9] | hp9[0-9][0-9])
734366095Scy		cpu=hppa1.0
735366095Scy		vendor=hp
736238106Sdes		;;
737238106Sdes	hp9k2[0-9][0-9] | hp9k31[0-9])
738366095Scy		cpu=m68000
739366095Scy		vendor=hp
740238106Sdes		;;
741238106Sdes	hp9k3[2-9][0-9])
742366095Scy		cpu=m68k
743366095Scy		vendor=hp
744238106Sdes		;;
745238106Sdes	hp9k6[0-9][0-9] | hp6[0-9][0-9])
746366095Scy		cpu=hppa1.0
747366095Scy		vendor=hp
748238106Sdes		;;
749238106Sdes	hp9k7[0-79][0-9] | hp7[0-79][0-9])
750366095Scy		cpu=hppa1.1
751366095Scy		vendor=hp
752238106Sdes		;;
753238106Sdes	hp9k78[0-9] | hp78[0-9])
754238106Sdes		# FIXME: really hppa2.0-hp
755366095Scy		cpu=hppa1.1
756366095Scy		vendor=hp
757238106Sdes		;;
758238106Sdes	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
759238106Sdes		# FIXME: really hppa2.0-hp
760366095Scy		cpu=hppa1.1
761366095Scy		vendor=hp
762238106Sdes		;;
763238106Sdes	hp9k8[0-9][13679] | hp8[0-9][13679])
764366095Scy		cpu=hppa1.1
765366095Scy		vendor=hp
766238106Sdes		;;
767238106Sdes	hp9k8[0-9][0-9] | hp8[0-9][0-9])
768366095Scy		cpu=hppa1.0
769366095Scy		vendor=hp
770238106Sdes		;;
771238106Sdes	i*86v32)
772368693Scy		cpu=$(echo "$1" | sed -e 's/86.*/86/')
773366095Scy		vendor=pc
774366095Scy		basic_os=sysv32
775238106Sdes		;;
776238106Sdes	i*86v4*)
777368693Scy		cpu=$(echo "$1" | sed -e 's/86.*/86/')
778366095Scy		vendor=pc
779366095Scy		basic_os=sysv4
780238106Sdes		;;
781238106Sdes	i*86v)
782368693Scy		cpu=$(echo "$1" | sed -e 's/86.*/86/')
783366095Scy		vendor=pc
784366095Scy		basic_os=sysv
785238106Sdes		;;
786238106Sdes	i*86sol2)
787368693Scy		cpu=$(echo "$1" | sed -e 's/86.*/86/')
788366095Scy		vendor=pc
789366095Scy		basic_os=solaris2
790238106Sdes		;;
791366095Scy	j90 | j90-cray)
792366095Scy		cpu=j90
793366095Scy		vendor=cray
794366095Scy		basic_os=${basic_os:-unicos}
795238106Sdes		;;
796238106Sdes	iris | iris4d)
797366095Scy		cpu=mips
798366095Scy		vendor=sgi
799366095Scy		case $basic_os in
800366095Scy		    irix*)
801238106Sdes			;;
802238106Sdes		    *)
803366095Scy			basic_os=irix4
804238106Sdes			;;
805238106Sdes		esac
806238106Sdes		;;
807238106Sdes	miniframe)
808366095Scy		cpu=m68000
809366095Scy		vendor=convergent
810238106Sdes		;;
811366095Scy	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
812366095Scy		cpu=m68k
813366095Scy		vendor=atari
814366095Scy		basic_os=mint
815238106Sdes		;;
816238106Sdes	news-3600 | risc-news)
817366095Scy		cpu=mips
818366095Scy		vendor=sony
819366095Scy		basic_os=newsos
820238106Sdes		;;
821366095Scy	next | m*-next)
822366095Scy		cpu=m68k
823366095Scy		vendor=next
824366095Scy		case $basic_os in
825366095Scy		    openstep*)
826366095Scy		        ;;
827366095Scy		    nextstep*)
828238106Sdes			;;
829366095Scy		    ns2*)
830366095Scy		      basic_os=nextstep2
831238106Sdes			;;
832238106Sdes		    *)
833366095Scy		      basic_os=nextstep3
834238106Sdes			;;
835238106Sdes		esac
836238106Sdes		;;
837238106Sdes	np1)
838366095Scy		cpu=np1
839366095Scy		vendor=gould
840238106Sdes		;;
841238106Sdes	op50n-* | op60c-*)
842366095Scy		cpu=hppa1.1
843366095Scy		vendor=oki
844366095Scy		basic_os=proelf
845238106Sdes		;;
846238106Sdes	pa-hitachi)
847366095Scy		cpu=hppa1.1
848366095Scy		vendor=hitachi
849366095Scy		basic_os=hiuxwe2
850238106Sdes		;;
851238106Sdes	pbd)
852366095Scy		cpu=sparc
853366095Scy		vendor=tti
854238106Sdes		;;
855238106Sdes	pbb)
856366095Scy		cpu=m68k
857366095Scy		vendor=tti
858238106Sdes		;;
859366095Scy	pc532)
860366095Scy		cpu=ns32k
861366095Scy		vendor=pc532
862238106Sdes		;;
863238106Sdes	pn)
864366095Scy		cpu=pn
865366095Scy		vendor=gould
866238106Sdes		;;
867366095Scy	power)
868366095Scy		cpu=power
869366095Scy		vendor=ibm
870238106Sdes		;;
871238106Sdes	ps2)
872366095Scy		cpu=i386
873366095Scy		vendor=ibm
874238106Sdes		;;
875238106Sdes	rm[46]00)
876366095Scy		cpu=mips
877366095Scy		vendor=siemens
878238106Sdes		;;
879238106Sdes	rtpc | rtpc-*)
880366095Scy		cpu=romp
881366095Scy		vendor=ibm
882238106Sdes		;;
883366095Scy	sde)
884366095Scy		cpu=mipsisa32
885366095Scy		vendor=sde
886366095Scy		basic_os=${basic_os:-elf}
887238106Sdes		;;
888366095Scy	simso-wrs)
889366095Scy		cpu=sparclite
890366095Scy		vendor=wrs
891366095Scy		basic_os=vxworks
892238106Sdes		;;
893366095Scy	tower | tower-32)
894366095Scy		cpu=m68k
895366095Scy		vendor=ncr
896238106Sdes		;;
897366095Scy	vpp*|vx|vx-*)
898366095Scy		cpu=f301
899366095Scy		vendor=fujitsu
900238106Sdes		;;
901366095Scy	w65)
902366095Scy		cpu=w65
903366095Scy		vendor=wdc
904238106Sdes		;;
905366095Scy	w89k-*)
906366095Scy		cpu=hppa1.1
907366095Scy		vendor=winbond
908366095Scy		basic_os=proelf
909238106Sdes		;;
910366095Scy	none)
911366095Scy		cpu=none
912366095Scy		vendor=none
913238106Sdes		;;
914366095Scy	leon|leon[3-9])
915366095Scy		cpu=sparc
916366095Scy		vendor=$basic_machine
917238106Sdes		;;
918366095Scy	leon-*|leon[3-9]-*)
919366095Scy		cpu=sparc
920368693Scy		vendor=$(echo "$basic_machine" | sed 's/-.*//')
921361435Scy		;;
922366095Scy
923366095Scy	*-*)
924366095Scy		# shellcheck disable=SC2162
925366095Scy		IFS="-" read cpu vendor <<EOF
926366095Scy$basic_machine
927366095ScyEOF
928238106Sdes		;;
929366095Scy	# We use `pc' rather than `unknown'
930366095Scy	# because (1) that's what they normally are, and
931366095Scy	# (2) the word "unknown" tends to confuse beginning users.
932366095Scy	i*86 | x86_64)
933366095Scy		cpu=$basic_machine
934366095Scy		vendor=pc
935361435Scy		;;
936366095Scy	# These rules are duplicated from below for sake of the special case above;
937366095Scy	# i.e. things that normalized to x86 arches should also default to "pc"
938366095Scy	pc98)
939366095Scy		cpu=i386
940366095Scy		vendor=pc
941238106Sdes		;;
942366095Scy	x64 | amd64)
943366095Scy		cpu=x86_64
944366095Scy		vendor=pc
945238106Sdes		;;
946366095Scy	# Recognize the basic CPU types without company name.
947366095Scy	*)
948366095Scy		cpu=$basic_machine
949366095Scy		vendor=unknown
950238106Sdes		;;
951366095Scyesac
952366095Scy
953366095Scyunset -v basic_machine
954366095Scy
955366095Scy# Decode basic machines in the full and proper CPU-Company form.
956366095Scycase $cpu-$vendor in
957366095Scy	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
958366095Scy	# some cases the only manufacturer, in others, it is the most popular.
959366095Scy	craynv-unknown)
960366095Scy		vendor=cray
961366095Scy		basic_os=${basic_os:-unicosmp}
962238106Sdes		;;
963366095Scy	c90-unknown | c90-cray)
964366095Scy		vendor=cray
965366095Scy		basic_os=${Basic_os:-unicos}
966238106Sdes		;;
967366095Scy	fx80-unknown)
968366095Scy		vendor=alliant
969249141Sdes		;;
970366095Scy	romp-unknown)
971366095Scy		vendor=ibm
972238106Sdes		;;
973366095Scy	mmix-unknown)
974366095Scy		vendor=knuth
975238106Sdes		;;
976366095Scy	microblaze-unknown | microblazeel-unknown)
977366095Scy		vendor=xilinx
978238106Sdes		;;
979366095Scy	rs6000-unknown)
980366095Scy		vendor=ibm
981238106Sdes		;;
982366095Scy	vax-unknown)
983366095Scy		vendor=dec
984238106Sdes		;;
985366095Scy	pdp11-unknown)
986366095Scy		vendor=dec
987238106Sdes		;;
988366095Scy	we32k-unknown)
989366095Scy		vendor=att
990238106Sdes		;;
991366095Scy	cydra-unknown)
992366095Scy		vendor=cydrome
993238106Sdes		;;
994366095Scy	i370-ibm*)
995366095Scy		vendor=ibm
996238106Sdes		;;
997366095Scy	orion-unknown)
998366095Scy		vendor=highlevel
999238106Sdes		;;
1000366095Scy	xps-unknown | xps100-unknown)
1001366095Scy		cpu=xps100
1002366095Scy		vendor=honeywell
1003238106Sdes		;;
1004366095Scy
1005366095Scy	# Here we normalize CPU types with a missing or matching vendor
1006366095Scy	dpx20-unknown | dpx20-bull)
1007366095Scy		cpu=rs6000
1008366095Scy		vendor=bull
1009366095Scy		basic_os=${basic_os:-bosx}
1010238106Sdes		;;
1011366095Scy
1012366095Scy	# Here we normalize CPU types irrespective of the vendor
1013366095Scy	amd64-*)
1014366095Scy		cpu=x86_64
1015238106Sdes		;;
1016366095Scy	blackfin-*)
1017366095Scy		cpu=bfin
1018366095Scy		basic_os=linux
1019238106Sdes		;;
1020366095Scy	c54x-*)
1021366095Scy		cpu=tic54x
1022238106Sdes		;;
1023366095Scy	c55x-*)
1024366095Scy		cpu=tic55x
1025238106Sdes		;;
1026366095Scy	c6x-*)
1027366095Scy		cpu=tic6x
1028238106Sdes		;;
1029366095Scy	e500v[12]-*)
1030366095Scy		cpu=powerpc
1031366095Scy		basic_os=${basic_os}"spe"
1032238106Sdes		;;
1033366095Scy	mips3*-*)
1034366095Scy		cpu=mips64
1035238106Sdes		;;
1036366095Scy	ms1-*)
1037366095Scy		cpu=mt
1038238106Sdes		;;
1039366095Scy	m68knommu-*)
1040366095Scy		cpu=m68k
1041366095Scy		basic_os=linux
1042238106Sdes		;;
1043366095Scy	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1044366095Scy		cpu=s12z
1045238106Sdes		;;
1046366095Scy	openrisc-*)
1047366095Scy		cpu=or32
1048238106Sdes		;;
1049366095Scy	parisc-*)
1050366095Scy		cpu=hppa
1051366095Scy		basic_os=linux
1052238106Sdes		;;
1053366095Scy	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1054366095Scy		cpu=i586
1055238106Sdes		;;
1056366095Scy	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
1057366095Scy		cpu=i686
1058238106Sdes		;;
1059366095Scy	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1060366095Scy		cpu=i686
1061238106Sdes		;;
1062366095Scy	pentium4-*)
1063366095Scy		cpu=i786
1064238106Sdes		;;
1065366095Scy	pc98-*)
1066366095Scy		cpu=i386
1067238106Sdes		;;
1068366095Scy	ppc-* | ppcbe-*)
1069366095Scy		cpu=powerpc
1070238106Sdes		;;
1071366095Scy	ppcle-* | powerpclittle-*)
1072366095Scy		cpu=powerpcle
1073238106Sdes		;;
1074366095Scy	ppc64-*)
1075366095Scy		cpu=powerpc64
1076238106Sdes		;;
1077366095Scy	ppc64le-* | powerpc64little-*)
1078366095Scy		cpu=powerpc64le
1079238106Sdes		;;
1080366095Scy	sb1-*)
1081366095Scy		cpu=mipsisa64sb1
1082238106Sdes		;;
1083366095Scy	sb1el-*)
1084366095Scy		cpu=mipsisa64sb1el
1085249141Sdes		;;
1086366095Scy	sh5e[lb]-*)
1087368693Scy		cpu=$(echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/')
1088238106Sdes		;;
1089366095Scy	spur-*)
1090366095Scy		cpu=spur
1091361435Scy		;;
1092366095Scy	strongarm-* | thumb-*)
1093366095Scy		cpu=arm
1094361435Scy		;;
1095366095Scy	tx39-*)
1096366095Scy		cpu=mipstx39
1097238106Sdes		;;
1098366095Scy	tx39el-*)
1099366095Scy		cpu=mipstx39el
1100238106Sdes		;;
1101366095Scy	x64-*)
1102366095Scy		cpu=x86_64
1103238106Sdes		;;
1104366095Scy	xscale-* | xscalee[bl]-*)
1105368693Scy		cpu=$(echo "$cpu" | sed 's/^xscale/arm/')
1106238106Sdes		;;
1107366095Scy	arm64-*)
1108366095Scy		cpu=aarch64
1109238106Sdes		;;
1110366095Scy
1111366095Scy	# Recognize the canonical CPU Types that limit and/or modify the
1112366095Scy	# company names they are paired with.
1113366095Scy	cr16-*)
1114366095Scy		basic_os=${basic_os:-elf}
1115238106Sdes		;;
1116366095Scy	crisv32-* | etraxfs*-*)
1117366095Scy		cpu=crisv32
1118366095Scy		vendor=axis
1119238106Sdes		;;
1120366095Scy	cris-* | etrax*-*)
1121366095Scy		cpu=cris
1122366095Scy		vendor=axis
1123238106Sdes		;;
1124366095Scy	crx-*)
1125366095Scy		basic_os=${basic_os:-elf}
1126361435Scy		;;
1127366095Scy	neo-tandem)
1128366095Scy		cpu=neo
1129366095Scy		vendor=tandem
1130238106Sdes		;;
1131366095Scy	nse-tandem)
1132366095Scy		cpu=nse
1133366095Scy		vendor=tandem
1134238106Sdes		;;
1135366095Scy	nsr-tandem)
1136366095Scy		cpu=nsr
1137366095Scy		vendor=tandem
1138238106Sdes		;;
1139366095Scy	nsv-tandem)
1140366095Scy		cpu=nsv
1141366095Scy		vendor=tandem
1142361435Scy		;;
1143366095Scy	nsx-tandem)
1144366095Scy		cpu=nsx
1145366095Scy		vendor=tandem
1146238106Sdes		;;
1147366095Scy	mipsallegrexel-sony)
1148366095Scy		cpu=mipsallegrexel
1149366095Scy		vendor=sony
1150238106Sdes		;;
1151366095Scy	tile*-*)
1152366095Scy		basic_os=${basic_os:-linux-gnu}
1153238106Sdes		;;
1154366095Scy
1155238106Sdes	*)
1156366095Scy		# Recognize the canonical CPU types that are allowed with any
1157366095Scy		# company name.
1158366095Scy		case $cpu in
1159366095Scy			1750a | 580 \
1160366095Scy			| a29k \
1161366095Scy			| aarch64 | aarch64_be \
1162366095Scy			| abacus \
1163366095Scy			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
1164366095Scy			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
1165366095Scy			| alphapca5[67] | alpha64pca5[67] \
1166366095Scy			| am33_2.0 \
1167366095Scy			| amdgcn \
1168366095Scy			| arc | arceb \
1169366095Scy			| arm | arm[lb]e | arme[lb] | armv* \
1170366095Scy			| avr | avr32 \
1171366095Scy			| asmjs \
1172366095Scy			| ba \
1173366095Scy			| be32 | be64 \
1174366095Scy			| bfin | bpf | bs2000 \
1175366095Scy			| c[123]* | c30 | [cjt]90 | c4x \
1176366095Scy			| c8051 | clipper | craynv | csky | cydra \
1177366095Scy			| d10v | d30v | dlx | dsp16xx \
1178366095Scy			| e2k | elxsi | epiphany \
1179366095Scy			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
1180366095Scy			| h8300 | h8500 \
1181366095Scy			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
1182366095Scy			| hexagon \
1183366095Scy			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
1184366095Scy			| ip2k | iq2000 \
1185366095Scy			| k1om \
1186366095Scy			| le32 | le64 \
1187366095Scy			| lm32 \
1188369939Sgit2svn			| loongarch32 | loongarch64 | loongarchx32 \
1189366095Scy			| m32c | m32r | m32rle \
1190366095Scy			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
1191366095Scy			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
1192366095Scy			| m88110 | m88k | maxq | mb | mcore | mep | metag \
1193366095Scy			| microblaze | microblazeel \
1194366095Scy			| mips | mipsbe | mipseb | mipsel | mipsle \
1195366095Scy			| mips16 \
1196366095Scy			| mips64 | mips64eb | mips64el \
1197366095Scy			| mips64octeon | mips64octeonel \
1198366095Scy			| mips64orion | mips64orionel \
1199366095Scy			| mips64r5900 | mips64r5900el \
1200366095Scy			| mips64vr | mips64vrel \
1201366095Scy			| mips64vr4100 | mips64vr4100el \
1202366095Scy			| mips64vr4300 | mips64vr4300el \
1203366095Scy			| mips64vr5000 | mips64vr5000el \
1204366095Scy			| mips64vr5900 | mips64vr5900el \
1205366095Scy			| mipsisa32 | mipsisa32el \
1206366095Scy			| mipsisa32r2 | mipsisa32r2el \
1207366095Scy			| mipsisa32r6 | mipsisa32r6el \
1208366095Scy			| mipsisa64 | mipsisa64el \
1209366095Scy			| mipsisa64r2 | mipsisa64r2el \
1210366095Scy			| mipsisa64r6 | mipsisa64r6el \
1211366095Scy			| mipsisa64sb1 | mipsisa64sb1el \
1212366095Scy			| mipsisa64sr71k | mipsisa64sr71kel \
1213366095Scy			| mipsr5900 | mipsr5900el \
1214366095Scy			| mipstx39 | mipstx39el \
1215366095Scy			| mmix \
1216366095Scy			| mn10200 | mn10300 \
1217366095Scy			| moxie \
1218366095Scy			| mt \
1219366095Scy			| msp430 \
1220366095Scy			| nds32 | nds32le | nds32be \
1221366095Scy			| nfp \
1222366095Scy			| nios | nios2 | nios2eb | nios2el \
1223366095Scy			| none | np1 | ns16k | ns32k | nvptx \
1224366095Scy			| open8 \
1225366095Scy			| or1k* \
1226366095Scy			| or32 \
1227366095Scy			| orion \
1228366095Scy			| picochip \
1229366095Scy			| pdp10 | pdp11 | pj | pjl | pn | power \
1230366095Scy			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
1231366095Scy			| pru \
1232366095Scy			| pyramid \
1233369939Sgit2svn			| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
1234366095Scy			| rl78 | romp | rs6000 | rx \
1235366095Scy			| s390 | s390x \
1236366095Scy			| score \
1237366095Scy			| sh | shl \
1238366095Scy			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
1239366095Scy			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
1240366095Scy			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
1241366095Scy			| sparclite \
1242366095Scy			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
1243366095Scy			| spu \
1244366095Scy			| tahoe \
1245368693Scy			| thumbv7* \
1246366095Scy			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
1247366095Scy			| tron \
1248366095Scy			| ubicom32 \
1249366095Scy			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
1250366095Scy			| vax \
1251366095Scy			| visium \
1252366095Scy			| w65 \
1253366095Scy			| wasm32 | wasm64 \
1254366095Scy			| we32k \
1255366095Scy			| x86 | x86_64 | xc16x | xgate | xps100 \
1256366095Scy			| xstormy16 | xtensa* \
1257366095Scy			| ymp \
1258366095Scy			| z8k | z80)
1259366095Scy				;;
1260366095Scy
1261366095Scy			*)
1262366095Scy				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
1263366095Scy				exit 1
1264366095Scy				;;
1265366095Scy		esac
1266238106Sdes		;;
1267238106Sdesesac
1268238106Sdes
1269238106Sdes# Here we canonicalize certain aliases for manufacturers.
1270366095Scycase $vendor in
1271366095Scy	digital*)
1272366095Scy		vendor=dec
1273238106Sdes		;;
1274366095Scy	commodore*)
1275366095Scy		vendor=cbm
1276238106Sdes		;;
1277238106Sdes	*)
1278238106Sdes		;;
1279238106Sdesesac
1280238106Sdes
1281238106Sdes# Decode manufacturer-specific aliases for certain operating systems.
1282238106Sdes
1283368129Scyif test x$basic_os != x
1284238106Sdesthen
1285366095Scy
1286366095Scy# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
1287366095Scy# set os.
1288366095Scycase $basic_os in
1289366095Scy	gnu/linux*)
1290366095Scy		kernel=linux
1291368693Scy		os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|')
1292238106Sdes		;;
1293368693Scy	os2-emx)
1294368693Scy		kernel=os2
1295368693Scy		os=$(echo $basic_os | sed -e 's|os2-emx|emx|')
1296368693Scy		;;
1297366095Scy	nto-qnx*)
1298366095Scy		kernel=nto
1299368693Scy		os=$(echo $basic_os | sed -e 's|nto-qnx|qnx|')
1300238106Sdes		;;
1301366095Scy	*-*)
1302366095Scy		# shellcheck disable=SC2162
1303366095Scy		IFS="-" read kernel os <<EOF
1304366095Scy$basic_os
1305366095ScyEOF
1306238106Sdes		;;
1307366095Scy	# Default OS when just kernel was specified
1308366095Scy	nto*)
1309366095Scy		kernel=nto
1310368693Scy		os=$(echo $basic_os | sed -e 's|nto|qnx|')
1311361435Scy		;;
1312366095Scy	linux*)
1313366095Scy		kernel=linux
1314368693Scy		os=$(echo $basic_os | sed -e 's|linux|gnu|')
1315238106Sdes		;;
1316366095Scy	*)
1317366095Scy		kernel=
1318366095Scy		os=$basic_os
1319238106Sdes		;;
1320366095Scyesac
1321366095Scy
1322366095Scy# Now, normalize the OS (knowing we just have one component, it's not a kernel,
1323366095Scy# etc.)
1324366095Scycase $os in
1325366095Scy	# First match some system type aliases that might get confused
1326366095Scy	# with valid system types.
1327366095Scy	# solaris* is a basic system type, with this one exception.
1328366095Scy	auroraux)
1329366095Scy		os=auroraux
1330238106Sdes		;;
1331366095Scy	bluegene*)
1332366095Scy		os=cnk
1333238106Sdes		;;
1334366095Scy	solaris1 | solaris1.*)
1335368693Scy		os=$(echo $os | sed -e 's|solaris1|sunos4|')
1336238106Sdes		;;
1337366095Scy	solaris)
1338366095Scy		os=solaris2
1339238106Sdes		;;
1340366095Scy	unixware*)
1341366095Scy		os=sysv4.2uw
1342238106Sdes		;;
1343366095Scy	# es1800 is here to avoid being matched by es* (a different OS)
1344366095Scy	es1800*)
1345366095Scy		os=ose
1346238106Sdes		;;
1347366095Scy	# Some version numbers need modification
1348366095Scy	chorusos*)
1349366095Scy		os=chorusos
1350238106Sdes		;;
1351366095Scy	isc)
1352366095Scy		os=isc2.2
1353238106Sdes		;;
1354366095Scy	sco6)
1355366095Scy		os=sco5v6
1356238106Sdes		;;
1357366095Scy	sco5)
1358366095Scy		os=sco3.2v5
1359238106Sdes		;;
1360366095Scy	sco4)
1361366095Scy		os=sco3.2v4
1362238106Sdes		;;
1363366095Scy	sco3.2.[4-9]*)
1364368693Scy		os=$(echo $os | sed -e 's/sco3.2./sco3.2v/')
1365238106Sdes		;;
1366366095Scy	sco*v* | scout)
1367366095Scy		# Don't match below
1368238106Sdes		;;
1369366095Scy	sco*)
1370366095Scy		os=sco3.2v2
1371361435Scy		;;
1372366095Scy	psos*)
1373366095Scy		os=psos
1374361435Scy		;;
1375366095Scy	qnx*)
1376368129Scy		os=qnx
1377238106Sdes		;;
1378366095Scy	hiux*)
1379366095Scy		os=hiuxwe2
1380238106Sdes		;;
1381366095Scy	lynx*178)
1382366095Scy		os=lynxos178
1383238106Sdes		;;
1384366095Scy	lynx*5)
1385366095Scy		os=lynxos5
1386238106Sdes		;;
1387366095Scy	lynxos*)
1388366095Scy		# don't get caught up in next wildcard
1389238106Sdes		;;
1390366095Scy	lynx*)
1391366095Scy		os=lynxos
1392238106Sdes		;;
1393366095Scy	mac[0-9]*)
1394368693Scy		os=$(echo "$os" | sed -e 's|mac|macos|')
1395238106Sdes		;;
1396366095Scy	opened*)
1397366095Scy		os=openedition
1398238106Sdes		;;
1399366095Scy	os400*)
1400366095Scy		os=os400
1401238106Sdes		;;
1402366095Scy	sunos5*)
1403368693Scy		os=$(echo "$os" | sed -e 's|sunos5|solaris2|')
1404238106Sdes		;;
1405366095Scy	sunos6*)
1406368693Scy		os=$(echo "$os" | sed -e 's|sunos6|solaris3|')
1407238106Sdes		;;
1408366095Scy	wince*)
1409366095Scy		os=wince
1410238106Sdes		;;
1411366095Scy	utek*)
1412366095Scy		os=bsd
1413238106Sdes		;;
1414366095Scy	dynix*)
1415366095Scy		os=bsd
1416238106Sdes		;;
1417366095Scy	acis*)
1418366095Scy		os=aos
1419238106Sdes		;;
1420366095Scy	atheos*)
1421366095Scy		os=atheos
1422238106Sdes		;;
1423366095Scy	syllable*)
1424366095Scy		os=syllable
1425238106Sdes		;;
1426366095Scy	386bsd)
1427366095Scy		os=bsd
1428238106Sdes		;;
1429366095Scy	ctix* | uts*)
1430366095Scy		os=sysv
1431238106Sdes		;;
1432366095Scy	nova*)
1433366095Scy		os=rtmk-nova
1434238106Sdes		;;
1435366095Scy	ns2)
1436366095Scy		os=nextstep2
1437361435Scy		;;
1438366095Scy	# Preserve the version number of sinix5.
1439366095Scy	sinix5.*)
1440368693Scy		os=$(echo $os | sed -e 's|sinix|sysv|')
1441361435Scy		;;
1442366095Scy	sinix*)
1443366095Scy		os=sysv4
1444238106Sdes		;;
1445366095Scy	tpf*)
1446366095Scy		os=tpf
1447361435Scy		;;
1448366095Scy	triton*)
1449366095Scy		os=sysv3
1450238106Sdes		;;
1451366095Scy	oss*)
1452366095Scy		os=sysv3
1453238106Sdes		;;
1454366095Scy	svr4*)
1455366095Scy		os=sysv4
1456249141Sdes		;;
1457366095Scy	svr3)
1458366095Scy		os=sysv3
1459356345Scy		;;
1460366095Scy	sysvr4)
1461366095Scy		os=sysv4
1462238106Sdes		;;
1463366095Scy	ose*)
1464366095Scy		os=ose
1465366095Scy		;;
1466366095Scy	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1467366095Scy		os=mint
1468366095Scy		;;
1469366095Scy	dicos*)
1470366095Scy		os=dicos
1471366095Scy		;;
1472366095Scy	pikeos*)
1473366095Scy		# Until real need of OS specific support for
1474366095Scy		# particular features comes up, bare metal
1475366095Scy		# configurations are quite functional.
1476366095Scy		case $cpu in
1477366095Scy		    arm*)
1478366095Scy			os=eabi
1479366095Scy			;;
1480366095Scy		    *)
1481366095Scy			os=elf
1482366095Scy			;;
1483366095Scy		esac
1484366095Scy		;;
1485238106Sdes	*)
1486366095Scy		# No normalization, but not necessarily accepted, that comes below.
1487238106Sdes		;;
1488238106Sdesesac
1489366095Scy
1490238106Sdeselse
1491238106Sdes
1492238106Sdes# Here we handle the default operating systems that come with various machines.
1493238106Sdes# The value should be what the vendor currently ships out the door with their
1494238106Sdes# machine or put another way, the most popular os provided with the machine.
1495238106Sdes
1496238106Sdes# Note that if you're going to try to match "-MANUFACTURER" here (say,
1497238106Sdes# "-sun"), then you have to tell the case statement up towards the top
1498238106Sdes# that MANUFACTURER isn't an operating system.  Otherwise, code above
1499238106Sdes# will signal an error saying that MANUFACTURER isn't an operating
1500238106Sdes# system, and we'll never get to this point.
1501238106Sdes
1502366095Scykernel=
1503366095Scycase $cpu-$vendor in
1504249141Sdes	score-*)
1505366095Scy		os=elf
1506238106Sdes		;;
1507249141Sdes	spu-*)
1508366095Scy		os=elf
1509238106Sdes		;;
1510238106Sdes	*-acorn)
1511366095Scy		os=riscix1.2
1512238106Sdes		;;
1513238106Sdes	arm*-rebel)
1514366095Scy		kernel=linux
1515366095Scy		os=gnu
1516238106Sdes		;;
1517238106Sdes	arm*-semi)
1518366095Scy		os=aout
1519238106Sdes		;;
1520249141Sdes	c4x-* | tic4x-*)
1521366095Scy		os=coff
1522238106Sdes		;;
1523276605Sdes	c8051-*)
1524366095Scy		os=elf
1525276605Sdes		;;
1526366095Scy	clipper-intergraph)
1527366095Scy		os=clix
1528366095Scy		;;
1529249141Sdes	hexagon-*)
1530366095Scy		os=elf
1531249141Sdes		;;
1532249141Sdes	tic54x-*)
1533366095Scy		os=coff
1534249141Sdes		;;
1535249141Sdes	tic55x-*)
1536366095Scy		os=coff
1537249141Sdes		;;
1538249141Sdes	tic6x-*)
1539366095Scy		os=coff
1540249141Sdes		;;
1541238106Sdes	# This must come before the *-dec entry.
1542238106Sdes	pdp10-*)
1543366095Scy		os=tops20
1544238106Sdes		;;
1545238106Sdes	pdp11-*)
1546366095Scy		os=none
1547238106Sdes		;;
1548238106Sdes	*-dec | vax-*)
1549366095Scy		os=ultrix4.2
1550238106Sdes		;;
1551238106Sdes	m68*-apollo)
1552366095Scy		os=domain
1553238106Sdes		;;
1554238106Sdes	i386-sun)
1555366095Scy		os=sunos4.0.2
1556238106Sdes		;;
1557238106Sdes	m68000-sun)
1558366095Scy		os=sunos3
1559238106Sdes		;;
1560238106Sdes	m68*-cisco)
1561366095Scy		os=aout
1562238106Sdes		;;
1563249141Sdes	mep-*)
1564366095Scy		os=elf
1565238106Sdes		;;
1566238106Sdes	mips*-cisco)
1567366095Scy		os=elf
1568238106Sdes		;;
1569238106Sdes	mips*-*)
1570366095Scy		os=elf
1571238106Sdes		;;
1572238106Sdes	or32-*)
1573366095Scy		os=coff
1574238106Sdes		;;
1575238106Sdes	*-tti)	# must be before sparc entry or we get the wrong os.
1576366095Scy		os=sysv3
1577238106Sdes		;;
1578238106Sdes	sparc-* | *-sun)
1579366095Scy		os=sunos4.1.1
1580238106Sdes		;;
1581366095Scy	pru-*)
1582366095Scy		os=elf
1583366095Scy		;;
1584238106Sdes	*-be)
1585366095Scy		os=beos
1586238106Sdes		;;
1587238106Sdes	*-ibm)
1588366095Scy		os=aix
1589238106Sdes		;;
1590249141Sdes	*-knuth)
1591366095Scy		os=mmixware
1592238106Sdes		;;
1593238106Sdes	*-wec)
1594366095Scy		os=proelf
1595238106Sdes		;;
1596238106Sdes	*-winbond)
1597366095Scy		os=proelf
1598238106Sdes		;;
1599238106Sdes	*-oki)
1600366095Scy		os=proelf
1601238106Sdes		;;
1602238106Sdes	*-hp)
1603366095Scy		os=hpux
1604238106Sdes		;;
1605238106Sdes	*-hitachi)
1606366095Scy		os=hiux
1607238106Sdes		;;
1608238106Sdes	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1609366095Scy		os=sysv
1610238106Sdes		;;
1611238106Sdes	*-cbm)
1612366095Scy		os=amigaos
1613238106Sdes		;;
1614238106Sdes	*-dg)
1615366095Scy		os=dgux
1616238106Sdes		;;
1617238106Sdes	*-dolphin)
1618366095Scy		os=sysv3
1619238106Sdes		;;
1620238106Sdes	m68k-ccur)
1621366095Scy		os=rtu
1622238106Sdes		;;
1623238106Sdes	m88k-omron*)
1624366095Scy		os=luna
1625238106Sdes		;;
1626366095Scy	*-next)
1627366095Scy		os=nextstep
1628238106Sdes		;;
1629238106Sdes	*-sequent)
1630366095Scy		os=ptx
1631238106Sdes		;;
1632238106Sdes	*-crds)
1633366095Scy		os=unos
1634238106Sdes		;;
1635238106Sdes	*-ns)
1636366095Scy		os=genix
1637238106Sdes		;;
1638238106Sdes	i370-*)
1639366095Scy		os=mvs
1640238106Sdes		;;
1641238106Sdes	*-gould)
1642366095Scy		os=sysv
1643238106Sdes		;;
1644238106Sdes	*-highlevel)
1645366095Scy		os=bsd
1646238106Sdes		;;
1647238106Sdes	*-encore)
1648366095Scy		os=bsd
1649238106Sdes		;;
1650238106Sdes	*-sgi)
1651366095Scy		os=irix
1652238106Sdes		;;
1653238106Sdes	*-siemens)
1654366095Scy		os=sysv4
1655238106Sdes		;;
1656238106Sdes	*-masscomp)
1657366095Scy		os=rtu
1658238106Sdes		;;
1659238106Sdes	f30[01]-fujitsu | f700-fujitsu)
1660366095Scy		os=uxpv
1661238106Sdes		;;
1662238106Sdes	*-rom68k)
1663366095Scy		os=coff
1664238106Sdes		;;
1665238106Sdes	*-*bug)
1666366095Scy		os=coff
1667238106Sdes		;;
1668238106Sdes	*-apple)
1669366095Scy		os=macos
1670238106Sdes		;;
1671238106Sdes	*-atari*)
1672366095Scy		os=mint
1673238106Sdes		;;
1674366095Scy	*-wrs)
1675366095Scy		os=vxworks
1676366095Scy		;;
1677238106Sdes	*)
1678366095Scy		os=none
1679238106Sdes		;;
1680238106Sdesesac
1681366095Scy
1682238106Sdesfi
1683238106Sdes
1684366095Scy# Now, validate our (potentially fixed-up) OS.
1685366095Scycase $os in
1686369939Sgit2svn	# Sometimes we do "kernel-libc", so those need to count as OSes.
1687366095Scy	musl* | newlib* | uclibc*)
1688366095Scy		;;
1689369939Sgit2svn	# Likewise for "kernel-abi"
1690369939Sgit2svn	eabi* | gnueabi*)
1691366095Scy		;;
1692369939Sgit2svn	# VxWorks passes extra cpu info in the 4th filed.
1693369939Sgit2svn	simlinux | simwindows | spe)
1694369939Sgit2svn		;;
1695366095Scy	# Now accept the basic system types.
1696366095Scy	# The portable systems comes first.
1697366095Scy	# Each alternative MUST end in a * to match a version number.
1698366095Scy	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
1699366095Scy	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
1700366095Scy	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
1701366095Scy	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
1702366095Scy	     | hiux* | abug | nacl* | netware* | windows* \
1703366095Scy	     | os9* | macos* | osx* | ios* \
1704366095Scy	     | mpw* | magic* | mmixware* | mon960* | lnews* \
1705366095Scy	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
1706366095Scy	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
1707366095Scy	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
1708366095Scy	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
1709366095Scy	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
1710366095Scy	     | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
1711366095Scy	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
1712366095Scy	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
1713366095Scy	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
1714366095Scy	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
1715366095Scy	     | chorusrdb* | cegcc* | glidix* \
1716366095Scy	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
1717366095Scy	     | midipix* | mingw32* | mingw64* | mint* \
1718366095Scy	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
1719366095Scy	     | interix* | uwin* | mks* | rhapsody* | darwin* \
1720366095Scy	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
1721366095Scy	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
1722366095Scy	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
1723366095Scy	     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
1724366095Scy	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
1725366095Scy	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
1726366095Scy	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
1727366095Scy	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
1728368693Scy	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*)
1729366095Scy		;;
1730366095Scy	# This one is extra strict with allowed versions
1731366095Scy	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
1732366095Scy		# Don't forget version if it is 3.2v4 or newer.
1733366095Scy		;;
1734366095Scy	none)
1735366095Scy		;;
1736366095Scy	*)
1737366095Scy		echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
1738366095Scy		exit 1
1739366095Scy		;;
1740366095Scyesac
1741366095Scy
1742366095Scy# As a final step for OS-related things, validate the OS-kernel combination
1743366095Scy# (given a valid OS), if there is a kernel.
1744366095Scycase $kernel-$os in
1745366095Scy	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
1746366095Scy		;;
1747368129Scy	uclinux-uclibc* )
1748368129Scy		;;
1749366095Scy	-dietlibc* | -newlib* | -musl* | -uclibc* )
1750366095Scy		# These are just libc implementations, not actual OSes, and thus
1751366095Scy		# require a kernel.
1752366095Scy		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
1753366095Scy		exit 1
1754366095Scy		;;
1755366095Scy	kfreebsd*-gnu* | kopensolaris*-gnu*)
1756366095Scy		;;
1757369939Sgit2svn	vxworks-simlinux | vxworks-simwindows | vxworks-spe)
1758369939Sgit2svn		;;
1759366095Scy	nto-qnx*)
1760366095Scy		;;
1761368693Scy	os2-emx)
1762368693Scy		;;
1763366095Scy	*-eabi* | *-gnueabi*)
1764366095Scy		;;
1765366095Scy	-*)
1766366095Scy		# Blank kernel with real OS is always fine.
1767366095Scy		;;
1768366095Scy	*-*)
1769366095Scy		echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
1770366095Scy		exit 1
1771366095Scy		;;
1772366095Scyesac
1773366095Scy
1774238106Sdes# Here we handle the case where we know the os, and the CPU type, but not the
1775238106Sdes# manufacturer.  We pick the logical manufacturer.
1776366095Scycase $vendor in
1777366095Scy	unknown)
1778366095Scy		case $cpu-$os in
1779366095Scy			*-riscix*)
1780238106Sdes				vendor=acorn
1781238106Sdes				;;
1782366095Scy			*-sunos*)
1783238106Sdes				vendor=sun
1784238106Sdes				;;
1785366095Scy			*-cnk* | *-aix*)
1786238106Sdes				vendor=ibm
1787238106Sdes				;;
1788366095Scy			*-beos*)
1789238106Sdes				vendor=be
1790238106Sdes				;;
1791366095Scy			*-hpux*)
1792238106Sdes				vendor=hp
1793238106Sdes				;;
1794366095Scy			*-mpeix*)
1795238106Sdes				vendor=hp
1796238106Sdes				;;
1797366095Scy			*-hiux*)
1798238106Sdes				vendor=hitachi
1799238106Sdes				;;
1800366095Scy			*-unos*)
1801238106Sdes				vendor=crds
1802238106Sdes				;;
1803366095Scy			*-dgux*)
1804238106Sdes				vendor=dg
1805238106Sdes				;;
1806366095Scy			*-luna*)
1807238106Sdes				vendor=omron
1808238106Sdes				;;
1809366095Scy			*-genix*)
1810238106Sdes				vendor=ns
1811238106Sdes				;;
1812366095Scy			*-clix*)
1813366095Scy				vendor=intergraph
1814366095Scy				;;
1815366095Scy			*-mvs* | *-opened*)
1816238106Sdes				vendor=ibm
1817238106Sdes				;;
1818366095Scy			*-os400*)
1819238106Sdes				vendor=ibm
1820238106Sdes				;;
1821366095Scy			s390-* | s390x-*)
1822366095Scy				vendor=ibm
1823366095Scy				;;
1824366095Scy			*-ptx*)
1825238106Sdes				vendor=sequent
1826238106Sdes				;;
1827366095Scy			*-tpf*)
1828238106Sdes				vendor=ibm
1829238106Sdes				;;
1830366095Scy			*-vxsim* | *-vxworks* | *-windiss*)
1831238106Sdes				vendor=wrs
1832238106Sdes				;;
1833366095Scy			*-aux*)
1834238106Sdes				vendor=apple
1835238106Sdes				;;
1836366095Scy			*-hms*)
1837238106Sdes				vendor=hitachi
1838238106Sdes				;;
1839366095Scy			*-mpw* | *-macos*)
1840238106Sdes				vendor=apple
1841238106Sdes				;;
1842366095Scy			*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
1843238106Sdes				vendor=atari
1844238106Sdes				;;
1845366095Scy			*-vos*)
1846238106Sdes				vendor=stratus
1847238106Sdes				;;
1848238106Sdes		esac
1849238106Sdes		;;
1850238106Sdesesac
1851238106Sdes
1852366095Scyecho "$cpu-$vendor-${kernel:+$kernel-}$os"
1853238106Sdesexit
1854238106Sdes
1855238106Sdes# Local variables:
1856366095Scy# eval: (add-hook 'before-save-hook 'time-stamp)
1857238106Sdes# time-stamp-start: "timestamp='"
1858238106Sdes# time-stamp-format: "%:y-%02m-%02d"
1859238106Sdes# time-stamp-end: "'"
1860238106Sdes# End:
1861