xref: /sqlite-3.40.0/config.sub (revision 4eefeb55)
171eb93eaSdrh#! /bin/sh
271eb93eaSdrh# Configuration validation subroutine script.
3*4eefeb55Sdan#   Copyright 1992-2019 Free Software Foundation, Inc.
471eb93eaSdrh
5*4eefeb55Sdantimestamp='2019-05-23'
671eb93eaSdrh
7*4eefeb55Sdan# This file is free software; you can redistribute it and/or modify it
8*4eefeb55Sdan# under the terms of the GNU General Public License as published by
9*4eefeb55Sdan# the Free Software Foundation; either version 3 of the License, or
1071eb93eaSdrh# (at your option) any later version.
1171eb93eaSdrh#
12*4eefeb55Sdan# This program is distributed in the hope that it will be useful, but
13*4eefeb55Sdan# WITHOUT ANY WARRANTY; without even the implied warranty of
14*4eefeb55Sdan# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15*4eefeb55Sdan# General Public License for more details.
1671eb93eaSdrh#
1771eb93eaSdrh# You should have received a copy of the GNU General Public License
18*4eefeb55Sdan# along with this program; if not, see <https://www.gnu.org/licenses/>.
197f19c02fSvapier#
2071eb93eaSdrh# As a special exception to the GNU General Public License, if you
2171eb93eaSdrh# distribute this file as part of a program that contains a
2271eb93eaSdrh# configuration script generated by Autoconf, you may include it under
23*4eefeb55Sdan# the same distribution terms that you use for the rest of that
24*4eefeb55Sdan# program.  This Exception is an additional permission under section 7
25*4eefeb55Sdan# of the GNU General Public License, version 3 ("GPLv3").
2671eb93eaSdrh
277f19c02fSvapier
28*4eefeb55Sdan# Please send patches to <[email protected]>.
2971eb93eaSdrh#
3071eb93eaSdrh# Configuration subroutine to validate and canonicalize a configuration type.
3171eb93eaSdrh# Supply the specified configuration type as an argument.
3271eb93eaSdrh# If it is invalid, we print an error message on stderr and exit with code 1.
3371eb93eaSdrh# Otherwise, we print the canonical config type on stdout and succeed.
3471eb93eaSdrh
35*4eefeb55Sdan# You can get the latest version of this script from:
36*4eefeb55Sdan# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
37*4eefeb55Sdan
3871eb93eaSdrh# This file is supposed to be the same for all GNU packages
3971eb93eaSdrh# and recognize all the CPU types, system types and aliases
4071eb93eaSdrh# that are meaningful with *any* GNU software.
4171eb93eaSdrh# Each package is responsible for reporting which valid configurations
4271eb93eaSdrh# it does not support.  The user should be able to distinguish
4371eb93eaSdrh# a failure to support a valid configuration from a meaningless
4471eb93eaSdrh# configuration.
4571eb93eaSdrh
4671eb93eaSdrh# The goal of this file is to map all the various variations of a given
4771eb93eaSdrh# machine specification into a single specification in the form:
4871eb93eaSdrh#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
4971eb93eaSdrh# or in some cases, the newer four-part form:
5071eb93eaSdrh#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
5171eb93eaSdrh# It is wrong to echo any other type of specification.
5271eb93eaSdrh
5371eb93eaSdrhme=`echo "$0" | sed -e 's,.*/,,'`
5471eb93eaSdrh
5571eb93eaSdrhusage="\
56*4eefeb55SdanUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
5771eb93eaSdrh
5871eb93eaSdrhCanonicalize a configuration name.
5971eb93eaSdrh
60*4eefeb55SdanOptions:
6171eb93eaSdrh  -h, --help         print this help, then exit
6271eb93eaSdrh  -t, --time-stamp   print date of last modification, then exit
6371eb93eaSdrh  -v, --version      print version number, then exit
6471eb93eaSdrh
6571eb93eaSdrhReport bugs and patches to <[email protected]>."
6671eb93eaSdrh
6771eb93eaSdrhversion="\
6871eb93eaSdrhGNU config.sub ($timestamp)
6971eb93eaSdrh
70*4eefeb55SdanCopyright 1992-2019 Free Software Foundation, Inc.
7171eb93eaSdrh
7271eb93eaSdrhThis is free software; see the source for copying conditions.  There is NO
7371eb93eaSdrhwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
7471eb93eaSdrh
7571eb93eaSdrhhelp="
7671eb93eaSdrhTry \`$me --help' for more information."
7771eb93eaSdrh
7871eb93eaSdrh# Parse command line
7971eb93eaSdrhwhile test $# -gt 0 ; do
8071eb93eaSdrh  case $1 in
8171eb93eaSdrh    --time-stamp | --time* | -t )
827f19c02fSvapier       echo "$timestamp" ; exit ;;
8371eb93eaSdrh    --version | -v )
847f19c02fSvapier       echo "$version" ; exit ;;
8571eb93eaSdrh    --help | --h* | -h )
867f19c02fSvapier       echo "$usage"; exit ;;
8771eb93eaSdrh    -- )     # Stop option processing
8871eb93eaSdrh       shift; break ;;
8971eb93eaSdrh    - )	# Use stdin as input.
9071eb93eaSdrh       break ;;
9171eb93eaSdrh    -* )
92*4eefeb55Sdan       echo "$me: invalid option $1$help" >&2
9371eb93eaSdrh       exit 1 ;;
9471eb93eaSdrh
9571eb93eaSdrh    *local*)
9671eb93eaSdrh       # First pass through any local machine types.
97*4eefeb55Sdan       echo "$1"
987f19c02fSvapier       exit ;;
9971eb93eaSdrh
10071eb93eaSdrh    * )
10171eb93eaSdrh       break ;;
10271eb93eaSdrh  esac
10371eb93eaSdrhdone
10471eb93eaSdrh
10571eb93eaSdrhcase $# in
10671eb93eaSdrh 0) echo "$me: missing argument$help" >&2
10771eb93eaSdrh    exit 1;;
10871eb93eaSdrh 1) ;;
10971eb93eaSdrh *) echo "$me: too many arguments$help" >&2
11071eb93eaSdrh    exit 1;;
11171eb93eaSdrhesac
11271eb93eaSdrh
113*4eefeb55Sdan# Split fields of configuration type
114*4eefeb55Sdan# shellcheck disable=SC2162
115*4eefeb55SdanIFS="-" read field1 field2 field3 field4 <<EOF
116*4eefeb55Sdan$1
117*4eefeb55SdanEOF
118*4eefeb55Sdan
119*4eefeb55Sdan# Separate into logical components for further validation
120*4eefeb55Sdancase $1 in
121*4eefeb55Sdan	*-*-*-*-*)
122*4eefeb55Sdan		echo Invalid configuration \`"$1"\': more than four components >&2
123*4eefeb55Sdan		exit 1
124*4eefeb55Sdan		;;
125*4eefeb55Sdan	*-*-*-*)
126*4eefeb55Sdan		basic_machine=$field1-$field2
127*4eefeb55Sdan		os=$field3-$field4
128*4eefeb55Sdan		;;
129*4eefeb55Sdan	*-*-*)
130*4eefeb55Sdan		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
131*4eefeb55Sdan		# parts
132*4eefeb55Sdan		maybe_os=$field2-$field3
13371eb93eaSdrh		case $maybe_os in
134*4eefeb55Sdan			nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
135*4eefeb55Sdan			| linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
136*4eefeb55Sdan			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
137*4eefeb55Sdan			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
138*4eefeb55Sdan			| storm-chaos* | os2-emx* | rtmk-nova*)
139*4eefeb55Sdan				basic_machine=$field1
140*4eefeb55Sdan				os=$maybe_os
141*4eefeb55Sdan				;;
142*4eefeb55Sdan			android-linux)
143*4eefeb55Sdan				basic_machine=$field1-unknown
144*4eefeb55Sdan				os=linux-android
14571eb93eaSdrh				;;
14671eb93eaSdrh			*)
147*4eefeb55Sdan				basic_machine=$field1-$field2
148*4eefeb55Sdan				os=$field3
149*4eefeb55Sdan				;;
150*4eefeb55Sdan		esac
151*4eefeb55Sdan		;;
152*4eefeb55Sdan	*-*)
153*4eefeb55Sdan		# A lone config we happen to match not fitting any pattern
154*4eefeb55Sdan		case $field1-$field2 in
155*4eefeb55Sdan			decstation-3100)
156*4eefeb55Sdan				basic_machine=mips-dec
157*4eefeb55Sdan				os=
158*4eefeb55Sdan				;;
159*4eefeb55Sdan			*-*)
160*4eefeb55Sdan				# Second component is usually, but not always the OS
161*4eefeb55Sdan				case $field2 in
162*4eefeb55Sdan					# Prevent following clause from handling this valid os
163*4eefeb55Sdan					sun*os*)
164*4eefeb55Sdan						basic_machine=$field1
165*4eefeb55Sdan						os=$field2
166*4eefeb55Sdan						;;
167*4eefeb55Sdan					# Manufacturers
168*4eefeb55Sdan					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
169*4eefeb55Sdan					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
170*4eefeb55Sdan					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
171*4eefeb55Sdan					| convergent* | ncr* | news | 32* | 3600* | 3100* \
172*4eefeb55Sdan					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
173*4eefeb55Sdan					| ultra | tti* | harris | dolphin | highlevel | gould \
174*4eefeb55Sdan					| cbm | ns | masscomp | apple | axis | knuth | cray \
175*4eefeb55Sdan					| microblaze* | sim | cisco \
176*4eefeb55Sdan					| oki | wec | wrs | winbond)
177*4eefeb55Sdan						basic_machine=$field1-$field2
178*4eefeb55Sdan						os=
179*4eefeb55Sdan						;;
180*4eefeb55Sdan					*)
181*4eefeb55Sdan						basic_machine=$field1
182*4eefeb55Sdan						os=$field2
183*4eefeb55Sdan						;;
184*4eefeb55Sdan				esac
185*4eefeb55Sdan			;;
186*4eefeb55Sdan		esac
187*4eefeb55Sdan		;;
188*4eefeb55Sdan	*)
189*4eefeb55Sdan		# Convert single-component short-hands not valid as part of
190*4eefeb55Sdan		# multi-component configurations.
191*4eefeb55Sdan		case $field1 in
192*4eefeb55Sdan			386bsd)
193*4eefeb55Sdan				basic_machine=i386-pc
194*4eefeb55Sdan				os=bsd
195*4eefeb55Sdan				;;
196*4eefeb55Sdan			a29khif)
197*4eefeb55Sdan				basic_machine=a29k-amd
198*4eefeb55Sdan				os=udi
199*4eefeb55Sdan				;;
200*4eefeb55Sdan			adobe68k)
201*4eefeb55Sdan				basic_machine=m68010-adobe
202*4eefeb55Sdan				os=scout
203*4eefeb55Sdan				;;
204*4eefeb55Sdan			alliant)
205*4eefeb55Sdan				basic_machine=fx80-alliant
206*4eefeb55Sdan				os=
207*4eefeb55Sdan				;;
208*4eefeb55Sdan			altos | altos3068)
209*4eefeb55Sdan				basic_machine=m68k-altos
210*4eefeb55Sdan				os=
211*4eefeb55Sdan				;;
212*4eefeb55Sdan			am29k)
213*4eefeb55Sdan				basic_machine=a29k-none
214*4eefeb55Sdan				os=bsd
215*4eefeb55Sdan				;;
216*4eefeb55Sdan			amdahl)
217*4eefeb55Sdan				basic_machine=580-amdahl
218*4eefeb55Sdan				os=sysv
219*4eefeb55Sdan				;;
220*4eefeb55Sdan			amiga)
221*4eefeb55Sdan				basic_machine=m68k-unknown
222*4eefeb55Sdan				os=
223*4eefeb55Sdan				;;
224*4eefeb55Sdan			amigaos | amigados)
225*4eefeb55Sdan				basic_machine=m68k-unknown
226*4eefeb55Sdan				os=amigaos
227*4eefeb55Sdan				;;
228*4eefeb55Sdan			amigaunix | amix)
229*4eefeb55Sdan				basic_machine=m68k-unknown
230*4eefeb55Sdan				os=sysv4
231*4eefeb55Sdan				;;
232*4eefeb55Sdan			apollo68)
233*4eefeb55Sdan				basic_machine=m68k-apollo
234*4eefeb55Sdan				os=sysv
235*4eefeb55Sdan				;;
236*4eefeb55Sdan			apollo68bsd)
237*4eefeb55Sdan				basic_machine=m68k-apollo
238*4eefeb55Sdan				os=bsd
239*4eefeb55Sdan				;;
240*4eefeb55Sdan			aros)
241*4eefeb55Sdan				basic_machine=i386-pc
242*4eefeb55Sdan				os=aros
243*4eefeb55Sdan				;;
244*4eefeb55Sdan			aux)
245*4eefeb55Sdan				basic_machine=m68k-apple
246*4eefeb55Sdan				os=aux
247*4eefeb55Sdan				;;
248*4eefeb55Sdan			balance)
249*4eefeb55Sdan				basic_machine=ns32k-sequent
250*4eefeb55Sdan				os=dynix
251*4eefeb55Sdan				;;
252*4eefeb55Sdan			blackfin)
253*4eefeb55Sdan				basic_machine=bfin-unknown
254*4eefeb55Sdan				os=linux
255*4eefeb55Sdan				;;
256*4eefeb55Sdan			cegcc)
257*4eefeb55Sdan				basic_machine=arm-unknown
258*4eefeb55Sdan				os=cegcc
259*4eefeb55Sdan				;;
260*4eefeb55Sdan			convex-c1)
261*4eefeb55Sdan				basic_machine=c1-convex
262*4eefeb55Sdan				os=bsd
263*4eefeb55Sdan				;;
264*4eefeb55Sdan			convex-c2)
265*4eefeb55Sdan				basic_machine=c2-convex
266*4eefeb55Sdan				os=bsd
267*4eefeb55Sdan				;;
268*4eefeb55Sdan			convex-c32)
269*4eefeb55Sdan				basic_machine=c32-convex
270*4eefeb55Sdan				os=bsd
271*4eefeb55Sdan				;;
272*4eefeb55Sdan			convex-c34)
273*4eefeb55Sdan				basic_machine=c34-convex
274*4eefeb55Sdan				os=bsd
275*4eefeb55Sdan				;;
276*4eefeb55Sdan			convex-c38)
277*4eefeb55Sdan				basic_machine=c38-convex
278*4eefeb55Sdan				os=bsd
279*4eefeb55Sdan				;;
280*4eefeb55Sdan			cray)
281*4eefeb55Sdan				basic_machine=j90-cray
282*4eefeb55Sdan				os=unicos
283*4eefeb55Sdan				;;
284*4eefeb55Sdan			crds | unos)
285*4eefeb55Sdan				basic_machine=m68k-crds
286*4eefeb55Sdan				os=
287*4eefeb55Sdan				;;
288*4eefeb55Sdan			da30)
289*4eefeb55Sdan				basic_machine=m68k-da30
290*4eefeb55Sdan				os=
291*4eefeb55Sdan				;;
292*4eefeb55Sdan			decstation | pmax | pmin | dec3100 | decstatn)
293*4eefeb55Sdan				basic_machine=mips-dec
294*4eefeb55Sdan				os=
295*4eefeb55Sdan				;;
296*4eefeb55Sdan			delta88)
297*4eefeb55Sdan				basic_machine=m88k-motorola
298*4eefeb55Sdan				os=sysv3
299*4eefeb55Sdan				;;
300*4eefeb55Sdan			dicos)
301*4eefeb55Sdan				basic_machine=i686-pc
302*4eefeb55Sdan				os=dicos
303*4eefeb55Sdan				;;
304*4eefeb55Sdan			djgpp)
305*4eefeb55Sdan				basic_machine=i586-pc
306*4eefeb55Sdan				os=msdosdjgpp
307*4eefeb55Sdan				;;
308*4eefeb55Sdan			ebmon29k)
309*4eefeb55Sdan				basic_machine=a29k-amd
310*4eefeb55Sdan				os=ebmon
311*4eefeb55Sdan				;;
312*4eefeb55Sdan			es1800 | OSE68k | ose68k | ose | OSE)
313*4eefeb55Sdan				basic_machine=m68k-ericsson
314*4eefeb55Sdan				os=ose
315*4eefeb55Sdan				;;
316*4eefeb55Sdan			gmicro)
317*4eefeb55Sdan				basic_machine=tron-gmicro
318*4eefeb55Sdan				os=sysv
319*4eefeb55Sdan				;;
320*4eefeb55Sdan			go32)
321*4eefeb55Sdan				basic_machine=i386-pc
322*4eefeb55Sdan				os=go32
323*4eefeb55Sdan				;;
324*4eefeb55Sdan			h8300hms)
325*4eefeb55Sdan				basic_machine=h8300-hitachi
326*4eefeb55Sdan				os=hms
327*4eefeb55Sdan				;;
328*4eefeb55Sdan			h8300xray)
329*4eefeb55Sdan				basic_machine=h8300-hitachi
330*4eefeb55Sdan				os=xray
331*4eefeb55Sdan				;;
332*4eefeb55Sdan			h8500hms)
333*4eefeb55Sdan				basic_machine=h8500-hitachi
334*4eefeb55Sdan				os=hms
335*4eefeb55Sdan				;;
336*4eefeb55Sdan			harris)
337*4eefeb55Sdan				basic_machine=m88k-harris
338*4eefeb55Sdan				os=sysv3
339*4eefeb55Sdan				;;
340*4eefeb55Sdan			hp300)
341*4eefeb55Sdan				basic_machine=m68k-hp
342*4eefeb55Sdan				;;
343*4eefeb55Sdan			hp300bsd)
344*4eefeb55Sdan				basic_machine=m68k-hp
345*4eefeb55Sdan				os=bsd
346*4eefeb55Sdan				;;
347*4eefeb55Sdan			hp300hpux)
348*4eefeb55Sdan				basic_machine=m68k-hp
349*4eefeb55Sdan				os=hpux
350*4eefeb55Sdan				;;
351*4eefeb55Sdan			hppaosf)
352*4eefeb55Sdan				basic_machine=hppa1.1-hp
353*4eefeb55Sdan				os=osf
354*4eefeb55Sdan				;;
355*4eefeb55Sdan			hppro)
356*4eefeb55Sdan				basic_machine=hppa1.1-hp
357*4eefeb55Sdan				os=proelf
358*4eefeb55Sdan				;;
359*4eefeb55Sdan			i386mach)
360*4eefeb55Sdan				basic_machine=i386-mach
361*4eefeb55Sdan				os=mach
362*4eefeb55Sdan				;;
363*4eefeb55Sdan			vsta)
364*4eefeb55Sdan				basic_machine=i386-pc
365*4eefeb55Sdan				os=vsta
366*4eefeb55Sdan				;;
367*4eefeb55Sdan			isi68 | isi)
368*4eefeb55Sdan				basic_machine=m68k-isi
369*4eefeb55Sdan				os=sysv
370*4eefeb55Sdan				;;
371*4eefeb55Sdan			m68knommu)
372*4eefeb55Sdan				basic_machine=m68k-unknown
373*4eefeb55Sdan				os=linux
374*4eefeb55Sdan				;;
375*4eefeb55Sdan			magnum | m3230)
376*4eefeb55Sdan				basic_machine=mips-mips
377*4eefeb55Sdan				os=sysv
378*4eefeb55Sdan				;;
379*4eefeb55Sdan			merlin)
380*4eefeb55Sdan				basic_machine=ns32k-utek
381*4eefeb55Sdan				os=sysv
382*4eefeb55Sdan				;;
383*4eefeb55Sdan			mingw64)
384*4eefeb55Sdan				basic_machine=x86_64-pc
385*4eefeb55Sdan				os=mingw64
386*4eefeb55Sdan				;;
387*4eefeb55Sdan			mingw32)
388*4eefeb55Sdan				basic_machine=i686-pc
389*4eefeb55Sdan				os=mingw32
390*4eefeb55Sdan				;;
391*4eefeb55Sdan			mingw32ce)
392*4eefeb55Sdan				basic_machine=arm-unknown
393*4eefeb55Sdan				os=mingw32ce
394*4eefeb55Sdan				;;
395*4eefeb55Sdan			monitor)
396*4eefeb55Sdan				basic_machine=m68k-rom68k
397*4eefeb55Sdan				os=coff
398*4eefeb55Sdan				;;
399*4eefeb55Sdan			morphos)
400*4eefeb55Sdan				basic_machine=powerpc-unknown
401*4eefeb55Sdan				os=morphos
402*4eefeb55Sdan				;;
403*4eefeb55Sdan			moxiebox)
404*4eefeb55Sdan				basic_machine=moxie-unknown
405*4eefeb55Sdan				os=moxiebox
406*4eefeb55Sdan				;;
407*4eefeb55Sdan			msdos)
408*4eefeb55Sdan				basic_machine=i386-pc
409*4eefeb55Sdan				os=msdos
410*4eefeb55Sdan				;;
411*4eefeb55Sdan			msys)
412*4eefeb55Sdan				basic_machine=i686-pc
413*4eefeb55Sdan				os=msys
414*4eefeb55Sdan				;;
415*4eefeb55Sdan			mvs)
416*4eefeb55Sdan				basic_machine=i370-ibm
417*4eefeb55Sdan				os=mvs
418*4eefeb55Sdan				;;
419*4eefeb55Sdan			nacl)
420*4eefeb55Sdan				basic_machine=le32-unknown
421*4eefeb55Sdan				os=nacl
422*4eefeb55Sdan				;;
423*4eefeb55Sdan			ncr3000)
424*4eefeb55Sdan				basic_machine=i486-ncr
425*4eefeb55Sdan				os=sysv4
426*4eefeb55Sdan				;;
427*4eefeb55Sdan			netbsd386)
428*4eefeb55Sdan				basic_machine=i386-pc
429*4eefeb55Sdan				os=netbsd
430*4eefeb55Sdan				;;
431*4eefeb55Sdan			netwinder)
432*4eefeb55Sdan				basic_machine=armv4l-rebel
433*4eefeb55Sdan				os=linux
434*4eefeb55Sdan				;;
435*4eefeb55Sdan			news | news700 | news800 | news900)
436*4eefeb55Sdan				basic_machine=m68k-sony
437*4eefeb55Sdan				os=newsos
438*4eefeb55Sdan				;;
439*4eefeb55Sdan			news1000)
440*4eefeb55Sdan				basic_machine=m68030-sony
441*4eefeb55Sdan				os=newsos
442*4eefeb55Sdan				;;
443*4eefeb55Sdan			necv70)
444*4eefeb55Sdan				basic_machine=v70-nec
445*4eefeb55Sdan				os=sysv
446*4eefeb55Sdan				;;
447*4eefeb55Sdan			nh3000)
448*4eefeb55Sdan				basic_machine=m68k-harris
449*4eefeb55Sdan				os=cxux
450*4eefeb55Sdan				;;
451*4eefeb55Sdan			nh[45]000)
452*4eefeb55Sdan				basic_machine=m88k-harris
453*4eefeb55Sdan				os=cxux
454*4eefeb55Sdan				;;
455*4eefeb55Sdan			nindy960)
456*4eefeb55Sdan				basic_machine=i960-intel
457*4eefeb55Sdan				os=nindy
458*4eefeb55Sdan				;;
459*4eefeb55Sdan			mon960)
460*4eefeb55Sdan				basic_machine=i960-intel
461*4eefeb55Sdan				os=mon960
462*4eefeb55Sdan				;;
463*4eefeb55Sdan			nonstopux)
464*4eefeb55Sdan				basic_machine=mips-compaq
465*4eefeb55Sdan				os=nonstopux
466*4eefeb55Sdan				;;
467*4eefeb55Sdan			os400)
468*4eefeb55Sdan				basic_machine=powerpc-ibm
469*4eefeb55Sdan				os=os400
470*4eefeb55Sdan				;;
471*4eefeb55Sdan			OSE68000 | ose68000)
472*4eefeb55Sdan				basic_machine=m68000-ericsson
473*4eefeb55Sdan				os=ose
474*4eefeb55Sdan				;;
475*4eefeb55Sdan			os68k)
476*4eefeb55Sdan				basic_machine=m68k-none
477*4eefeb55Sdan				os=os68k
478*4eefeb55Sdan				;;
479*4eefeb55Sdan			paragon)
480*4eefeb55Sdan				basic_machine=i860-intel
481*4eefeb55Sdan				os=osf
482*4eefeb55Sdan				;;
483*4eefeb55Sdan			parisc)
484*4eefeb55Sdan				basic_machine=hppa-unknown
485*4eefeb55Sdan				os=linux
486*4eefeb55Sdan				;;
487*4eefeb55Sdan			pw32)
488*4eefeb55Sdan				basic_machine=i586-unknown
489*4eefeb55Sdan				os=pw32
490*4eefeb55Sdan				;;
491*4eefeb55Sdan			rdos | rdos64)
492*4eefeb55Sdan				basic_machine=x86_64-pc
493*4eefeb55Sdan				os=rdos
494*4eefeb55Sdan				;;
495*4eefeb55Sdan			rdos32)
496*4eefeb55Sdan				basic_machine=i386-pc
497*4eefeb55Sdan				os=rdos
498*4eefeb55Sdan				;;
499*4eefeb55Sdan			rom68k)
500*4eefeb55Sdan				basic_machine=m68k-rom68k
501*4eefeb55Sdan				os=coff
502*4eefeb55Sdan				;;
503*4eefeb55Sdan			sa29200)
504*4eefeb55Sdan				basic_machine=a29k-amd
505*4eefeb55Sdan				os=udi
506*4eefeb55Sdan				;;
507*4eefeb55Sdan			sei)
508*4eefeb55Sdan				basic_machine=mips-sei
509*4eefeb55Sdan				os=seiux
510*4eefeb55Sdan				;;
511*4eefeb55Sdan			sequent)
512*4eefeb55Sdan				basic_machine=i386-sequent
513*4eefeb55Sdan				os=
514*4eefeb55Sdan				;;
515*4eefeb55Sdan			sps7)
516*4eefeb55Sdan				basic_machine=m68k-bull
517*4eefeb55Sdan				os=sysv2
518*4eefeb55Sdan				;;
519*4eefeb55Sdan			st2000)
520*4eefeb55Sdan				basic_machine=m68k-tandem
521*4eefeb55Sdan				os=
522*4eefeb55Sdan				;;
523*4eefeb55Sdan			stratus)
524*4eefeb55Sdan				basic_machine=i860-stratus
525*4eefeb55Sdan				os=sysv4
526*4eefeb55Sdan				;;
527*4eefeb55Sdan			sun2)
528*4eefeb55Sdan				basic_machine=m68000-sun
529*4eefeb55Sdan				os=
530*4eefeb55Sdan				;;
531*4eefeb55Sdan			sun2os3)
532*4eefeb55Sdan				basic_machine=m68000-sun
533*4eefeb55Sdan				os=sunos3
534*4eefeb55Sdan				;;
535*4eefeb55Sdan			sun2os4)
536*4eefeb55Sdan				basic_machine=m68000-sun
537*4eefeb55Sdan				os=sunos4
538*4eefeb55Sdan				;;
539*4eefeb55Sdan			sun3)
540*4eefeb55Sdan				basic_machine=m68k-sun
541*4eefeb55Sdan				os=
542*4eefeb55Sdan				;;
543*4eefeb55Sdan			sun3os3)
544*4eefeb55Sdan				basic_machine=m68k-sun
545*4eefeb55Sdan				os=sunos3
546*4eefeb55Sdan				;;
547*4eefeb55Sdan			sun3os4)
548*4eefeb55Sdan				basic_machine=m68k-sun
549*4eefeb55Sdan				os=sunos4
550*4eefeb55Sdan				;;
551*4eefeb55Sdan			sun4)
552*4eefeb55Sdan				basic_machine=sparc-sun
553*4eefeb55Sdan				os=
554*4eefeb55Sdan				;;
555*4eefeb55Sdan			sun4os3)
556*4eefeb55Sdan				basic_machine=sparc-sun
557*4eefeb55Sdan				os=sunos3
558*4eefeb55Sdan				;;
559*4eefeb55Sdan			sun4os4)
560*4eefeb55Sdan				basic_machine=sparc-sun
561*4eefeb55Sdan				os=sunos4
562*4eefeb55Sdan				;;
563*4eefeb55Sdan			sun4sol2)
564*4eefeb55Sdan				basic_machine=sparc-sun
565*4eefeb55Sdan				os=solaris2
566*4eefeb55Sdan				;;
567*4eefeb55Sdan			sun386 | sun386i | roadrunner)
568*4eefeb55Sdan				basic_machine=i386-sun
569*4eefeb55Sdan				os=
570*4eefeb55Sdan				;;
571*4eefeb55Sdan			sv1)
572*4eefeb55Sdan				basic_machine=sv1-cray
573*4eefeb55Sdan				os=unicos
574*4eefeb55Sdan				;;
575*4eefeb55Sdan			symmetry)
576*4eefeb55Sdan				basic_machine=i386-sequent
577*4eefeb55Sdan				os=dynix
578*4eefeb55Sdan				;;
579*4eefeb55Sdan			t3e)
580*4eefeb55Sdan				basic_machine=alphaev5-cray
581*4eefeb55Sdan				os=unicos
582*4eefeb55Sdan				;;
583*4eefeb55Sdan			t90)
584*4eefeb55Sdan				basic_machine=t90-cray
585*4eefeb55Sdan				os=unicos
586*4eefeb55Sdan				;;
587*4eefeb55Sdan			toad1)
588*4eefeb55Sdan				basic_machine=pdp10-xkl
589*4eefeb55Sdan				os=tops20
590*4eefeb55Sdan				;;
591*4eefeb55Sdan			tpf)
592*4eefeb55Sdan				basic_machine=s390x-ibm
593*4eefeb55Sdan				os=tpf
594*4eefeb55Sdan				;;
595*4eefeb55Sdan			udi29k)
596*4eefeb55Sdan				basic_machine=a29k-amd
597*4eefeb55Sdan				os=udi
598*4eefeb55Sdan				;;
599*4eefeb55Sdan			ultra3)
600*4eefeb55Sdan				basic_machine=a29k-nyu
601*4eefeb55Sdan				os=sym1
602*4eefeb55Sdan				;;
603*4eefeb55Sdan			v810 | necv810)
604*4eefeb55Sdan				basic_machine=v810-nec
605*4eefeb55Sdan				os=none
606*4eefeb55Sdan				;;
607*4eefeb55Sdan			vaxv)
608*4eefeb55Sdan				basic_machine=vax-dec
609*4eefeb55Sdan				os=sysv
610*4eefeb55Sdan				;;
611*4eefeb55Sdan			vms)
612*4eefeb55Sdan				basic_machine=vax-dec
613*4eefeb55Sdan				os=vms
614*4eefeb55Sdan				;;
615*4eefeb55Sdan			vxworks960)
616*4eefeb55Sdan				basic_machine=i960-wrs
617*4eefeb55Sdan				os=vxworks
618*4eefeb55Sdan				;;
619*4eefeb55Sdan			vxworks68)
620*4eefeb55Sdan				basic_machine=m68k-wrs
621*4eefeb55Sdan				os=vxworks
622*4eefeb55Sdan				;;
623*4eefeb55Sdan			vxworks29k)
624*4eefeb55Sdan				basic_machine=a29k-wrs
625*4eefeb55Sdan				os=vxworks
626*4eefeb55Sdan				;;
627*4eefeb55Sdan			xbox)
628*4eefeb55Sdan				basic_machine=i686-pc
629*4eefeb55Sdan				os=mingw32
630*4eefeb55Sdan				;;
631*4eefeb55Sdan			ymp)
632*4eefeb55Sdan				basic_machine=ymp-cray
633*4eefeb55Sdan				os=unicos
634*4eefeb55Sdan				;;
635*4eefeb55Sdan			*)
636*4eefeb55Sdan				basic_machine=$1
637*4eefeb55Sdan				os=
638*4eefeb55Sdan				;;
639*4eefeb55Sdan		esac
64071eb93eaSdrh		;;
64171eb93eaSdrhesac
64271eb93eaSdrh
643*4eefeb55Sdan# Decode 1-component or ad-hoc basic machines
64471eb93eaSdrhcase $basic_machine in
645*4eefeb55Sdan	# Here we handle the default manufacturer of certain CPU types.  It is in
646*4eefeb55Sdan	# some cases the only manufacturer, in others, it is the most popular.
647*4eefeb55Sdan	w89k)
648*4eefeb55Sdan		cpu=hppa1.1
649*4eefeb55Sdan		vendor=winbond
650*4eefeb55Sdan		;;
651*4eefeb55Sdan	op50n)
652*4eefeb55Sdan		cpu=hppa1.1
653*4eefeb55Sdan		vendor=oki
654*4eefeb55Sdan		;;
655*4eefeb55Sdan	op60c)
656*4eefeb55Sdan		cpu=hppa1.1
657*4eefeb55Sdan		vendor=oki
658*4eefeb55Sdan		;;
659*4eefeb55Sdan	ibm*)
660*4eefeb55Sdan		cpu=i370
661*4eefeb55Sdan		vendor=ibm
662*4eefeb55Sdan		;;
663*4eefeb55Sdan	orion105)
664*4eefeb55Sdan		cpu=clipper
665*4eefeb55Sdan		vendor=highlevel
666*4eefeb55Sdan		;;
667*4eefeb55Sdan	mac | mpw | mac-mpw)
668*4eefeb55Sdan		cpu=m68k
669*4eefeb55Sdan		vendor=apple
670*4eefeb55Sdan		;;
671*4eefeb55Sdan	pmac | pmac-mpw)
672*4eefeb55Sdan		cpu=powerpc
673*4eefeb55Sdan		vendor=apple
674*4eefeb55Sdan		;;
675*4eefeb55Sdan
676*4eefeb55Sdan	# Recognize the various machine names and aliases which stand
677*4eefeb55Sdan	# for a CPU type and a company and sometimes even an OS.
678*4eefeb55Sdan	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
679*4eefeb55Sdan		cpu=m68000
680*4eefeb55Sdan		vendor=att
681*4eefeb55Sdan		;;
682*4eefeb55Sdan	3b*)
683*4eefeb55Sdan		cpu=we32k
684*4eefeb55Sdan		vendor=att
685*4eefeb55Sdan		;;
686*4eefeb55Sdan	bluegene*)
687*4eefeb55Sdan		cpu=powerpc
688*4eefeb55Sdan		vendor=ibm
689*4eefeb55Sdan		os=cnk
690*4eefeb55Sdan		;;
691*4eefeb55Sdan	decsystem10* | dec10*)
692*4eefeb55Sdan		cpu=pdp10
693*4eefeb55Sdan		vendor=dec
694*4eefeb55Sdan		os=tops10
695*4eefeb55Sdan		;;
696*4eefeb55Sdan	decsystem20* | dec20*)
697*4eefeb55Sdan		cpu=pdp10
698*4eefeb55Sdan		vendor=dec
699*4eefeb55Sdan		os=tops20
700*4eefeb55Sdan		;;
701*4eefeb55Sdan	delta | 3300 | motorola-3300 | motorola-delta \
702*4eefeb55Sdan	      | 3300-motorola | delta-motorola)
703*4eefeb55Sdan		cpu=m68k
704*4eefeb55Sdan		vendor=motorola
705*4eefeb55Sdan		;;
706*4eefeb55Sdan	dpx2*)
707*4eefeb55Sdan		cpu=m68k
708*4eefeb55Sdan		vendor=bull
709*4eefeb55Sdan		os=sysv3
710*4eefeb55Sdan		;;
711*4eefeb55Sdan	encore | umax | mmax)
712*4eefeb55Sdan		cpu=ns32k
713*4eefeb55Sdan		vendor=encore
714*4eefeb55Sdan		;;
715*4eefeb55Sdan	elxsi)
716*4eefeb55Sdan		cpu=elxsi
717*4eefeb55Sdan		vendor=elxsi
718*4eefeb55Sdan		os=${os:-bsd}
719*4eefeb55Sdan		;;
720*4eefeb55Sdan	fx2800)
721*4eefeb55Sdan		cpu=i860
722*4eefeb55Sdan		vendor=alliant
723*4eefeb55Sdan		;;
724*4eefeb55Sdan	genix)
725*4eefeb55Sdan		cpu=ns32k
726*4eefeb55Sdan		vendor=ns
727*4eefeb55Sdan		;;
728*4eefeb55Sdan	h3050r* | hiux*)
729*4eefeb55Sdan		cpu=hppa1.1
730*4eefeb55Sdan		vendor=hitachi
731*4eefeb55Sdan		os=hiuxwe2
732*4eefeb55Sdan		;;
733*4eefeb55Sdan	hp3k9[0-9][0-9] | hp9[0-9][0-9])
734*4eefeb55Sdan		cpu=hppa1.0
735*4eefeb55Sdan		vendor=hp
736*4eefeb55Sdan		;;
737*4eefeb55Sdan	hp9k2[0-9][0-9] | hp9k31[0-9])
738*4eefeb55Sdan		cpu=m68000
739*4eefeb55Sdan		vendor=hp
740*4eefeb55Sdan		;;
741*4eefeb55Sdan	hp9k3[2-9][0-9])
742*4eefeb55Sdan		cpu=m68k
743*4eefeb55Sdan		vendor=hp
744*4eefeb55Sdan		;;
745*4eefeb55Sdan	hp9k6[0-9][0-9] | hp6[0-9][0-9])
746*4eefeb55Sdan		cpu=hppa1.0
747*4eefeb55Sdan		vendor=hp
748*4eefeb55Sdan		;;
749*4eefeb55Sdan	hp9k7[0-79][0-9] | hp7[0-79][0-9])
750*4eefeb55Sdan		cpu=hppa1.1
751*4eefeb55Sdan		vendor=hp
752*4eefeb55Sdan		;;
753*4eefeb55Sdan	hp9k78[0-9] | hp78[0-9])
754*4eefeb55Sdan		# FIXME: really hppa2.0-hp
755*4eefeb55Sdan		cpu=hppa1.1
756*4eefeb55Sdan		vendor=hp
757*4eefeb55Sdan		;;
758*4eefeb55Sdan	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
759*4eefeb55Sdan		# FIXME: really hppa2.0-hp
760*4eefeb55Sdan		cpu=hppa1.1
761*4eefeb55Sdan		vendor=hp
762*4eefeb55Sdan		;;
763*4eefeb55Sdan	hp9k8[0-9][13679] | hp8[0-9][13679])
764*4eefeb55Sdan		cpu=hppa1.1
765*4eefeb55Sdan		vendor=hp
766*4eefeb55Sdan		;;
767*4eefeb55Sdan	hp9k8[0-9][0-9] | hp8[0-9][0-9])
768*4eefeb55Sdan		cpu=hppa1.0
769*4eefeb55Sdan		vendor=hp
770*4eefeb55Sdan		;;
771*4eefeb55Sdan	i*86v32)
772*4eefeb55Sdan		cpu=`echo "$1" | sed -e 's/86.*/86/'`
773*4eefeb55Sdan		vendor=pc
774*4eefeb55Sdan		os=sysv32
775*4eefeb55Sdan		;;
776*4eefeb55Sdan	i*86v4*)
777*4eefeb55Sdan		cpu=`echo "$1" | sed -e 's/86.*/86/'`
778*4eefeb55Sdan		vendor=pc
779*4eefeb55Sdan		os=sysv4
780*4eefeb55Sdan		;;
781*4eefeb55Sdan	i*86v)
782*4eefeb55Sdan		cpu=`echo "$1" | sed -e 's/86.*/86/'`
783*4eefeb55Sdan		vendor=pc
784*4eefeb55Sdan		os=sysv
785*4eefeb55Sdan		;;
786*4eefeb55Sdan	i*86sol2)
787*4eefeb55Sdan		cpu=`echo "$1" | sed -e 's/86.*/86/'`
788*4eefeb55Sdan		vendor=pc
789*4eefeb55Sdan		os=solaris2
790*4eefeb55Sdan		;;
791*4eefeb55Sdan	j90 | j90-cray)
792*4eefeb55Sdan		cpu=j90
793*4eefeb55Sdan		vendor=cray
794*4eefeb55Sdan		os=${os:-unicos}
795*4eefeb55Sdan		;;
796*4eefeb55Sdan	iris | iris4d)
797*4eefeb55Sdan		cpu=mips
798*4eefeb55Sdan		vendor=sgi
799*4eefeb55Sdan		case $os in
800*4eefeb55Sdan		    irix*)
801*4eefeb55Sdan			;;
802*4eefeb55Sdan		    *)
803*4eefeb55Sdan			os=irix4
804*4eefeb55Sdan			;;
805*4eefeb55Sdan		esac
806*4eefeb55Sdan		;;
807*4eefeb55Sdan	miniframe)
808*4eefeb55Sdan		cpu=m68000
809*4eefeb55Sdan		vendor=convergent
810*4eefeb55Sdan		;;
811*4eefeb55Sdan	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
812*4eefeb55Sdan		cpu=m68k
813*4eefeb55Sdan		vendor=atari
814*4eefeb55Sdan		os=mint
815*4eefeb55Sdan		;;
816*4eefeb55Sdan	news-3600 | risc-news)
817*4eefeb55Sdan		cpu=mips
818*4eefeb55Sdan		vendor=sony
819*4eefeb55Sdan		os=newsos
820*4eefeb55Sdan		;;
821*4eefeb55Sdan	next | m*-next)
822*4eefeb55Sdan		cpu=m68k
823*4eefeb55Sdan		vendor=next
824*4eefeb55Sdan		case $os in
825*4eefeb55Sdan		    openstep*)
826*4eefeb55Sdan		        ;;
827*4eefeb55Sdan		    nextstep*)
828*4eefeb55Sdan			;;
829*4eefeb55Sdan		    ns2*)
830*4eefeb55Sdan		      os=nextstep2
831*4eefeb55Sdan			;;
832*4eefeb55Sdan		    *)
833*4eefeb55Sdan		      os=nextstep3
834*4eefeb55Sdan			;;
835*4eefeb55Sdan		esac
836*4eefeb55Sdan		;;
837*4eefeb55Sdan	np1)
838*4eefeb55Sdan		cpu=np1
839*4eefeb55Sdan		vendor=gould
840*4eefeb55Sdan		;;
841*4eefeb55Sdan	op50n-* | op60c-*)
842*4eefeb55Sdan		cpu=hppa1.1
843*4eefeb55Sdan		vendor=oki
844*4eefeb55Sdan		os=proelf
845*4eefeb55Sdan		;;
846*4eefeb55Sdan	pa-hitachi)
847*4eefeb55Sdan		cpu=hppa1.1
848*4eefeb55Sdan		vendor=hitachi
849*4eefeb55Sdan		os=hiuxwe2
850*4eefeb55Sdan		;;
851*4eefeb55Sdan	pbd)
852*4eefeb55Sdan		cpu=sparc
853*4eefeb55Sdan		vendor=tti
854*4eefeb55Sdan		;;
855*4eefeb55Sdan	pbb)
856*4eefeb55Sdan		cpu=m68k
857*4eefeb55Sdan		vendor=tti
858*4eefeb55Sdan		;;
859*4eefeb55Sdan	pc532)
860*4eefeb55Sdan		cpu=ns32k
861*4eefeb55Sdan		vendor=pc532
862*4eefeb55Sdan		;;
863*4eefeb55Sdan	pn)
864*4eefeb55Sdan		cpu=pn
865*4eefeb55Sdan		vendor=gould
866*4eefeb55Sdan		;;
867*4eefeb55Sdan	power)
868*4eefeb55Sdan		cpu=power
869*4eefeb55Sdan		vendor=ibm
870*4eefeb55Sdan		;;
871*4eefeb55Sdan	ps2)
872*4eefeb55Sdan		cpu=i386
873*4eefeb55Sdan		vendor=ibm
874*4eefeb55Sdan		;;
875*4eefeb55Sdan	rm[46]00)
876*4eefeb55Sdan		cpu=mips
877*4eefeb55Sdan		vendor=siemens
878*4eefeb55Sdan		;;
879*4eefeb55Sdan	rtpc | rtpc-*)
880*4eefeb55Sdan		cpu=romp
881*4eefeb55Sdan		vendor=ibm
882*4eefeb55Sdan		;;
883*4eefeb55Sdan	sde)
884*4eefeb55Sdan		cpu=mipsisa32
885*4eefeb55Sdan		vendor=sde
886*4eefeb55Sdan		os=${os:-elf}
887*4eefeb55Sdan		;;
888*4eefeb55Sdan	simso-wrs)
889*4eefeb55Sdan		cpu=sparclite
890*4eefeb55Sdan		vendor=wrs
891*4eefeb55Sdan		os=vxworks
892*4eefeb55Sdan		;;
893*4eefeb55Sdan	tower | tower-32)
894*4eefeb55Sdan		cpu=m68k
895*4eefeb55Sdan		vendor=ncr
896*4eefeb55Sdan		;;
897*4eefeb55Sdan	vpp*|vx|vx-*)
898*4eefeb55Sdan		cpu=f301
899*4eefeb55Sdan		vendor=fujitsu
900*4eefeb55Sdan		;;
901*4eefeb55Sdan	w65)
902*4eefeb55Sdan		cpu=w65
903*4eefeb55Sdan		vendor=wdc
904*4eefeb55Sdan		;;
905*4eefeb55Sdan	w89k-*)
906*4eefeb55Sdan		cpu=hppa1.1
907*4eefeb55Sdan		vendor=winbond
908*4eefeb55Sdan		os=proelf
909*4eefeb55Sdan		;;
910*4eefeb55Sdan	none)
911*4eefeb55Sdan		cpu=none
912*4eefeb55Sdan		vendor=none
913*4eefeb55Sdan		;;
914*4eefeb55Sdan	leon|leon[3-9])
915*4eefeb55Sdan		cpu=sparc
916*4eefeb55Sdan		vendor=$basic_machine
917*4eefeb55Sdan		;;
918*4eefeb55Sdan	leon-*|leon[3-9]-*)
919*4eefeb55Sdan		cpu=sparc
920*4eefeb55Sdan		vendor=`echo "$basic_machine" | sed 's/-.*//'`
921*4eefeb55Sdan		;;
922*4eefeb55Sdan
923*4eefeb55Sdan	*-*)
924*4eefeb55Sdan		# shellcheck disable=SC2162
925*4eefeb55Sdan		IFS="-" read cpu vendor <<EOF
926*4eefeb55Sdan$basic_machine
927*4eefeb55SdanEOF
928*4eefeb55Sdan		;;
929*4eefeb55Sdan	# We use `pc' rather than `unknown'
930*4eefeb55Sdan	# because (1) that's what they normally are, and
931*4eefeb55Sdan	# (2) the word "unknown" tends to confuse beginning users.
932*4eefeb55Sdan	i*86 | x86_64)
933*4eefeb55Sdan		cpu=$basic_machine
934*4eefeb55Sdan		vendor=pc
935*4eefeb55Sdan		;;
936*4eefeb55Sdan	# These rules are duplicated from below for sake of the special case above;
937*4eefeb55Sdan	# i.e. things that normalized to x86 arches should also default to "pc"
938*4eefeb55Sdan	pc98)
939*4eefeb55Sdan		cpu=i386
940*4eefeb55Sdan		vendor=pc
941*4eefeb55Sdan		;;
942*4eefeb55Sdan	x64 | amd64)
943*4eefeb55Sdan		cpu=x86_64
944*4eefeb55Sdan		vendor=pc
945*4eefeb55Sdan		;;
94671eb93eaSdrh	# Recognize the basic CPU types without company name.
947*4eefeb55Sdan	*)
948*4eefeb55Sdan		cpu=$basic_machine
949*4eefeb55Sdan		vendor=unknown
950*4eefeb55Sdan		;;
951*4eefeb55Sdanesac
952*4eefeb55Sdan
953*4eefeb55Sdanunset -v basic_machine
954*4eefeb55Sdan
955*4eefeb55Sdan# Decode basic machines in the full and proper CPU-Company form.
956*4eefeb55Sdancase $cpu-$vendor in
957*4eefeb55Sdan	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
958*4eefeb55Sdan	# some cases the only manufacturer, in others, it is the most popular.
959*4eefeb55Sdan	craynv-unknown)
960*4eefeb55Sdan		vendor=cray
961*4eefeb55Sdan		os=${os:-unicosmp}
962*4eefeb55Sdan		;;
963*4eefeb55Sdan	c90-unknown | c90-cray)
964*4eefeb55Sdan		vendor=cray
965*4eefeb55Sdan		os=${os:-unicos}
966*4eefeb55Sdan		;;
967*4eefeb55Sdan	fx80-unknown)
968*4eefeb55Sdan		vendor=alliant
969*4eefeb55Sdan		;;
970*4eefeb55Sdan	romp-unknown)
971*4eefeb55Sdan		vendor=ibm
972*4eefeb55Sdan		;;
973*4eefeb55Sdan	mmix-unknown)
974*4eefeb55Sdan		vendor=knuth
975*4eefeb55Sdan		;;
976*4eefeb55Sdan	microblaze-unknown | microblazeel-unknown)
977*4eefeb55Sdan		vendor=xilinx
978*4eefeb55Sdan		;;
979*4eefeb55Sdan	rs6000-unknown)
980*4eefeb55Sdan		vendor=ibm
981*4eefeb55Sdan		;;
982*4eefeb55Sdan	vax-unknown)
983*4eefeb55Sdan		vendor=dec
984*4eefeb55Sdan		;;
985*4eefeb55Sdan	pdp11-unknown)
986*4eefeb55Sdan		vendor=dec
987*4eefeb55Sdan		;;
988*4eefeb55Sdan	we32k-unknown)
989*4eefeb55Sdan		vendor=att
990*4eefeb55Sdan		;;
991*4eefeb55Sdan	cydra-unknown)
992*4eefeb55Sdan		vendor=cydrome
993*4eefeb55Sdan		;;
994*4eefeb55Sdan	i370-ibm*)
995*4eefeb55Sdan		vendor=ibm
996*4eefeb55Sdan		;;
997*4eefeb55Sdan	orion-unknown)
998*4eefeb55Sdan		vendor=highlevel
999*4eefeb55Sdan		;;
1000*4eefeb55Sdan	xps-unknown | xps100-unknown)
1001*4eefeb55Sdan		cpu=xps100
1002*4eefeb55Sdan		vendor=honeywell
1003*4eefeb55Sdan		;;
1004*4eefeb55Sdan
1005*4eefeb55Sdan	# Here we normalize CPU types with a missing or matching vendor
1006*4eefeb55Sdan	dpx20-unknown | dpx20-bull)
1007*4eefeb55Sdan		cpu=rs6000
1008*4eefeb55Sdan		vendor=bull
1009*4eefeb55Sdan		os=${os:-bosx}
1010*4eefeb55Sdan		;;
1011*4eefeb55Sdan
1012*4eefeb55Sdan	# Here we normalize CPU types irrespective of the vendor
1013*4eefeb55Sdan	amd64-*)
1014*4eefeb55Sdan		cpu=x86_64
1015*4eefeb55Sdan		;;
1016*4eefeb55Sdan	blackfin-*)
1017*4eefeb55Sdan		cpu=bfin
1018*4eefeb55Sdan		os=linux
1019*4eefeb55Sdan		;;
1020*4eefeb55Sdan	c54x-*)
1021*4eefeb55Sdan		cpu=tic54x
1022*4eefeb55Sdan		;;
1023*4eefeb55Sdan	c55x-*)
1024*4eefeb55Sdan		cpu=tic55x
1025*4eefeb55Sdan		;;
1026*4eefeb55Sdan	c6x-*)
1027*4eefeb55Sdan		cpu=tic6x
1028*4eefeb55Sdan		;;
1029*4eefeb55Sdan	e500v[12]-*)
1030*4eefeb55Sdan		cpu=powerpc
1031*4eefeb55Sdan		os=$os"spe"
1032*4eefeb55Sdan		;;
1033*4eefeb55Sdan	mips3*-*)
1034*4eefeb55Sdan		cpu=mips64
1035*4eefeb55Sdan		;;
1036*4eefeb55Sdan	ms1-*)
1037*4eefeb55Sdan		cpu=mt
1038*4eefeb55Sdan		;;
1039*4eefeb55Sdan	m68knommu-*)
1040*4eefeb55Sdan		cpu=m68k
1041*4eefeb55Sdan		os=linux
1042*4eefeb55Sdan		;;
1043*4eefeb55Sdan	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1044*4eefeb55Sdan		cpu=s12z
1045*4eefeb55Sdan		;;
1046*4eefeb55Sdan	openrisc-*)
1047*4eefeb55Sdan		cpu=or32
1048*4eefeb55Sdan		;;
1049*4eefeb55Sdan	parisc-*)
1050*4eefeb55Sdan		cpu=hppa
1051*4eefeb55Sdan		os=linux
1052*4eefeb55Sdan		;;
1053*4eefeb55Sdan	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1054*4eefeb55Sdan		cpu=i586
1055*4eefeb55Sdan		;;
1056*4eefeb55Sdan	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
1057*4eefeb55Sdan		cpu=i686
1058*4eefeb55Sdan		;;
1059*4eefeb55Sdan	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1060*4eefeb55Sdan		cpu=i686
1061*4eefeb55Sdan		;;
1062*4eefeb55Sdan	pentium4-*)
1063*4eefeb55Sdan		cpu=i786
1064*4eefeb55Sdan		;;
1065*4eefeb55Sdan	pc98-*)
1066*4eefeb55Sdan		cpu=i386
1067*4eefeb55Sdan		;;
1068*4eefeb55Sdan	ppc-* | ppcbe-*)
1069*4eefeb55Sdan		cpu=powerpc
1070*4eefeb55Sdan		;;
1071*4eefeb55Sdan	ppcle-* | powerpclittle-*)
1072*4eefeb55Sdan		cpu=powerpcle
1073*4eefeb55Sdan		;;
1074*4eefeb55Sdan	ppc64-*)
1075*4eefeb55Sdan		cpu=powerpc64
1076*4eefeb55Sdan		;;
1077*4eefeb55Sdan	ppc64le-* | powerpc64little-*)
1078*4eefeb55Sdan		cpu=powerpc64le
1079*4eefeb55Sdan		;;
1080*4eefeb55Sdan	sb1-*)
1081*4eefeb55Sdan		cpu=mipsisa64sb1
1082*4eefeb55Sdan		;;
1083*4eefeb55Sdan	sb1el-*)
1084*4eefeb55Sdan		cpu=mipsisa64sb1el
1085*4eefeb55Sdan		;;
1086*4eefeb55Sdan	sh5e[lb]-*)
1087*4eefeb55Sdan		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
1088*4eefeb55Sdan		;;
1089*4eefeb55Sdan	spur-*)
1090*4eefeb55Sdan		cpu=spur
1091*4eefeb55Sdan		;;
1092*4eefeb55Sdan	strongarm-* | thumb-*)
1093*4eefeb55Sdan		cpu=arm
1094*4eefeb55Sdan		;;
1095*4eefeb55Sdan	tx39-*)
1096*4eefeb55Sdan		cpu=mipstx39
1097*4eefeb55Sdan		;;
1098*4eefeb55Sdan	tx39el-*)
1099*4eefeb55Sdan		cpu=mipstx39el
1100*4eefeb55Sdan		;;
1101*4eefeb55Sdan	x64-*)
1102*4eefeb55Sdan		cpu=x86_64
1103*4eefeb55Sdan		;;
1104*4eefeb55Sdan	xscale-* | xscalee[bl]-*)
1105*4eefeb55Sdan		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
1106*4eefeb55Sdan		;;
1107*4eefeb55Sdan
1108*4eefeb55Sdan	# Recognize the canonical CPU Types that limit and/or modify the
1109*4eefeb55Sdan	# company names they are paired with.
1110*4eefeb55Sdan	cr16-*)
1111*4eefeb55Sdan		os=${os:-elf}
1112*4eefeb55Sdan		;;
1113*4eefeb55Sdan	crisv32-* | etraxfs*-*)
1114*4eefeb55Sdan		cpu=crisv32
1115*4eefeb55Sdan		vendor=axis
1116*4eefeb55Sdan		;;
1117*4eefeb55Sdan	cris-* | etrax*-*)
1118*4eefeb55Sdan		cpu=cris
1119*4eefeb55Sdan		vendor=axis
1120*4eefeb55Sdan		;;
1121*4eefeb55Sdan	crx-*)
1122*4eefeb55Sdan		os=${os:-elf}
1123*4eefeb55Sdan		;;
1124*4eefeb55Sdan	neo-tandem)
1125*4eefeb55Sdan		cpu=neo
1126*4eefeb55Sdan		vendor=tandem
1127*4eefeb55Sdan		;;
1128*4eefeb55Sdan	nse-tandem)
1129*4eefeb55Sdan		cpu=nse
1130*4eefeb55Sdan		vendor=tandem
1131*4eefeb55Sdan		;;
1132*4eefeb55Sdan	nsr-tandem)
1133*4eefeb55Sdan		cpu=nsr
1134*4eefeb55Sdan		vendor=tandem
1135*4eefeb55Sdan		;;
1136*4eefeb55Sdan	nsv-tandem)
1137*4eefeb55Sdan		cpu=nsv
1138*4eefeb55Sdan		vendor=tandem
1139*4eefeb55Sdan		;;
1140*4eefeb55Sdan	nsx-tandem)
1141*4eefeb55Sdan		cpu=nsx
1142*4eefeb55Sdan		vendor=tandem
1143*4eefeb55Sdan		;;
1144*4eefeb55Sdan	s390-*)
1145*4eefeb55Sdan		cpu=s390
1146*4eefeb55Sdan		vendor=ibm
1147*4eefeb55Sdan		;;
1148*4eefeb55Sdan	s390x-*)
1149*4eefeb55Sdan		cpu=s390x
1150*4eefeb55Sdan		vendor=ibm
1151*4eefeb55Sdan		;;
1152*4eefeb55Sdan	tile*-*)
1153*4eefeb55Sdan		os=${os:-linux-gnu}
1154*4eefeb55Sdan		;;
1155*4eefeb55Sdan
1156*4eefeb55Sdan	*)
1157*4eefeb55Sdan		# Recognize the canonical CPU types that are allowed with any
1158*4eefeb55Sdan		# company name.
1159*4eefeb55Sdan		case $cpu in
116071eb93eaSdrh			1750a | 580 \
116171eb93eaSdrh			| a29k \
1162*4eefeb55Sdan			| aarch64 | aarch64_be \
1163*4eefeb55Sdan			| abacus \
1164*4eefeb55Sdan			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
1165*4eefeb55Sdan			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
1166*4eefeb55Sdan			| alphapca5[67] | alpha64pca5[67] \
1167964dbb1eSa.rottmann			| am33_2.0 \
1168*4eefeb55Sdan			| amdgcn \
1169*4eefeb55Sdan			| arc | arceb \
1170*4eefeb55Sdan			| arm  | arm[lb]e | arme[lb] | armv* \
1171*4eefeb55Sdan			| avr | avr32 \
1172*4eefeb55Sdan			| asmjs \
1173*4eefeb55Sdan			| ba \
1174*4eefeb55Sdan			| be32 | be64 \
1175*4eefeb55Sdan			| bfin | bpf | bs2000 \
1176*4eefeb55Sdan			| c[123]* | c30 | [cjt]90 | c4x \
1177*4eefeb55Sdan			| c8051 | clipper | craynv | csky | cydra \
1178*4eefeb55Sdan			| d10v | d30v | dlx | dsp16xx \
1179*4eefeb55Sdan			| e2k | elxsi | epiphany \
1180*4eefeb55Sdan			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
1181*4eefeb55Sdan			| h8300 | h8500 \
1182*4eefeb55Sdan			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
1183*4eefeb55Sdan			| hexagon \
1184*4eefeb55Sdan			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
1185964dbb1eSa.rottmann			| ip2k | iq2000 \
1186*4eefeb55Sdan			| k1om \
1187*4eefeb55Sdan			| le32 | le64 \
1188*4eefeb55Sdan			| lm32 \
1189*4eefeb55Sdan			| m32c | m32r | m32rle \
1190*4eefeb55Sdan			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
1191*4eefeb55Sdan			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
1192*4eefeb55Sdan			| m88110 | m88k | maxq | mb | mcore | mep | metag \
1193*4eefeb55Sdan			| microblaze | microblazeel \
119462507b65Sa.rottmann			| mips | mipsbe | mipseb | mipsel | mipsle \
119562507b65Sa.rottmann			| mips16 \
1196*4eefeb55Sdan			| mips64 | mips64eb | mips64el \
1197*4eefeb55Sdan			| mips64octeon | mips64octeonel \
119862507b65Sa.rottmann			| mips64orion | mips64orionel \
1199*4eefeb55Sdan			| mips64r5900 | mips64r5900el \
1200*4eefeb55Sdan			| mips64vr | mips64vrel \
120162507b65Sa.rottmann			| mips64vr4100 | mips64vr4100el \
120262507b65Sa.rottmann			| mips64vr4300 | mips64vr4300el \
120362507b65Sa.rottmann			| mips64vr5000 | mips64vr5000el \
12047f19c02fSvapier			| mips64vr5900 | mips64vr5900el \
120562507b65Sa.rottmann			| mipsisa32 | mipsisa32el \
120662507b65Sa.rottmann			| mipsisa32r2 | mipsisa32r2el \
1207*4eefeb55Sdan			| mipsisa32r6 | mipsisa32r6el \
120862507b65Sa.rottmann			| mipsisa64 | mipsisa64el \
1209964dbb1eSa.rottmann			| mipsisa64r2 | mipsisa64r2el \
1210*4eefeb55Sdan			| mipsisa64r6 | mipsisa64r6el \
121162507b65Sa.rottmann			| mipsisa64sb1 | mipsisa64sb1el \
121262507b65Sa.rottmann			| mipsisa64sr71k | mipsisa64sr71kel \
1213*4eefeb55Sdan			| mipsr5900 | mipsr5900el \
121462507b65Sa.rottmann			| mipstx39 | mipstx39el \
1215*4eefeb55Sdan			| mmix \
121671eb93eaSdrh			| mn10200 | mn10300 \
1217*4eefeb55Sdan			| moxie \
12187f19c02fSvapier			| mt \
121962507b65Sa.rottmann			| msp430 \
1220*4eefeb55Sdan			| nds32 | nds32le | nds32be \
1221*4eefeb55Sdan			| nfp \
1222*4eefeb55Sdan			| nios | nios2 | nios2eb | nios2el \
1223*4eefeb55Sdan			| none | np1 | ns16k | ns32k | nvptx \
1224*4eefeb55Sdan			| open8 \
1225*4eefeb55Sdan			| or1k* \
12267f19c02fSvapier			| or32 \
1227*4eefeb55Sdan			| orion \
1228*4eefeb55Sdan			| picochip \
1229*4eefeb55Sdan			| pdp10 | pdp11 | pj | pjl | pn | power \
1230*4eefeb55Sdan			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
1231*4eefeb55Sdan			| pru \
123271eb93eaSdrh			| pyramid \
1233*4eefeb55Sdan			| riscv | riscv32 | riscv64 \
1234*4eefeb55Sdan			| rl78 | romp | rs6000 | rx \
12357f19c02fSvapier			| score \
1236*4eefeb55Sdan			| sh | shl \
1237*4eefeb55Sdan			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
1238*4eefeb55Sdan			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
1239*4eefeb55Sdan			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
1240*4eefeb55Sdan			| sparclite \
1241*4eefeb55Sdan			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
1242*4eefeb55Sdan			| spu \
1243*4eefeb55Sdan			| tahoe \
1244*4eefeb55Sdan			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
1245*4eefeb55Sdan			| tron \
1246*4eefeb55Sdan			| ubicom32 \
1247*4eefeb55Sdan			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
1248*4eefeb55Sdan			| vax \
1249*4eefeb55Sdan			| visium \
1250*4eefeb55Sdan			| w65 \
1251*4eefeb55Sdan			| wasm32 | wasm64 \
125271eb93eaSdrh			| we32k \
1253*4eefeb55Sdan			| x86 | x86_64 | xc16x | xgate | xps100 \
1254*4eefeb55Sdan			| xstormy16 | xtensa* \
1255*4eefeb55Sdan			| ymp \
1256*4eefeb55Sdan			| z8k | z80)
12577f19c02fSvapier				;;
125871eb93eaSdrh
1259*4eefeb55Sdan			*)
1260*4eefeb55Sdan				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
126171eb93eaSdrh				exit 1
126271eb93eaSdrh				;;
126371eb93eaSdrh		esac
126471eb93eaSdrh		;;
126571eb93eaSdrhesac
126671eb93eaSdrh
126771eb93eaSdrh# Here we canonicalize certain aliases for manufacturers.
1268*4eefeb55Sdancase $vendor in
1269*4eefeb55Sdan	digital*)
1270*4eefeb55Sdan		vendor=dec
127171eb93eaSdrh		;;
1272*4eefeb55Sdan	commodore*)
1273*4eefeb55Sdan		vendor=cbm
127471eb93eaSdrh		;;
127571eb93eaSdrh	*)
127671eb93eaSdrh		;;
127771eb93eaSdrhesac
127871eb93eaSdrh
127971eb93eaSdrh# Decode manufacturer-specific aliases for certain operating systems.
128071eb93eaSdrh
1281*4eefeb55Sdanif [ x$os != x ]
128271eb93eaSdrhthen
128371eb93eaSdrhcase $os in
1284*4eefeb55Sdan	# First match some system type aliases that might get confused
1285*4eefeb55Sdan	# with valid system types.
1286*4eefeb55Sdan	# solaris* is a basic system type, with this one exception.
1287*4eefeb55Sdan	auroraux)
1288*4eefeb55Sdan		os=auroraux
1289*4eefeb55Sdan		;;
1290*4eefeb55Sdan	bluegene*)
1291*4eefeb55Sdan		os=cnk
1292*4eefeb55Sdan		;;
1293*4eefeb55Sdan	solaris1 | solaris1.*)
129471eb93eaSdrh		os=`echo $os | sed -e 's|solaris1|sunos4|'`
129571eb93eaSdrh		;;
1296*4eefeb55Sdan	solaris)
1297*4eefeb55Sdan		os=solaris2
129871eb93eaSdrh		;;
1299*4eefeb55Sdan	unixware*)
1300*4eefeb55Sdan		os=sysv4.2uw
130171eb93eaSdrh		;;
1302*4eefeb55Sdan	gnu/linux*)
130371eb93eaSdrh		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
130471eb93eaSdrh		;;
1305*4eefeb55Sdan	# es1800 is here to avoid being matched by es* (a different OS)
1306*4eefeb55Sdan	es1800*)
1307*4eefeb55Sdan		os=ose
1308*4eefeb55Sdan		;;
1309*4eefeb55Sdan	# Some version numbers need modification
1310*4eefeb55Sdan	chorusos*)
1311*4eefeb55Sdan		os=chorusos
1312*4eefeb55Sdan		;;
1313*4eefeb55Sdan	isc)
1314*4eefeb55Sdan		os=isc2.2
1315*4eefeb55Sdan		;;
1316*4eefeb55Sdan	sco6)
1317*4eefeb55Sdan		os=sco5v6
1318*4eefeb55Sdan		;;
1319*4eefeb55Sdan	sco5)
1320*4eefeb55Sdan		os=sco3.2v5
1321*4eefeb55Sdan		;;
1322*4eefeb55Sdan	sco4)
1323*4eefeb55Sdan		os=sco3.2v4
1324*4eefeb55Sdan		;;
1325*4eefeb55Sdan	sco3.2.[4-9]*)
1326*4eefeb55Sdan		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
1327*4eefeb55Sdan		;;
1328*4eefeb55Sdan	sco3.2v[4-9]* | sco5v6*)
1329*4eefeb55Sdan		# Don't forget version if it is 3.2v4 or newer.
1330*4eefeb55Sdan		;;
1331*4eefeb55Sdan	scout)
1332*4eefeb55Sdan		# Don't match below
1333*4eefeb55Sdan		;;
1334*4eefeb55Sdan	sco*)
1335*4eefeb55Sdan		os=sco3.2v2
1336*4eefeb55Sdan		;;
1337*4eefeb55Sdan	psos*)
1338*4eefeb55Sdan		os=psos
1339*4eefeb55Sdan		;;
1340*4eefeb55Sdan	# Now accept the basic system types.
134171eb93eaSdrh	# The portable systems comes first.
1342*4eefeb55Sdan	# Each alternative MUST end in a * to match a version number.
1343*4eefeb55Sdan	# sysv* is not here because it comes later, after sysvr4.
1344*4eefeb55Sdan	gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
1345*4eefeb55Sdan	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
1346*4eefeb55Sdan	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
1347*4eefeb55Sdan	     | sym* | kopensolaris* | plan9* \
1348*4eefeb55Sdan	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
1349*4eefeb55Sdan	     | aos* | aros* | cloudabi* | sortix* \
1350*4eefeb55Sdan	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
1351*4eefeb55Sdan	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
1352*4eefeb55Sdan	     | knetbsd* | mirbsd* | netbsd* \
1353*4eefeb55Sdan	     | bitrig* | openbsd* | solidbsd* | libertybsd* \
1354*4eefeb55Sdan	     | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
1355*4eefeb55Sdan	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
1356*4eefeb55Sdan	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
1357*4eefeb55Sdan	     | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
1358*4eefeb55Sdan	     | chorusrdb* | cegcc* | glidix* \
1359*4eefeb55Sdan	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
1360*4eefeb55Sdan	     | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
1361*4eefeb55Sdan	     | linux-newlib* | linux-musl* | linux-uclibc* \
1362*4eefeb55Sdan	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
1363*4eefeb55Sdan	     | interix* | uwin* | mks* | rhapsody* | darwin* \
1364*4eefeb55Sdan	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
1365*4eefeb55Sdan	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
1366*4eefeb55Sdan	     | os2* | vos* | palmos* | uclinux* | nucleus* \
1367*4eefeb55Sdan	     | morphos* | superux* | rtmk* | windiss* \
1368*4eefeb55Sdan	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
1369*4eefeb55Sdan	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
1370*4eefeb55Sdan	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
1371*4eefeb55Sdan	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi*)
137271eb93eaSdrh	# Remember, each alternative MUST END IN *, to match a version number.
137371eb93eaSdrh		;;
1374*4eefeb55Sdan	qnx*)
1375*4eefeb55Sdan		case $cpu in
1376*4eefeb55Sdan		    x86 | i*86)
137771eb93eaSdrh			;;
137871eb93eaSdrh		    *)
1379*4eefeb55Sdan			os=nto-$os
138071eb93eaSdrh			;;
138171eb93eaSdrh		esac
138271eb93eaSdrh		;;
1383*4eefeb55Sdan	hiux*)
1384*4eefeb55Sdan		os=hiuxwe2
138562507b65Sa.rottmann		;;
1386*4eefeb55Sdan	nto-qnx*)
1387*4eefeb55Sdan		;;
1388*4eefeb55Sdan	nto*)
138962507b65Sa.rottmann		os=`echo $os | sed -e 's|nto|nto-qnx|'`
139071eb93eaSdrh		;;
1391*4eefeb55Sdan	sim | xray | os68k* | v88r* \
1392*4eefeb55Sdan	    | windows* | osx | abug | netware* | os9* \
1393*4eefeb55Sdan	    | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
139471eb93eaSdrh		;;
1395*4eefeb55Sdan	linux-dietlibc)
1396*4eefeb55Sdan		os=linux-dietlibc
139771eb93eaSdrh		;;
1398*4eefeb55Sdan	linux*)
139971eb93eaSdrh		os=`echo $os | sed -e 's|linux|linux-gnu|'`
140071eb93eaSdrh		;;
1401*4eefeb55Sdan	lynx*178)
1402*4eefeb55Sdan		os=lynxos178
140371eb93eaSdrh		;;
1404*4eefeb55Sdan	lynx*5)
1405*4eefeb55Sdan		os=lynxos5
140671eb93eaSdrh		;;
1407*4eefeb55Sdan	lynx*)
1408*4eefeb55Sdan		os=lynxos
140971eb93eaSdrh		;;
1410*4eefeb55Sdan	mac*)
1411*4eefeb55Sdan		os=`echo "$os" | sed -e 's|mac|macos|'`
1412964dbb1eSa.rottmann		;;
1413*4eefeb55Sdan	opened*)
1414*4eefeb55Sdan		os=openedition
141571eb93eaSdrh		;;
1416*4eefeb55Sdan	os400*)
1417*4eefeb55Sdan		os=os400
141871eb93eaSdrh		;;
1419*4eefeb55Sdan	sunos5*)
1420*4eefeb55Sdan		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
142171eb93eaSdrh		;;
1422*4eefeb55Sdan	sunos6*)
1423*4eefeb55Sdan		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
142471eb93eaSdrh		;;
1425*4eefeb55Sdan	wince*)
1426*4eefeb55Sdan		os=wince
142771eb93eaSdrh		;;
1428*4eefeb55Sdan	utek*)
1429*4eefeb55Sdan		os=bsd
143071eb93eaSdrh		;;
1431*4eefeb55Sdan	dynix*)
1432*4eefeb55Sdan		os=bsd
143362507b65Sa.rottmann		;;
1434*4eefeb55Sdan	acis*)
1435*4eefeb55Sdan		os=aos
1436964dbb1eSa.rottmann		;;
1437*4eefeb55Sdan	atheos*)
1438*4eefeb55Sdan		os=atheos
143971eb93eaSdrh		;;
1440*4eefeb55Sdan	syllable*)
1441*4eefeb55Sdan		os=syllable
144271eb93eaSdrh		;;
1443*4eefeb55Sdan	386bsd)
1444*4eefeb55Sdan		os=bsd
144562507b65Sa.rottmann		;;
1446*4eefeb55Sdan	ctix* | uts*)
1447*4eefeb55Sdan		os=sysv
144871eb93eaSdrh		;;
1449*4eefeb55Sdan	nova*)
1450*4eefeb55Sdan		os=rtmk-nova
1451*4eefeb55Sdan		;;
1452*4eefeb55Sdan	ns2)
1453*4eefeb55Sdan		os=nextstep2
1454*4eefeb55Sdan		;;
1455*4eefeb55Sdan	nsk*)
1456*4eefeb55Sdan		os=nsk
145771eb93eaSdrh		;;
145871eb93eaSdrh	# Preserve the version number of sinix5.
1459*4eefeb55Sdan	sinix5.*)
146071eb93eaSdrh		os=`echo $os | sed -e 's|sinix|sysv|'`
146171eb93eaSdrh		;;
1462*4eefeb55Sdan	sinix*)
1463*4eefeb55Sdan		os=sysv4
146471eb93eaSdrh		;;
1465*4eefeb55Sdan	tpf*)
1466*4eefeb55Sdan		os=tpf
1467964dbb1eSa.rottmann		;;
1468*4eefeb55Sdan	triton*)
1469*4eefeb55Sdan		os=sysv3
147071eb93eaSdrh		;;
1471*4eefeb55Sdan	oss*)
1472*4eefeb55Sdan		os=sysv3
147371eb93eaSdrh		;;
1474*4eefeb55Sdan	svr4*)
1475*4eefeb55Sdan		os=sysv4
147671eb93eaSdrh		;;
1477*4eefeb55Sdan	svr3)
1478*4eefeb55Sdan		os=sysv3
147971eb93eaSdrh		;;
1480*4eefeb55Sdan	sysvr4)
1481*4eefeb55Sdan		os=sysv4
148271eb93eaSdrh		;;
1483*4eefeb55Sdan	# This must come after sysvr4.
1484*4eefeb55Sdan	sysv*)
148571eb93eaSdrh		;;
1486*4eefeb55Sdan	ose*)
1487*4eefeb55Sdan		os=ose
148871eb93eaSdrh		;;
1489*4eefeb55Sdan	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1490*4eefeb55Sdan		os=mint
149171eb93eaSdrh		;;
1492*4eefeb55Sdan	zvmoe)
1493*4eefeb55Sdan		os=zvmoe
149471eb93eaSdrh		;;
1495*4eefeb55Sdan	dicos*)
1496*4eefeb55Sdan		os=dicos
149771eb93eaSdrh		;;
1498*4eefeb55Sdan	pikeos*)
1499*4eefeb55Sdan		# Until real need of OS specific support for
1500*4eefeb55Sdan		# particular features comes up, bare metal
1501*4eefeb55Sdan		# configurations are quite functional.
1502*4eefeb55Sdan		case $cpu in
1503*4eefeb55Sdan		    arm*)
1504*4eefeb55Sdan			os=eabi
150571eb93eaSdrh			;;
150671eb93eaSdrh		    *)
1507*4eefeb55Sdan			os=elf
1508*4eefeb55Sdan			;;
1509*4eefeb55Sdan		esac
1510*4eefeb55Sdan		;;
1511*4eefeb55Sdan	nacl*)
1512*4eefeb55Sdan		;;
1513*4eefeb55Sdan	ios)
1514*4eefeb55Sdan		;;
1515*4eefeb55Sdan	none)
1516*4eefeb55Sdan		;;
1517*4eefeb55Sdan	*-eabi)
1518*4eefeb55Sdan		;;
1519*4eefeb55Sdan	*)
1520*4eefeb55Sdan		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
152171eb93eaSdrh		exit 1
152271eb93eaSdrh		;;
152371eb93eaSdrhesac
152471eb93eaSdrhelse
152571eb93eaSdrh
152671eb93eaSdrh# Here we handle the default operating systems that come with various machines.
152771eb93eaSdrh# The value should be what the vendor currently ships out the door with their
152871eb93eaSdrh# machine or put another way, the most popular os provided with the machine.
152971eb93eaSdrh
153071eb93eaSdrh# Note that if you're going to try to match "-MANUFACTURER" here (say,
153171eb93eaSdrh# "-sun"), then you have to tell the case statement up towards the top
153271eb93eaSdrh# that MANUFACTURER isn't an operating system.  Otherwise, code above
153371eb93eaSdrh# will signal an error saying that MANUFACTURER isn't an operating
153471eb93eaSdrh# system, and we'll never get to this point.
153571eb93eaSdrh
1536*4eefeb55Sdancase $cpu-$vendor in
15377f19c02fSvapier	score-*)
1538*4eefeb55Sdan		os=elf
15397f19c02fSvapier		;;
15407f19c02fSvapier	spu-*)
1541*4eefeb55Sdan		os=elf
15427f19c02fSvapier		;;
154371eb93eaSdrh	*-acorn)
1544*4eefeb55Sdan		os=riscix1.2
154571eb93eaSdrh		;;
154671eb93eaSdrh	arm*-rebel)
1547*4eefeb55Sdan		os=linux
154871eb93eaSdrh		;;
154971eb93eaSdrh	arm*-semi)
1550*4eefeb55Sdan		os=aout
155171eb93eaSdrh		;;
1552964dbb1eSa.rottmann	c4x-* | tic4x-*)
1553*4eefeb55Sdan		os=coff
1554*4eefeb55Sdan		;;
1555*4eefeb55Sdan	c8051-*)
1556*4eefeb55Sdan		os=elf
1557*4eefeb55Sdan		;;
1558*4eefeb55Sdan	clipper-intergraph)
1559*4eefeb55Sdan		os=clix
1560*4eefeb55Sdan		;;
1561*4eefeb55Sdan	hexagon-*)
1562*4eefeb55Sdan		os=elf
1563*4eefeb55Sdan		;;
1564*4eefeb55Sdan	tic54x-*)
1565*4eefeb55Sdan		os=coff
1566*4eefeb55Sdan		;;
1567*4eefeb55Sdan	tic55x-*)
1568*4eefeb55Sdan		os=coff
1569*4eefeb55Sdan		;;
1570*4eefeb55Sdan	tic6x-*)
1571*4eefeb55Sdan		os=coff
1572964dbb1eSa.rottmann		;;
157362507b65Sa.rottmann	# This must come before the *-dec entry.
157471eb93eaSdrh	pdp10-*)
1575*4eefeb55Sdan		os=tops20
157671eb93eaSdrh		;;
157771eb93eaSdrh	pdp11-*)
1578*4eefeb55Sdan		os=none
157971eb93eaSdrh		;;
158071eb93eaSdrh	*-dec | vax-*)
1581*4eefeb55Sdan		os=ultrix4.2
158271eb93eaSdrh		;;
158371eb93eaSdrh	m68*-apollo)
1584*4eefeb55Sdan		os=domain
158571eb93eaSdrh		;;
158671eb93eaSdrh	i386-sun)
1587*4eefeb55Sdan		os=sunos4.0.2
158871eb93eaSdrh		;;
158971eb93eaSdrh	m68000-sun)
1590*4eefeb55Sdan		os=sunos3
159171eb93eaSdrh		;;
159271eb93eaSdrh	m68*-cisco)
1593*4eefeb55Sdan		os=aout
159471eb93eaSdrh		;;
15957f19c02fSvapier	mep-*)
1596*4eefeb55Sdan		os=elf
15977f19c02fSvapier		;;
159871eb93eaSdrh	mips*-cisco)
1599*4eefeb55Sdan		os=elf
160071eb93eaSdrh		;;
160171eb93eaSdrh	mips*-*)
1602*4eefeb55Sdan		os=elf
160371eb93eaSdrh		;;
160462507b65Sa.rottmann	or32-*)
1605*4eefeb55Sdan		os=coff
160662507b65Sa.rottmann		;;
160771eb93eaSdrh	*-tti)	# must be before sparc entry or we get the wrong os.
1608*4eefeb55Sdan		os=sysv3
160971eb93eaSdrh		;;
161071eb93eaSdrh	sparc-* | *-sun)
1611*4eefeb55Sdan		os=sunos4.1.1
1612*4eefeb55Sdan		;;
1613*4eefeb55Sdan	pru-*)
1614*4eefeb55Sdan		os=elf
161571eb93eaSdrh		;;
161671eb93eaSdrh	*-be)
1617*4eefeb55Sdan		os=beos
16187f19c02fSvapier		;;
161971eb93eaSdrh	*-ibm)
1620*4eefeb55Sdan		os=aix
162171eb93eaSdrh		;;
16227f19c02fSvapier	*-knuth)
1623*4eefeb55Sdan		os=mmixware
16247f19c02fSvapier		;;
162571eb93eaSdrh	*-wec)
1626*4eefeb55Sdan		os=proelf
162771eb93eaSdrh		;;
162871eb93eaSdrh	*-winbond)
1629*4eefeb55Sdan		os=proelf
163071eb93eaSdrh		;;
163171eb93eaSdrh	*-oki)
1632*4eefeb55Sdan		os=proelf
163371eb93eaSdrh		;;
163471eb93eaSdrh	*-hp)
1635*4eefeb55Sdan		os=hpux
163671eb93eaSdrh		;;
163771eb93eaSdrh	*-hitachi)
1638*4eefeb55Sdan		os=hiux
163971eb93eaSdrh		;;
164071eb93eaSdrh	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1641*4eefeb55Sdan		os=sysv
164271eb93eaSdrh		;;
164371eb93eaSdrh	*-cbm)
1644*4eefeb55Sdan		os=amigaos
164571eb93eaSdrh		;;
164671eb93eaSdrh	*-dg)
1647*4eefeb55Sdan		os=dgux
164871eb93eaSdrh		;;
164971eb93eaSdrh	*-dolphin)
1650*4eefeb55Sdan		os=sysv3
165171eb93eaSdrh		;;
165271eb93eaSdrh	m68k-ccur)
1653*4eefeb55Sdan		os=rtu
165471eb93eaSdrh		;;
165571eb93eaSdrh	m88k-omron*)
1656*4eefeb55Sdan		os=luna
165771eb93eaSdrh		;;
165871eb93eaSdrh	*-next)
1659*4eefeb55Sdan		os=nextstep
166071eb93eaSdrh		;;
166171eb93eaSdrh	*-sequent)
1662*4eefeb55Sdan		os=ptx
166371eb93eaSdrh		;;
166471eb93eaSdrh	*-crds)
1665*4eefeb55Sdan		os=unos
166671eb93eaSdrh		;;
166771eb93eaSdrh	*-ns)
1668*4eefeb55Sdan		os=genix
166971eb93eaSdrh		;;
167071eb93eaSdrh	i370-*)
1671*4eefeb55Sdan		os=mvs
167271eb93eaSdrh		;;
167371eb93eaSdrh	*-gould)
1674*4eefeb55Sdan		os=sysv
167571eb93eaSdrh		;;
167671eb93eaSdrh	*-highlevel)
1677*4eefeb55Sdan		os=bsd
167871eb93eaSdrh		;;
167971eb93eaSdrh	*-encore)
1680*4eefeb55Sdan		os=bsd
168171eb93eaSdrh		;;
168271eb93eaSdrh	*-sgi)
1683*4eefeb55Sdan		os=irix
168471eb93eaSdrh		;;
168571eb93eaSdrh	*-siemens)
1686*4eefeb55Sdan		os=sysv4
168771eb93eaSdrh		;;
168871eb93eaSdrh	*-masscomp)
1689*4eefeb55Sdan		os=rtu
169071eb93eaSdrh		;;
169171eb93eaSdrh	f30[01]-fujitsu | f700-fujitsu)
1692*4eefeb55Sdan		os=uxpv
169371eb93eaSdrh		;;
169471eb93eaSdrh	*-rom68k)
1695*4eefeb55Sdan		os=coff
169671eb93eaSdrh		;;
169771eb93eaSdrh	*-*bug)
1698*4eefeb55Sdan		os=coff
169971eb93eaSdrh		;;
170071eb93eaSdrh	*-apple)
1701*4eefeb55Sdan		os=macos
170271eb93eaSdrh		;;
170371eb93eaSdrh	*-atari*)
1704*4eefeb55Sdan		os=mint
1705*4eefeb55Sdan		;;
1706*4eefeb55Sdan	*-wrs)
1707*4eefeb55Sdan		os=vxworks
170871eb93eaSdrh		;;
170971eb93eaSdrh	*)
1710*4eefeb55Sdan		os=none
171171eb93eaSdrh		;;
171271eb93eaSdrhesac
171371eb93eaSdrhfi
171471eb93eaSdrh
171571eb93eaSdrh# Here we handle the case where we know the os, and the CPU type, but not the
171671eb93eaSdrh# manufacturer.  We pick the logical manufacturer.
1717*4eefeb55Sdancase $vendor in
1718*4eefeb55Sdan	unknown)
171971eb93eaSdrh		case $os in
1720*4eefeb55Sdan			riscix*)
172171eb93eaSdrh				vendor=acorn
172271eb93eaSdrh				;;
1723*4eefeb55Sdan			sunos*)
172471eb93eaSdrh				vendor=sun
172571eb93eaSdrh				;;
1726*4eefeb55Sdan			cnk*|-aix*)
172771eb93eaSdrh				vendor=ibm
172871eb93eaSdrh				;;
1729*4eefeb55Sdan			beos*)
173071eb93eaSdrh				vendor=be
173171eb93eaSdrh				;;
1732*4eefeb55Sdan			hpux*)
173371eb93eaSdrh				vendor=hp
173471eb93eaSdrh				;;
1735*4eefeb55Sdan			mpeix*)
173671eb93eaSdrh				vendor=hp
173771eb93eaSdrh				;;
1738*4eefeb55Sdan			hiux*)
173971eb93eaSdrh				vendor=hitachi
174071eb93eaSdrh				;;
1741*4eefeb55Sdan			unos*)
174271eb93eaSdrh				vendor=crds
174371eb93eaSdrh				;;
1744*4eefeb55Sdan			dgux*)
174571eb93eaSdrh				vendor=dg
174671eb93eaSdrh				;;
1747*4eefeb55Sdan			luna*)
174871eb93eaSdrh				vendor=omron
174971eb93eaSdrh				;;
1750*4eefeb55Sdan			genix*)
175171eb93eaSdrh				vendor=ns
175271eb93eaSdrh				;;
1753*4eefeb55Sdan			clix*)
1754*4eefeb55Sdan				vendor=intergraph
1755*4eefeb55Sdan				;;
1756*4eefeb55Sdan			mvs* | opened*)
175771eb93eaSdrh				vendor=ibm
175871eb93eaSdrh				;;
1759*4eefeb55Sdan			os400*)
1760964dbb1eSa.rottmann				vendor=ibm
1761964dbb1eSa.rottmann				;;
1762*4eefeb55Sdan			ptx*)
176371eb93eaSdrh				vendor=sequent
176471eb93eaSdrh				;;
1765*4eefeb55Sdan			tpf*)
1766964dbb1eSa.rottmann				vendor=ibm
1767964dbb1eSa.rottmann				;;
1768*4eefeb55Sdan			vxsim* | vxworks* | windiss*)
176971eb93eaSdrh				vendor=wrs
177071eb93eaSdrh				;;
1771*4eefeb55Sdan			aux*)
177271eb93eaSdrh				vendor=apple
177371eb93eaSdrh				;;
1774*4eefeb55Sdan			hms*)
177571eb93eaSdrh				vendor=hitachi
177671eb93eaSdrh				;;
1777*4eefeb55Sdan			mpw* | macos*)
177871eb93eaSdrh				vendor=apple
177971eb93eaSdrh				;;
1780*4eefeb55Sdan			*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
178171eb93eaSdrh				vendor=atari
178271eb93eaSdrh				;;
1783*4eefeb55Sdan			vos*)
178471eb93eaSdrh				vendor=stratus
178571eb93eaSdrh				;;
178671eb93eaSdrh		esac
178771eb93eaSdrh		;;
178871eb93eaSdrhesac
178971eb93eaSdrh
1790*4eefeb55Sdanecho "$cpu-$vendor-$os"
17917f19c02fSvapierexit
179271eb93eaSdrh
179371eb93eaSdrh# Local variables:
1794*4eefeb55Sdan# eval: (add-hook 'before-save-hook 'time-stamp)
179571eb93eaSdrh# time-stamp-start: "timestamp='"
179671eb93eaSdrh# time-stamp-format: "%:y-%02m-%02d"
179771eb93eaSdrh# time-stamp-end: "'"
179871eb93eaSdrh# End:
1799