config.sub revision edce3322
1a966c04fSmrg#! /bin/sh
2a966c04fSmrg# Configuration validation subroutine script.
3edce3322Smrg#   Copyright 1992-2018 Free Software Foundation, Inc.
4a966c04fSmrg
5edce3322Smrgtimestamp='2018-08-29'
6a966c04fSmrg
7ac92798bSmrg# This file is free software; you can redistribute it and/or modify it
8ac92798bSmrg# under the terms of the GNU General Public License as published by
9ac92798bSmrg# the Free Software Foundation; either version 3 of the License, or
10a966c04fSmrg# (at your option) any later version.
11a966c04fSmrg#
12ac92798bSmrg# This program is distributed in the hope that it will be useful, but
13ac92798bSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of
14ac92798bSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15ac92798bSmrg# General Public License for more details.
16a966c04fSmrg#
17a966c04fSmrg# You should have received a copy of the GNU General Public License
18edce3322Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>.
19a966c04fSmrg#
20a966c04fSmrg# As a special exception to the GNU General Public License, if you
21a966c04fSmrg# distribute this file as part of a program that contains a
22a966c04fSmrg# configuration script generated by Autoconf, you may include it under
23ac92798bSmrg# the same distribution terms that you use for the rest of that
24ac92798bSmrg# program.  This Exception is an additional permission under section 7
25ac92798bSmrg# of the GNU General Public License, version 3 ("GPLv3").
26a966c04fSmrg
27a966c04fSmrg
28edce3322Smrg# Please send patches to <config-patches@gnu.org>.
29a966c04fSmrg#
30a966c04fSmrg# Configuration subroutine to validate and canonicalize a configuration type.
31a966c04fSmrg# Supply the specified configuration type as an argument.
32a966c04fSmrg# If it is invalid, we print an error message on stderr and exit with code 1.
33a966c04fSmrg# Otherwise, we print the canonical config type on stdout and succeed.
34a966c04fSmrg
356e7d3316Smrg# You can get the latest version of this script from:
36edce3322Smrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
376e7d3316Smrg
38a966c04fSmrg# This file is supposed to be the same for all GNU packages
39a966c04fSmrg# and recognize all the CPU types, system types and aliases
40a966c04fSmrg# that are meaningful with *any* GNU software.
41a966c04fSmrg# Each package is responsible for reporting which valid configurations
42a966c04fSmrg# it does not support.  The user should be able to distinguish
43a966c04fSmrg# a failure to support a valid configuration from a meaningless
44a966c04fSmrg# configuration.
45a966c04fSmrg
46a966c04fSmrg# The goal of this file is to map all the various variations of a given
47a966c04fSmrg# machine specification into a single specification in the form:
48a966c04fSmrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
49a966c04fSmrg# or in some cases, the newer four-part form:
50a966c04fSmrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
51a966c04fSmrg# It is wrong to echo any other type of specification.
52a966c04fSmrg
53a966c04fSmrgme=`echo "$0" | sed -e 's,.*/,,'`
54a966c04fSmrg
55a966c04fSmrgusage="\
56edce3322SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
57a966c04fSmrg
58a966c04fSmrgCanonicalize a configuration name.
59a966c04fSmrg
60edce3322SmrgOptions:
61a966c04fSmrg  -h, --help         print this help, then exit
62a966c04fSmrg  -t, --time-stamp   print date of last modification, then exit
63a966c04fSmrg  -v, --version      print version number, then exit
64a966c04fSmrg
65a966c04fSmrgReport bugs and patches to <config-patches@gnu.org>."
66a966c04fSmrg
67a966c04fSmrgversion="\
68a966c04fSmrgGNU config.sub ($timestamp)
69a966c04fSmrg
70edce3322SmrgCopyright 1992-2018 Free Software Foundation, Inc.
71a966c04fSmrg
72a966c04fSmrgThis is free software; see the source for copying conditions.  There is NO
73a966c04fSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
74a966c04fSmrg
75a966c04fSmrghelp="
76a966c04fSmrgTry \`$me --help' for more information."
77a966c04fSmrg
78a966c04fSmrg# Parse command line
79a966c04fSmrgwhile test $# -gt 0 ; do
80a966c04fSmrg  case $1 in
81a966c04fSmrg    --time-stamp | --time* | -t )
82a966c04fSmrg       echo "$timestamp" ; exit ;;
83a966c04fSmrg    --version | -v )
84a966c04fSmrg       echo "$version" ; exit ;;
85a966c04fSmrg    --help | --h* | -h )
86a966c04fSmrg       echo "$usage"; exit ;;
87a966c04fSmrg    -- )     # Stop option processing
88a966c04fSmrg       shift; break ;;
89a966c04fSmrg    - )	# Use stdin as input.
90a966c04fSmrg       break ;;
91a966c04fSmrg    -* )
92a966c04fSmrg       echo "$me: invalid option $1$help"
93a966c04fSmrg       exit 1 ;;
94a966c04fSmrg
95a966c04fSmrg    *local*)
96a966c04fSmrg       # First pass through any local machine types.
97edce3322Smrg       echo "$1"
98a966c04fSmrg       exit ;;
99a966c04fSmrg
100a966c04fSmrg    * )
101a966c04fSmrg       break ;;
102a966c04fSmrg  esac
103a966c04fSmrgdone
104a966c04fSmrg
105a966c04fSmrgcase $# in
106a966c04fSmrg 0) echo "$me: missing argument$help" >&2
107a966c04fSmrg    exit 1;;
108a966c04fSmrg 1) ;;
109a966c04fSmrg *) echo "$me: too many arguments$help" >&2
110a966c04fSmrg    exit 1;;
111a966c04fSmrgesac
112a966c04fSmrg
113edce3322Smrg# Split fields of configuration type
114edce3322SmrgIFS="-" read -r field1 field2 field3 field4 <<EOF
115edce3322Smrg$1
116edce3322SmrgEOF
117a966c04fSmrg
118edce3322Smrg# Separate into logical components for further validation
119edce3322Smrgcase $1 in
120edce3322Smrg	*-*-*-*-*)
121edce3322Smrg		echo Invalid configuration \`"$1"\': more than four components >&2
122edce3322Smrg		exit 1
123a966c04fSmrg		;;
124edce3322Smrg	*-*-*-*)
125edce3322Smrg		basic_machine=$field1-$field2
126edce3322Smrg		os=$field3-$field4
127a966c04fSmrg		;;
128edce3322Smrg	*-*-*)
129edce3322Smrg		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
130edce3322Smrg		# parts
131edce3322Smrg		maybe_os=$field2-$field3
132edce3322Smrg		case $maybe_os in
133edce3322Smrg			nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
134edce3322Smrg			| linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
135edce3322Smrg			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
136edce3322Smrg			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
137edce3322Smrg			| storm-chaos* | os2-emx* | rtmk-nova*)
138edce3322Smrg				basic_machine=$field1
139edce3322Smrg				os=$maybe_os
140edce3322Smrg				;;
141edce3322Smrg			android-linux)
142edce3322Smrg				basic_machine=$field1-unknown
143edce3322Smrg				os=linux-android
144edce3322Smrg				;;
145edce3322Smrg			*)
146edce3322Smrg				basic_machine=$field1-$field2
147edce3322Smrg				os=$field3
148edce3322Smrg				;;
149edce3322Smrg		esac
150a966c04fSmrg		;;
151edce3322Smrg	*-*)
152edce3322Smrg		# A lone config we happen to match not fitting any patern
153edce3322Smrg		case $field1-$field2 in
154edce3322Smrg			decstation-3100)
155edce3322Smrg				basic_machine=mips-dec
156edce3322Smrg				os=
157edce3322Smrg				;;
158edce3322Smrg			*-*)
159edce3322Smrg				# Second component is usually, but not always the OS
160edce3322Smrg				case $field2 in
161edce3322Smrg					# Prevent following clause from handling this valid os
162edce3322Smrg					sun*os*)
163edce3322Smrg						basic_machine=$field1
164edce3322Smrg						os=$field2
165edce3322Smrg						;;
166edce3322Smrg					# Manufacturers
167edce3322Smrg					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
168edce3322Smrg					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
169edce3322Smrg					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
170edce3322Smrg					| convergent* | ncr* | news | 32* | 3600* | 3100* \
171edce3322Smrg					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
172edce3322Smrg					| ultra | tti* | harris | dolphin | highlevel | gould \
173edce3322Smrg					| cbm | ns | masscomp | apple | axis | knuth | cray \
174edce3322Smrg					| microblaze* | sim | cisco \
175edce3322Smrg					| oki | wec | wrs | winbond)
176edce3322Smrg						basic_machine=$field1-$field2
177edce3322Smrg						os=
178edce3322Smrg						;;
179edce3322Smrg					*)
180edce3322Smrg						basic_machine=$field1
181edce3322Smrg						os=$field2
182edce3322Smrg						;;
183edce3322Smrg				esac
184edce3322Smrg			;;
185edce3322Smrg		esac
186a966c04fSmrg		;;
187edce3322Smrg	*)
188edce3322Smrg		# Convert single-component short-hands not valid as part of
189edce3322Smrg		# multi-component configurations.
190edce3322Smrg		case $field1 in
191edce3322Smrg			386bsd)
192edce3322Smrg				basic_machine=i386-pc
193edce3322Smrg				os=bsd
194edce3322Smrg				;;
195edce3322Smrg			a29khif)
196edce3322Smrg				basic_machine=a29k-amd
197edce3322Smrg				os=udi
198edce3322Smrg				;;
199edce3322Smrg			adobe68k)
200edce3322Smrg				basic_machine=m68010-adobe
201edce3322Smrg				os=scout
202edce3322Smrg				;;
203edce3322Smrg			alliant)
204edce3322Smrg				basic_machine=fx80-alliant
205edce3322Smrg				os=
206edce3322Smrg				;;
207edce3322Smrg			altos | altos3068)
208edce3322Smrg				basic_machine=m68k-altos
209edce3322Smrg				os=
210edce3322Smrg				;;
211edce3322Smrg			am29k)
212edce3322Smrg				basic_machine=a29k-none
213edce3322Smrg				os=bsd
214edce3322Smrg				;;
215edce3322Smrg			amdahl)
216edce3322Smrg				basic_machine=580-amdahl
217edce3322Smrg				os=sysv
218edce3322Smrg				;;
219edce3322Smrg			amiga)
220edce3322Smrg				basic_machine=m68k-unknown
221edce3322Smrg				os=
222edce3322Smrg				;;
223edce3322Smrg			amigaos | amigados)
224edce3322Smrg				basic_machine=m68k-unknown
225edce3322Smrg				os=amigaos
226edce3322Smrg				;;
227edce3322Smrg			amigaunix | amix)
228edce3322Smrg				basic_machine=m68k-unknown
229edce3322Smrg				os=sysv4
230edce3322Smrg				;;
231edce3322Smrg			apollo68)
232edce3322Smrg				basic_machine=m68k-apollo
233edce3322Smrg				os=sysv
234edce3322Smrg				;;
235edce3322Smrg			apollo68bsd)
236edce3322Smrg				basic_machine=m68k-apollo
237edce3322Smrg				os=bsd
238edce3322Smrg				;;
239edce3322Smrg			aros)
240edce3322Smrg				basic_machine=i386-pc
241edce3322Smrg				os=aros
242edce3322Smrg				;;
243edce3322Smrg			aux)
244edce3322Smrg				basic_machine=m68k-apple
245edce3322Smrg				os=aux
246edce3322Smrg				;;
247edce3322Smrg			balance)
248edce3322Smrg				basic_machine=ns32k-sequent
249edce3322Smrg				os=dynix
250edce3322Smrg				;;
251edce3322Smrg			blackfin)
252edce3322Smrg				basic_machine=bfin-unknown
253edce3322Smrg				os=linux
254edce3322Smrg				;;
255edce3322Smrg			cegcc)
256edce3322Smrg				basic_machine=arm-unknown
257edce3322Smrg				os=cegcc
258edce3322Smrg				;;
259edce3322Smrg			convex-c1)
260edce3322Smrg				basic_machine=c1-convex
261edce3322Smrg				os=bsd
262edce3322Smrg				;;
263edce3322Smrg			convex-c2)
264edce3322Smrg				basic_machine=c2-convex
265edce3322Smrg				os=bsd
266edce3322Smrg				;;
267edce3322Smrg			convex-c32)
268edce3322Smrg				basic_machine=c32-convex
269edce3322Smrg				os=bsd
270edce3322Smrg				;;
271edce3322Smrg			convex-c34)
272edce3322Smrg				basic_machine=c34-convex
273edce3322Smrg				os=bsd
274edce3322Smrg				;;
275edce3322Smrg			convex-c38)
276edce3322Smrg				basic_machine=c38-convex
277edce3322Smrg				os=bsd
278edce3322Smrg				;;
279edce3322Smrg			cray)
280edce3322Smrg				basic_machine=j90-cray
281edce3322Smrg				os=unicos
282edce3322Smrg				;;
283edce3322Smrg			crds | unos)
284edce3322Smrg				basic_machine=m68k-crds
285edce3322Smrg				os=
286edce3322Smrg				;;
287edce3322Smrg			da30)
288edce3322Smrg				basic_machine=m68k-da30
289edce3322Smrg				os=
290edce3322Smrg				;;
291edce3322Smrg			decstation | pmax | pmin | dec3100 | decstatn)
292edce3322Smrg				basic_machine=mips-dec
293edce3322Smrg				os=
294edce3322Smrg				;;
295edce3322Smrg			delta88)
296edce3322Smrg				basic_machine=m88k-motorola
297edce3322Smrg				os=sysv3
298edce3322Smrg				;;
299edce3322Smrg			dicos)
300edce3322Smrg				basic_machine=i686-pc
301edce3322Smrg				os=dicos
302edce3322Smrg				;;
303edce3322Smrg			djgpp)
304edce3322Smrg				basic_machine=i586-pc
305edce3322Smrg				os=msdosdjgpp
306edce3322Smrg				;;
307edce3322Smrg			ebmon29k)
308edce3322Smrg				basic_machine=a29k-amd
309edce3322Smrg				os=ebmon
310edce3322Smrg				;;
311edce3322Smrg			es1800 | OSE68k | ose68k | ose | OSE)
312edce3322Smrg				basic_machine=m68k-ericsson
313edce3322Smrg				os=ose
314edce3322Smrg				;;
315edce3322Smrg			gmicro)
316edce3322Smrg				basic_machine=tron-gmicro
317edce3322Smrg				os=sysv
318edce3322Smrg				;;
319edce3322Smrg			go32)
320edce3322Smrg				basic_machine=i386-pc
321edce3322Smrg				os=go32
322edce3322Smrg				;;
323edce3322Smrg			h8300hms)
324edce3322Smrg				basic_machine=h8300-hitachi
325edce3322Smrg				os=hms
326edce3322Smrg				;;
327edce3322Smrg			h8300xray)
328edce3322Smrg				basic_machine=h8300-hitachi
329edce3322Smrg				os=xray
330edce3322Smrg				;;
331edce3322Smrg			h8500hms)
332edce3322Smrg				basic_machine=h8500-hitachi
333edce3322Smrg				os=hms
334edce3322Smrg				;;
335edce3322Smrg			harris)
336edce3322Smrg				basic_machine=m88k-harris
337edce3322Smrg				os=sysv3
338edce3322Smrg				;;
339edce3322Smrg			hp300)
340edce3322Smrg				basic_machine=m68k-hp
341edce3322Smrg				;;
342edce3322Smrg			hp300bsd)
343edce3322Smrg				basic_machine=m68k-hp
344edce3322Smrg				os=bsd
345edce3322Smrg				;;
346edce3322Smrg			hp300hpux)
347edce3322Smrg				basic_machine=m68k-hp
348edce3322Smrg				os=hpux
349edce3322Smrg				;;
350edce3322Smrg			hppaosf)
351edce3322Smrg				basic_machine=hppa1.1-hp
352edce3322Smrg				os=osf
353edce3322Smrg				;;
354edce3322Smrg			hppro)
355edce3322Smrg				basic_machine=hppa1.1-hp
356edce3322Smrg				os=proelf
357edce3322Smrg				;;
358edce3322Smrg			i386mach)
359edce3322Smrg				basic_machine=i386-mach
360edce3322Smrg				os=mach
361edce3322Smrg				;;
362edce3322Smrg			vsta)
363edce3322Smrg				basic_machine=i386-pc
364edce3322Smrg				os=vsta
365edce3322Smrg				;;
366edce3322Smrg			isi68 | isi)
367edce3322Smrg				basic_machine=m68k-isi
368edce3322Smrg				os=sysv
369edce3322Smrg				;;
370edce3322Smrg			m68knommu)
371edce3322Smrg				basic_machine=m68k-unknown
372edce3322Smrg				os=linux
373edce3322Smrg				;;
374edce3322Smrg			magnum | m3230)
375edce3322Smrg				basic_machine=mips-mips
376edce3322Smrg				os=sysv
377edce3322Smrg				;;
378edce3322Smrg			merlin)
379edce3322Smrg				basic_machine=ns32k-utek
380edce3322Smrg				os=sysv
381edce3322Smrg				;;
382edce3322Smrg			mingw64)
383edce3322Smrg				basic_machine=x86_64-pc
384edce3322Smrg				os=mingw64
385edce3322Smrg				;;
386edce3322Smrg			mingw32)
387edce3322Smrg				basic_machine=i686-pc
388edce3322Smrg				os=mingw32
389edce3322Smrg				;;
390edce3322Smrg			mingw32ce)
391edce3322Smrg				basic_machine=arm-unknown
392edce3322Smrg				os=mingw32ce
393edce3322Smrg				;;
394edce3322Smrg			monitor)
395edce3322Smrg				basic_machine=m68k-rom68k
396edce3322Smrg				os=coff
397edce3322Smrg				;;
398edce3322Smrg			morphos)
399edce3322Smrg				basic_machine=powerpc-unknown
400edce3322Smrg				os=morphos
401edce3322Smrg				;;
402edce3322Smrg			moxiebox)
403edce3322Smrg				basic_machine=moxie-unknown
404edce3322Smrg				os=moxiebox
405edce3322Smrg				;;
406edce3322Smrg			msdos)
407edce3322Smrg				basic_machine=i386-pc
408edce3322Smrg				os=msdos
409edce3322Smrg				;;
410edce3322Smrg			msys)
411edce3322Smrg				basic_machine=i686-pc
412edce3322Smrg				os=msys
413edce3322Smrg				;;
414edce3322Smrg			mvs)
415edce3322Smrg				basic_machine=i370-ibm
416edce3322Smrg				os=mvs
417edce3322Smrg				;;
418edce3322Smrg			nacl)
419edce3322Smrg				basic_machine=le32-unknown
420edce3322Smrg				os=nacl
421edce3322Smrg				;;
422edce3322Smrg			ncr3000)
423edce3322Smrg				basic_machine=i486-ncr
424edce3322Smrg				os=sysv4
425edce3322Smrg				;;
426edce3322Smrg			netbsd386)
427edce3322Smrg				basic_machine=i386-pc
428edce3322Smrg				os=netbsd
429edce3322Smrg				;;
430edce3322Smrg			netwinder)
431edce3322Smrg				basic_machine=armv4l-rebel
432edce3322Smrg				os=linux
433edce3322Smrg				;;
434edce3322Smrg			news | news700 | news800 | news900)
435edce3322Smrg				basic_machine=m68k-sony
436edce3322Smrg				os=newsos
437edce3322Smrg				;;
438edce3322Smrg			news1000)
439edce3322Smrg				basic_machine=m68030-sony
440edce3322Smrg				os=newsos
441edce3322Smrg				;;
442edce3322Smrg			necv70)
443edce3322Smrg				basic_machine=v70-nec
444edce3322Smrg				os=sysv
445edce3322Smrg				;;
446edce3322Smrg			nh3000)
447edce3322Smrg				basic_machine=m68k-harris
448edce3322Smrg				os=cxux
449edce3322Smrg				;;
450edce3322Smrg			nh[45]000)
451edce3322Smrg				basic_machine=m88k-harris
452edce3322Smrg				os=cxux
453edce3322Smrg				;;
454edce3322Smrg			nindy960)
455edce3322Smrg				basic_machine=i960-intel
456edce3322Smrg				os=nindy
457edce3322Smrg				;;
458edce3322Smrg			mon960)
459edce3322Smrg				basic_machine=i960-intel
460edce3322Smrg				os=mon960
461edce3322Smrg				;;
462edce3322Smrg			nonstopux)
463edce3322Smrg				basic_machine=mips-compaq
464edce3322Smrg				os=nonstopux
465edce3322Smrg				;;
466edce3322Smrg			os400)
467edce3322Smrg				basic_machine=powerpc-ibm
468edce3322Smrg				os=os400
469edce3322Smrg				;;
470edce3322Smrg			OSE68000 | ose68000)
471edce3322Smrg				basic_machine=m68000-ericsson
472edce3322Smrg				os=ose
473edce3322Smrg				;;
474edce3322Smrg			os68k)
475edce3322Smrg				basic_machine=m68k-none
476edce3322Smrg				os=os68k
477edce3322Smrg				;;
478edce3322Smrg			paragon)
479edce3322Smrg				basic_machine=i860-intel
480edce3322Smrg				os=osf
481edce3322Smrg				;;
482edce3322Smrg			parisc)
483edce3322Smrg				basic_machine=hppa-unknown
484edce3322Smrg				os=linux
485edce3322Smrg				;;
486edce3322Smrg			pw32)
487edce3322Smrg				basic_machine=i586-unknown
488edce3322Smrg				os=pw32
489edce3322Smrg				;;
490edce3322Smrg			rdos | rdos64)
491edce3322Smrg				basic_machine=x86_64-pc
492edce3322Smrg				os=rdos
493edce3322Smrg				;;
494edce3322Smrg			rdos32)
495edce3322Smrg				basic_machine=i386-pc
496edce3322Smrg				os=rdos
497edce3322Smrg				;;
498edce3322Smrg			rom68k)
499edce3322Smrg				basic_machine=m68k-rom68k
500edce3322Smrg				os=coff
501edce3322Smrg				;;
502edce3322Smrg			sa29200)
503edce3322Smrg				basic_machine=a29k-amd
504edce3322Smrg				os=udi
505edce3322Smrg				;;
506edce3322Smrg			sei)
507edce3322Smrg				basic_machine=mips-sei
508edce3322Smrg				os=seiux
509edce3322Smrg				;;
510edce3322Smrg			sequent)
511edce3322Smrg				basic_machine=i386-sequent
512edce3322Smrg				os=
513edce3322Smrg				;;
514edce3322Smrg			sps7)
515edce3322Smrg				basic_machine=m68k-bull
516edce3322Smrg				os=sysv2
517edce3322Smrg				;;
518edce3322Smrg			st2000)
519edce3322Smrg				basic_machine=m68k-tandem
520edce3322Smrg				os=
521edce3322Smrg				;;
522edce3322Smrg			stratus)
523edce3322Smrg				basic_machine=i860-stratus
524edce3322Smrg				os=sysv4
525edce3322Smrg				;;
526edce3322Smrg			sun2)
527edce3322Smrg				basic_machine=m68000-sun
528edce3322Smrg				os=
529edce3322Smrg				;;
530edce3322Smrg			sun2os3)
531edce3322Smrg				basic_machine=m68000-sun
532edce3322Smrg				os=sunos3
533edce3322Smrg				;;
534edce3322Smrg			sun2os4)
535edce3322Smrg				basic_machine=m68000-sun
536edce3322Smrg				os=sunos4
537edce3322Smrg				;;
538edce3322Smrg			sun3)
539edce3322Smrg				basic_machine=m68k-sun
540edce3322Smrg				os=
541edce3322Smrg				;;
542edce3322Smrg			sun3os3)
543edce3322Smrg				basic_machine=m68k-sun
544edce3322Smrg				os=sunos3
545edce3322Smrg				;;
546edce3322Smrg			sun3os4)
547edce3322Smrg				basic_machine=m68k-sun
548edce3322Smrg				os=sunos4
549edce3322Smrg				;;
550edce3322Smrg			sun4)
551edce3322Smrg				basic_machine=sparc-sun
552edce3322Smrg				os=
553edce3322Smrg				;;
554edce3322Smrg			sun4os3)
555edce3322Smrg				basic_machine=sparc-sun
556edce3322Smrg				os=sunos3
557edce3322Smrg				;;
558edce3322Smrg			sun4os4)
559edce3322Smrg				basic_machine=sparc-sun
560edce3322Smrg				os=sunos4
561edce3322Smrg				;;
562edce3322Smrg			sun4sol2)
563edce3322Smrg				basic_machine=sparc-sun
564edce3322Smrg				os=solaris2
565edce3322Smrg				;;
566edce3322Smrg			sun386 | sun386i | roadrunner)
567edce3322Smrg				basic_machine=i386-sun
568edce3322Smrg				os=
569edce3322Smrg				;;
570edce3322Smrg			sv1)
571edce3322Smrg				basic_machine=sv1-cray
572edce3322Smrg				os=unicos
573edce3322Smrg				;;
574edce3322Smrg			symmetry)
575edce3322Smrg				basic_machine=i386-sequent
576edce3322Smrg				os=dynix
577edce3322Smrg				;;
578edce3322Smrg			t3e)
579edce3322Smrg				basic_machine=alphaev5-cray
580edce3322Smrg				os=unicos
581edce3322Smrg				;;
582edce3322Smrg			t90)
583edce3322Smrg				basic_machine=t90-cray
584edce3322Smrg				os=unicos
585edce3322Smrg				;;
586edce3322Smrg			toad1)
587edce3322Smrg				basic_machine=pdp10-xkl
588edce3322Smrg				os=tops20
589edce3322Smrg				;;
590edce3322Smrg			tpf)
591edce3322Smrg				basic_machine=s390x-ibm
592edce3322Smrg				os=tpf
593edce3322Smrg				;;
594edce3322Smrg			udi29k)
595edce3322Smrg				basic_machine=a29k-amd
596edce3322Smrg				os=udi
597edce3322Smrg				;;
598edce3322Smrg			ultra3)
599edce3322Smrg				basic_machine=a29k-nyu
600edce3322Smrg				os=sym1
601edce3322Smrg				;;
602edce3322Smrg			v810 | necv810)
603edce3322Smrg				basic_machine=v810-nec
604edce3322Smrg				os=none
605edce3322Smrg				;;
606edce3322Smrg			vaxv)
607edce3322Smrg				basic_machine=vax-dec
608edce3322Smrg				os=sysv
609edce3322Smrg				;;
610edce3322Smrg			vms)
611edce3322Smrg				basic_machine=vax-dec
612edce3322Smrg				os=vms
613edce3322Smrg				;;
614edce3322Smrg			vxworks960)
615edce3322Smrg				basic_machine=i960-wrs
616edce3322Smrg				os=vxworks
617edce3322Smrg				;;
618edce3322Smrg			vxworks68)
619edce3322Smrg				basic_machine=m68k-wrs
620edce3322Smrg				os=vxworks
621edce3322Smrg				;;
622edce3322Smrg			vxworks29k)
623edce3322Smrg				basic_machine=a29k-wrs
624edce3322Smrg				os=vxworks
625edce3322Smrg				;;
626edce3322Smrg			xbox)
627edce3322Smrg				basic_machine=i686-pc
628edce3322Smrg				os=mingw32
629edce3322Smrg				;;
630edce3322Smrg			ymp)
631edce3322Smrg				basic_machine=ymp-cray
632edce3322Smrg				os=unicos
633edce3322Smrg				;;
634edce3322Smrg			*)
635edce3322Smrg				basic_machine=$1
636edce3322Smrg				os=
637edce3322Smrg				;;
638edce3322Smrg		esac
639a966c04fSmrg		;;
640a966c04fSmrgesac
641a966c04fSmrg
642edce3322Smrg# Decode 1-component or ad-hoc basic machines
643a966c04fSmrgcase $basic_machine in
644edce3322Smrg	# Here we handle the default manufacturer of certain CPU types.  It is in
645edce3322Smrg	# some cases the only manufacturer, in others, it is the most popular.
646edce3322Smrg	w89k)
647edce3322Smrg		cpu=hppa1.1
648edce3322Smrg		vendor=winbond
649a966c04fSmrg		;;
650edce3322Smrg	op50n)
651edce3322Smrg		cpu=hppa1.1
652edce3322Smrg		vendor=oki
653ac92798bSmrg		;;
654edce3322Smrg	op60c)
655edce3322Smrg		cpu=hppa1.1
656edce3322Smrg		vendor=oki
657ac92798bSmrg		;;
658edce3322Smrg	ibm*)
659edce3322Smrg		cpu=i370
660edce3322Smrg		vendor=ibm
661ac92798bSmrg		;;
662edce3322Smrg	orion105)
663edce3322Smrg		cpu=clipper
664edce3322Smrg		vendor=highlevel
665ac92798bSmrg		;;
666edce3322Smrg	mac | mpw | mac-mpw)
667edce3322Smrg		cpu=m68k
668edce3322Smrg		vendor=apple
669a966c04fSmrg		;;
670edce3322Smrg	pmac | pmac-mpw)
671edce3322Smrg		cpu=powerpc
672edce3322Smrg		vendor=apple
673a966c04fSmrg		;;
674edce3322Smrg
675a966c04fSmrg	# Recognize the various machine names and aliases which stand
676a966c04fSmrg	# for a CPU type and a company and sometimes even an OS.
677a966c04fSmrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
678edce3322Smrg		cpu=m68000
679edce3322Smrg		vendor=att
680a966c04fSmrg		;;
681a966c04fSmrg	3b*)
682edce3322Smrg		cpu=we32k
683edce3322Smrg		vendor=att
6842e2dd055Smrg		;;
6856e7d3316Smrg	bluegene*)
686edce3322Smrg		cpu=powerpc
687edce3322Smrg		vendor=ibm
688edce3322Smrg		os=cnk
689a966c04fSmrg		;;
690a966c04fSmrg	decsystem10* | dec10*)
691edce3322Smrg		cpu=pdp10
692edce3322Smrg		vendor=dec
693edce3322Smrg		os=tops10
694a966c04fSmrg		;;
695a966c04fSmrg	decsystem20* | dec20*)
696edce3322Smrg		cpu=pdp10
697edce3322Smrg		vendor=dec
698edce3322Smrg		os=tops20
699a966c04fSmrg		;;
700a966c04fSmrg	delta | 3300 | motorola-3300 | motorola-delta \
701a966c04fSmrg	      | 3300-motorola | delta-motorola)
702edce3322Smrg		cpu=m68k
703edce3322Smrg		vendor=motorola
7046e7d3316Smrg		;;
705edce3322Smrg	dpx2*)
706edce3322Smrg		cpu=m68k
707edce3322Smrg		vendor=bull
708edce3322Smrg		os=sysv3
709a966c04fSmrg		;;
710a966c04fSmrg	encore | umax | mmax)
711edce3322Smrg		cpu=ns32k
712edce3322Smrg		vendor=encore
713a966c04fSmrg		;;
714edce3322Smrg	elxsi)
715edce3322Smrg		cpu=elxsi
716edce3322Smrg		vendor=elxsi
717edce3322Smrg		os=${os:-bsd}
718a966c04fSmrg		;;
719a966c04fSmrg	fx2800)
720edce3322Smrg		cpu=i860
721edce3322Smrg		vendor=alliant
722a966c04fSmrg		;;
723a966c04fSmrg	genix)
724edce3322Smrg		cpu=ns32k
725edce3322Smrg		vendor=ns
726a966c04fSmrg		;;
727a966c04fSmrg	h3050r* | hiux*)
728edce3322Smrg		cpu=hppa1.1
729edce3322Smrg		vendor=hitachi
730edce3322Smrg		os=hiuxwe2
731a966c04fSmrg		;;
732a966c04fSmrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
733edce3322Smrg		cpu=hppa1.0
734edce3322Smrg		vendor=hp
735a966c04fSmrg		;;
736a966c04fSmrg	hp9k2[0-9][0-9] | hp9k31[0-9])
737edce3322Smrg		cpu=m68000
738edce3322Smrg		vendor=hp
739a966c04fSmrg		;;
740a966c04fSmrg	hp9k3[2-9][0-9])
741edce3322Smrg		cpu=m68k
742edce3322Smrg		vendor=hp
743a966c04fSmrg		;;
744a966c04fSmrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
745edce3322Smrg		cpu=hppa1.0
746edce3322Smrg		vendor=hp
747a966c04fSmrg		;;
748a966c04fSmrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
749edce3322Smrg		cpu=hppa1.1
750edce3322Smrg		vendor=hp
751a966c04fSmrg		;;
752a966c04fSmrg	hp9k78[0-9] | hp78[0-9])
753a966c04fSmrg		# FIXME: really hppa2.0-hp
754edce3322Smrg		cpu=hppa1.1
755edce3322Smrg		vendor=hp
756a966c04fSmrg		;;
757a966c04fSmrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
758a966c04fSmrg		# FIXME: really hppa2.0-hp
759edce3322Smrg		cpu=hppa1.1
760edce3322Smrg		vendor=hp
761a966c04fSmrg		;;
762a966c04fSmrg	hp9k8[0-9][13679] | hp8[0-9][13679])
763edce3322Smrg		cpu=hppa1.1
764edce3322Smrg		vendor=hp
765a966c04fSmrg		;;
766a966c04fSmrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
767edce3322Smrg		cpu=hppa1.0
768edce3322Smrg		vendor=hp
769a966c04fSmrg		;;
770a966c04fSmrg	i*86v32)
771edce3322Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
772edce3322Smrg		vendor=pc
773edce3322Smrg		os=sysv32
774a966c04fSmrg		;;
775a966c04fSmrg	i*86v4*)
776edce3322Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
777edce3322Smrg		vendor=pc
778edce3322Smrg		os=sysv4
779a966c04fSmrg		;;
780a966c04fSmrg	i*86v)
781edce3322Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
782edce3322Smrg		vendor=pc
783edce3322Smrg		os=sysv
784a966c04fSmrg		;;
785a966c04fSmrg	i*86sol2)
786edce3322Smrg		cpu=`echo "$1" | sed -e 's/86.*/86/'`
787edce3322Smrg		vendor=pc
788edce3322Smrg		os=solaris2
789a966c04fSmrg		;;
790edce3322Smrg	j90 | j90-cray)
791edce3322Smrg		cpu=j90
792edce3322Smrg		vendor=cray
793edce3322Smrg		os=${os:-unicos}
794a966c04fSmrg		;;
795a966c04fSmrg	iris | iris4d)
796edce3322Smrg		cpu=mips
797edce3322Smrg		vendor=sgi
798a966c04fSmrg		case $os in
799edce3322Smrg		    irix*)
800a966c04fSmrg			;;
801a966c04fSmrg		    *)
802edce3322Smrg			os=irix4
803a966c04fSmrg			;;
804a966c04fSmrg		esac
805a966c04fSmrg		;;
806a966c04fSmrg	miniframe)
807edce3322Smrg		cpu=m68000
808edce3322Smrg		vendor=convergent
809a966c04fSmrg		;;
810edce3322Smrg	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
811edce3322Smrg		cpu=m68k
812edce3322Smrg		vendor=atari
813edce3322Smrg		os=mint
814a966c04fSmrg		;;
815a966c04fSmrg	news-3600 | risc-news)
816edce3322Smrg		cpu=mips
817edce3322Smrg		vendor=sony
818edce3322Smrg		os=newsos
819a966c04fSmrg		;;
820edce3322Smrg	next | m*-next)
821edce3322Smrg		cpu=m68k
822edce3322Smrg		vendor=next
823a966c04fSmrg		case $os in
824edce3322Smrg		    nextstep* )
825a966c04fSmrg			;;
826edce3322Smrg		    ns2*)
827edce3322Smrg		      os=nextstep2
828a966c04fSmrg			;;
829a966c04fSmrg		    *)
830edce3322Smrg		      os=nextstep3
831a966c04fSmrg			;;
832a966c04fSmrg		esac
833a966c04fSmrg		;;
834a966c04fSmrg	np1)
835edce3322Smrg		cpu=np1
836edce3322Smrg		vendor=gould
837a966c04fSmrg		;;
838a966c04fSmrg	op50n-* | op60c-*)
839edce3322Smrg		cpu=hppa1.1
840edce3322Smrg		vendor=oki
841edce3322Smrg		os=proelf
842a966c04fSmrg		;;
843a966c04fSmrg	pa-hitachi)
844edce3322Smrg		cpu=hppa1.1
845edce3322Smrg		vendor=hitachi
846edce3322Smrg		os=hiuxwe2
8472e2dd055Smrg		;;
848a966c04fSmrg	pbd)
849edce3322Smrg		cpu=sparc
850edce3322Smrg		vendor=tti
851a966c04fSmrg		;;
852a966c04fSmrg	pbb)
853edce3322Smrg		cpu=m68k
854edce3322Smrg		vendor=tti
855a966c04fSmrg		;;
856edce3322Smrg	pc532)
857edce3322Smrg		cpu=ns32k
858edce3322Smrg		vendor=pc532
859a966c04fSmrg		;;
860a966c04fSmrg	pn)
861edce3322Smrg		cpu=pn
862edce3322Smrg		vendor=gould
863a966c04fSmrg		;;
864edce3322Smrg	power)
865edce3322Smrg		cpu=power
866edce3322Smrg		vendor=ibm
867a966c04fSmrg		;;
868a966c04fSmrg	ps2)
869edce3322Smrg		cpu=i386
870edce3322Smrg		vendor=ibm
871a966c04fSmrg		;;
872a966c04fSmrg	rm[46]00)
873edce3322Smrg		cpu=mips
874edce3322Smrg		vendor=siemens
875a966c04fSmrg		;;
876a966c04fSmrg	rtpc | rtpc-*)
877edce3322Smrg		cpu=romp
878edce3322Smrg		vendor=ibm
879a966c04fSmrg		;;
880edce3322Smrg	sde)
881edce3322Smrg		cpu=mipsisa32
882edce3322Smrg		vendor=sde
883edce3322Smrg		os=${os:-elf}
884a966c04fSmrg		;;
885edce3322Smrg	simso-wrs)
886edce3322Smrg		cpu=sparclite
887edce3322Smrg		vendor=wrs
888edce3322Smrg		os=vxworks
889a966c04fSmrg		;;
890edce3322Smrg	tower | tower-32)
891edce3322Smrg		cpu=m68k
892edce3322Smrg		vendor=ncr
8932e2dd055Smrg		;;
894edce3322Smrg	vpp*|vx|vx-*)
895edce3322Smrg		cpu=f301
896edce3322Smrg		vendor=fujitsu
897a966c04fSmrg		;;
898edce3322Smrg	w65)
899edce3322Smrg		cpu=w65
900edce3322Smrg		vendor=wdc
901a966c04fSmrg		;;
902edce3322Smrg	w89k-*)
903edce3322Smrg		cpu=hppa1.1
904edce3322Smrg		vendor=winbond
905edce3322Smrg		os=proelf
906a966c04fSmrg		;;
907edce3322Smrg	none)
908edce3322Smrg		cpu=none
909edce3322Smrg		vendor=none
9102e2dd055Smrg		;;
911edce3322Smrg	leon|leon[3-9])
912edce3322Smrg		cpu=sparc
913edce3322Smrg		vendor=$basic_machine
914a966c04fSmrg		;;
915edce3322Smrg	leon-*|leon[3-9]-*)
916edce3322Smrg		cpu=sparc
917edce3322Smrg		vendor=`echo "$basic_machine" | sed 's/-.*//'`
918a966c04fSmrg		;;
919edce3322Smrg
920edce3322Smrg	*-*)
921edce3322Smrg		IFS="-" read -r cpu vendor <<EOF
922edce3322Smrg$basic_machine
923edce3322SmrgEOF
924a966c04fSmrg		;;
925edce3322Smrg	# We use `pc' rather than `unknown'
926edce3322Smrg	# because (1) that's what they normally are, and
927edce3322Smrg	# (2) the word "unknown" tends to confuse beginning users.
928edce3322Smrg	i*86 | x86_64)
929edce3322Smrg		cpu=$basic_machine
930edce3322Smrg		vendor=pc
931a966c04fSmrg		;;
932edce3322Smrg	# These rules are duplicated from below for sake of the special case above;
933edce3322Smrg	# i.e. things that normalized to x86 arches should also default to "pc"
934edce3322Smrg	pc98)
935edce3322Smrg		cpu=i386
936edce3322Smrg		vendor=pc
937a966c04fSmrg		;;
938edce3322Smrg	x64 | amd64)
939edce3322Smrg		cpu=x86_64
940edce3322Smrg		vendor=pc
941a966c04fSmrg		;;
942edce3322Smrg	# Recognize the basic CPU types without company name.
943edce3322Smrg	*)
944edce3322Smrg		cpu=$basic_machine
945edce3322Smrg		vendor=unknown
946ac92798bSmrg		;;
947edce3322Smrgesac
948edce3322Smrg
949edce3322Smrgunset -v basic_machine
950edce3322Smrg
951edce3322Smrg# Decode basic machines in the full and proper CPU-Company form.
952edce3322Smrgcase $cpu-$vendor in
953edce3322Smrg	# Here we handle the default manufacturer of certain CPU types in cannonical form. It is in
954edce3322Smrg	# some cases the only manufacturer, in others, it is the most popular.
955edce3322Smrg	craynv-unknown)
956edce3322Smrg		vendor=cray
957edce3322Smrg		os=${os:-unicosmp}
958a966c04fSmrg		;;
959edce3322Smrg	c90-unknown | c90-cray)
960edce3322Smrg		vendor=cray
961edce3322Smrg		os=${os:-unicos}
962a966c04fSmrg		;;
963edce3322Smrg	fx80-unknown)
964edce3322Smrg		vendor=alliant
965a966c04fSmrg		;;
966edce3322Smrg	romp-unknown)
967edce3322Smrg		vendor=ibm
968a966c04fSmrg		;;
969edce3322Smrg	mmix-unknown)
970edce3322Smrg		vendor=knuth
971a966c04fSmrg		;;
972edce3322Smrg	microblaze-unknown | microblazeel-unknown)
973edce3322Smrg		vendor=xilinx
974a966c04fSmrg		;;
975edce3322Smrg	rs6000-unknown)
976edce3322Smrg		vendor=ibm
977a966c04fSmrg		;;
978edce3322Smrg	vax-unknown)
979edce3322Smrg		vendor=dec
980a966c04fSmrg		;;
981edce3322Smrg	pdp11-unknown)
982edce3322Smrg		vendor=dec
983a966c04fSmrg		;;
984edce3322Smrg	we32k-unknown)
985edce3322Smrg		vendor=att
986a966c04fSmrg		;;
987edce3322Smrg	cydra-unknown)
988edce3322Smrg		vendor=cydrome
989a966c04fSmrg		;;
990edce3322Smrg	i370-ibm*)
991edce3322Smrg		vendor=ibm
992a966c04fSmrg		;;
993edce3322Smrg	orion-unknown)
994edce3322Smrg		vendor=highlevel
995a966c04fSmrg		;;
996edce3322Smrg	xps-unknown | xps100-unknown)
997edce3322Smrg		cpu=xps100
998edce3322Smrg		vendor=honeywell
999a966c04fSmrg		;;
1000edce3322Smrg
1001edce3322Smrg	# Here we normalize CPU types with a missing or matching vendor
1002edce3322Smrg	dpx20-unknown | dpx20-bull)
1003edce3322Smrg		cpu=rs6000
1004edce3322Smrg		vendor=bull
1005edce3322Smrg		os=${os:-bosx}
1006a966c04fSmrg		;;
1007edce3322Smrg
1008edce3322Smrg	# Here we normalize CPU types irrespective of the vendor
1009edce3322Smrg	amd64-*)
1010edce3322Smrg		cpu=x86_64
10112e2dd055Smrg		;;
1012edce3322Smrg	blackfin-*)
1013edce3322Smrg		cpu=bfin
1014edce3322Smrg		os=linux
1015a966c04fSmrg		;;
1016edce3322Smrg	c54x-*)
1017edce3322Smrg		cpu=tic54x
1018a966c04fSmrg		;;
1019edce3322Smrg	c55x-*)
1020edce3322Smrg		cpu=tic55x
1021a966c04fSmrg		;;
1022edce3322Smrg	c6x-*)
1023edce3322Smrg		cpu=tic6x
1024a966c04fSmrg		;;
1025edce3322Smrg	e500v[12]-*)
1026edce3322Smrg		cpu=powerpc
1027edce3322Smrg		os=$os"spe"
1028a966c04fSmrg		;;
1029edce3322Smrg	mips3*-*)
1030edce3322Smrg		cpu=mips64
1031a966c04fSmrg		;;
1032edce3322Smrg	ms1-*)
1033edce3322Smrg		cpu=mt
1034a966c04fSmrg		;;
1035edce3322Smrg	m68knommu-*)
1036edce3322Smrg		cpu=m68k
1037edce3322Smrg		os=linux
1038a966c04fSmrg		;;
1039edce3322Smrg	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1040edce3322Smrg		cpu=s12z
1041a966c04fSmrg		;;
1042edce3322Smrg	openrisc-*)
1043edce3322Smrg		cpu=or32
1044a966c04fSmrg		;;
1045edce3322Smrg	parisc-*)
1046edce3322Smrg		cpu=hppa
1047edce3322Smrg		os=linux
1048a966c04fSmrg		;;
1049edce3322Smrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1050edce3322Smrg		cpu=i586
1051a966c04fSmrg		;;
1052edce3322Smrg	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
1053edce3322Smrg		cpu=i686
1054a966c04fSmrg		;;
1055edce3322Smrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1056edce3322Smrg		cpu=i686
1057a966c04fSmrg		;;
1058edce3322Smrg	pentium4-*)
1059edce3322Smrg		cpu=i786
1060a966c04fSmrg		;;
1061edce3322Smrg	pc98-*)
1062edce3322Smrg		cpu=i386
1063a966c04fSmrg		;;
1064edce3322Smrg	ppc-* | ppcbe-*)
1065edce3322Smrg		cpu=powerpc
1066a966c04fSmrg		;;
1067edce3322Smrg	ppcle-* | powerpclittle-*)
1068edce3322Smrg		cpu=powerpcle
1069a966c04fSmrg		;;
1070edce3322Smrg	ppc64-*)
1071edce3322Smrg		cpu=powerpc64
1072ac92798bSmrg		;;
1073edce3322Smrg	ppc64le-* | powerpc64little-*)
1074edce3322Smrg		cpu=powerpc64le
1075a966c04fSmrg		;;
1076edce3322Smrg	sb1-*)
1077edce3322Smrg		cpu=mipsisa64sb1
1078a966c04fSmrg		;;
1079edce3322Smrg	sb1el-*)
1080edce3322Smrg		cpu=mipsisa64sb1el
10816e7d3316Smrg		;;
1082edce3322Smrg	sh5e[lb]-*)
1083edce3322Smrg		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
1084a966c04fSmrg		;;
1085edce3322Smrg	spur-*)
1086edce3322Smrg		cpu=spur
1087a966c04fSmrg		;;
1088edce3322Smrg	strongarm-* | thumb-*)
1089edce3322Smrg		cpu=arm
1090a966c04fSmrg		;;
1091edce3322Smrg	tx39-*)
1092edce3322Smrg		cpu=mipstx39
1093a966c04fSmrg		;;
1094edce3322Smrg	tx39el-*)
1095edce3322Smrg		cpu=mipstx39el
1096a966c04fSmrg		;;
1097edce3322Smrg	x64-*)
1098edce3322Smrg		cpu=x86_64
1099a966c04fSmrg		;;
1100edce3322Smrg	xscale-* | xscalee[bl]-*)
1101edce3322Smrg		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
1102a966c04fSmrg		;;
1103edce3322Smrg
1104edce3322Smrg	# Recognize the cannonical CPU Types that limit and/or modify the
1105edce3322Smrg	# company names they are paired with.
1106edce3322Smrg	cr16-*)
1107edce3322Smrg		os=${os:-elf}
1108a966c04fSmrg		;;
1109edce3322Smrg	crisv32-* | etraxfs*-*)
1110edce3322Smrg		cpu=crisv32
1111edce3322Smrg		vendor=axis
1112a966c04fSmrg		;;
1113edce3322Smrg	cris-* | etrax*-*)
1114edce3322Smrg		cpu=cris
1115edce3322Smrg		vendor=axis
1116a966c04fSmrg		;;
1117edce3322Smrg	crx-*)
1118edce3322Smrg		os=${os:-elf}
1119a966c04fSmrg		;;
1120edce3322Smrg	neo-tandem)
1121edce3322Smrg		cpu=neo
1122edce3322Smrg		vendor=tandem
1123a966c04fSmrg		;;
1124edce3322Smrg	nse-tandem)
1125edce3322Smrg		cpu=nse
1126edce3322Smrg		vendor=tandem
1127a966c04fSmrg		;;
1128edce3322Smrg	nsr-tandem)
1129edce3322Smrg		cpu=nsr
1130edce3322Smrg		vendor=tandem
1131a966c04fSmrg		;;
1132edce3322Smrg	nsv-tandem)
1133edce3322Smrg		cpu=nsv
1134edce3322Smrg		vendor=tandem
1135a966c04fSmrg		;;
1136edce3322Smrg	nsx-tandem)
1137edce3322Smrg		cpu=nsx
1138edce3322Smrg		vendor=tandem
1139a966c04fSmrg		;;
1140edce3322Smrg	s390-*)
1141edce3322Smrg		cpu=s390
1142edce3322Smrg		vendor=ibm
1143a966c04fSmrg		;;
1144edce3322Smrg	s390x-*)
1145edce3322Smrg		cpu=s390x
1146edce3322Smrg		vendor=ibm
1147a966c04fSmrg		;;
1148edce3322Smrg	tile*-*)
1149edce3322Smrg		os=${os:-linux-gnu}
1150a966c04fSmrg		;;
1151edce3322Smrg
1152a966c04fSmrg	*)
1153edce3322Smrg		# Recognize the cannonical CPU types that are allowed with any
1154edce3322Smrg		# company name.
1155edce3322Smrg		case $cpu in
1156edce3322Smrg			1750a | 580 \
1157edce3322Smrg			| a29k \
1158edce3322Smrg			| aarch64 | aarch64_be \
1159edce3322Smrg			| abacus \
1160edce3322Smrg			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
1161edce3322Smrg			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
1162edce3322Smrg			| alphapca5[67] | alpha64pca5[67] \
1163edce3322Smrg			| am33_2.0 \
1164edce3322Smrg			| arc | arceb \
1165edce3322Smrg			| arm  | arm[lb]e | arme[lb] | armv* \
1166edce3322Smrg			| avr | avr32 \
1167edce3322Smrg			| asmjs \
1168edce3322Smrg			| ba \
1169edce3322Smrg			| be32 | be64 \
1170edce3322Smrg			| bfin | bs2000 \
1171edce3322Smrg			| c[123]* | c30 | [cjt]90 | c4x \
1172edce3322Smrg			| c8051 | clipper | craynv | csky | cydra \
1173edce3322Smrg			| d10v | d30v | dlx | dsp16xx \
1174edce3322Smrg			| e2k | elxsi | epiphany \
1175edce3322Smrg			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
1176edce3322Smrg			| h8300 | h8500 \
1177edce3322Smrg			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
1178edce3322Smrg			| hexagon \
1179edce3322Smrg			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
1180edce3322Smrg			| ip2k | iq2000 \
1181edce3322Smrg			| k1om \
1182edce3322Smrg			| le32 | le64 \
1183edce3322Smrg			| lm32 \
1184edce3322Smrg			| m32c | m32r | m32rle \
1185edce3322Smrg			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
1186edce3322Smrg			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
1187edce3322Smrg			| m88110 | m88k | maxq | mb | mcore | mep | metag \
1188edce3322Smrg			| microblaze | microblazeel \
1189edce3322Smrg			| mips | mipsbe | mipseb | mipsel | mipsle \
1190edce3322Smrg			| mips16 \
1191edce3322Smrg			| mips64 | mips64el \
1192edce3322Smrg			| mips64octeon | mips64octeonel \
1193edce3322Smrg			| mips64orion | mips64orionel \
1194edce3322Smrg			| mips64r5900 | mips64r5900el \
1195edce3322Smrg			| mips64vr | mips64vrel \
1196edce3322Smrg			| mips64vr4100 | mips64vr4100el \
1197edce3322Smrg			| mips64vr4300 | mips64vr4300el \
1198edce3322Smrg			| mips64vr5000 | mips64vr5000el \
1199edce3322Smrg			| mips64vr5900 | mips64vr5900el \
1200edce3322Smrg			| mipsisa32 | mipsisa32el \
1201edce3322Smrg			| mipsisa32r2 | mipsisa32r2el \
1202edce3322Smrg			| mipsisa32r6 | mipsisa32r6el \
1203edce3322Smrg			| mipsisa64 | mipsisa64el \
1204edce3322Smrg			| mipsisa64r2 | mipsisa64r2el \
1205edce3322Smrg			| mipsisa64r6 | mipsisa64r6el \
1206edce3322Smrg			| mipsisa64sb1 | mipsisa64sb1el \
1207edce3322Smrg			| mipsisa64sr71k | mipsisa64sr71kel \
1208edce3322Smrg			| mipsr5900 | mipsr5900el \
1209edce3322Smrg			| mipstx39 | mipstx39el \
1210edce3322Smrg			| mmix \
1211edce3322Smrg			| mn10200 | mn10300 \
1212edce3322Smrg			| moxie \
1213edce3322Smrg			| mt \
1214edce3322Smrg			| msp430 \
1215edce3322Smrg			| nds32 | nds32le | nds32be \
1216edce3322Smrg			| nfp \
1217edce3322Smrg			| nios | nios2 | nios2eb | nios2el \
1218edce3322Smrg			| none | np1 | ns16k | ns32k \
1219edce3322Smrg			| open8 \
1220edce3322Smrg			| or1k* \
1221edce3322Smrg			| or32 \
1222edce3322Smrg			| orion \
1223edce3322Smrg			| pdp10 | pdp11 | pj | pjl | pn | power \
1224edce3322Smrg			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
1225edce3322Smrg			| pru \
1226edce3322Smrg			| pyramid \
1227edce3322Smrg			| riscv | riscv32 | riscv64 \
1228edce3322Smrg			| rl78 | romp | rs6000 | rx \
1229edce3322Smrg			| score \
1230edce3322Smrg			| sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
1231edce3322Smrg			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
1232edce3322Smrg			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
1233edce3322Smrg			| sparclite \
1234edce3322Smrg			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
1235edce3322Smrg			| spu \
1236edce3322Smrg			| tahoe \
1237edce3322Smrg			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
1238edce3322Smrg			| tron \
1239edce3322Smrg			| ubicom32 \
1240edce3322Smrg			| v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
1241edce3322Smrg			| vax \
1242edce3322Smrg			| visium \
1243edce3322Smrg			| wasm32 \
1244edce3322Smrg			| we32k \
1245edce3322Smrg			| x86 | x86_64 | xc16x | xgate | xps100 \
1246edce3322Smrg			| xstormy16 | xtensa* \
1247edce3322Smrg			| ymp \
1248edce3322Smrg			| z8k | z80)
1249edce3322Smrg				;;
1250edce3322Smrg
1251edce3322Smrg			*)
1252edce3322Smrg				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
1253edce3322Smrg				exit 1
1254edce3322Smrg				;;
1255edce3322Smrg		esac
1256a966c04fSmrg		;;
1257a966c04fSmrgesac
1258a966c04fSmrg
1259a966c04fSmrg# Here we canonicalize certain aliases for manufacturers.
1260edce3322Smrgcase $vendor in
1261edce3322Smrg	digital*)
1262edce3322Smrg		vendor=dec
1263a966c04fSmrg		;;
1264edce3322Smrg	commodore*)
1265edce3322Smrg		vendor=cbm
1266a966c04fSmrg		;;
1267a966c04fSmrg	*)
1268a966c04fSmrg		;;
1269a966c04fSmrgesac
1270a966c04fSmrg
1271a966c04fSmrg# Decode manufacturer-specific aliases for certain operating systems.
1272a966c04fSmrg
1273edce3322Smrgif [ x$os != x ]
1274a966c04fSmrgthen
1275a966c04fSmrgcase $os in
1276edce3322Smrg	# First match some system type aliases that might get confused
1277edce3322Smrg	# with valid system types.
1278edce3322Smrg	# solaris* is a basic system type, with this one exception.
1279edce3322Smrg	auroraux)
1280edce3322Smrg		os=auroraux
12816e7d3316Smrg		;;
1282edce3322Smrg	bluegene*)
1283edce3322Smrg		os=cnk
1284a966c04fSmrg		;;
1285edce3322Smrg	solaris1 | solaris1.*)
1286edce3322Smrg		os=`echo $os | sed -e 's|solaris1|sunos4|'`
1287a966c04fSmrg		;;
1288edce3322Smrg	solaris)
1289edce3322Smrg		os=solaris2
1290a966c04fSmrg		;;
1291edce3322Smrg	unixware*)
1292edce3322Smrg		os=sysv4.2uw
1293a966c04fSmrg		;;
1294edce3322Smrg	gnu/linux*)
1295a966c04fSmrg		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1296a966c04fSmrg		;;
1297edce3322Smrg	# es1800 is here to avoid being matched by es* (a different OS)
1298edce3322Smrg	es1800*)
1299edce3322Smrg		os=ose
1300edce3322Smrg		;;
1301edce3322Smrg	# Some version numbers need modification
1302edce3322Smrg	chorusos*)
1303edce3322Smrg		os=chorusos
1304edce3322Smrg		;;
1305edce3322Smrg	isc)
1306edce3322Smrg		os=isc2.2
1307edce3322Smrg		;;
1308edce3322Smrg	sco6)
1309edce3322Smrg		os=sco5v6
1310edce3322Smrg		;;
1311edce3322Smrg	sco5)
1312edce3322Smrg		os=sco3.2v5
1313edce3322Smrg		;;
1314edce3322Smrg	sco4)
1315edce3322Smrg		os=sco3.2v4
1316edce3322Smrg		;;
1317edce3322Smrg	sco3.2.[4-9]*)
1318edce3322Smrg		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
1319edce3322Smrg		;;
1320edce3322Smrg	sco3.2v[4-9]* | sco5v6*)
1321edce3322Smrg		# Don't forget version if it is 3.2v4 or newer.
1322edce3322Smrg		;;
1323edce3322Smrg	scout)
1324edce3322Smrg		# Don't match below
1325edce3322Smrg		;;
1326edce3322Smrg	sco*)
1327edce3322Smrg		os=sco3.2v2
1328edce3322Smrg		;;
1329edce3322Smrg	psos*)
1330edce3322Smrg		os=psos
1331edce3322Smrg		;;
1332edce3322Smrg	# Now accept the basic system types.
1333a966c04fSmrg	# The portable systems comes first.
1334edce3322Smrg	# Each alternative MUST end in a * to match a version number.
1335edce3322Smrg	# sysv* is not here because it comes later, after sysvr4.
1336edce3322Smrg	gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
1337edce3322Smrg	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
1338edce3322Smrg	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
1339edce3322Smrg	     | sym* | kopensolaris* | plan9* \
1340edce3322Smrg	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
1341edce3322Smrg	     | aos* | aros* | cloudabi* | sortix* \
1342edce3322Smrg	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
1343edce3322Smrg	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
1344edce3322Smrg	     | knetbsd* | mirbsd* | netbsd* \
1345edce3322Smrg	     | bitrig* | openbsd* | solidbsd* | libertybsd* \
1346edce3322Smrg	     | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
1347edce3322Smrg	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
1348edce3322Smrg	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
1349edce3322Smrg	     | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
1350edce3322Smrg	     | chorusrdb* | cegcc* | glidix* \
1351edce3322Smrg	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
1352edce3322Smrg	     | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
1353edce3322Smrg	     | linux-newlib* | linux-musl* | linux-uclibc* \
1354edce3322Smrg	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
1355edce3322Smrg	     | interix* | uwin* | mks* | rhapsody* | darwin* \
1356edce3322Smrg	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
1357edce3322Smrg	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
1358edce3322Smrg	     | os2* | vos* | palmos* | uclinux* | nucleus* \
1359edce3322Smrg	     | morphos* | superux* | rtmk* | windiss* \
1360edce3322Smrg	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
1361edce3322Smrg	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
1362edce3322Smrg	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
1363edce3322Smrg	     | midnightbsd*)
1364a966c04fSmrg	# Remember, each alternative MUST END IN *, to match a version number.
1365a966c04fSmrg		;;
1366edce3322Smrg	qnx*)
1367edce3322Smrg		case $cpu in
1368edce3322Smrg		    x86 | i*86)
1369a966c04fSmrg			;;
1370a966c04fSmrg		    *)
1371edce3322Smrg			os=nto-$os
1372a966c04fSmrg			;;
1373a966c04fSmrg		esac
1374a966c04fSmrg		;;
1375edce3322Smrg	hiux*)
1376edce3322Smrg		os=hiuxwe2
1377a966c04fSmrg		;;
1378edce3322Smrg	nto-qnx*)
1379a966c04fSmrg		;;
1380edce3322Smrg	nto*)
1381edce3322Smrg		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1382a966c04fSmrg		;;
1383edce3322Smrg	sim | xray | os68k* | v88r* \
1384edce3322Smrg	    | windows* | osx | abug | netware* | os9* \
1385edce3322Smrg	    | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
1386a966c04fSmrg		;;
1387edce3322Smrg	linux-dietlibc)
1388edce3322Smrg		os=linux-dietlibc
1389a966c04fSmrg		;;
1390edce3322Smrg	linux*)
1391a966c04fSmrg		os=`echo $os | sed -e 's|linux|linux-gnu|'`
1392a966c04fSmrg		;;
1393edce3322Smrg	lynx*178)
1394edce3322Smrg		os=lynxos178
1395a966c04fSmrg		;;
1396edce3322Smrg	lynx*5)
1397edce3322Smrg		os=lynxos5
1398a966c04fSmrg		;;
1399edce3322Smrg	lynx*)
1400edce3322Smrg		os=lynxos
1401a966c04fSmrg		;;
1402edce3322Smrg	mac*)
1403edce3322Smrg		os=`echo "$os" | sed -e 's|mac|macos|'`
1404a966c04fSmrg		;;
1405edce3322Smrg	opened*)
1406edce3322Smrg		os=openedition
1407a966c04fSmrg		;;
1408edce3322Smrg	os400*)
1409edce3322Smrg		os=os400
1410a966c04fSmrg		;;
1411edce3322Smrg	sunos5*)
1412edce3322Smrg		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
1413a966c04fSmrg		;;
1414edce3322Smrg	sunos6*)
1415edce3322Smrg		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
1416a966c04fSmrg		;;
1417edce3322Smrg	wince*)
1418edce3322Smrg		os=wince
1419a966c04fSmrg		;;
1420edce3322Smrg	utek*)
1421edce3322Smrg		os=bsd
1422a966c04fSmrg		;;
1423edce3322Smrg	dynix*)
1424edce3322Smrg		os=bsd
1425a966c04fSmrg		;;
1426edce3322Smrg	acis*)
1427edce3322Smrg		os=aos
1428a966c04fSmrg		;;
1429edce3322Smrg	atheos*)
1430edce3322Smrg		os=atheos
1431a966c04fSmrg		;;
1432edce3322Smrg	syllable*)
1433edce3322Smrg		os=syllable
1434a966c04fSmrg		;;
1435edce3322Smrg	386bsd)
1436edce3322Smrg		os=bsd
1437a966c04fSmrg		;;
1438edce3322Smrg	ctix* | uts*)
1439edce3322Smrg		os=sysv
1440a966c04fSmrg		;;
1441edce3322Smrg	nova*)
1442edce3322Smrg		os=rtmk-nova
1443edce3322Smrg		;;
1444edce3322Smrg	ns2)
1445edce3322Smrg		os=nextstep2
1446edce3322Smrg		;;
1447edce3322Smrg	nsk*)
1448edce3322Smrg		os=nsk
1449a966c04fSmrg		;;
1450a966c04fSmrg	# Preserve the version number of sinix5.
1451edce3322Smrg	sinix5.*)
1452a966c04fSmrg		os=`echo $os | sed -e 's|sinix|sysv|'`
1453a966c04fSmrg		;;
1454edce3322Smrg	sinix*)
1455edce3322Smrg		os=sysv4
1456a966c04fSmrg		;;
1457edce3322Smrg	tpf*)
1458edce3322Smrg		os=tpf
1459a966c04fSmrg		;;
1460edce3322Smrg	triton*)
1461edce3322Smrg		os=sysv3
1462a966c04fSmrg		;;
1463edce3322Smrg	oss*)
1464edce3322Smrg		os=sysv3
1465a966c04fSmrg		;;
1466edce3322Smrg	svr4*)
1467edce3322Smrg		os=sysv4
1468a966c04fSmrg		;;
1469edce3322Smrg	svr3)
1470edce3322Smrg		os=sysv3
1471a966c04fSmrg		;;
1472edce3322Smrg	sysvr4)
1473edce3322Smrg		os=sysv4
1474a966c04fSmrg		;;
1475edce3322Smrg	# This must come after sysvr4.
1476edce3322Smrg	sysv*)
1477a966c04fSmrg		;;
1478edce3322Smrg	ose*)
1479edce3322Smrg		os=ose
1480a966c04fSmrg		;;
1481edce3322Smrg	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1482edce3322Smrg		os=mint
1483a966c04fSmrg		;;
1484edce3322Smrg	zvmoe)
1485edce3322Smrg		os=zvmoe
1486a966c04fSmrg		;;
1487edce3322Smrg	dicos*)
1488edce3322Smrg		os=dicos
1489a966c04fSmrg		;;
1490edce3322Smrg	pikeos*)
1491edce3322Smrg		# Until real need of OS specific support for
1492edce3322Smrg		# particular features comes up, bare metal
1493edce3322Smrg		# configurations are quite functional.
1494edce3322Smrg		case $cpu in
1495edce3322Smrg		    arm*)
1496edce3322Smrg			os=eabi
1497edce3322Smrg			;;
1498edce3322Smrg		    *)
1499edce3322Smrg			os=elf
1500edce3322Smrg			;;
1501edce3322Smrg		esac
1502a966c04fSmrg		;;
1503edce3322Smrg	nacl*)
1504a966c04fSmrg		;;
1505edce3322Smrg	ios)
15066e7d3316Smrg		;;
1507edce3322Smrg	none)
1508ac92798bSmrg		;;
1509edce3322Smrg	*-eabi)
1510a966c04fSmrg		;;
1511a966c04fSmrg	*)
1512edce3322Smrg		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
1513a966c04fSmrg		exit 1
1514a966c04fSmrg		;;
1515a966c04fSmrgesac
1516a966c04fSmrgelse
1517a966c04fSmrg
1518a966c04fSmrg# Here we handle the default operating systems that come with various machines.
1519a966c04fSmrg# The value should be what the vendor currently ships out the door with their
1520a966c04fSmrg# machine or put another way, the most popular os provided with the machine.
1521a966c04fSmrg
1522a966c04fSmrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
1523a966c04fSmrg# "-sun"), then you have to tell the case statement up towards the top
1524a966c04fSmrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
1525a966c04fSmrg# will signal an error saying that MANUFACTURER isn't an operating
1526a966c04fSmrg# system, and we'll never get to this point.
1527a966c04fSmrg
1528edce3322Smrgcase $cpu-$vendor in
1529ac92798bSmrg	score-*)
1530edce3322Smrg		os=elf
15312e2dd055Smrg		;;
1532ac92798bSmrg	spu-*)
1533edce3322Smrg		os=elf
15342e2dd055Smrg		;;
1535a966c04fSmrg	*-acorn)
1536edce3322Smrg		os=riscix1.2
1537a966c04fSmrg		;;
1538a966c04fSmrg	arm*-rebel)
1539edce3322Smrg		os=linux
1540a966c04fSmrg		;;
1541a966c04fSmrg	arm*-semi)
1542edce3322Smrg		os=aout
1543a966c04fSmrg		;;
1544ac92798bSmrg	c4x-* | tic4x-*)
1545edce3322Smrg		os=coff
1546ac92798bSmrg		;;
15479f00f3a1Smrg	c8051-*)
1548edce3322Smrg		os=elf
1549edce3322Smrg		;;
1550edce3322Smrg	clipper-intergraph)
1551edce3322Smrg		os=clix
15529f00f3a1Smrg		;;
1553ac92798bSmrg	hexagon-*)
1554edce3322Smrg		os=elf
15552e2dd055Smrg		;;
15566e7d3316Smrg	tic54x-*)
1557edce3322Smrg		os=coff
15586e7d3316Smrg		;;
15596e7d3316Smrg	tic55x-*)
1560edce3322Smrg		os=coff
15616e7d3316Smrg		;;
15626e7d3316Smrg	tic6x-*)
1563edce3322Smrg		os=coff
15646e7d3316Smrg		;;
1565a966c04fSmrg	# This must come before the *-dec entry.
1566a966c04fSmrg	pdp10-*)
1567edce3322Smrg		os=tops20
1568a966c04fSmrg		;;
1569a966c04fSmrg	pdp11-*)
1570edce3322Smrg		os=none
1571a966c04fSmrg		;;
1572a966c04fSmrg	*-dec | vax-*)
1573edce3322Smrg		os=ultrix4.2
1574a966c04fSmrg		;;
1575a966c04fSmrg	m68*-apollo)
1576edce3322Smrg		os=domain
1577a966c04fSmrg		;;
1578a966c04fSmrg	i386-sun)
1579edce3322Smrg		os=sunos4.0.2
1580a966c04fSmrg		;;
1581a966c04fSmrg	m68000-sun)
1582edce3322Smrg		os=sunos3
1583a966c04fSmrg		;;
1584a966c04fSmrg	m68*-cisco)
1585edce3322Smrg		os=aout
1586a966c04fSmrg		;;
1587ac92798bSmrg	mep-*)
1588edce3322Smrg		os=elf
15892e2dd055Smrg		;;
1590a966c04fSmrg	mips*-cisco)
1591edce3322Smrg		os=elf
1592a966c04fSmrg		;;
1593a966c04fSmrg	mips*-*)
1594edce3322Smrg		os=elf
1595ac92798bSmrg		;;
1596a966c04fSmrg	or32-*)
1597edce3322Smrg		os=coff
1598a966c04fSmrg		;;
1599a966c04fSmrg	*-tti)	# must be before sparc entry or we get the wrong os.
1600edce3322Smrg		os=sysv3
1601a966c04fSmrg		;;
1602a966c04fSmrg	sparc-* | *-sun)
1603edce3322Smrg		os=sunos4.1.1
1604a966c04fSmrg		;;
1605edce3322Smrg	pru-*)
1606edce3322Smrg		os=elf
1607a966c04fSmrg		;;
1608edce3322Smrg	*-be)
1609edce3322Smrg		os=beos
1610a966c04fSmrg		;;
1611a966c04fSmrg	*-ibm)
1612edce3322Smrg		os=aix
1613a966c04fSmrg		;;
1614ac92798bSmrg	*-knuth)
1615edce3322Smrg		os=mmixware
1616a966c04fSmrg		;;
1617a966c04fSmrg	*-wec)
1618edce3322Smrg		os=proelf
1619a966c04fSmrg		;;
1620a966c04fSmrg	*-winbond)
1621edce3322Smrg		os=proelf
1622a966c04fSmrg		;;
1623a966c04fSmrg	*-oki)
1624edce3322Smrg		os=proelf
1625a966c04fSmrg		;;
1626a966c04fSmrg	*-hp)
1627edce3322Smrg		os=hpux
1628a966c04fSmrg		;;
1629a966c04fSmrg	*-hitachi)
1630edce3322Smrg		os=hiux
1631a966c04fSmrg		;;
1632a966c04fSmrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1633edce3322Smrg		os=sysv
1634a966c04fSmrg		;;
1635a966c04fSmrg	*-cbm)
1636edce3322Smrg		os=amigaos
1637a966c04fSmrg		;;
1638a966c04fSmrg	*-dg)
1639edce3322Smrg		os=dgux
1640a966c04fSmrg		;;
1641a966c04fSmrg	*-dolphin)
1642edce3322Smrg		os=sysv3
1643a966c04fSmrg		;;
1644a966c04fSmrg	m68k-ccur)
1645edce3322Smrg		os=rtu
1646a966c04fSmrg		;;
1647a966c04fSmrg	m88k-omron*)
1648edce3322Smrg		os=luna
1649a966c04fSmrg		;;
1650edce3322Smrg	*-next)
1651edce3322Smrg		os=nextstep
1652a966c04fSmrg		;;
1653a966c04fSmrg	*-sequent)
1654edce3322Smrg		os=ptx
1655a966c04fSmrg		;;
1656a966c04fSmrg	*-crds)
1657edce3322Smrg		os=unos
1658a966c04fSmrg		;;
1659a966c04fSmrg	*-ns)
1660edce3322Smrg		os=genix
1661a966c04fSmrg		;;
1662a966c04fSmrg	i370-*)
1663edce3322Smrg		os=mvs
1664a966c04fSmrg		;;
1665a966c04fSmrg	*-gould)
1666edce3322Smrg		os=sysv
1667a966c04fSmrg		;;
1668a966c04fSmrg	*-highlevel)
1669edce3322Smrg		os=bsd
1670a966c04fSmrg		;;
1671a966c04fSmrg	*-encore)
1672edce3322Smrg		os=bsd
1673a966c04fSmrg		;;
1674a966c04fSmrg	*-sgi)
1675edce3322Smrg		os=irix
1676a966c04fSmrg		;;
1677a966c04fSmrg	*-siemens)
1678edce3322Smrg		os=sysv4
1679a966c04fSmrg		;;
1680a966c04fSmrg	*-masscomp)
1681edce3322Smrg		os=rtu
1682a966c04fSmrg		;;
1683a966c04fSmrg	f30[01]-fujitsu | f700-fujitsu)
1684edce3322Smrg		os=uxpv
1685a966c04fSmrg		;;
1686a966c04fSmrg	*-rom68k)
1687edce3322Smrg		os=coff
1688a966c04fSmrg		;;
1689a966c04fSmrg	*-*bug)
1690edce3322Smrg		os=coff
1691a966c04fSmrg		;;
1692a966c04fSmrg	*-apple)
1693edce3322Smrg		os=macos
1694a966c04fSmrg		;;
1695a966c04fSmrg	*-atari*)
1696edce3322Smrg		os=mint
1697edce3322Smrg		;;
1698edce3322Smrg	*-wrs)
1699edce3322Smrg		os=vxworks
1700a966c04fSmrg		;;
1701a966c04fSmrg	*)
1702edce3322Smrg		os=none
1703a966c04fSmrg		;;
1704a966c04fSmrgesac
1705a966c04fSmrgfi
1706a966c04fSmrg
1707a966c04fSmrg# Here we handle the case where we know the os, and the CPU type, but not the
1708a966c04fSmrg# manufacturer.  We pick the logical manufacturer.
1709edce3322Smrgcase $vendor in
1710edce3322Smrg	unknown)
1711a966c04fSmrg		case $os in
1712edce3322Smrg			riscix*)
1713a966c04fSmrg				vendor=acorn
1714a966c04fSmrg				;;
1715edce3322Smrg			sunos*)
1716a966c04fSmrg				vendor=sun
1717a966c04fSmrg				;;
1718edce3322Smrg			cnk*|-aix*)
1719a966c04fSmrg				vendor=ibm
1720a966c04fSmrg				;;
1721edce3322Smrg			beos*)
1722a966c04fSmrg				vendor=be
1723a966c04fSmrg				;;
1724edce3322Smrg			hpux*)
1725a966c04fSmrg				vendor=hp
1726a966c04fSmrg				;;
1727edce3322Smrg			mpeix*)
1728a966c04fSmrg				vendor=hp
1729a966c04fSmrg				;;
1730edce3322Smrg			hiux*)
1731a966c04fSmrg				vendor=hitachi
1732a966c04fSmrg				;;
1733edce3322Smrg			unos*)
1734a966c04fSmrg				vendor=crds
1735a966c04fSmrg				;;
1736edce3322Smrg			dgux*)
1737a966c04fSmrg				vendor=dg
1738a966c04fSmrg				;;
1739edce3322Smrg			luna*)
1740a966c04fSmrg				vendor=omron
1741a966c04fSmrg				;;
1742edce3322Smrg			genix*)
1743a966c04fSmrg				vendor=ns
1744a966c04fSmrg				;;
1745edce3322Smrg			clix*)
1746edce3322Smrg				vendor=intergraph
1747edce3322Smrg				;;
1748edce3322Smrg			mvs* | opened*)
1749a966c04fSmrg				vendor=ibm
1750a966c04fSmrg				;;
1751edce3322Smrg			os400*)
1752a966c04fSmrg				vendor=ibm
1753a966c04fSmrg				;;
1754edce3322Smrg			ptx*)
1755a966c04fSmrg				vendor=sequent
1756a966c04fSmrg				;;
1757edce3322Smrg			tpf*)
1758a966c04fSmrg				vendor=ibm
1759a966c04fSmrg				;;
1760edce3322Smrg			vxsim* | vxworks* | windiss*)
1761a966c04fSmrg				vendor=wrs
1762a966c04fSmrg				;;
1763edce3322Smrg			aux*)
1764a966c04fSmrg				vendor=apple
1765a966c04fSmrg				;;
1766edce3322Smrg			hms*)
1767a966c04fSmrg				vendor=hitachi
1768a966c04fSmrg				;;
1769edce3322Smrg			mpw* | macos*)
1770a966c04fSmrg				vendor=apple
1771a966c04fSmrg				;;
1772edce3322Smrg			*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1773a966c04fSmrg				vendor=atari
1774a966c04fSmrg				;;
1775edce3322Smrg			vos*)
1776a966c04fSmrg				vendor=stratus
1777a966c04fSmrg				;;
1778a966c04fSmrg		esac
1779a966c04fSmrg		;;
1780a966c04fSmrgesac
1781a966c04fSmrg
1782edce3322Smrgecho "$cpu-$vendor-$os"
1783a966c04fSmrgexit
1784a966c04fSmrg
1785a966c04fSmrg# Local variables:
1786edce3322Smrg# eval: (add-hook 'before-save-hook 'time-stamp)
1787a966c04fSmrg# time-stamp-start: "timestamp='"
1788a966c04fSmrg# time-stamp-format: "%:y-%02m-%02d"
1789a966c04fSmrg# time-stamp-end: "'"
1790a966c04fSmrg# End:
1791