config.sub revision ea148d1d
1ea148d1dSmrg#! /bin/sh
243f32c10Smrg# Configuration validation subroutine script.
3ea148d1dSmrg#   Copyright 1992-2018 Free Software Foundation, Inc.
443f32c10Smrg
5ea148d1dSmrgtimestamp='2018-08-29'
643f32c10Smrg
76ef05171Smrg# This file is free software; you can redistribute it and/or modify it
86ef05171Smrg# under the terms of the GNU General Public License as published by
96ef05171Smrg# the Free Software Foundation; either version 3 of the License, or
1043f32c10Smrg# (at your option) any later version.
1143f32c10Smrg#
126ef05171Smrg# This program is distributed in the hope that it will be useful, but
136ef05171Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
146ef05171Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
156ef05171Smrg# General Public License for more details.
1643f32c10Smrg#
1743f32c10Smrg# You should have received a copy of the GNU General Public License
18ea148d1dSmrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
1943f32c10Smrg#
2043f32c10Smrg# As a special exception to the GNU General Public License, if you
2143f32c10Smrg# distribute this file as part of a program that contains a
2243f32c10Smrg# configuration script generated by Autoconf, you may include it under
236ef05171Smrg# the same distribution terms that you use for the rest of that
246ef05171Smrg# program.  This Exception is an additional permission under section 7
256ef05171Smrg# of the GNU General Public License, version 3 ("GPLv3").
2643f32c10Smrg
2743f32c10Smrg
286ef05171Smrg# Please send patches to <config-patches@gnu.org>.
2943f32c10Smrg#
3043f32c10Smrg# Configuration subroutine to validate and canonicalize a configuration type.
3143f32c10Smrg# Supply the specified configuration type as an argument.
3243f32c10Smrg# If it is invalid, we print an error message on stderr and exit with code 1.
3343f32c10Smrg# Otherwise, we print the canonical config type on stdout and succeed.
3443f32c10Smrg
356ef05171Smrg# You can get the latest version of this script from:
36ea148d1dSmrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
376ef05171Smrg
3843f32c10Smrg# This file is supposed to be the same for all GNU packages
3943f32c10Smrg# and recognize all the CPU types, system types and aliases
4043f32c10Smrg# that are meaningful with *any* GNU software.
4143f32c10Smrg# Each package is responsible for reporting which valid configurations
4243f32c10Smrg# it does not support.  The user should be able to distinguish
4343f32c10Smrg# a failure to support a valid configuration from a meaningless
4443f32c10Smrg# configuration.
4543f32c10Smrg
4643f32c10Smrg# The goal of this file is to map all the various variations of a given
4743f32c10Smrg# machine specification into a single specification in the form:
4843f32c10Smrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
4943f32c10Smrg# or in some cases, the newer four-part form:
5043f32c10Smrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
5143f32c10Smrg# It is wrong to echo any other type of specification.
5243f32c10Smrg
5343f32c10Smrgme=`echo "$0" | sed -e 's,.*/,,'`
5443f32c10Smrg
5543f32c10Smrgusage="\
566ef05171SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
5743f32c10Smrg
5843f32c10SmrgCanonicalize a configuration name.
5943f32c10Smrg
60ea148d1dSmrgOptions:
6143f32c10Smrg  -h, --help         print this help, then exit
6243f32c10Smrg  -t, --time-stamp   print date of last modification, then exit
6343f32c10Smrg  -v, --version      print version number, then exit
6443f32c10Smrg
6543f32c10SmrgReport bugs and patches to <config-patches@gnu.org>."
6643f32c10Smrg
6743f32c10Smrgversion="\
6843f32c10SmrgGNU config.sub ($timestamp)
6943f32c10Smrg
70ea148d1dSmrgCopyright 1992-2018 Free Software Foundation, Inc.
7143f32c10Smrg
7243f32c10SmrgThis is free software; see the source for copying conditions.  There is NO
7343f32c10Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
7443f32c10Smrg
7543f32c10Smrghelp="
7643f32c10SmrgTry \`$me --help' for more information."
7743f32c10Smrg
7843f32c10Smrg# Parse command line
7943f32c10Smrgwhile test $# -gt 0 ; do
8043f32c10Smrg  case $1 in
8143f32c10Smrg    --time-stamp | --time* | -t )
8243f32c10Smrg       echo "$timestamp" ; exit ;;
8343f32c10Smrg    --version | -v )
8443f32c10Smrg       echo "$version" ; exit ;;
8543f32c10Smrg    --help | --h* | -h )
8643f32c10Smrg       echo "$usage"; exit ;;
8743f32c10Smrg    -- )     # Stop option processing
8843f32c10Smrg       shift; break ;;
8943f32c10Smrg    - )	# Use stdin as input.
9043f32c10Smrg       break ;;
9143f32c10Smrg    -* )
9243f32c10Smrg       echo "$me: invalid option $1$help"
9343f32c10Smrg       exit 1 ;;
9443f32c10Smrg
9543f32c10Smrg    *local*)
9643f32c10Smrg       # First pass through any local machine types.
97ea148d1dSmrg       echo "$1"
9843f32c10Smrg       exit ;;
9943f32c10Smrg
10043f32c10Smrg    * )
10143f32c10Smrg       break ;;
10243f32c10Smrg  esac
10343f32c10Smrgdone
10443f32c10Smrg
10543f32c10Smrgcase $# in
10643f32c10Smrg 0) echo "$me: missing argument$help" >&2
10743f32c10Smrg    exit 1;;
10843f32c10Smrg 1) ;;
10943f32c10Smrg *) echo "$me: too many arguments$help" >&2
11043f32c10Smrg    exit 1;;
11143f32c10Smrgesac
11243f32c10Smrg
113ea148d1dSmrg# Split fields of configuration type
114ea148d1dSmrgIFS="-" read -r field1 field2 field3 field4 <<EOF
115ea148d1dSmrg$1
116ea148d1dSmrgEOF
11743f32c10Smrg
118ea148d1dSmrg# Separate into logical components for further validation
119ea148d1dSmrgcase $1 in
120ea148d1dSmrg	*-*-*-*-*)
121ea148d1dSmrg		echo Invalid configuration \`"$1"\': more than four components >&2
122ea148d1dSmrg		exit 1
12343f32c10Smrg		;;
124ea148d1dSmrg	*-*-*-*)
125ea148d1dSmrg		basic_machine=$field1-$field2
126ea148d1dSmrg		os=$field3-$field4
12743f32c10Smrg		;;
128ea148d1dSmrg	*-*-*)
129ea148d1dSmrg		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
130ea148d1dSmrg		# parts
131ea148d1dSmrg		maybe_os=$field2-$field3
132ea148d1dSmrg		case $maybe_os in
133ea148d1dSmrg			nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
134ea148d1dSmrg			| linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
135ea148d1dSmrg			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
136ea148d1dSmrg			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
137ea148d1dSmrg			| storm-chaos* | os2-emx* | rtmk-nova*)
138ea148d1dSmrg				basic_machine=$field1
139ea148d1dSmrg				os=$maybe_os
140ea148d1dSmrg				;;
141ea148d1dSmrg			android-linux)
142ea148d1dSmrg				basic_machine=$field1-unknown
143ea148d1dSmrg				os=linux-android
144ea148d1dSmrg				;;
145ea148d1dSmrg			*)
146ea148d1dSmrg				basic_machine=$field1-$field2
147ea148d1dSmrg				os=$field3
148ea148d1dSmrg				;;
149ea148d1dSmrg		esac
15043f32c10Smrg		;;
151ea148d1dSmrg	*-*)
152ea148d1dSmrg		# A lone config we happen to match not fitting any patern
153ea148d1dSmrg		case $field1-$field2 in
154ea148d1dSmrg			decstation-3100)
155ea148d1dSmrg				basic_machine=mips-dec
156ea148d1dSmrg				os=
157ea148d1dSmrg				;;
158ea148d1dSmrg			*-*)
159ea148d1dSmrg				# Second component is usually, but not always the OS
160ea148d1dSmrg				case $field2 in
161ea148d1dSmrg					# Prevent following clause from handling this valid os
162ea148d1dSmrg					sun*os*)
163ea148d1dSmrg						basic_machine=$field1
164ea148d1dSmrg						os=$field2
165ea148d1dSmrg						;;
166ea148d1dSmrg					# Manufacturers
167ea148d1dSmrg					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
168ea148d1dSmrg					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
169ea148d1dSmrg					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
170ea148d1dSmrg					| convergent* | ncr* | news | 32* | 3600* | 3100* \
171ea148d1dSmrg					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
172ea148d1dSmrg					| ultra | tti* | harris | dolphin | highlevel | gould \
173ea148d1dSmrg					| cbm | ns | masscomp | apple | axis | knuth | cray \
174ea148d1dSmrg					| microblaze* | sim | cisco \
175ea148d1dSmrg					| oki | wec | wrs | winbond)
176ea148d1dSmrg						basic_machine=$field1-$field2
177ea148d1dSmrg						os=
178ea148d1dSmrg						;;
179ea148d1dSmrg					*)
180ea148d1dSmrg						basic_machine=$field1
181ea148d1dSmrg						os=$field2
182ea148d1dSmrg						;;
183ea148d1dSmrg				esac
184ea148d1dSmrg			;;
185ea148d1dSmrg		esac
18643f32c10Smrg		;;
187ea148d1dSmrg	*)
188ea148d1dSmrg		# Convert single-component short-hands not valid as part of
189ea148d1dSmrg		# multi-component configurations.
190ea148d1dSmrg		case $field1 in
191ea148d1dSmrg			386bsd)
192ea148d1dSmrg				basic_machine=i386-pc
193ea148d1dSmrg				os=bsd
194ea148d1dSmrg				;;
195ea148d1dSmrg			a29khif)
196ea148d1dSmrg				basic_machine=a29k-amd
197ea148d1dSmrg				os=udi
198ea148d1dSmrg				;;
199ea148d1dSmrg			adobe68k)
200ea148d1dSmrg				basic_machine=m68010-adobe
201ea148d1dSmrg				os=scout
202ea148d1dSmrg				;;
203ea148d1dSmrg			alliant)
204ea148d1dSmrg				basic_machine=fx80-alliant
205ea148d1dSmrg				os=
206ea148d1dSmrg				;;
207ea148d1dSmrg			altos | altos3068)
208ea148d1dSmrg				basic_machine=m68k-altos
209ea148d1dSmrg				os=
210ea148d1dSmrg				;;
211ea148d1dSmrg			am29k)
212ea148d1dSmrg				basic_machine=a29k-none
213ea148d1dSmrg				os=bsd
214ea148d1dSmrg				;;
215ea148d1dSmrg			amdahl)
216ea148d1dSmrg				basic_machine=580-amdahl
217ea148d1dSmrg				os=sysv
218ea148d1dSmrg				;;
219ea148d1dSmrg			amiga)
220ea148d1dSmrg				basic_machine=m68k-unknown
221ea148d1dSmrg				os=
222ea148d1dSmrg				;;
223ea148d1dSmrg			amigaos | amigados)
224ea148d1dSmrg				basic_machine=m68k-unknown
225ea148d1dSmrg				os=amigaos
226ea148d1dSmrg				;;
227ea148d1dSmrg			amigaunix | amix)
228ea148d1dSmrg				basic_machine=m68k-unknown
229ea148d1dSmrg				os=sysv4
230ea148d1dSmrg				;;
231ea148d1dSmrg			apollo68)
232ea148d1dSmrg				basic_machine=m68k-apollo
233ea148d1dSmrg				os=sysv
234ea148d1dSmrg				;;
235ea148d1dSmrg			apollo68bsd)
236ea148d1dSmrg				basic_machine=m68k-apollo
237ea148d1dSmrg				os=bsd
238ea148d1dSmrg				;;
239ea148d1dSmrg			aros)
240ea148d1dSmrg				basic_machine=i386-pc
241ea148d1dSmrg				os=aros
242ea148d1dSmrg				;;
243ea148d1dSmrg			aux)
244ea148d1dSmrg				basic_machine=m68k-apple
245ea148d1dSmrg				os=aux
246ea148d1dSmrg				;;
247ea148d1dSmrg			balance)
248ea148d1dSmrg				basic_machine=ns32k-sequent
249ea148d1dSmrg				os=dynix
250ea148d1dSmrg				;;
251ea148d1dSmrg			blackfin)
252ea148d1dSmrg				basic_machine=bfin-unknown
253ea148d1dSmrg				os=linux
254ea148d1dSmrg				;;
255ea148d1dSmrg			cegcc)
256ea148d1dSmrg				basic_machine=arm-unknown
257ea148d1dSmrg				os=cegcc
258ea148d1dSmrg				;;
259ea148d1dSmrg			convex-c1)
260ea148d1dSmrg				basic_machine=c1-convex
261ea148d1dSmrg				os=bsd
262ea148d1dSmrg				;;
263ea148d1dSmrg			convex-c2)
264ea148d1dSmrg				basic_machine=c2-convex
265ea148d1dSmrg				os=bsd
266ea148d1dSmrg				;;
267ea148d1dSmrg			convex-c32)
268ea148d1dSmrg				basic_machine=c32-convex
269ea148d1dSmrg				os=bsd
270ea148d1dSmrg				;;
271ea148d1dSmrg			convex-c34)
272ea148d1dSmrg				basic_machine=c34-convex
273ea148d1dSmrg				os=bsd
274ea148d1dSmrg				;;
275ea148d1dSmrg			convex-c38)
276ea148d1dSmrg				basic_machine=c38-convex
277ea148d1dSmrg				os=bsd
278ea148d1dSmrg				;;
279ea148d1dSmrg			cray)
280ea148d1dSmrg				basic_machine=j90-cray
281ea148d1dSmrg				os=unicos
282ea148d1dSmrg				;;
283ea148d1dSmrg			crds | unos)
284ea148d1dSmrg				basic_machine=m68k-crds
285ea148d1dSmrg				os=
286ea148d1dSmrg				;;
287ea148d1dSmrg			da30)
288ea148d1dSmrg				basic_machine=m68k-da30
289ea148d1dSmrg				os=
290ea148d1dSmrg				;;
291ea148d1dSmrg			decstation | pmax | pmin | dec3100 | decstatn)
292ea148d1dSmrg				basic_machine=mips-dec
293ea148d1dSmrg				os=
294ea148d1dSmrg				;;
295ea148d1dSmrg			delta88)
296ea148d1dSmrg				basic_machine=m88k-motorola
297ea148d1dSmrg				os=sysv3
298ea148d1dSmrg				;;
299ea148d1dSmrg			dicos)
300ea148d1dSmrg				basic_machine=i686-pc
301ea148d1dSmrg				os=dicos
302ea148d1dSmrg				;;
303ea148d1dSmrg			djgpp)
304ea148d1dSmrg				basic_machine=i586-pc
305ea148d1dSmrg				os=msdosdjgpp
306ea148d1dSmrg				;;
307ea148d1dSmrg			ebmon29k)
308ea148d1dSmrg				basic_machine=a29k-amd
309ea148d1dSmrg				os=ebmon
310ea148d1dSmrg				;;
311ea148d1dSmrg			es1800 | OSE68k | ose68k | ose | OSE)
312ea148d1dSmrg				basic_machine=m68k-ericsson
313ea148d1dSmrg				os=ose
314ea148d1dSmrg				;;
315ea148d1dSmrg			gmicro)
316ea148d1dSmrg				basic_machine=tron-gmicro
317ea148d1dSmrg				os=sysv
318ea148d1dSmrg				;;
319ea148d1dSmrg			go32)
320ea148d1dSmrg				basic_machine=i386-pc
321ea148d1dSmrg				os=go32
322ea148d1dSmrg				;;
323ea148d1dSmrg			h8300hms)
324ea148d1dSmrg				basic_machine=h8300-hitachi
325ea148d1dSmrg				os=hms
326ea148d1dSmrg				;;
327ea148d1dSmrg			h8300xray)
328ea148d1dSmrg				basic_machine=h8300-hitachi
329ea148d1dSmrg				os=xray
330ea148d1dSmrg				;;
331ea148d1dSmrg			h8500hms)
332ea148d1dSmrg				basic_machine=h8500-hitachi
333ea148d1dSmrg				os=hms
334ea148d1dSmrg				;;
335ea148d1dSmrg			harris)
336ea148d1dSmrg				basic_machine=m88k-harris
337ea148d1dSmrg				os=sysv3
338ea148d1dSmrg				;;
339ea148d1dSmrg			hp300)
340ea148d1dSmrg				basic_machine=m68k-hp
341ea148d1dSmrg				;;
342ea148d1dSmrg			hp300bsd)
343ea148d1dSmrg				basic_machine=m68k-hp
344ea148d1dSmrg				os=bsd
345ea148d1dSmrg				;;
346ea148d1dSmrg			hp300hpux)
347ea148d1dSmrg				basic_machine=m68k-hp
348ea148d1dSmrg				os=hpux
349ea148d1dSmrg				;;
350ea148d1dSmrg			hppaosf)
351ea148d1dSmrg				basic_machine=hppa1.1-hp
352ea148d1dSmrg				os=osf
353ea148d1dSmrg				;;
354ea148d1dSmrg			hppro)
355ea148d1dSmrg				basic_machine=hppa1.1-hp
356ea148d1dSmrg				os=proelf
357ea148d1dSmrg				;;
358ea148d1dSmrg			i386mach)
359ea148d1dSmrg				basic_machine=i386-mach
360ea148d1dSmrg				os=mach
361ea148d1dSmrg				;;
362ea148d1dSmrg			vsta)
363ea148d1dSmrg				basic_machine=i386-pc
364ea148d1dSmrg				os=vsta
365ea148d1dSmrg				;;
366ea148d1dSmrg			isi68 | isi)
367ea148d1dSmrg				basic_machine=m68k-isi
368ea148d1dSmrg				os=sysv
369ea148d1dSmrg				;;
370ea148d1dSmrg			m68knommu)
371ea148d1dSmrg				basic_machine=m68k-unknown
372ea148d1dSmrg				os=linux
373ea148d1dSmrg				;;
374ea148d1dSmrg			magnum | m3230)
375ea148d1dSmrg				basic_machine=mips-mips
376ea148d1dSmrg				os=sysv
377ea148d1dSmrg				;;
378ea148d1dSmrg			merlin)
379ea148d1dSmrg				basic_machine=ns32k-utek
380ea148d1dSmrg				os=sysv
381ea148d1dSmrg				;;
382ea148d1dSmrg			mingw64)
383ea148d1dSmrg				basic_machine=x86_64-pc
384ea148d1dSmrg				os=mingw64
385ea148d1dSmrg				;;
386ea148d1dSmrg			mingw32)
387ea148d1dSmrg				basic_machine=i686-pc
388ea148d1dSmrg				os=mingw32
389ea148d1dSmrg				;;
390ea148d1dSmrg			mingw32ce)
391ea148d1dSmrg				basic_machine=arm-unknown
392ea148d1dSmrg				os=mingw32ce
393ea148d1dSmrg				;;
394ea148d1dSmrg			monitor)
395ea148d1dSmrg				basic_machine=m68k-rom68k
396ea148d1dSmrg				os=coff
397ea148d1dSmrg				;;
398ea148d1dSmrg			morphos)
399ea148d1dSmrg				basic_machine=powerpc-unknown
400ea148d1dSmrg				os=morphos
401ea148d1dSmrg				;;
402ea148d1dSmrg			moxiebox)
403ea148d1dSmrg				basic_machine=moxie-unknown
404ea148d1dSmrg				os=moxiebox
405ea148d1dSmrg				;;
406ea148d1dSmrg			msdos)
407ea148d1dSmrg				basic_machine=i386-pc
408ea148d1dSmrg				os=msdos
409ea148d1dSmrg				;;
410ea148d1dSmrg			msys)
411ea148d1dSmrg				basic_machine=i686-pc
412ea148d1dSmrg				os=msys
413ea148d1dSmrg				;;
414ea148d1dSmrg			mvs)
415ea148d1dSmrg				basic_machine=i370-ibm
416ea148d1dSmrg				os=mvs
417ea148d1dSmrg				;;
418ea148d1dSmrg			nacl)
419ea148d1dSmrg				basic_machine=le32-unknown
420ea148d1dSmrg				os=nacl
421ea148d1dSmrg				;;
422ea148d1dSmrg			ncr3000)
423ea148d1dSmrg				basic_machine=i486-ncr
424ea148d1dSmrg				os=sysv4
425ea148d1dSmrg				;;
426ea148d1dSmrg			netbsd386)
427ea148d1dSmrg				basic_machine=i386-pc
428ea148d1dSmrg				os=netbsd
429ea148d1dSmrg				;;
430ea148d1dSmrg			netwinder)
431ea148d1dSmrg				basic_machine=armv4l-rebel
432ea148d1dSmrg				os=linux
433ea148d1dSmrg				;;
434ea148d1dSmrg			news | news700 | news800 | news900)
435ea148d1dSmrg				basic_machine=m68k-sony
436ea148d1dSmrg				os=newsos
437ea148d1dSmrg				;;
438ea148d1dSmrg			news1000)
439ea148d1dSmrg				basic_machine=m68030-sony
440ea148d1dSmrg				os=newsos
441ea148d1dSmrg				;;
442ea148d1dSmrg			necv70)
443ea148d1dSmrg				basic_machine=v70-nec
444ea148d1dSmrg				os=sysv
445ea148d1dSmrg				;;
446ea148d1dSmrg			nh3000)
447ea148d1dSmrg				basic_machine=m68k-harris
448ea148d1dSmrg				os=cxux
449ea148d1dSmrg				;;
450ea148d1dSmrg			nh[45]000)
451ea148d1dSmrg				basic_machine=m88k-harris
452ea148d1dSmrg				os=cxux
453ea148d1dSmrg				;;
454ea148d1dSmrg			nindy960)
455ea148d1dSmrg				basic_machine=i960-intel
456ea148d1dSmrg				os=nindy
457ea148d1dSmrg				;;
458ea148d1dSmrg			mon960)
459ea148d1dSmrg				basic_machine=i960-intel
460ea148d1dSmrg				os=mon960
461ea148d1dSmrg				;;
462ea148d1dSmrg			nonstopux)
463ea148d1dSmrg				basic_machine=mips-compaq
464ea148d1dSmrg				os=nonstopux
465ea148d1dSmrg				;;
466ea148d1dSmrg			os400)
467ea148d1dSmrg				basic_machine=powerpc-ibm
468ea148d1dSmrg				os=os400
469ea148d1dSmrg				;;
470ea148d1dSmrg			OSE68000 | ose68000)
471ea148d1dSmrg				basic_machine=m68000-ericsson
472ea148d1dSmrg				os=ose
473ea148d1dSmrg				;;
474ea148d1dSmrg			os68k)
475ea148d1dSmrg				basic_machine=m68k-none
476ea148d1dSmrg				os=os68k
477ea148d1dSmrg				;;
478ea148d1dSmrg			paragon)
479ea148d1dSmrg				basic_machine=i860-intel
480ea148d1dSmrg				os=osf
481ea148d1dSmrg				;;
482ea148d1dSmrg			parisc)
483ea148d1dSmrg				basic_machine=hppa-unknown
484ea148d1dSmrg				os=linux
485ea148d1dSmrg				;;
486ea148d1dSmrg			pw32)
487ea148d1dSmrg				basic_machine=i586-unknown
488ea148d1dSmrg				os=pw32
489ea148d1dSmrg				;;
490ea148d1dSmrg			rdos | rdos64)
491ea148d1dSmrg				basic_machine=x86_64-pc
492ea148d1dSmrg				os=rdos
493ea148d1dSmrg				;;
494ea148d1dSmrg			rdos32)
495ea148d1dSmrg				basic_machine=i386-pc
496ea148d1dSmrg				os=rdos
497ea148d1dSmrg				;;
498ea148d1dSmrg			rom68k)
499ea148d1dSmrg				basic_machine=m68k-rom68k
500ea148d1dSmrg				os=coff
501ea148d1dSmrg				;;
502ea148d1dSmrg			sa29200)
503ea148d1dSmrg				basic_machine=a29k-amd
504ea148d1dSmrg				os=udi
505ea148d1dSmrg				;;
506ea148d1dSmrg			sei)
507ea148d1dSmrg				basic_machine=mips-sei
508ea148d1dSmrg				os=seiux
509ea148d1dSmrg				;;
510ea148d1dSmrg			sequent)
511ea148d1dSmrg				basic_machine=i386-sequent
512ea148d1dSmrg				os=
513ea148d1dSmrg				;;
514ea148d1dSmrg			sps7)
515ea148d1dSmrg				basic_machine=m68k-bull
516ea148d1dSmrg				os=sysv2
517ea148d1dSmrg				;;
518ea148d1dSmrg			st2000)
519ea148d1dSmrg				basic_machine=m68k-tandem
520ea148d1dSmrg				os=
521ea148d1dSmrg				;;
522ea148d1dSmrg			stratus)
523ea148d1dSmrg				basic_machine=i860-stratus
524ea148d1dSmrg				os=sysv4
525ea148d1dSmrg				;;
526ea148d1dSmrg			sun2)
527ea148d1dSmrg				basic_machine=m68000-sun
528ea148d1dSmrg				os=
529ea148d1dSmrg				;;
530ea148d1dSmrg			sun2os3)
531ea148d1dSmrg				basic_machine=m68000-sun
532ea148d1dSmrg				os=sunos3
533ea148d1dSmrg				;;
534ea148d1dSmrg			sun2os4)
535ea148d1dSmrg				basic_machine=m68000-sun
536ea148d1dSmrg				os=sunos4
537ea148d1dSmrg				;;
538ea148d1dSmrg			sun3)
539ea148d1dSmrg				basic_machine=m68k-sun
540ea148d1dSmrg				os=
541ea148d1dSmrg				;;
542ea148d1dSmrg			sun3os3)
543ea148d1dSmrg				basic_machine=m68k-sun
544ea148d1dSmrg				os=sunos3
545ea148d1dSmrg				;;
546ea148d1dSmrg			sun3os4)
547ea148d1dSmrg				basic_machine=m68k-sun
548ea148d1dSmrg				os=sunos4
549ea148d1dSmrg				;;
550ea148d1dSmrg			sun4)
551ea148d1dSmrg				basic_machine=sparc-sun
552ea148d1dSmrg				os=
553ea148d1dSmrg				;;
554ea148d1dSmrg			sun4os3)
555ea148d1dSmrg				basic_machine=sparc-sun
556ea148d1dSmrg				os=sunos3
557ea148d1dSmrg				;;
558ea148d1dSmrg			sun4os4)
559ea148d1dSmrg				basic_machine=sparc-sun
560ea148d1dSmrg				os=sunos4
561ea148d1dSmrg				;;
562ea148d1dSmrg			sun4sol2)
563ea148d1dSmrg				basic_machine=sparc-sun
564ea148d1dSmrg				os=solaris2
565ea148d1dSmrg				;;
566ea148d1dSmrg			sun386 | sun386i | roadrunner)
567ea148d1dSmrg				basic_machine=i386-sun
568ea148d1dSmrg				os=
569ea148d1dSmrg				;;
570ea148d1dSmrg			sv1)
571ea148d1dSmrg				basic_machine=sv1-cray
572ea148d1dSmrg				os=unicos
573ea148d1dSmrg				;;
574ea148d1dSmrg			symmetry)
575ea148d1dSmrg				basic_machine=i386-sequent
576ea148d1dSmrg				os=dynix
577ea148d1dSmrg				;;
578ea148d1dSmrg			t3e)
579ea148d1dSmrg				basic_machine=alphaev5-cray
580ea148d1dSmrg				os=unicos
581ea148d1dSmrg				;;
582ea148d1dSmrg			t90)
583ea148d1dSmrg				basic_machine=t90-cray
584ea148d1dSmrg				os=unicos
585ea148d1dSmrg				;;
586ea148d1dSmrg			toad1)
587ea148d1dSmrg				basic_machine=pdp10-xkl
588ea148d1dSmrg				os=tops20
589ea148d1dSmrg				;;
590ea148d1dSmrg			tpf)
591ea148d1dSmrg				basic_machine=s390x-ibm
592ea148d1dSmrg				os=tpf
593ea148d1dSmrg				;;
594ea148d1dSmrg			udi29k)
595ea148d1dSmrg				basic_machine=a29k-amd
596ea148d1dSmrg				os=udi
597ea148d1dSmrg				;;
598ea148d1dSmrg			ultra3)
599ea148d1dSmrg				basic_machine=a29k-nyu
600ea148d1dSmrg				os=sym1
601ea148d1dSmrg				;;
602ea148d1dSmrg			v810 | necv810)
603ea148d1dSmrg				basic_machine=v810-nec
604ea148d1dSmrg				os=none
605ea148d1dSmrg				;;
606ea148d1dSmrg			vaxv)
607ea148d1dSmrg				basic_machine=vax-dec
608ea148d1dSmrg				os=sysv
609ea148d1dSmrg				;;
610ea148d1dSmrg			vms)
611ea148d1dSmrg				basic_machine=vax-dec
612ea148d1dSmrg				os=vms
613ea148d1dSmrg				;;
614ea148d1dSmrg			vxworks960)
615ea148d1dSmrg				basic_machine=i960-wrs
616ea148d1dSmrg				os=vxworks
617ea148d1dSmrg				;;
618ea148d1dSmrg			vxworks68)
619ea148d1dSmrg				basic_machine=m68k-wrs
620ea148d1dSmrg				os=vxworks
621ea148d1dSmrg				;;
622ea148d1dSmrg			vxworks29k)
623ea148d1dSmrg				basic_machine=a29k-wrs
624ea148d1dSmrg				os=vxworks
625ea148d1dSmrg				;;
626ea148d1dSmrg			xbox)
627ea148d1dSmrg				basic_machine=i686-pc
628ea148d1dSmrg				os=mingw32
629ea148d1dSmrg				;;
630ea148d1dSmrg			ymp)
631ea148d1dSmrg				basic_machine=ymp-cray
632ea148d1dSmrg				os=unicos
633ea148d1dSmrg				;;
634ea148d1dSmrg			*)
635ea148d1dSmrg				basic_machine=$1
636ea148d1dSmrg				os=
637ea148d1dSmrg				;;
638ea148d1dSmrg		esac
63943f32c10Smrg		;;
64043f32c10Smrgesac
64143f32c10Smrg
642ea148d1dSmrg# Decode 1-component or ad-hoc basic machines
64343f32c10Smrgcase $basic_machine in
644ea148d1dSmrg	# Here we handle the default manufacturer of certain CPU types.  It is in
645ea148d1dSmrg	# some cases the only manufacturer, in others, it is the most popular.
646ea148d1dSmrg	w89k)
647ea148d1dSmrg		cpu=hppa1.1
648ea148d1dSmrg		vendor=winbond
64943f32c10Smrg		;;
650ea148d1dSmrg	op50n)
651ea148d1dSmrg		cpu=hppa1.1
652ea148d1dSmrg		vendor=oki
65343f32c10Smrg		;;
654ea148d1dSmrg	op60c)
655ea148d1dSmrg		cpu=hppa1.1
656ea148d1dSmrg		vendor=oki
65743f32c10Smrg		;;
658ea148d1dSmrg	ibm*)
659ea148d1dSmrg		cpu=i370
660ea148d1dSmrg		vendor=ibm
6616ef05171Smrg		;;
662ea148d1dSmrg	orion105)
663ea148d1dSmrg		cpu=clipper
664ea148d1dSmrg		vendor=highlevel
6656ef05171Smrg		;;
666ea148d1dSmrg	mac | mpw | mac-mpw)
667ea148d1dSmrg		cpu=m68k
668ea148d1dSmrg		vendor=apple
6696ef05171Smrg		;;
670ea148d1dSmrg	pmac | pmac-mpw)
671ea148d1dSmrg		cpu=powerpc
672ea148d1dSmrg		vendor=apple
6736ef05171Smrg		;;
6746ef05171Smrg
67543f32c10Smrg	# Recognize the various machine names and aliases which stand
67643f32c10Smrg	# for a CPU type and a company and sometimes even an OS.
67743f32c10Smrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
678ea148d1dSmrg		cpu=m68000
679ea148d1dSmrg		vendor=att
68043f32c10Smrg		;;
68143f32c10Smrg	3b*)
682ea148d1dSmrg		cpu=we32k
683ea148d1dSmrg		vendor=att
68443f32c10Smrg		;;
6856ef05171Smrg	bluegene*)
686ea148d1dSmrg		cpu=powerpc
687ea148d1dSmrg		vendor=ibm
688ea148d1dSmrg		os=cnk
68943f32c10Smrg		;;
69043f32c10Smrg	decsystem10* | dec10*)
691ea148d1dSmrg		cpu=pdp10
692ea148d1dSmrg		vendor=dec
693ea148d1dSmrg		os=tops10
69443f32c10Smrg		;;
69543f32c10Smrg	decsystem20* | dec20*)
696ea148d1dSmrg		cpu=pdp10
697ea148d1dSmrg		vendor=dec
698ea148d1dSmrg		os=tops20
69943f32c10Smrg		;;
70043f32c10Smrg	delta | 3300 | motorola-3300 | motorola-delta \
70143f32c10Smrg	      | 3300-motorola | delta-motorola)
702ea148d1dSmrg		cpu=m68k
703ea148d1dSmrg		vendor=motorola
70443f32c10Smrg		;;
705ea148d1dSmrg	dpx2*)
706ea148d1dSmrg		cpu=m68k
707ea148d1dSmrg		vendor=bull
708ea148d1dSmrg		os=sysv3
70943f32c10Smrg		;;
71043f32c10Smrg	encore | umax | mmax)
711ea148d1dSmrg		cpu=ns32k
712ea148d1dSmrg		vendor=encore
71343f32c10Smrg		;;
714ea148d1dSmrg	elxsi)
715ea148d1dSmrg		cpu=elxsi
716ea148d1dSmrg		vendor=elxsi
717ea148d1dSmrg		os=${os:-bsd}
71843f32c10Smrg		;;
71943f32c10Smrg	fx2800)
720ea148d1dSmrg		cpu=i860
721ea148d1dSmrg		vendor=alliant
72243f32c10Smrg		;;
72343f32c10Smrg	genix)
724ea148d1dSmrg		cpu=ns32k
725ea148d1dSmrg		vendor=ns
72643f32c10Smrg		;;
72743f32c10Smrg	h3050r* | hiux*)
728ea148d1dSmrg		cpu=hppa1.1
729ea148d1dSmrg		vendor=hitachi
730ea148d1dSmrg		os=hiuxwe2
73143f32c10Smrg		;;
73243f32c10Smrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
733ea148d1dSmrg		cpu=hppa1.0
734ea148d1dSmrg		vendor=hp
73543f32c10Smrg		;;
73643f32c10Smrg	hp9k2[0-9][0-9] | hp9k31[0-9])
737ea148d1dSmrg		cpu=m68000
738ea148d1dSmrg		vendor=hp
73943f32c10Smrg		;;
74043f32c10Smrg	hp9k3[2-9][0-9])
741ea148d1dSmrg		cpu=m68k
742ea148d1dSmrg		vendor=hp
74343f32c10Smrg		;;
74443f32c10Smrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
745ea148d1dSmrg		cpu=hppa1.0
746ea148d1dSmrg		vendor=hp
74743f32c10Smrg		;;
74843f32c10Smrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
749ea148d1dSmrg		cpu=hppa1.1
750ea148d1dSmrg		vendor=hp
75143f32c10Smrg		;;
75243f32c10Smrg	hp9k78[0-9] | hp78[0-9])
75343f32c10Smrg		# FIXME: really hppa2.0-hp
754ea148d1dSmrg		cpu=hppa1.1
755ea148d1dSmrg		vendor=hp
75643f32c10Smrg		;;
75743f32c10Smrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
75843f32c10Smrg		# FIXME: really hppa2.0-hp
759ea148d1dSmrg		cpu=hppa1.1
760ea148d1dSmrg		vendor=hp
76143f32c10Smrg		;;
76243f32c10Smrg	hp9k8[0-9][13679] | hp8[0-9][13679])
763ea148d1dSmrg		cpu=hppa1.1
764ea148d1dSmrg		vendor=hp
76543f32c10Smrg		;;
76643f32c10Smrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
767ea148d1dSmrg		cpu=hppa1.0
768ea148d1dSmrg		vendor=hp
76943f32c10Smrg		;;
77043f32c10Smrg	i*86v32)
771ea148d1dSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
772ea148d1dSmrg		vendor=pc
773ea148d1dSmrg		os=sysv32
77443f32c10Smrg		;;
77543f32c10Smrg	i*86v4*)
776ea148d1dSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
777ea148d1dSmrg		vendor=pc
778ea148d1dSmrg		os=sysv4
77943f32c10Smrg		;;
78043f32c10Smrg	i*86v)
781ea148d1dSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
782ea148d1dSmrg		vendor=pc
783ea148d1dSmrg		os=sysv
78443f32c10Smrg		;;
78543f32c10Smrg	i*86sol2)
786ea148d1dSmrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
787ea148d1dSmrg		vendor=pc
788ea148d1dSmrg		os=solaris2
78943f32c10Smrg		;;
790ea148d1dSmrg	j90 | j90-cray)
791ea148d1dSmrg		cpu=j90
792ea148d1dSmrg		vendor=cray
793ea148d1dSmrg		os=${os:-unicos}
79443f32c10Smrg		;;
79543f32c10Smrg	iris | iris4d)
796ea148d1dSmrg		cpu=mips
797ea148d1dSmrg		vendor=sgi
79843f32c10Smrg		case $os in
799ea148d1dSmrg		    irix*)
80043f32c10Smrg			;;
80143f32c10Smrg		    *)
802ea148d1dSmrg			os=irix4
80343f32c10Smrg			;;
80443f32c10Smrg		esac
80543f32c10Smrg		;;
80643f32c10Smrg	miniframe)
807ea148d1dSmrg		cpu=m68000
808ea148d1dSmrg		vendor=convergent
8096ef05171Smrg		;;
810ea148d1dSmrg	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
811ea148d1dSmrg		cpu=m68k
812ea148d1dSmrg		vendor=atari
813ea148d1dSmrg		os=mint
81443f32c10Smrg		;;
81543f32c10Smrg	news-3600 | risc-news)
816ea148d1dSmrg		cpu=mips
817ea148d1dSmrg		vendor=sony
818ea148d1dSmrg		os=newsos
81943f32c10Smrg		;;
820ea148d1dSmrg	next | m*-next)
821ea148d1dSmrg		cpu=m68k
822ea148d1dSmrg		vendor=next
82343f32c10Smrg		case $os in
824ea148d1dSmrg		    nextstep* )
82543f32c10Smrg			;;
826ea148d1dSmrg		    ns2*)
827ea148d1dSmrg		      os=nextstep2
82843f32c10Smrg			;;
82943f32c10Smrg		    *)
830ea148d1dSmrg		      os=nextstep3
83143f32c10Smrg			;;
83243f32c10Smrg		esac
83343f32c10Smrg		;;
83443f32c10Smrg	np1)
835ea148d1dSmrg		cpu=np1
836ea148d1dSmrg		vendor=gould
8376ef05171Smrg		;;
83843f32c10Smrg	op50n-* | op60c-*)
839ea148d1dSmrg		cpu=hppa1.1
840ea148d1dSmrg		vendor=oki
841ea148d1dSmrg		os=proelf
84243f32c10Smrg		;;
84343f32c10Smrg	pa-hitachi)
844ea148d1dSmrg		cpu=hppa1.1
845ea148d1dSmrg		vendor=hitachi
846ea148d1dSmrg		os=hiuxwe2
84743f32c10Smrg		;;
84843f32c10Smrg	pbd)
849ea148d1dSmrg		cpu=sparc
850ea148d1dSmrg		vendor=tti
85143f32c10Smrg		;;
85243f32c10Smrg	pbb)
853ea148d1dSmrg		cpu=m68k
854ea148d1dSmrg		vendor=tti
85543f32c10Smrg		;;
856ea148d1dSmrg	pc532)
857ea148d1dSmrg		cpu=ns32k
858ea148d1dSmrg		vendor=pc532
85943f32c10Smrg		;;
86043f32c10Smrg	pn)
861ea148d1dSmrg		cpu=pn
862ea148d1dSmrg		vendor=gould
86343f32c10Smrg		;;
864ea148d1dSmrg	power)
865ea148d1dSmrg		cpu=power
866ea148d1dSmrg		vendor=ibm
86743f32c10Smrg		;;
86843f32c10Smrg	ps2)
869ea148d1dSmrg		cpu=i386
870ea148d1dSmrg		vendor=ibm
87143f32c10Smrg		;;
87243f32c10Smrg	rm[46]00)
873ea148d1dSmrg		cpu=mips
874ea148d1dSmrg		vendor=siemens
87543f32c10Smrg		;;
87643f32c10Smrg	rtpc | rtpc-*)
877ea148d1dSmrg		cpu=romp
878ea148d1dSmrg		vendor=ibm
87943f32c10Smrg		;;
88043f32c10Smrg	sde)
881ea148d1dSmrg		cpu=mipsisa32
882ea148d1dSmrg		vendor=sde
883ea148d1dSmrg		os=${os:-elf}
88443f32c10Smrg		;;
885ea148d1dSmrg	simso-wrs)
886ea148d1dSmrg		cpu=sparclite
887ea148d1dSmrg		vendor=wrs
888ea148d1dSmrg		os=vxworks
88943f32c10Smrg		;;
890ea148d1dSmrg	tower | tower-32)
891ea148d1dSmrg		cpu=m68k
892ea148d1dSmrg		vendor=ncr
89343f32c10Smrg		;;
894ea148d1dSmrg	vpp*|vx|vx-*)
895ea148d1dSmrg		cpu=f301
896ea148d1dSmrg		vendor=fujitsu
89743f32c10Smrg		;;
898ea148d1dSmrg	w65)
899ea148d1dSmrg		cpu=w65
900ea148d1dSmrg		vendor=wdc
90143f32c10Smrg		;;
902ea148d1dSmrg	w89k-*)
903ea148d1dSmrg		cpu=hppa1.1
904ea148d1dSmrg		vendor=winbond
905ea148d1dSmrg		os=proelf
90643f32c10Smrg		;;
907ea148d1dSmrg	none)
908ea148d1dSmrg		cpu=none
909ea148d1dSmrg		vendor=none
91043f32c10Smrg		;;
911ea148d1dSmrg	leon|leon[3-9])
912ea148d1dSmrg		cpu=sparc
913ea148d1dSmrg		vendor=$basic_machine
91443f32c10Smrg		;;
915ea148d1dSmrg	leon-*|leon[3-9]-*)
916ea148d1dSmrg		cpu=sparc
917ea148d1dSmrg		vendor=`echo "$basic_machine" | sed 's/-.*//'`
91843f32c10Smrg		;;
919ea148d1dSmrg
920ea148d1dSmrg	*-*)
921ea148d1dSmrg		IFS="-" read -r cpu vendor <<EOF
922ea148d1dSmrg$basic_machine
923ea148d1dSmrgEOF
92443f32c10Smrg		;;
925ea148d1dSmrg	# We use `pc' rather than `unknown'
926ea148d1dSmrg	# because (1) that's what they normally are, and
927ea148d1dSmrg	# (2) the word "unknown" tends to confuse beginning users.
928ea148d1dSmrg	i*86 | x86_64)
929ea148d1dSmrg		cpu=$basic_machine
930ea148d1dSmrg		vendor=pc
93143f32c10Smrg		;;
932ea148d1dSmrg	# These rules are duplicated from below for sake of the special case above;
933ea148d1dSmrg	# i.e. things that normalized to x86 arches should also default to "pc"
934ea148d1dSmrg	pc98)
935ea148d1dSmrg		cpu=i386
936ea148d1dSmrg		vendor=pc
9376ef05171Smrg		;;
938ea148d1dSmrg	x64 | amd64)
939ea148d1dSmrg		cpu=x86_64
940ea148d1dSmrg		vendor=pc
94143f32c10Smrg		;;
942ea148d1dSmrg	# Recognize the basic CPU types without company name.
943ea148d1dSmrg	*)
944ea148d1dSmrg		cpu=$basic_machine
945ea148d1dSmrg		vendor=unknown
94643f32c10Smrg		;;
947ea148d1dSmrgesac
948ea148d1dSmrg
949ea148d1dSmrgunset -v basic_machine
950ea148d1dSmrg
951ea148d1dSmrg# Decode basic machines in the full and proper CPU-Company form.
952ea148d1dSmrgcase $cpu-$vendor in
953ea148d1dSmrg	# Here we handle the default manufacturer of certain CPU types in cannonical form. It is in
954ea148d1dSmrg	# some cases the only manufacturer, in others, it is the most popular.
955ea148d1dSmrg	craynv-unknown)
956ea148d1dSmrg		vendor=cray
957ea148d1dSmrg		os=${os:-unicosmp}
95843f32c10Smrg		;;
959ea148d1dSmrg	c90-unknown | c90-cray)
960ea148d1dSmrg		vendor=cray
961ea148d1dSmrg		os=${os:-unicos}
96243f32c10Smrg		;;
963ea148d1dSmrg	fx80-unknown)
964ea148d1dSmrg		vendor=alliant
96543f32c10Smrg		;;
966ea148d1dSmrg	romp-unknown)
967ea148d1dSmrg		vendor=ibm
96843f32c10Smrg		;;
969ea148d1dSmrg	mmix-unknown)
970ea148d1dSmrg		vendor=knuth
97143f32c10Smrg		;;
972ea148d1dSmrg	microblaze-unknown | microblazeel-unknown)
973ea148d1dSmrg		vendor=xilinx
97443f32c10Smrg		;;
975ea148d1dSmrg	rs6000-unknown)
976ea148d1dSmrg		vendor=ibm
97743f32c10Smrg		;;
978ea148d1dSmrg	vax-unknown)
979ea148d1dSmrg		vendor=dec
98043f32c10Smrg		;;
981ea148d1dSmrg	pdp11-unknown)
982ea148d1dSmrg		vendor=dec
98343f32c10Smrg		;;
984ea148d1dSmrg	we32k-unknown)
985ea148d1dSmrg		vendor=att
98643f32c10Smrg		;;
987ea148d1dSmrg	cydra-unknown)
988ea148d1dSmrg		vendor=cydrome
98943f32c10Smrg		;;
990ea148d1dSmrg	i370-ibm*)
991ea148d1dSmrg		vendor=ibm
99243f32c10Smrg		;;
993ea148d1dSmrg	orion-unknown)
994ea148d1dSmrg		vendor=highlevel
99543f32c10Smrg		;;
996ea148d1dSmrg	xps-unknown | xps100-unknown)
997ea148d1dSmrg		cpu=xps100
998ea148d1dSmrg		vendor=honeywell
99943f32c10Smrg		;;
1000ea148d1dSmrg
1001ea148d1dSmrg	# Here we normalize CPU types with a missing or matching vendor
1002ea148d1dSmrg	dpx20-unknown | dpx20-bull)
1003ea148d1dSmrg		cpu=rs6000
1004ea148d1dSmrg		vendor=bull
1005ea148d1dSmrg		os=${os:-bosx}
100643f32c10Smrg		;;
1007ea148d1dSmrg
1008ea148d1dSmrg	# Here we normalize CPU types irrespective of the vendor
1009ea148d1dSmrg	amd64-*)
1010ea148d1dSmrg		cpu=x86_64
101143f32c10Smrg		;;
1012ea148d1dSmrg	blackfin-*)
1013ea148d1dSmrg		cpu=bfin
1014ea148d1dSmrg		os=linux
101543f32c10Smrg		;;
1016ea148d1dSmrg	c54x-*)
1017ea148d1dSmrg		cpu=tic54x
101843f32c10Smrg		;;
1019ea148d1dSmrg	c55x-*)
1020ea148d1dSmrg		cpu=tic55x
102143f32c10Smrg		;;
1022ea148d1dSmrg	c6x-*)
1023ea148d1dSmrg		cpu=tic6x
102443f32c10Smrg		;;
1025ea148d1dSmrg	e500v[12]-*)
1026ea148d1dSmrg		cpu=powerpc
1027ea148d1dSmrg		os=$os"spe"
102843f32c10Smrg		;;
1029ea148d1dSmrg	mips3*-*)
1030ea148d1dSmrg		cpu=mips64
103143f32c10Smrg		;;
1032ea148d1dSmrg	ms1-*)
1033ea148d1dSmrg		cpu=mt
103443f32c10Smrg		;;
1035ea148d1dSmrg	m68knommu-*)
1036ea148d1dSmrg		cpu=m68k
1037ea148d1dSmrg		os=linux
103843f32c10Smrg		;;
1039ea148d1dSmrg	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1040ea148d1dSmrg		cpu=s12z
104143f32c10Smrg		;;
1042ea148d1dSmrg	openrisc-*)
1043ea148d1dSmrg		cpu=or32
104443f32c10Smrg		;;
1045ea148d1dSmrg	parisc-*)
1046ea148d1dSmrg		cpu=hppa
1047ea148d1dSmrg		os=linux
104843f32c10Smrg		;;
1049ea148d1dSmrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1050ea148d1dSmrg		cpu=i586
105143f32c10Smrg		;;
1052ea148d1dSmrg	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
1053ea148d1dSmrg		cpu=i686
10546ef05171Smrg		;;
1055ea148d1dSmrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1056ea148d1dSmrg		cpu=i686
105743f32c10Smrg		;;
1058ea148d1dSmrg	pentium4-*)
1059ea148d1dSmrg		cpu=i786
106043f32c10Smrg		;;
1061ea148d1dSmrg	pc98-*)
1062ea148d1dSmrg		cpu=i386
106343f32c10Smrg		;;
1064ea148d1dSmrg	ppc-* | ppcbe-*)
1065ea148d1dSmrg		cpu=powerpc
106643f32c10Smrg		;;
1067ea148d1dSmrg	ppcle-* | powerpclittle-*)
1068ea148d1dSmrg		cpu=powerpcle
10696ef05171Smrg		;;
1070ea148d1dSmrg	ppc64-*)
1071ea148d1dSmrg		cpu=powerpc64
107243f32c10Smrg		;;
1073ea148d1dSmrg	ppc64le-* | powerpc64little-*)
1074ea148d1dSmrg		cpu=powerpc64le
107543f32c10Smrg		;;
1076ea148d1dSmrg	sb1-*)
1077ea148d1dSmrg		cpu=mipsisa64sb1
10786ef05171Smrg		;;
1079ea148d1dSmrg	sb1el-*)
1080ea148d1dSmrg		cpu=mipsisa64sb1el
108143f32c10Smrg		;;
1082ea148d1dSmrg	sh5e[lb]-*)
1083ea148d1dSmrg		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
108443f32c10Smrg		;;
1085ea148d1dSmrg	spur-*)
1086ea148d1dSmrg		cpu=spur
108743f32c10Smrg		;;
1088ea148d1dSmrg	strongarm-* | thumb-*)
1089ea148d1dSmrg		cpu=arm
109043f32c10Smrg		;;
1091ea148d1dSmrg	tx39-*)
1092ea148d1dSmrg		cpu=mipstx39
109343f32c10Smrg		;;
1094ea148d1dSmrg	tx39el-*)
1095ea148d1dSmrg		cpu=mipstx39el
109643f32c10Smrg		;;
1097ea148d1dSmrg	x64-*)
1098ea148d1dSmrg		cpu=x86_64
109943f32c10Smrg		;;
1100ea148d1dSmrg	xscale-* | xscalee[bl]-*)
1101ea148d1dSmrg		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
110243f32c10Smrg		;;
1103ea148d1dSmrg
1104ea148d1dSmrg	# Recognize the cannonical CPU Types that limit and/or modify the
1105ea148d1dSmrg	# company names they are paired with.
1106ea148d1dSmrg	cr16-*)
1107ea148d1dSmrg		os=${os:-elf}
110843f32c10Smrg		;;
1109ea148d1dSmrg	crisv32-* | etraxfs*-*)
1110ea148d1dSmrg		cpu=crisv32
1111ea148d1dSmrg		vendor=axis
111243f32c10Smrg		;;
1113ea148d1dSmrg	cris-* | etrax*-*)
1114ea148d1dSmrg		cpu=cris
1115ea148d1dSmrg		vendor=axis
111643f32c10Smrg		;;
1117ea148d1dSmrg	crx-*)
1118ea148d1dSmrg		os=${os:-elf}
111943f32c10Smrg		;;
1120ea148d1dSmrg	neo-tandem)
1121ea148d1dSmrg		cpu=neo
1122ea148d1dSmrg		vendor=tandem
112343f32c10Smrg		;;
1124ea148d1dSmrg	nse-tandem)
1125ea148d1dSmrg		cpu=nse
1126ea148d1dSmrg		vendor=tandem
112743f32c10Smrg		;;
1128ea148d1dSmrg	nsr-tandem)
1129ea148d1dSmrg		cpu=nsr
1130ea148d1dSmrg		vendor=tandem
113143f32c10Smrg		;;
1132ea148d1dSmrg	nsv-tandem)
1133ea148d1dSmrg		cpu=nsv
1134ea148d1dSmrg		vendor=tandem
113543f32c10Smrg		;;
1136ea148d1dSmrg	nsx-tandem)
1137ea148d1dSmrg		cpu=nsx
1138ea148d1dSmrg		vendor=tandem
113943f32c10Smrg		;;
1140ea148d1dSmrg	s390-*)
1141ea148d1dSmrg		cpu=s390
1142ea148d1dSmrg		vendor=ibm
1143ea148d1dSmrg		;;
1144ea148d1dSmrg	s390x-*)
1145ea148d1dSmrg		cpu=s390x
1146ea148d1dSmrg		vendor=ibm
114743f32c10Smrg		;;
1148ea148d1dSmrg	tile*-*)
1149ea148d1dSmrg		os=${os:-linux-gnu}
115043f32c10Smrg		;;
1151ea148d1dSmrg
115243f32c10Smrg	*)
1153ea148d1dSmrg		# Recognize the cannonical CPU types that are allowed with any
1154ea148d1dSmrg		# company name.
1155ea148d1dSmrg		case $cpu in
1156ea148d1dSmrg			1750a | 580 \
1157ea148d1dSmrg			| a29k \
1158ea148d1dSmrg			| aarch64 | aarch64_be \
1159ea148d1dSmrg			| abacus \
1160ea148d1dSmrg			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
1161ea148d1dSmrg			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
1162ea148d1dSmrg			| alphapca5[67] | alpha64pca5[67] \
1163ea148d1dSmrg			| am33_2.0 \
1164ea148d1dSmrg			| arc | arceb \
1165ea148d1dSmrg			| arm  | arm[lb]e | arme[lb] | armv* \
1166ea148d1dSmrg			| avr | avr32 \
1167ea148d1dSmrg			| asmjs \
1168ea148d1dSmrg			| ba \
1169ea148d1dSmrg			| be32 | be64 \
1170ea148d1dSmrg			| bfin | bs2000 \
1171ea148d1dSmrg			| c[123]* | c30 | [cjt]90 | c4x \
1172ea148d1dSmrg			| c8051 | clipper | craynv | csky | cydra \
1173ea148d1dSmrg			| d10v | d30v | dlx | dsp16xx \
1174ea148d1dSmrg			| e2k | elxsi | epiphany \
1175ea148d1dSmrg			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
1176ea148d1dSmrg			| h8300 | h8500 \
1177ea148d1dSmrg			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
1178ea148d1dSmrg			| hexagon \
1179ea148d1dSmrg			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
1180ea148d1dSmrg			| ip2k | iq2000 \
1181ea148d1dSmrg			| k1om \
1182ea148d1dSmrg			| le32 | le64 \
1183ea148d1dSmrg			| lm32 \
1184ea148d1dSmrg			| m32c | m32r | m32rle \
1185ea148d1dSmrg			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
1186ea148d1dSmrg			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
1187ea148d1dSmrg			| m88110 | m88k | maxq | mb | mcore | mep | metag \
1188ea148d1dSmrg			| microblaze | microblazeel \
1189ea148d1dSmrg			| mips | mipsbe | mipseb | mipsel | mipsle \
1190ea148d1dSmrg			| mips16 \
1191ea148d1dSmrg			| mips64 | mips64el \
1192ea148d1dSmrg			| mips64octeon | mips64octeonel \
1193ea148d1dSmrg			| mips64orion | mips64orionel \
1194ea148d1dSmrg			| mips64r5900 | mips64r5900el \
1195ea148d1dSmrg			| mips64vr | mips64vrel \
1196ea148d1dSmrg			| mips64vr4100 | mips64vr4100el \
1197ea148d1dSmrg			| mips64vr4300 | mips64vr4300el \
1198ea148d1dSmrg			| mips64vr5000 | mips64vr5000el \
1199ea148d1dSmrg			| mips64vr5900 | mips64vr5900el \
1200ea148d1dSmrg			| mipsisa32 | mipsisa32el \
1201ea148d1dSmrg			| mipsisa32r2 | mipsisa32r2el \
1202ea148d1dSmrg			| mipsisa32r6 | mipsisa32r6el \
1203ea148d1dSmrg			| mipsisa64 | mipsisa64el \
1204ea148d1dSmrg			| mipsisa64r2 | mipsisa64r2el \
1205ea148d1dSmrg			| mipsisa64r6 | mipsisa64r6el \
1206ea148d1dSmrg			| mipsisa64sb1 | mipsisa64sb1el \
1207ea148d1dSmrg			| mipsisa64sr71k | mipsisa64sr71kel \
1208ea148d1dSmrg			| mipsr5900 | mipsr5900el \
1209ea148d1dSmrg			| mipstx39 | mipstx39el \
1210ea148d1dSmrg			| mmix \
1211ea148d1dSmrg			| mn10200 | mn10300 \
1212ea148d1dSmrg			| moxie \
1213ea148d1dSmrg			| mt \
1214ea148d1dSmrg			| msp430 \
1215ea148d1dSmrg			| nds32 | nds32le | nds32be \
1216ea148d1dSmrg			| nfp \
1217ea148d1dSmrg			| nios | nios2 | nios2eb | nios2el \
1218ea148d1dSmrg			| none | np1 | ns16k | ns32k \
1219ea148d1dSmrg			| open8 \
1220ea148d1dSmrg			| or1k* \
1221ea148d1dSmrg			| or32 \
1222ea148d1dSmrg			| orion \
1223ea148d1dSmrg			| pdp10 | pdp11 | pj | pjl | pn | power \
1224ea148d1dSmrg			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
1225ea148d1dSmrg			| pru \
1226ea148d1dSmrg			| pyramid \
1227ea148d1dSmrg			| riscv | riscv32 | riscv64 \
1228ea148d1dSmrg			| rl78 | romp | rs6000 | rx \
1229ea148d1dSmrg			| score \
1230ea148d1dSmrg			| sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
1231ea148d1dSmrg			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
1232ea148d1dSmrg			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
1233ea148d1dSmrg			| sparclite \
1234ea148d1dSmrg			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
1235ea148d1dSmrg			| spu \
1236ea148d1dSmrg			| tahoe \
1237ea148d1dSmrg			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
1238ea148d1dSmrg			| tron \
1239ea148d1dSmrg			| ubicom32 \
1240ea148d1dSmrg			| v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
1241ea148d1dSmrg			| vax \
1242ea148d1dSmrg			| visium \
1243ea148d1dSmrg			| wasm32 \
1244ea148d1dSmrg			| we32k \
1245ea148d1dSmrg			| x86 | x86_64 | xc16x | xgate | xps100 \
1246ea148d1dSmrg			| xstormy16 | xtensa* \
1247ea148d1dSmrg			| ymp \
1248ea148d1dSmrg			| z8k | z80)
1249ea148d1dSmrg				;;
1250ea148d1dSmrg
1251ea148d1dSmrg			*)
1252ea148d1dSmrg				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
1253ea148d1dSmrg				exit 1
1254ea148d1dSmrg				;;
1255ea148d1dSmrg		esac
125643f32c10Smrg		;;
125743f32c10Smrgesac
125843f32c10Smrg
125943f32c10Smrg# Here we canonicalize certain aliases for manufacturers.
1260ea148d1dSmrgcase $vendor in
1261ea148d1dSmrg	digital*)
1262ea148d1dSmrg		vendor=dec
126343f32c10Smrg		;;
1264ea148d1dSmrg	commodore*)
1265ea148d1dSmrg		vendor=cbm
126643f32c10Smrg		;;
126743f32c10Smrg	*)
126843f32c10Smrg		;;
126943f32c10Smrgesac
127043f32c10Smrg
127143f32c10Smrg# Decode manufacturer-specific aliases for certain operating systems.
127243f32c10Smrg
1273ea148d1dSmrgif [ x$os != x ]
127443f32c10Smrgthen
127543f32c10Smrgcase $os in
1276ea148d1dSmrg	# First match some system type aliases that might get confused
1277ea148d1dSmrg	# with valid system types.
1278ea148d1dSmrg	# solaris* is a basic system type, with this one exception.
1279ea148d1dSmrg	auroraux)
1280ea148d1dSmrg		os=auroraux
12816ef05171Smrg		;;
1282ea148d1dSmrg	bluegene*)
1283ea148d1dSmrg		os=cnk
128443f32c10Smrg		;;
1285ea148d1dSmrg	solaris1 | solaris1.*)
1286ea148d1dSmrg		os=`echo $os | sed -e 's|solaris1|sunos4|'`
128743f32c10Smrg		;;
1288ea148d1dSmrg	solaris)
1289ea148d1dSmrg		os=solaris2
129043f32c10Smrg		;;
1291ea148d1dSmrg	unixware*)
1292ea148d1dSmrg		os=sysv4.2uw
129343f32c10Smrg		;;
1294ea148d1dSmrg	gnu/linux*)
129543f32c10Smrg		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
129643f32c10Smrg		;;
1297ea148d1dSmrg	# es1800 is here to avoid being matched by es* (a different OS)
1298ea148d1dSmrg	es1800*)
1299ea148d1dSmrg		os=ose
1300ea148d1dSmrg		;;
1301ea148d1dSmrg	# Some version numbers need modification
1302ea148d1dSmrg	chorusos*)
1303ea148d1dSmrg		os=chorusos
1304ea148d1dSmrg		;;
1305ea148d1dSmrg	isc)
1306ea148d1dSmrg		os=isc2.2
1307ea148d1dSmrg		;;
1308ea148d1dSmrg	sco6)
1309ea148d1dSmrg		os=sco5v6
1310ea148d1dSmrg		;;
1311ea148d1dSmrg	sco5)
1312ea148d1dSmrg		os=sco3.2v5
1313ea148d1dSmrg		;;
1314ea148d1dSmrg	sco4)
1315ea148d1dSmrg		os=sco3.2v4
1316ea148d1dSmrg		;;
1317ea148d1dSmrg	sco3.2.[4-9]*)
1318ea148d1dSmrg		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
1319ea148d1dSmrg		;;
1320ea148d1dSmrg	sco3.2v[4-9]* | sco5v6*)
1321ea148d1dSmrg		# Don't forget version if it is 3.2v4 or newer.
1322ea148d1dSmrg		;;
1323ea148d1dSmrg	scout)
1324ea148d1dSmrg		# Don't match below
1325ea148d1dSmrg		;;
1326ea148d1dSmrg	sco*)
1327ea148d1dSmrg		os=sco3.2v2
1328ea148d1dSmrg		;;
1329ea148d1dSmrg	psos*)
1330ea148d1dSmrg		os=psos
1331ea148d1dSmrg		;;
1332ea148d1dSmrg	# Now accept the basic system types.
133343f32c10Smrg	# The portable systems comes first.
1334ea148d1dSmrg	# Each alternative MUST end in a * to match a version number.
1335ea148d1dSmrg	# sysv* is not here because it comes later, after sysvr4.
1336ea148d1dSmrg	gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
1337ea148d1dSmrg	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
1338ea148d1dSmrg	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
1339ea148d1dSmrg	     | sym* | kopensolaris* | plan9* \
1340ea148d1dSmrg	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
1341ea148d1dSmrg	     | aos* | aros* | cloudabi* | sortix* \
1342ea148d1dSmrg	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
1343ea148d1dSmrg	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
1344ea148d1dSmrg	     | knetbsd* | mirbsd* | netbsd* \
1345ea148d1dSmrg	     | bitrig* | openbsd* | solidbsd* | libertybsd* \
1346ea148d1dSmrg	     | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
1347ea148d1dSmrg	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
1348ea148d1dSmrg	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
1349ea148d1dSmrg	     | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
1350ea148d1dSmrg	     | chorusrdb* | cegcc* | glidix* \
1351ea148d1dSmrg	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
1352ea148d1dSmrg	     | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
1353ea148d1dSmrg	     | linux-newlib* | linux-musl* | linux-uclibc* \
1354ea148d1dSmrg	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
1355ea148d1dSmrg	     | interix* | uwin* | mks* | rhapsody* | darwin* \
1356ea148d1dSmrg	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
1357ea148d1dSmrg	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
1358ea148d1dSmrg	     | os2* | vos* | palmos* | uclinux* | nucleus* \
1359ea148d1dSmrg	     | morphos* | superux* | rtmk* | windiss* \
1360ea148d1dSmrg	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
1361ea148d1dSmrg	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
1362ea148d1dSmrg	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
1363ea148d1dSmrg	     | midnightbsd*)
136443f32c10Smrg	# Remember, each alternative MUST END IN *, to match a version number.
136543f32c10Smrg		;;
1366ea148d1dSmrg	qnx*)
1367ea148d1dSmrg		case $cpu in
1368ea148d1dSmrg		    x86 | i*86)
136943f32c10Smrg			;;
137043f32c10Smrg		    *)
1371ea148d1dSmrg			os=nto-$os
137243f32c10Smrg			;;
137343f32c10Smrg		esac
137443f32c10Smrg		;;
1375ea148d1dSmrg	hiux*)
1376ea148d1dSmrg		os=hiuxwe2
137743f32c10Smrg		;;
1378ea148d1dSmrg	nto-qnx*)
137943f32c10Smrg		;;
1380ea148d1dSmrg	nto*)
1381ea148d1dSmrg		os=`echo $os | sed -e 's|nto|nto-qnx|'`
138243f32c10Smrg		;;
1383ea148d1dSmrg	sim | xray | os68k* | v88r* \
1384ea148d1dSmrg	    | windows* | osx | abug | netware* | os9* \
1385ea148d1dSmrg	    | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
138643f32c10Smrg		;;
1387ea148d1dSmrg	linux-dietlibc)
1388ea148d1dSmrg		os=linux-dietlibc
138943f32c10Smrg		;;
1390ea148d1dSmrg	linux*)
139143f32c10Smrg		os=`echo $os | sed -e 's|linux|linux-gnu|'`
139243f32c10Smrg		;;
1393ea148d1dSmrg	lynx*178)
1394ea148d1dSmrg		os=lynxos178
139543f32c10Smrg		;;
1396ea148d1dSmrg	lynx*5)
1397ea148d1dSmrg		os=lynxos5
139843f32c10Smrg		;;
1399ea148d1dSmrg	lynx*)
1400ea148d1dSmrg		os=lynxos
140143f32c10Smrg		;;
1402ea148d1dSmrg	mac*)
1403ea148d1dSmrg		os=`echo "$os" | sed -e 's|mac|macos|'`
140443f32c10Smrg		;;
1405ea148d1dSmrg	opened*)
1406ea148d1dSmrg		os=openedition
140743f32c10Smrg		;;
1408ea148d1dSmrg	os400*)
1409ea148d1dSmrg		os=os400
141043f32c10Smrg		;;
1411ea148d1dSmrg	sunos5*)
1412ea148d1dSmrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
141343f32c10Smrg		;;
1414ea148d1dSmrg	sunos6*)
1415ea148d1dSmrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
141643f32c10Smrg		;;
1417ea148d1dSmrg	wince*)
1418ea148d1dSmrg		os=wince
141943f32c10Smrg		;;
1420ea148d1dSmrg	utek*)
1421ea148d1dSmrg		os=bsd
142243f32c10Smrg		;;
1423ea148d1dSmrg	dynix*)
1424ea148d1dSmrg		os=bsd
142543f32c10Smrg		;;
1426ea148d1dSmrg	acis*)
1427ea148d1dSmrg		os=aos
142843f32c10Smrg		;;
1429ea148d1dSmrg	atheos*)
1430ea148d1dSmrg		os=atheos
143143f32c10Smrg		;;
1432ea148d1dSmrg	syllable*)
1433ea148d1dSmrg		os=syllable
1434ea148d1dSmrg		;;
1435ea148d1dSmrg	386bsd)
1436ea148d1dSmrg		os=bsd
143743f32c10Smrg		;;
1438ea148d1dSmrg	ctix* | uts*)
1439ea148d1dSmrg		os=sysv
144043f32c10Smrg		;;
1441ea148d1dSmrg	nova*)
1442ea148d1dSmrg		os=rtmk-nova
144343f32c10Smrg		;;
1444ea148d1dSmrg	ns2)
1445ea148d1dSmrg		os=nextstep2
1446ea148d1dSmrg		;;
1447ea148d1dSmrg	nsk*)
1448ea148d1dSmrg		os=nsk
144943f32c10Smrg		;;
145043f32c10Smrg	# Preserve the version number of sinix5.
1451ea148d1dSmrg	sinix5.*)
145243f32c10Smrg		os=`echo $os | sed -e 's|sinix|sysv|'`
145343f32c10Smrg		;;
1454ea148d1dSmrg	sinix*)
1455ea148d1dSmrg		os=sysv4
145643f32c10Smrg		;;
1457ea148d1dSmrg	tpf*)
1458ea148d1dSmrg		os=tpf
145943f32c10Smrg		;;
1460ea148d1dSmrg	triton*)
1461ea148d1dSmrg		os=sysv3
146243f32c10Smrg		;;
1463ea148d1dSmrg	oss*)
1464ea148d1dSmrg		os=sysv3
146543f32c10Smrg		;;
1466ea148d1dSmrg	svr4*)
1467ea148d1dSmrg		os=sysv4
146843f32c10Smrg		;;
1469ea148d1dSmrg	svr3)
1470ea148d1dSmrg		os=sysv3
147143f32c10Smrg		;;
1472ea148d1dSmrg	sysvr4)
1473ea148d1dSmrg		os=sysv4
147443f32c10Smrg		;;
1475ea148d1dSmrg	# This must come after sysvr4.
1476ea148d1dSmrg	sysv*)
147743f32c10Smrg		;;
1478ea148d1dSmrg	ose*)
1479ea148d1dSmrg		os=ose
148043f32c10Smrg		;;
1481ea148d1dSmrg	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1482ea148d1dSmrg		os=mint
148343f32c10Smrg		;;
1484ea148d1dSmrg	zvmoe)
1485ea148d1dSmrg		os=zvmoe
148643f32c10Smrg		;;
1487ea148d1dSmrg	dicos*)
1488ea148d1dSmrg		os=dicos
148943f32c10Smrg		;;
1490ea148d1dSmrg	pikeos*)
1491ea148d1dSmrg		# Until real need of OS specific support for
1492ea148d1dSmrg		# particular features comes up, bare metal
1493ea148d1dSmrg		# configurations are quite functional.
1494ea148d1dSmrg		case $cpu in
1495ea148d1dSmrg		    arm*)
1496ea148d1dSmrg			os=eabi
1497ea148d1dSmrg			;;
1498ea148d1dSmrg		    *)
1499ea148d1dSmrg			os=elf
1500ea148d1dSmrg			;;
1501ea148d1dSmrg		esac
150243f32c10Smrg		;;
1503ea148d1dSmrg	nacl*)
15046ef05171Smrg		;;
1505ea148d1dSmrg	ios)
15066ef05171Smrg		;;
1507ea148d1dSmrg	none)
15086ef05171Smrg		;;
1509ea148d1dSmrg	*-eabi)
151043f32c10Smrg		;;
151143f32c10Smrg	*)
1512ea148d1dSmrg		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
151343f32c10Smrg		exit 1
151443f32c10Smrg		;;
151543f32c10Smrgesac
151643f32c10Smrgelse
151743f32c10Smrg
151843f32c10Smrg# Here we handle the default operating systems that come with various machines.
151943f32c10Smrg# The value should be what the vendor currently ships out the door with their
152043f32c10Smrg# machine or put another way, the most popular os provided with the machine.
152143f32c10Smrg
152243f32c10Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
152343f32c10Smrg# "-sun"), then you have to tell the case statement up towards the top
152443f32c10Smrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
152543f32c10Smrg# will signal an error saying that MANUFACTURER isn't an operating
152643f32c10Smrg# system, and we'll never get to this point.
152743f32c10Smrg
1528ea148d1dSmrgcase $cpu-$vendor in
15296ef05171Smrg	score-*)
1530ea148d1dSmrg		os=elf
153143f32c10Smrg		;;
15326ef05171Smrg	spu-*)
1533ea148d1dSmrg		os=elf
153443f32c10Smrg		;;
153543f32c10Smrg	*-acorn)
1536ea148d1dSmrg		os=riscix1.2
153743f32c10Smrg		;;
153843f32c10Smrg	arm*-rebel)
1539ea148d1dSmrg		os=linux
154043f32c10Smrg		;;
154143f32c10Smrg	arm*-semi)
1542ea148d1dSmrg		os=aout
154343f32c10Smrg		;;
15446ef05171Smrg	c4x-* | tic4x-*)
1545ea148d1dSmrg		os=coff
15466ef05171Smrg		;;
15476ef05171Smrg	c8051-*)
1548ea148d1dSmrg		os=elf
1549ea148d1dSmrg		;;
1550ea148d1dSmrg	clipper-intergraph)
1551ea148d1dSmrg		os=clix
15526ef05171Smrg		;;
15536ef05171Smrg	hexagon-*)
1554ea148d1dSmrg		os=elf
15556ef05171Smrg		;;
15566ef05171Smrg	tic54x-*)
1557ea148d1dSmrg		os=coff
15586ef05171Smrg		;;
15596ef05171Smrg	tic55x-*)
1560ea148d1dSmrg		os=coff
15616ef05171Smrg		;;
15626ef05171Smrg	tic6x-*)
1563ea148d1dSmrg		os=coff
156443f32c10Smrg		;;
156543f32c10Smrg	# This must come before the *-dec entry.
156643f32c10Smrg	pdp10-*)
1567ea148d1dSmrg		os=tops20
156843f32c10Smrg		;;
156943f32c10Smrg	pdp11-*)
1570ea148d1dSmrg		os=none
157143f32c10Smrg		;;
157243f32c10Smrg	*-dec | vax-*)
1573ea148d1dSmrg		os=ultrix4.2
157443f32c10Smrg		;;
157543f32c10Smrg	m68*-apollo)
1576ea148d1dSmrg		os=domain
157743f32c10Smrg		;;
157843f32c10Smrg	i386-sun)
1579ea148d1dSmrg		os=sunos4.0.2
158043f32c10Smrg		;;
158143f32c10Smrg	m68000-sun)
1582ea148d1dSmrg		os=sunos3
158343f32c10Smrg		;;
158443f32c10Smrg	m68*-cisco)
1585ea148d1dSmrg		os=aout
158643f32c10Smrg		;;
15876ef05171Smrg	mep-*)
1588ea148d1dSmrg		os=elf
158943f32c10Smrg		;;
159043f32c10Smrg	mips*-cisco)
1591ea148d1dSmrg		os=elf
159243f32c10Smrg		;;
159343f32c10Smrg	mips*-*)
1594ea148d1dSmrg		os=elf
159543f32c10Smrg		;;
159643f32c10Smrg	or32-*)
1597ea148d1dSmrg		os=coff
159843f32c10Smrg		;;
159943f32c10Smrg	*-tti)	# must be before sparc entry or we get the wrong os.
1600ea148d1dSmrg		os=sysv3
160143f32c10Smrg		;;
160243f32c10Smrg	sparc-* | *-sun)
1603ea148d1dSmrg		os=sunos4.1.1
160443f32c10Smrg		;;
16056ef05171Smrg	pru-*)
1606ea148d1dSmrg		os=elf
16076ef05171Smrg		;;
160843f32c10Smrg	*-be)
1609ea148d1dSmrg		os=beos
161043f32c10Smrg		;;
161143f32c10Smrg	*-ibm)
1612ea148d1dSmrg		os=aix
161343f32c10Smrg		;;
16146ef05171Smrg	*-knuth)
1615ea148d1dSmrg		os=mmixware
161643f32c10Smrg		;;
161743f32c10Smrg	*-wec)
1618ea148d1dSmrg		os=proelf
161943f32c10Smrg		;;
162043f32c10Smrg	*-winbond)
1621ea148d1dSmrg		os=proelf
162243f32c10Smrg		;;
162343f32c10Smrg	*-oki)
1624ea148d1dSmrg		os=proelf
162543f32c10Smrg		;;
162643f32c10Smrg	*-hp)
1627ea148d1dSmrg		os=hpux
162843f32c10Smrg		;;
162943f32c10Smrg	*-hitachi)
1630ea148d1dSmrg		os=hiux
163143f32c10Smrg		;;
163243f32c10Smrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1633ea148d1dSmrg		os=sysv
163443f32c10Smrg		;;
163543f32c10Smrg	*-cbm)
1636ea148d1dSmrg		os=amigaos
163743f32c10Smrg		;;
163843f32c10Smrg	*-dg)
1639ea148d1dSmrg		os=dgux
164043f32c10Smrg		;;
164143f32c10Smrg	*-dolphin)
1642ea148d1dSmrg		os=sysv3
164343f32c10Smrg		;;
164443f32c10Smrg	m68k-ccur)
1645ea148d1dSmrg		os=rtu
164643f32c10Smrg		;;
164743f32c10Smrg	m88k-omron*)
1648ea148d1dSmrg		os=luna
164943f32c10Smrg		;;
1650ea148d1dSmrg	*-next)
1651ea148d1dSmrg		os=nextstep
165243f32c10Smrg		;;
165343f32c10Smrg	*-sequent)
1654ea148d1dSmrg		os=ptx
165543f32c10Smrg		;;
165643f32c10Smrg	*-crds)
1657ea148d1dSmrg		os=unos
165843f32c10Smrg		;;
165943f32c10Smrg	*-ns)
1660ea148d1dSmrg		os=genix
166143f32c10Smrg		;;
166243f32c10Smrg	i370-*)
1663ea148d1dSmrg		os=mvs
166443f32c10Smrg		;;
166543f32c10Smrg	*-gould)
1666ea148d1dSmrg		os=sysv
166743f32c10Smrg		;;
166843f32c10Smrg	*-highlevel)
1669ea148d1dSmrg		os=bsd
167043f32c10Smrg		;;
167143f32c10Smrg	*-encore)
1672ea148d1dSmrg		os=bsd
167343f32c10Smrg		;;
167443f32c10Smrg	*-sgi)
1675ea148d1dSmrg		os=irix
167643f32c10Smrg		;;
167743f32c10Smrg	*-siemens)
1678ea148d1dSmrg		os=sysv4
167943f32c10Smrg		;;
168043f32c10Smrg	*-masscomp)
1681ea148d1dSmrg		os=rtu
168243f32c10Smrg		;;
168343f32c10Smrg	f30[01]-fujitsu | f700-fujitsu)
1684ea148d1dSmrg		os=uxpv
168543f32c10Smrg		;;
168643f32c10Smrg	*-rom68k)
1687ea148d1dSmrg		os=coff
168843f32c10Smrg		;;
168943f32c10Smrg	*-*bug)
1690ea148d1dSmrg		os=coff
169143f32c10Smrg		;;
169243f32c10Smrg	*-apple)
1693ea148d1dSmrg		os=macos
169443f32c10Smrg		;;
169543f32c10Smrg	*-atari*)
1696ea148d1dSmrg		os=mint
1697ea148d1dSmrg		;;
1698ea148d1dSmrg	*-wrs)
1699ea148d1dSmrg		os=vxworks
170043f32c10Smrg		;;
170143f32c10Smrg	*)
1702ea148d1dSmrg		os=none
170343f32c10Smrg		;;
170443f32c10Smrgesac
170543f32c10Smrgfi
170643f32c10Smrg
170743f32c10Smrg# Here we handle the case where we know the os, and the CPU type, but not the
170843f32c10Smrg# manufacturer.  We pick the logical manufacturer.
1709ea148d1dSmrgcase $vendor in
1710ea148d1dSmrg	unknown)
171143f32c10Smrg		case $os in
1712ea148d1dSmrg			riscix*)
171343f32c10Smrg				vendor=acorn
171443f32c10Smrg				;;
1715ea148d1dSmrg			sunos*)
171643f32c10Smrg				vendor=sun
171743f32c10Smrg				;;
1718ea148d1dSmrg			cnk*|-aix*)
171943f32c10Smrg				vendor=ibm
172043f32c10Smrg				;;
1721ea148d1dSmrg			beos*)
172243f32c10Smrg				vendor=be
172343f32c10Smrg				;;
1724ea148d1dSmrg			hpux*)
172543f32c10Smrg				vendor=hp
172643f32c10Smrg				;;
1727ea148d1dSmrg			mpeix*)
172843f32c10Smrg				vendor=hp
172943f32c10Smrg				;;
1730ea148d1dSmrg			hiux*)
173143f32c10Smrg				vendor=hitachi
173243f32c10Smrg				;;
1733ea148d1dSmrg			unos*)
173443f32c10Smrg				vendor=crds
173543f32c10Smrg				;;
1736ea148d1dSmrg			dgux*)
173743f32c10Smrg				vendor=dg
173843f32c10Smrg				;;
1739ea148d1dSmrg			luna*)
174043f32c10Smrg				vendor=omron
174143f32c10Smrg				;;
1742ea148d1dSmrg			genix*)
174343f32c10Smrg				vendor=ns
174443f32c10Smrg				;;
1745ea148d1dSmrg			clix*)
1746ea148d1dSmrg				vendor=intergraph
1747ea148d1dSmrg				;;
1748ea148d1dSmrg			mvs* | opened*)
174943f32c10Smrg				vendor=ibm
175043f32c10Smrg				;;
1751ea148d1dSmrg			os400*)
175243f32c10Smrg				vendor=ibm
175343f32c10Smrg				;;
1754ea148d1dSmrg			ptx*)
175543f32c10Smrg				vendor=sequent
175643f32c10Smrg				;;
1757ea148d1dSmrg			tpf*)
175843f32c10Smrg				vendor=ibm
175943f32c10Smrg				;;
1760ea148d1dSmrg			vxsim* | vxworks* | windiss*)
176143f32c10Smrg				vendor=wrs
176243f32c10Smrg				;;
1763ea148d1dSmrg			aux*)
176443f32c10Smrg				vendor=apple
176543f32c10Smrg				;;
1766ea148d1dSmrg			hms*)
176743f32c10Smrg				vendor=hitachi
176843f32c10Smrg				;;
1769ea148d1dSmrg			mpw* | macos*)
177043f32c10Smrg				vendor=apple
177143f32c10Smrg				;;
1772ea148d1dSmrg			*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
177343f32c10Smrg				vendor=atari
177443f32c10Smrg				;;
1775ea148d1dSmrg			vos*)
177643f32c10Smrg				vendor=stratus
177743f32c10Smrg				;;
177843f32c10Smrg		esac
177943f32c10Smrg		;;
178043f32c10Smrgesac
178143f32c10Smrg
1782ea148d1dSmrgecho "$cpu-$vendor-$os"
178343f32c10Smrgexit
178443f32c10Smrg
178543f32c10Smrg# Local variables:
1786ea148d1dSmrg# eval: (add-hook 'before-save-hook 'time-stamp)
178743f32c10Smrg# time-stamp-start: "timestamp='"
178843f32c10Smrg# time-stamp-format: "%:y-%02m-%02d"
178943f32c10Smrg# time-stamp-end: "'"
179043f32c10Smrg# End:
1791