config.sub revision 127664
1280849Scy#! /bin/sh
2132451Sroberto# Configuration validation subroutine script.
354359Sroberto#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4182007Sroberto#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
5200576Sroberto
6200576Srobertotimestamp='2003-11-03'
754359Sroberto
854359Sroberto# This file is (in principle) common to ALL GNU software.
954359Sroberto# The presence of a machine in this file suggests that SOME GNU software
1054359Sroberto# can handle that machine.  It does not imply ALL GNU software can.
1154359Sroberto#
1254359Sroberto# This file is free software; you can redistribute it and/or modify
1354359Sroberto# it under the terms of the GNU General Public License as published by
1454359Sroberto# the Free Software Foundation; either version 2 of the License, or
1554359Sroberto# (at your option) any later version.
16106163Sroberto#
17106163Sroberto# This program is distributed in the hope that it will be useful,
18280849Scy# but WITHOUT ANY WARRANTY; without even the implied warranty of
19280849Scy# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20280849Scy# GNU General Public License for more details.
21280849Scy#
22280849Scy# You should have received a copy of the GNU General Public License
2354359Sroberto# along with this program; if not, write to the Free Software
2454359Sroberto# Foundation, Inc., 59 Temple Place - Suite 330,
25200576Sroberto# Boston, MA 02111-1307, USA.
2654359Sroberto
27200576Sroberto# As a special exception to the GNU General Public License, if you
28132451Sroberto# distribute this file as part of a program that contains a
29132451Sroberto# configuration script generated by Autoconf, you may include it under
30132451Sroberto# the same distribution terms that you use for the rest of that program.
31132451Sroberto
3282498Sroberto# Please send patches to <config-patches@gnu.org>.  Submit a context
33132451Sroberto# diff and a properly formatted ChangeLog entry.
3454359Sroberto#
3554359Sroberto# Configuration subroutine to validate and canonicalize a configuration type.
3654359Sroberto# Supply the specified configuration type as an argument.
3754359Sroberto# If it is invalid, we print an error message on stderr and exit with code 1.
3854359Sroberto# Otherwise, we print the canonical config type on stdout and succeed.
3954359Sroberto
4054359Sroberto# This file is supposed to be the same for all GNU packages
4154359Sroberto# and recognize all the CPU types, system types and aliases
42182007Sroberto# that are meaningful with *any* GNU software.
43182007Sroberto# Each package is responsible for reporting which valid configurations
44280849Scy# it does not support.  The user should be able to distinguish
45280849Scy# a failure to support a valid configuration from a meaningless
46280849Scy# configuration.
47280849Scy
48280849Scy# The goal of this file is to map all the various variations of a given
49280849Scy# machine specification into a single specification in the form:
50280849Scy#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
51182007Sroberto# or in some cases, the newer four-part form:
52182007Sroberto#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
53280849Scy# It is wrong to echo any other type of specification.
54280849Scy
55282408Scyme=`echo "$0" | sed -e 's,.*/,,'`
56280849Scy
57280849Scyusage="\
58280849ScyUsage: $0 [OPTION] CPU-MFR-OPSYS
59280849Scy       $0 [OPTION] ALIAS
60280849Scy
61280849ScyCanonicalize a configuration name.
62280849Scy
63280849ScyOperation modes:
64280849Scy  -h, --help         print this help, then exit
65280849Scy  -t, --time-stamp   print date of last modification, then exit
66280849Scy  -v, --version      print version number, then exit
67280849Scy
68280849ScyReport bugs and patches to <config-patches@gnu.org>."
69280849Scy
70280849Scyversion="\
71280849ScyGNU config.sub ($timestamp)
72280849Scy
73280849ScyCopyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
74280849ScyFree Software Foundation, Inc.
75280849Scy
76280849ScyThis is free software; see the source for copying conditions.  There is NO
77280849Scywarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
78280849Scy
79280849Scyhelp="
80280849ScyTry \`$me --help' for more information."
81280849Scy
82280849Scy# Parse command line
83280849Scywhile test $# -gt 0 ; do
84282408Scy  case $1 in
85282408Scy    --time-stamp | --time* | -t )
86280849Scy       echo "$timestamp" ; exit 0 ;;
87280849Scy    --version | -v )
88280849Scy       echo "$version" ; exit 0 ;;
89182007Sroberto    --help | --h* | -h )
90182007Sroberto       echo "$usage"; exit 0 ;;
91182007Sroberto    -- )     # Stop option processing
92182007Sroberto       shift; break ;;
93182007Sroberto    - )	# Use stdin as input.
94200576Sroberto       break ;;
95280849Scy    -* )
96280849Scy       echo "$me: invalid option $1$help"
97280849Scy       exit 1 ;;
98280849Scy
99182007Sroberto    *local*)
100280849Scy       # First pass through any local machine types.
101182007Sroberto       echo $1
102280849Scy       exit 0;;
103280849Scy
104280849Scy    * )
105280849Scy       break ;;
106280849Scy  esac
107280849Scydone
108182007Sroberto
109280849Scycase $# in
110182007Sroberto 0) echo "$me: missing argument$help" >&2
111280849Scy    exit 1;;
112280849Scy 1) ;;
113182007Sroberto *) echo "$me: too many arguments$help" >&2
114280849Scy    exit 1;;
115182007Srobertoesac
116280849Scy
117280849Scy# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
118280849Scy# Here we must recognize all the valid KERNEL-OS combinations.
119182007Srobertomaybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
120182007Srobertocase $maybe_os in
121182007Sroberto  nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
122280849Scy  kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
123182007Sroberto    os=-$maybe_os
124280849Scy    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
125280849Scy    ;;
126182007Sroberto  *)
127280849Scy    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
128182007Sroberto    if [ $basic_machine != $1 ]
129280849Scy    then os=`echo $1 | sed 's/.*-/-/'`
130280849Scy    else os=; fi
131280849Scy    ;;
132182007Srobertoesac
133280849Scy
134280849Scy### Let's recognize common machines as not being operating systems so
135280849Scy### that things like config.sub decstation-3100 work.  We also
136280849Scy### recognize some manufacturers as not being operating systems, so we
137182007Sroberto### can provide default operating systems below.
138280849Scycase $os in
139182007Sroberto	-sun*os*)
140280849Scy		# Prevent following clause from handling this invalid input.
141280849Scy		;;
142182007Sroberto	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
143280849Scy	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
144182007Sroberto	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
145280849Scy	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
146280849Scy	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
147182007Sroberto	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
148280849Scy	-apple | -axis)
149182007Sroberto		os=
150280849Scy		basic_machine=$1
151280849Scy		;;
152182007Sroberto	-sim | -cisco | -oki | -wec | -winbond)
153280849Scy		os=
154182007Sroberto		basic_machine=$1
155280849Scy		;;
156280849Scy	-scout)
157182007Sroberto		;;
158280849Scy	-wrs)
159182007Sroberto		os=-vxworks
160280849Scy		basic_machine=$1
161280849Scy		;;
162182007Sroberto	-chorusos*)
163280849Scy		os=-chorusos
164182007Sroberto		basic_machine=$1
165280849Scy		;;
166280849Scy 	-chorusrdb)
167280849Scy 		os=-chorusrdb
168280849Scy		basic_machine=$1
169280849Scy 		;;
170280849Scy	-hiux*)
171182007Sroberto		os=-hiuxwe2
172280849Scy		;;
173280849Scy	-sco5)
174280849Scy		os=-sco3.2v5
175280849Scy		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
176182007Sroberto		;;
177280849Scy	-sco4)
178182007Sroberto		os=-sco3.2v4
179280849Scy		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
180280849Scy		;;
181200576Sroberto	-sco3.2.[4-9]*)
182280849Scy		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
183182007Sroberto		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
184200576Sroberto		;;
185182007Sroberto	-sco3.2v[4-9]*)
186182007Sroberto		# Don't forget version if it is 3.2v4 or newer.
187280849Scy		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
188280849Scy		;;
189280849Scy	-sco*)
190280849Scy		os=-sco3.2v2
191280849Scy		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
192280849Scy		;;
193280849Scy	-udk*)
194280849Scy		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
195280849Scy		;;
196280849Scy	-isc)
197182007Sroberto		os=-isc2.2
198280849Scy		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
199280849Scy		;;
200280849Scy	-clix*)
201280849Scy		basic_machine=clipper-intergraph
202280849Scy		;;
203280849Scy	-isc*)
204280849Scy		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
205280849Scy		;;
206280849Scy	-lynx*)
207182007Sroberto		os=-lynxos
208182007Sroberto		;;
209280849Scy	-ptx*)
210182007Sroberto		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
211182007Sroberto		;;
212280849Scy	-windowsnt*)
213200576Sroberto		os=`echo $os | sed -e 's/windowsnt/winnt/'`
214200576Sroberto		;;
215200576Sroberto	-psos*)
216200576Sroberto		os=-psos
217200576Sroberto		;;
218200576Sroberto	-mint | -mint[0-9]*)
219200576Sroberto		basic_machine=m68k-atari
220200576Sroberto		os=-mint
221200576Sroberto		;;
222200576Srobertoesac
223200576Sroberto
224200576Sroberto# Decode aliases for certain CPU-COMPANY combinations.
225200576Srobertocase $basic_machine in
226200576Sroberto	# Recognize the basic CPU types without company name.
227200576Sroberto	# Some are omitted here because they have special meanings below.
228200576Sroberto	1750a | 580 \
229200576Sroberto	| a29k \
230200576Sroberto	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
231200576Sroberto	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
232200576Sroberto	| am33_2.0 \
233200576Sroberto	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
234182007Sroberto	| c4x | clipper \
235280849Scy	| d10v | d30v | dlx | dsp16xx \
236182007Sroberto	| fr30 | frv \
237280849Scy	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
238280849Scy	| i370 | i860 | i960 | ia64 \
239182007Sroberto	| ip2k | iq2000 \
240182007Sroberto	| m32r | m68000 | m68k | m88k | mcore \
241182007Sroberto	| mips | mipsbe | mipseb | mipsel | mipsle \
242132451Sroberto	| mips16 \
243280849Scy	| mips64 | mips64el \
24454359Sroberto	| mips64vr | mips64vrel \
245280849Scy	| mips64orion | mips64orionel \
246182007Sroberto	| mips64vr4100 | mips64vr4100el \
247132451Sroberto	| mips64vr4300 | mips64vr4300el \
248132451Sroberto	| mips64vr5000 | mips64vr5000el \
249132451Sroberto	| mipsisa32 | mipsisa32el \
25054359Sroberto	| mipsisa32r2 | mipsisa32r2el \
251280849Scy	| mipsisa64 | mipsisa64el \
252280849Scy	| mipsisa64r2 | mipsisa64r2el \
253280849Scy	| mipsisa64sb1 | mipsisa64sb1el \
254280849Scy	| mipsisa64sr71k | mipsisa64sr71kel \
255280849Scy	| mipstx39 | mipstx39el \
25654359Sroberto	| mn10200 | mn10300 \
257132451Sroberto	| msp430 \
25854359Sroberto	| ns16k | ns32k \
259280849Scy	| openrisc | or32 \
26054359Sroberto	| pdp10 | pdp11 | pj | pjl \
261280849Scy	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
26254359Sroberto	| pyramid \
263132451Sroberto	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
264280849Scy	| sh64 | sh64le \
265280849Scy	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
266280849Scy	| strongarm \
267280849Scy	| tahoe | thumb | tic4x | tic80 | tron \
268280849Scy	| v850 | v850e \
269280849Scy	| we32k \
270132451Sroberto	| x86 | xscale | xstormy16 | xtensa \
27154359Sroberto	| z8k)
272132451Sroberto		basic_machine=$basic_machine-unknown
27356746Sroberto		;;
274280849Scy	m6811 | m68hc11 | m6812 | m68hc12)
275280849Scy		# Motorola 68HC11/12.
276280849Scy		basic_machine=$basic_machine-unknown
277132451Sroberto		os=-none
278132451Sroberto		;;
279132451Sroberto	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
280280849Scy		;;
281132451Sroberto
282106163Sroberto	# We use `pc' rather than `unknown'
283280849Scy	# because (1) that's what they normally are, and
284200576Sroberto	# (2) the word "unknown" tends to confuse beginning users.
285280849Scy	i*86 | x86_64)
286280849Scy	  basic_machine=$basic_machine-pc
287280849Scy	  ;;
288280849Scy	# Object if more than one company name word.
289280849Scy	*-*-*)
290200576Sroberto		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
291280849Scy		exit 1
292280849Scy		;;
293200576Sroberto	# Recognize the basic CPU types with company name.
294132451Sroberto	580-* \
295132451Sroberto	| a29k-* \
296132451Sroberto	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
29782498Sroberto	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
298280849Scy	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
299280849Scy	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
300280849Scy	| avr-* \
301280849Scy	| bs2000-* \
302280849Scy	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
303280849Scy	| clipper-* | cydra-* \
30454359Sroberto	| d10v-* | d30v-* | dlx-* \
305280849Scy	| elxsi-* \
306280849Scy	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
307280849Scy	| h8300-* | h8500-* \
308132451Sroberto	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
309182007Sroberto	| i*86-* | i860-* | i960-* | ia64-* \
310182007Sroberto	| ip2k-* | iq2000-* \
311182007Sroberto	| m32r-* \
31254359Sroberto	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
313132451Sroberto	| m88110-* | m88k-* | mcore-* \
314182007Sroberto	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
315280849Scy	| mips16-* \
316280849Scy	| mips64-* | mips64el-* \
31754359Sroberto	| mips64vr-* | mips64vrel-* \
318200576Sroberto	| mips64orion-* | mips64orionel-* \
319132451Sroberto	| mips64vr4100-* | mips64vr4100el-* \
320132451Sroberto	| mips64vr4300-* | mips64vr4300el-* \
32154359Sroberto	| mips64vr5000-* | mips64vr5000el-* \
322182007Sroberto	| mipsisa32-* | mipsisa32el-* \
32354359Sroberto	| mipsisa32r2-* | mipsisa32r2el-* \
324132451Sroberto	| mipsisa64-* | mipsisa64el-* \
32554359Sroberto	| mipsisa64r2-* | mipsisa64r2el-* \
32654359Sroberto	| mipsisa64sb1-* | mipsisa64sb1el-* \
327132451Sroberto	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
328280849Scy	| mipstx39-* | mipstx39el-* \
32954359Sroberto	| msp430-* \
33054359Sroberto	| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
33154359Sroberto	| orion-* \
33282498Sroberto	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
333280849Scy	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
334280849Scy	| pyramid-* \
335200576Sroberto	| romp-* | rs6000-* \
336280849Scy	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
337280849Scy	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
338280849Scy	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
339280849Scy	| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
340280849Scy	| tahoe-* | thumb-* \
341280849Scy	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
342280849Scy	| tron-* \
343280849Scy	| v850-* | v850e-* | vax-* \
344280849Scy	| we32k-* \
345280849Scy	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
346280849Scy	| xtensa-* \
347280849Scy	| ymp-* \
348280849Scy	| z8k-*)
349280849Scy		;;
350280849Scy	# Recognize the various machine names and aliases which stand
351280849Scy	# for a CPU type and a company and sometimes even an OS.
352280849Scy	386bsd)
353280849Scy		basic_machine=i386-unknown
354280849Scy		os=-bsd
355280849Scy		;;
356280849Scy	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
357280849Scy		basic_machine=m68000-att
358280849Scy		;;
359280849Scy	3b*)
360280849Scy		basic_machine=we32k-att
361280849Scy		;;
362280849Scy	a29khif)
363280849Scy		basic_machine=a29k-amd
364280849Scy		os=-udi
365280849Scy		;;
366280849Scy	adobe68k)
367280849Scy		basic_machine=m68010-adobe
368280849Scy		os=-scout
369280849Scy		;;
370280849Scy	alliant | fx80)
371280849Scy		basic_machine=fx80-alliant
372280849Scy		;;
373280849Scy	altos | altos3068)
374280849Scy		basic_machine=m68k-altos
375280849Scy		;;
376280849Scy	am29k)
377280849Scy		basic_machine=a29k-none
378280849Scy		os=-bsd
379280849Scy		;;
380280849Scy	amd64)
381280849Scy		basic_machine=x86_64-pc
382280849Scy		;;
383280849Scy	amdahl)
384280849Scy		basic_machine=580-amdahl
385280849Scy		os=-sysv
386280849Scy		;;
387280849Scy	amiga | amiga-*)
388280849Scy		basic_machine=m68k-unknown
389280849Scy		;;
390280849Scy	amigaos | amigados)
391280849Scy		basic_machine=m68k-unknown
392280849Scy		os=-amigaos
393280849Scy		;;
394280849Scy	amigaunix | amix)
395106163Sroberto		basic_machine=m68k-unknown
396280849Scy		os=-sysv4
397280849Scy		;;
39854359Sroberto	apollo68)
399132451Sroberto		basic_machine=m68k-apollo
400132451Sroberto		os=-sysv
401132451Sroberto		;;
402132451Sroberto	apollo68bsd)
403200576Sroberto		basic_machine=m68k-apollo
404132451Sroberto		os=-bsd
405280849Scy		;;
40682498Sroberto	aux)
407132451Sroberto		basic_machine=m68k-apple
408280849Scy		os=-aux
409280849Scy		;;
410280849Scy	balance)
411280849Scy		basic_machine=ns32k-sequent
41254359Sroberto		os=-dynix
413280849Scy		;;
41454359Sroberto	c90)
415280849Scy		basic_machine=c90-cray
416132451Sroberto		os=-unicos
417132451Sroberto		;;
418280849Scy	convex-c1)
419280849Scy		basic_machine=c1-convex
420280849Scy		os=-bsd
421280849Scy		;;
422280849Scy	convex-c2)
423280849Scy		basic_machine=c2-convex
424280849Scy		os=-bsd
425280849Scy		;;
426280849Scy	convex-c32)
427280849Scy		basic_machine=c32-convex
428132451Sroberto		os=-bsd
42954359Sroberto		;;
430280849Scy	convex-c34)
431280849Scy		basic_machine=c34-convex
432280849Scy		os=-bsd
433280849Scy		;;
434280849Scy	convex-c38)
435280849Scy		basic_machine=c38-convex
436280849Scy		os=-bsd
437280849Scy		;;
438280849Scy	cray | j90)
439280849Scy		basic_machine=j90-cray
440282408Scy		os=-unicos
441282408Scy		;;
442282408Scy	crds | unos)
443282408Scy		basic_machine=m68k-crds
444282408Scy		;;
44554359Sroberto	cris | cris-* | etrax*)
446280849Scy		basic_machine=cris-axis
447280849Scy		;;
448280849Scy	da30 | da30-*)
449200576Sroberto		basic_machine=m68k-da30
450200576Sroberto		;;
451200576Sroberto	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
452200576Sroberto		basic_machine=mips-dec
453280849Scy		;;
454132451Sroberto	decsystem10* | dec10*)
455280849Scy		basic_machine=pdp10-dec
456280849Scy		os=-tops10
457106163Sroberto		;;
458132451Sroberto	decsystem20* | dec20*)
459106163Sroberto		basic_machine=pdp10-dec
460182007Sroberto		os=-tops20
461182007Sroberto		;;
462132451Sroberto	delta | 3300 | motorola-3300 | motorola-delta \
463132451Sroberto	      | 3300-motorola | delta-motorola)
464132451Sroberto		basic_machine=m68k-motorola
465132451Sroberto		;;
466132451Sroberto	delta88)
467132451Sroberto		basic_machine=m88k-motorola
468200576Sroberto		os=-sysv3
469132451Sroberto		;;
470200576Sroberto	dpx20 | dpx20-*)
471200576Sroberto		basic_machine=rs6000-bull
472200576Sroberto		os=-bosx
473132451Sroberto		;;
474132451Sroberto	dpx2* | dpx2*-bull)
475132451Sroberto		basic_machine=m68k-bull
476132451Sroberto		os=-sysv3
477132451Sroberto		;;
478132451Sroberto	ebmon29k)
479200576Sroberto		basic_machine=a29k-amd
480132451Sroberto		os=-ebmon
481132451Sroberto		;;
48256746Sroberto	elxsi)
483132451Sroberto		basic_machine=elxsi-elxsi
484132451Sroberto		os=-bsd
485200576Sroberto		;;
486132451Sroberto	encore | umax | mmax)
487132451Sroberto		basic_machine=ns32k-encore
488182007Sroberto		;;
489132451Sroberto	es1800 | OSE68k | ose68k | ose | OSE)
490200576Sroberto		basic_machine=m68k-ericsson
491132451Sroberto		os=-ose
492132451Sroberto		;;
493200576Sroberto	fx2800)
494132451Sroberto		basic_machine=i860-alliant
495132451Sroberto		;;
496200576Sroberto	genix)
497132451Sroberto		basic_machine=ns32k-ns
498132451Sroberto		;;
499132451Sroberto	gmicro)
500200576Sroberto		basic_machine=tron-gmicro
501200576Sroberto		os=-sysv
502200576Sroberto		;;
503280849Scy	go32)
504280849Scy		basic_machine=i386-pc
505280849Scy		os=-go32
506280849Scy		;;
507280849Scy	h3050r* | hiux*)
508280849Scy		basic_machine=hppa1.1-hitachi
509280849Scy		os=-hiuxwe2
51054359Sroberto		;;
51154359Sroberto	h8300hms)
512280849Scy		basic_machine=h8300-hitachi
513280849Scy		os=-hms
514280849Scy		;;
515280849Scy	h8300xray)
516280849Scy		basic_machine=h8300-hitachi
517182007Sroberto		os=-xray
518280849Scy		;;
519280849Scy	h8500hms)
520280849Scy		basic_machine=h8500-hitachi
521280849Scy		os=-hms
522280849Scy		;;
523280849Scy	harris)
524280849Scy		basic_machine=m88k-harris
525280849Scy		os=-sysv3
526280849Scy		;;
527280849Scy	hp300-*)
528280849Scy		basic_machine=m68k-hp
529280849Scy		;;
530280849Scy	hp300bsd)
53154359Sroberto		basic_machine=m68k-hp
532280849Scy		os=-bsd
533280849Scy		;;
534280849Scy	hp300hpux)
535280849Scy		basic_machine=m68k-hp
536280849Scy		os=-hpux
537280849Scy		;;
538280849Scy	hp3k9[0-9][0-9] | hp9[0-9][0-9])
539106163Sroberto		basic_machine=hppa1.0-hp
540280849Scy		;;
541280849Scy	hp9k2[0-9][0-9] | hp9k31[0-9])
542280849Scy		basic_machine=m68000-hp
543280849Scy		;;
544280849Scy	hp9k3[2-9][0-9])
545280849Scy		basic_machine=m68k-hp
546280849Scy		;;
547280849Scy	hp9k6[0-9][0-9] | hp6[0-9][0-9])
548280849Scy		basic_machine=hppa1.0-hp
549280849Scy		;;
550280849Scy	hp9k7[0-79][0-9] | hp7[0-79][0-9])
551280849Scy		basic_machine=hppa1.1-hp
552280849Scy		;;
553280849Scy	hp9k78[0-9] | hp78[0-9])
554280849Scy		# FIXME: really hppa2.0-hp
555280849Scy		basic_machine=hppa1.1-hp
556280849Scy		;;
557280849Scy	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
558280849Scy		# FIXME: really hppa2.0-hp
559280849Scy		basic_machine=hppa1.1-hp
560280849Scy		;;
561280849Scy	hp9k8[0-9][13679] | hp8[0-9][13679])
562280849Scy		basic_machine=hppa1.1-hp
563282408Scy		;;
564182007Sroberto	hp9k8[0-9][0-9] | hp8[0-9][0-9])
565280849Scy		basic_machine=hppa1.0-hp
566280849Scy		;;
567280849Scy	hppa-next)
568182007Sroberto		os=-nextstep3
569182007Sroberto		;;
57054359Sroberto	hppaosf)
57154359Sroberto		basic_machine=hppa1.1-hp
572182007Sroberto		os=-osf
573280849Scy		;;
574182007Sroberto	hppro)
575182007Sroberto		basic_machine=hppa1.1-hp
576182007Sroberto		os=-proelf
577200576Sroberto		;;
578200576Sroberto	i370-ibm* | ibm*)
579182007Sroberto		basic_machine=i370-ibm
580182007Sroberto		;;
581182007Sroberto# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
582200576Sroberto	i*86v32)
583200576Sroberto		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
584200576Sroberto		os=-sysv32
585182007Sroberto		;;
586182007Sroberto	i*86v4*)
587182007Sroberto		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
588182007Sroberto		os=-sysv4
589182007Sroberto		;;
590182007Sroberto	i*86v)
591182007Sroberto		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
592182007Sroberto		os=-sysv
593182007Sroberto		;;
594182007Sroberto	i*86sol2)
595182007Sroberto		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
596182007Sroberto		os=-solaris2
597182007Sroberto		;;
598182007Sroberto	i386mach)
599182007Sroberto		basic_machine=i386-mach
600182007Sroberto		os=-mach
601182007Sroberto		;;
602200576Sroberto	i386-vsta | vsta)
60354359Sroberto		basic_machine=i386-unknown
60454359Sroberto		os=-vsta
605200576Sroberto		;;
606200576Sroberto	iris | iris4d)
607200576Sroberto		basic_machine=mips-sgi
608200576Sroberto		case $os in
609200576Sroberto		    -irix*)
610200576Sroberto			;;
611200576Sroberto		    *)
612200576Sroberto			os=-irix4
613200576Sroberto			;;
614200576Sroberto		esac
615200576Sroberto		;;
616200576Sroberto	isi68 | isi)
617200576Sroberto		basic_machine=m68k-isi
618200576Sroberto		os=-sysv
619200576Sroberto		;;
620200576Sroberto	m88k-omron*)
621200576Sroberto		basic_machine=m88k-omron
622200576Sroberto		;;
623200576Sroberto	magnum | m3230)
624200576Sroberto		basic_machine=mips-mips
625200576Sroberto		os=-sysv
626200576Sroberto		;;
62754359Sroberto	merlin)
62854359Sroberto		basic_machine=ns32k-utek
62954359Sroberto		os=-sysv
630200576Sroberto		;;
631200576Sroberto	mingw32)
632200576Sroberto		basic_machine=i386-pc
633200576Sroberto		os=-mingw32
634200576Sroberto		;;
635200576Sroberto	miniframe)
636200576Sroberto		basic_machine=m68000-convergent
63754359Sroberto		;;
63882498Sroberto	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
639200576Sroberto		basic_machine=m68k-atari
640200576Sroberto		os=-mint
641200576Sroberto		;;
642200576Sroberto	mips3*-*)
643200576Sroberto		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
644200576Sroberto		;;
645200576Sroberto	mips3*)
646280849Scy		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
647280849Scy		;;
648280849Scy	mmix*)
649280849Scy		basic_machine=mmix-knuth
650280849Scy		os=-mmixware
651280849Scy		;;
652280849Scy	monitor)
653280849Scy		basic_machine=m68k-rom68k
654280849Scy		os=-coff
655280849Scy		;;
656280849Scy	morphos)
657280849Scy		basic_machine=powerpc-unknown
658280849Scy		os=-morphos
659280849Scy		;;
660280849Scy	msdos)
661280849Scy		basic_machine=i386-pc
662280849Scy		os=-msdos
663280849Scy		;;
664280849Scy	mvs)
665280849Scy		basic_machine=i370-ibm
666280849Scy		os=-mvs
667280849Scy		;;
668280849Scy	ncr3000)
669280849Scy		basic_machine=i486-ncr
670280849Scy		os=-sysv4
671280849Scy		;;
672280849Scy	netbsd386)
673280849Scy		basic_machine=i386-unknown
674280849Scy		os=-netbsd
675280849Scy		;;
676280849Scy	netwinder)
677280849Scy		basic_machine=armv4l-rebel
678280849Scy		os=-linux
679280849Scy		;;
680280849Scy	news | news700 | news800 | news900)
681280849Scy		basic_machine=m68k-sony
682280849Scy		os=-newsos
683280849Scy		;;
684280849Scy	news1000)
685280849Scy		basic_machine=m68030-sony
686280849Scy		os=-newsos
687280849Scy		;;
688280849Scy	news-3600 | risc-news)
689280849Scy		basic_machine=mips-sony
690280849Scy		os=-newsos
691280849Scy		;;
692280849Scy	necv70)
693280849Scy		basic_machine=v70-nec
694280849Scy		os=-sysv
695280849Scy		;;
696280849Scy	next | m*-next )
697280849Scy		basic_machine=m68k-next
698280849Scy		case $os in
699280849Scy		    -nextstep* )
700280849Scy			;;
701280849Scy		    -ns2*)
702280849Scy		      os=-nextstep2
703280849Scy			;;
704280849Scy		    *)
705280849Scy		      os=-nextstep3
706280849Scy			;;
707280849Scy		esac
708280849Scy		;;
709280849Scy	nh3000)
710280849Scy		basic_machine=m68k-harris
711280849Scy		os=-cxux
712280849Scy		;;
713280849Scy	nh[45]000)
714280849Scy		basic_machine=m88k-harris
715280849Scy		os=-cxux
716280849Scy		;;
717280849Scy	nindy960)
718280849Scy		basic_machine=i960-intel
719280849Scy		os=-nindy
720280849Scy		;;
721280849Scy	mon960)
722280849Scy		basic_machine=i960-intel
723280849Scy		os=-mon960
724280849Scy		;;
725280849Scy	nonstopux)
726280849Scy		basic_machine=mips-compaq
727280849Scy		os=-nonstopux
728280849Scy		;;
729280849Scy	np1)
730280849Scy		basic_machine=np1-gould
731280849Scy		;;
732132451Sroberto	nv1)
733132451Sroberto		basic_machine=nv1-cray
734280849Scy		os=-unicosmp
735106163Sroberto		;;
736106163Sroberto	nsr-tandem)
737280849Scy		basic_machine=nsr-tandem
738106163Sroberto		;;
739106163Sroberto	op50n-* | op60c-*)
740280849Scy		basic_machine=hppa1.1-oki
741106163Sroberto		os=-proelf
742106163Sroberto		;;
743280849Scy	or32 | or32-*)
744106163Sroberto		basic_machine=or32-unknown
745106163Sroberto		os=-coff
746280849Scy		;;
747106163Sroberto	os400)
748106163Sroberto		basic_machine=powerpc-ibm
749280849Scy		os=-os400
750132451Sroberto		;;
751132451Sroberto	OSE68000 | ose68000)
752280849Scy		basic_machine=m68000-ericsson
753106163Sroberto		os=-ose
754106163Sroberto		;;
755280849Scy	os68k)
756132451Sroberto		basic_machine=m68k-none
757132451Sroberto		os=-os68k
758280849Scy		;;
759106163Sroberto	pa-hitachi)
760106163Sroberto		basic_machine=hppa1.1-hitachi
761280849Scy		os=-hiuxwe2
762106163Sroberto		;;
763106163Sroberto	paragon)
764280849Scy		basic_machine=i860-intel
765106163Sroberto		os=-osf
766106163Sroberto		;;
767280849Scy	pbd)
768182007Sroberto		basic_machine=sparc-tti
769182007Sroberto		;;
770280849Scy	pbb)
771280849Scy		basic_machine=m68k-tti
772280849Scy		;;
773280849Scy	pc532 | pc532-*)
774106163Sroberto		basic_machine=ns32k-pc532
775106163Sroberto		;;
776280849Scy	pentium | p5 | k5 | k6 | nexgen | viac3)
777106163Sroberto		basic_machine=i586-pc
778106163Sroberto		;;
779280849Scy	pentiumpro | p6 | 6x86 | athlon | athlon_*)
78082498Sroberto		basic_machine=i686-pc
78154359Sroberto		;;
782182007Sroberto	pentiumii | pentium2 | pentiumiii | pentium3)
78354359Sroberto		basic_machine=i686-pc
78454359Sroberto		;;
78554359Sroberto	pentium4)
78654359Sroberto		basic_machine=i786-pc
787280849Scy		;;
788280849Scy	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
789280849Scy		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
790280849Scy		;;
791280849Scy	pentiumpro-* | p6-* | 6x86-* | athlon-*)
792280849Scy		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
793280849Scy		;;
794280849Scy	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
795280849Scy		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
796280849Scy		;;
797280849Scy	pentium4-*)
798280849Scy		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
799280849Scy		;;
800280849Scy	pn)
801280849Scy		basic_machine=pn-gould
802280849Scy		;;
803280849Scy	power)	basic_machine=power-ibm
80454359Sroberto		;;
805106163Sroberto	ppc)	basic_machine=powerpc-unknown
806280849Scy		;;
807280849Scy	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
808280849Scy		;;
809132451Sroberto	ppcle | powerpclittle | ppc-le | powerpc-little)
810182007Sroberto		basic_machine=powerpcle-unknown
811182007Sroberto		;;
81254359Sroberto	ppcle-* | powerpclittle-*)
813106163Sroberto		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
814280849Scy		;;
815280849Scy	ppc64)	basic_machine=powerpc64-unknown
816280849Scy		;;
817132451Sroberto	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
818182007Sroberto		;;
819182007Sroberto	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
820182007Sroberto		basic_machine=powerpc64le-unknown
821182007Sroberto		;;
822280849Scy	ppc64le-* | powerpc64little-*)
823280849Scy		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
824280849Scy		;;
825182007Sroberto	ps2)
826182007Sroberto		basic_machine=i386-ibm
827182007Sroberto		;;
82854359Sroberto	pw32)
829182007Sroberto		basic_machine=i586-unknown
830182007Sroberto		os=-pw32
831132451Sroberto		;;
832182007Sroberto	rom68k)
833182007Sroberto		basic_machine=m68k-rom68k
834280849Scy		os=-coff
835182007Sroberto		;;
836200576Sroberto	rm[46]00)
837280849Scy		basic_machine=mips-siemens
838200576Sroberto		;;
839200576Sroberto	rtpc | rtpc-*)
840200576Sroberto		basic_machine=romp-ibm
841200576Sroberto		;;
842200576Sroberto	s390 | s390-*)
843200576Sroberto		basic_machine=s390-ibm
844200576Sroberto		;;
845200576Sroberto	s390x | s390x-*)
846200576Sroberto		basic_machine=s390x-ibm
847200576Sroberto		;;
848200576Sroberto	sa29200)
849200576Sroberto		basic_machine=a29k-amd
850200576Sroberto		os=-udi
851200576Sroberto		;;
852200576Sroberto	sb1)
853182007Sroberto		basic_machine=mipsisa64sb1-unknown
854200576Sroberto		;;
855200576Sroberto	sb1el)
856200576Sroberto		basic_machine=mipsisa64sb1el-unknown
857200576Sroberto		;;
858200576Sroberto	sei)
859200576Sroberto		basic_machine=mips-sei
860200576Sroberto		os=-seiux
861182007Sroberto		;;
862182007Sroberto	sequent)
863280849Scy		basic_machine=i386-sequent
864200576Sroberto		;;
865200576Sroberto	sh)
866200576Sroberto		basic_machine=sh-hitachi
867200576Sroberto		os=-hms
868200576Sroberto		;;
869200576Sroberto	sh64)
870200576Sroberto		basic_machine=sh64-unknown
871200576Sroberto		;;
872280849Scy	sparclite-wrs | simso-wrs)
873280849Scy		basic_machine=sparclite-wrs
874280849Scy		os=-vxworks
875280849Scy		;;
876280849Scy	sps7)
877280849Scy		basic_machine=m68k-bull
878280849Scy		os=-sysv2
879280849Scy		;;
880280849Scy	spur)
881280849Scy		basic_machine=spur-unknown
882280849Scy		;;
883280849Scy	st2000)
884280849Scy		basic_machine=m68k-tandem
885280849Scy		;;
886280849Scy	stratus)
887280849Scy		basic_machine=i860-stratus
888280849Scy		os=-sysv4
889280849Scy		;;
890280849Scy	sun2)
891280849Scy		basic_machine=m68000-sun
892280849Scy		;;
893280849Scy	sun2os3)
894280849Scy		basic_machine=m68000-sun
895280849Scy		os=-sunos3
896280849Scy		;;
897280849Scy	sun2os4)
89854359Sroberto		basic_machine=m68000-sun
899280849Scy		os=-sunos4
900280849Scy		;;
901280849Scy	sun3os3)
902280849Scy		basic_machine=m68k-sun
903280849Scy		os=-sunos3
904280849Scy		;;
905280849Scy	sun3os4)
906280849Scy		basic_machine=m68k-sun
907280849Scy		os=-sunos4
908280849Scy		;;
909280849Scy	sun4os3)
910280849Scy		basic_machine=sparc-sun
911280849Scy		os=-sunos3
912280849Scy		;;
913280849Scy	sun4os4)
914280849Scy		basic_machine=sparc-sun
915280849Scy		os=-sunos4
916280849Scy		;;
917280849Scy	sun4sol2)
918280849Scy		basic_machine=sparc-sun
919280849Scy		os=-solaris2
920280849Scy		;;
921280849Scy	sun3 | sun3-*)
922280849Scy		basic_machine=m68k-sun
923280849Scy		;;
924280849Scy	sun4)
925280849Scy		basic_machine=sparc-sun
926280849Scy		;;
927280849Scy	sun386 | sun386i | roadrunner)
928280849Scy		basic_machine=i386-sun
929280849Scy		;;
930280849Scy	sv1)
93156746Sroberto		basic_machine=sv1-cray
932132451Sroberto		os=-unicos
93356746Sroberto		;;
93456746Sroberto	symmetry)
93556746Sroberto		basic_machine=i386-sequent
936200576Sroberto		os=-dynix
937200576Sroberto		;;
938132451Sroberto	t3e)
939182007Sroberto		basic_machine=alphaev5-cray
94054359Sroberto		os=-unicos
941106163Sroberto		;;
94256746Sroberto	t90)
943200576Sroberto		basic_machine=t90-cray
94454359Sroberto		os=-unicos
945132451Sroberto		;;
94656746Sroberto	tic54x | c54x*)
94756746Sroberto		basic_machine=tic54x-unknown
94856746Sroberto		os=-coff
949200576Sroberto		;;
950200576Sroberto	tic55x | c55x*)
951200576Sroberto		basic_machine=tic55x-unknown
952200576Sroberto		os=-coff
953182007Sroberto		;;
954200576Sroberto	tic6x | c6x*)
955200576Sroberto		basic_machine=tic6x-unknown
956200576Sroberto		os=-coff
957200576Sroberto		;;
958200576Sroberto	tx39)
959200576Sroberto		basic_machine=mipstx39-unknown
960200576Sroberto		;;
961182007Sroberto	tx39el)
962132451Sroberto		basic_machine=mipstx39el-unknown
963132451Sroberto		;;
964132451Sroberto	toad1)
965132451Sroberto		basic_machine=pdp10-xkl
966132451Sroberto		os=-tops20
967132451Sroberto		;;
968132451Sroberto	tower | tower-32)
969200576Sroberto		basic_machine=m68k-ncr
970200576Sroberto		;;
971200576Sroberto	tpf)
972132451Sroberto		basic_machine=s390x-ibm
973200576Sroberto		os=-tpf
974132451Sroberto		;;
97582498Sroberto	udi29k)
976132451Sroberto		basic_machine=a29k-amd
977200576Sroberto		os=-udi
978200576Sroberto		;;
97954359Sroberto	ultra3)
98054359Sroberto		basic_machine=a29k-nyu
981132451Sroberto		os=-sym1
98282498Sroberto		;;
98382498Sroberto	v810 | necv810)
984200576Sroberto		basic_machine=v810-nec
985200576Sroberto		os=-none
986200576Sroberto		;;
987200576Sroberto	vaxv)
988200576Sroberto		basic_machine=vax-dec
989200576Sroberto		os=-sysv
990200576Sroberto		;;
991200576Sroberto	vms)
992200576Sroberto		basic_machine=vax-dec
993200576Sroberto		os=-vms
994200576Sroberto		;;
995200576Sroberto	vpp*|vx|vx-*)
996200576Sroberto		basic_machine=f301-fujitsu
997200576Sroberto		;;
998200576Sroberto	vxworks960)
999200576Sroberto		basic_machine=i960-wrs
1000200576Sroberto		os=-vxworks
1001200576Sroberto		;;
1002200576Sroberto	vxworks68)
1003200576Sroberto		basic_machine=m68k-wrs
1004200576Sroberto		os=-vxworks
1005200576Sroberto		;;
1006200576Sroberto	vxworks29k)
1007200576Sroberto		basic_machine=a29k-wrs
1008200576Sroberto		os=-vxworks
1009132451Sroberto		;;
101082498Sroberto	w65*)
1011200576Sroberto		basic_machine=w65-wdc
1012200576Sroberto		os=-none
1013200576Sroberto		;;
1014200576Sroberto	w89k-*)
1015132451Sroberto		basic_machine=hppa1.1-winbond
1016200576Sroberto		os=-proelf
1017200576Sroberto		;;
1018132451Sroberto	xps | xps100)
1019200576Sroberto		basic_machine=xps100-honeywell
102082498Sroberto		;;
1021200576Sroberto	ymp)
1022200576Sroberto		basic_machine=ymp-cray
102382498Sroberto		os=-unicos
102482498Sroberto		;;
102582498Sroberto	z8k-*-coff)
102654359Sroberto		basic_machine=z8k-unknown
1027182007Sroberto		os=-sim
1028182007Sroberto		;;
1029280849Scy	none)
103082498Sroberto		basic_machine=none-none
1031280849Scy		os=-none
1032200576Sroberto		;;
1033182007Sroberto
1034182007Sroberto# Here we handle the default manufacturer of certain CPU types.  It is in
1035182007Sroberto# some cases the only manufacturer, in others, it is the most popular.
103654359Sroberto	w89k)
103754359Sroberto		basic_machine=hppa1.1-winbond
103882498Sroberto		;;
103954359Sroberto	op50n)
104054359Sroberto		basic_machine=hppa1.1-oki
104154359Sroberto		;;
104282498Sroberto	op60c)
104382498Sroberto		basic_machine=hppa1.1-oki
104454359Sroberto		;;
104582498Sroberto	romp)
1046182007Sroberto		basic_machine=romp-ibm
1047106163Sroberto		;;
1048106163Sroberto	rs6000)
104954359Sroberto		basic_machine=rs6000-ibm
105054359Sroberto		;;
105154359Sroberto	vax)
1052280849Scy		basic_machine=vax-dec
105354359Sroberto		;;
105454359Sroberto	pdp10)
1055182007Sroberto		# there are many clones, so DEC is not a safe bet
1056200576Sroberto		basic_machine=pdp10-unknown
1057280849Scy		;;
105854359Sroberto	pdp11)
105954359Sroberto		basic_machine=pdp11-dec
106082498Sroberto		;;
106182498Sroberto	we32k)
1062182007Sroberto		basic_machine=we32k-att
106382498Sroberto		;;
106454359Sroberto	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
1065280849Scy		basic_machine=sh-unknown
1066280849Scy		;;
106754359Sroberto	sh64)
106882498Sroberto		basic_machine=sh64-unknown
1069132451Sroberto		;;
1070132451Sroberto	sparc | sparcv9 | sparcv9b)
1071132451Sroberto		basic_machine=sparc-sun
1072200576Sroberto		;;
107354359Sroberto	cydra)
1074106163Sroberto		basic_machine=cydra-cydrome
107554359Sroberto		;;
107682498Sroberto	orion)
107754359Sroberto		basic_machine=orion-highlevel
1078182007Sroberto		;;
1079182007Sroberto	orion105)
1080200576Sroberto		basic_machine=clipper-highlevel
1081200576Sroberto		;;
1082106163Sroberto	mac | mpw | mac-mpw)
108354359Sroberto		basic_machine=m68k-apple
108482498Sroberto		;;
108582498Sroberto	pmac | pmac-mpw)
1086280849Scy		basic_machine=powerpc-apple
108782498Sroberto		;;
1088200576Sroberto	*-unknown)
1089200576Sroberto		# Make sure to match an already-canonicalized machine name.
1090200576Sroberto		;;
1091200576Sroberto	*)
1092280849Scy		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1093280849Scy		exit 1
1094280849Scy		;;
1095280849Scyesac
1096200576Sroberto
1097200576Sroberto# Here we canonicalize certain aliases for manufacturers.
1098200576Srobertocase $basic_machine in
1099200576Sroberto	*-digital*)
1100106163Sroberto		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
110182498Sroberto		;;
1102200576Sroberto	*-commodore*)
1103200576Sroberto		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1104280849Scy		;;
110582498Sroberto	*)
1106200576Sroberto		;;
1107200576Srobertoesac
1108200576Sroberto
1109200576Sroberto# Decode manufacturer-specific aliases for certain operating systems.
1110200576Sroberto
1111200576Srobertoif [ x"$os" != x"" ]
1112200576Srobertothen
1113200576Srobertocase $os in
111482498Sroberto        # First match some system type aliases
111582498Sroberto        # that might get confused with valid system types.
111654359Sroberto	# -solaris* is a basic system type, with this one exception.
1117132451Sroberto	-solaris1 | -solaris1.*)
1118132451Sroberto		os=`echo $os | sed -e 's|solaris1|sunos4|'`
111982498Sroberto		;;
112054359Sroberto	-solaris)
112182498Sroberto		os=-solaris2
112254359Sroberto		;;
1123280849Scy	-svr4*)
1124182007Sroberto		os=-sysv4
112582498Sroberto		;;
1126132451Sroberto	-unixware*)
1127132451Sroberto		os=-sysv4.2uw
1128132451Sroberto		;;
1129132451Sroberto	-gnu/linux*)
1130132451Sroberto		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1131132451Sroberto		;;
1132132451Sroberto	# First accept the basic system types.
1133132451Sroberto	# The portable systems comes first.
1134280849Scy	# Each alternative MUST END IN A *, to match a version number.
1135280849Scy	# -sysv* is not here because it comes later, after sysvr4.
113682498Sroberto	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1137280849Scy	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
1138182007Sroberto	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
1139280849Scy	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1140200576Sroberto	      | -aos* \
1141132451Sroberto	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1142280849Scy	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1143280849Scy	      | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \
1144280849Scy	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1145280849Scy	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1146280849Scy	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1147280849Scy	      | -chorusos* | -chorusrdb* \
1148280849Scy	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1149280849Scy	      | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
1150280849Scy	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1151280849Scy	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1152182007Sroberto	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1153106163Sroberto	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1154280849Scy	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1155280849Scy	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
1156280849Scy	# Remember, each alternative MUST END IN *, to match a version number.
1157280849Scy		;;
115882498Sroberto	-qnx*)
115982498Sroberto		case $basic_machine in
1160182007Sroberto		    x86-* | i*86-*)
1161280849Scy			;;
1162280849Scy		    *)
1163182007Sroberto			os=-nto$os
1164182007Sroberto			;;
1165182007Sroberto		esac
1166280849Scy		;;
1167182007Sroberto	-nto-qnx*)
1168280849Scy		;;
1169280849Scy	-nto*)
1170182007Sroberto		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1171280849Scy		;;
1172280849Scy	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1173280849Scy	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
117454359Sroberto	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1175280849Scy		;;
1176280849Scy	-mac*)
1177280849Scy		os=`echo $os | sed -e 's|mac|macos|'`
1178280849Scy		;;
1179280849Scy	-linux-dietlibc)
1180280849Scy		os=-linux-dietlibc
1181280849Scy		;;
1182280849Scy	-linux*)
1183280849Scy		os=`echo $os | sed -e 's|linux|linux-gnu|'`
1184280849Scy		;;
1185280849Scy	-sunos5*)
1186280849Scy		os=`echo $os | sed -e 's|sunos5|solaris2|'`
1187280849Scy		;;
1188280849Scy	-sunos6*)
1189280849Scy		os=`echo $os | sed -e 's|sunos6|solaris3|'`
1190280849Scy		;;
1191280849Scy	-opened*)
1192280849Scy		os=-openedition
1193280849Scy		;;
1194280849Scy        -os400*)
1195280849Scy		os=-os400
1196280849Scy		;;
1197280849Scy	-wince*)
1198280849Scy		os=-wince
1199280849Scy		;;
1200280849Scy	-osfrose*)
1201280849Scy		os=-osfrose
120254359Sroberto		;;
120354359Sroberto	-osf*)
1204200576Sroberto		os=-osf
1205280849Scy		;;
1206280849Scy	-utek*)
1207280849Scy		os=-bsd
1208280849Scy		;;
1209280849Scy	-dynix*)
1210280849Scy		os=-bsd
1211280849Scy		;;
1212280849Scy	-acis*)
1213280849Scy		os=-aos
1214280849Scy		;;
1215280849Scy	-atheos*)
1216280849Scy		os=-atheos
1217280849Scy		;;
1218280849Scy	-386bsd)
1219280849Scy		os=-bsd
1220280849Scy		;;
1221280849Scy	-ctix* | -uts*)
1222280849Scy		os=-sysv
1223280849Scy		;;
1224280849Scy	-nova*)
1225280849Scy		os=-rtmk-nova
1226280849Scy		;;
1227280849Scy	-ns2 )
1228280849Scy		os=-nextstep2
1229280849Scy		;;
1230280849Scy	-nsk*)
1231280849Scy		os=-nsk
1232280849Scy		;;
1233280849Scy	# Preserve the version number of sinix5.
1234280849Scy	-sinix5.*)
1235280849Scy		os=`echo $os | sed -e 's|sinix|sysv|'`
1236280849Scy		;;
1237280849Scy	-sinix*)
1238280849Scy		os=-sysv4
1239280849Scy		;;
1240280849Scy        -tpf*)
1241280849Scy		os=-tpf
1242280849Scy		;;
1243280849Scy	-triton*)
1244280849Scy		os=-sysv3
1245280849Scy		;;
1246280849Scy	-oss*)
1247280849Scy		os=-sysv3
1248280849Scy		;;
1249280849Scy	-svr4)
1250280849Scy		os=-sysv4
1251280849Scy		;;
1252280849Scy	-svr3)
1253280849Scy		os=-sysv3
1254280849Scy		;;
1255280849Scy	-sysvr4)
1256280849Scy		os=-sysv4
1257280849Scy		;;
1258280849Scy	# This must come after -sysvr4.
1259280849Scy	-sysv*)
1260280849Scy		;;
1261280849Scy	-ose*)
1262280849Scy		os=-ose
1263280849Scy		;;
1264280849Scy	-es1800*)
1265280849Scy		os=-ose
1266280849Scy		;;
1267280849Scy	-xenix)
1268280849Scy		os=-xenix
1269280849Scy		;;
1270280849Scy	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1271280849Scy		os=-mint
1272280849Scy		;;
1273280849Scy	-aros*)
1274280849Scy		os=-aros
1275280849Scy		;;
1276280849Scy	-kaos*)
1277280849Scy		os=-kaos
1278280849Scy		;;
1279280849Scy	-none)
1280280849Scy		;;
1281280849Scy	*)
1282280849Scy		# Get rid of the `-' at the beginning of $os.
1283280849Scy		os=`echo $os | sed 's/[^-]*-//'`
1284280849Scy		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1285280849Scy		exit 1
1286280849Scy		;;
1287280849Scyesac
1288280849Scyelse
1289280849Scy
1290280849Scy# Here we handle the default operating systems that come with various machines.
1291280849Scy# The value should be what the vendor currently ships out the door with their
1292280849Scy# machine or put another way, the most popular os provided with the machine.
1293280849Scy
1294280849Scy# Note that if you're going to try to match "-MANUFACTURER" here (say,
1295280849Scy# "-sun"), then you have to tell the case statement up towards the top
1296280849Scy# that MANUFACTURER isn't an operating system.  Otherwise, code above
1297280849Scy# will signal an error saying that MANUFACTURER isn't an operating
1298280849Scy# system, and we'll never get to this point.
129954359Sroberto
130054359Srobertocase $basic_machine in
130154359Sroberto	*-acorn)
1302		os=-riscix1.2
1303		;;
1304	arm*-rebel)
1305		os=-linux
1306		;;
1307	arm*-semi)
1308		os=-aout
1309		;;
1310    c4x-* | tic4x-*)
1311        os=-coff
1312        ;;
1313	# This must come before the *-dec entry.
1314	pdp10-*)
1315		os=-tops20
1316		;;
1317	pdp11-*)
1318		os=-none
1319		;;
1320	*-dec | vax-*)
1321		os=-ultrix4.2
1322		;;
1323	m68*-apollo)
1324		os=-domain
1325		;;
1326	i386-sun)
1327		os=-sunos4.0.2
1328		;;
1329	m68000-sun)
1330		os=-sunos3
1331		# This also exists in the configure program, but was not the
1332		# default.
1333		# os=-sunos4
1334		;;
1335	m68*-cisco)
1336		os=-aout
1337		;;
1338	mips*-cisco)
1339		os=-elf
1340		;;
1341	mips*-*)
1342		os=-elf
1343		;;
1344	or32-*)
1345		os=-coff
1346		;;
1347	*-tti)	# must be before sparc entry or we get the wrong os.
1348		os=-sysv3
1349		;;
1350	sparc-* | *-sun)
1351		os=-sunos4.1.1
1352		;;
1353	*-be)
1354		os=-beos
1355		;;
1356	*-ibm)
1357		os=-aix
1358		;;
1359	*-wec)
1360		os=-proelf
1361		;;
1362	*-winbond)
1363		os=-proelf
1364		;;
1365	*-oki)
1366		os=-proelf
1367		;;
1368	*-hp)
1369		os=-hpux
1370		;;
1371	*-hitachi)
1372		os=-hiux
1373		;;
1374	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1375		os=-sysv
1376		;;
1377	*-cbm)
1378		os=-amigaos
1379		;;
1380	*-dg)
1381		os=-dgux
1382		;;
1383	*-dolphin)
1384		os=-sysv3
1385		;;
1386	m68k-ccur)
1387		os=-rtu
1388		;;
1389	m88k-omron*)
1390		os=-luna
1391		;;
1392	*-next )
1393		os=-nextstep
1394		;;
1395	*-sequent)
1396		os=-ptx
1397		;;
1398	*-crds)
1399		os=-unos
1400		;;
1401	*-ns)
1402		os=-genix
1403		;;
1404	i370-*)
1405		os=-mvs
1406		;;
1407	*-next)
1408		os=-nextstep3
1409		;;
1410	*-gould)
1411		os=-sysv
1412		;;
1413	*-highlevel)
1414		os=-bsd
1415		;;
1416	*-encore)
1417		os=-bsd
1418		;;
1419	*-sgi)
1420		os=-irix
1421		;;
1422	*-siemens)
1423		os=-sysv4
1424		;;
1425	*-masscomp)
1426		os=-rtu
1427		;;
1428	f30[01]-fujitsu | f700-fujitsu)
1429		os=-uxpv
1430		;;
1431	*-rom68k)
1432		os=-coff
1433		;;
1434	*-*bug)
1435		os=-coff
1436		;;
1437	*-apple)
1438		os=-macos
1439		;;
1440	*-atari*)
1441		os=-mint
1442		;;
1443	*)
1444		os=-none
1445		;;
1446esac
1447fi
1448
1449# Here we handle the case where we know the os, and the CPU type, but not the
1450# manufacturer.  We pick the logical manufacturer.
1451vendor=unknown
1452case $basic_machine in
1453	*-unknown)
1454		case $os in
1455			-riscix*)
1456				vendor=acorn
1457				;;
1458			-sunos*)
1459				vendor=sun
1460				;;
1461			-aix*)
1462				vendor=ibm
1463				;;
1464			-beos*)
1465				vendor=be
1466				;;
1467			-hpux*)
1468				vendor=hp
1469				;;
1470			-mpeix*)
1471				vendor=hp
1472				;;
1473			-hiux*)
1474				vendor=hitachi
1475				;;
1476			-unos*)
1477				vendor=crds
1478				;;
1479			-dgux*)
1480				vendor=dg
1481				;;
1482			-luna*)
1483				vendor=omron
1484				;;
1485			-genix*)
1486				vendor=ns
1487				;;
1488			-mvs* | -opened*)
1489				vendor=ibm
1490				;;
1491			-os400*)
1492				vendor=ibm
1493				;;
1494			-ptx*)
1495				vendor=sequent
1496				;;
1497			-tpf*)
1498				vendor=ibm
1499				;;
1500			-vxsim* | -vxworks* | -windiss*)
1501				vendor=wrs
1502				;;
1503			-aux*)
1504				vendor=apple
1505				;;
1506			-hms*)
1507				vendor=hitachi
1508				;;
1509			-mpw* | -macos*)
1510				vendor=apple
1511				;;
1512			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1513				vendor=atari
1514				;;
1515			-vos*)
1516				vendor=stratus
1517				;;
1518		esac
1519		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1520		;;
1521esac
1522
1523echo $basic_machine$os
1524exit 0
1525
1526# Local variables:
1527# eval: (add-hook 'write-file-hooks 'time-stamp)
1528# time-stamp-start: "timestamp='"
1529# time-stamp-format: "%:y-%02m-%02d"
1530# time-stamp-end: "'"
1531# End:
1532