xref: /netbsd/external/gpl3/gdb.old/dist/config.sub (revision 184b2d41)
1a1ba9ba4Schristos#! /bin/sh
2a1ba9ba4Schristos# Configuration validation subroutine script.
3*184b2d41Schristos#   Copyright 1992-2020 Free Software Foundation, Inc.
4a1ba9ba4Schristos
5*184b2d41Schristostimestamp='2020-01-01'
6a1ba9ba4Schristos
7a1ba9ba4Schristos# This file is free software; you can redistribute it and/or modify it
8a1ba9ba4Schristos# under the terms of the GNU General Public License as published by
9a1ba9ba4Schristos# the Free Software Foundation; either version 3 of the License, or
10a1ba9ba4Schristos# (at your option) any later version.
11a1ba9ba4Schristos#
12a1ba9ba4Schristos# This program is distributed in the hope that it will be useful, but
13a1ba9ba4Schristos# WITHOUT ANY WARRANTY; without even the implied warranty of
14a1ba9ba4Schristos# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15a1ba9ba4Schristos# General Public License for more details.
16a1ba9ba4Schristos#
17a1ba9ba4Schristos# You should have received a copy of the GNU General Public License
18051580eeSchristos# along with this program; if not, see <https://www.gnu.org/licenses/>.
19a1ba9ba4Schristos#
20a1ba9ba4Schristos# As a special exception to the GNU General Public License, if you
21a1ba9ba4Schristos# distribute this file as part of a program that contains a
22a1ba9ba4Schristos# configuration script generated by Autoconf, you may include it under
23a1ba9ba4Schristos# the same distribution terms that you use for the rest of that
24a1ba9ba4Schristos# program.  This Exception is an additional permission under section 7
25a1ba9ba4Schristos# of the GNU General Public License, version 3 ("GPLv3").
26a1ba9ba4Schristos
27a1ba9ba4Schristos
28a1ba9ba4Schristos# Please send patches to <config-patches@gnu.org>.
29a1ba9ba4Schristos#
30a1ba9ba4Schristos# Configuration subroutine to validate and canonicalize a configuration type.
31a1ba9ba4Schristos# Supply the specified configuration type as an argument.
32a1ba9ba4Schristos# If it is invalid, we print an error message on stderr and exit with code 1.
33a1ba9ba4Schristos# Otherwise, we print the canonical config type on stdout and succeed.
34a1ba9ba4Schristos
35a1ba9ba4Schristos# You can get the latest version of this script from:
36051580eeSchristos# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
37a1ba9ba4Schristos
38a1ba9ba4Schristos# This file is supposed to be the same for all GNU packages
39a1ba9ba4Schristos# and recognize all the CPU types, system types and aliases
40a1ba9ba4Schristos# that are meaningful with *any* GNU software.
41a1ba9ba4Schristos# Each package is responsible for reporting which valid configurations
42a1ba9ba4Schristos# it does not support.  The user should be able to distinguish
43a1ba9ba4Schristos# a failure to support a valid configuration from a meaningless
44a1ba9ba4Schristos# configuration.
45a1ba9ba4Schristos
46a1ba9ba4Schristos# The goal of this file is to map all the various variations of a given
47a1ba9ba4Schristos# machine specification into a single specification in the form:
48a1ba9ba4Schristos#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
49a1ba9ba4Schristos# or in some cases, the newer four-part form:
50a1ba9ba4Schristos#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
51a1ba9ba4Schristos# It is wrong to echo any other type of specification.
52a1ba9ba4Schristos
53a1ba9ba4Schristosme=`echo "$0" | sed -e 's,.*/,,'`
54a1ba9ba4Schristos
55a1ba9ba4Schristosusage="\
5632b71e0eSsevanUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
57a1ba9ba4Schristos
58a1ba9ba4SchristosCanonicalize a configuration name.
59a1ba9ba4Schristos
60051580eeSchristosOptions:
61a1ba9ba4Schristos  -h, --help         print this help, then exit
62a1ba9ba4Schristos  -t, --time-stamp   print date of last modification, then exit
63a1ba9ba4Schristos  -v, --version      print version number, then exit
64a1ba9ba4Schristos
65a1ba9ba4SchristosReport bugs and patches to <config-patches@gnu.org>."
66a1ba9ba4Schristos
67a1ba9ba4Schristosversion="\
68a1ba9ba4SchristosGNU config.sub ($timestamp)
69a1ba9ba4Schristos
70*184b2d41SchristosCopyright 1992-2020 Free Software Foundation, Inc.
71a1ba9ba4Schristos
72a1ba9ba4SchristosThis is free software; see the source for copying conditions.  There is NO
73a1ba9ba4Schristoswarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
74a1ba9ba4Schristos
75a1ba9ba4Schristoshelp="
76a1ba9ba4SchristosTry \`$me --help' for more information."
77a1ba9ba4Schristos
78a1ba9ba4Schristos# Parse command line
79a1ba9ba4Schristoswhile test $# -gt 0 ; do
80a1ba9ba4Schristos  case $1 in
81a1ba9ba4Schristos    --time-stamp | --time* | -t )
82a1ba9ba4Schristos       echo "$timestamp" ; exit ;;
83a1ba9ba4Schristos    --version | -v )
84a1ba9ba4Schristos       echo "$version" ; exit ;;
85a1ba9ba4Schristos    --help | --h* | -h )
86a1ba9ba4Schristos       echo "$usage"; exit ;;
87a1ba9ba4Schristos    -- )     # Stop option processing
88a1ba9ba4Schristos       shift; break ;;
89a1ba9ba4Schristos    - )	# Use stdin as input.
90a1ba9ba4Schristos       break ;;
91a1ba9ba4Schristos    -* )
92051580eeSchristos       echo "$me: invalid option $1$help" >&2
93a1ba9ba4Schristos       exit 1 ;;
94a1ba9ba4Schristos
95a1ba9ba4Schristos    *local*)
96a1ba9ba4Schristos       # First pass through any local machine types.
97051580eeSchristos       echo "$1"
98a1ba9ba4Schristos       exit ;;
99a1ba9ba4Schristos
100a1ba9ba4Schristos    * )
101a1ba9ba4Schristos       break ;;
102a1ba9ba4Schristos  esac
103a1ba9ba4Schristosdone
104a1ba9ba4Schristos
105a1ba9ba4Schristoscase $# in
106a1ba9ba4Schristos 0) echo "$me: missing argument$help" >&2
107a1ba9ba4Schristos    exit 1;;
108a1ba9ba4Schristos 1) ;;
109a1ba9ba4Schristos *) echo "$me: too many arguments$help" >&2
110a1ba9ba4Schristos    exit 1;;
111a1ba9ba4Schristosesac
112a1ba9ba4Schristos
113051580eeSchristos# Split fields of configuration type
114051580eeSchristos# shellcheck disable=SC2162
115051580eeSchristosIFS="-" read field1 field2 field3 field4 <<EOF
116051580eeSchristos$1
117051580eeSchristosEOF
118051580eeSchristos
119051580eeSchristos# Separate into logical components for further validation
120051580eeSchristoscase $1 in
121051580eeSchristos	*-*-*-*-*)
122051580eeSchristos		echo Invalid configuration \`"$1"\': more than four components >&2
123051580eeSchristos		exit 1
124051580eeSchristos		;;
125051580eeSchristos	*-*-*-*)
126051580eeSchristos		basic_machine=$field1-$field2
127051580eeSchristos		os=$field3-$field4
128051580eeSchristos		;;
129051580eeSchristos	*-*-*)
130051580eeSchristos		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
131051580eeSchristos		# parts
132051580eeSchristos		maybe_os=$field2-$field3
133a1ba9ba4Schristos		case $maybe_os in
134051580eeSchristos			nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
135051580eeSchristos			| linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
136051580eeSchristos			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
137051580eeSchristos			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
138051580eeSchristos			| storm-chaos* | os2-emx* | rtmk-nova*)
139051580eeSchristos				basic_machine=$field1
140051580eeSchristos				os=$maybe_os
141a1ba9ba4Schristos				;;
142a1ba9ba4Schristos			android-linux)
143051580eeSchristos				basic_machine=$field1-unknown
144051580eeSchristos				os=linux-android
145a1ba9ba4Schristos				;;
146a1ba9ba4Schristos			*)
147051580eeSchristos				basic_machine=$field1-$field2
148051580eeSchristos				os=$field3
149051580eeSchristos				;;
150051580eeSchristos		esac
151051580eeSchristos		;;
152051580eeSchristos	*-*)
153051580eeSchristos		# A lone config we happen to match not fitting any pattern
154051580eeSchristos		case $field1-$field2 in
155051580eeSchristos			decstation-3100)
156051580eeSchristos				basic_machine=mips-dec
157051580eeSchristos				os=
158051580eeSchristos				;;
159051580eeSchristos			*-*)
160051580eeSchristos				# Second component is usually, but not always the OS
161051580eeSchristos				case $field2 in
162051580eeSchristos					# Prevent following clause from handling this valid os
163051580eeSchristos					sun*os*)
164051580eeSchristos						basic_machine=$field1
165051580eeSchristos						os=$field2
166051580eeSchristos						;;
167051580eeSchristos					# Manufacturers
168051580eeSchristos					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
169051580eeSchristos					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
170051580eeSchristos					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
171051580eeSchristos					| convergent* | ncr* | news | 32* | 3600* | 3100* \
172051580eeSchristos					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
173051580eeSchristos					| ultra | tti* | harris | dolphin | highlevel | gould \
174051580eeSchristos					| cbm | ns | masscomp | apple | axis | knuth | cray \
175051580eeSchristos					| microblaze* | sim | cisco \
176051580eeSchristos					| oki | wec | wrs | winbond)
177051580eeSchristos						basic_machine=$field1-$field2
178051580eeSchristos						os=
179051580eeSchristos						;;
180051580eeSchristos					*)
181051580eeSchristos						basic_machine=$field1
182051580eeSchristos						os=$field2
183051580eeSchristos						;;
184051580eeSchristos				esac
185051580eeSchristos			;;
186051580eeSchristos		esac
187051580eeSchristos		;;
188051580eeSchristos	*)
189051580eeSchristos		# Convert single-component short-hands not valid as part of
190051580eeSchristos		# multi-component configurations.
191051580eeSchristos		case $field1 in
192051580eeSchristos			386bsd)
193051580eeSchristos				basic_machine=i386-pc
194051580eeSchristos				os=bsd
195051580eeSchristos				;;
196051580eeSchristos			a29khif)
197051580eeSchristos				basic_machine=a29k-amd
198051580eeSchristos				os=udi
199051580eeSchristos				;;
200051580eeSchristos			adobe68k)
201051580eeSchristos				basic_machine=m68010-adobe
202051580eeSchristos				os=scout
203051580eeSchristos				;;
204051580eeSchristos			alliant)
205051580eeSchristos				basic_machine=fx80-alliant
206051580eeSchristos				os=
207051580eeSchristos				;;
208051580eeSchristos			altos | altos3068)
209051580eeSchristos				basic_machine=m68k-altos
210051580eeSchristos				os=
211051580eeSchristos				;;
212051580eeSchristos			am29k)
213051580eeSchristos				basic_machine=a29k-none
214051580eeSchristos				os=bsd
215051580eeSchristos				;;
216051580eeSchristos			amdahl)
217051580eeSchristos				basic_machine=580-amdahl
218051580eeSchristos				os=sysv
219051580eeSchristos				;;
220051580eeSchristos			amiga)
221051580eeSchristos				basic_machine=m68k-unknown
222051580eeSchristos				os=
223051580eeSchristos				;;
224051580eeSchristos			amigaos | amigados)
225051580eeSchristos				basic_machine=m68k-unknown
226051580eeSchristos				os=amigaos
227051580eeSchristos				;;
228051580eeSchristos			amigaunix | amix)
229051580eeSchristos				basic_machine=m68k-unknown
230051580eeSchristos				os=sysv4
231051580eeSchristos				;;
232051580eeSchristos			apollo68)
233051580eeSchristos				basic_machine=m68k-apollo
234051580eeSchristos				os=sysv
235051580eeSchristos				;;
236051580eeSchristos			apollo68bsd)
237051580eeSchristos				basic_machine=m68k-apollo
238051580eeSchristos				os=bsd
239051580eeSchristos				;;
240051580eeSchristos			aros)
241051580eeSchristos				basic_machine=i386-pc
242051580eeSchristos				os=aros
243051580eeSchristos				;;
244051580eeSchristos			aux)
245051580eeSchristos				basic_machine=m68k-apple
246051580eeSchristos				os=aux
247051580eeSchristos				;;
248051580eeSchristos			balance)
249051580eeSchristos				basic_machine=ns32k-sequent
250051580eeSchristos				os=dynix
251051580eeSchristos				;;
252051580eeSchristos			blackfin)
253051580eeSchristos				basic_machine=bfin-unknown
254051580eeSchristos				os=linux
255051580eeSchristos				;;
256051580eeSchristos			cegcc)
257051580eeSchristos				basic_machine=arm-unknown
258051580eeSchristos				os=cegcc
259051580eeSchristos				;;
260051580eeSchristos			convex-c1)
261051580eeSchristos				basic_machine=c1-convex
262051580eeSchristos				os=bsd
263051580eeSchristos				;;
264051580eeSchristos			convex-c2)
265051580eeSchristos				basic_machine=c2-convex
266051580eeSchristos				os=bsd
267051580eeSchristos				;;
268051580eeSchristos			convex-c32)
269051580eeSchristos				basic_machine=c32-convex
270051580eeSchristos				os=bsd
271051580eeSchristos				;;
272051580eeSchristos			convex-c34)
273051580eeSchristos				basic_machine=c34-convex
274051580eeSchristos				os=bsd
275051580eeSchristos				;;
276051580eeSchristos			convex-c38)
277051580eeSchristos				basic_machine=c38-convex
278051580eeSchristos				os=bsd
279051580eeSchristos				;;
280051580eeSchristos			cray)
281051580eeSchristos				basic_machine=j90-cray
282051580eeSchristos				os=unicos
283051580eeSchristos				;;
284051580eeSchristos			crds | unos)
285051580eeSchristos				basic_machine=m68k-crds
286051580eeSchristos				os=
287051580eeSchristos				;;
288051580eeSchristos			da30)
289051580eeSchristos				basic_machine=m68k-da30
290051580eeSchristos				os=
291051580eeSchristos				;;
292051580eeSchristos			decstation | pmax | pmin | dec3100 | decstatn)
293051580eeSchristos				basic_machine=mips-dec
294051580eeSchristos				os=
295051580eeSchristos				;;
296051580eeSchristos			delta88)
297051580eeSchristos				basic_machine=m88k-motorola
298051580eeSchristos				os=sysv3
299051580eeSchristos				;;
300051580eeSchristos			dicos)
301051580eeSchristos				basic_machine=i686-pc
302051580eeSchristos				os=dicos
303051580eeSchristos				;;
304051580eeSchristos			djgpp)
305051580eeSchristos				basic_machine=i586-pc
306051580eeSchristos				os=msdosdjgpp
307051580eeSchristos				;;
308051580eeSchristos			ebmon29k)
309051580eeSchristos				basic_machine=a29k-amd
310051580eeSchristos				os=ebmon
311051580eeSchristos				;;
312051580eeSchristos			es1800 | OSE68k | ose68k | ose | OSE)
313051580eeSchristos				basic_machine=m68k-ericsson
314051580eeSchristos				os=ose
315051580eeSchristos				;;
316051580eeSchristos			gmicro)
317051580eeSchristos				basic_machine=tron-gmicro
318051580eeSchristos				os=sysv
319051580eeSchristos				;;
320051580eeSchristos			go32)
321051580eeSchristos				basic_machine=i386-pc
322051580eeSchristos				os=go32
323051580eeSchristos				;;
324051580eeSchristos			h8300hms)
325051580eeSchristos				basic_machine=h8300-hitachi
326051580eeSchristos				os=hms
327051580eeSchristos				;;
328051580eeSchristos			h8300xray)
329051580eeSchristos				basic_machine=h8300-hitachi
330051580eeSchristos				os=xray
331051580eeSchristos				;;
332051580eeSchristos			h8500hms)
333051580eeSchristos				basic_machine=h8500-hitachi
334051580eeSchristos				os=hms
335051580eeSchristos				;;
336051580eeSchristos			harris)
337051580eeSchristos				basic_machine=m88k-harris
338051580eeSchristos				os=sysv3
339051580eeSchristos				;;
340*184b2d41Schristos			hp300 | hp300hpux)
341051580eeSchristos				basic_machine=m68k-hp
342*184b2d41Schristos				os=hpux
343051580eeSchristos				;;
344051580eeSchristos			hp300bsd)
345051580eeSchristos				basic_machine=m68k-hp
346051580eeSchristos				os=bsd
347051580eeSchristos				;;
348051580eeSchristos			hppaosf)
349051580eeSchristos				basic_machine=hppa1.1-hp
350051580eeSchristos				os=osf
351051580eeSchristos				;;
352051580eeSchristos			hppro)
353051580eeSchristos				basic_machine=hppa1.1-hp
354051580eeSchristos				os=proelf
355051580eeSchristos				;;
356051580eeSchristos			i386mach)
357051580eeSchristos				basic_machine=i386-mach
358051580eeSchristos				os=mach
359051580eeSchristos				;;
360051580eeSchristos			isi68 | isi)
361051580eeSchristos				basic_machine=m68k-isi
362051580eeSchristos				os=sysv
363051580eeSchristos				;;
364051580eeSchristos			m68knommu)
365051580eeSchristos				basic_machine=m68k-unknown
366051580eeSchristos				os=linux
367051580eeSchristos				;;
368051580eeSchristos			magnum | m3230)
369051580eeSchristos				basic_machine=mips-mips
370051580eeSchristos				os=sysv
371051580eeSchristos				;;
372051580eeSchristos			merlin)
373051580eeSchristos				basic_machine=ns32k-utek
374051580eeSchristos				os=sysv
375051580eeSchristos				;;
376051580eeSchristos			mingw64)
377051580eeSchristos				basic_machine=x86_64-pc
378051580eeSchristos				os=mingw64
379051580eeSchristos				;;
380051580eeSchristos			mingw32)
381051580eeSchristos				basic_machine=i686-pc
382051580eeSchristos				os=mingw32
383051580eeSchristos				;;
384051580eeSchristos			mingw32ce)
385051580eeSchristos				basic_machine=arm-unknown
386051580eeSchristos				os=mingw32ce
387051580eeSchristos				;;
388051580eeSchristos			monitor)
389051580eeSchristos				basic_machine=m68k-rom68k
390051580eeSchristos				os=coff
391051580eeSchristos				;;
392051580eeSchristos			morphos)
393051580eeSchristos				basic_machine=powerpc-unknown
394051580eeSchristos				os=morphos
395051580eeSchristos				;;
396051580eeSchristos			moxiebox)
397051580eeSchristos				basic_machine=moxie-unknown
398051580eeSchristos				os=moxiebox
399051580eeSchristos				;;
400051580eeSchristos			msdos)
401051580eeSchristos				basic_machine=i386-pc
402051580eeSchristos				os=msdos
403051580eeSchristos				;;
404051580eeSchristos			msys)
405051580eeSchristos				basic_machine=i686-pc
406051580eeSchristos				os=msys
407051580eeSchristos				;;
408051580eeSchristos			mvs)
409051580eeSchristos				basic_machine=i370-ibm
410051580eeSchristos				os=mvs
411051580eeSchristos				;;
412051580eeSchristos			nacl)
413051580eeSchristos				basic_machine=le32-unknown
414051580eeSchristos				os=nacl
415051580eeSchristos				;;
416051580eeSchristos			ncr3000)
417051580eeSchristos				basic_machine=i486-ncr
418051580eeSchristos				os=sysv4
419051580eeSchristos				;;
420051580eeSchristos			netbsd386)
421051580eeSchristos				basic_machine=i386-pc
422051580eeSchristos				os=netbsd
423051580eeSchristos				;;
424051580eeSchristos			netwinder)
425051580eeSchristos				basic_machine=armv4l-rebel
426051580eeSchristos				os=linux
427051580eeSchristos				;;
428051580eeSchristos			news | news700 | news800 | news900)
429051580eeSchristos				basic_machine=m68k-sony
430051580eeSchristos				os=newsos
431051580eeSchristos				;;
432051580eeSchristos			news1000)
433051580eeSchristos				basic_machine=m68030-sony
434051580eeSchristos				os=newsos
435051580eeSchristos				;;
436051580eeSchristos			necv70)
437051580eeSchristos				basic_machine=v70-nec
438051580eeSchristos				os=sysv
439051580eeSchristos				;;
440051580eeSchristos			nh3000)
441051580eeSchristos				basic_machine=m68k-harris
442051580eeSchristos				os=cxux
443051580eeSchristos				;;
444051580eeSchristos			nh[45]000)
445051580eeSchristos				basic_machine=m88k-harris
446051580eeSchristos				os=cxux
447051580eeSchristos				;;
448051580eeSchristos			nindy960)
449051580eeSchristos				basic_machine=i960-intel
450051580eeSchristos				os=nindy
451051580eeSchristos				;;
452051580eeSchristos			mon960)
453051580eeSchristos				basic_machine=i960-intel
454051580eeSchristos				os=mon960
455051580eeSchristos				;;
456051580eeSchristos			nonstopux)
457051580eeSchristos				basic_machine=mips-compaq
458051580eeSchristos				os=nonstopux
459051580eeSchristos				;;
460051580eeSchristos			os400)
461051580eeSchristos				basic_machine=powerpc-ibm
462051580eeSchristos				os=os400
463051580eeSchristos				;;
464051580eeSchristos			OSE68000 | ose68000)
465051580eeSchristos				basic_machine=m68000-ericsson
466051580eeSchristos				os=ose
467051580eeSchristos				;;
468051580eeSchristos			os68k)
469051580eeSchristos				basic_machine=m68k-none
470051580eeSchristos				os=os68k
471051580eeSchristos				;;
472051580eeSchristos			paragon)
473051580eeSchristos				basic_machine=i860-intel
474051580eeSchristos				os=osf
475051580eeSchristos				;;
476051580eeSchristos			parisc)
477051580eeSchristos				basic_machine=hppa-unknown
478051580eeSchristos				os=linux
479051580eeSchristos				;;
480051580eeSchristos			pw32)
481051580eeSchristos				basic_machine=i586-unknown
482051580eeSchristos				os=pw32
483051580eeSchristos				;;
484051580eeSchristos			rdos | rdos64)
485051580eeSchristos				basic_machine=x86_64-pc
486051580eeSchristos				os=rdos
487051580eeSchristos				;;
488051580eeSchristos			rdos32)
489051580eeSchristos				basic_machine=i386-pc
490051580eeSchristos				os=rdos
491051580eeSchristos				;;
492051580eeSchristos			rom68k)
493051580eeSchristos				basic_machine=m68k-rom68k
494051580eeSchristos				os=coff
495051580eeSchristos				;;
496051580eeSchristos			sa29200)
497051580eeSchristos				basic_machine=a29k-amd
498051580eeSchristos				os=udi
499051580eeSchristos				;;
500051580eeSchristos			sei)
501051580eeSchristos				basic_machine=mips-sei
502051580eeSchristos				os=seiux
503051580eeSchristos				;;
504051580eeSchristos			sequent)
505051580eeSchristos				basic_machine=i386-sequent
506051580eeSchristos				os=
507051580eeSchristos				;;
508051580eeSchristos			sps7)
509051580eeSchristos				basic_machine=m68k-bull
510051580eeSchristos				os=sysv2
511051580eeSchristos				;;
512051580eeSchristos			st2000)
513051580eeSchristos				basic_machine=m68k-tandem
514051580eeSchristos				os=
515051580eeSchristos				;;
516051580eeSchristos			stratus)
517051580eeSchristos				basic_machine=i860-stratus
518051580eeSchristos				os=sysv4
519051580eeSchristos				;;
520051580eeSchristos			sun2)
521051580eeSchristos				basic_machine=m68000-sun
522051580eeSchristos				os=
523051580eeSchristos				;;
524051580eeSchristos			sun2os3)
525051580eeSchristos				basic_machine=m68000-sun
526051580eeSchristos				os=sunos3
527051580eeSchristos				;;
528051580eeSchristos			sun2os4)
529051580eeSchristos				basic_machine=m68000-sun
530051580eeSchristos				os=sunos4
531051580eeSchristos				;;
532051580eeSchristos			sun3)
533051580eeSchristos				basic_machine=m68k-sun
534051580eeSchristos				os=
535051580eeSchristos				;;
536051580eeSchristos			sun3os3)
537051580eeSchristos				basic_machine=m68k-sun
538051580eeSchristos				os=sunos3
539051580eeSchristos				;;
540051580eeSchristos			sun3os4)
541051580eeSchristos				basic_machine=m68k-sun
542051580eeSchristos				os=sunos4
543051580eeSchristos				;;
544051580eeSchristos			sun4)
545051580eeSchristos				basic_machine=sparc-sun
546051580eeSchristos				os=
547051580eeSchristos				;;
548051580eeSchristos			sun4os3)
549051580eeSchristos				basic_machine=sparc-sun
550051580eeSchristos				os=sunos3
551051580eeSchristos				;;
552051580eeSchristos			sun4os4)
553051580eeSchristos				basic_machine=sparc-sun
554051580eeSchristos				os=sunos4
555051580eeSchristos				;;
556051580eeSchristos			sun4sol2)
557051580eeSchristos				basic_machine=sparc-sun
558051580eeSchristos				os=solaris2
559051580eeSchristos				;;
560051580eeSchristos			sun386 | sun386i | roadrunner)
561051580eeSchristos				basic_machine=i386-sun
562051580eeSchristos				os=
563051580eeSchristos				;;
564051580eeSchristos			sv1)
565051580eeSchristos				basic_machine=sv1-cray
566051580eeSchristos				os=unicos
567051580eeSchristos				;;
568051580eeSchristos			symmetry)
569051580eeSchristos				basic_machine=i386-sequent
570051580eeSchristos				os=dynix
571051580eeSchristos				;;
572051580eeSchristos			t3e)
573051580eeSchristos				basic_machine=alphaev5-cray
574051580eeSchristos				os=unicos
575051580eeSchristos				;;
576051580eeSchristos			t90)
577051580eeSchristos				basic_machine=t90-cray
578051580eeSchristos				os=unicos
579051580eeSchristos				;;
580051580eeSchristos			toad1)
581051580eeSchristos				basic_machine=pdp10-xkl
582051580eeSchristos				os=tops20
583051580eeSchristos				;;
584051580eeSchristos			tpf)
585051580eeSchristos				basic_machine=s390x-ibm
586051580eeSchristos				os=tpf
587051580eeSchristos				;;
588051580eeSchristos			udi29k)
589051580eeSchristos				basic_machine=a29k-amd
590051580eeSchristos				os=udi
591051580eeSchristos				;;
592051580eeSchristos			ultra3)
593051580eeSchristos				basic_machine=a29k-nyu
594051580eeSchristos				os=sym1
595051580eeSchristos				;;
596051580eeSchristos			v810 | necv810)
597051580eeSchristos				basic_machine=v810-nec
598051580eeSchristos				os=none
599051580eeSchristos				;;
600051580eeSchristos			vaxv)
601051580eeSchristos				basic_machine=vax-dec
602051580eeSchristos				os=sysv
603051580eeSchristos				;;
604051580eeSchristos			vms)
605051580eeSchristos				basic_machine=vax-dec
606051580eeSchristos				os=vms
607051580eeSchristos				;;
608*184b2d41Schristos			vsta)
609*184b2d41Schristos				basic_machine=i386-pc
610*184b2d41Schristos				os=vsta
611*184b2d41Schristos				;;
612051580eeSchristos			vxworks960)
613051580eeSchristos				basic_machine=i960-wrs
614051580eeSchristos				os=vxworks
615051580eeSchristos				;;
616051580eeSchristos			vxworks68)
617051580eeSchristos				basic_machine=m68k-wrs
618051580eeSchristos				os=vxworks
619051580eeSchristos				;;
620051580eeSchristos			vxworks29k)
621051580eeSchristos				basic_machine=a29k-wrs
622051580eeSchristos				os=vxworks
623051580eeSchristos				;;
624051580eeSchristos			xbox)
625051580eeSchristos				basic_machine=i686-pc
626051580eeSchristos				os=mingw32
627051580eeSchristos				;;
628051580eeSchristos			ymp)
629051580eeSchristos				basic_machine=ymp-cray
630051580eeSchristos				os=unicos
631051580eeSchristos				;;
632051580eeSchristos			*)
633051580eeSchristos				basic_machine=$1
634051580eeSchristos				os=
635051580eeSchristos				;;
636051580eeSchristos		esac
637a1ba9ba4Schristos		;;
638a1ba9ba4Schristosesac
639a1ba9ba4Schristos
640051580eeSchristos# Decode 1-component or ad-hoc basic machines
641a1ba9ba4Schristoscase $basic_machine in
642051580eeSchristos	# Here we handle the default manufacturer of certain CPU types.  It is in
643051580eeSchristos	# some cases the only manufacturer, in others, it is the most popular.
644051580eeSchristos	w89k)
645051580eeSchristos		cpu=hppa1.1
646051580eeSchristos		vendor=winbond
647051580eeSchristos		;;
648051580eeSchristos	op50n)
649051580eeSchristos		cpu=hppa1.1
650051580eeSchristos		vendor=oki
651051580eeSchristos		;;
652051580eeSchristos	op60c)
653051580eeSchristos		cpu=hppa1.1
654051580eeSchristos		vendor=oki
655051580eeSchristos		;;
656051580eeSchristos	ibm*)
657051580eeSchristos		cpu=i370
658051580eeSchristos		vendor=ibm
659051580eeSchristos		;;
660051580eeSchristos	orion105)
661051580eeSchristos		cpu=clipper
662051580eeSchristos		vendor=highlevel
663051580eeSchristos		;;
664051580eeSchristos	mac | mpw | mac-mpw)
665051580eeSchristos		cpu=m68k
666051580eeSchristos		vendor=apple
667051580eeSchristos		;;
668051580eeSchristos	pmac | pmac-mpw)
669051580eeSchristos		cpu=powerpc
670051580eeSchristos		vendor=apple
671051580eeSchristos		;;
672051580eeSchristos
673051580eeSchristos	# Recognize the various machine names and aliases which stand
674051580eeSchristos	# for a CPU type and a company and sometimes even an OS.
675051580eeSchristos	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
676051580eeSchristos		cpu=m68000
677051580eeSchristos		vendor=att
678051580eeSchristos		;;
679051580eeSchristos	3b*)
680051580eeSchristos		cpu=we32k
681051580eeSchristos		vendor=att
682051580eeSchristos		;;
683051580eeSchristos	bluegene*)
684051580eeSchristos		cpu=powerpc
685051580eeSchristos		vendor=ibm
686051580eeSchristos		os=cnk
687051580eeSchristos		;;
688051580eeSchristos	decsystem10* | dec10*)
689051580eeSchristos		cpu=pdp10
690051580eeSchristos		vendor=dec
691051580eeSchristos		os=tops10
692051580eeSchristos		;;
693051580eeSchristos	decsystem20* | dec20*)
694051580eeSchristos		cpu=pdp10
695051580eeSchristos		vendor=dec
696051580eeSchristos		os=tops20
697051580eeSchristos		;;
698051580eeSchristos	delta | 3300 | motorola-3300 | motorola-delta \
699051580eeSchristos	      | 3300-motorola | delta-motorola)
700051580eeSchristos		cpu=m68k
701051580eeSchristos		vendor=motorola
702051580eeSchristos		;;
703051580eeSchristos	dpx2*)
704051580eeSchristos		cpu=m68k
705051580eeSchristos		vendor=bull
706051580eeSchristos		os=sysv3
707051580eeSchristos		;;
708051580eeSchristos	encore | umax | mmax)
709051580eeSchristos		cpu=ns32k
710051580eeSchristos		vendor=encore
711051580eeSchristos		;;
712051580eeSchristos	elxsi)
713051580eeSchristos		cpu=elxsi
714051580eeSchristos		vendor=elxsi
715051580eeSchristos		os=${os:-bsd}
716051580eeSchristos		;;
717051580eeSchristos	fx2800)
718051580eeSchristos		cpu=i860
719051580eeSchristos		vendor=alliant
720051580eeSchristos		;;
721051580eeSchristos	genix)
722051580eeSchristos		cpu=ns32k
723051580eeSchristos		vendor=ns
724051580eeSchristos		;;
725051580eeSchristos	h3050r* | hiux*)
726051580eeSchristos		cpu=hppa1.1
727051580eeSchristos		vendor=hitachi
728051580eeSchristos		os=hiuxwe2
729051580eeSchristos		;;
730051580eeSchristos	hp3k9[0-9][0-9] | hp9[0-9][0-9])
731051580eeSchristos		cpu=hppa1.0
732051580eeSchristos		vendor=hp
733051580eeSchristos		;;
734051580eeSchristos	hp9k2[0-9][0-9] | hp9k31[0-9])
735051580eeSchristos		cpu=m68000
736051580eeSchristos		vendor=hp
737051580eeSchristos		;;
738051580eeSchristos	hp9k3[2-9][0-9])
739051580eeSchristos		cpu=m68k
740051580eeSchristos		vendor=hp
741051580eeSchristos		;;
742051580eeSchristos	hp9k6[0-9][0-9] | hp6[0-9][0-9])
743051580eeSchristos		cpu=hppa1.0
744051580eeSchristos		vendor=hp
745051580eeSchristos		;;
746051580eeSchristos	hp9k7[0-79][0-9] | hp7[0-79][0-9])
747051580eeSchristos		cpu=hppa1.1
748051580eeSchristos		vendor=hp
749051580eeSchristos		;;
750051580eeSchristos	hp9k78[0-9] | hp78[0-9])
751051580eeSchristos		# FIXME: really hppa2.0-hp
752051580eeSchristos		cpu=hppa1.1
753051580eeSchristos		vendor=hp
754051580eeSchristos		;;
755051580eeSchristos	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
756051580eeSchristos		# FIXME: really hppa2.0-hp
757051580eeSchristos		cpu=hppa1.1
758051580eeSchristos		vendor=hp
759051580eeSchristos		;;
760051580eeSchristos	hp9k8[0-9][13679] | hp8[0-9][13679])
761051580eeSchristos		cpu=hppa1.1
762051580eeSchristos		vendor=hp
763051580eeSchristos		;;
764051580eeSchristos	hp9k8[0-9][0-9] | hp8[0-9][0-9])
765051580eeSchristos		cpu=hppa1.0
766051580eeSchristos		vendor=hp
767051580eeSchristos		;;
768051580eeSchristos	i*86v32)
769051580eeSchristos		cpu=`echo "$1" | sed -e 's/86.*/86/'`
770051580eeSchristos		vendor=pc
771051580eeSchristos		os=sysv32
772051580eeSchristos		;;
773051580eeSchristos	i*86v4*)
774051580eeSchristos		cpu=`echo "$1" | sed -e 's/86.*/86/'`
775051580eeSchristos		vendor=pc
776051580eeSchristos		os=sysv4
777051580eeSchristos		;;
778051580eeSchristos	i*86v)
779051580eeSchristos		cpu=`echo "$1" | sed -e 's/86.*/86/'`
780051580eeSchristos		vendor=pc
781051580eeSchristos		os=sysv
782051580eeSchristos		;;
783051580eeSchristos	i*86sol2)
784051580eeSchristos		cpu=`echo "$1" | sed -e 's/86.*/86/'`
785051580eeSchristos		vendor=pc
786051580eeSchristos		os=solaris2
787051580eeSchristos		;;
788051580eeSchristos	j90 | j90-cray)
789051580eeSchristos		cpu=j90
790051580eeSchristos		vendor=cray
791051580eeSchristos		os=${os:-unicos}
792051580eeSchristos		;;
793051580eeSchristos	iris | iris4d)
794051580eeSchristos		cpu=mips
795051580eeSchristos		vendor=sgi
796051580eeSchristos		case $os in
797051580eeSchristos		    irix*)
798051580eeSchristos			;;
799051580eeSchristos		    *)
800051580eeSchristos			os=irix4
801051580eeSchristos			;;
802051580eeSchristos		esac
803051580eeSchristos		;;
804051580eeSchristos	miniframe)
805051580eeSchristos		cpu=m68000
806051580eeSchristos		vendor=convergent
807051580eeSchristos		;;
808051580eeSchristos	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
809051580eeSchristos		cpu=m68k
810051580eeSchristos		vendor=atari
811051580eeSchristos		os=mint
812051580eeSchristos		;;
813051580eeSchristos	news-3600 | risc-news)
814051580eeSchristos		cpu=mips
815051580eeSchristos		vendor=sony
816051580eeSchristos		os=newsos
817051580eeSchristos		;;
818051580eeSchristos	next | m*-next)
819051580eeSchristos		cpu=m68k
820051580eeSchristos		vendor=next
821051580eeSchristos		case $os in
822*184b2d41Schristos		    openstep*)
823*184b2d41Schristos		        ;;
824051580eeSchristos		    nextstep*)
825051580eeSchristos			;;
826051580eeSchristos		    ns2*)
827051580eeSchristos		      os=nextstep2
828051580eeSchristos			;;
829051580eeSchristos		    *)
830051580eeSchristos		      os=nextstep3
831051580eeSchristos			;;
832051580eeSchristos		esac
833051580eeSchristos		;;
834051580eeSchristos	np1)
835051580eeSchristos		cpu=np1
836051580eeSchristos		vendor=gould
837051580eeSchristos		;;
838051580eeSchristos	op50n-* | op60c-*)
839051580eeSchristos		cpu=hppa1.1
840051580eeSchristos		vendor=oki
841051580eeSchristos		os=proelf
842051580eeSchristos		;;
843051580eeSchristos	pa-hitachi)
844051580eeSchristos		cpu=hppa1.1
845051580eeSchristos		vendor=hitachi
846051580eeSchristos		os=hiuxwe2
847051580eeSchristos		;;
848051580eeSchristos	pbd)
849051580eeSchristos		cpu=sparc
850051580eeSchristos		vendor=tti
851051580eeSchristos		;;
852051580eeSchristos	pbb)
853051580eeSchristos		cpu=m68k
854051580eeSchristos		vendor=tti
855051580eeSchristos		;;
856051580eeSchristos	pc532)
857051580eeSchristos		cpu=ns32k
858051580eeSchristos		vendor=pc532
859051580eeSchristos		;;
860051580eeSchristos	pn)
861051580eeSchristos		cpu=pn
862051580eeSchristos		vendor=gould
863051580eeSchristos		;;
864051580eeSchristos	power)
865051580eeSchristos		cpu=power
866051580eeSchristos		vendor=ibm
867051580eeSchristos		;;
868051580eeSchristos	ps2)
869051580eeSchristos		cpu=i386
870051580eeSchristos		vendor=ibm
871051580eeSchristos		;;
872051580eeSchristos	rm[46]00)
873051580eeSchristos		cpu=mips
874051580eeSchristos		vendor=siemens
875051580eeSchristos		;;
876051580eeSchristos	rtpc | rtpc-*)
877051580eeSchristos		cpu=romp
878051580eeSchristos		vendor=ibm
879051580eeSchristos		;;
880051580eeSchristos	sde)
881051580eeSchristos		cpu=mipsisa32
882051580eeSchristos		vendor=sde
883051580eeSchristos		os=${os:-elf}
884051580eeSchristos		;;
885051580eeSchristos	simso-wrs)
886051580eeSchristos		cpu=sparclite
887051580eeSchristos		vendor=wrs
888051580eeSchristos		os=vxworks
889051580eeSchristos		;;
890051580eeSchristos	tower | tower-32)
891051580eeSchristos		cpu=m68k
892051580eeSchristos		vendor=ncr
893051580eeSchristos		;;
894051580eeSchristos	vpp*|vx|vx-*)
895051580eeSchristos		cpu=f301
896051580eeSchristos		vendor=fujitsu
897051580eeSchristos		;;
898051580eeSchristos	w65)
899051580eeSchristos		cpu=w65
900051580eeSchristos		vendor=wdc
901051580eeSchristos		;;
902051580eeSchristos	w89k-*)
903051580eeSchristos		cpu=hppa1.1
904051580eeSchristos		vendor=winbond
905051580eeSchristos		os=proelf
906051580eeSchristos		;;
907051580eeSchristos	none)
908051580eeSchristos		cpu=none
909051580eeSchristos		vendor=none
910051580eeSchristos		;;
911051580eeSchristos	leon|leon[3-9])
912051580eeSchristos		cpu=sparc
913051580eeSchristos		vendor=$basic_machine
914051580eeSchristos		;;
915051580eeSchristos	leon-*|leon[3-9]-*)
916051580eeSchristos		cpu=sparc
917051580eeSchristos		vendor=`echo "$basic_machine" | sed 's/-.*//'`
918051580eeSchristos		;;
919051580eeSchristos
920051580eeSchristos	*-*)
921051580eeSchristos		# shellcheck disable=SC2162
922051580eeSchristos		IFS="-" read cpu vendor <<EOF
923051580eeSchristos$basic_machine
924051580eeSchristosEOF
925051580eeSchristos		;;
926051580eeSchristos	# We use `pc' rather than `unknown'
927051580eeSchristos	# because (1) that's what they normally are, and
928051580eeSchristos	# (2) the word "unknown" tends to confuse beginning users.
929051580eeSchristos	i*86 | x86_64)
930051580eeSchristos		cpu=$basic_machine
931051580eeSchristos		vendor=pc
932051580eeSchristos		;;
933051580eeSchristos	# These rules are duplicated from below for sake of the special case above;
934051580eeSchristos	# i.e. things that normalized to x86 arches should also default to "pc"
935051580eeSchristos	pc98)
936051580eeSchristos		cpu=i386
937051580eeSchristos		vendor=pc
938051580eeSchristos		;;
939051580eeSchristos	x64 | amd64)
940051580eeSchristos		cpu=x86_64
941051580eeSchristos		vendor=pc
942051580eeSchristos		;;
943a1ba9ba4Schristos	# Recognize the basic CPU types without company name.
944051580eeSchristos	*)
945051580eeSchristos		cpu=$basic_machine
946051580eeSchristos		vendor=unknown
947051580eeSchristos		;;
948051580eeSchristosesac
949051580eeSchristos
950051580eeSchristosunset -v basic_machine
951051580eeSchristos
952051580eeSchristos# Decode basic machines in the full and proper CPU-Company form.
953051580eeSchristoscase $cpu-$vendor in
954051580eeSchristos	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
955051580eeSchristos	# some cases the only manufacturer, in others, it is the most popular.
956051580eeSchristos	craynv-unknown)
957051580eeSchristos		vendor=cray
958051580eeSchristos		os=${os:-unicosmp}
959051580eeSchristos		;;
960051580eeSchristos	c90-unknown | c90-cray)
961051580eeSchristos		vendor=cray
962051580eeSchristos		os=${os:-unicos}
963051580eeSchristos		;;
964051580eeSchristos	fx80-unknown)
965051580eeSchristos		vendor=alliant
966051580eeSchristos		;;
967051580eeSchristos	romp-unknown)
968051580eeSchristos		vendor=ibm
969051580eeSchristos		;;
970051580eeSchristos	mmix-unknown)
971051580eeSchristos		vendor=knuth
972051580eeSchristos		;;
973051580eeSchristos	microblaze-unknown | microblazeel-unknown)
974051580eeSchristos		vendor=xilinx
975051580eeSchristos		;;
976051580eeSchristos	rs6000-unknown)
977051580eeSchristos		vendor=ibm
978051580eeSchristos		;;
979051580eeSchristos	vax-unknown)
980051580eeSchristos		vendor=dec
981051580eeSchristos		;;
982051580eeSchristos	pdp11-unknown)
983051580eeSchristos		vendor=dec
984051580eeSchristos		;;
985051580eeSchristos	we32k-unknown)
986051580eeSchristos		vendor=att
987051580eeSchristos		;;
988051580eeSchristos	cydra-unknown)
989051580eeSchristos		vendor=cydrome
990051580eeSchristos		;;
991051580eeSchristos	i370-ibm*)
992051580eeSchristos		vendor=ibm
993051580eeSchristos		;;
994051580eeSchristos	orion-unknown)
995051580eeSchristos		vendor=highlevel
996051580eeSchristos		;;
997051580eeSchristos	xps-unknown | xps100-unknown)
998051580eeSchristos		cpu=xps100
999051580eeSchristos		vendor=honeywell
1000051580eeSchristos		;;
1001051580eeSchristos
1002051580eeSchristos	# Here we normalize CPU types with a missing or matching vendor
1003051580eeSchristos	dpx20-unknown | dpx20-bull)
1004051580eeSchristos		cpu=rs6000
1005051580eeSchristos		vendor=bull
1006051580eeSchristos		os=${os:-bosx}
1007051580eeSchristos		;;
1008051580eeSchristos
1009051580eeSchristos	# Here we normalize CPU types irrespective of the vendor
1010051580eeSchristos	amd64-*)
1011051580eeSchristos		cpu=x86_64
1012051580eeSchristos		;;
1013051580eeSchristos	blackfin-*)
1014051580eeSchristos		cpu=bfin
1015051580eeSchristos		os=linux
1016051580eeSchristos		;;
1017051580eeSchristos	c54x-*)
1018051580eeSchristos		cpu=tic54x
1019051580eeSchristos		;;
1020051580eeSchristos	c55x-*)
1021051580eeSchristos		cpu=tic55x
1022051580eeSchristos		;;
1023051580eeSchristos	c6x-*)
1024051580eeSchristos		cpu=tic6x
1025051580eeSchristos		;;
1026051580eeSchristos	e500v[12]-*)
1027051580eeSchristos		cpu=powerpc
1028051580eeSchristos		os=$os"spe"
1029051580eeSchristos		;;
1030051580eeSchristos	mips3*-*)
1031051580eeSchristos		cpu=mips64
1032051580eeSchristos		;;
1033051580eeSchristos	ms1-*)
1034051580eeSchristos		cpu=mt
1035051580eeSchristos		;;
1036051580eeSchristos	m68knommu-*)
1037051580eeSchristos		cpu=m68k
1038051580eeSchristos		os=linux
1039051580eeSchristos		;;
1040051580eeSchristos	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1041051580eeSchristos		cpu=s12z
1042051580eeSchristos		;;
1043051580eeSchristos	openrisc-*)
1044051580eeSchristos		cpu=or32
1045051580eeSchristos		;;
1046051580eeSchristos	parisc-*)
1047051580eeSchristos		cpu=hppa
1048051580eeSchristos		os=linux
1049051580eeSchristos		;;
1050051580eeSchristos	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1051051580eeSchristos		cpu=i586
1052051580eeSchristos		;;
1053051580eeSchristos	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
1054051580eeSchristos		cpu=i686
1055051580eeSchristos		;;
1056051580eeSchristos	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1057051580eeSchristos		cpu=i686
1058051580eeSchristos		;;
1059051580eeSchristos	pentium4-*)
1060051580eeSchristos		cpu=i786
1061051580eeSchristos		;;
1062051580eeSchristos	pc98-*)
1063051580eeSchristos		cpu=i386
1064051580eeSchristos		;;
1065051580eeSchristos	ppc-* | ppcbe-*)
1066051580eeSchristos		cpu=powerpc
1067051580eeSchristos		;;
1068051580eeSchristos	ppcle-* | powerpclittle-*)
1069051580eeSchristos		cpu=powerpcle
1070051580eeSchristos		;;
1071051580eeSchristos	ppc64-*)
1072051580eeSchristos		cpu=powerpc64
1073051580eeSchristos		;;
1074051580eeSchristos	ppc64le-* | powerpc64little-*)
1075051580eeSchristos		cpu=powerpc64le
1076051580eeSchristos		;;
1077051580eeSchristos	sb1-*)
1078051580eeSchristos		cpu=mipsisa64sb1
1079051580eeSchristos		;;
1080051580eeSchristos	sb1el-*)
1081051580eeSchristos		cpu=mipsisa64sb1el
1082051580eeSchristos		;;
1083051580eeSchristos	sh5e[lb]-*)
1084051580eeSchristos		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
1085051580eeSchristos		;;
1086051580eeSchristos	spur-*)
1087051580eeSchristos		cpu=spur
1088051580eeSchristos		;;
1089051580eeSchristos	strongarm-* | thumb-*)
1090051580eeSchristos		cpu=arm
1091051580eeSchristos		;;
1092051580eeSchristos	tx39-*)
1093051580eeSchristos		cpu=mipstx39
1094051580eeSchristos		;;
1095051580eeSchristos	tx39el-*)
1096051580eeSchristos		cpu=mipstx39el
1097051580eeSchristos		;;
1098051580eeSchristos	x64-*)
1099051580eeSchristos		cpu=x86_64
1100051580eeSchristos		;;
1101051580eeSchristos	xscale-* | xscalee[bl]-*)
1102051580eeSchristos		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
1103051580eeSchristos		;;
1104051580eeSchristos
1105051580eeSchristos	# Recognize the canonical CPU Types that limit and/or modify the
1106051580eeSchristos	# company names they are paired with.
1107051580eeSchristos	cr16-*)
1108051580eeSchristos		os=${os:-elf}
1109051580eeSchristos		;;
1110051580eeSchristos	crisv32-* | etraxfs*-*)
1111051580eeSchristos		cpu=crisv32
1112051580eeSchristos		vendor=axis
1113051580eeSchristos		;;
1114051580eeSchristos	cris-* | etrax*-*)
1115051580eeSchristos		cpu=cris
1116051580eeSchristos		vendor=axis
1117051580eeSchristos		;;
1118051580eeSchristos	crx-*)
1119051580eeSchristos		os=${os:-elf}
1120051580eeSchristos		;;
1121051580eeSchristos	neo-tandem)
1122051580eeSchristos		cpu=neo
1123051580eeSchristos		vendor=tandem
1124051580eeSchristos		;;
1125051580eeSchristos	nse-tandem)
1126051580eeSchristos		cpu=nse
1127051580eeSchristos		vendor=tandem
1128051580eeSchristos		;;
1129051580eeSchristos	nsr-tandem)
1130051580eeSchristos		cpu=nsr
1131051580eeSchristos		vendor=tandem
1132051580eeSchristos		;;
1133051580eeSchristos	nsv-tandem)
1134051580eeSchristos		cpu=nsv
1135051580eeSchristos		vendor=tandem
1136051580eeSchristos		;;
1137051580eeSchristos	nsx-tandem)
1138051580eeSchristos		cpu=nsx
1139051580eeSchristos		vendor=tandem
1140051580eeSchristos		;;
1141051580eeSchristos	s390-*)
1142051580eeSchristos		cpu=s390
1143051580eeSchristos		vendor=ibm
1144051580eeSchristos		;;
1145051580eeSchristos	s390x-*)
1146051580eeSchristos		cpu=s390x
1147051580eeSchristos		vendor=ibm
1148051580eeSchristos		;;
1149051580eeSchristos	tile*-*)
1150051580eeSchristos		os=${os:-linux-gnu}
1151051580eeSchristos		;;
1152051580eeSchristos
1153051580eeSchristos	*)
1154051580eeSchristos		# Recognize the canonical CPU types that are allowed with any
1155051580eeSchristos		# company name.
1156051580eeSchristos		case $cpu in
1157a1ba9ba4Schristos			1750a | 580 \
1158a1ba9ba4Schristos			| a29k \
1159a1ba9ba4Schristos			| aarch64 | aarch64_be \
1160051580eeSchristos			| abacus \
1161051580eeSchristos			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
1162051580eeSchristos			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
1163051580eeSchristos			| alphapca5[67] | alpha64pca5[67] \
1164a1ba9ba4Schristos			| am33_2.0 \
1165051580eeSchristos			| amdgcn \
1166a1ba9ba4Schristos			| arc | arceb \
1167051580eeSchristos			| arm  | arm[lb]e | arme[lb] | armv* \
1168a1ba9ba4Schristos			| avr | avr32 \
1169051580eeSchristos			| asmjs \
117032b71e0eSsevan			| ba \
1171a1ba9ba4Schristos			| be32 | be64 \
1172*184b2d41Schristos			| bfin | bpf | bs2000 \
1173051580eeSchristos			| c[123]* | c30 | [cjt]90 | c4x \
1174051580eeSchristos			| c8051 | clipper | craynv | csky | cydra \
1175a1ba9ba4Schristos			| d10v | d30v | dlx | dsp16xx \
1176051580eeSchristos			| e2k | elxsi | epiphany \
1177051580eeSchristos			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
1178051580eeSchristos			| h8300 | h8500 \
1179051580eeSchristos			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
1180a1ba9ba4Schristos			| hexagon \
1181051580eeSchristos			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
1182a1ba9ba4Schristos			| ip2k | iq2000 \
1183a1ba9ba4Schristos			| k1om \
1184a1ba9ba4Schristos			| le32 | le64 \
1185a1ba9ba4Schristos			| lm32 \
1186051580eeSchristos			| m32c | m32r | m32rle \
1187*184b2d41Schristos			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
1188*184b2d41Schristos			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
1189051580eeSchristos			| m88110 | m88k | maxq | mb | mcore | mep | metag \
1190051580eeSchristos			| microblaze | microblazeel \
1191a1ba9ba4Schristos			| mips | mipsbe | mipseb | mipsel | mipsle \
1192a1ba9ba4Schristos			| mips16 \
1193*184b2d41Schristos			| mips64 | mips64eb | mips64el \
1194*184b2d41Schristos			| mipsn64 | mipsn64eb | mipsn64el \
1195a1ba9ba4Schristos			| mips64octeon | mips64octeonel \
1196a1ba9ba4Schristos			| mips64orion | mips64orionel \
1197a1ba9ba4Schristos			| mips64r5900 | mips64r5900el \
1198a1ba9ba4Schristos			| mips64vr | mips64vrel \
1199a1ba9ba4Schristos			| mips64vr4100 | mips64vr4100el \
1200a1ba9ba4Schristos			| mips64vr4300 | mips64vr4300el \
1201a1ba9ba4Schristos			| mips64vr5000 | mips64vr5000el \
1202a1ba9ba4Schristos			| mips64vr5900 | mips64vr5900el \
1203a1ba9ba4Schristos			| mipsisa32 | mipsisa32el \
1204a1ba9ba4Schristos			| mipsisa32r2 | mipsisa32r2el \
1205a1ba9ba4Schristos			| mipsisa32r6 | mipsisa32r6el \
1206a1ba9ba4Schristos			| mipsisa64 | mipsisa64el \
1207a1ba9ba4Schristos			| mipsisa64r2 | mipsisa64r2el \
1208a1ba9ba4Schristos			| mipsisa64r6 | mipsisa64r6el \
1209a1ba9ba4Schristos			| mipsisa64sb1 | mipsisa64sb1el \
1210a1ba9ba4Schristos			| mipsisa64sr71k | mipsisa64sr71kel \
1211a1ba9ba4Schristos			| mipsr5900 | mipsr5900el \
1212a1ba9ba4Schristos			| mipstx39 | mipstx39el \
1213051580eeSchristos			| mmix \
1214a1ba9ba4Schristos			| mn10200 | mn10300 \
1215a1ba9ba4Schristos			| moxie \
1216a1ba9ba4Schristos			| mt \
1217a1ba9ba4Schristos			| msp430 \
1218a1ba9ba4Schristos			| nds32 | nds32le | nds32be \
1219051580eeSchristos			| nfp \
1220a1ba9ba4Schristos			| nios | nios2 | nios2eb | nios2el \
1221*184b2d41Schristos			| none | np1 | ns16k | ns32k | nvptx \
1222051580eeSchristos			| open8 \
1223051580eeSchristos			| or1k* \
1224051580eeSchristos			| or32 \
1225051580eeSchristos			| orion \
1226*184b2d41Schristos			| picochip \
1227051580eeSchristos			| pdp10 | pdp11 | pj | pjl | pn | power \
1228051580eeSchristos			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
122932b71e0eSsevan			| pru \
1230a1ba9ba4Schristos			| pyramid \
1231051580eeSchristos			| riscv | riscv32 | riscv64 \
1232051580eeSchristos			| rl78 | romp | rs6000 | rx \
1233a1ba9ba4Schristos			| score \
1234*184b2d41Schristos			| sh | shl \
1235*184b2d41Schristos			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
1236051580eeSchristos			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
1237051580eeSchristos			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
1238051580eeSchristos			| sparclite \
1239051580eeSchristos			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
1240a1ba9ba4Schristos			| spu \
1241051580eeSchristos			| tahoe \
1242051580eeSchristos			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
1243051580eeSchristos			| tron \
1244a1ba9ba4Schristos			| ubicom32 \
1245*184b2d41Schristos			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
1246051580eeSchristos			| vax \
1247a1ba9ba4Schristos			| visium \
1248*184b2d41Schristos			| w65 \
1249*184b2d41Schristos			| wasm32 | wasm64 \
1250a1ba9ba4Schristos			| we32k \
1251051580eeSchristos			| x86 | x86_64 | xc16x | xgate | xps100 \
1252051580eeSchristos			| xstormy16 | xtensa* \
1253051580eeSchristos			| ymp \
1254a1ba9ba4Schristos			| z8k | z80)
1255a1ba9ba4Schristos				;;
1256a1ba9ba4Schristos
1257051580eeSchristos			*)
1258051580eeSchristos				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
1259a1ba9ba4Schristos				exit 1
1260a1ba9ba4Schristos				;;
1261a1ba9ba4Schristos		esac
1262a1ba9ba4Schristos		;;
1263a1ba9ba4Schristosesac
1264a1ba9ba4Schristos
1265a1ba9ba4Schristos# Here we canonicalize certain aliases for manufacturers.
1266051580eeSchristoscase $vendor in
1267051580eeSchristos	digital*)
1268051580eeSchristos		vendor=dec
1269a1ba9ba4Schristos		;;
1270051580eeSchristos	commodore*)
1271051580eeSchristos		vendor=cbm
1272a1ba9ba4Schristos		;;
1273a1ba9ba4Schristos	*)
1274a1ba9ba4Schristos		;;
1275a1ba9ba4Schristosesac
1276a1ba9ba4Schristos
1277a1ba9ba4Schristos# Decode manufacturer-specific aliases for certain operating systems.
1278a1ba9ba4Schristos
1279051580eeSchristosif [ x$os != x ]
1280a1ba9ba4Schristosthen
1281a1ba9ba4Schristoscase $os in
1282051580eeSchristos	# First match some system type aliases that might get confused
1283051580eeSchristos	# with valid system types.
1284051580eeSchristos	# solaris* is a basic system type, with this one exception.
1285051580eeSchristos	auroraux)
1286051580eeSchristos		os=auroraux
1287a1ba9ba4Schristos		;;
1288051580eeSchristos	bluegene*)
1289051580eeSchristos		os=cnk
1290051580eeSchristos		;;
1291051580eeSchristos	solaris1 | solaris1.*)
1292a1ba9ba4Schristos		os=`echo $os | sed -e 's|solaris1|sunos4|'`
1293a1ba9ba4Schristos		;;
1294051580eeSchristos	solaris)
1295051580eeSchristos		os=solaris2
1296a1ba9ba4Schristos		;;
1297051580eeSchristos	unixware*)
1298051580eeSchristos		os=sysv4.2uw
1299a1ba9ba4Schristos		;;
1300051580eeSchristos	gnu/linux*)
1301a1ba9ba4Schristos		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1302a1ba9ba4Schristos		;;
1303051580eeSchristos	# es1800 is here to avoid being matched by es* (a different OS)
1304051580eeSchristos	es1800*)
1305051580eeSchristos		os=ose
1306051580eeSchristos		;;
1307051580eeSchristos	# Some version numbers need modification
1308051580eeSchristos	chorusos*)
1309051580eeSchristos		os=chorusos
1310051580eeSchristos		;;
1311051580eeSchristos	isc)
1312051580eeSchristos		os=isc2.2
1313051580eeSchristos		;;
1314051580eeSchristos	sco6)
1315051580eeSchristos		os=sco5v6
1316051580eeSchristos		;;
1317051580eeSchristos	sco5)
1318051580eeSchristos		os=sco3.2v5
1319051580eeSchristos		;;
1320051580eeSchristos	sco4)
1321051580eeSchristos		os=sco3.2v4
1322051580eeSchristos		;;
1323051580eeSchristos	sco3.2.[4-9]*)
1324051580eeSchristos		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
1325051580eeSchristos		;;
1326051580eeSchristos	sco3.2v[4-9]* | sco5v6*)
1327051580eeSchristos		# Don't forget version if it is 3.2v4 or newer.
1328051580eeSchristos		;;
1329051580eeSchristos	scout)
1330051580eeSchristos		# Don't match below
1331051580eeSchristos		;;
1332051580eeSchristos	sco*)
1333051580eeSchristos		os=sco3.2v2
1334051580eeSchristos		;;
1335051580eeSchristos	psos*)
1336051580eeSchristos		os=psos
1337051580eeSchristos		;;
1338051580eeSchristos	# Now accept the basic system types.
1339a1ba9ba4Schristos	# The portable systems comes first.
1340051580eeSchristos	# Each alternative MUST end in a * to match a version number.
1341051580eeSchristos	# sysv* is not here because it comes later, after sysvr4.
1342051580eeSchristos	gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
1343051580eeSchristos	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
1344051580eeSchristos	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
1345051580eeSchristos	     | sym* | kopensolaris* | plan9* \
1346051580eeSchristos	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
1347*184b2d41Schristos	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
1348051580eeSchristos	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
1349051580eeSchristos	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
1350051580eeSchristos	     | knetbsd* | mirbsd* | netbsd* \
1351*184b2d41Schristos	     | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
1352051580eeSchristos	     | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
1353051580eeSchristos	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
1354051580eeSchristos	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
1355051580eeSchristos	     | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
1356051580eeSchristos	     | chorusrdb* | cegcc* | glidix* \
1357051580eeSchristos	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
1358051580eeSchristos	     | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
1359051580eeSchristos	     | linux-newlib* | linux-musl* | linux-uclibc* \
1360051580eeSchristos	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
1361051580eeSchristos	     | interix* | uwin* | mks* | rhapsody* | darwin* \
1362051580eeSchristos	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
1363051580eeSchristos	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
1364051580eeSchristos	     | os2* | vos* | palmos* | uclinux* | nucleus* \
1365051580eeSchristos	     | morphos* | superux* | rtmk* | windiss* \
1366051580eeSchristos	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
1367051580eeSchristos	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
1368051580eeSchristos	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
1369*184b2d41Schristos	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
1370*184b2d41Schristos	     | nsk* | powerunix)
1371a1ba9ba4Schristos	# Remember, each alternative MUST END IN *, to match a version number.
1372a1ba9ba4Schristos		;;
1373051580eeSchristos	qnx*)
1374051580eeSchristos		case $cpu in
1375051580eeSchristos		    x86 | i*86)
1376a1ba9ba4Schristos			;;
1377a1ba9ba4Schristos		    *)
1378051580eeSchristos			os=nto-$os
1379a1ba9ba4Schristos			;;
1380a1ba9ba4Schristos		esac
1381a1ba9ba4Schristos		;;
1382051580eeSchristos	hiux*)
1383051580eeSchristos		os=hiuxwe2
1384a1ba9ba4Schristos		;;
1385051580eeSchristos	nto-qnx*)
1386051580eeSchristos		;;
1387051580eeSchristos	nto*)
1388a1ba9ba4Schristos		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1389a1ba9ba4Schristos		;;
1390051580eeSchristos	sim | xray | os68k* | v88r* \
1391051580eeSchristos	    | windows* | osx | abug | netware* | os9* \
1392051580eeSchristos	    | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
1393a1ba9ba4Schristos		;;
1394051580eeSchristos	linux-dietlibc)
1395051580eeSchristos		os=linux-dietlibc
1396a1ba9ba4Schristos		;;
1397051580eeSchristos	linux*)
1398a1ba9ba4Schristos		os=`echo $os | sed -e 's|linux|linux-gnu|'`
1399a1ba9ba4Schristos		;;
1400051580eeSchristos	lynx*178)
1401051580eeSchristos		os=lynxos178
1402a1ba9ba4Schristos		;;
1403051580eeSchristos	lynx*5)
1404051580eeSchristos		os=lynxos5
1405a1ba9ba4Schristos		;;
1406051580eeSchristos	lynx*)
1407051580eeSchristos		os=lynxos
1408a1ba9ba4Schristos		;;
1409051580eeSchristos	mac*)
1410051580eeSchristos		os=`echo "$os" | sed -e 's|mac|macos|'`
1411a1ba9ba4Schristos		;;
1412051580eeSchristos	opened*)
1413051580eeSchristos		os=openedition
1414a1ba9ba4Schristos		;;
1415051580eeSchristos	os400*)
1416051580eeSchristos		os=os400
1417a1ba9ba4Schristos		;;
1418051580eeSchristos	sunos5*)
1419051580eeSchristos		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
1420a1ba9ba4Schristos		;;
1421051580eeSchristos	sunos6*)
1422051580eeSchristos		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
1423a1ba9ba4Schristos		;;
1424051580eeSchristos	wince*)
1425051580eeSchristos		os=wince
1426a1ba9ba4Schristos		;;
1427051580eeSchristos	utek*)
1428051580eeSchristos		os=bsd
1429a1ba9ba4Schristos		;;
1430051580eeSchristos	dynix*)
1431051580eeSchristos		os=bsd
1432a1ba9ba4Schristos		;;
1433051580eeSchristos	acis*)
1434051580eeSchristos		os=aos
1435a1ba9ba4Schristos		;;
1436051580eeSchristos	atheos*)
1437051580eeSchristos		os=atheos
1438a1ba9ba4Schristos		;;
1439051580eeSchristos	syllable*)
1440051580eeSchristos		os=syllable
1441a1ba9ba4Schristos		;;
1442051580eeSchristos	386bsd)
1443051580eeSchristos		os=bsd
1444a1ba9ba4Schristos		;;
1445051580eeSchristos	ctix* | uts*)
1446051580eeSchristos		os=sysv
1447a1ba9ba4Schristos		;;
1448051580eeSchristos	nova*)
1449051580eeSchristos		os=rtmk-nova
1450051580eeSchristos		;;
1451051580eeSchristos	ns2)
1452051580eeSchristos		os=nextstep2
1453051580eeSchristos		;;
1454a1ba9ba4Schristos	# Preserve the version number of sinix5.
1455051580eeSchristos	sinix5.*)
1456a1ba9ba4Schristos		os=`echo $os | sed -e 's|sinix|sysv|'`
1457a1ba9ba4Schristos		;;
1458051580eeSchristos	sinix*)
1459051580eeSchristos		os=sysv4
1460a1ba9ba4Schristos		;;
1461051580eeSchristos	tpf*)
1462051580eeSchristos		os=tpf
1463a1ba9ba4Schristos		;;
1464051580eeSchristos	triton*)
1465051580eeSchristos		os=sysv3
1466a1ba9ba4Schristos		;;
1467051580eeSchristos	oss*)
1468051580eeSchristos		os=sysv3
1469a1ba9ba4Schristos		;;
1470051580eeSchristos	svr4*)
1471051580eeSchristos		os=sysv4
1472a1ba9ba4Schristos		;;
1473051580eeSchristos	svr3)
1474051580eeSchristos		os=sysv3
1475a1ba9ba4Schristos		;;
1476051580eeSchristos	sysvr4)
1477051580eeSchristos		os=sysv4
1478a1ba9ba4Schristos		;;
1479051580eeSchristos	# This must come after sysvr4.
1480051580eeSchristos	sysv*)
1481a1ba9ba4Schristos		;;
1482051580eeSchristos	ose*)
1483051580eeSchristos		os=ose
1484a1ba9ba4Schristos		;;
1485051580eeSchristos	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1486051580eeSchristos		os=mint
1487a1ba9ba4Schristos		;;
1488051580eeSchristos	zvmoe)
1489051580eeSchristos		os=zvmoe
1490a1ba9ba4Schristos		;;
1491051580eeSchristos	dicos*)
1492051580eeSchristos		os=dicos
1493a1ba9ba4Schristos		;;
1494051580eeSchristos	pikeos*)
1495051580eeSchristos		# Until real need of OS specific support for
1496051580eeSchristos		# particular features comes up, bare metal
1497051580eeSchristos		# configurations are quite functional.
1498051580eeSchristos		case $cpu in
1499051580eeSchristos		    arm*)
1500051580eeSchristos			os=eabi
1501a1ba9ba4Schristos			;;
1502a1ba9ba4Schristos		    *)
1503051580eeSchristos			os=elf
1504051580eeSchristos			;;
1505051580eeSchristos		esac
1506051580eeSchristos		;;
1507051580eeSchristos	nacl*)
1508051580eeSchristos		;;
1509051580eeSchristos	ios)
1510051580eeSchristos		;;
1511051580eeSchristos	none)
1512051580eeSchristos		;;
1513051580eeSchristos	*-eabi)
1514051580eeSchristos		;;
1515051580eeSchristos	*)
1516051580eeSchristos		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
1517a1ba9ba4Schristos		exit 1
1518a1ba9ba4Schristos		;;
1519a1ba9ba4Schristosesac
1520a1ba9ba4Schristoselse
1521a1ba9ba4Schristos
1522a1ba9ba4Schristos# Here we handle the default operating systems that come with various machines.
1523a1ba9ba4Schristos# The value should be what the vendor currently ships out the door with their
1524a1ba9ba4Schristos# machine or put another way, the most popular os provided with the machine.
1525a1ba9ba4Schristos
1526a1ba9ba4Schristos# Note that if you're going to try to match "-MANUFACTURER" here (say,
1527a1ba9ba4Schristos# "-sun"), then you have to tell the case statement up towards the top
1528a1ba9ba4Schristos# that MANUFACTURER isn't an operating system.  Otherwise, code above
1529a1ba9ba4Schristos# will signal an error saying that MANUFACTURER isn't an operating
1530a1ba9ba4Schristos# system, and we'll never get to this point.
1531a1ba9ba4Schristos
1532051580eeSchristoscase $cpu-$vendor in
1533a1ba9ba4Schristos	score-*)
1534051580eeSchristos		os=elf
1535a1ba9ba4Schristos		;;
1536a1ba9ba4Schristos	spu-*)
1537051580eeSchristos		os=elf
1538a1ba9ba4Schristos		;;
1539a1ba9ba4Schristos	*-acorn)
1540051580eeSchristos		os=riscix1.2
1541a1ba9ba4Schristos		;;
1542a1ba9ba4Schristos	arm*-rebel)
1543051580eeSchristos		os=linux
1544a1ba9ba4Schristos		;;
1545a1ba9ba4Schristos	arm*-semi)
1546051580eeSchristos		os=aout
1547a1ba9ba4Schristos		;;
1548a1ba9ba4Schristos	c4x-* | tic4x-*)
1549051580eeSchristos		os=coff
1550a1ba9ba4Schristos		;;
1551a1ba9ba4Schristos	c8051-*)
1552051580eeSchristos		os=elf
1553051580eeSchristos		;;
1554051580eeSchristos	clipper-intergraph)
1555051580eeSchristos		os=clix
1556a1ba9ba4Schristos		;;
1557a1ba9ba4Schristos	hexagon-*)
1558051580eeSchristos		os=elf
1559a1ba9ba4Schristos		;;
1560a1ba9ba4Schristos	tic54x-*)
1561051580eeSchristos		os=coff
1562a1ba9ba4Schristos		;;
1563a1ba9ba4Schristos	tic55x-*)
1564051580eeSchristos		os=coff
1565a1ba9ba4Schristos		;;
1566a1ba9ba4Schristos	tic6x-*)
1567051580eeSchristos		os=coff
1568a1ba9ba4Schristos		;;
1569a1ba9ba4Schristos	# This must come before the *-dec entry.
1570a1ba9ba4Schristos	pdp10-*)
1571051580eeSchristos		os=tops20
1572a1ba9ba4Schristos		;;
1573a1ba9ba4Schristos	pdp11-*)
1574051580eeSchristos		os=none
1575a1ba9ba4Schristos		;;
1576a1ba9ba4Schristos	*-dec | vax-*)
1577051580eeSchristos		os=ultrix4.2
1578a1ba9ba4Schristos		;;
1579a1ba9ba4Schristos	m68*-apollo)
1580051580eeSchristos		os=domain
1581a1ba9ba4Schristos		;;
1582a1ba9ba4Schristos	i386-sun)
1583051580eeSchristos		os=sunos4.0.2
1584a1ba9ba4Schristos		;;
1585a1ba9ba4Schristos	m68000-sun)
1586051580eeSchristos		os=sunos3
1587a1ba9ba4Schristos		;;
1588a1ba9ba4Schristos	m68*-cisco)
1589051580eeSchristos		os=aout
1590a1ba9ba4Schristos		;;
1591a1ba9ba4Schristos	mep-*)
1592051580eeSchristos		os=elf
1593a1ba9ba4Schristos		;;
1594a1ba9ba4Schristos	mips*-cisco)
1595051580eeSchristos		os=elf
1596a1ba9ba4Schristos		;;
1597a1ba9ba4Schristos	mips*-*)
1598051580eeSchristos		os=elf
1599a1ba9ba4Schristos		;;
1600a1ba9ba4Schristos	or32-*)
1601051580eeSchristos		os=coff
1602a1ba9ba4Schristos		;;
1603a1ba9ba4Schristos	*-tti)	# must be before sparc entry or we get the wrong os.
1604051580eeSchristos		os=sysv3
1605a1ba9ba4Schristos		;;
1606a1ba9ba4Schristos	sparc-* | *-sun)
1607051580eeSchristos		os=sunos4.1.1
1608a1ba9ba4Schristos		;;
160932b71e0eSsevan	pru-*)
1610051580eeSchristos		os=elf
161132b71e0eSsevan		;;
1612a1ba9ba4Schristos	*-be)
1613051580eeSchristos		os=beos
1614a1ba9ba4Schristos		;;
1615a1ba9ba4Schristos	*-ibm)
1616051580eeSchristos		os=aix
1617a1ba9ba4Schristos		;;
1618a1ba9ba4Schristos	*-knuth)
1619051580eeSchristos		os=mmixware
1620a1ba9ba4Schristos		;;
1621a1ba9ba4Schristos	*-wec)
1622051580eeSchristos		os=proelf
1623a1ba9ba4Schristos		;;
1624a1ba9ba4Schristos	*-winbond)
1625051580eeSchristos		os=proelf
1626a1ba9ba4Schristos		;;
1627a1ba9ba4Schristos	*-oki)
1628051580eeSchristos		os=proelf
1629a1ba9ba4Schristos		;;
1630a1ba9ba4Schristos	*-hp)
1631051580eeSchristos		os=hpux
1632a1ba9ba4Schristos		;;
1633a1ba9ba4Schristos	*-hitachi)
1634051580eeSchristos		os=hiux
1635a1ba9ba4Schristos		;;
1636a1ba9ba4Schristos	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1637051580eeSchristos		os=sysv
1638a1ba9ba4Schristos		;;
1639a1ba9ba4Schristos	*-cbm)
1640051580eeSchristos		os=amigaos
1641a1ba9ba4Schristos		;;
1642a1ba9ba4Schristos	*-dg)
1643051580eeSchristos		os=dgux
1644a1ba9ba4Schristos		;;
1645a1ba9ba4Schristos	*-dolphin)
1646051580eeSchristos		os=sysv3
1647a1ba9ba4Schristos		;;
1648a1ba9ba4Schristos	m68k-ccur)
1649051580eeSchristos		os=rtu
1650a1ba9ba4Schristos		;;
1651a1ba9ba4Schristos	m88k-omron*)
1652051580eeSchristos		os=luna
1653a1ba9ba4Schristos		;;
1654a1ba9ba4Schristos	*-next)
1655051580eeSchristos		os=nextstep
1656a1ba9ba4Schristos		;;
1657a1ba9ba4Schristos	*-sequent)
1658051580eeSchristos		os=ptx
1659a1ba9ba4Schristos		;;
1660a1ba9ba4Schristos	*-crds)
1661051580eeSchristos		os=unos
1662a1ba9ba4Schristos		;;
1663a1ba9ba4Schristos	*-ns)
1664051580eeSchristos		os=genix
1665a1ba9ba4Schristos		;;
1666a1ba9ba4Schristos	i370-*)
1667051580eeSchristos		os=mvs
1668a1ba9ba4Schristos		;;
1669a1ba9ba4Schristos	*-gould)
1670051580eeSchristos		os=sysv
1671a1ba9ba4Schristos		;;
1672a1ba9ba4Schristos	*-highlevel)
1673051580eeSchristos		os=bsd
1674a1ba9ba4Schristos		;;
1675a1ba9ba4Schristos	*-encore)
1676051580eeSchristos		os=bsd
1677a1ba9ba4Schristos		;;
1678a1ba9ba4Schristos	*-sgi)
1679051580eeSchristos		os=irix
1680a1ba9ba4Schristos		;;
1681a1ba9ba4Schristos	*-siemens)
1682051580eeSchristos		os=sysv4
1683a1ba9ba4Schristos		;;
1684a1ba9ba4Schristos	*-masscomp)
1685051580eeSchristos		os=rtu
1686a1ba9ba4Schristos		;;
1687a1ba9ba4Schristos	f30[01]-fujitsu | f700-fujitsu)
1688051580eeSchristos		os=uxpv
1689a1ba9ba4Schristos		;;
1690a1ba9ba4Schristos	*-rom68k)
1691051580eeSchristos		os=coff
1692a1ba9ba4Schristos		;;
1693a1ba9ba4Schristos	*-*bug)
1694051580eeSchristos		os=coff
1695a1ba9ba4Schristos		;;
1696a1ba9ba4Schristos	*-apple)
1697051580eeSchristos		os=macos
1698a1ba9ba4Schristos		;;
1699a1ba9ba4Schristos	*-atari*)
1700051580eeSchristos		os=mint
1701051580eeSchristos		;;
1702051580eeSchristos	*-wrs)
1703051580eeSchristos		os=vxworks
1704a1ba9ba4Schristos		;;
1705a1ba9ba4Schristos	*)
1706051580eeSchristos		os=none
1707a1ba9ba4Schristos		;;
1708a1ba9ba4Schristosesac
1709a1ba9ba4Schristosfi
1710a1ba9ba4Schristos
1711a1ba9ba4Schristos# Here we handle the case where we know the os, and the CPU type, but not the
1712a1ba9ba4Schristos# manufacturer.  We pick the logical manufacturer.
1713051580eeSchristoscase $vendor in
1714051580eeSchristos	unknown)
1715a1ba9ba4Schristos		case $os in
1716051580eeSchristos			riscix*)
1717a1ba9ba4Schristos				vendor=acorn
1718a1ba9ba4Schristos				;;
1719051580eeSchristos			sunos*)
1720a1ba9ba4Schristos				vendor=sun
1721a1ba9ba4Schristos				;;
1722051580eeSchristos			cnk*|-aix*)
1723a1ba9ba4Schristos				vendor=ibm
1724a1ba9ba4Schristos				;;
1725051580eeSchristos			beos*)
1726a1ba9ba4Schristos				vendor=be
1727a1ba9ba4Schristos				;;
1728051580eeSchristos			hpux*)
1729a1ba9ba4Schristos				vendor=hp
1730a1ba9ba4Schristos				;;
1731051580eeSchristos			mpeix*)
1732a1ba9ba4Schristos				vendor=hp
1733a1ba9ba4Schristos				;;
1734051580eeSchristos			hiux*)
1735a1ba9ba4Schristos				vendor=hitachi
1736a1ba9ba4Schristos				;;
1737051580eeSchristos			unos*)
1738a1ba9ba4Schristos				vendor=crds
1739a1ba9ba4Schristos				;;
1740051580eeSchristos			dgux*)
1741a1ba9ba4Schristos				vendor=dg
1742a1ba9ba4Schristos				;;
1743051580eeSchristos			luna*)
1744a1ba9ba4Schristos				vendor=omron
1745a1ba9ba4Schristos				;;
1746051580eeSchristos			genix*)
1747a1ba9ba4Schristos				vendor=ns
1748a1ba9ba4Schristos				;;
1749051580eeSchristos			clix*)
1750051580eeSchristos				vendor=intergraph
1751051580eeSchristos				;;
1752051580eeSchristos			mvs* | opened*)
1753a1ba9ba4Schristos				vendor=ibm
1754a1ba9ba4Schristos				;;
1755051580eeSchristos			os400*)
1756a1ba9ba4Schristos				vendor=ibm
1757a1ba9ba4Schristos				;;
1758051580eeSchristos			ptx*)
1759a1ba9ba4Schristos				vendor=sequent
1760a1ba9ba4Schristos				;;
1761051580eeSchristos			tpf*)
1762a1ba9ba4Schristos				vendor=ibm
1763a1ba9ba4Schristos				;;
1764051580eeSchristos			vxsim* | vxworks* | windiss*)
1765a1ba9ba4Schristos				vendor=wrs
1766a1ba9ba4Schristos				;;
1767051580eeSchristos			aux*)
1768a1ba9ba4Schristos				vendor=apple
1769a1ba9ba4Schristos				;;
1770051580eeSchristos			hms*)
1771a1ba9ba4Schristos				vendor=hitachi
1772a1ba9ba4Schristos				;;
1773051580eeSchristos			mpw* | macos*)
1774a1ba9ba4Schristos				vendor=apple
1775a1ba9ba4Schristos				;;
1776051580eeSchristos			*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1777a1ba9ba4Schristos				vendor=atari
1778a1ba9ba4Schristos				;;
1779051580eeSchristos			vos*)
1780a1ba9ba4Schristos				vendor=stratus
1781a1ba9ba4Schristos				;;
1782a1ba9ba4Schristos		esac
1783a1ba9ba4Schristos		;;
1784a1ba9ba4Schristosesac
1785a1ba9ba4Schristos
1786051580eeSchristosecho "$cpu-$vendor-$os"
1787a1ba9ba4Schristosexit
1788a1ba9ba4Schristos
1789a1ba9ba4Schristos# Local variables:
1790051580eeSchristos# eval: (add-hook 'before-save-hook 'time-stamp)
1791a1ba9ba4Schristos# time-stamp-start: "timestamp='"
1792a1ba9ba4Schristos# time-stamp-format: "%:y-%02m-%02d"
1793a1ba9ba4Schristos# time-stamp-end: "'"
1794a1ba9ba4Schristos# End:
1795