1#! /bin/sh
2# Configuration validation subroutine script, version 1.1.
3#   Copyright (C) 1991, 92, 93, 94, 95, 1996 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	-hiux*)
102		os=-hiuxwe2
103		;;
104	-sco5)
105		os=sco3.2v5
106		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
107		;;
108	-sco4)
109		os=-sco3.2v4
110		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
111		;;
112	-sco3.2.[4-9]*)
113		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
114		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
115		;;
116	-sco3.2v[4-9]*)
117		# Don't forget version if it is 3.2v4 or newer.
118		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
119		;;
120	-sco*)
121		os=-sco3.2v2
122		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
123		;;
124	-isc)
125		os=-isc2.2
126		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
127		;;
128	-clix*)
129		basic_machine=clipper-intergraph
130		;;
131	-isc*)
132		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
133		;;
134	-lynx*)
135		os=-lynxos
136		;;
137	-ptx*)
138		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
139		;;
140	-windowsnt*)
141		os=`echo $os | sed -e 's/windowsnt/winnt/'`
142		;;
143	-psos*)
144		os=-psos
145		;;
146esac
147
148# Decode aliases for certain CPU-COMPANY combinations.
149case $basic_machine in
150	# Recognize the basic CPU types without company name.
151	# Some are omitted here because they have special meanings below.
152	tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \
153		| arme[lb] | pyramid \
154		| tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \
155		| alpha | we32k | ns16k | clipper | i370 | sh \
156		| powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \
157		| pdp11 | mips64el | mips64orion | mips64orionel \
158		| sparc | sparclet | sparclite | sparc64)
159		basic_machine=$basic_machine-unknown
160		;;
161	# We use `pc' rather than `unknown'
162	# because (1) that's what they normally are, and
163	# (2) the word "unknown" tends to confuse beginning users.
164	i[3456]86)
165	  basic_machine=$basic_machine-pc
166	  ;;
167	# Object if more than one company name word.
168	*-*-*)
169		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
170		exit 1
171		;;
172	# Recognize the basic CPU types with company name.
173	vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \
174	      | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
175	      | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
176	      | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
177	      | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
178	      | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \
179	      | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \
180	      | mips64el-* | mips64orion-* | mips64orionel-* | f301-*)
181		;;
182	# Recognize the various machine names and aliases which stand
183	# for a CPU type and a company and sometimes even an OS.
184	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
185		basic_machine=m68000-att
186		;;
187	3b*)
188		basic_machine=we32k-att
189		;;
190	alliant | fx80)
191		basic_machine=fx80-alliant
192		;;
193	altos | altos3068)
194		basic_machine=m68k-altos
195		;;
196	am29k)
197		basic_machine=a29k-none
198		os=-bsd
199		;;
200	amd64*)
201		;;
202	amdahl)
203		basic_machine=580-amdahl
204		os=-sysv
205		;;
206	amiga | amiga-*)
207		basic_machine=m68k-cbm
208		;;
209	amigados)
210		basic_machine=m68k-cbm
211		os=-amigados
212		;;
213	amigaunix | amix)
214		basic_machine=m68k-cbm
215		os=-sysv4
216		;;
217	apollo68)
218		basic_machine=m68k-apollo
219		os=-sysv
220		;;
221	aux)
222		basic_machine=m68k-apple
223		os=-aux
224		;;
225	balance)
226		basic_machine=ns32k-sequent
227		os=-dynix
228		;;
229	convex-c1)
230		basic_machine=c1-convex
231		os=-bsd
232		;;
233	convex-c2)
234		basic_machine=c2-convex
235		os=-bsd
236		;;
237	convex-c32)
238		basic_machine=c32-convex
239		os=-bsd
240		;;
241	convex-c34)
242		basic_machine=c34-convex
243		os=-bsd
244		;;
245	convex-c38)
246		basic_machine=c38-convex
247		os=-bsd
248		;;
249	cray | ymp)
250		basic_machine=ymp-cray
251		os=-unicos
252		;;
253	cray2)
254		basic_machine=cray2-cray
255		os=-unicos
256		;;
257	[ctj]90-cray)
258		basic_machine=c90-cray
259		os=-unicos
260		;;
261	crds | unos)
262		basic_machine=m68k-crds
263		;;
264	da30 | da30-*)
265		basic_machine=m68k-da30
266		;;
267	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
268		basic_machine=mips-dec
269		;;
270	delta | 3300 | motorola-3300 | motorola-delta \
271	      | 3300-motorola | delta-motorola)
272		basic_machine=m68k-motorola
273		;;
274	delta88)
275		basic_machine=m88k-motorola
276		os=-sysv3
277		;;
278	dpx20 | dpx20-*)
279		basic_machine=rs6000-bull
280		os=-bosx
281		;;
282	dpx2* | dpx2*-bull)
283		basic_machine=m68k-bull
284		os=-sysv3
285		;;
286	ebmon29k)
287		basic_machine=a29k-amd
288		os=-ebmon
289		;;
290	elxsi)
291		basic_machine=elxsi-elxsi
292		os=-bsd
293		;;
294	encore | umax | mmax)
295		basic_machine=ns32k-encore
296		;;
297	fx2800)
298		basic_machine=i860-alliant
299		;;
300	genix)
301		basic_machine=ns32k-ns
302		;;
303	gmicro)
304		basic_machine=tron-gmicro
305		os=-sysv
306		;;
307	h3050r* | hiux*)
308		basic_machine=hppa1.1-hitachi
309		os=-hiuxwe2
310		;;
311	h8300hms)
312		basic_machine=h8300-hitachi
313		os=-hms
314		;;
315	harris)
316		basic_machine=m88k-harris
317		os=-sysv3
318		;;
319	hp300-*)
320		basic_machine=m68k-hp
321		;;
322	hp300bsd)
323		basic_machine=m68k-hp
324		os=-bsd
325		;;
326	hp300hpux)
327		basic_machine=m68k-hp
328		os=-hpux
329		;;
330	hp9k2[0-9][0-9] | hp9k31[0-9])
331		basic_machine=m68000-hp
332		;;
333	hp9k3[2-9][0-9])
334		basic_machine=m68k-hp
335		;;
336	hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
337		basic_machine=hppa1.1-hp
338		;;
339	hp9k8[0-9][0-9] | hp8[0-9][0-9])
340		basic_machine=hppa1.0-hp
341		;;
342	hppa-next)
343		os=-nextstep3
344		;;
345	i370-ibm* | ibm*)
346		basic_machine=i370-ibm
347		os=-mvs
348		;;
349# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
350	i[3456]86v32)
351		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
352		os=-sysv32
353		;;
354	i[3456]86v4*)
355		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
356		os=-sysv4
357		;;
358	i[3456]86v)
359		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
360		os=-sysv
361		;;
362	i[3456]86sol2)
363		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
364		os=-solaris2
365		;;
366	iris | iris4d)
367		basic_machine=mips-sgi
368		case $os in
369		    -irix*)
370			;;
371		    *)
372			os=-irix4
373			;;
374		esac
375		;;
376	isi68 | isi)
377		basic_machine=m68k-isi
378		os=-sysv
379		;;
380	m88k-omron*)
381		basic_machine=m88k-omron
382		;;
383	magnum | m3230)
384		basic_machine=mips-mips
385		os=-sysv
386		;;
387	merlin)
388		basic_machine=ns32k-utek
389		os=-sysv
390		;;
391	miniframe)
392		basic_machine=m68000-convergent
393		;;
394	mips3*-*)
395		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
396		;;
397	mips3*)
398		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
399		;;
400	ncr3000)
401		basic_machine=i486-ncr
402		os=-sysv4
403		;;
404	news | news700 | news800 | news900)
405		basic_machine=m68k-sony
406		os=-newsos
407		;;
408	news1000)
409		basic_machine=m68030-sony
410		os=-newsos
411		;;
412	news-3600 | risc-news)
413		basic_machine=mips-sony
414		os=-newsos
415		;;
416	next | m*-next )
417		basic_machine=m68k-next
418		case $os in
419		    -nextstep* )
420			;;
421		    -ns2*)
422		      os=-nextstep2
423			;;
424		    *)
425		      os=-nextstep3
426			;;
427		esac
428		;;
429	nh3000)
430		basic_machine=m68k-harris
431		os=-cxux
432		;;
433	nh[45]000)
434		basic_machine=m88k-harris
435		os=-cxux
436		;;
437	nindy960)
438		basic_machine=i960-intel
439		os=-nindy
440		;;
441	np1)
442		basic_machine=np1-gould
443		;;
444	pa-hitachi)
445		basic_machine=hppa1.1-hitachi
446		os=-hiuxwe2
447		;;
448	paragon)
449		basic_machine=i860-intel
450		os=-osf
451		;;
452	pbd)
453		basic_machine=sparc-tti
454		;;
455	pbb)
456		basic_machine=m68k-tti
457		;;
458        pc532 | pc532-*)
459		basic_machine=ns32k-pc532
460		;;
461	pentium | p5)
462		basic_machine=i586-intel
463		;;
464	pentiumpro | p6)
465		basic_machine=i686-intel
466		;;
467	pentium-* | p5-*)
468		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
469		;;
470	pentiumpro-* | p6-*)
471		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
472		;;
473	k5)
474		# We don't have specific support for AMD's K5 yet, so just call it a Pentium
475		basic_machine=i586-amd
476		;;
477	nexen)
478		# We don't have specific support for Nexgen yet, so just call it a Pentium
479		basic_machine=i586-nexgen
480		;;
481	pn)
482		basic_machine=pn-gould
483		;;
484	power)	basic_machine=rs6000-ibm
485		;;
486	ppc)	basic_machine=powerpc-unknown
487	        ;;
488	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
489		;;
490	ppcle | powerpclittle | ppc-le | powerpc-little)
491		basic_machine=powerpcle-unknown
492	        ;;
493	ppcle-* | powerpclittle-*)
494		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
495		;;
496	ps2)
497		basic_machine=i386-ibm
498		;;
499	rm[46]00)
500		basic_machine=mips-siemens
501		;;
502	rtpc | rtpc-*)
503		basic_machine=romp-ibm
504		;;
505	sequent)
506		basic_machine=i386-sequent
507		;;
508	sh)
509		basic_machine=sh-hitachi
510		os=-hms
511		;;
512	sps7)
513		basic_machine=m68k-bull
514		os=-sysv2
515		;;
516	spur)
517		basic_machine=spur-unknown
518		;;
519	sun2)
520		basic_machine=m68000-sun
521		;;
522	sun2os3)
523		basic_machine=m68000-sun
524		os=-sunos3
525		;;
526	sun2os4)
527		basic_machine=m68000-sun
528		os=-sunos4
529		;;
530	sun3os3)
531		basic_machine=m68k-sun
532		os=-sunos3
533		;;
534	sun3os4)
535		basic_machine=m68k-sun
536		os=-sunos4
537		;;
538	sun4os3)
539		basic_machine=sparc-sun
540		os=-sunos3
541		;;
542	sun4os4)
543		basic_machine=sparc-sun
544		os=-sunos4
545		;;
546	sun4sol2)
547		basic_machine=sparc-sun
548		os=-solaris2
549		;;
550	sun3 | sun3-*)
551		basic_machine=m68k-sun
552		;;
553	sun4)
554		basic_machine=sparc-sun
555		;;
556	sun386 | sun386i | roadrunner)
557		basic_machine=i386-sun
558		;;
559	symmetry)
560		basic_machine=i386-sequent
561		os=-dynix
562		;;
563	tower | tower-32)
564		basic_machine=m68k-ncr
565		;;
566	udi29k)
567		basic_machine=a29k-amd
568		os=-udi
569		;;
570	ultra3)
571		basic_machine=a29k-nyu
572		os=-sym1
573		;;
574	vaxv)
575		basic_machine=vax-dec
576		os=-sysv
577		;;
578	vms)
579		basic_machine=vax-dec
580		os=-vms
581		;;
582       vpp*|vx|vx-*)
583               basic_machine=f301-fujitsu
584               ;;
585	vxworks960)
586		basic_machine=i960-wrs
587		os=-vxworks
588		;;
589	vxworks68)
590		basic_machine=m68k-wrs
591		os=-vxworks
592		;;
593	vxworks29k)
594		basic_machine=a29k-wrs
595		os=-vxworks
596		;;
597	xmp)
598		basic_machine=xmp-cray
599		os=-unicos
600		;;
601        xps | xps100)
602		basic_machine=xps100-honeywell
603		;;
604	none)
605		basic_machine=none-none
606		os=-none
607		;;
608
609# Here we handle the default manufacturer of certain CPU types.  It is in
610# some cases the only manufacturer, in others, it is the most popular.
611	mips)
612		basic_machine=mips-mips
613		;;
614	romp)
615		basic_machine=romp-ibm
616		;;
617	rs6000)
618		basic_machine=rs6000-ibm
619		;;
620	vax)
621		basic_machine=vax-dec
622		;;
623	pdp11)
624		basic_machine=pdp11-dec
625		;;
626	we32k)
627		basic_machine=we32k-att
628		;;
629	sparc)
630		basic_machine=sparc-sun
631		;;
632        cydra)
633		basic_machine=cydra-cydrome
634		;;
635	orion)
636		basic_machine=orion-highlevel
637		;;
638	orion105)
639		basic_machine=clipper-highlevel
640		;;
641	*)
642		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
643		exit 1
644		;;
645esac
646
647# Here we canonicalize certain aliases for manufacturers.
648case $basic_machine in
649	*-digital*)
650		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
651		;;
652	*-commodore*)
653		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
654		;;
655	*)
656		;;
657esac
658
659# Decode manufacturer-specific aliases for certain operating systems.
660
661if [ x"$os" != x"" ]
662then
663case $os in
664        # First match some system type aliases
665        # that might get confused with valid system types.
666	# -solaris* is a basic system type, with this one exception.
667	-solaris1 | -solaris1.*)
668		os=`echo $os | sed -e 's|solaris1|sunos4|'`
669		;;
670	-solaris)
671		os=-solaris2
672		;;
673	-unixware* | svr4*)
674		os=-sysv4
675		;;
676	-gnu/linux*)
677		os=`echo $os | sed -e 's|gnu/linux|linux|'`
678		;;
679	# First accept the basic system types.
680	# The portable systems comes first.
681	# Each alternative MUST END IN A *, to match a version number.
682	# -sysv* is not here because it comes later, after sysvr4.
683	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
684	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
685	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
686	      | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \
687	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
688	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
689	      | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
690	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
691	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
692	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
693	      | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
694	      | -linux* | -uxpv*)
695	# Remember, each alternative MUST END IN *, to match a version number.
696		;;
697	-linux*)
698		os=`echo $os | sed -e 's|linux|linux|'`
699		;;
700	-sunos5*)
701		os=`echo $os | sed -e 's|sunos5|solaris2|'`
702		;;
703	-sunos6*)
704		os=`echo $os | sed -e 's|sunos6|solaris3|'`
705		;;
706	-osfrose*)
707		os=-osfrose
708		;;
709	-osf*)
710		os=-osf
711		;;
712	-utek*)
713		os=-bsd
714		;;
715	-dynix*)
716		os=-bsd
717		;;
718	-acis*)
719		os=-aos
720		;;
721	-ctix* | -uts*)
722		os=-sysv
723		;;
724	-ns2 )
725	        os=-nextstep2
726		;;
727	# Preserve the version number of sinix5.
728	-sinix5.*)
729		os=`echo $os | sed -e 's|sinix|sysv|'`
730		;;
731	-sinix*)
732		os=-sysv4
733		;;
734	-triton*)
735		os=-sysv3
736		;;
737	-oss*)
738		os=-sysv3
739		;;
740	-svr4)
741		os=-sysv4
742		;;
743	-svr3)
744		os=-sysv3
745		;;
746	-sysvr4)
747		os=-sysv4
748		;;
749	# This must come after -sysvr4.
750	-sysv*)
751		;;
752	-xenix)
753		os=-xenix
754		;;
755	-none)
756		;;
757	*)
758		# Get rid of the `-' at the beginning of $os.
759		os=`echo $os | sed 's/[^-]*-//'`
760		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
761		exit 1
762		;;
763esac
764else
765
766# Here we handle the default operating systems that come with various machines.
767# The value should be what the vendor currently ships out the door with their
768# machine or put another way, the most popular os provided with the machine.
769
770# Note that if you're going to try to match "-MANUFACTURER" here (say,
771# "-sun"), then you have to tell the case statement up towards the top
772# that MANUFACTURER isn't an operating system.  Otherwise, code above
773# will signal an error saying that MANUFACTURER isn't an operating
774# system, and we'll never get to this point.
775
776case $basic_machine in
777	*-acorn)
778		os=-riscix1.2
779		;;
780	arm*-semi)
781		os=-aout
782		;;
783        pdp11-*)
784		os=-none
785		;;
786	*-dec | vax-*)
787		os=-ultrix4.2
788		;;
789	m68*-apollo)
790		os=-domain
791		;;
792	i386-sun)
793		os=-sunos4.0.2
794		;;
795	m68000-sun)
796		os=-sunos3
797		# This also exists in the configure program, but was not the
798		# default.
799		# os=-sunos4
800		;;
801	*-tti)	# must be before sparc entry or we get the wrong os.
802		os=-sysv3
803		;;
804	sparc-* | *-sun)
805		os=-sunos4.1.1
806		;;
807	*-ibm)
808		os=-aix
809		;;
810	*-hp)
811		os=-hpux
812		;;
813	*-hitachi)
814		os=-hiux
815		;;
816	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
817		os=-sysv
818		;;
819	*-cbm)
820		os=-amigados
821		;;
822	*-dg)
823		os=-dgux
824		;;
825	*-dolphin)
826		os=-sysv3
827		;;
828	m68k-ccur)
829		os=-rtu
830		;;
831	m88k-omron*)
832		os=-luna
833		;;
834	*-next )
835		os=-nextstep
836		;;
837	*-sequent)
838		os=-ptx
839		;;
840	*-crds)
841		os=-unos
842		;;
843	*-ns)
844		os=-genix
845		;;
846	i370-*)
847		os=-mvs
848		;;
849	*-next)
850		os=-nextstep3
851		;;
852        *-gould)
853		os=-sysv
854		;;
855        *-highlevel)
856		os=-bsd
857		;;
858	*-encore)
859		os=-bsd
860		;;
861        *-sgi)
862		os=-irix
863		;;
864        *-siemens)
865		os=-sysv4
866		;;
867	*-masscomp)
868		os=-rtu
869		;;
870	f301-fujitsu)
871		os=-uxpv
872		;;
873	*)
874		os=-none
875		;;
876esac
877fi
878
879# Here we handle the case where we know the os, and the CPU type, but not the
880# manufacturer.  We pick the logical manufacturer.
881vendor=unknown
882case $basic_machine in
883	*-unknown)
884		case $os in
885			-riscix*)
886				vendor=acorn
887				;;
888			-sunos*)
889				vendor=sun
890				;;
891			-aix*)
892				vendor=ibm
893				;;
894			-hpux*)
895				vendor=hp
896				;;
897			-hiux*)
898				vendor=hitachi
899				;;
900			-unos*)
901				vendor=crds
902				;;
903			-dgux*)
904				vendor=dg
905				;;
906			-luna*)
907				vendor=omron
908				;;
909			-genix*)
910				vendor=ns
911				;;
912			-mvs*)
913				vendor=ibm
914				;;
915			-ptx*)
916				vendor=sequent
917				;;
918			-vxsim* | -vxworks*)
919				vendor=wrs
920				;;
921			-aux*)
922				vendor=apple
923				;;
924		esac
925		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
926		;;
927esac
928
929echo $basic_machine$os
930