1*62562Selan#!/bin/sh
2*62562Selan# Configuration validation subroutine script, version 1.0.
3*62562Selan#   Copyright (C) 1991, 1992 Free Software Foundation, Inc.
4*62562Selan
5*62562Selan#This file is free software; you can redistribute it and/or modify
6*62562Selan#it under the terms of the GNU General Public License as published by
7*62562Selan#the Free Software Foundation; either version 2 of the License, or
8*62562Selan#(at your option) any later version.
9*62562Selan
10*62562Selan#This program is distributed in the hope that it will be useful,
11*62562Selan#but WITHOUT ANY WARRANTY; without even the implied warranty of
12*62562Selan#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13*62562Selan#GNU General Public License for more details.
14*62562Selan
15*62562Selan#You should have received a copy of the GNU General Public License
16*62562Selan#along with this program; if not, write to the Free Software
17*62562Selan#Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18*62562Selan
19*62562Selan
20*62562Selan# Configuration subroutine to validate and canonicalize a configuration type.
21*62562Selan# Supply the specified configuration type as an argument.
22*62562Selan# If it is invalid, we print an error message on stderr and exit with code 1.
23*62562Selan# Otherwise, we print the canonical config type on stdout and succeed.
24*62562Selan
25*62562Selan# This file is supposed to be the same for all GNU packages
26*62562Selan# and recognize all the CPU types, system types and aliases
27*62562Selan# that are meaningful with *any* GNU software.
28*62562Selan# Each package is responsible for reporting which valid configurations
29*62562Selan# it does not support.  The user should be able to distinguish
30*62562Selan# a failure to support a valid configuration from a meaningless
31*62562Selan# configuration.
32*62562Selan
33*62562Selan# The goal of this file is to map all the various variations of a given
34*62562Selan# machine specification into a single specification in the form:
35*62562Selan#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
36*62562Selan# it is wrong to echo any other type of specification
37*62562Selan
38*62562Selanif [ x$1 = x ]
39*62562Selanthen
40*62562Selan	echo Configuration name missing. 1>&2
41*62562Selan	echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
42*62562Selan	echo "or     $0 ALIAS" 1>&2
43*62562Selan	echo where ALIAS is a recognized configuration type. 1>&2
44*62562Selan	exit 1
45*62562Selanfi
46*62562Selan
47*62562Selan# First pass through any local machine types.
48*62562Selancase $1 in
49*62562Selan	*local*)
50*62562Selan		echo $1
51*62562Selan		exit 0
52*62562Selan		;;
53*62562Selan	*)
54*62562Selan	;;
55*62562Selanesac
56*62562Selan
57*62562Selan# Separate what the user gave into CPU-COMPANY and OS (if any).
58*62562Selanbasic_machine=`echo $1 | sed 's/-[^-][^-]*$//'`
59*62562Selanif [ $basic_machine != $1 ]
60*62562Selanthen os=`echo $1 | sed 's/.*-/-/'`
61*62562Selanelse os=; fi
62*62562Selan
63*62562Selan# Lets recognize common machines as not being OS so that things like
64*62562Selan# config.subr decstation-3100 as legal.
65*62562Selancase $os in
66*62562Selan	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
67*62562Selan	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
68*62562Selan	-unicom* | -ibm* | -next* | -hp | -isi* | -apollo | -altos* | \
69*62562Selan	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -osf* | \
70*62562Selan	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
71*62562Selan	-harris | -sim)
72*62562Selan		os=
73*62562Selan		basic_machine=$1
74*62562Selan		;;
75*62562Selan	-scout)
76*62562Selan		;;
77*62562Selan	-sco*)
78*62562Selan		os=-scosysv322
79*62562Selan		basic_machine=i386-unknown
80*62562Selan		;;
81*62562Selan	-OSE68k | -ose68k | -OSE | -ose | -es1800)
82*62562Selan		os=-ose
83*62562Selan		basic_machine=m68k-ericsson
84*62562Selan		;;
85*62562Selan	-OSE68000 | -ose68000)
86*62562Selan		os=-ose
87*62562Selan		basic_machine=m68000-ericsson
88*62562Selan		;;
89*62562Selan	-isc*)
90*62562Selan		os=-iscsysv
91*62562Selan		basic_machine=i386-unknown
92*62562Selan		;;
93*62562Selanesac
94*62562Selan
95*62562Selan# Decode aliases for certain CPU-COMPANY combinations.
96*62562Selancase $basic_machine in
97*62562Selan	# Recognize the basic CPU types with without company name.
98*62562Selan	tahoe | i386 | i486 | i860 | m68k | m680[01234]0 | m683?2 \
99*62562Selan		| m88k | ns32k | arm | pyramid \
100*62562Selan		| tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 | we32k\
101*62562Selan		| v70 | we32k | z8k)
102*62562Selan		basic_machine=$basic_machine-unknown
103*62562Selan		;;
104*62562Selan	# Recognize the basic CPU types with with company name.
105*62562Selan	vax-* | tahoe-* | i386-* | i486-* | i860-* | m68k-* \
106*62562Selan	      | m680[01234]0-* | m683?2-* | m88k-* \
107*62562Selan	      | sparc-* | ns32k-* | alliant-* | arm-* | c[123]* \
108*62562Selan	      | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
109*62562Selan	      | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
110*62562Selan	      | hppa1.0-* | hppa1.1-* | we32k-* | z8k-*)
111*62562Selan		;;
112*62562Selan	# Recognize the various machine names and aliases which stand
113*62562Selan	# for a CPU type and a company and sometimes even an OS.
114*62562Selan
115*62562Selan
116*62562Selan	vaxv)
117*62562Selan		basic_machine=vax-dec
118*62562Selan		os=-sysv
119*62562Selan		;;
120*62562Selan	vms)
121*62562Selan		basic_machine=vax-dec
122*62562Selan		os=-vms
123*62562Selan		;;
124*62562Selan	i386mach)
125*62562Selan		basic_machine=i386-mach
126*62562Selan		os=-mach
127*62562Selan		;;
128*62562Selan	i386v32)
129*62562Selan		basic_machine=i386-unknown
130*62562Selan		os=-sysv32
131*62562Selan		;;
132*62562Selan	i386-sco* | i386sco | sco)
133*62562Selan		basic_machine=i386-unknown
134*62562Selan		os=-scosysv322
135*62562Selan		;;
136*62562Selan	go32 | i386-go32)
137*62562Selan		basic_machine=i386-unknown
138*62562Selan		os=-go32
139*62562Selan		;;
140*62562Selan	i386-isc* | isc)
141*62562Selan		basic_machine=i386-unknown
142*62562Selan		os=-iscsysv
143*62562Selan		;;
144*62562Selan	i386-linux* | linux)
145*62562Selan		basic_machine=i386-unknown
146*62562Selan		os=-linux
147*62562Selan		;;
148*62562Selan	i386v4*)
149*62562Selan		basic_machine=i386-unknown
150*62562Selan		os=-sysv4
151*62562Selan		;;
152*62562Selan	i486v4*)
153*62562Selan		basic_machine=i486-unknown
154*62562Selan		os=-sysv4
155*62562Selan		;;
156*62562Selan	i386v)
157*62562Selan		basic_machine=i386-unknown
158*62562Selan		os=-sysv
159*62562Selan		;;
160*62562Selan	i486v)
161*62562Selan		basic_machine=i486-unknown
162*62562Selan		os=-sysv
163*62562Selan		;;
164*62562Selan	386bsd)
165*62562Selan		basic_machine=i386-unknown
166*62562Selan		os=-bsd
167*62562Selan		;;
168*62562Selan	spur)
169*62562Selan		basic_machine=spur-unknown
170*62562Selan		;;
171*62562Selan	alliant)
172*62562Selan		basic_machine=alliant-alliant
173*62562Selan		;;
174*62562Selan	convex-c1)
175*62562Selan		basic_machine=c1-convex
176*62562Selan		os=-sysv
177*62562Selan		;;
178*62562Selan	convex-c2)
179*62562Selan		basic_machine=c2-convex
180*62562Selan		os=-sysv
181*62562Selan		;;
182*62562Selan	convex-c32)
183*62562Selan		basic_machine=c32-convex
184*62562Selan		os=-sysv
185*62562Selan		;;
186*62562Selan	convex-c34)
187*62562Selan		basic_machine=c34-convex
188*62562Selan		os=-sysv
189*62562Selan		;;
190*62562Selan	convex-c38)
191*62562Selan		basic_machine=c38-convex
192*62562Selan		os=-sysv
193*62562Selan		;;
194*62562Selan	m88k-omron*)
195*62562Selan		basic_machine=m88k-omron
196*62562Selan		;;
197*62562Selan	merlin)
198*62562Selan		basic_machine=ns32k-utek
199*62562Selan		os=-sysv
200*62562Selan		;;
201*62562Selan	crds | unos)
202*62562Selan		basic_machine=m68k-crds
203*62562Selan		;;
204*62562Selan	encore | umax | mmax)
205*62562Selan		basic_machine=ns32k-encore
206*62562Selan		os=-sysv
207*62562Selan		;;
208*62562Selan	genix)
209*62562Selan		basic_machine=ns32k-ns
210*62562Selan		;;
211*62562Selan	iris | iris3 | iris4d)
212*62562Selan		basic_machine=mips-sgi
213*62562Selan		os=-irix3
214*62562Selan		;;
215*62562Selan	iris4)
216*62562Selan		basic_machine=mips-sgi
217*62562Selan		os=-irix4
218*62562Selan		;;
219*62562Selan	news | news700 | news800 | news900)
220*62562Selan		basic_machine=m68k-sony
221*62562Selan		os=-newsos
222*62562Selan		;;
223*62562Selan	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
224*62562Selan		basic_machine=m68k-att
225*62562Selan		;;
226*62562Selan	3b* | we32k* )
227*62562Selan		basic_machine=we32k-att
228*62562Selan		os=-sysv
229*62562Selan		;;
230*62562Selan	delta | 3300 | motorola-3300 | motorola-delta \
231*62562Selan	      | 3300-motorola | delta-motorola)
232*62562Selan		basic_machine=m68k-motorola
233*62562Selan		;;
234*62562Selan	balance)
235*62562Selan		basic_machine=ns32k-sequent
236*62562Selan		os=-dynix
237*62562Selan		;;
238*62562Selan        pc532)
239*62562Selan		basic_machine=ns32k-pc532
240*62562Selan		;;
241*62562Selan	symmetry)
242*62562Selan		basic_machine=i386-sequent
243*62562Selan		os=-dynix
244*62562Selan		;;
245*62562Selan	sun2)
246*62562Selan		basic_machine=m68000-sun
247*62562Selan		;;
248*62562Selan	sun2os3)
249*62562Selan		basic_machine=m68000-sun
250*62562Selan		os=-sunos3
251*62562Selan		;;
252*62562Selan	sun2os4)
253*62562Selan		basic_machine=m68000-sun
254*62562Selan		os=-sunos4
255*62562Selan		;;
256*62562Selan	sun3os3)
257*62562Selan		basic_machine=m68k-sun
258*62562Selan		os=-sunos3
259*62562Selan		;;
260*62562Selan	sun3os4)
261*62562Selan		basic_machine=m68k-sun
262*62562Selan		os=-sunos4
263*62562Selan		;;
264*62562Selan	sun4os3)
265*62562Selan		basic_machine=sparc-sun
266*62562Selan		os=-sunos3
267*62562Selan		;;
268*62562Selan	sun4os4)
269*62562Selan		basic_machine=sparc-sun
270*62562Selan		os=-sunos4
271*62562Selan		;;
272*62562Selan	sun4sol2)
273*62562Selan		basic_machine=sparc-sun
274*62562Selan		os=-solaris2
275*62562Selan		;;
276*62562Selan	z8ksim)
277*62562Selan		basic_machine=z8k-unknown
278*62562Selan		os=-sim
279*62562Selan		;;
280*62562Selan	sun3)
281*62562Selan		basic_machine=m68k-sun
282*62562Selan		;;
283*62562Selan	sun4)
284*62562Selan		basic_machine=sparc-sun
285*62562Selan		;;
286*62562Selan	msdos)
287*62562Selan		basic_machine=i386-unknown
288*62562Selan		os=-msdos
289*62562Selan		;;
290*62562Selan	pbd)
291*62562Selan		basic_machine=sparc-unicom
292*62562Selan		;;
293*62562Selan	sun386 | sun386i | roadrunner)
294*62562Selan		basic_machine=i386-sun
295*62562Selan		;;
296*62562Selan	ps2)
297*62562Selan		basic_machine=i386-ibm
298*62562Selan		;;
299*62562Selan	next)
300*62562Selan		basic_machine=m68k-next
301*62562Selan		os=-bsd
302*62562Selan		;;
303*62562Selan	hp9k3[2-9][0-9])
304*62562Selan		basic_machine=m68k-hp
305*62562Selan		;;
306*62562Selan	hp9k31[0-9] | hp9k2[0-9][0-9])
307*62562Selan		basic_machine=m68000-hp
308*62562Selan		;;
309*62562Selan	hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
310*62562Selan		basic_machine=hppa1.1-hp
311*62562Selan		;;
312*62562Selan	hp9k8[0-9][0-9] | hp8[0-9][0-9])
313*62562Selan		basic_machine=hppa1.0-hp
314*62562Selan		;;
315*62562Selan	isi68 | isi)
316*62562Selan		basic_machine=m68k-isi
317*62562Selan		os=-sysv
318*62562Selan		;;
319*62562Selan	apollo68)
320*62562Selan		basic_machine=m68k-apollo
321*62562Selan		os=-sysv
322*62562Selan		;;
323*62562Selan	apollo68bsd)
324*62562Selan		basic_machine=m68k-apollo
325*62562Selan		os=-bsd
326*62562Selan		;;
327*62562Selan	altos | altos3068)
328*62562Selan		basic_machine=m68k-altos
329*62562Selan		;;
330*62562Selan	miniframe)
331*62562Selan		basic_machine=m68000-convergent
332*62562Selan		;;
333*62562Selan	tower | tower-32)
334*62562Selan		basic_machine=m68k-ncr
335*62562Selan		;;
336*62562Selan	news-3600 | risc-news)
337*62562Selan		basic_machine=mips-sony
338*62562Selan		os=-newsos
339*62562Selan		;;
340*62562Selan	st2000)
341*62562Selan		basic_machine=m68k-tandem
342*62562Selan		;;
343*62562Selan	decstation-dec | decstation | decstation-3100 | pmax | pmin | dec3100 | decstatn)
344*62562Selan		basic_machine=mips-dec
345*62562Selan		;;
346*62562Selan	magnum | m3230)
347*62562Selan		basic_machine=mips-mips
348*62562Selan		os=-sysv
349*62562Selan		;;
350*62562Selan	gmicro)
351*62562Selan		basic_machine=tron-gmicro
352*62562Selan		os=-sysv
353*62562Selan		;;
354*62562Selan	rtpc | rtpc-*)
355*62562Selan		basic_machine=romp-ibm
356*62562Selan		;;
357*62562Selan	am29k)
358*62562Selan		basic_machine=a29k-none
359*62562Selan		os=-bsd
360*62562Selan		;;
361*62562Selan	amdahl)
362*62562Selan		basic_machine=580-amdahl
363*62562Selan		os=-sysv
364*62562Selan		;;
365*62562Selan	amigados)
366*62562Selan		basic_machine=m68k-cbm
367*62562Selan		os=-amigados
368*62562Selan		;;
369*62562Selan	amigaunix | amix)
370*62562Selan		basic_machine=m68k-cbm
371*62562Selan		os=-sysv4
372*62562Selan		;;
373*62562Selan	stratus)
374*62562Selan		basic_machine=i860-stratus
375*62562Selan		os=-sysv4
376*62562Selan		;;
377*62562Selan	cray | ymp)
378*62562Selan		basic_machine=ymp-cray
379*62562Selan		os=-unicos
380*62562Selan		;;
381*62562Selan	cray2)
382*62562Selan		basic_machine=cray2-cray
383*62562Selan		os=-unicos
384*62562Selan		;;
385*62562Selan	xmp)
386*62562Selan		basic_machine=xmp-cray
387*62562Selan		os=-unicos
388*62562Selan		;;
389*62562Selan	delta88)
390*62562Selan		basic_machine=m88k-motorola
391*62562Selan		os=-m88kbcs
392*62562Selan		;;
393*62562Selan	dpx2)
394*62562Selan		basic_machine=m68k-bull
395*62562Selan		os=-sysv
396*62562Selan		;;
397*62562Selan	ebmon29k)
398*62562Selan		basic_machine=a29k-amd
399*62562Selan		os=-ebmon
400*62562Selan		;;
401*62562Selan
402*62562Selan	h8300hms)
403*62562Selan		basic_machine=h8300-hitachi
404*62562Selan		os=-hms
405*62562Selan		;;
406*62562Selan	udi29k)
407*62562Selan		basic_machine=a29k-amd
408*62562Selan		os=-udi
409*62562Selan		;;
410*62562Selan	a29khif)
411*62562Selan		basic_machine=a29k-amd
412*62562Selan		os=-udi
413*62562Selan		;;
414*62562Selan	sa29200)
415*62562Selan		basic_machine=a29k-amd
416*62562Selan		os=-udi
417*62562Selan		;;
418*62562Selan	h8300xray)
419*62562Selan		basic_machine=h8300-hitachi
420*62562Selan		os=-xray
421*62562Selan		;;
422*62562Selan	harris)
423*62562Selan		basic_machine=m88k-harris
424*62562Selan		os=-m88kbcs
425*62562Selan		;;
426*62562Selan	hp300bsd)
427*62562Selan		basic_machine=m68k-hp
428*62562Selan		os=-bsd
429*62562Selan		;;
430*62562Selan	hp300hpux)
431*62562Selan		basic_machine=m68k-hp
432*62562Selan		os=-hpux
433*62562Selan		;;
434*62562Selan	hp9k2[0-9][0-9] | hp9k31[0-9])
435*62562Selan		basic_machine=m68000-hp
436*62562Selan		os=-hpux
437*62562Selan		;;
438*62562Selan	hp9k3[2-9][0-9])
439*62562Selan		basic_machine=m68k-hp
440*62562Selan		os=-hpux
441*62562Selan		;;
442*62562Selan	hppabsd)
443*62562Selan		basic_machine=hppa-hp
444*62562Selan		os=-bsd
445*62562Selan		;;
446*62562Selan	hppahpux)
447*62562Selan		basic_machine=hppa-hp
448*62562Selan		os=-hpux
449*62562Selan		;;
450*62562Selan	ncr3000)
451*62562Selan		basic_machine=i486-ncr
452*62562Selan		os=-sysv4
453*62562Selan		;;
454*62562Selan	necv70)
455*62562Selan		basic_machine=v70-nec
456*62562Selan		os=-sysv
457*62562Selan		;;
458*62562Selan	news1000)
459*62562Selan		basic_machine=m68030-sony
460*62562Selan		os=-newsos
461*62562Selan		;;
462*62562Selan	nindy960)
463*62562Selan		basic_machine=i960-intel
464*62562Selan		os=-nindy
465*62562Selan		;;
466*62562Selan	pn)
467*62562Selan		basic_machine=pn-gould
468*62562Selan		os=-sysv
469*62562Selan		;;
470*62562Selan	np1)
471*62562Selan		basic_machine=np1-gould
472*62562Selan		os=-sysv
473*62562Selan		;;
474*62562Selan	ultra3)
475*62562Selan		basic_machine=a29k-nyu
476*62562Selan		os=-sym1
477*62562Selan		;;
478*62562Selan	vxworks960)
479*62562Selan		basic_machine=i960-wrs
480*62562Selan		os=-vxworks
481*62562Selan		;;
482*62562Selan	vxworks68)
483*62562Selan		basic_machine=m68k-wrs
484*62562Selan		os=-vxworks
485*62562Selan		;;
486*62562Selan	es1800 | OSE68k | ose68k)
487*62562Selan		basic_machine=m68k-ericsson
488*62562Selan		os=-ose
489*62562Selan		;;
490*62562Selan	OSE68000 | ose68000)
491*62562Selan		basic_machine=m68000-ericsson
492*62562Selan		os=-ose
493*62562Selan		;;
494*62562Selan	os68k)
495*62562Selan		basic_machine=m68k-none
496*62562Selan		os=-os68k
497*62562Selan		;;
498*62562Selan	sparclite)
499*62562Selan		basic_machine=sparclite-fujitsu
500*62562Selan		os=-none
501*62562Selan		;;
502*62562Selan	sparclite-wrs)
503*62562Selan		basic_machine=sparclite-wrs
504*62562Selan		os=-vxworks
505*62562Selan		;;
506*62562Selan	sparcfrw)
507*62562Selan		basic_machine=sparcfrw-sun
508*62562Selan		os=-sunos4
509*62562Selan		;;
510*62562Selan	sparcfrwcompat)
511*62562Selan		basic_machine=sparcfrwcompat-sun
512*62562Selan		os=-sunos4
513*62562Selan		;;
514*62562Selan	sparclitefrw)
515*62562Selan		basic_machine=sparclitefrw-fujitsu
516*62562Selan		os=-none
517*62562Selan		;;
518*62562Selan	sparclitefrwcompat)
519*62562Selan		basic_machine=sparclitefrwcompat-fujitsu
520*62562Selan		os=-none
521*62562Selan		;;
522*62562Selan	adobe68k)
523*62562Selan		basic_machine=m68010-adobe
524*62562Selan		os=-scout
525*62562Selan		;;
526*62562Selan
527*62562Selan	none)
528*62562Selan		basic_machine=none-none
529*62562Selan		os=-none
530*62562Selan		;;
531*62562Selan
532*62562Selan# Here we handle the default manufacturer of certain CPU types.  It is in
533*62562Selan# some cases the only manufacturer, in others, it is the most popular.
534*62562Selan	mips)
535*62562Selan		basic_machine=mips-mips
536*62562Selan		;;
537*62562Selan	romp)
538*62562Selan		basic_machine=romp-ibm
539*62562Selan		;;
540*62562Selan	rs6000)
541*62562Selan		basic_machine=rs6000-ibm
542*62562Selan		;;
543*62562Selan	vax)
544*62562Selan		basic_machine=vax-dec
545*62562Selan		;;
546*62562Selan	sparc)
547*62562Selan		basic_machine=sparc-sun
548*62562Selan		;;
549*62562Selan	fx2800)
550*62562Selan		basic_machine=i860-alliant
551*62562Selan		;;
552*62562Selan	*)
553*62562Selan		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
554*62562Selan		exit 1
555*62562Selan		;;
556*62562Selanesac
557*62562Selan
558*62562Selan# Decode manufacturer-specific aliases for certain operating systems.
559*62562Selan
560*62562Selanif [ "$os" ]
561*62562Selanthen
562*62562Selancase $os in
563*62562Selan	# First accept the basic system types.
564*62562Selan	# The portable systems comes first.
565*62562Selan	# Each alternative must end in a *, to match a version number.
566*62562Selan	-bsd* | -sysv* | -mach* | -minix* | -genix* | -ultrix* \
567*62562Selan	      | -aout | -coff | -elf \
568*62562Selan	      | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos* | -hpux* \
569*62562Selan	      | -unos* | -osf* | -v88r* | -luna* | -dgux* | -solaris* | -sym* \
570*62562Selan	      | -newsos | -amigados* | -msdos* | -none* | -os68k* | -irix* \
571*62562Selan	      | -nindy* | -vxworks* | -ebmon* | -udi | -hms* | -xray \
572*62562Selan	      | -m88kbcs* | -go32 | -linux* | -sim | -es1800*)
573*62562Selan	;;
574*62562Selan
575*62562Selan# Note that readline checks for newsos
576*62562Selan#	-newsos*)
577*62562Selan#		os=-bsd
578*62562Selan#		;;
579*62562Selan	-osfrose*)
580*62562Selan		os=-osf
581*62562Selan		;;
582*62562Selan	-osf*)
583*62562Selan		os=-bsd
584*62562Selan		;;
585*62562Selan	-dynix*)
586*62562Selan		os=-bsd
587*62562Selan		;;
588*62562Selan	-aos*)
589*62562Selan		os=-bsd
590*62562Selan		;;
591*62562Selan	-386bsd)
592*62562Selan		os=-bsd
593*62562Selan		;;
594*62562Selan	-ctix* | -uts*)
595*62562Selan		os=-sysv
596*62562Selan		;;
597*62562Selan	-svr4)
598*62562Selan		os=-sysv4
599*62562Selan		;;
600*62562Selan	-svr3)
601*62562Selan		os=-sysv3
602*62562Selan		;;
603*62562Selan	-ose*)
604*62562Selan		os=-ose
605*62562Selan		;;
606*62562Selan	-es1800*)
607*62562Selan		os=-ose
608*62562Selan		;;
609*62562Selan	*)
610*62562Selan		# Get rid of the `-' at the beginning of $os.
611*62562Selan		os=`echo $1 | sed 's/[^-]*-//'`
612*62562Selan		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
613*62562Selan		exit 1
614*62562Selan		;;
615*62562Selanesac
616*62562Selanelse
617*62562Selan
618*62562Selan# Here we handle the default operating systems that come with various machines.
619*62562Selan# The value should be what the vendor currently ships out the door with their
620*62562Selan# machine or put another way, the most popular os provided with the machine.
621*62562Selancase $basic_machine in
622*62562Selan	*-dec | vax-*)
623*62562Selan		os=-ultrix42
624*62562Selan		;;
625*62562Selan	i386-sun)
626*62562Selan		os=-sunos402
627*62562Selan		;;
628*62562Selan	m68000-sun)
629*62562Selan		os=-sunos3
630*62562Selan		# This also exists in the configure program, but was not the
631*62562Selan		# default.
632*62562Selan		# os=-sunos4
633*62562Selan		;;
634*62562Selan	sparc-* | *-sun)
635*62562Selan		os=-sunos411
636*62562Selan		;;
637*62562Selan	romp-*)
638*62562Selan		os=-bsd
639*62562Selan		;;
640*62562Selan	*-ibm)
641*62562Selan		os=-aix
642*62562Selan		;;
643*62562Selan	*-hp)
644*62562Selan		os=-hpux
645*62562Selan		;;
646*62562Selan	*-sgi | i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
647*62562Selan		os=-sysv
648*62562Selan		;;
649*62562Selan	*-dg)
650*62562Selan		os=-dgux
651*62562Selan		;;
652*62562Selan	m88k-omron*)
653*62562Selan		os=-luna
654*62562Selan		;;
655*62562Selan	*-crds)
656*62562Selan		os=-unos
657*62562Selan		;;
658*62562Selan	*-ns)
659*62562Selan		os=-genix
660*62562Selan		;;
661*62562Selan	i386-*)
662*62562Selan		os=-scosysv322
663*62562Selan		;;
664*62562Selan	*)
665*62562Selan		os=-none
666*62562Selan		;;
667*62562Selanesac
668*62562Selanfi
669*62562Selan
670*62562Selan# Here we handle the case where we know the os, and the CPU type, but not the
671*62562Selan# manufacturer.  We pick the logical manufacturer.
672*62562Selanvendor=unknown
673*62562Selancase $basic_machine in
674*62562Selan	*-unknown)
675*62562Selan		case $os in
676*62562Selan			-sunos*)
677*62562Selan				vendor=sun
678*62562Selan				;;
679*62562Selan			-aix*)
680*62562Selan				vendor=ibm
681*62562Selan				;;
682*62562Selan			-hpux*)
683*62562Selan				vendor=hp
684*62562Selan				;;
685*62562Selan			-unos*)
686*62562Selan				vendor=crds
687*62562Selan				;;
688*62562Selan			-dgux*)
689*62562Selan				vendor=dg
690*62562Selan				;;
691*62562Selan			-luna*)
692*62562Selan				vendor=omron
693*62562Selan				;;
694*62562Selan			-genix*)
695*62562Selan				vendor=ns
696*62562Selan				;;
697*62562Selan			-vxworks*)
698*62562Selan				vendor=wrs
699*62562Selan				;;
700*62562Selan		esac
701*62562Selan		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
702*62562Selan		;;
703*62562Selanesac
704*62562Selan
705*62562Selanecho $basic_machine$os
706