config.sub revision 1.1
1#! /bin/sh
2# Configuration validation subroutine script, version 1.1.
3#   Copyright (C) 1991, 92-97, 1998, 1999 Free Software Foundation, Inc.
4# This file is (in principle) common to ALL GNU software.
5# The presence of a machine in this file suggests that SOME GNU software
6# can handle that machine.  It does not imply ALL GNU software can.
7#
8# This file is free software; you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation; either version 2 of the License, or
11# (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with this program; if not, write to the Free Software
20# Foundation, Inc., 59 Temple Place - Suite 330,
21# Boston, MA 02111-1307, USA.
22
23# As a special exception to the GNU General Public License, if you
24# distribute this file as part of a program that contains a
25# configuration script generated by Autoconf, you may include it under
26# the same distribution terms that you use for the rest of that program.
27
28# Configuration subroutine to validate and canonicalize a configuration type.
29# Supply the specified configuration type as an argument.
30# If it is invalid, we print an error message on stderr and exit with code 1.
31# Otherwise, we print the canonical config type on stdout and succeed.
32
33# This file is supposed to be the same for all GNU packages
34# and recognize all the CPU types, system types and aliases
35# that are meaningful with *any* GNU software.
36# Each package is responsible for reporting which valid configurations
37# it does not support.  The user should be able to distinguish
38# a failure to support a valid configuration from a meaningless
39# configuration.
40
41# The goal of this file is to map all the various variations of a given
42# machine specification into a single specification in the form:
43#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
44# or in some cases, the newer four-part form:
45#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
46# It is wrong to echo any other type of specification.
47
48if [ x$1 = x ]
49then
50	echo Configuration name missing. 1>&2
51	echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
52	echo "or     $0 ALIAS" 1>&2
53	echo where ALIAS is a recognized configuration type. 1>&2
54	exit 1
55fi
56
57# First pass through any local machine types.
58case $1 in
59	*local*)
60		echo $1
61		exit 0
62		;;
63	*)
64	;;
65esac
66
67# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
68# Here we must recognize all the valid KERNEL-OS combinations.
69maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
70case $maybe_os in
71  linux-gnu*)
72    os=-$maybe_os
73    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
74    ;;
75  *)
76    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
77    if [ $basic_machine != $1 ]
78    then os=`echo $1 | sed 's/.*-/-/'`
79    else os=; fi
80    ;;
81esac
82
83### Let's recognize common machines as not being operating systems so
84### that things like config.sub decstation-3100 work.  We also
85### recognize some manufacturers as not being operating systems, so we
86### can provide default operating systems below.
87case $os in
88	-sun*os*)
89		# Prevent following clause from handling this invalid input.
90		;;
91	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
92	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
93	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
94	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
95	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
96	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
97	-apple)
98		os=
99		basic_machine=$1
100		;;
101	-sim | -cisco | -oki | -wec | -winbond )	# EGCS LOCAL
102		os=
103		basic_machine=$1
104		;;
105	-scout)						# EGCS LOCAL
106		;;
107	-wrs)						# EGCS LOCAL
108		os=-vxworks
109		basic_machine=$1
110		;;
111	-hiux*)
112		os=-hiuxwe2
113		;;
114	-sco5)
115		os=-sco3.2v5
116		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
117		;;
118	-sco4)
119		os=-sco3.2v4
120		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
121		;;
122	-sco3.2.[4-9]*)
123		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
124		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
125		;;
126	-sco3.2v[4-9]*)
127		# Don't forget version if it is 3.2v4 or newer.
128		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
129		;;
130	-sco*)
131		os=-sco3.2v2
132		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
133		;;
134	-udk*)
135		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
136		;;
137	-isc)
138		os=-isc2.2
139		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
140		;;
141	-clix*)
142		basic_machine=clipper-intergraph
143		;;
144	-isc*)
145		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
146		;;
147	-lynx*)
148		os=-lynxos
149		;;
150	-ptx*)
151		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
152		;;
153	-windowsnt*)
154		os=`echo $os | sed -e 's/windowsnt/winnt/'`
155		;;
156	-psos*)
157		os=-psos
158		;;
159esac
160
161# Decode aliases for certain CPU-COMPANY combinations.
162case $basic_machine in
163	# Recognize the basic CPU types without company name.
164	# Some are omitted here because they have special meanings below.
165	tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
166		| arme[lb] | pyramid | mn10200 | mn10300 \
167		| tron | a29k | 580 | i960 | h8300 \
168		| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
169		| alpha | alphaev5 | alphaev56 | alphapca56 | alphaev6 \
170		| we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
171		| 1750a | dsp16xx | pdp11 \
172		| mips64 | mipsel | mips64el | mips64orion | mips64orionel \
173		| mipstx39 | mipstx39el \
174		| sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x)
175		basic_machine=$basic_machine-unknown
176		;;
177	m88110 | m680[012346]0 | m683?2 | m68360 | m5200 | z8k | v70 \
178	        | h8500 | w65) # EGCS LOCAL
179		;;
180	thumb)
181		basic_machine=$basic_machine-unknown
182		;;
183	mips64vr4300 | mips64vr4300el) # EGCS LOCAL jsmith/vr4300
184		basic_machine=$basic_machine-unknown
185		;;
186	mips64vr4100 | mips64vr4100el) # EGCS LOCAL jsmith/vr4100
187		basic_machine=$basic_machine-unknown
188		;;
189	mips64vr5000 | mips64vr5000el) # EGCS LOCAL ian/vr5000
190		basic_machine=$basic_machine-unknown
191		;;
192	mips16)
193		basic_machine=$basic_machine-unknown
194		;;
195	d10v)
196		basic_machine=$basic_machine-unknown
197		;;
198	# We use `pc' rather than `unknown'
199	# because (1) that's what they normally are, and
200	# (2) the word "unknown" tends to confuse beginning users.
201	i[34567]86)
202	  basic_machine=$basic_machine-pc
203	  ;;
204	# Object if more than one company name word.
205	*-*-*)
206		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
207		exit 1
208		;;
209	# Recognize the basic CPU types with company name.
210	vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
211	      | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
212	      | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
213	      | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
214	      | xmp-* | ymp-* \
215	      | hppa-* | hppa1.0-* | hppa1.1-* \
216	      | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \
217	      | alpha-* | alphaev5-* | alphaev56-* | alphapca56-* \
218	      | alphaev6-* | we32k-* | cydra-* | ns16k-* | pn-* | np1-* \
219	      | xps100-* | clipper-* | orion-* \
220	      | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
221	      | sparc64-* | sparcv9-* | sparc86x-* | mips64-* | mipsel-* \
222	      | mips64el-* | mips64orion-* | mips64orionel-*  \
223	      | mipstx39-* | mipstx39el-* \
224	      | f301-* | arm*-*)
225		;;
226	m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | h8500-* | d10v-*) # EGCS LOCAL
227		;;
228	thumb-*) # EGCS LOCAL angela/thumb
229		;;
230	v850-*) # EGCS LOCAL
231	        ;;
232	d30v-*) # EGCS LOCAL
233	        ;;
234	mips64vr4300-* | mips64vr4300el-*) # EGCS LOCAL jsmith/vr4300
235		;;
236	mips64vr4100-* | mips64vr4100el-*) # EGCS LOCAL jsmith/vr4100
237		;;
238	mips16-*) # EGCS LOCAL krk/mips16
239		;;
240	tic30-*) # EGCS LOCAL ian/tic30
241		;;
242	c30-*) # EGCS LOCAL ian/tic30
243		basic_machine=tic30-unknown
244		;;
245	# Recognize the various machine names and aliases which stand
246	# for a CPU type and a company and sometimes even an OS.
247	386bsd)						# EGCS LOCAL
248		basic_machine=i386-unknown
249		os=-bsd
250		;;
251	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
252		basic_machine=m68000-att
253		;;
254	3b*)
255		basic_machine=we32k-att
256		;;
257	a29khif)					# EGCS LOCAL
258		basic_machine=a29k-amd
259		os=-udi
260		;;
261	adobe68k)					# EGCS LOCAL
262		basic_machine=m68010-adobe
263		os=-scout
264		;;
265	alliant | fx80)
266		basic_machine=fx80-alliant
267		;;
268	altos | altos3068)
269		basic_machine=m68k-altos
270		;;
271	am29k)
272		basic_machine=a29k-none
273		os=-bsd
274		;;
275	amdahl)
276		basic_machine=580-amdahl
277		os=-sysv
278		;;
279	amiga | amiga-*)
280		basic_machine=m68k-cbm
281		;;
282	amigaos | amigados)
283		basic_machine=m68k-cbm
284		os=-amigaos
285		;;
286	amigaunix | amix)
287		basic_machine=m68k-cbm
288		os=-sysv4
289		;;
290	apollo68)
291		basic_machine=m68k-apollo
292		os=-sysv
293		;;
294	apollo68bsd)					# EGCS LOCAL
295		basic_machine=m68k-apollo
296		os=-bsd
297		;;
298	aux)
299		basic_machine=m68k-apple
300		os=-aux
301		;;
302	balance)
303		basic_machine=ns32k-sequent
304		os=-dynix
305		;;
306	convex-c1)
307		basic_machine=c1-convex
308		os=-bsd
309		;;
310	convex-c2)
311		basic_machine=c2-convex
312		os=-bsd
313		;;
314	convex-c32)
315		basic_machine=c32-convex
316		os=-bsd
317		;;
318	convex-c34)
319		basic_machine=c34-convex
320		os=-bsd
321		;;
322	convex-c38)
323		basic_machine=c38-convex
324		os=-bsd
325		;;
326	cray | ymp)
327		basic_machine=ymp-cray
328		os=-unicos
329		;;
330	cray2)
331		basic_machine=cray2-cray
332		os=-unicos
333		;;
334	[ctj]90-cray)
335		basic_machine=c90-cray
336		os=-unicos
337		;;
338	crds | unos)
339		basic_machine=m68k-crds
340		;;
341	da30 | da30-*)
342		basic_machine=m68k-da30
343		;;
344	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
345		basic_machine=mips-dec
346		;;
347	delta | 3300 | motorola-3300 | motorola-delta \
348	      | 3300-motorola | delta-motorola)
349		basic_machine=m68k-motorola
350		;;
351	delta88)
352		basic_machine=m88k-motorola
353		os=-sysv3
354		;;
355	dpx20 | dpx20-*)
356		basic_machine=rs6000-bull
357		os=-bosx
358		;;
359	dpx2* | dpx2*-bull)
360		basic_machine=m68k-bull
361		os=-sysv3
362		;;
363	ebmon29k)
364		basic_machine=a29k-amd
365		os=-ebmon
366		;;
367	elxsi)
368		basic_machine=elxsi-elxsi
369		os=-bsd
370		;;
371	encore | umax | mmax)
372		basic_machine=ns32k-encore
373		;;
374	es1800 | OSE68k | ose68k | ose | OSE)		# EGCS LOCAL
375		basic_machine=m68k-ericsson
376		os=-ose
377		;;
378	fx2800)
379		basic_machine=i860-alliant
380		;;
381	genix)
382		basic_machine=ns32k-ns
383		;;
384	gmicro)
385		basic_machine=tron-gmicro
386		os=-sysv
387		;;
388	h3050r* | hiux*)
389		basic_machine=hppa1.1-hitachi
390		os=-hiuxwe2
391		;;
392	h8300hms)
393		basic_machine=h8300-hitachi
394		os=-hms
395		;;
396	h8300xray)					# EGCS LOCAL
397		basic_machine=h8300-hitachi
398		os=-xray
399		;;
400	h8500hms)					# EGCS LOCAL
401		basic_machine=h8500-hitachi
402		os=-hms
403		;;
404	harris)
405		basic_machine=m88k-harris
406		os=-sysv3
407		;;
408	hp300-*)
409		basic_machine=m68k-hp
410		;;
411	hp300bsd)
412		basic_machine=m68k-hp
413		os=-bsd
414		;;
415	hp300hpux)
416		basic_machine=m68k-hp
417		os=-hpux
418		;;
419        w89k-*)						# EGCS LOCAL
420                basic_machine=hppa1.1-winbond
421                os=-proelf
422                ;;
423        op50n-*)					# EGCS LOCAL
424                basic_machine=hppa1.1-oki
425                os=-proelf
426                ;;
427        op60c-*)					# EGCS LOCAL
428                basic_machine=hppa1.1-oki
429                os=-proelf
430                ;;
431        hppro)						# EGCS LOCAL
432                basic_machine=hppa1.1-hp
433                os=-proelf
434                ;;
435	hp3k9[0-9][0-9] | hp9[0-9][0-9])
436		basic_machine=hppa1.0-hp
437		;;
438	hp9k2[0-9][0-9] | hp9k31[0-9])
439		basic_machine=m68000-hp
440		;;
441	hp9k3[2-9][0-9])
442		basic_machine=m68k-hp
443		;;
444	hp9k6[0-9][0-9] | hp6[0-9][0-9] )
445		basic_machine=hppa1.0-hp
446		;;
447	hp9k7[0-79][0-9] | hp7[0-79][0-9] )
448		basic_machine=hppa1.1-hp
449		;;
450	hp9k78[0-9] | hp78[0-9] )
451		# FIXME: really hppa2.0-hp
452		basic_machine=hppa1.1-hp
453		;;
454	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | \
455	hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893 )
456		# FIXME: really hppa2.0-hp
457		basic_machine=hppa1.1-hp
458		;;
459	hp9k8[0-9][13679] | hp8[0-9][13679] )
460		basic_machine=hppa1.1-hp
461		;;
462	hp9k8[0-9][0-9] | hp8[0-9][0-9])
463		basic_machine=hppa1.0-hp
464		;;
465	hppa-next)
466		os=-nextstep3
467		;;
468	hppaosf)					# EGCS LOCAL
469		basic_machine=hppa1.1-hp
470		os=-osf
471		;;
472	i370-ibm* | ibm*)
473		basic_machine=i370-ibm
474		os=-mvs
475		;;
476# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
477	i[34567]86v32)
478		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
479		os=-sysv32
480		;;
481	i[34567]86v4*)
482		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
483		os=-sysv4
484		;;
485	i[34567]86v)
486		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
487		os=-sysv
488		;;
489	i[34567]86sol2)
490		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
491		os=-solaris2
492		;;
493	i386mach)					# EGCS LOCAL
494		basic_machine=i386-mach
495		os=-mach
496		;;
497	i386-vsta | vsta)				# EGCS LOCAL
498		basic_machine=i386-unknown
499		os=-vsta
500		;;
501	i386-go32 | go32)				# EGCS LOCAL
502		basic_machine=i386-unknown
503		os=-go32
504		;;
505	i386-mingw32 | mingw32)
506		basic_machine=i386-unknown
507		os=-mingw32
508		;;
509	iris | iris4d)
510		basic_machine=mips-sgi
511		case $os in
512		    -irix*)
513			;;
514		    *)
515			os=-irix4
516			;;
517		esac
518		;;
519	isi68 | isi)
520		basic_machine=m68k-isi
521		os=-sysv
522		;;
523	m88k-omron*)
524		basic_machine=m88k-omron
525		;;
526	magnum | m3230)
527		basic_machine=mips-mips
528		os=-sysv
529		;;
530	merlin)
531		basic_machine=ns32k-utek
532		os=-sysv
533		;;
534	miniframe)
535		basic_machine=m68000-convergent
536		;;
537	mipsel*-linux*)
538		basic_machine=mipsel-unknown
539		os=-linux-gnu
540		;;
541	mips*-linux*)
542		basic_machine=mips-unknown
543		os=-linux-gnu
544		;;
545	mips3*-*)
546		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
547		;;
548	mips3*)
549		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
550		;;
551	monitor)					# EGCS LOCAL
552		basic_machine=m68k-rom68k
553		os=-coff
554		;;
555	msdos)						# EGCS LOCAL
556		basic_machine=i386-unknown	
557		os=-msdos
558		;;
559	ncr3000)
560		basic_machine=i486-ncr
561		os=-sysv4
562		;;
563	netbsd386)
564		basic_machine=i386-unknown		# EGCS LOCAL
565		os=-netbsd
566		;;
567	netwinder)
568		basic_machine=armv4l-corel
569		os=-linux
570		;;
571	news | news700 | news800 | news900)
572		basic_machine=m68k-sony
573		os=-newsos
574		;;
575	news1000)
576		basic_machine=m68030-sony
577		os=-newsos
578		;;
579	news-3600 | risc-news)
580		basic_machine=mips-sony
581		os=-newsos
582		;;
583	necv70)						# EGCS LOCAL
584		basic_machine=v70-nec
585		os=-sysv
586		;;
587	next | m*-next )
588		basic_machine=m68k-next
589		case $os in
590		    -nextstep* )
591			;;
592		    -ns2*)
593		      os=-nextstep2
594			;;
595		    *)
596		      os=-nextstep3
597			;;
598		esac
599		;;
600	nh3000)
601		basic_machine=m68k-harris
602		os=-cxux
603		;;
604	nh[45]000)
605		basic_machine=m88k-harris
606		os=-cxux
607		;;
608	nindy960)
609		basic_machine=i960-intel
610		os=-nindy
611		;;
612	mon960)						# EGCS LOCAL
613		basic_machine=i960-intel
614		os=-mon960
615		;;
616	np1)
617		basic_machine=np1-gould
618		;;
619	OSE68000 | ose68000)				# EGCS LOCAL
620		basic_machine=m68000-ericsson
621		os=-ose
622		;;
623	os68k)						# EGCS LOCAL
624		basic_machine=m68k-none
625		os=-os68k
626		;;
627	pa-hitachi)
628		basic_machine=hppa1.1-hitachi
629		os=-hiuxwe2
630		;;
631	paragon)
632		basic_machine=i860-intel
633		os=-osf
634		;;
635	pbd)
636		basic_machine=sparc-tti
637		;;
638	pbb)
639		basic_machine=m68k-tti
640		;;
641        pc532 | pc532-*)
642		basic_machine=ns32k-pc532
643		;;
644	pentium | p5 | k5 | k6 | nexen)
645		basic_machine=i586-pc
646		;;
647	pentiumpro | p6 | 6x86)
648		basic_machine=i686-pc
649		;;
650	pentiumii | pentium2)
651		basic_machine=i786-pc
652		;;
653	pentium-* | p5-* | k5-* | k6-* | nexen-*)
654		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
655		;;
656	pentiumpro-* | p6-* | 6x86-*)
657		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
658		;;
659	pentiumii-* | pentium2-*)
660		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
661		;;
662	pn)
663		basic_machine=pn-gould
664		;;
665	power)	basic_machine=rs6000-ibm
666		;;
667	ppc)	basic_machine=powerpc-unknown
668	        ;;
669	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
670		;;
671	ppcle | powerpclittle | ppc-le | powerpc-little)
672		basic_machine=powerpcle-unknown
673	        ;;
674	ppcle-* | powerpclittle-*)
675		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
676		;;
677	ps2)
678		basic_machine=i386-ibm
679		;;
680	rom68k)						# EGCS LOCAL
681		basic_machine=m68k-rom68k
682		os=-coff
683		;;
684	rm[46]00)
685		basic_machine=mips-siemens
686		;;
687	rtpc | rtpc-*)
688		basic_machine=romp-ibm
689		;;
690	sa29200)					# EGCS LOCAL
691		basic_machine=a29k-amd
692		os=-udi
693		;;
694	sequent)
695		basic_machine=i386-sequent
696		;;
697	sh)
698		basic_machine=sh-hitachi
699		os=-hms
700		;;
701	sparclite-wrs)					# EGCS LOCAL
702		basic_machine=sparclite-wrs
703		os=-vxworks
704		;;
705	sps7)
706		basic_machine=m68k-bull
707		os=-sysv2
708		;;
709	spur)
710		basic_machine=spur-unknown
711		;;
712	st2000)						# EGCS LOCAL
713		basic_machine=m68k-tandem
714		;;
715	stratus)					# EGCS LOCAL
716		basic_machine=i860-stratus
717		os=-sysv4
718		;;
719	sun2)
720		basic_machine=m68000-sun
721		;;
722	sun2os3)
723		basic_machine=m68000-sun
724		os=-sunos3
725		;;
726	sun2os4)
727		basic_machine=m68000-sun
728		os=-sunos4
729		;;
730	sun3os3)
731		basic_machine=m68k-sun
732		os=-sunos3
733		;;
734	sun3os4)
735		basic_machine=m68k-sun
736		os=-sunos4
737		;;
738	sun4os3)
739		basic_machine=sparc-sun
740		os=-sunos3
741		;;
742	sun4os4)
743		basic_machine=sparc-sun
744		os=-sunos4
745		;;
746	sun4sol2)
747		basic_machine=sparc-sun
748		os=-solaris2
749		;;
750	sun3 | sun3-*)
751		basic_machine=m68k-sun
752		;;
753	sun4)
754		basic_machine=sparc-sun
755		;;
756	sun386 | sun386i | roadrunner)
757		basic_machine=i386-sun
758		;;
759	symmetry)
760		basic_machine=i386-sequent
761		os=-dynix
762		;;
763	tx39)
764		basic_machine=mipstx39-unknown
765		;;
766	tx39el)
767		basic_machine=mipstx39el-unknown
768		;;
769	tower | tower-32)
770		basic_machine=m68k-ncr
771		;;
772	udi29k)
773		basic_machine=a29k-amd
774		os=-udi
775		;;
776	ultra3)
777		basic_machine=a29k-nyu
778		os=-sym1
779		;;
780	v810 | necv810)					# EGCS LOCAL
781		basic_machine=v810-nec
782		os=-none
783		;;
784	vaxv)
785		basic_machine=vax-dec
786		os=-sysv
787		;;
788	vms)
789		basic_machine=vax-dec
790		os=-vms
791		;;
792	vpp*|vx|vx-*)
793               basic_machine=f301-fujitsu
794               ;;
795	vxworks960)
796		basic_machine=i960-wrs
797		os=-vxworks
798		;;
799	vxworks68)
800		basic_machine=m68k-wrs
801		os=-vxworks
802		;;
803	vxworks29k)
804		basic_machine=a29k-wrs
805		os=-vxworks
806		;;
807	w65*)						# EGCS LOCAL
808 		basic_machine=w65-wdc
809 		os=-none
810		;;
811	xmp)
812		basic_machine=xmp-cray
813		os=-unicos
814		;;
815        xps | xps100)
816		basic_machine=xps100-honeywell
817		;;
818	z8k-*-coff)					# EGCS LOCAL
819		basic_machine=z8k-unknown
820		os=-sim
821		;;
822	none)
823		basic_machine=none-none
824		os=-none
825		;;
826
827# Here we handle the default manufacturer of certain CPU types.  It is in
828# some cases the only manufacturer, in others, it is the most popular.
829	w89k)						# EGCS LOCAL
830		basic_machine=hppa1.1-winbond
831		;;
832	op50n)						# EGCS LOCAL
833		basic_machine=hppa1.1-oki
834		;;
835	op60c)						# EGCS LOCAL
836		basic_machine=hppa1.1-oki
837		;;
838	mips)
839		if [ x$os = x-linux-gnu ]; then
840			basic_machine=mips-unknown
841		else
842			basic_machine=mips-mips
843		fi
844		;;
845	romp)
846		basic_machine=romp-ibm
847		;;
848	rs6000)
849		basic_machine=rs6000-ibm
850		;;
851	vax)
852		basic_machine=vax-dec
853		;;
854	pdp11)
855		basic_machine=pdp11-dec
856		;;
857	we32k)
858		basic_machine=we32k-att
859		;;
860	sparc | sparcv9)
861		basic_machine=sparc-sun
862		;;
863        cydra)
864		basic_machine=cydra-cydrome
865		;;
866	orion)
867		basic_machine=orion-highlevel
868		;;
869	orion105)
870		basic_machine=clipper-highlevel
871		;;
872	mac | mpw | mac-mpw)				# EGCS LOCAL
873		basic_machine=m68k-apple
874		;;
875	pmac | pmac-mpw)				# EGCS LOCAL
876		basic_machine=powerpc-apple
877		;;
878 	c4x*)
879 		basic_machine=c4x-none
880 		os=-coff
881  		;;
882	*)
883		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
884		exit 1
885		;;
886esac
887
888# Here we canonicalize certain aliases for manufacturers.
889case $basic_machine in
890	*-digital*)
891		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
892		;;
893	*-commodore*)
894		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
895		;;
896	*)
897		;;
898esac
899
900# Decode manufacturer-specific aliases for certain operating systems.
901
902if [ x"$os" != x"" ]
903then
904case $os in
905        # First match some system type aliases
906        # that might get confused with valid system types.
907	# -solaris* is a basic system type, with this one exception.
908	-solaris1 | -solaris1.*)
909		os=`echo $os | sed -e 's|solaris1|sunos4|'`
910		;;
911	-solaris)
912		os=-solaris2
913		;;
914	-svr4*)
915		os=-sysv4
916		;;
917	-unixware*)
918		os=-sysv4.2uw
919		;;
920	-gnu/linux*)
921		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
922		;;
923	# First accept the basic system types.
924	# The portable systems comes first.
925	# Each alternative MUST END IN A *, to match a version number.
926	# -sysv* is not here because it comes later, after sysvr4.
927	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
928	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
929	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
930	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
931	      | -aos* \
932	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
933	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
934	      | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
935	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
936	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
937	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
938	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
939	      | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
940	      | -interix* | -uwin* )
941	# Remember, each alternative MUST END IN *, to match a version number.
942		;;
943	# EGCS LOCAL
944	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
945	      | -windows* | -osx | -abug |  -netware* | -os9* | -beos* \
946	      | -macos* | -mpw* | -magic* | -mon960* | -lnews* )
947		;;
948	-mac*)
949		os=`echo $os | sed -e 's|mac|macos|'`
950		;;
951	# END EGCS LOCAL
952	-linux*)
953		os=`echo $os | sed -e 's|linux|linux-gnu|'`
954		;;
955	-sunos5*)
956		os=`echo $os | sed -e 's|sunos5|solaris2|'`
957		;;
958	-sunos6*)
959		os=`echo $os | sed -e 's|sunos6|solaris3|'`
960		;;
961	-osfrose*)
962		os=-osfrose
963		;;
964	-osf*)
965		os=-osf
966		;;
967	-utek*)
968		os=-bsd
969		;;
970	-dynix*)
971		os=-bsd
972		;;
973	-acis*)
974		os=-aos
975		;;
976	-386bsd)					# EGCS LOCAL
977		os=-bsd
978		;;
979	-ctix* | -uts*)
980		os=-sysv
981		;;
982	-ns2 )
983	        os=-nextstep2
984		;;
985	# Preserve the version number of sinix5.
986	-sinix5.*)
987		os=`echo $os | sed -e 's|sinix|sysv|'`
988		;;
989	-sinix*)
990		os=-sysv4
991		;;
992	-triton*)
993		os=-sysv3
994		;;
995	-oss*)
996		os=-sysv3
997		;;
998	-svr4)
999		os=-sysv4
1000		;;
1001	-svr3)
1002		os=-sysv3
1003		;;
1004	-sysvr4)
1005		os=-sysv4
1006		;;
1007	# This must come after -sysvr4.
1008	-sysv*)
1009		;;
1010	-ose*)						# EGCS LOCAL
1011		os=-ose
1012		;;
1013	-es1800*)					# EGCS LOCAL
1014		os=-ose
1015		;;
1016	-xenix)
1017		os=-xenix
1018		;;
1019	-none)
1020		;;
1021	*)
1022		# Get rid of the `-' at the beginning of $os.
1023		os=`echo $os | sed 's/[^-]*-//'`
1024		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1025		exit 1
1026		;;
1027esac
1028else
1029
1030# Here we handle the default operating systems that come with various machines.
1031# The value should be what the vendor currently ships out the door with their
1032# machine or put another way, the most popular os provided with the machine.
1033
1034# Note that if you're going to try to match "-MANUFACTURER" here (say,
1035# "-sun"), then you have to tell the case statement up towards the top
1036# that MANUFACTURER isn't an operating system.  Otherwise, code above
1037# will signal an error saying that MANUFACTURER isn't an operating
1038# system, and we'll never get to this point.
1039
1040case $basic_machine in
1041	*-acorn)
1042		os=-riscix1.2
1043		;;
1044	arm*-corel)
1045		os=-linux
1046		;;
1047	arm*-semi)
1048		os=-aout
1049		;;
1050        pdp11-*)
1051		os=-none
1052		;;
1053	*-dec | vax-*)
1054		os=-ultrix4.2
1055		;;
1056	m68*-apollo)
1057		os=-domain
1058		;;
1059	i386-sun)
1060		os=-sunos4.0.2
1061		;;
1062	m68000-sun)
1063		os=-sunos3
1064		# This also exists in the configure program, but was not the
1065		# default.
1066		# os=-sunos4
1067		;;
1068	m68*-cisco)					# EGCS LOCAL
1069		os=-aout
1070		;;
1071	mips*-cisco)					# EGCS LOCAL
1072		os=-elf
1073		;;
1074        mips*-*)                                        # EGCS LOCAL
1075                os=-elf
1076                ;;
1077	*-tti)	# must be before sparc entry or we get the wrong os.
1078		os=-sysv3
1079		;;
1080	sparc-* | *-sun)
1081		os=-sunos4.1.1
1082		;;
1083	*-be)
1084		os=-beos
1085		;;
1086	*-ibm)
1087		os=-aix
1088		;;
1089	*-wec)						# EGCS LOCAL
1090		os=-proelf
1091		;;
1092	*-winbond)					# EGCS LOCAL
1093		os=-proelf
1094		;;
1095	*-oki)						# EGCS LOCAL
1096		os=-proelf
1097		;;
1098	*-hp)
1099		os=-hpux
1100		;;
1101	*-hitachi)
1102		os=-hiux
1103		;;
1104	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1105		os=-sysv
1106		;;
1107	*-cbm)
1108		os=-amigaos
1109		;;
1110	*-dg)
1111		os=-dgux
1112		;;
1113	*-dolphin)
1114		os=-sysv3
1115		;;
1116	m68k-ccur)
1117		os=-rtu
1118		;;
1119	m88k-omron*)
1120		os=-luna
1121		;;
1122	*-next )
1123		os=-nextstep
1124		;;
1125	*-sequent)
1126		os=-ptx
1127		;;
1128	*-crds)
1129		os=-unos
1130		;;
1131	*-ns)
1132		os=-genix
1133		;;
1134	i370-*)
1135		os=-mvs
1136		;;
1137	*-next)
1138		os=-nextstep3
1139		;;
1140        *-gould)
1141		os=-sysv
1142		;;
1143        *-highlevel)
1144		os=-bsd
1145		;;
1146	*-encore)
1147		os=-bsd
1148		;;
1149        *-sgi)
1150		os=-irix
1151		;;
1152        *-siemens)
1153		os=-sysv4
1154		;;
1155	*-masscomp)
1156		os=-rtu
1157		;;
1158	f301-fujitsu)
1159		os=-uxpv
1160		;;
1161	*-rom68k)					# EGCS LOCAL
1162		os=-coff
1163		;;
1164	*-*bug)						# EGCS LOCAL
1165		os=-coff
1166		;;
1167	*-apple)					# EGCS LOCAL
1168		os=-macos
1169		;;
1170	*)
1171		os=-none
1172		;;
1173esac
1174fi
1175
1176# Here we handle the case where we know the os, and the CPU type, but not the
1177# manufacturer.  We pick the logical manufacturer.
1178vendor=unknown
1179case $basic_machine in
1180	*-unknown)
1181		case $os in
1182			-riscix*)
1183				vendor=acorn
1184				;;
1185			-sunos*)
1186				vendor=sun
1187				;;
1188			-aix*)
1189				vendor=ibm
1190				;;
1191			-beos*)
1192				vendor=be
1193				;;
1194			-hpux*)
1195				vendor=hp
1196				;;
1197			-mpeix*)
1198				vendor=hp
1199				;;
1200			-hiux*)
1201				vendor=hitachi
1202				;;
1203			-unos*)
1204				vendor=crds
1205				;;
1206			-dgux*)
1207				vendor=dg
1208				;;
1209			-luna*)
1210				vendor=omron
1211				;;
1212			-genix*)
1213				vendor=ns
1214				;;
1215			-mvs*)
1216				vendor=ibm
1217				;;
1218			-ptx*)
1219				vendor=sequent
1220				;;
1221			-vxsim* | -vxworks*)
1222				vendor=wrs
1223				;;
1224			-aux*)
1225				vendor=apple
1226				;;
1227			-hms*)				# EGCS LOCAL
1228				vendor=hitachi
1229				;;
1230			-mpw* | -macos*)		# EGCS LOCAL
1231				vendor=apple
1232				;;
1233		esac
1234		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1235		;;
1236esac
1237
1238echo $basic_machine$os
1239