169408Sache#! /bin/sh
2100616Smp# Configuration validation subroutine script.
3100616Smp#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4232633Smp#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5195609Smp#   Free Software Foundation, Inc.
6100616Smp
7232633Smptimestamp='2009-12-31'
8100616Smp
969408Sache# This file is (in principle) common to ALL GNU software.
1069408Sache# The presence of a machine in this file suggests that SOME GNU software
1169408Sache# can handle that machine.  It does not imply ALL GNU software can.
1269408Sache#
1369408Sache# This file is free software; you can redistribute it and/or modify
1469408Sache# it under the terms of the GNU General Public License as published by
1569408Sache# the Free Software Foundation; either version 2 of the License, or
1669408Sache# (at your option) any later version.
1769408Sache#
1869408Sache# This program is distributed in the hope that it will be useful,
1969408Sache# but WITHOUT ANY WARRANTY; without even the implied warranty of
2069408Sache# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2169408Sache# GNU General Public License for more details.
2269408Sache#
2369408Sache# You should have received a copy of the GNU General Public License
2469408Sache# along with this program; if not, write to the Free Software
25195609Smp# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
26195609Smp# 02110-1301, USA.
27195609Smp#
2869408Sache# As a special exception to the GNU General Public License, if you
2969408Sache# distribute this file as part of a program that contains a
3069408Sache# configuration script generated by Autoconf, you may include it under
3169408Sache# the same distribution terms that you use for the rest of that program.
3269408Sache
33195609Smp
34100616Smp# Please send patches to <config-patches@gnu.org>.  Submit a context
35232633Smp# diff and a properly formatted GNU ChangeLog entry.
36100616Smp#
3769408Sache# Configuration subroutine to validate and canonicalize a configuration type.
3869408Sache# Supply the specified configuration type as an argument.
3969408Sache# If it is invalid, we print an error message on stderr and exit with code 1.
4069408Sache# Otherwise, we print the canonical config type on stdout and succeed.
4169408Sache
42232633Smp# You can get the latest version of this script from:
43232633Smp# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
44232633Smp
4569408Sache# This file is supposed to be the same for all GNU packages
4669408Sache# and recognize all the CPU types, system types and aliases
4769408Sache# that are meaningful with *any* GNU software.
4869408Sache# Each package is responsible for reporting which valid configurations
4969408Sache# it does not support.  The user should be able to distinguish
5069408Sache# a failure to support a valid configuration from a meaningless
5169408Sache# configuration.
5269408Sache
5369408Sache# The goal of this file is to map all the various variations of a given
5469408Sache# machine specification into a single specification in the form:
5569408Sache#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
5669408Sache# or in some cases, the newer four-part form:
5769408Sache#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
5869408Sache# It is wrong to echo any other type of specification.
5969408Sache
60100616Smpme=`echo "$0" | sed -e 's,.*/,,'`
6169408Sache
62100616Smpusage="\
63100616SmpUsage: $0 [OPTION] CPU-MFR-OPSYS
64100616Smp       $0 [OPTION] ALIAS
65100616Smp
66100616SmpCanonicalize a configuration name.
67100616Smp
68100616SmpOperation modes:
69100616Smp  -h, --help         print this help, then exit
70100616Smp  -t, --time-stamp   print date of last modification, then exit
71100616Smp  -v, --version      print version number, then exit
72100616Smp
73100616SmpReport bugs and patches to <config-patches@gnu.org>."
74100616Smp
75100616Smpversion="\
76100616SmpGNU config.sub ($timestamp)
77100616Smp
78232633SmpCopyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
79232633Smp2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
80232633SmpSoftware Foundation, Inc.
81100616Smp
82100616SmpThis is free software; see the source for copying conditions.  There is NO
83100616Smpwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
84100616Smp
85100616Smphelp="
86100616SmpTry \`$me --help' for more information."
87100616Smp
88100616Smp# Parse command line
89100616Smpwhile test $# -gt 0 ; do
90100616Smp  case $1 in
91100616Smp    --time-stamp | --time* | -t )
92195609Smp       echo "$timestamp" ; exit ;;
93100616Smp    --version | -v )
94195609Smp       echo "$version" ; exit ;;
95100616Smp    --help | --h* | -h )
96195609Smp       echo "$usage"; exit ;;
97100616Smp    -- )     # Stop option processing
98100616Smp       shift; break ;;
99100616Smp    - )	# Use stdin as input.
100100616Smp       break ;;
101100616Smp    -* )
102100616Smp       echo "$me: invalid option $1$help"
103100616Smp       exit 1 ;;
104100616Smp
105100616Smp    *local*)
106100616Smp       # First pass through any local machine types.
107100616Smp       echo $1
108195609Smp       exit ;;
109100616Smp
110100616Smp    * )
111100616Smp       break ;;
112100616Smp  esac
113100616Smpdone
114100616Smp
115100616Smpcase $# in
116100616Smp 0) echo "$me: missing argument$help" >&2
117100616Smp    exit 1;;
118100616Smp 1) ;;
119100616Smp *) echo "$me: too many arguments$help" >&2
120100616Smp    exit 1;;
12169408Sacheesac
12269408Sache
12369408Sache# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
12469408Sache# Here we must recognize all the valid KERNEL-OS combinations.
12569408Sachemaybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
12669408Sachecase $maybe_os in
127195609Smp  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
128195609Smp  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
129195609Smp  kopensolaris*-gnu* | \
130195609Smp  storm-chaos* | os2-emx* | rtmk-nova*)
13169408Sache    os=-$maybe_os
13269408Sache    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
13369408Sache    ;;
13469408Sache  *)
13569408Sache    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
13669408Sache    if [ $basic_machine != $1 ]
13769408Sache    then os=`echo $1 | sed 's/.*-/-/'`
13869408Sache    else os=; fi
13969408Sache    ;;
14069408Sacheesac
14169408Sache
14269408Sache### Let's recognize common machines as not being operating systems so
14369408Sache### that things like config.sub decstation-3100 work.  We also
14469408Sache### recognize some manufacturers as not being operating systems, so we
14569408Sache### can provide default operating systems below.
14669408Sachecase $os in
14769408Sache	-sun*os*)
14869408Sache		# Prevent following clause from handling this invalid input.
14969408Sache		;;
15069408Sache	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
15169408Sache	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
15269408Sache	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
15369408Sache	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
15469408Sache	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
15569408Sache	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
156232633Smp	-apple | -axis | -knuth | -cray | -microblaze)
15769408Sache		os=
15869408Sache		basic_machine=$1
15969408Sache		;;
160195609Smp        -bluegene*)
161195609Smp	        os=-cnk
162195609Smp		;;
16383098Smp	-sim | -cisco | -oki | -wec | -winbond)
16483098Smp		os=
16583098Smp		basic_machine=$1
16683098Smp		;;
16783098Smp	-scout)
16883098Smp		;;
16983098Smp	-wrs)
17083098Smp		os=-vxworks
17183098Smp		basic_machine=$1
17283098Smp		;;
173100616Smp	-chorusos*)
174100616Smp		os=-chorusos
175100616Smp		basic_machine=$1
176100616Smp		;;
177100616Smp 	-chorusrdb)
178100616Smp 		os=-chorusrdb
179100616Smp		basic_machine=$1
180100616Smp 		;;
18169408Sache	-hiux*)
18269408Sache		os=-hiuxwe2
18369408Sache		;;
184195609Smp	-sco6)
185195609Smp		os=-sco5v6
186195609Smp		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
187195609Smp		;;
18869408Sache	-sco5)
18983098Smp		os=-sco3.2v5
19069408Sache		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
19169408Sache		;;
19269408Sache	-sco4)
19369408Sache		os=-sco3.2v4
19469408Sache		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
19569408Sache		;;
19669408Sache	-sco3.2.[4-9]*)
19769408Sache		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
19869408Sache		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
19969408Sache		;;
20069408Sache	-sco3.2v[4-9]*)
20169408Sache		# Don't forget version if it is 3.2v4 or newer.
20269408Sache		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
20369408Sache		;;
204195609Smp	-sco5v6*)
205195609Smp		# Don't forget version if it is 3.2v4 or newer.
206195609Smp		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
207195609Smp		;;
20869408Sache	-sco*)
20969408Sache		os=-sco3.2v2
21069408Sache		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
21169408Sache		;;
21283098Smp	-udk*)
21383098Smp		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
21483098Smp		;;
21569408Sache	-isc)
21669408Sache		os=-isc2.2
21769408Sache		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
21869408Sache		;;
21969408Sache	-clix*)
22069408Sache		basic_machine=clipper-intergraph
22169408Sache		;;
22269408Sache	-isc*)
22369408Sache		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
22469408Sache		;;
22569408Sache	-lynx*)
22669408Sache		os=-lynxos
22769408Sache		;;
22869408Sache	-ptx*)
22969408Sache		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
23069408Sache		;;
23169408Sache	-windowsnt*)
23269408Sache		os=`echo $os | sed -e 's/windowsnt/winnt/'`
23369408Sache		;;
23469408Sache	-psos*)
23569408Sache		os=-psos
23669408Sache		;;
23783098Smp	-mint | -mint[0-9]*)
23883098Smp		basic_machine=m68k-atari
23983098Smp		os=-mint
24083098Smp		;;
24169408Sacheesac
24269408Sache
24369408Sache# Decode aliases for certain CPU-COMPANY combinations.
24469408Sachecase $basic_machine in
24569408Sache	# Recognize the basic CPU types without company name.
24669408Sache	# Some are omitted here because they have special meanings below.
247100616Smp	1750a | 580 \
248100616Smp	| a29k \
249100616Smp	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
250100616Smp	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
251195609Smp	| am33_2.0 \
252195609Smp	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
253195609Smp	| bfin \
254100616Smp	| c4x | clipper \
255100616Smp	| d10v | d30v | dlx | dsp16xx \
256195609Smp	| fido | fr30 | frv \
257100616Smp	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
258100616Smp	| i370 | i860 | i960 | ia64 \
259195609Smp	| ip2k | iq2000 \
260195609Smp	| lm32 \
261195609Smp	| m32c | m32r | m32rle | m68000 | m68k | m88k \
262195609Smp	| maxq | mb | microblaze | mcore | mep | metag \
263100616Smp	| mips | mipsbe | mipseb | mipsel | mipsle \
264100616Smp	| mips16 \
265100616Smp	| mips64 | mips64el \
266195609Smp	| mips64octeon | mips64octeonel \
267100616Smp	| mips64orion | mips64orionel \
268195609Smp	| mips64r5900 | mips64r5900el \
269195609Smp	| mips64vr | mips64vrel \
270100616Smp	| mips64vr4100 | mips64vr4100el \
271100616Smp	| mips64vr4300 | mips64vr4300el \
272100616Smp	| mips64vr5000 | mips64vr5000el \
273195609Smp	| mips64vr5900 | mips64vr5900el \
274100616Smp	| mipsisa32 | mipsisa32el \
275195609Smp	| mipsisa32r2 | mipsisa32r2el \
276100616Smp	| mipsisa64 | mipsisa64el \
277195609Smp	| mipsisa64r2 | mipsisa64r2el \
278100616Smp	| mipsisa64sb1 | mipsisa64sb1el \
279195609Smp	| mipsisa64sr71k | mipsisa64sr71kel \
280100616Smp	| mipstx39 | mipstx39el \
281100616Smp	| mn10200 | mn10300 \
282195609Smp	| moxie \
283195609Smp	| mt \
284195609Smp	| msp430 \
285195609Smp	| nios | nios2 \
286100616Smp	| ns16k | ns32k \
287195609Smp	| or32 \
288100616Smp	| pdp10 | pdp11 | pj | pjl \
289100616Smp	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
290100616Smp	| pyramid \
291232633Smp	| rx \
292195609Smp	| score \
293195609Smp	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
294100616Smp	| sh64 | sh64le \
295195609Smp	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
296195609Smp	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
297195609Smp	| spu | strongarm \
298195609Smp	| tahoe | thumb | tic4x | tic80 | tron \
299232633Smp	| ubicom32 \
300100616Smp	| v850 | v850e \
301100616Smp	| we32k \
302195609Smp	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
303195609Smp	| z8k | z80)
30469408Sache		basic_machine=$basic_machine-unknown
30569408Sache		;;
306232633Smp	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
307100616Smp		# Motorola 68HC11/12.
308100616Smp		basic_machine=$basic_machine-unknown
309100616Smp		os=-none
31083098Smp		;;
311100616Smp	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
312100616Smp		;;
313195609Smp	ms1)
314195609Smp		basic_machine=mt-unknown
315195609Smp		;;
31683098Smp
31769408Sache	# We use `pc' rather than `unknown'
31869408Sache	# because (1) that's what they normally are, and
31969408Sache	# (2) the word "unknown" tends to confuse beginning users.
320100616Smp	i*86 | x86_64)
32169408Sache	  basic_machine=$basic_machine-pc
32269408Sache	  ;;
32369408Sache	# Object if more than one company name word.
32469408Sache	*-*-*)
32569408Sache		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
32669408Sache		exit 1
32769408Sache		;;
32869408Sache	# Recognize the basic CPU types with company name.
329100616Smp	580-* \
330100616Smp	| a29k-* \
331100616Smp	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
332100616Smp	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
333100616Smp	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
334100616Smp	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
335195609Smp	| avr-* | avr32-* \
336195609Smp	| bfin-* | bs2000-* \
337195609Smp	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
338195609Smp	| clipper-* | craynv-* | cydra-* \
339100616Smp	| d10v-* | d30v-* | dlx-* \
340100616Smp	| elxsi-* \
341195609Smp	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
342100616Smp	| h8300-* | h8500-* \
343100616Smp	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
344100616Smp	| i*86-* | i860-* | i960-* | ia64-* \
345195609Smp	| ip2k-* | iq2000-* \
346195609Smp	| lm32-* \
347195609Smp	| m32c-* | m32r-* | m32rle-* \
348100616Smp	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
349232633Smp	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
350100616Smp	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
351100616Smp	| mips16-* \
352100616Smp	| mips64-* | mips64el-* \
353195609Smp	| mips64octeon-* | mips64octeonel-* \
354100616Smp	| mips64orion-* | mips64orionel-* \
355195609Smp	| mips64r5900-* | mips64r5900el-* \
356195609Smp	| mips64vr-* | mips64vrel-* \
357100616Smp	| mips64vr4100-* | mips64vr4100el-* \
358100616Smp	| mips64vr4300-* | mips64vr4300el-* \
359100616Smp	| mips64vr5000-* | mips64vr5000el-* \
360195609Smp	| mips64vr5900-* | mips64vr5900el-* \
361100616Smp	| mipsisa32-* | mipsisa32el-* \
362195609Smp	| mipsisa32r2-* | mipsisa32r2el-* \
363100616Smp	| mipsisa64-* | mipsisa64el-* \
364195609Smp	| mipsisa64r2-* | mipsisa64r2el-* \
365100616Smp	| mipsisa64sb1-* | mipsisa64sb1el-* \
366195609Smp	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
367195609Smp	| mipstx39-* | mipstx39el-* \
368195609Smp	| mmix-* \
369195609Smp	| mt-* \
370195609Smp	| msp430-* \
371195609Smp	| nios-* | nios2-* \
372100616Smp	| none-* | np1-* | ns16k-* | ns32k-* \
373100616Smp	| orion-* \
374100616Smp	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
375100616Smp	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
376100616Smp	| pyramid-* \
377232633Smp	| romp-* | rs6000-* | rx-* \
378195609Smp	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
379100616Smp	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
380195609Smp	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
381195609Smp	| sparclite-* \
382195609Smp	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
383195609Smp	| tahoe-* | thumb-* \
384195609Smp	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
385195609Smp	| tron-* \
386232633Smp	| ubicom32-* \
387100616Smp	| v850-* | v850e-* | vax-* \
388100616Smp	| we32k-* \
389195609Smp	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
390195609Smp	| xstormy16-* | xtensa*-* \
391100616Smp	| ymp-* \
392195609Smp	| z8k-* | z80-*)
39369408Sache		;;
394195609Smp	# Recognize the basic CPU types without company name, with glob match.
395195609Smp	xtensa*)
396195609Smp		basic_machine=$basic_machine-unknown
397195609Smp		;;
39869408Sache	# Recognize the various machine names and aliases which stand
39969408Sache	# for a CPU type and a company and sometimes even an OS.
40083098Smp	386bsd)
40183098Smp		basic_machine=i386-unknown
40283098Smp		os=-bsd
40383098Smp		;;
40469408Sache	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
40569408Sache		basic_machine=m68000-att
40669408Sache		;;
40769408Sache	3b*)
40869408Sache		basic_machine=we32k-att
40969408Sache		;;
41083098Smp	a29khif)
41183098Smp		basic_machine=a29k-amd
41283098Smp		os=-udi
41383098Smp		;;
414195609Smp    	abacus)
415195609Smp		basic_machine=abacus-unknown
416195609Smp		;;
41783098Smp	adobe68k)
41883098Smp		basic_machine=m68010-adobe
41983098Smp		os=-scout
42083098Smp		;;
42169408Sache	alliant | fx80)
42269408Sache		basic_machine=fx80-alliant
42369408Sache		;;
42469408Sache	altos | altos3068)
42569408Sache		basic_machine=m68k-altos
42669408Sache		;;
42769408Sache	am29k)
42869408Sache		basic_machine=a29k-none
42969408Sache		os=-bsd
43069408Sache		;;
431195609Smp	amd64)
432195609Smp		basic_machine=x86_64-pc
433195609Smp		;;
434195609Smp	amd64-*)
435195609Smp		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
436195609Smp		;;
43769408Sache	amdahl)
43869408Sache		basic_machine=580-amdahl
43969408Sache		os=-sysv
44069408Sache		;;
44169408Sache	amiga | amiga-*)
442100616Smp		basic_machine=m68k-unknown
44369408Sache		;;
44469408Sache	amigaos | amigados)
445100616Smp		basic_machine=m68k-unknown
44669408Sache		os=-amigaos
44769408Sache		;;
44869408Sache	amigaunix | amix)
449100616Smp		basic_machine=m68k-unknown
45069408Sache		os=-sysv4
45169408Sache		;;
45269408Sache	apollo68)
45369408Sache		basic_machine=m68k-apollo
45469408Sache		os=-sysv
45569408Sache		;;
45683098Smp	apollo68bsd)
45783098Smp		basic_machine=m68k-apollo
45883098Smp		os=-bsd
45983098Smp		;;
460195609Smp	aros)
461195609Smp		basic_machine=i386-pc
462195609Smp		os=-aros
463195609Smp		;;
46469408Sache	aux)
46569408Sache		basic_machine=m68k-apple
46669408Sache		os=-aux
46769408Sache		;;
46869408Sache	balance)
46969408Sache		basic_machine=ns32k-sequent
47069408Sache		os=-dynix
47169408Sache		;;
472195609Smp	blackfin)
473195609Smp		basic_machine=bfin-unknown
474195609Smp		os=-linux
475195609Smp		;;
476195609Smp	blackfin-*)
477195609Smp		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
478195609Smp		os=-linux
479195609Smp		;;
480195609Smp	bluegene*)
481195609Smp		basic_machine=powerpc-ibm
482195609Smp		os=-cnk
483195609Smp		;;
484100616Smp	c90)
485100616Smp		basic_machine=c90-cray
486100616Smp		os=-unicos
487100616Smp		;;
488195609Smp        cegcc)
489195609Smp		basic_machine=arm-unknown
490195609Smp		os=-cegcc
491195609Smp		;;
49269408Sache	convex-c1)
49369408Sache		basic_machine=c1-convex
49469408Sache		os=-bsd
49569408Sache		;;
49669408Sache	convex-c2)
49769408Sache		basic_machine=c2-convex
49869408Sache		os=-bsd
49969408Sache		;;
50069408Sache	convex-c32)
50169408Sache		basic_machine=c32-convex
50269408Sache		os=-bsd
50369408Sache		;;
50469408Sache	convex-c34)
50569408Sache		basic_machine=c34-convex
50669408Sache		os=-bsd
50769408Sache		;;
50869408Sache	convex-c38)
50969408Sache		basic_machine=c38-convex
51069408Sache		os=-bsd
51169408Sache		;;
512100616Smp	cray | j90)
513100616Smp		basic_machine=j90-cray
51469408Sache		os=-unicos
51569408Sache		;;
516195609Smp	craynv)
517195609Smp		basic_machine=craynv-cray
518195609Smp		os=-unicosmp
519195609Smp		;;
520195609Smp	cr16)
521195609Smp		basic_machine=cr16-unknown
522195609Smp		os=-elf
523195609Smp		;;
52469408Sache	crds | unos)
52569408Sache		basic_machine=m68k-crds
52669408Sache		;;
527195609Smp	crisv32 | crisv32-* | etraxfs*)
528195609Smp		basic_machine=crisv32-axis
529195609Smp		;;
530100616Smp	cris | cris-* | etrax*)
531100616Smp		basic_machine=cris-axis
532100616Smp		;;
533195609Smp	crx)
534195609Smp		basic_machine=crx-unknown
535195609Smp		os=-elf
536195609Smp		;;
53769408Sache	da30 | da30-*)
53869408Sache		basic_machine=m68k-da30
53969408Sache		;;
54069408Sache	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
54169408Sache		basic_machine=mips-dec
54269408Sache		;;
543100616Smp	decsystem10* | dec10*)
544100616Smp		basic_machine=pdp10-dec
545100616Smp		os=-tops10
546100616Smp		;;
547100616Smp	decsystem20* | dec20*)
548100616Smp		basic_machine=pdp10-dec
549100616Smp		os=-tops20
550100616Smp		;;
55169408Sache	delta | 3300 | motorola-3300 | motorola-delta \
55269408Sache	      | 3300-motorola | delta-motorola)
55369408Sache		basic_machine=m68k-motorola
55469408Sache		;;
55569408Sache	delta88)
55669408Sache		basic_machine=m88k-motorola
55769408Sache		os=-sysv3
55869408Sache		;;
559195609Smp	dicos)
560195609Smp		basic_machine=i686-pc
561195609Smp		os=-dicos
562195609Smp		;;
563195609Smp	djgpp)
564195609Smp		basic_machine=i586-pc
565195609Smp		os=-msdosdjgpp
566195609Smp		;;
56769408Sache	dpx20 | dpx20-*)
56869408Sache		basic_machine=rs6000-bull
56969408Sache		os=-bosx
57069408Sache		;;
57169408Sache	dpx2* | dpx2*-bull)
57269408Sache		basic_machine=m68k-bull
57369408Sache		os=-sysv3
57469408Sache		;;
57569408Sache	ebmon29k)
57669408Sache		basic_machine=a29k-amd
57769408Sache		os=-ebmon
57869408Sache		;;
57969408Sache	elxsi)
58069408Sache		basic_machine=elxsi-elxsi
58169408Sache		os=-bsd
58269408Sache		;;
58369408Sache	encore | umax | mmax)
58469408Sache		basic_machine=ns32k-encore
58569408Sache		;;
58683098Smp	es1800 | OSE68k | ose68k | ose | OSE)
58783098Smp		basic_machine=m68k-ericsson
58883098Smp		os=-ose
58983098Smp		;;
59069408Sache	fx2800)
59169408Sache		basic_machine=i860-alliant
59269408Sache		;;
59369408Sache	genix)
59469408Sache		basic_machine=ns32k-ns
59569408Sache		;;
59669408Sache	gmicro)
59769408Sache		basic_machine=tron-gmicro
59869408Sache		os=-sysv
59969408Sache		;;
600100616Smp	go32)
601100616Smp		basic_machine=i386-pc
602100616Smp		os=-go32
603100616Smp		;;
60469408Sache	h3050r* | hiux*)
60569408Sache		basic_machine=hppa1.1-hitachi
60669408Sache		os=-hiuxwe2
60769408Sache		;;
60869408Sache	h8300hms)
60969408Sache		basic_machine=h8300-hitachi
61069408Sache		os=-hms
61169408Sache		;;
61283098Smp	h8300xray)
61383098Smp		basic_machine=h8300-hitachi
61483098Smp		os=-xray
61583098Smp		;;
61683098Smp	h8500hms)
61783098Smp		basic_machine=h8500-hitachi
61883098Smp		os=-hms
61983098Smp		;;
62069408Sache	harris)
62169408Sache		basic_machine=m88k-harris
62269408Sache		os=-sysv3
62369408Sache		;;
62469408Sache	hp300-*)
62569408Sache		basic_machine=m68k-hp
62669408Sache		;;
62769408Sache	hp300bsd)
62869408Sache		basic_machine=m68k-hp
62969408Sache		os=-bsd
63069408Sache		;;
63169408Sache	hp300hpux)
63269408Sache		basic_machine=m68k-hp
63369408Sache		os=-hpux
63469408Sache		;;
63583098Smp	hp3k9[0-9][0-9] | hp9[0-9][0-9])
63683098Smp		basic_machine=hppa1.0-hp
63783098Smp		;;
63869408Sache	hp9k2[0-9][0-9] | hp9k31[0-9])
63969408Sache		basic_machine=m68000-hp
64069408Sache		;;
64169408Sache	hp9k3[2-9][0-9])
64269408Sache		basic_machine=m68k-hp
64369408Sache		;;
64483098Smp	hp9k6[0-9][0-9] | hp6[0-9][0-9])
64583098Smp		basic_machine=hppa1.0-hp
64683098Smp		;;
64783098Smp	hp9k7[0-79][0-9] | hp7[0-79][0-9])
64869408Sache		basic_machine=hppa1.1-hp
64969408Sache		;;
65083098Smp	hp9k78[0-9] | hp78[0-9])
65183098Smp		# FIXME: really hppa2.0-hp
65283098Smp		basic_machine=hppa1.1-hp
65383098Smp		;;
65483098Smp	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
65583098Smp		# FIXME: really hppa2.0-hp
65683098Smp		basic_machine=hppa1.1-hp
65783098Smp		;;
65883098Smp	hp9k8[0-9][13679] | hp8[0-9][13679])
65983098Smp		basic_machine=hppa1.1-hp
66083098Smp		;;
66169408Sache	hp9k8[0-9][0-9] | hp8[0-9][0-9])
66269408Sache		basic_machine=hppa1.0-hp
66369408Sache		;;
66469408Sache	hppa-next)
66569408Sache		os=-nextstep3
66669408Sache		;;
66783098Smp	hppaosf)
66883098Smp		basic_machine=hppa1.1-hp
66983098Smp		os=-osf
67083098Smp		;;
67183098Smp	hppro)
67283098Smp		basic_machine=hppa1.1-hp
67383098Smp		os=-proelf
67483098Smp		;;
67569408Sache	i370-ibm* | ibm*)
67669408Sache		basic_machine=i370-ibm
67769408Sache		;;
67869408Sache# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
679100616Smp	i*86v32)
68069408Sache		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
68169408Sache		os=-sysv32
68269408Sache		;;
683100616Smp	i*86v4*)
68469408Sache		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
68569408Sache		os=-sysv4
68669408Sache		;;
687100616Smp	i*86v)
68869408Sache		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
68969408Sache		os=-sysv
69069408Sache		;;
691100616Smp	i*86sol2)
69269408Sache		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
69369408Sache		os=-solaris2
69469408Sache		;;
69583098Smp	i386mach)
69683098Smp		basic_machine=i386-mach
69783098Smp		os=-mach
69883098Smp		;;
69983098Smp	i386-vsta | vsta)
70083098Smp		basic_machine=i386-unknown
70183098Smp		os=-vsta
70283098Smp		;;
70369408Sache	iris | iris4d)
70469408Sache		basic_machine=mips-sgi
70569408Sache		case $os in
70669408Sache		    -irix*)
70769408Sache			;;
70869408Sache		    *)
70969408Sache			os=-irix4
71069408Sache			;;
71169408Sache		esac
71269408Sache		;;
71369408Sache	isi68 | isi)
71469408Sache		basic_machine=m68k-isi
71569408Sache		os=-sysv
71669408Sache		;;
717195609Smp	m68knommu)
718195609Smp		basic_machine=m68k-unknown
719195609Smp		os=-linux
720195609Smp		;;
721195609Smp	m68knommu-*)
722195609Smp		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
723195609Smp		os=-linux
724195609Smp		;;
72569408Sache	m88k-omron*)
72669408Sache		basic_machine=m88k-omron
72769408Sache		;;
72869408Sache	magnum | m3230)
72969408Sache		basic_machine=mips-mips
73069408Sache		os=-sysv
73169408Sache		;;
73269408Sache	merlin)
73369408Sache		basic_machine=ns32k-utek
73469408Sache		os=-sysv
73569408Sache		;;
736232633Smp        microblaze)
737232633Smp		basic_machine=microblaze-xilinx
738232633Smp		;;
739100616Smp	mingw32)
740100616Smp		basic_machine=i386-pc
741100616Smp		os=-mingw32
742100616Smp		;;
743195609Smp	mingw32ce)
744195609Smp		basic_machine=arm-unknown
745195609Smp		os=-mingw32ce
746195609Smp		;;
74769408Sache	miniframe)
74869408Sache		basic_machine=m68000-convergent
74969408Sache		;;
75083098Smp	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
75183098Smp		basic_machine=m68k-atari
75283098Smp		os=-mint
75383098Smp		;;
75469408Sache	mips3*-*)
75569408Sache		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
75669408Sache		;;
75769408Sache	mips3*)
75869408Sache		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
75969408Sache		;;
76083098Smp	monitor)
76183098Smp		basic_machine=m68k-rom68k
76283098Smp		os=-coff
76383098Smp		;;
764100616Smp	morphos)
765100616Smp		basic_machine=powerpc-unknown
766100616Smp		os=-morphos
767100616Smp		;;
76883098Smp	msdos)
769100616Smp		basic_machine=i386-pc
77083098Smp		os=-msdos
77183098Smp		;;
772195609Smp	ms1-*)
773195609Smp		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
774195609Smp		;;
77583098Smp	mvs)
77683098Smp		basic_machine=i370-ibm
77783098Smp		os=-mvs
77883098Smp		;;
77969408Sache	ncr3000)
78069408Sache		basic_machine=i486-ncr
78169408Sache		os=-sysv4
78269408Sache		;;
78383098Smp	netbsd386)
78483098Smp		basic_machine=i386-unknown
78583098Smp		os=-netbsd
78683098Smp		;;
78783098Smp	netwinder)
78883098Smp		basic_machine=armv4l-rebel
78983098Smp		os=-linux
79083098Smp		;;
79169408Sache	news | news700 | news800 | news900)
79269408Sache		basic_machine=m68k-sony
79369408Sache		os=-newsos
79469408Sache		;;
79569408Sache	news1000)
79669408Sache		basic_machine=m68030-sony
79769408Sache		os=-newsos
79869408Sache		;;
79969408Sache	news-3600 | risc-news)
80069408Sache		basic_machine=mips-sony
80169408Sache		os=-newsos
80269408Sache		;;
80383098Smp	necv70)
80483098Smp		basic_machine=v70-nec
80583098Smp		os=-sysv
80683098Smp		;;
80769408Sache	next | m*-next )
80869408Sache		basic_machine=m68k-next
80969408Sache		case $os in
81069408Sache		    -nextstep* )
81169408Sache			;;
81269408Sache		    -ns2*)
81369408Sache		      os=-nextstep2
81469408Sache			;;
81569408Sache		    *)
81669408Sache		      os=-nextstep3
81769408Sache			;;
81869408Sache		esac
81969408Sache		;;
82069408Sache	nh3000)
82169408Sache		basic_machine=m68k-harris
82269408Sache		os=-cxux
82369408Sache		;;
82469408Sache	nh[45]000)
82569408Sache		basic_machine=m88k-harris
82669408Sache		os=-cxux
82769408Sache		;;
82869408Sache	nindy960)
82969408Sache		basic_machine=i960-intel
83069408Sache		os=-nindy
83169408Sache		;;
83283098Smp	mon960)
83383098Smp		basic_machine=i960-intel
83483098Smp		os=-mon960
83583098Smp		;;
836100616Smp	nonstopux)
837100616Smp		basic_machine=mips-compaq
838100616Smp		os=-nonstopux
839100616Smp		;;
84069408Sache	np1)
84169408Sache		basic_machine=np1-gould
84269408Sache		;;
843100616Smp	nsr-tandem)
844100616Smp		basic_machine=nsr-tandem
845100616Smp		;;
84683098Smp	op50n-* | op60c-*)
84783098Smp		basic_machine=hppa1.1-oki
84883098Smp		os=-proelf
84983098Smp		;;
850195609Smp	openrisc | openrisc-*)
851100616Smp		basic_machine=or32-unknown
852100616Smp		;;
853195609Smp	os400)
854195609Smp		basic_machine=powerpc-ibm
855195609Smp		os=-os400
856195609Smp		;;
85783098Smp	OSE68000 | ose68000)
85883098Smp		basic_machine=m68000-ericsson
85983098Smp		os=-ose
86083098Smp		;;
86183098Smp	os68k)
86283098Smp		basic_machine=m68k-none
86383098Smp		os=-os68k
86483098Smp		;;
86569408Sache	pa-hitachi)
86669408Sache		basic_machine=hppa1.1-hitachi
86769408Sache		os=-hiuxwe2
86869408Sache		;;
86969408Sache	paragon)
87069408Sache		basic_machine=i860-intel
87169408Sache		os=-osf
87269408Sache		;;
873195609Smp	parisc)
874195609Smp		basic_machine=hppa-unknown
875195609Smp		os=-linux
876195609Smp		;;
877195609Smp	parisc-*)
878195609Smp		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
879195609Smp		os=-linux
880195609Smp		;;
88169408Sache	pbd)
88269408Sache		basic_machine=sparc-tti
88369408Sache		;;
88469408Sache	pbb)
88569408Sache		basic_machine=m68k-tti
88669408Sache		;;
887195609Smp	pc532 | pc532-*)
88869408Sache		basic_machine=ns32k-pc532
88969408Sache		;;
890195609Smp	pc98)
891195609Smp		basic_machine=i386-pc
892195609Smp		;;
893195609Smp	pc98-*)
894195609Smp		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
895195609Smp		;;
896100616Smp	pentium | p5 | k5 | k6 | nexgen | viac3)
89769408Sache		basic_machine=i586-pc
89869408Sache		;;
899195609Smp	pentiumpro | p6 | 6x86 | athlon | athlon_*)
90069408Sache		basic_machine=i686-pc
90169408Sache		;;
902195609Smp	pentiumii | pentium2 | pentiumiii | pentium3)
903100616Smp		basic_machine=i686-pc
90469408Sache		;;
905195609Smp	pentium4)
906195609Smp		basic_machine=i786-pc
907195609Smp		;;
908100616Smp	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
90969408Sache		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
91069408Sache		;;
911100616Smp	pentiumpro-* | p6-* | 6x86-* | athlon-*)
91269408Sache		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
91369408Sache		;;
914195609Smp	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
915100616Smp		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
91669408Sache		;;
917195609Smp	pentium4-*)
918195609Smp		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
919195609Smp		;;
92069408Sache	pn)
92169408Sache		basic_machine=pn-gould
92269408Sache		;;
923100616Smp	power)	basic_machine=power-ibm
92469408Sache		;;
92569408Sache	ppc)	basic_machine=powerpc-unknown
926195609Smp		;;
92769408Sache	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
92869408Sache		;;
92969408Sache	ppcle | powerpclittle | ppc-le | powerpc-little)
93069408Sache		basic_machine=powerpcle-unknown
931195609Smp		;;
93269408Sache	ppcle-* | powerpclittle-*)
93369408Sache		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
93469408Sache		;;
935100616Smp	ppc64)	basic_machine=powerpc64-unknown
936195609Smp		;;
937100616Smp	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
938100616Smp		;;
939100616Smp	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
940100616Smp		basic_machine=powerpc64le-unknown
941195609Smp		;;
942100616Smp	ppc64le-* | powerpc64little-*)
943100616Smp		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
944100616Smp		;;
94569408Sache	ps2)
94669408Sache		basic_machine=i386-ibm
94769408Sache		;;
948100616Smp	pw32)
949100616Smp		basic_machine=i586-unknown
950100616Smp		os=-pw32
951100616Smp		;;
952195609Smp	rdos)
953195609Smp		basic_machine=i386-pc
954195609Smp		os=-rdos
955195609Smp		;;
95683098Smp	rom68k)
95783098Smp		basic_machine=m68k-rom68k
95883098Smp		os=-coff
95983098Smp		;;
96069408Sache	rm[46]00)
96169408Sache		basic_machine=mips-siemens
96269408Sache		;;
96369408Sache	rtpc | rtpc-*)
96469408Sache		basic_machine=romp-ibm
96569408Sache		;;
966100616Smp	s390 | s390-*)
967100616Smp		basic_machine=s390-ibm
968100616Smp		;;
969100616Smp	s390x | s390x-*)
970100616Smp		basic_machine=s390x-ibm
971100616Smp		;;
97283098Smp	sa29200)
97383098Smp		basic_machine=a29k-amd
97483098Smp		os=-udi
97583098Smp		;;
976195609Smp	sb1)
977195609Smp		basic_machine=mipsisa64sb1-unknown
978195609Smp		;;
979195609Smp	sb1el)
980195609Smp		basic_machine=mipsisa64sb1el-unknown
981195609Smp		;;
982195609Smp	sde)
983195609Smp		basic_machine=mipsisa32-sde
984195609Smp		os=-elf
985195609Smp		;;
986195609Smp	sei)
987195609Smp		basic_machine=mips-sei
988195609Smp		os=-seiux
989195609Smp		;;
99069408Sache	sequent)
99169408Sache		basic_machine=i386-sequent
99269408Sache		;;
99369408Sache	sh)
99469408Sache		basic_machine=sh-hitachi
99569408Sache		os=-hms
99669408Sache		;;
997195609Smp	sh5el)
998195609Smp		basic_machine=sh5le-unknown
999195609Smp		;;
1000195609Smp	sh64)
1001195609Smp		basic_machine=sh64-unknown
1002195609Smp		;;
1003100616Smp	sparclite-wrs | simso-wrs)
100483098Smp		basic_machine=sparclite-wrs
100583098Smp		os=-vxworks
100683098Smp		;;
100769408Sache	sps7)
100869408Sache		basic_machine=m68k-bull
100969408Sache		os=-sysv2
101069408Sache		;;
101169408Sache	spur)
101269408Sache		basic_machine=spur-unknown
101369408Sache		;;
101483098Smp	st2000)
101583098Smp		basic_machine=m68k-tandem
101683098Smp		;;
101783098Smp	stratus)
101883098Smp		basic_machine=i860-stratus
101983098Smp		os=-sysv4
102083098Smp		;;
102169408Sache	sun2)
102269408Sache		basic_machine=m68000-sun
102369408Sache		;;
102469408Sache	sun2os3)
102569408Sache		basic_machine=m68000-sun
102669408Sache		os=-sunos3
102769408Sache		;;
102869408Sache	sun2os4)
102969408Sache		basic_machine=m68000-sun
103069408Sache		os=-sunos4
103169408Sache		;;
103269408Sache	sun3os3)
103369408Sache		basic_machine=m68k-sun
103469408Sache		os=-sunos3
103569408Sache		;;
103669408Sache	sun3os4)
103769408Sache		basic_machine=m68k-sun
103869408Sache		os=-sunos4
103969408Sache		;;
104069408Sache	sun4os3)
104169408Sache		basic_machine=sparc-sun
104269408Sache		os=-sunos3
104369408Sache		;;
104469408Sache	sun4os4)
104569408Sache		basic_machine=sparc-sun
104669408Sache		os=-sunos4
104769408Sache		;;
104869408Sache	sun4sol2)
104969408Sache		basic_machine=sparc-sun
105069408Sache		os=-solaris2
105169408Sache		;;
105269408Sache	sun3 | sun3-*)
105369408Sache		basic_machine=m68k-sun
105469408Sache		;;
105569408Sache	sun4)
105669408Sache		basic_machine=sparc-sun
105769408Sache		;;
105869408Sache	sun386 | sun386i | roadrunner)
105969408Sache		basic_machine=i386-sun
106069408Sache		;;
1061195609Smp	sv1)
1062100616Smp		basic_machine=sv1-cray
1063100616Smp		os=-unicos
1064100616Smp		;;
106569408Sache	symmetry)
106669408Sache		basic_machine=i386-sequent
106769408Sache		os=-dynix
106869408Sache		;;
106983098Smp	t3e)
1070100616Smp		basic_machine=alphaev5-cray
107183098Smp		os=-unicos
107283098Smp		;;
1073100616Smp	t90)
1074100616Smp		basic_machine=t90-cray
1075100616Smp		os=-unicos
1076100616Smp		;;
1077100616Smp	tic54x | c54x*)
1078100616Smp		basic_machine=tic54x-unknown
1079100616Smp		os=-coff
1080100616Smp		;;
1081195609Smp	tic55x | c55x*)
1082195609Smp		basic_machine=tic55x-unknown
1083195609Smp		os=-coff
1084195609Smp		;;
1085195609Smp	tic6x | c6x*)
1086195609Smp		basic_machine=tic6x-unknown
1087195609Smp		os=-coff
1088195609Smp		;;
1089195609Smp	tile*)
1090195609Smp		basic_machine=tile-unknown
1091195609Smp		os=-linux-gnu
1092195609Smp		;;
109369408Sache	tx39)
109469408Sache		basic_machine=mipstx39-unknown
109569408Sache		;;
109669408Sache	tx39el)
109769408Sache		basic_machine=mipstx39el-unknown
109869408Sache		;;
1099100616Smp	toad1)
1100100616Smp		basic_machine=pdp10-xkl
1101100616Smp		os=-tops20
1102100616Smp		;;
110369408Sache	tower | tower-32)
110469408Sache		basic_machine=m68k-ncr
110569408Sache		;;
1106195609Smp	tpf)
1107195609Smp		basic_machine=s390x-ibm
1108195609Smp		os=-tpf
1109195609Smp		;;
111069408Sache	udi29k)
111169408Sache		basic_machine=a29k-amd
111269408Sache		os=-udi
111369408Sache		;;
111469408Sache	ultra3)
111569408Sache		basic_machine=a29k-nyu
111669408Sache		os=-sym1
111769408Sache		;;
111883098Smp	v810 | necv810)
111983098Smp		basic_machine=v810-nec
112083098Smp		os=-none
112183098Smp		;;
112269408Sache	vaxv)
112369408Sache		basic_machine=vax-dec
112469408Sache		os=-sysv
112569408Sache		;;
112669408Sache	vms)
112769408Sache		basic_machine=vax-dec
112869408Sache		os=-vms
112969408Sache		;;
113069408Sache	vpp*|vx|vx-*)
1131195609Smp		basic_machine=f301-fujitsu
1132195609Smp		;;
113369408Sache	vxworks960)
113469408Sache		basic_machine=i960-wrs
113569408Sache		os=-vxworks
113669408Sache		;;
113769408Sache	vxworks68)
113869408Sache		basic_machine=m68k-wrs
113969408Sache		os=-vxworks
114069408Sache		;;
114169408Sache	vxworks29k)
114269408Sache		basic_machine=a29k-wrs
114369408Sache		os=-vxworks
114469408Sache		;;
114583098Smp	w65*)
114683098Smp		basic_machine=w65-wdc
114783098Smp		os=-none
114883098Smp		;;
114983098Smp	w89k-*)
115083098Smp		basic_machine=hppa1.1-winbond
115183098Smp		os=-proelf
115283098Smp		;;
1153195609Smp	xbox)
1154195609Smp		basic_machine=i686-pc
1155195609Smp		os=-mingw32
115669408Sache		;;
1157195609Smp	xps | xps100)
115869408Sache		basic_machine=xps100-honeywell
115969408Sache		;;
1160100616Smp	ymp)
1161100616Smp		basic_machine=ymp-cray
1162100616Smp		os=-unicos
1163100616Smp		;;
116483098Smp	z8k-*-coff)
116583098Smp		basic_machine=z8k-unknown
116683098Smp		os=-sim
116783098Smp		;;
1168195609Smp	z80-*-coff)
1169195609Smp		basic_machine=z80-unknown
1170195609Smp		os=-sim
1171195609Smp		;;
117269408Sache	none)
117369408Sache		basic_machine=none-none
117469408Sache		os=-none
117569408Sache		;;
117669408Sache
117769408Sache# Here we handle the default manufacturer of certain CPU types.  It is in
117869408Sache# some cases the only manufacturer, in others, it is the most popular.
117983098Smp	w89k)
118083098Smp		basic_machine=hppa1.1-winbond
118183098Smp		;;
118283098Smp	op50n)
118383098Smp		basic_machine=hppa1.1-oki
118483098Smp		;;
118583098Smp	op60c)
118683098Smp		basic_machine=hppa1.1-oki
118783098Smp		;;
118869408Sache	romp)
118969408Sache		basic_machine=romp-ibm
119069408Sache		;;
1191195609Smp	mmix)
1192195609Smp		basic_machine=mmix-knuth
1193195609Smp		;;
119469408Sache	rs6000)
119569408Sache		basic_machine=rs6000-ibm
119669408Sache		;;
119769408Sache	vax)
119869408Sache		basic_machine=vax-dec
119969408Sache		;;
1200100616Smp	pdp10)
1201100616Smp		# there are many clones, so DEC is not a safe bet
1202100616Smp		basic_machine=pdp10-unknown
1203100616Smp		;;
120469408Sache	pdp11)
120569408Sache		basic_machine=pdp11-dec
120669408Sache		;;
120769408Sache	we32k)
120869408Sache		basic_machine=we32k-att
120969408Sache		;;
1210195609Smp	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1211100616Smp		basic_machine=sh-unknown
1212100616Smp		;;
1213195609Smp	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
121469408Sache		basic_machine=sparc-sun
121569408Sache		;;
1216195609Smp	cydra)
121769408Sache		basic_machine=cydra-cydrome
121869408Sache		;;
121969408Sache	orion)
122069408Sache		basic_machine=orion-highlevel
122169408Sache		;;
122269408Sache	orion105)
122369408Sache		basic_machine=clipper-highlevel
122469408Sache		;;
122583098Smp	mac | mpw | mac-mpw)
122683098Smp		basic_machine=m68k-apple
122783098Smp		;;
122883098Smp	pmac | pmac-mpw)
122983098Smp		basic_machine=powerpc-apple
123083098Smp		;;
1231100616Smp	*-unknown)
1232100616Smp		# Make sure to match an already-canonicalized machine name.
1233100616Smp		;;
123469408Sache	*)
123569408Sache		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
123669408Sache		exit 1
123769408Sache		;;
123869408Sacheesac
123969408Sache
124069408Sache# Here we canonicalize certain aliases for manufacturers.
124169408Sachecase $basic_machine in
124269408Sache	*-digital*)
124369408Sache		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
124469408Sache		;;
124569408Sache	*-commodore*)
124669408Sache		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
124769408Sache		;;
124869408Sache	*)
124969408Sache		;;
125069408Sacheesac
125169408Sache
125269408Sache# Decode manufacturer-specific aliases for certain operating systems.
125369408Sache
125469408Sacheif [ x"$os" != x"" ]
125569408Sachethen
125669408Sachecase $os in
125769408Sache        # First match some system type aliases
125869408Sache        # that might get confused with valid system types.
125969408Sache	# -solaris* is a basic system type, with this one exception.
1260232633Smp        -auroraux)
1261232633Smp	        os=-auroraux
1262232633Smp		;;
126369408Sache	-solaris1 | -solaris1.*)
126469408Sache		os=`echo $os | sed -e 's|solaris1|sunos4|'`
126569408Sache		;;
126669408Sache	-solaris)
126769408Sache		os=-solaris2
126869408Sache		;;
126969408Sache	-svr4*)
127069408Sache		os=-sysv4
127169408Sache		;;
127269408Sache	-unixware*)
127369408Sache		os=-sysv4.2uw
127469408Sache		;;
127569408Sache	-gnu/linux*)
127669408Sache		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
127769408Sache		;;
127869408Sache	# First accept the basic system types.
127969408Sache	# The portable systems comes first.
128069408Sache	# Each alternative MUST END IN A *, to match a version number.
128169408Sache	# -sysv* is not here because it comes later, after sysvr4.
128269408Sache	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1283195609Smp	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1284232633Smp	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1285232633Smp	      | -sym* | -kopensolaris* \
128669408Sache	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1287195609Smp	      | -aos* | -aros* \
128869408Sache	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
128969408Sache	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1290195609Smp	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1291195609Smp	      | -openbsd* | -solidbsd* \
1292195609Smp	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1293195609Smp	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
129469408Sache	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
129569408Sache	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1296195609Smp	      | -chorusos* | -chorusrdb* | -cegcc* \
129769408Sache	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1298195609Smp	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
1299195609Smp	      | -uxpv* | -beos* | -mpeix* | -udk* \
1300195609Smp	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1301100616Smp	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1302100616Smp	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1303100616Smp	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1304195609Smp	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1305195609Smp	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1306232633Smp	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
130769408Sache	# Remember, each alternative MUST END IN *, to match a version number.
130869408Sache		;;
1309100616Smp	-qnx*)
1310100616Smp		case $basic_machine in
1311100616Smp		    x86-* | i*86-*)
1312100616Smp			;;
1313100616Smp		    *)
1314100616Smp			os=-nto$os
1315100616Smp			;;
1316100616Smp		esac
1317100616Smp		;;
1318195609Smp	-nto-qnx*)
1319195609Smp		;;
1320100616Smp	-nto*)
1321195609Smp		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1322100616Smp		;;
132383098Smp	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1324195609Smp	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1325100616Smp	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
132683098Smp		;;
132783098Smp	-mac*)
132883098Smp		os=`echo $os | sed -e 's|mac|macos|'`
132983098Smp		;;
1330195609Smp	-linux-dietlibc)
1331195609Smp		os=-linux-dietlibc
1332195609Smp		;;
133369408Sache	-linux*)
133469408Sache		os=`echo $os | sed -e 's|linux|linux-gnu|'`
133569408Sache		;;
133669408Sache	-sunos5*)
133769408Sache		os=`echo $os | sed -e 's|sunos5|solaris2|'`
133869408Sache		;;
133969408Sache	-sunos6*)
134069408Sache		os=`echo $os | sed -e 's|sunos6|solaris3|'`
134169408Sache		;;
134283098Smp	-opened*)
134383098Smp		os=-openedition
134483098Smp		;;
1345195609Smp        -os400*)
1346195609Smp		os=-os400
1347195609Smp		;;
1348100616Smp	-wince*)
1349100616Smp		os=-wince
1350100616Smp		;;
135169408Sache	-osfrose*)
135269408Sache		os=-osfrose
135369408Sache		;;
135469408Sache	-osf*)
135569408Sache		os=-osf
135669408Sache		;;
135769408Sache	-utek*)
135869408Sache		os=-bsd
135969408Sache		;;
136069408Sache	-dynix*)
136169408Sache		os=-bsd
136269408Sache		;;
136369408Sache	-acis*)
136469408Sache		os=-aos
136569408Sache		;;
1366100616Smp	-atheos*)
1367100616Smp		os=-atheos
1368100616Smp		;;
1369195609Smp	-syllable*)
1370195609Smp		os=-syllable
1371195609Smp		;;
137283098Smp	-386bsd)
137383098Smp		os=-bsd
137483098Smp		;;
137569408Sache	-ctix* | -uts*)
137669408Sache		os=-sysv
137769408Sache		;;
1378100616Smp	-nova*)
1379100616Smp		os=-rtmk-nova
1380100616Smp		;;
138169408Sache	-ns2 )
1382195609Smp		os=-nextstep2
138369408Sache		;;
1384100616Smp	-nsk*)
1385100616Smp		os=-nsk
1386100616Smp		;;
138769408Sache	# Preserve the version number of sinix5.
138869408Sache	-sinix5.*)
138969408Sache		os=`echo $os | sed -e 's|sinix|sysv|'`
139069408Sache		;;
139169408Sache	-sinix*)
139269408Sache		os=-sysv4
139369408Sache		;;
1394195609Smp        -tpf*)
1395195609Smp		os=-tpf
1396195609Smp		;;
139769408Sache	-triton*)
139869408Sache		os=-sysv3
139969408Sache		;;
140069408Sache	-oss*)
140169408Sache		os=-sysv3
140269408Sache		;;
140369408Sache	-svr4)
140469408Sache		os=-sysv4
140569408Sache		;;
140669408Sache	-svr3)
140769408Sache		os=-sysv3
140869408Sache		;;
140969408Sache	-sysvr4)
141069408Sache		os=-sysv4
141169408Sache		;;
141269408Sache	# This must come after -sysvr4.
141369408Sache	-sysv*)
141469408Sache		;;
141583098Smp	-ose*)
141683098Smp		os=-ose
141783098Smp		;;
141883098Smp	-es1800*)
141983098Smp		os=-ose
142083098Smp		;;
142169408Sache	-xenix)
142269408Sache		os=-xenix
142369408Sache		;;
1424195609Smp	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1425195609Smp		os=-mint
142669408Sache		;;
1427195609Smp	-aros*)
1428195609Smp		os=-aros
1429195609Smp		;;
1430195609Smp	-kaos*)
1431195609Smp		os=-kaos
1432195609Smp		;;
1433195609Smp	-zvmoe)
1434195609Smp		os=-zvmoe
1435195609Smp		;;
1436195609Smp	-dicos*)
1437195609Smp		os=-dicos
1438195609Smp		;;
1439232633Smp        -nacl*)
1440232633Smp	        ;;
144169408Sache	-none)
144269408Sache		;;
144369408Sache	*)
144469408Sache		# Get rid of the `-' at the beginning of $os.
144569408Sache		os=`echo $os | sed 's/[^-]*-//'`
144669408Sache		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
144769408Sache		exit 1
144869408Sache		;;
144969408Sacheesac
145069408Sacheelse
145169408Sache
145269408Sache# Here we handle the default operating systems that come with various machines.
145369408Sache# The value should be what the vendor currently ships out the door with their
145469408Sache# machine or put another way, the most popular os provided with the machine.
145569408Sache
145669408Sache# Note that if you're going to try to match "-MANUFACTURER" here (say,
145769408Sache# "-sun"), then you have to tell the case statement up towards the top
145869408Sache# that MANUFACTURER isn't an operating system.  Otherwise, code above
145969408Sache# will signal an error saying that MANUFACTURER isn't an operating
146069408Sache# system, and we'll never get to this point.
146169408Sache
146269408Sachecase $basic_machine in
1463195609Smp        score-*)
1464195609Smp		os=-elf
1465195609Smp		;;
1466195609Smp        spu-*)
1467195609Smp		os=-elf
1468195609Smp		;;
146969408Sache	*-acorn)
147069408Sache		os=-riscix1.2
147169408Sache		;;
147283098Smp	arm*-rebel)
147383098Smp		os=-linux
147483098Smp		;;
147569408Sache	arm*-semi)
147669408Sache		os=-aout
147769408Sache		;;
1478195609Smp        c4x-* | tic4x-*)
1479195609Smp        	os=-coff
1480195609Smp		;;
1481100616Smp	# This must come before the *-dec entry.
1482100616Smp	pdp10-*)
1483100616Smp		os=-tops20
1484100616Smp		;;
1485195609Smp	pdp11-*)
148669408Sache		os=-none
148769408Sache		;;
148869408Sache	*-dec | vax-*)
148969408Sache		os=-ultrix4.2
149069408Sache		;;
149169408Sache	m68*-apollo)
149269408Sache		os=-domain
149369408Sache		;;
149469408Sache	i386-sun)
149569408Sache		os=-sunos4.0.2
149669408Sache		;;
149769408Sache	m68000-sun)
149869408Sache		os=-sunos3
149969408Sache		# This also exists in the configure program, but was not the
150069408Sache		# default.
150169408Sache		# os=-sunos4
150269408Sache		;;
150383098Smp	m68*-cisco)
150483098Smp		os=-aout
150583098Smp		;;
1506195609Smp        mep-*)
1507195609Smp		os=-elf
1508195609Smp		;;
150983098Smp	mips*-cisco)
151083098Smp		os=-elf
151183098Smp		;;
151283098Smp	mips*-*)
151383098Smp		os=-elf
151483098Smp		;;
1515100616Smp	or32-*)
1516100616Smp		os=-coff
1517100616Smp		;;
151869408Sache	*-tti)	# must be before sparc entry or we get the wrong os.
151969408Sache		os=-sysv3
152069408Sache		;;
152169408Sache	sparc-* | *-sun)
152269408Sache		os=-sunos4.1.1
152369408Sache		;;
152469408Sache	*-be)
152569408Sache		os=-beos
152669408Sache		;;
1527195609Smp	*-haiku)
1528195609Smp		os=-haiku
1529195609Smp		;;
153069408Sache	*-ibm)
153169408Sache		os=-aix
153269408Sache		;;
1533195609Smp    	*-knuth)
1534195609Smp		os=-mmixware
1535195609Smp		;;
153683098Smp	*-wec)
153783098Smp		os=-proelf
153883098Smp		;;
153983098Smp	*-winbond)
154083098Smp		os=-proelf
154183098Smp		;;
154283098Smp	*-oki)
154383098Smp		os=-proelf
154483098Smp		;;
154569408Sache	*-hp)
154669408Sache		os=-hpux
154769408Sache		;;
154869408Sache	*-hitachi)
154969408Sache		os=-hiux
155069408Sache		;;
155169408Sache	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
155269408Sache		os=-sysv
155369408Sache		;;
155469408Sache	*-cbm)
155569408Sache		os=-amigaos
155669408Sache		;;
155769408Sache	*-dg)
155869408Sache		os=-dgux
155969408Sache		;;
156069408Sache	*-dolphin)
156169408Sache		os=-sysv3
156269408Sache		;;
156369408Sache	m68k-ccur)
156469408Sache		os=-rtu
156569408Sache		;;
156669408Sache	m88k-omron*)
156769408Sache		os=-luna
156869408Sache		;;
156969408Sache	*-next )
157069408Sache		os=-nextstep
157169408Sache		;;
157269408Sache	*-sequent)
157369408Sache		os=-ptx
157469408Sache		;;
157569408Sache	*-crds)
157669408Sache		os=-unos
157769408Sache		;;
157869408Sache	*-ns)
157969408Sache		os=-genix
158069408Sache		;;
158169408Sache	i370-*)
158269408Sache		os=-mvs
158369408Sache		;;
158469408Sache	*-next)
158569408Sache		os=-nextstep3
158669408Sache		;;
1587195609Smp	*-gould)
158869408Sache		os=-sysv
158969408Sache		;;
1590195609Smp	*-highlevel)
159169408Sache		os=-bsd
159269408Sache		;;
159369408Sache	*-encore)
159469408Sache		os=-bsd
159569408Sache		;;
1596195609Smp	*-sgi)
159769408Sache		os=-irix
159869408Sache		;;
1599195609Smp	*-siemens)
160069408Sache		os=-sysv4
160169408Sache		;;
160269408Sache	*-masscomp)
160369408Sache		os=-rtu
160469408Sache		;;
1605100616Smp	f30[01]-fujitsu | f700-fujitsu)
160669408Sache		os=-uxpv
160769408Sache		;;
160883098Smp	*-rom68k)
160983098Smp		os=-coff
161083098Smp		;;
161183098Smp	*-*bug)
161283098Smp		os=-coff
161383098Smp		;;
161483098Smp	*-apple)
161583098Smp		os=-macos
161683098Smp		;;
161783098Smp	*-atari*)
161883098Smp		os=-mint
161983098Smp		;;
162069408Sache	*)
162169408Sache		os=-none
162269408Sache		;;
162369408Sacheesac
162469408Sachefi
162569408Sache
162669408Sache# Here we handle the case where we know the os, and the CPU type, but not the
162769408Sache# manufacturer.  We pick the logical manufacturer.
162869408Sachevendor=unknown
162969408Sachecase $basic_machine in
163069408Sache	*-unknown)
163169408Sache		case $os in
163269408Sache			-riscix*)
163369408Sache				vendor=acorn
163469408Sache				;;
163569408Sache			-sunos*)
163669408Sache				vendor=sun
163769408Sache				;;
1638195609Smp			-cnk*|-aix*)
163969408Sache				vendor=ibm
164069408Sache				;;
164183098Smp			-beos*)
164283098Smp				vendor=be
164383098Smp				;;
164469408Sache			-hpux*)
164569408Sache				vendor=hp
164669408Sache				;;
164783098Smp			-mpeix*)
164883098Smp				vendor=hp
164983098Smp				;;
165069408Sache			-hiux*)
165169408Sache				vendor=hitachi
165269408Sache				;;
165369408Sache			-unos*)
165469408Sache				vendor=crds
165569408Sache				;;
165669408Sache			-dgux*)
165769408Sache				vendor=dg
165869408Sache				;;
165969408Sache			-luna*)
166069408Sache				vendor=omron
166169408Sache				;;
166269408Sache			-genix*)
166369408Sache				vendor=ns
166469408Sache				;;
166583098Smp			-mvs* | -opened*)
166669408Sache				vendor=ibm
166769408Sache				;;
1668195609Smp			-os400*)
1669195609Smp				vendor=ibm
1670195609Smp				;;
167169408Sache			-ptx*)
167269408Sache				vendor=sequent
167369408Sache				;;
1674195609Smp			-tpf*)
1675195609Smp				vendor=ibm
1676195609Smp				;;
1677100616Smp			-vxsim* | -vxworks* | -windiss*)
167869408Sache				vendor=wrs
167969408Sache				;;
168069408Sache			-aux*)
168169408Sache				vendor=apple
168269408Sache				;;
168383098Smp			-hms*)
168483098Smp				vendor=hitachi
168583098Smp				;;
168683098Smp			-mpw* | -macos*)
168783098Smp				vendor=apple
168883098Smp				;;
1689100616Smp			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
169083098Smp				vendor=atari
169183098Smp				;;
1692100616Smp			-vos*)
1693100616Smp				vendor=stratus
1694100616Smp				;;
169569408Sache		esac
169669408Sache		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
169769408Sache		;;
169869408Sacheesac
169969408Sache
170069408Sacheecho $basic_machine$os
1701195609Smpexit
1702100616Smp
1703100616Smp# Local variables:
1704100616Smp# eval: (add-hook 'write-file-hooks 'time-stamp)
1705100616Smp# time-stamp-start: "timestamp='"
1706100616Smp# time-stamp-format: "%:y-%02m-%02d"
1707100616Smp# time-stamp-end: "'"
1708100616Smp# End:
1709