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