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