1335640Shselasky#! /bin/sh
2335640Shselasky# Configuration validation subroutine script.
3356341Scy#   Copyright 1992-2018 Free Software Foundation, Inc.
4335640Shselasky
5356341Scytimestamp='2018-07-03'
6335640Shselasky
7335640Shselasky# This file is free software; you can redistribute it and/or modify it
8335640Shselasky# under the terms of the GNU General Public License as published by
9335640Shselasky# the Free Software Foundation; either version 3 of the License, or
10335640Shselasky# (at your option) any later version.
11335640Shselasky#
12335640Shselasky# This program is distributed in the hope that it will be useful, but
13335640Shselasky# WITHOUT ANY WARRANTY; without even the implied warranty of
14335640Shselasky# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15335640Shselasky# General Public License for more details.
16335640Shselasky#
17335640Shselasky# You should have received a copy of the GNU General Public License
18356341Scy# along with this program; if not, see <https://www.gnu.org/licenses/>.
19335640Shselasky#
20335640Shselasky# As a special exception to the GNU General Public License, if you
21335640Shselasky# distribute this file as part of a program that contains a
22335640Shselasky# configuration script generated by Autoconf, you may include it under
23335640Shselasky# the same distribution terms that you use for the rest of that
24335640Shselasky# program.  This Exception is an additional permission under section 7
25335640Shselasky# of the GNU General Public License, version 3 ("GPLv3").
26335640Shselasky
27335640Shselasky
28335640Shselasky# Please send patches to <config-patches@gnu.org>.
29335640Shselasky#
30335640Shselasky# Configuration subroutine to validate and canonicalize a configuration type.
31335640Shselasky# Supply the specified configuration type as an argument.
32335640Shselasky# If it is invalid, we print an error message on stderr and exit with code 1.
33335640Shselasky# Otherwise, we print the canonical config type on stdout and succeed.
34335640Shselasky
35335640Shselasky# You can get the latest version of this script from:
36356341Scy# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
37335640Shselasky
38335640Shselasky# This file is supposed to be the same for all GNU packages
39335640Shselasky# and recognize all the CPU types, system types and aliases
40335640Shselasky# that are meaningful with *any* GNU software.
41335640Shselasky# Each package is responsible for reporting which valid configurations
42335640Shselasky# it does not support.  The user should be able to distinguish
43335640Shselasky# a failure to support a valid configuration from a meaningless
44335640Shselasky# configuration.
45335640Shselasky
46335640Shselasky# The goal of this file is to map all the various variations of a given
47335640Shselasky# machine specification into a single specification in the form:
48335640Shselasky#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
49335640Shselasky# or in some cases, the newer four-part form:
50335640Shselasky#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
51335640Shselasky# It is wrong to echo any other type of specification.
52335640Shselasky
53335640Shselaskyme=`echo "$0" | sed -e 's,.*/,,'`
54335640Shselasky
55335640Shselaskyusage="\
56356341ScyUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
57335640Shselasky
58335640ShselaskyCanonicalize a configuration name.
59335640Shselasky
60356341ScyOptions:
61335640Shselasky  -h, --help         print this help, then exit
62335640Shselasky  -t, --time-stamp   print date of last modification, then exit
63335640Shselasky  -v, --version      print version number, then exit
64335640Shselasky
65335640ShselaskyReport bugs and patches to <config-patches@gnu.org>."
66335640Shselasky
67335640Shselaskyversion="\
68335640ShselaskyGNU config.sub ($timestamp)
69335640Shselasky
70356341ScyCopyright 1992-2018 Free Software Foundation, Inc.
71335640Shselasky
72335640ShselaskyThis is free software; see the source for copying conditions.  There is NO
73335640Shselaskywarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
74335640Shselasky
75335640Shselaskyhelp="
76335640ShselaskyTry \`$me --help' for more information."
77335640Shselasky
78335640Shselasky# Parse command line
79335640Shselaskywhile test $# -gt 0 ; do
80335640Shselasky  case $1 in
81335640Shselasky    --time-stamp | --time* | -t )
82335640Shselasky       echo "$timestamp" ; exit ;;
83335640Shselasky    --version | -v )
84335640Shselasky       echo "$version" ; exit ;;
85335640Shselasky    --help | --h* | -h )
86335640Shselasky       echo "$usage"; exit ;;
87335640Shselasky    -- )     # Stop option processing
88335640Shselasky       shift; break ;;
89335640Shselasky    - )	# Use stdin as input.
90335640Shselasky       break ;;
91335640Shselasky    -* )
92335640Shselasky       echo "$me: invalid option $1$help"
93335640Shselasky       exit 1 ;;
94335640Shselasky
95335640Shselasky    *local*)
96335640Shselasky       # First pass through any local machine types.
97356341Scy       echo "$1"
98335640Shselasky       exit ;;
99335640Shselasky
100335640Shselasky    * )
101335640Shselasky       break ;;
102335640Shselasky  esac
103335640Shselaskydone
104335640Shselasky
105335640Shselaskycase $# in
106335640Shselasky 0) echo "$me: missing argument$help" >&2
107335640Shselasky    exit 1;;
108335640Shselasky 1) ;;
109335640Shselasky *) echo "$me: too many arguments$help" >&2
110335640Shselasky    exit 1;;
111335640Shselaskyesac
112335640Shselasky
113356341Scy# Split fields of configuration type
114356341ScyIFS="-" read -r field1 field2 field3 field4 <<EOF
115356341Scy$1
116356341ScyEOF
117335640Shselasky
118356341Scy# Separate into logical components for further validation
119356341Scycase $1 in
120356341Scy	*-*-*-*-*)
121356341Scy		echo Invalid configuration \`"$1"\': more than four components >&2
122356341Scy		exit 1
123335640Shselasky		;;
124356341Scy	*-*-*-*)
125356341Scy		basic_machine=$field1-$field2
126356341Scy		os=$field3-$field4
127335640Shselasky		;;
128356341Scy	*-*-*)
129356341Scy		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
130356341Scy		# parts
131356341Scy		maybe_os=$field2-$field3
132356341Scy		case $maybe_os in
133356341Scy			nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
134356341Scy			| linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
135356341Scy			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
136356341Scy			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
137356341Scy			| storm-chaos* | os2-emx* | rtmk-nova*)
138356341Scy				basic_machine=$field1
139356341Scy				os=$maybe_os
140356341Scy				;;
141356341Scy			android-linux)
142356341Scy				basic_machine=$field1-unknown
143356341Scy				os=linux-android
144356341Scy				;;
145356341Scy			*)
146356341Scy				basic_machine=$field1-$field2
147356341Scy				os=$field3
148356341Scy				;;
149356341Scy		esac
150335640Shselasky		;;
151356341Scy	*-*)
152356341Scy		# Second component is usually, but not always the OS
153356341Scy		case $field2 in
154356341Scy			# Prevent following clause from handling this valid os
155356341Scy			sun*os*)
156356341Scy				basic_machine=$field1
157356341Scy				os=$field2
158356341Scy				;;
159356341Scy			# Manufacturers
160356341Scy			dec* | mips* | sequent* | encore* | pc532* | sgi* | sony* \
161356341Scy			| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
162356341Scy			| unicom* | ibm* | next | hp | isi* | apollo | altos* \
163356341Scy			| convergent* | ncr* | news | 32* | 3600* | 3100* | hitachi* \
164356341Scy			| c[123]* | convex* | sun | crds | omron* | dg | ultra | tti* \
165356341Scy			| harris | dolphin | highlevel | gould | cbm | ns | masscomp \
166356341Scy			| apple | axis | knuth | cray | microblaze* \
167356341Scy			| sim | cisco | oki | wec | wrs | winbond)
168356341Scy				basic_machine=$field1-$field2
169356341Scy				os=
170356341Scy				;;
171356341Scy			*)
172356341Scy				basic_machine=$field1
173356341Scy				os=$field2
174356341Scy				;;
175356341Scy		esac
176335640Shselasky		;;
177356341Scy	*)
178356341Scy		# Convert single-component short-hands not valid as part of
179356341Scy		# multi-component configurations.
180356341Scy		case $field1 in
181356341Scy			386bsd)
182356341Scy				basic_machine=i386-pc
183356341Scy				os=bsd
184356341Scy				;;
185356341Scy			a29khif)
186356341Scy				basic_machine=a29k-amd
187356341Scy				os=udi
188356341Scy				;;
189356341Scy			adobe68k)
190356341Scy				basic_machine=m68010-adobe
191356341Scy				os=scout
192356341Scy				;;
193356341Scy			am29k)
194356341Scy				basic_machine=a29k-none
195356341Scy				os=bsd
196356341Scy				;;
197356341Scy			amdahl)
198356341Scy				basic_machine=580-amdahl
199356341Scy				os=sysv
200356341Scy				;;
201356341Scy			amigaos | amigados)
202356341Scy				basic_machine=m68k-unknown
203356341Scy				os=amigaos
204356341Scy				;;
205356341Scy			amigaunix | amix)
206356341Scy				basic_machine=m68k-unknown
207356341Scy				os=sysv4
208356341Scy				;;
209356341Scy			apollo68)
210356341Scy				basic_machine=m68k-apollo
211356341Scy				os=sysv
212356341Scy				;;
213356341Scy			apollo68bsd)
214356341Scy				basic_machine=m68k-apollo
215356341Scy				os=bsd
216356341Scy				;;
217356341Scy			aros)
218356341Scy				basic_machine=i386-pc
219356341Scy				os=aros
220356341Scy				;;
221356341Scy			aux)
222356341Scy				basic_machine=m68k-apple
223356341Scy				os=aux
224356341Scy				;;
225356341Scy			balance)
226356341Scy				basic_machine=ns32k-sequent
227356341Scy				os=dynix
228356341Scy				;;
229356341Scy			blackfin)
230356341Scy				basic_machine=bfin-unknown
231356341Scy				os=linux
232356341Scy				;;
233356341Scy			cegcc)
234356341Scy				basic_machine=arm-unknown
235356341Scy				os=cegcc
236356341Scy				;;
237356341Scy			cray)
238356341Scy				basic_machine=j90-cray
239356341Scy				os=unicos
240356341Scy				;;
241356341Scy			craynv)
242356341Scy				basic_machine=craynv-cray
243356341Scy				os=unicosmp
244356341Scy				;;
245356341Scy			delta88)
246356341Scy				basic_machine=m88k-motorola
247356341Scy				os=sysv3
248356341Scy				;;
249356341Scy			dicos)
250356341Scy				basic_machine=i686-pc
251356341Scy				os=dicos
252356341Scy				;;
253356341Scy			djgpp)
254356341Scy				basic_machine=i586-pc
255356341Scy				os=msdosdjgpp
256356341Scy				;;
257356341Scy			ebmon29k)
258356341Scy				basic_machine=a29k-amd
259356341Scy				os=ebmon
260356341Scy				;;
261356341Scy			es1800 | OSE68k | ose68k | ose | OSE)
262356341Scy				basic_machine=m68k-ericsson
263356341Scy				os=ose
264356341Scy				;;
265356341Scy			gmicro)
266356341Scy				basic_machine=tron-gmicro
267356341Scy				os=sysv
268356341Scy				;;
269356341Scy			go32)
270356341Scy				basic_machine=i386-pc
271356341Scy				os=go32
272356341Scy				;;
273356341Scy			h8300hms)
274356341Scy				basic_machine=h8300-hitachi
275356341Scy				os=hms
276356341Scy				;;
277356341Scy			h8300xray)
278356341Scy				basic_machine=h8300-hitachi
279356341Scy				os=xray
280356341Scy				;;
281356341Scy			h8500hms)
282356341Scy				basic_machine=h8500-hitachi
283356341Scy				os=hms
284356341Scy				;;
285356341Scy			harris)
286356341Scy				basic_machine=m88k-harris
287356341Scy				os=sysv3
288356341Scy				;;
289356341Scy			hp300bsd)
290356341Scy				basic_machine=m68k-hp
291356341Scy				os=bsd
292356341Scy				;;
293356341Scy			hp300hpux)
294356341Scy				basic_machine=m68k-hp
295356341Scy				os=hpux
296356341Scy				;;
297356341Scy			hppaosf)
298356341Scy				basic_machine=hppa1.1-hp
299356341Scy				os=osf
300356341Scy				;;
301356341Scy			hppro)
302356341Scy				basic_machine=hppa1.1-hp
303356341Scy				os=proelf
304356341Scy				;;
305356341Scy			i386mach)
306356341Scy				basic_machine=i386-mach
307356341Scy				os=mach
308356341Scy				;;
309356341Scy			vsta)
310356341Scy				basic_machine=i386-unknown
311356341Scy				os=vsta
312356341Scy				;;
313356341Scy			isi68 | isi)
314356341Scy				basic_machine=m68k-isi
315356341Scy				os=sysv
316356341Scy				;;
317356341Scy			m68knommu)
318356341Scy				basic_machine=m68k-unknown
319356341Scy				os=linux
320356341Scy				;;
321356341Scy			magnum | m3230)
322356341Scy				basic_machine=mips-mips
323356341Scy				os=sysv
324356341Scy				;;
325356341Scy			merlin)
326356341Scy				basic_machine=ns32k-utek
327356341Scy				os=sysv
328356341Scy				;;
329356341Scy			mingw64)
330356341Scy				basic_machine=x86_64-pc
331356341Scy				os=mingw64
332356341Scy				;;
333356341Scy			mingw32)
334356341Scy				basic_machine=i686-pc
335356341Scy				os=mingw32
336356341Scy				;;
337356341Scy			mingw32ce)
338356341Scy				basic_machine=arm-unknown
339356341Scy				os=mingw32ce
340356341Scy				;;
341356341Scy			monitor)
342356341Scy				basic_machine=m68k-rom68k
343356341Scy				os=coff
344356341Scy				;;
345356341Scy			morphos)
346356341Scy				basic_machine=powerpc-unknown
347356341Scy				os=morphos
348356341Scy				;;
349356341Scy			moxiebox)
350356341Scy				basic_machine=moxie-unknown
351356341Scy				os=moxiebox
352356341Scy				;;
353356341Scy			msdos)
354356341Scy				basic_machine=i386-pc
355356341Scy				os=msdos
356356341Scy				;;
357356341Scy			msys)
358356341Scy				basic_machine=i686-pc
359356341Scy				os=msys
360356341Scy				;;
361356341Scy			mvs)
362356341Scy				basic_machine=i370-ibm
363356341Scy				os=mvs
364356341Scy				;;
365356341Scy			nacl)
366356341Scy				basic_machine=le32-unknown
367356341Scy				os=nacl
368356341Scy				;;
369356341Scy			ncr3000)
370356341Scy				basic_machine=i486-ncr
371356341Scy				os=sysv4
372356341Scy				;;
373356341Scy			netbsd386)
374356341Scy				basic_machine=i386-unknown
375356341Scy				os=netbsd
376356341Scy				;;
377356341Scy			netwinder)
378356341Scy				basic_machine=armv4l-rebel
379356341Scy				os=linux
380356341Scy				;;
381356341Scy			news | news700 | news800 | news900)
382356341Scy				basic_machine=m68k-sony
383356341Scy				os=newsos
384356341Scy				;;
385356341Scy			news1000)
386356341Scy				basic_machine=m68030-sony
387356341Scy				os=newsos
388356341Scy				;;
389356341Scy			necv70)
390356341Scy				basic_machine=v70-nec
391356341Scy				os=sysv
392356341Scy				;;
393356341Scy			nh3000)
394356341Scy				basic_machine=m68k-harris
395356341Scy				os=cxux
396356341Scy				;;
397356341Scy			nh[45]000)
398356341Scy				basic_machine=m88k-harris
399356341Scy				os=cxux
400356341Scy				;;
401356341Scy			nindy960)
402356341Scy				basic_machine=i960-intel
403356341Scy				os=nindy
404356341Scy				;;
405356341Scy			mon960)
406356341Scy				basic_machine=i960-intel
407356341Scy				os=mon960
408356341Scy				;;
409356341Scy			nonstopux)
410356341Scy				basic_machine=mips-compaq
411356341Scy				os=nonstopux
412356341Scy				;;
413356341Scy			os400)
414356341Scy				basic_machine=powerpc-ibm
415356341Scy				os=os400
416356341Scy				;;
417356341Scy			OSE68000 | ose68000)
418356341Scy				basic_machine=m68000-ericsson
419356341Scy				os=ose
420356341Scy				;;
421356341Scy			os68k)
422356341Scy				basic_machine=m68k-none
423356341Scy				os=os68k
424356341Scy				;;
425356341Scy			paragon)
426356341Scy				basic_machine=i860-intel
427356341Scy				os=osf
428356341Scy				;;
429356341Scy			parisc)
430356341Scy				basic_machine=hppa-unknown
431356341Scy				os=linux
432356341Scy				;;
433356341Scy			pw32)
434356341Scy				basic_machine=i586-unknown
435356341Scy				os=pw32
436356341Scy				;;
437356341Scy			rdos | rdos64)
438356341Scy				basic_machine=x86_64-pc
439356341Scy				os=rdos
440356341Scy				;;
441356341Scy			rdos32)
442356341Scy				basic_machine=i386-pc
443356341Scy				os=rdos
444356341Scy				;;
445356341Scy			rom68k)
446356341Scy				basic_machine=m68k-rom68k
447356341Scy				os=coff
448356341Scy				;;
449356341Scy			sa29200)
450356341Scy				basic_machine=a29k-amd
451356341Scy				os=udi
452356341Scy				;;
453356341Scy			sei)
454356341Scy				basic_machine=mips-sei
455356341Scy				os=seiux
456356341Scy				;;
457356341Scy			sps7)
458356341Scy				basic_machine=m68k-bull
459356341Scy				os=sysv2
460356341Scy				;;
461356341Scy			stratus)
462356341Scy				basic_machine=i860-stratus
463356341Scy				os=sysv4
464356341Scy				;;
465356341Scy			sun2os3)
466356341Scy				basic_machine=m68000-sun
467356341Scy				os=sunos3
468356341Scy				;;
469356341Scy			sun2os4)
470356341Scy				basic_machine=m68000-sun
471356341Scy				os=sunos4
472356341Scy				;;
473356341Scy			sun3os3)
474356341Scy				basic_machine=m68k-sun
475356341Scy				os=sunos3
476356341Scy				;;
477356341Scy			sun3os4)
478356341Scy				basic_machine=m68k-sun
479356341Scy				os=sunos4
480356341Scy				;;
481356341Scy			sun4os3)
482356341Scy				basic_machine=sparc-sun
483356341Scy				os=sunos3
484356341Scy				;;
485356341Scy			sun4os4)
486356341Scy				basic_machine=sparc-sun
487356341Scy				os=sunos4
488356341Scy				;;
489356341Scy			sun4sol2)
490356341Scy				basic_machine=sparc-sun
491356341Scy				os=solaris2
492356341Scy				;;
493356341Scy			sv1)
494356341Scy				basic_machine=sv1-cray
495356341Scy				os=unicos
496356341Scy				;;
497356341Scy			symmetry)
498356341Scy				basic_machine=i386-sequent
499356341Scy				os=dynix
500356341Scy				;;
501356341Scy			t3e)
502356341Scy				basic_machine=alphaev5-cray
503356341Scy				os=unicos
504356341Scy				;;
505356341Scy			t90)
506356341Scy				basic_machine=t90-cray
507356341Scy				os=unicos
508356341Scy				;;
509356341Scy			toad1)
510356341Scy				basic_machine=pdp10-xkl
511356341Scy				os=tops20
512356341Scy				;;
513356341Scy			tpf)
514356341Scy				basic_machine=s390x-ibm
515356341Scy				os=tpf
516356341Scy				;;
517356341Scy			udi29k)
518356341Scy				basic_machine=a29k-amd
519356341Scy				os=udi
520356341Scy				;;
521356341Scy			ultra3)
522356341Scy				basic_machine=a29k-nyu
523356341Scy				os=sym1
524356341Scy				;;
525356341Scy			v810 | necv810)
526356341Scy				basic_machine=v810-nec
527356341Scy				os=none
528356341Scy				;;
529356341Scy			vaxv)
530356341Scy				basic_machine=vax-dec
531356341Scy				os=sysv
532356341Scy				;;
533356341Scy			vms)
534356341Scy				basic_machine=vax-dec
535356341Scy				os=vms
536356341Scy				;;
537356341Scy			vxworks960)
538356341Scy				basic_machine=i960-wrs
539356341Scy				os=vxworks
540356341Scy				;;
541356341Scy			vxworks68)
542356341Scy				basic_machine=m68k-wrs
543356341Scy				os=vxworks
544356341Scy				;;
545356341Scy			vxworks29k)
546356341Scy				basic_machine=a29k-wrs
547356341Scy				os=vxworks
548356341Scy				;;
549356341Scy			xbox)
550356341Scy				basic_machine=i686-pc
551356341Scy				os=mingw32
552356341Scy				;;
553356341Scy			ymp)
554356341Scy				basic_machine=ymp-cray
555356341Scy				os=unicos
556356341Scy				;;
557356341Scy			*)
558356341Scy				basic_machine=$1
559356341Scy				os=
560356341Scy				;;
561356341Scy		esac
562335640Shselasky		;;
563335640Shselaskyesac
564335640Shselasky
565335640Shselasky# Decode aliases for certain CPU-COMPANY combinations.
566335640Shselaskycase $basic_machine in
567335640Shselasky	# Recognize the basic CPU types without company name.
568335640Shselasky	# Some are omitted here because they have special meanings below.
569335640Shselasky	1750a | 580 \
570335640Shselasky	| a29k \
571335640Shselasky	| aarch64 | aarch64_be \
572335640Shselasky	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
573335640Shselasky	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
574335640Shselasky	| am33_2.0 \
575335640Shselasky	| arc | arceb \
576356341Scy	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \
577335640Shselasky	| avr | avr32 \
578356341Scy	| ba \
579335640Shselasky	| be32 | be64 \
580335640Shselasky	| bfin \
581356341Scy	| c4x | c8051 | clipper | csky \
582335640Shselasky	| d10v | d30v | dlx | dsp16xx \
583356341Scy	| e2k | epiphany \
584335640Shselasky	| fido | fr30 | frv | ft32 \
585335640Shselasky	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
586335640Shselasky	| hexagon \
587356341Scy	| i370 | i860 | i960 | ia16 | ia64 \
588335640Shselasky	| ip2k | iq2000 \
589335640Shselasky	| k1om \
590335640Shselasky	| le32 | le64 \
591335640Shselasky	| lm32 \
592335640Shselasky	| m32c | m32r | m32rle | m68000 | m68k | m88k \
593335640Shselasky	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
594335640Shselasky	| mips | mipsbe | mipseb | mipsel | mipsle \
595335640Shselasky	| mips16 \
596335640Shselasky	| mips64 | mips64el \
597335640Shselasky	| mips64octeon | mips64octeonel \
598335640Shselasky	| mips64orion | mips64orionel \
599335640Shselasky	| mips64r5900 | mips64r5900el \
600335640Shselasky	| mips64vr | mips64vrel \
601335640Shselasky	| mips64vr4100 | mips64vr4100el \
602335640Shselasky	| mips64vr4300 | mips64vr4300el \
603335640Shselasky	| mips64vr5000 | mips64vr5000el \
604335640Shselasky	| mips64vr5900 | mips64vr5900el \
605335640Shselasky	| mipsisa32 | mipsisa32el \
606335640Shselasky	| mipsisa32r2 | mipsisa32r2el \
607335640Shselasky	| mipsisa32r6 | mipsisa32r6el \
608335640Shselasky	| mipsisa64 | mipsisa64el \
609335640Shselasky	| mipsisa64r2 | mipsisa64r2el \
610335640Shselasky	| mipsisa64r6 | mipsisa64r6el \
611335640Shselasky	| mipsisa64sb1 | mipsisa64sb1el \
612335640Shselasky	| mipsisa64sr71k | mipsisa64sr71kel \
613335640Shselasky	| mipsr5900 | mipsr5900el \
614335640Shselasky	| mipstx39 | mipstx39el \
615335640Shselasky	| mn10200 | mn10300 \
616335640Shselasky	| moxie \
617335640Shselasky	| mt \
618335640Shselasky	| msp430 \
619335640Shselasky	| nds32 | nds32le | nds32be \
620356341Scy	| nfp \
621335640Shselasky	| nios | nios2 | nios2eb | nios2el \
622335640Shselasky	| ns16k | ns32k \
623335640Shselasky	| open8 | or1k | or1knd | or32 \
624356341Scy	| pdp10 | pj | pjl \
625335640Shselasky	| powerpc | powerpc64 | powerpc64le | powerpcle \
626356341Scy	| pru \
627335640Shselasky	| pyramid \
628356341Scy	| riscv | riscv32 | riscv64 \
629335640Shselasky	| rl78 | rx \
630335640Shselasky	| score \
631356341Scy	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
632335640Shselasky	| sh64 | sh64le \
633335640Shselasky	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
634335640Shselasky	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
635335640Shselasky	| spu \
636335640Shselasky	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
637335640Shselasky	| ubicom32 \
638335640Shselasky	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
639335640Shselasky	| visium \
640356341Scy	| wasm32 \
641335640Shselasky	| x86 | xc16x | xstormy16 | xtensa \
642335640Shselasky	| z8k | z80)
643335640Shselasky		basic_machine=$basic_machine-unknown
644335640Shselasky		;;
645335640Shselasky	c54x)
646335640Shselasky		basic_machine=tic54x-unknown
647335640Shselasky		;;
648335640Shselasky	c55x)
649335640Shselasky		basic_machine=tic55x-unknown
650335640Shselasky		;;
651335640Shselasky	c6x)
652335640Shselasky		basic_machine=tic6x-unknown
653335640Shselasky		;;
654335640Shselasky	leon|leon[3-9])
655335640Shselasky		basic_machine=sparc-$basic_machine
656335640Shselasky		;;
657335640Shselasky	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
658335640Shselasky		basic_machine=$basic_machine-unknown
659356341Scy		os=${os:-none}
660335640Shselasky		;;
661356341Scy	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
662335640Shselasky		;;
663356341Scy	m9s12z | m68hcs12z | hcs12z | s12z)
664356341Scy		basic_machine=s12z-unknown
665356341Scy		os=${os:-none}
666356341Scy		;;
667335640Shselasky	ms1)
668335640Shselasky		basic_machine=mt-unknown
669335640Shselasky		;;
670335640Shselasky	strongarm | thumb | xscale)
671335640Shselasky		basic_machine=arm-unknown
672335640Shselasky		;;
673335640Shselasky	xgate)
674335640Shselasky		basic_machine=$basic_machine-unknown
675356341Scy		os=${os:-none}
676335640Shselasky		;;
677335640Shselasky	xscaleeb)
678335640Shselasky		basic_machine=armeb-unknown
679335640Shselasky		;;
680335640Shselasky
681335640Shselasky	xscaleel)
682335640Shselasky		basic_machine=armel-unknown
683335640Shselasky		;;
684335640Shselasky
685335640Shselasky	# We use `pc' rather than `unknown'
686335640Shselasky	# because (1) that's what they normally are, and
687335640Shselasky	# (2) the word "unknown" tends to confuse beginning users.
688335640Shselasky	i*86 | x86_64)
689335640Shselasky	  basic_machine=$basic_machine-pc
690335640Shselasky	  ;;
691335640Shselasky	# Recognize the basic CPU types with company name.
692335640Shselasky	580-* \
693335640Shselasky	| a29k-* \
694335640Shselasky	| aarch64-* | aarch64_be-* \
695335640Shselasky	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
696335640Shselasky	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
697335640Shselasky	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
698335640Shselasky	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
699335640Shselasky	| avr-* | avr32-* \
700356341Scy	| ba-* \
701335640Shselasky	| be32-* | be64-* \
702335640Shselasky	| bfin-* | bs2000-* \
703335640Shselasky	| c[123]* | c30-* | [cjt]90-* | c4x-* \
704356341Scy	| c8051-* | clipper-* | craynv-* | csky-* | cydra-* \
705335640Shselasky	| d10v-* | d30v-* | dlx-* \
706356341Scy	| e2k-* | elxsi-* \
707335640Shselasky	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
708335640Shselasky	| h8300-* | h8500-* \
709335640Shselasky	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
710335640Shselasky	| hexagon-* \
711356341Scy	| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
712335640Shselasky	| ip2k-* | iq2000-* \
713335640Shselasky	| k1om-* \
714335640Shselasky	| le32-* | le64-* \
715335640Shselasky	| lm32-* \
716335640Shselasky	| m32c-* | m32r-* | m32rle-* \
717335640Shselasky	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
718335640Shselasky	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
719335640Shselasky	| microblaze-* | microblazeel-* \
720335640Shselasky	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
721335640Shselasky	| mips16-* \
722335640Shselasky	| mips64-* | mips64el-* \
723335640Shselasky	| mips64octeon-* | mips64octeonel-* \
724335640Shselasky	| mips64orion-* | mips64orionel-* \
725335640Shselasky	| mips64r5900-* | mips64r5900el-* \
726335640Shselasky	| mips64vr-* | mips64vrel-* \
727335640Shselasky	| mips64vr4100-* | mips64vr4100el-* \
728335640Shselasky	| mips64vr4300-* | mips64vr4300el-* \
729335640Shselasky	| mips64vr5000-* | mips64vr5000el-* \
730335640Shselasky	| mips64vr5900-* | mips64vr5900el-* \
731335640Shselasky	| mipsisa32-* | mipsisa32el-* \
732335640Shselasky	| mipsisa32r2-* | mipsisa32r2el-* \
733335640Shselasky	| mipsisa32r6-* | mipsisa32r6el-* \
734335640Shselasky	| mipsisa64-* | mipsisa64el-* \
735335640Shselasky	| mipsisa64r2-* | mipsisa64r2el-* \
736335640Shselasky	| mipsisa64r6-* | mipsisa64r6el-* \
737335640Shselasky	| mipsisa64sb1-* | mipsisa64sb1el-* \
738335640Shselasky	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
739335640Shselasky	| mipsr5900-* | mipsr5900el-* \
740335640Shselasky	| mipstx39-* | mipstx39el-* \
741335640Shselasky	| mmix-* \
742335640Shselasky	| mt-* \
743335640Shselasky	| msp430-* \
744335640Shselasky	| nds32-* | nds32le-* | nds32be-* \
745356341Scy	| nfp-* \
746335640Shselasky	| nios-* | nios2-* | nios2eb-* | nios2el-* \
747335640Shselasky	| none-* | np1-* | ns16k-* | ns32k-* \
748335640Shselasky	| open8-* \
749335640Shselasky	| or1k*-* \
750335640Shselasky	| orion-* \
751335640Shselasky	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
752335640Shselasky	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
753356341Scy	| pru-* \
754335640Shselasky	| pyramid-* \
755356341Scy	| riscv-* | riscv32-* | riscv64-* \
756335640Shselasky	| rl78-* | romp-* | rs6000-* | rx-* \
757335640Shselasky	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
758335640Shselasky	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
759335640Shselasky	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
760335640Shselasky	| sparclite-* \
761356341Scy	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
762335640Shselasky	| tahoe-* \
763335640Shselasky	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
764335640Shselasky	| tile*-* \
765335640Shselasky	| tron-* \
766335640Shselasky	| ubicom32-* \
767335640Shselasky	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
768335640Shselasky	| vax-* \
769335640Shselasky	| visium-* \
770356341Scy	| wasm32-* \
771335640Shselasky	| we32k-* \
772335640Shselasky	| x86-* | x86_64-* | xc16x-* | xps100-* \
773335640Shselasky	| xstormy16-* | xtensa*-* \
774335640Shselasky	| ymp-* \
775335640Shselasky	| z8k-* | z80-*)
776335640Shselasky		;;
777335640Shselasky	# Recognize the basic CPU types without company name, with glob match.
778335640Shselasky	xtensa*)
779335640Shselasky		basic_machine=$basic_machine-unknown
780335640Shselasky		;;
781335640Shselasky	# Recognize the various machine names and aliases which stand
782335640Shselasky	# for a CPU type and a company and sometimes even an OS.
783335640Shselasky	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
784335640Shselasky		basic_machine=m68000-att
785335640Shselasky		;;
786335640Shselasky	3b*)
787335640Shselasky		basic_machine=we32k-att
788335640Shselasky		;;
789335640Shselasky	abacus)
790335640Shselasky		basic_machine=abacus-unknown
791335640Shselasky		;;
792335640Shselasky	alliant | fx80)
793335640Shselasky		basic_machine=fx80-alliant
794335640Shselasky		;;
795335640Shselasky	altos | altos3068)
796335640Shselasky		basic_machine=m68k-altos
797335640Shselasky		;;
798335640Shselasky	amd64)
799335640Shselasky		basic_machine=x86_64-pc
800335640Shselasky		;;
801335640Shselasky	amd64-*)
802356341Scy		basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
803335640Shselasky		;;
804335640Shselasky	amiga | amiga-*)
805335640Shselasky		basic_machine=m68k-unknown
806335640Shselasky		;;
807356341Scy	asmjs)
808356341Scy		basic_machine=asmjs-unknown
809335640Shselasky		;;
810335640Shselasky	blackfin-*)
811356341Scy		basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
812356341Scy		os=linux
813335640Shselasky		;;
814335640Shselasky	bluegene*)
815335640Shselasky		basic_machine=powerpc-ibm
816356341Scy		os=cnk
817335640Shselasky		;;
818335640Shselasky	c54x-*)
819356341Scy		basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
820335640Shselasky		;;
821335640Shselasky	c55x-*)
822356341Scy		basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
823335640Shselasky		;;
824335640Shselasky	c6x-*)
825356341Scy		basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
826335640Shselasky		;;
827335640Shselasky	c90)
828335640Shselasky		basic_machine=c90-cray
829356341Scy		os=${os:-unicos}
830335640Shselasky		;;
831335640Shselasky	convex-c1)
832335640Shselasky		basic_machine=c1-convex
833356341Scy		os=bsd
834335640Shselasky		;;
835335640Shselasky	convex-c2)
836335640Shselasky		basic_machine=c2-convex
837356341Scy		os=bsd
838335640Shselasky		;;
839335640Shselasky	convex-c32)
840335640Shselasky		basic_machine=c32-convex
841356341Scy		os=bsd
842335640Shselasky		;;
843335640Shselasky	convex-c34)
844335640Shselasky		basic_machine=c34-convex
845356341Scy		os=bsd
846335640Shselasky		;;
847335640Shselasky	convex-c38)
848335640Shselasky		basic_machine=c38-convex
849356341Scy		os=bsd
850335640Shselasky		;;
851335640Shselasky	cr16 | cr16-*)
852335640Shselasky		basic_machine=cr16-unknown
853356341Scy		os=${os:-elf}
854335640Shselasky		;;
855335640Shselasky	crds | unos)
856335640Shselasky		basic_machine=m68k-crds
857335640Shselasky		;;
858335640Shselasky	crisv32 | crisv32-* | etraxfs*)
859335640Shselasky		basic_machine=crisv32-axis
860335640Shselasky		;;
861335640Shselasky	cris | cris-* | etrax*)
862335640Shselasky		basic_machine=cris-axis
863335640Shselasky		;;
864335640Shselasky	crx)
865335640Shselasky		basic_machine=crx-unknown
866356341Scy		os=${os:-elf}
867335640Shselasky		;;
868335640Shselasky	da30 | da30-*)
869335640Shselasky		basic_machine=m68k-da30
870335640Shselasky		;;
871335640Shselasky	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
872335640Shselasky		basic_machine=mips-dec
873335640Shselasky		;;
874335640Shselasky	decsystem10* | dec10*)
875335640Shselasky		basic_machine=pdp10-dec
876356341Scy		os=tops10
877335640Shselasky		;;
878335640Shselasky	decsystem20* | dec20*)
879335640Shselasky		basic_machine=pdp10-dec
880356341Scy		os=tops20
881335640Shselasky		;;
882335640Shselasky	delta | 3300 | motorola-3300 | motorola-delta \
883335640Shselasky	      | 3300-motorola | delta-motorola)
884335640Shselasky		basic_machine=m68k-motorola
885335640Shselasky		;;
886335640Shselasky	dpx20 | dpx20-*)
887335640Shselasky		basic_machine=rs6000-bull
888356341Scy		os=${os:-bosx}
889335640Shselasky		;;
890356341Scy	dpx2*)
891335640Shselasky		basic_machine=m68k-bull
892356341Scy		os=sysv3
893335640Shselasky		;;
894356341Scy	e500v[12])
895356341Scy		basic_machine=powerpc-unknown
896356341Scy		os=$os"spe"
897335640Shselasky		;;
898356341Scy	e500v[12]-*)
899356341Scy		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
900356341Scy		os=$os"spe"
901335640Shselasky		;;
902335640Shselasky	encore | umax | mmax)
903335640Shselasky		basic_machine=ns32k-encore
904335640Shselasky		;;
905356341Scy	elxsi)
906356341Scy		basic_machine=elxsi-elxsi
907356341Scy		os=${os:-bsd}
908335640Shselasky		;;
909335640Shselasky	fx2800)
910335640Shselasky		basic_machine=i860-alliant
911335640Shselasky		;;
912335640Shselasky	genix)
913335640Shselasky		basic_machine=ns32k-ns
914335640Shselasky		;;
915335640Shselasky	h3050r* | hiux*)
916335640Shselasky		basic_machine=hppa1.1-hitachi
917356341Scy		os=hiuxwe2
918335640Shselasky		;;
919335640Shselasky	hp300-*)
920335640Shselasky		basic_machine=m68k-hp
921335640Shselasky		;;
922335640Shselasky	hp3k9[0-9][0-9] | hp9[0-9][0-9])
923335640Shselasky		basic_machine=hppa1.0-hp
924335640Shselasky		;;
925335640Shselasky	hp9k2[0-9][0-9] | hp9k31[0-9])
926335640Shselasky		basic_machine=m68000-hp
927335640Shselasky		;;
928335640Shselasky	hp9k3[2-9][0-9])
929335640Shselasky		basic_machine=m68k-hp
930335640Shselasky		;;
931335640Shselasky	hp9k6[0-9][0-9] | hp6[0-9][0-9])
932335640Shselasky		basic_machine=hppa1.0-hp
933335640Shselasky		;;
934335640Shselasky	hp9k7[0-79][0-9] | hp7[0-79][0-9])
935335640Shselasky		basic_machine=hppa1.1-hp
936335640Shselasky		;;
937335640Shselasky	hp9k78[0-9] | hp78[0-9])
938335640Shselasky		# FIXME: really hppa2.0-hp
939335640Shselasky		basic_machine=hppa1.1-hp
940335640Shselasky		;;
941335640Shselasky	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
942335640Shselasky		# FIXME: really hppa2.0-hp
943335640Shselasky		basic_machine=hppa1.1-hp
944335640Shselasky		;;
945335640Shselasky	hp9k8[0-9][13679] | hp8[0-9][13679])
946335640Shselasky		basic_machine=hppa1.1-hp
947335640Shselasky		;;
948335640Shselasky	hp9k8[0-9][0-9] | hp8[0-9][0-9])
949335640Shselasky		basic_machine=hppa1.0-hp
950335640Shselasky		;;
951335640Shselasky	i370-ibm* | ibm*)
952335640Shselasky		basic_machine=i370-ibm
953335640Shselasky		;;
954335640Shselasky	i*86v32)
955356341Scy		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
956356341Scy		os=sysv32
957335640Shselasky		;;
958335640Shselasky	i*86v4*)
959356341Scy		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
960356341Scy		os=sysv4
961335640Shselasky		;;
962335640Shselasky	i*86v)
963356341Scy		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
964356341Scy		os=sysv
965335640Shselasky		;;
966335640Shselasky	i*86sol2)
967356341Scy		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
968356341Scy		os=solaris2
969335640Shselasky		;;
970356341Scy	j90 | j90-cray)
971356341Scy		basic_machine=j90-cray
972356341Scy		os=${os:-unicos}
973335640Shselasky		;;
974335640Shselasky	iris | iris4d)
975335640Shselasky		basic_machine=mips-sgi
976335640Shselasky		case $os in
977356341Scy		    irix*)
978335640Shselasky			;;
979335640Shselasky		    *)
980356341Scy			os=irix4
981335640Shselasky			;;
982335640Shselasky		esac
983335640Shselasky		;;
984335640Shselasky	leon-*|leon[3-9]-*)
985356341Scy		basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
986335640Shselasky		;;
987335640Shselasky	m68knommu-*)
988356341Scy		basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
989356341Scy		os=linux
990335640Shselasky		;;
991335640Shselasky	microblaze*)
992335640Shselasky		basic_machine=microblaze-xilinx
993335640Shselasky		;;
994335640Shselasky	miniframe)
995335640Shselasky		basic_machine=m68000-convergent
996335640Shselasky		;;
997356341Scy	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
998335640Shselasky		basic_machine=m68k-atari
999356341Scy		os=mint
1000335640Shselasky		;;
1001335640Shselasky	mips3*-*)
1002356341Scy		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
1003335640Shselasky		;;
1004335640Shselasky	mips3*)
1005356341Scy		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
1006335640Shselasky		;;
1007335640Shselasky	ms1-*)
1008356341Scy		basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
1009335640Shselasky		;;
1010335640Shselasky	news-3600 | risc-news)
1011335640Shselasky		basic_machine=mips-sony
1012356341Scy		os=newsos
1013335640Shselasky		;;
1014356341Scy	next | m*-next)
1015335640Shselasky		basic_machine=m68k-next
1016335640Shselasky		case $os in
1017356341Scy		    nextstep* )
1018335640Shselasky			;;
1019356341Scy		    ns2*)
1020356341Scy		      os=nextstep2
1021335640Shselasky			;;
1022335640Shselasky		    *)
1023356341Scy		      os=nextstep3
1024335640Shselasky			;;
1025335640Shselasky		esac
1026335640Shselasky		;;
1027335640Shselasky	np1)
1028335640Shselasky		basic_machine=np1-gould
1029335640Shselasky		;;
1030335640Shselasky	neo-tandem)
1031335640Shselasky		basic_machine=neo-tandem
1032335640Shselasky		;;
1033335640Shselasky	nse-tandem)
1034335640Shselasky		basic_machine=nse-tandem
1035335640Shselasky		;;
1036335640Shselasky	nsr-tandem)
1037335640Shselasky		basic_machine=nsr-tandem
1038335640Shselasky		;;
1039356341Scy	nsv-tandem)
1040356341Scy		basic_machine=nsv-tandem
1041356341Scy		;;
1042356341Scy	nsx-tandem)
1043356341Scy		basic_machine=nsx-tandem
1044356341Scy		;;
1045335640Shselasky	op50n-* | op60c-*)
1046335640Shselasky		basic_machine=hppa1.1-oki
1047356341Scy		os=proelf
1048335640Shselasky		;;
1049335640Shselasky	openrisc | openrisc-*)
1050335640Shselasky		basic_machine=or32-unknown
1051335640Shselasky		;;
1052335640Shselasky	pa-hitachi)
1053335640Shselasky		basic_machine=hppa1.1-hitachi
1054356341Scy		os=hiuxwe2
1055335640Shselasky		;;
1056335640Shselasky	parisc-*)
1057356341Scy		basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1058356341Scy		os=linux
1059335640Shselasky		;;
1060335640Shselasky	pbd)
1061335640Shselasky		basic_machine=sparc-tti
1062335640Shselasky		;;
1063335640Shselasky	pbb)
1064335640Shselasky		basic_machine=m68k-tti
1065335640Shselasky		;;
1066335640Shselasky	pc532 | pc532-*)
1067335640Shselasky		basic_machine=ns32k-pc532
1068335640Shselasky		;;
1069335640Shselasky	pc98)
1070335640Shselasky		basic_machine=i386-pc
1071335640Shselasky		;;
1072335640Shselasky	pc98-*)
1073356341Scy		basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1074335640Shselasky		;;
1075335640Shselasky	pentium | p5 | k5 | k6 | nexgen | viac3)
1076335640Shselasky		basic_machine=i586-pc
1077335640Shselasky		;;
1078335640Shselasky	pentiumpro | p6 | 6x86 | athlon | athlon_*)
1079335640Shselasky		basic_machine=i686-pc
1080335640Shselasky		;;
1081335640Shselasky	pentiumii | pentium2 | pentiumiii | pentium3)
1082335640Shselasky		basic_machine=i686-pc
1083335640Shselasky		;;
1084335640Shselasky	pentium4)
1085335640Shselasky		basic_machine=i786-pc
1086335640Shselasky		;;
1087335640Shselasky	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1088356341Scy		basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1089335640Shselasky		;;
1090335640Shselasky	pentiumpro-* | p6-* | 6x86-* | athlon-*)
1091356341Scy		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1092335640Shselasky		;;
1093335640Shselasky	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1094356341Scy		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1095335640Shselasky		;;
1096335640Shselasky	pentium4-*)
1097356341Scy		basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1098335640Shselasky		;;
1099335640Shselasky	pn)
1100335640Shselasky		basic_machine=pn-gould
1101335640Shselasky		;;
1102335640Shselasky	power)	basic_machine=power-ibm
1103335640Shselasky		;;
1104335640Shselasky	ppc | ppcbe)	basic_machine=powerpc-unknown
1105335640Shselasky		;;
1106335640Shselasky	ppc-* | ppcbe-*)
1107356341Scy		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1108335640Shselasky		;;
1109356341Scy	ppcle | powerpclittle)
1110335640Shselasky		basic_machine=powerpcle-unknown
1111335640Shselasky		;;
1112335640Shselasky	ppcle-* | powerpclittle-*)
1113356341Scy		basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1114335640Shselasky		;;
1115335640Shselasky	ppc64)	basic_machine=powerpc64-unknown
1116335640Shselasky		;;
1117356341Scy	ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1118335640Shselasky		;;
1119356341Scy	ppc64le | powerpc64little)
1120335640Shselasky		basic_machine=powerpc64le-unknown
1121335640Shselasky		;;
1122335640Shselasky	ppc64le-* | powerpc64little-*)
1123356341Scy		basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1124335640Shselasky		;;
1125335640Shselasky	ps2)
1126335640Shselasky		basic_machine=i386-ibm
1127335640Shselasky		;;
1128335640Shselasky	rm[46]00)
1129335640Shselasky		basic_machine=mips-siemens
1130335640Shselasky		;;
1131335640Shselasky	rtpc | rtpc-*)
1132335640Shselasky		basic_machine=romp-ibm
1133335640Shselasky		;;
1134335640Shselasky	s390 | s390-*)
1135335640Shselasky		basic_machine=s390-ibm
1136335640Shselasky		;;
1137335640Shselasky	s390x | s390x-*)
1138335640Shselasky		basic_machine=s390x-ibm
1139335640Shselasky		;;
1140335640Shselasky	sb1)
1141335640Shselasky		basic_machine=mipsisa64sb1-unknown
1142335640Shselasky		;;
1143335640Shselasky	sb1el)
1144335640Shselasky		basic_machine=mipsisa64sb1el-unknown
1145335640Shselasky		;;
1146335640Shselasky	sde)
1147335640Shselasky		basic_machine=mipsisa32-sde
1148356341Scy		os=${os:-elf}
1149335640Shselasky		;;
1150335640Shselasky	sequent)
1151335640Shselasky		basic_machine=i386-sequent
1152335640Shselasky		;;
1153335640Shselasky	sh5el)
1154335640Shselasky		basic_machine=sh5le-unknown
1155335640Shselasky		;;
1156356341Scy	simso-wrs)
1157335640Shselasky		basic_machine=sparclite-wrs
1158356341Scy		os=vxworks
1159335640Shselasky		;;
1160335640Shselasky	spur)
1161335640Shselasky		basic_machine=spur-unknown
1162335640Shselasky		;;
1163335640Shselasky	st2000)
1164335640Shselasky		basic_machine=m68k-tandem
1165335640Shselasky		;;
1166335640Shselasky	strongarm-* | thumb-*)
1167356341Scy		basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1168335640Shselasky		;;
1169335640Shselasky	sun2)
1170335640Shselasky		basic_machine=m68000-sun
1171335640Shselasky		;;
1172335640Shselasky	sun3 | sun3-*)
1173335640Shselasky		basic_machine=m68k-sun
1174335640Shselasky		;;
1175335640Shselasky	sun4)
1176335640Shselasky		basic_machine=sparc-sun
1177335640Shselasky		;;
1178335640Shselasky	sun386 | sun386i | roadrunner)
1179335640Shselasky		basic_machine=i386-sun
1180335640Shselasky		;;
1181335640Shselasky	tile*)
1182335640Shselasky		basic_machine=$basic_machine-unknown
1183356341Scy		os=linux-gnu
1184335640Shselasky		;;
1185335640Shselasky	tx39)
1186335640Shselasky		basic_machine=mipstx39-unknown
1187335640Shselasky		;;
1188335640Shselasky	tx39el)
1189335640Shselasky		basic_machine=mipstx39el-unknown
1190335640Shselasky		;;
1191335640Shselasky	tower | tower-32)
1192335640Shselasky		basic_machine=m68k-ncr
1193335640Shselasky		;;
1194335640Shselasky	vpp*|vx|vx-*)
1195335640Shselasky		basic_machine=f301-fujitsu
1196335640Shselasky		;;
1197335640Shselasky	w65*)
1198335640Shselasky		basic_machine=w65-wdc
1199356341Scy		os=none
1200335640Shselasky		;;
1201335640Shselasky	w89k-*)
1202335640Shselasky		basic_machine=hppa1.1-winbond
1203356341Scy		os=proelf
1204335640Shselasky		;;
1205356341Scy	x64)
1206356341Scy		basic_machine=x86_64-pc
1207335640Shselasky		;;
1208335640Shselasky	xps | xps100)
1209335640Shselasky		basic_machine=xps100-honeywell
1210335640Shselasky		;;
1211335640Shselasky	xscale-* | xscalee[bl]-*)
1212356341Scy		basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
1213335640Shselasky		;;
1214335640Shselasky	none)
1215335640Shselasky		basic_machine=none-none
1216356341Scy		os=${os:-none}
1217335640Shselasky		;;
1218335640Shselasky
1219335640Shselasky# Here we handle the default manufacturer of certain CPU types.  It is in
1220335640Shselasky# some cases the only manufacturer, in others, it is the most popular.
1221335640Shselasky	w89k)
1222335640Shselasky		basic_machine=hppa1.1-winbond
1223335640Shselasky		;;
1224335640Shselasky	op50n)
1225335640Shselasky		basic_machine=hppa1.1-oki
1226335640Shselasky		;;
1227335640Shselasky	op60c)
1228335640Shselasky		basic_machine=hppa1.1-oki
1229335640Shselasky		;;
1230335640Shselasky	romp)
1231335640Shselasky		basic_machine=romp-ibm
1232335640Shselasky		;;
1233335640Shselasky	mmix)
1234335640Shselasky		basic_machine=mmix-knuth
1235335640Shselasky		;;
1236335640Shselasky	rs6000)
1237335640Shselasky		basic_machine=rs6000-ibm
1238335640Shselasky		;;
1239335640Shselasky	vax)
1240335640Shselasky		basic_machine=vax-dec
1241335640Shselasky		;;
1242335640Shselasky	pdp11)
1243335640Shselasky		basic_machine=pdp11-dec
1244335640Shselasky		;;
1245335640Shselasky	we32k)
1246335640Shselasky		basic_machine=we32k-att
1247335640Shselasky		;;
1248335640Shselasky	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1249335640Shselasky		basic_machine=sh-unknown
1250335640Shselasky		;;
1251335640Shselasky	cydra)
1252335640Shselasky		basic_machine=cydra-cydrome
1253335640Shselasky		;;
1254335640Shselasky	orion)
1255335640Shselasky		basic_machine=orion-highlevel
1256335640Shselasky		;;
1257335640Shselasky	orion105)
1258335640Shselasky		basic_machine=clipper-highlevel
1259335640Shselasky		;;
1260335640Shselasky	mac | mpw | mac-mpw)
1261335640Shselasky		basic_machine=m68k-apple
1262335640Shselasky		;;
1263335640Shselasky	pmac | pmac-mpw)
1264335640Shselasky		basic_machine=powerpc-apple
1265335640Shselasky		;;
1266335640Shselasky	*-unknown)
1267335640Shselasky		# Make sure to match an already-canonicalized machine name.
1268335640Shselasky		;;
1269335640Shselasky	*)
1270356341Scy		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
1271335640Shselasky		exit 1
1272335640Shselasky		;;
1273335640Shselaskyesac
1274335640Shselasky
1275335640Shselasky# Here we canonicalize certain aliases for manufacturers.
1276335640Shselaskycase $basic_machine in
1277335640Shselasky	*-digital*)
1278356341Scy		basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
1279335640Shselasky		;;
1280335640Shselasky	*-commodore*)
1281356341Scy		basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
1282335640Shselasky		;;
1283335640Shselasky	*)
1284335640Shselasky		;;
1285335640Shselaskyesac
1286335640Shselasky
1287335640Shselasky# Decode manufacturer-specific aliases for certain operating systems.
1288335640Shselasky
1289356341Scyif [ x$os != x ]
1290335640Shselaskythen
1291335640Shselaskycase $os in
1292356341Scy	# First match some system type aliases that might get confused
1293356341Scy	# with valid system types.
1294356341Scy	# solaris* is a basic system type, with this one exception.
1295356341Scy	auroraux)
1296356341Scy		os=auroraux
1297335640Shselasky		;;
1298356341Scy	bluegene*)
1299356341Scy		os=cnk
1300356341Scy		;;
1301356341Scy	solaris1 | solaris1.*)
1302335640Shselasky		os=`echo $os | sed -e 's|solaris1|sunos4|'`
1303335640Shselasky		;;
1304356341Scy	solaris)
1305356341Scy		os=solaris2
1306335640Shselasky		;;
1307356341Scy	unixware*)
1308356341Scy		os=sysv4.2uw
1309335640Shselasky		;;
1310356341Scy	gnu/linux*)
1311335640Shselasky		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1312335640Shselasky		;;
1313356341Scy	# es1800 is here to avoid being matched by es* (a different OS)
1314356341Scy	es1800*)
1315356341Scy		os=ose
1316356341Scy		;;
1317356341Scy	# Some version numbers need modification
1318356341Scy	chorusos*)
1319356341Scy		os=chorusos
1320356341Scy		;;
1321356341Scy	isc)
1322356341Scy		os=isc2.2
1323356341Scy		;;
1324356341Scy	sco6)
1325356341Scy		os=sco5v6
1326356341Scy		;;
1327356341Scy	sco5)
1328356341Scy		os=sco3.2v5
1329356341Scy		;;
1330356341Scy	sco4)
1331356341Scy		os=sco3.2v4
1332356341Scy		;;
1333356341Scy	sco3.2.[4-9]*)
1334356341Scy		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
1335356341Scy		;;
1336356341Scy	sco3.2v[4-9]* | sco5v6*)
1337356341Scy		# Don't forget version if it is 3.2v4 or newer.
1338356341Scy		;;
1339356341Scy	scout)
1340356341Scy		# Don't match below
1341356341Scy		;;
1342356341Scy	sco*)
1343356341Scy		os=sco3.2v2
1344356341Scy		;;
1345356341Scy	psos*)
1346356341Scy		os=psos
1347356341Scy		;;
1348356341Scy	# Now accept the basic system types.
1349335640Shselasky	# The portable systems comes first.
1350356341Scy	# Each alternative MUST end in a * to match a version number.
1351356341Scy	# sysv* is not here because it comes later, after sysvr4.
1352356341Scy	gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
1353356341Scy	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
1354356341Scy	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
1355356341Scy	     | sym* | kopensolaris* | plan9* \
1356356341Scy	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
1357356341Scy	     | aos* | aros* | cloudabi* | sortix* \
1358356341Scy	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
1359356341Scy	     | clix* | riscos* | uniplus* | iris* | rtu* | xenix* \
1360356341Scy	     | knetbsd* | mirbsd* | netbsd* \
1361356341Scy	     | bitrig* | openbsd* | solidbsd* | libertybsd* \
1362356341Scy	     | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
1363356341Scy	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
1364356341Scy	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
1365356341Scy	     | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
1366356341Scy	     | chorusrdb* | cegcc* | glidix* \
1367356341Scy	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
1368356341Scy	     | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
1369356341Scy	     | linux-newlib* | linux-musl* | linux-uclibc* \
1370356341Scy	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
1371356341Scy	     | interix* | uwin* | mks* | rhapsody* | darwin* \
1372356341Scy	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
1373356341Scy	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
1374356341Scy	     | os2* | vos* | palmos* | uclinux* | nucleus* \
1375356341Scy	     | morphos* | superux* | rtmk* | windiss* \
1376356341Scy	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
1377356341Scy	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
1378356341Scy	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
1379356341Scy	     | midnightbsd*)
1380335640Shselasky	# Remember, each alternative MUST END IN *, to match a version number.
1381335640Shselasky		;;
1382356341Scy	qnx*)
1383335640Shselasky		case $basic_machine in
1384335640Shselasky		    x86-* | i*86-*)
1385335640Shselasky			;;
1386335640Shselasky		    *)
1387356341Scy			os=nto-$os
1388335640Shselasky			;;
1389335640Shselasky		esac
1390335640Shselasky		;;
1391356341Scy	hiux*)
1392356341Scy		os=hiuxwe2
1393335640Shselasky		;;
1394356341Scy	nto-qnx*)
1395356341Scy		;;
1396356341Scy	nto*)
1397335640Shselasky		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1398335640Shselasky		;;
1399356341Scy	sim | xray | os68k* | v88r* \
1400356341Scy	    | windows* | osx | abug | netware* | os9* \
1401356341Scy	    | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
1402335640Shselasky		;;
1403356341Scy	linux-dietlibc)
1404356341Scy		os=linux-dietlibc
1405335640Shselasky		;;
1406356341Scy	linux*)
1407335640Shselasky		os=`echo $os | sed -e 's|linux|linux-gnu|'`
1408335640Shselasky		;;
1409356341Scy	lynx*178)
1410356341Scy		os=lynxos178
1411335640Shselasky		;;
1412356341Scy	lynx*5)
1413356341Scy		os=lynxos5
1414335640Shselasky		;;
1415356341Scy	lynx*)
1416356341Scy		os=lynxos
1417335640Shselasky		;;
1418356341Scy	mac*)
1419356341Scy		os=`echo "$os" | sed -e 's|mac|macos|'`
1420335640Shselasky		;;
1421356341Scy	opened*)
1422356341Scy		os=openedition
1423335640Shselasky		;;
1424356341Scy	os400*)
1425356341Scy		os=os400
1426335640Shselasky		;;
1427356341Scy	sunos5*)
1428356341Scy		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
1429335640Shselasky		;;
1430356341Scy	sunos6*)
1431356341Scy		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
1432335640Shselasky		;;
1433356341Scy	wince*)
1434356341Scy		os=wince
1435335640Shselasky		;;
1436356341Scy	utek*)
1437356341Scy		os=bsd
1438335640Shselasky		;;
1439356341Scy	dynix*)
1440356341Scy		os=bsd
1441335640Shselasky		;;
1442356341Scy	acis*)
1443356341Scy		os=aos
1444335640Shselasky		;;
1445356341Scy	atheos*)
1446356341Scy		os=atheos
1447335640Shselasky		;;
1448356341Scy	syllable*)
1449356341Scy		os=syllable
1450335640Shselasky		;;
1451356341Scy	386bsd)
1452356341Scy		os=bsd
1453335640Shselasky		;;
1454356341Scy	ctix* | uts*)
1455356341Scy		os=sysv
1456335640Shselasky		;;
1457356341Scy	nova*)
1458356341Scy		os=rtmk-nova
1459335640Shselasky		;;
1460356341Scy	ns2)
1461356341Scy		os=nextstep2
1462356341Scy		;;
1463356341Scy	nsk*)
1464356341Scy		os=nsk
1465356341Scy		;;
1466335640Shselasky	# Preserve the version number of sinix5.
1467356341Scy	sinix5.*)
1468335640Shselasky		os=`echo $os | sed -e 's|sinix|sysv|'`
1469335640Shselasky		;;
1470356341Scy	sinix*)
1471356341Scy		os=sysv4
1472335640Shselasky		;;
1473356341Scy	tpf*)
1474356341Scy		os=tpf
1475335640Shselasky		;;
1476356341Scy	triton*)
1477356341Scy		os=sysv3
1478335640Shselasky		;;
1479356341Scy	oss*)
1480356341Scy		os=sysv3
1481335640Shselasky		;;
1482356341Scy	svr4*)
1483356341Scy		os=sysv4
1484335640Shselasky		;;
1485356341Scy	svr3)
1486356341Scy		os=sysv3
1487335640Shselasky		;;
1488356341Scy	sysvr4)
1489356341Scy		os=sysv4
1490335640Shselasky		;;
1491356341Scy	# This must come after sysvr4.
1492356341Scy	sysv*)
1493335640Shselasky		;;
1494356341Scy	ose*)
1495356341Scy		os=ose
1496335640Shselasky		;;
1497356341Scy	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1498356341Scy		os=mint
1499335640Shselasky		;;
1500356341Scy	zvmoe)
1501356341Scy		os=zvmoe
1502335640Shselasky		;;
1503356341Scy	dicos*)
1504356341Scy		os=dicos
1505335640Shselasky		;;
1506356341Scy	pikeos*)
1507356341Scy		# Until real need of OS specific support for
1508356341Scy		# particular features comes up, bare metal
1509356341Scy		# configurations are quite functional.
1510356341Scy		case $basic_machine in
1511356341Scy		    arm*)
1512356341Scy			os=eabi
1513356341Scy			;;
1514356341Scy		    *)
1515356341Scy			os=elf
1516356341Scy			;;
1517356341Scy		esac
1518335640Shselasky		;;
1519356341Scy	nacl*)
1520335640Shselasky		;;
1521356341Scy	ios)
1522335640Shselasky		;;
1523356341Scy	none)
1524335640Shselasky		;;
1525356341Scy	*-eabi)
1526335640Shselasky		;;
1527335640Shselasky	*)
1528356341Scy		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
1529335640Shselasky		exit 1
1530335640Shselasky		;;
1531335640Shselaskyesac
1532335640Shselaskyelse
1533335640Shselasky
1534335640Shselasky# Here we handle the default operating systems that come with various machines.
1535335640Shselasky# The value should be what the vendor currently ships out the door with their
1536335640Shselasky# machine or put another way, the most popular os provided with the machine.
1537335640Shselasky
1538335640Shselasky# Note that if you're going to try to match "-MANUFACTURER" here (say,
1539335640Shselasky# "-sun"), then you have to tell the case statement up towards the top
1540335640Shselasky# that MANUFACTURER isn't an operating system.  Otherwise, code above
1541335640Shselasky# will signal an error saying that MANUFACTURER isn't an operating
1542335640Shselasky# system, and we'll never get to this point.
1543335640Shselasky
1544335640Shselaskycase $basic_machine in
1545335640Shselasky	score-*)
1546356341Scy		os=elf
1547335640Shselasky		;;
1548335640Shselasky	spu-*)
1549356341Scy		os=elf
1550335640Shselasky		;;
1551335640Shselasky	*-acorn)
1552356341Scy		os=riscix1.2
1553335640Shselasky		;;
1554335640Shselasky	arm*-rebel)
1555356341Scy		os=linux
1556335640Shselasky		;;
1557335640Shselasky	arm*-semi)
1558356341Scy		os=aout
1559335640Shselasky		;;
1560335640Shselasky	c4x-* | tic4x-*)
1561356341Scy		os=coff
1562335640Shselasky		;;
1563335640Shselasky	c8051-*)
1564356341Scy		os=elf
1565335640Shselasky		;;
1566356341Scy	clipper-intergraph)
1567356341Scy		os=clix
1568356341Scy		;;
1569335640Shselasky	hexagon-*)
1570356341Scy		os=elf
1571335640Shselasky		;;
1572335640Shselasky	tic54x-*)
1573356341Scy		os=coff
1574335640Shselasky		;;
1575335640Shselasky	tic55x-*)
1576356341Scy		os=coff
1577335640Shselasky		;;
1578335640Shselasky	tic6x-*)
1579356341Scy		os=coff
1580335640Shselasky		;;
1581335640Shselasky	# This must come before the *-dec entry.
1582335640Shselasky	pdp10-*)
1583356341Scy		os=tops20
1584335640Shselasky		;;
1585335640Shselasky	pdp11-*)
1586356341Scy		os=none
1587335640Shselasky		;;
1588335640Shselasky	*-dec | vax-*)
1589356341Scy		os=ultrix4.2
1590335640Shselasky		;;
1591335640Shselasky	m68*-apollo)
1592356341Scy		os=domain
1593335640Shselasky		;;
1594335640Shselasky	i386-sun)
1595356341Scy		os=sunos4.0.2
1596335640Shselasky		;;
1597335640Shselasky	m68000-sun)
1598356341Scy		os=sunos3
1599335640Shselasky		;;
1600335640Shselasky	m68*-cisco)
1601356341Scy		os=aout
1602335640Shselasky		;;
1603335640Shselasky	mep-*)
1604356341Scy		os=elf
1605335640Shselasky		;;
1606335640Shselasky	mips*-cisco)
1607356341Scy		os=elf
1608335640Shselasky		;;
1609335640Shselasky	mips*-*)
1610356341Scy		os=elf
1611335640Shselasky		;;
1612335640Shselasky	or32-*)
1613356341Scy		os=coff
1614335640Shselasky		;;
1615335640Shselasky	*-tti)	# must be before sparc entry or we get the wrong os.
1616356341Scy		os=sysv3
1617335640Shselasky		;;
1618335640Shselasky	sparc-* | *-sun)
1619356341Scy		os=sunos4.1.1
1620335640Shselasky		;;
1621356341Scy	pru-*)
1622356341Scy		os=elf
1623356341Scy		;;
1624335640Shselasky	*-be)
1625356341Scy		os=beos
1626335640Shselasky		;;
1627335640Shselasky	*-ibm)
1628356341Scy		os=aix
1629335640Shselasky		;;
1630335640Shselasky	*-knuth)
1631356341Scy		os=mmixware
1632335640Shselasky		;;
1633335640Shselasky	*-wec)
1634356341Scy		os=proelf
1635335640Shselasky		;;
1636335640Shselasky	*-winbond)
1637356341Scy		os=proelf
1638335640Shselasky		;;
1639335640Shselasky	*-oki)
1640356341Scy		os=proelf
1641335640Shselasky		;;
1642335640Shselasky	*-hp)
1643356341Scy		os=hpux
1644335640Shselasky		;;
1645335640Shselasky	*-hitachi)
1646356341Scy		os=hiux
1647335640Shselasky		;;
1648335640Shselasky	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1649356341Scy		os=sysv
1650335640Shselasky		;;
1651335640Shselasky	*-cbm)
1652356341Scy		os=amigaos
1653335640Shselasky		;;
1654335640Shselasky	*-dg)
1655356341Scy		os=dgux
1656335640Shselasky		;;
1657335640Shselasky	*-dolphin)
1658356341Scy		os=sysv3
1659335640Shselasky		;;
1660335640Shselasky	m68k-ccur)
1661356341Scy		os=rtu
1662335640Shselasky		;;
1663335640Shselasky	m88k-omron*)
1664356341Scy		os=luna
1665335640Shselasky		;;
1666356341Scy	*-next)
1667356341Scy		os=nextstep
1668335640Shselasky		;;
1669335640Shselasky	*-sequent)
1670356341Scy		os=ptx
1671335640Shselasky		;;
1672335640Shselasky	*-crds)
1673356341Scy		os=unos
1674335640Shselasky		;;
1675335640Shselasky	*-ns)
1676356341Scy		os=genix
1677335640Shselasky		;;
1678335640Shselasky	i370-*)
1679356341Scy		os=mvs
1680335640Shselasky		;;
1681335640Shselasky	*-gould)
1682356341Scy		os=sysv
1683335640Shselasky		;;
1684335640Shselasky	*-highlevel)
1685356341Scy		os=bsd
1686335640Shselasky		;;
1687335640Shselasky	*-encore)
1688356341Scy		os=bsd
1689335640Shselasky		;;
1690335640Shselasky	*-sgi)
1691356341Scy		os=irix
1692335640Shselasky		;;
1693335640Shselasky	*-siemens)
1694356341Scy		os=sysv4
1695335640Shselasky		;;
1696335640Shselasky	*-masscomp)
1697356341Scy		os=rtu
1698335640Shselasky		;;
1699335640Shselasky	f30[01]-fujitsu | f700-fujitsu)
1700356341Scy		os=uxpv
1701335640Shselasky		;;
1702335640Shselasky	*-rom68k)
1703356341Scy		os=coff
1704335640Shselasky		;;
1705335640Shselasky	*-*bug)
1706356341Scy		os=coff
1707335640Shselasky		;;
1708335640Shselasky	*-apple)
1709356341Scy		os=macos
1710335640Shselasky		;;
1711335640Shselasky	*-atari*)
1712356341Scy		os=mint
1713335640Shselasky		;;
1714356341Scy	*-wrs)
1715356341Scy		os=vxworks
1716356341Scy		;;
1717335640Shselasky	*)
1718356341Scy		os=none
1719335640Shselasky		;;
1720335640Shselaskyesac
1721335640Shselaskyfi
1722335640Shselasky
1723335640Shselasky# Here we handle the case where we know the os, and the CPU type, but not the
1724335640Shselasky# manufacturer.  We pick the logical manufacturer.
1725335640Shselaskyvendor=unknown
1726335640Shselaskycase $basic_machine in
1727335640Shselasky	*-unknown)
1728335640Shselasky		case $os in
1729356341Scy			riscix*)
1730335640Shselasky				vendor=acorn
1731335640Shselasky				;;
1732356341Scy			sunos*)
1733335640Shselasky				vendor=sun
1734335640Shselasky				;;
1735356341Scy			cnk*|-aix*)
1736335640Shselasky				vendor=ibm
1737335640Shselasky				;;
1738356341Scy			beos*)
1739335640Shselasky				vendor=be
1740335640Shselasky				;;
1741356341Scy			hpux*)
1742335640Shselasky				vendor=hp
1743335640Shselasky				;;
1744356341Scy			mpeix*)
1745335640Shselasky				vendor=hp
1746335640Shselasky				;;
1747356341Scy			hiux*)
1748335640Shselasky				vendor=hitachi
1749335640Shselasky				;;
1750356341Scy			unos*)
1751335640Shselasky				vendor=crds
1752335640Shselasky				;;
1753356341Scy			dgux*)
1754335640Shselasky				vendor=dg
1755335640Shselasky				;;
1756356341Scy			luna*)
1757335640Shselasky				vendor=omron
1758335640Shselasky				;;
1759356341Scy			genix*)
1760335640Shselasky				vendor=ns
1761335640Shselasky				;;
1762356341Scy			clix*)
1763356341Scy				vendor=intergraph
1764356341Scy				;;
1765356341Scy			mvs* | opened*)
1766335640Shselasky				vendor=ibm
1767335640Shselasky				;;
1768356341Scy			os400*)
1769335640Shselasky				vendor=ibm
1770335640Shselasky				;;
1771356341Scy			ptx*)
1772335640Shselasky				vendor=sequent
1773335640Shselasky				;;
1774356341Scy			tpf*)
1775335640Shselasky				vendor=ibm
1776335640Shselasky				;;
1777356341Scy			vxsim* | vxworks* | windiss*)
1778335640Shselasky				vendor=wrs
1779335640Shselasky				;;
1780356341Scy			aux*)
1781335640Shselasky				vendor=apple
1782335640Shselasky				;;
1783356341Scy			hms*)
1784335640Shselasky				vendor=hitachi
1785335640Shselasky				;;
1786356341Scy			mpw* | macos*)
1787335640Shselasky				vendor=apple
1788335640Shselasky				;;
1789356341Scy			*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1790335640Shselasky				vendor=atari
1791335640Shselasky				;;
1792356341Scy			vos*)
1793335640Shselasky				vendor=stratus
1794335640Shselasky				;;
1795335640Shselasky		esac
1796356341Scy		basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
1797335640Shselasky		;;
1798335640Shselaskyesac
1799335640Shselasky
1800356341Scyecho "$basic_machine-$os"
1801335640Shselaskyexit
1802335640Shselasky
1803335640Shselasky# Local variables:
1804356341Scy# eval: (add-hook 'before-save-hook 'time-stamp)
1805335640Shselasky# time-stamp-start: "timestamp='"
1806335640Shselasky# time-stamp-format: "%:y-%02m-%02d"
1807335640Shselasky# time-stamp-end: "'"
1808335640Shselasky# End:
1809