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