config.sub revision 1fb744b4
1c35d236eSmrg#! /bin/sh
2c35d236eSmrg# Configuration validation subroutine script.
3c35d236eSmrg#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
41fb744b4Smrg#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
51fb744b4Smrg#   2011, 2012 Free Software Foundation, Inc.
6c35d236eSmrg
71fb744b4Smrgtimestamp='2012-01-01'
8c35d236eSmrg
9c35d236eSmrg# This file is (in principle) common to ALL GNU software.
10c35d236eSmrg# The presence of a machine in this file suggests that SOME GNU software
11c35d236eSmrg# can handle that machine.  It does not imply ALL GNU software can.
12c35d236eSmrg#
13c35d236eSmrg# This file is free software; you can redistribute it and/or modify
14c35d236eSmrg# it under the terms of the GNU General Public License as published by
15c35d236eSmrg# the Free Software Foundation; either version 2 of the License, or
16c35d236eSmrg# (at your option) any later version.
17c35d236eSmrg#
18c35d236eSmrg# This program is distributed in the hope that it will be useful,
19c35d236eSmrg# but WITHOUT ANY WARRANTY; without even the implied warranty of
20c35d236eSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21c35d236eSmrg# GNU General Public License for more details.
22c35d236eSmrg#
23c35d236eSmrg# You should have received a copy of the GNU General Public License
24c35d236eSmrg# along with this program; if not, write to the Free Software
254f6cd06fSmrg# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
264f6cd06fSmrg# 02110-1301, USA.
274f6cd06fSmrg#
28c35d236eSmrg# As a special exception to the GNU General Public License, if you
29c35d236eSmrg# distribute this file as part of a program that contains a
30c35d236eSmrg# configuration script generated by Autoconf, you may include it under
31c35d236eSmrg# the same distribution terms that you use for the rest of that program.
32c35d236eSmrg
334f6cd06fSmrg
34c35d236eSmrg# Please send patches to <config-patches@gnu.org>.  Submit a context
351fb744b4Smrg# diff and a properly formatted GNU ChangeLog entry.
36c35d236eSmrg#
37c35d236eSmrg# Configuration subroutine to validate and canonicalize a configuration type.
38c35d236eSmrg# Supply the specified configuration type as an argument.
39c35d236eSmrg# If it is invalid, we print an error message on stderr and exit with code 1.
40c35d236eSmrg# Otherwise, we print the canonical config type on stdout and succeed.
41c35d236eSmrg
421fb744b4Smrg# You can get the latest version of this script from:
431fb744b4Smrg# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
441fb744b4Smrg
45c35d236eSmrg# This file is supposed to be the same for all GNU packages
46c35d236eSmrg# and recognize all the CPU types, system types and aliases
47c35d236eSmrg# that are meaningful with *any* GNU software.
48c35d236eSmrg# Each package is responsible for reporting which valid configurations
49c35d236eSmrg# it does not support.  The user should be able to distinguish
50c35d236eSmrg# a failure to support a valid configuration from a meaningless
51c35d236eSmrg# configuration.
52c35d236eSmrg
53c35d236eSmrg# The goal of this file is to map all the various variations of a given
54c35d236eSmrg# machine specification into a single specification in the form:
55c35d236eSmrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
56c35d236eSmrg# or in some cases, the newer four-part form:
57c35d236eSmrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
58c35d236eSmrg# It is wrong to echo any other type of specification.
59c35d236eSmrg
60c35d236eSmrgme=`echo "$0" | sed -e 's,.*/,,'`
61c35d236eSmrg
62c35d236eSmrgusage="\
63c35d236eSmrgUsage: $0 [OPTION] CPU-MFR-OPSYS
64c35d236eSmrg       $0 [OPTION] ALIAS
65c35d236eSmrg
66c35d236eSmrgCanonicalize a configuration name.
67c35d236eSmrg
68c35d236eSmrgOperation modes:
69c35d236eSmrg  -h, --help         print this help, then exit
70c35d236eSmrg  -t, --time-stamp   print date of last modification, then exit
71c35d236eSmrg  -v, --version      print version number, then exit
72c35d236eSmrg
73c35d236eSmrgReport bugs and patches to <config-patches@gnu.org>."
74c35d236eSmrg
75c35d236eSmrgversion="\
76c35d236eSmrgGNU config.sub ($timestamp)
77c35d236eSmrg
781fb744b4SmrgCopyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
791fb744b4Smrg2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
801fb744b4SmrgFree Software Foundation, Inc.
81c35d236eSmrg
82c35d236eSmrgThis is free software; see the source for copying conditions.  There is NO
83c35d236eSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
84c35d236eSmrg
85c35d236eSmrghelp="
86c35d236eSmrgTry \`$me --help' for more information."
87c35d236eSmrg
88c35d236eSmrg# Parse command line
89c35d236eSmrgwhile test $# -gt 0 ; do
90c35d236eSmrg  case $1 in
91c35d236eSmrg    --time-stamp | --time* | -t )
924f6cd06fSmrg       echo "$timestamp" ; exit ;;
93c35d236eSmrg    --version | -v )
944f6cd06fSmrg       echo "$version" ; exit ;;
95c35d236eSmrg    --help | --h* | -h )
964f6cd06fSmrg       echo "$usage"; exit ;;
97c35d236eSmrg    -- )     # Stop option processing
98c35d236eSmrg       shift; break ;;
99c35d236eSmrg    - )	# Use stdin as input.
100c35d236eSmrg       break ;;
101c35d236eSmrg    -* )
102c35d236eSmrg       echo "$me: invalid option $1$help"
103c35d236eSmrg       exit 1 ;;
104c35d236eSmrg
105c35d236eSmrg    *local*)
106c35d236eSmrg       # First pass through any local machine types.
107c35d236eSmrg       echo $1
1084f6cd06fSmrg       exit ;;
109c35d236eSmrg
110c35d236eSmrg    * )
111c35d236eSmrg       break ;;
112c35d236eSmrg  esac
113c35d236eSmrgdone
114c35d236eSmrg
115c35d236eSmrgcase $# in
116c35d236eSmrg 0) echo "$me: missing argument$help" >&2
117c35d236eSmrg    exit 1;;
118c35d236eSmrg 1) ;;
119c35d236eSmrg *) echo "$me: too many arguments$help" >&2
120c35d236eSmrg    exit 1;;
121c35d236eSmrgesac
122c35d236eSmrg
123c35d236eSmrg# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
124c35d236eSmrg# Here we must recognize all the valid KERNEL-OS combinations.
125c35d236eSmrgmaybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
126c35d236eSmrgcase $maybe_os in
1271fb744b4Smrg  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
1281fb744b4Smrg  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
1291fb744b4Smrg  knetbsd*-gnu* | netbsd*-gnu* | \
1301fb744b4Smrg  kopensolaris*-gnu* | \
1314f6cd06fSmrg  storm-chaos* | os2-emx* | rtmk-nova*)
132c35d236eSmrg    os=-$maybe_os
133c35d236eSmrg    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
134c35d236eSmrg    ;;
135c35d236eSmrg  *)
136c35d236eSmrg    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
137c35d236eSmrg    if [ $basic_machine != $1 ]
138c35d236eSmrg    then os=`echo $1 | sed 's/.*-/-/'`
139c35d236eSmrg    else os=; fi
140c35d236eSmrg    ;;
141c35d236eSmrgesac
142c35d236eSmrg
143c35d236eSmrg### Let's recognize common machines as not being operating systems so
144c35d236eSmrg### that things like config.sub decstation-3100 work.  We also
145c35d236eSmrg### recognize some manufacturers as not being operating systems, so we
146c35d236eSmrg### can provide default operating systems below.
147c35d236eSmrgcase $os in
148c35d236eSmrg	-sun*os*)
149c35d236eSmrg		# Prevent following clause from handling this invalid input.
150c35d236eSmrg		;;
151c35d236eSmrg	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
152c35d236eSmrg	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
153c35d236eSmrg	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
154c35d236eSmrg	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
155c35d236eSmrg	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
156c35d236eSmrg	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
1571fb744b4Smrg	-apple | -axis | -knuth | -cray | -microblaze)
158c35d236eSmrg		os=
159c35d236eSmrg		basic_machine=$1
160c35d236eSmrg		;;
1611fb744b4Smrg	-bluegene*)
1621fb744b4Smrg		os=-cnk
1631fb744b4Smrg		;;
164c35d236eSmrg	-sim | -cisco | -oki | -wec | -winbond)
165c35d236eSmrg		os=
166c35d236eSmrg		basic_machine=$1
167c35d236eSmrg		;;
168c35d236eSmrg	-scout)
169c35d236eSmrg		;;
170c35d236eSmrg	-wrs)
171c35d236eSmrg		os=-vxworks
172c35d236eSmrg		basic_machine=$1
173c35d236eSmrg		;;
174c35d236eSmrg	-chorusos*)
175c35d236eSmrg		os=-chorusos
176c35d236eSmrg		basic_machine=$1
177c35d236eSmrg		;;
1781fb744b4Smrg	-chorusrdb)
1791fb744b4Smrg		os=-chorusrdb
180c35d236eSmrg		basic_machine=$1
1811fb744b4Smrg		;;
182c35d236eSmrg	-hiux*)
183c35d236eSmrg		os=-hiuxwe2
184c35d236eSmrg		;;
1854f6cd06fSmrg	-sco6)
1864f6cd06fSmrg		os=-sco5v6
1874f6cd06fSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
1884f6cd06fSmrg		;;
189c35d236eSmrg	-sco5)
190c35d236eSmrg		os=-sco3.2v5
191c35d236eSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
192c35d236eSmrg		;;
193c35d236eSmrg	-sco4)
194c35d236eSmrg		os=-sco3.2v4
195c35d236eSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
196c35d236eSmrg		;;
197c35d236eSmrg	-sco3.2.[4-9]*)
198c35d236eSmrg		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
199c35d236eSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
200c35d236eSmrg		;;
201c35d236eSmrg	-sco3.2v[4-9]*)
202c35d236eSmrg		# Don't forget version if it is 3.2v4 or newer.
203c35d236eSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
204c35d236eSmrg		;;
2054f6cd06fSmrg	-sco5v6*)
2064f6cd06fSmrg		# Don't forget version if it is 3.2v4 or newer.
2074f6cd06fSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
2084f6cd06fSmrg		;;
209c35d236eSmrg	-sco*)
210c35d236eSmrg		os=-sco3.2v2
211c35d236eSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
212c35d236eSmrg		;;
213c35d236eSmrg	-udk*)
214c35d236eSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
215c35d236eSmrg		;;
216c35d236eSmrg	-isc)
217c35d236eSmrg		os=-isc2.2
218c35d236eSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
219c35d236eSmrg		;;
220c35d236eSmrg	-clix*)
221c35d236eSmrg		basic_machine=clipper-intergraph
222c35d236eSmrg		;;
223c35d236eSmrg	-isc*)
224c35d236eSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
225c35d236eSmrg		;;
226c35d236eSmrg	-lynx*)
227c35d236eSmrg		os=-lynxos
228c35d236eSmrg		;;
229c35d236eSmrg	-ptx*)
230c35d236eSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
231c35d236eSmrg		;;
232c35d236eSmrg	-windowsnt*)
233c35d236eSmrg		os=`echo $os | sed -e 's/windowsnt/winnt/'`
234c35d236eSmrg		;;
235c35d236eSmrg	-psos*)
236c35d236eSmrg		os=-psos
237c35d236eSmrg		;;
238c35d236eSmrg	-mint | -mint[0-9]*)
239c35d236eSmrg		basic_machine=m68k-atari
240c35d236eSmrg		os=-mint
241c35d236eSmrg		;;
242c35d236eSmrgesac
243c35d236eSmrg
244c35d236eSmrg# Decode aliases for certain CPU-COMPANY combinations.
245c35d236eSmrgcase $basic_machine in
246c35d236eSmrg	# Recognize the basic CPU types without company name.
247c35d236eSmrg	# Some are omitted here because they have special meanings below.
248c35d236eSmrg	1750a | 580 \
249c35d236eSmrg	| a29k \
250c35d236eSmrg	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
251c35d236eSmrg	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
2524f6cd06fSmrg	| am33_2.0 \
2534f6cd06fSmrg	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
2541fb744b4Smrg        | be32 | be64 \
2554f6cd06fSmrg	| bfin \
256c35d236eSmrg	| c4x | clipper \
257c35d236eSmrg	| d10v | d30v | dlx | dsp16xx \
2581fb744b4Smrg	| epiphany \
259f55e6a01Smrg	| fido | fr30 | frv \
260c35d236eSmrg	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
2611fb744b4Smrg	| hexagon \
262c35d236eSmrg	| i370 | i860 | i960 | ia64 \
2634f6cd06fSmrg	| ip2k | iq2000 \
2641fb744b4Smrg	| le32 | le64 \
2651fb744b4Smrg	| lm32 \
2664f6cd06fSmrg	| m32c | m32r | m32rle | m68000 | m68k | m88k \
2671fb744b4Smrg	| maxq | mb | microblaze | mcore | mep | metag \
268c35d236eSmrg	| mips | mipsbe | mipseb | mipsel | mipsle \
269c35d236eSmrg	| mips16 \
270c35d236eSmrg	| mips64 | mips64el \
2711fb744b4Smrg	| mips64octeon | mips64octeonel \
272c35d236eSmrg	| mips64orion | mips64orionel \
2731fb744b4Smrg	| mips64r5900 | mips64r5900el \
2741fb744b4Smrg	| mips64vr | mips64vrel \
275c35d236eSmrg	| mips64vr4100 | mips64vr4100el \
276c35d236eSmrg	| mips64vr4300 | mips64vr4300el \
277c35d236eSmrg	| mips64vr5000 | mips64vr5000el \
2784f6cd06fSmrg	| mips64vr5900 | mips64vr5900el \
279c35d236eSmrg	| mipsisa32 | mipsisa32el \
280c35d236eSmrg	| mipsisa32r2 | mipsisa32r2el \
281c35d236eSmrg	| mipsisa64 | mipsisa64el \
2824f6cd06fSmrg	| mipsisa64r2 | mipsisa64r2el \
283c35d236eSmrg	| mipsisa64sb1 | mipsisa64sb1el \
284c35d236eSmrg	| mipsisa64sr71k | mipsisa64sr71kel \
285c35d236eSmrg	| mipstx39 | mipstx39el \
286c35d236eSmrg	| mn10200 | mn10300 \
2871fb744b4Smrg	| moxie \
2884f6cd06fSmrg	| mt \
289c35d236eSmrg	| msp430 \
2901fb744b4Smrg	| nds32 | nds32le | nds32be \
2914f6cd06fSmrg	| nios | nios2 \
292c35d236eSmrg	| ns16k | ns32k \
2931fb744b4Smrg	| open8 \
2944f6cd06fSmrg	| or32 \
295c35d236eSmrg	| pdp10 | pdp11 | pj | pjl \
2961fb744b4Smrg	| powerpc | powerpc64 | powerpc64le | powerpcle \
297c35d236eSmrg	| pyramid \
2981fb744b4Smrg	| rl78 | rx \
2994f6cd06fSmrg	| score \
3001fb744b4Smrg	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
301c35d236eSmrg	| sh64 | sh64le \
3024f6cd06fSmrg	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
3034f6cd06fSmrg	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
3041fb744b4Smrg	| spu \
3051fb744b4Smrg	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
3061fb744b4Smrg	| ubicom32 \
3071fb744b4Smrg	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
308c35d236eSmrg	| we32k \
3091fb744b4Smrg	| x86 | xc16x | xstormy16 | xtensa \
3101fb744b4Smrg	| z8k | z80)
311c35d236eSmrg		basic_machine=$basic_machine-unknown
312c35d236eSmrg		;;
3131fb744b4Smrg	c54x)
3141fb744b4Smrg		basic_machine=tic54x-unknown
3151fb744b4Smrg		;;
3161fb744b4Smrg	c55x)
3171fb744b4Smrg		basic_machine=tic55x-unknown
3181fb744b4Smrg		;;
3191fb744b4Smrg	c6x)
3201fb744b4Smrg		basic_machine=tic6x-unknown
3211fb744b4Smrg		;;
3221fb744b4Smrg	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
323c35d236eSmrg		basic_machine=$basic_machine-unknown
324c35d236eSmrg		os=-none
325c35d236eSmrg		;;
326c35d236eSmrg	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
327c35d236eSmrg		;;
3284f6cd06fSmrg	ms1)
3294f6cd06fSmrg		basic_machine=mt-unknown
3304f6cd06fSmrg		;;
331c35d236eSmrg
3321fb744b4Smrg	strongarm | thumb | xscale)
3331fb744b4Smrg		basic_machine=arm-unknown
3341fb744b4Smrg		;;
3351fb744b4Smrg
3361fb744b4Smrg	xscaleeb)
3371fb744b4Smrg		basic_machine=armeb-unknown
3381fb744b4Smrg		;;
3391fb744b4Smrg
3401fb744b4Smrg	xscaleel)
3411fb744b4Smrg		basic_machine=armel-unknown
3421fb744b4Smrg		;;
3431fb744b4Smrg
344c35d236eSmrg	# We use `pc' rather than `unknown'
345c35d236eSmrg	# because (1) that's what they normally are, and
346c35d236eSmrg	# (2) the word "unknown" tends to confuse beginning users.
347c35d236eSmrg	i*86 | x86_64)
348c35d236eSmrg	  basic_machine=$basic_machine-pc
349c35d236eSmrg	  ;;
350c35d236eSmrg	# Object if more than one company name word.
351c35d236eSmrg	*-*-*)
352c35d236eSmrg		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
353c35d236eSmrg		exit 1
354c35d236eSmrg		;;
355c35d236eSmrg	# Recognize the basic CPU types with company name.
356c35d236eSmrg	580-* \
357c35d236eSmrg	| a29k-* \
358c35d236eSmrg	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
359c35d236eSmrg	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
360c35d236eSmrg	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
361c35d236eSmrg	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
3624f6cd06fSmrg	| avr-* | avr32-* \
3631fb744b4Smrg	| be32-* | be64-* \
3644f6cd06fSmrg	| bfin-* | bs2000-* \
3651fb744b4Smrg	| c[123]* | c30-* | [cjt]90-* | c4x-* \
3664f6cd06fSmrg	| clipper-* | craynv-* | cydra-* \
367c35d236eSmrg	| d10v-* | d30v-* | dlx-* \
368c35d236eSmrg	| elxsi-* \
369f55e6a01Smrg	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
370c35d236eSmrg	| h8300-* | h8500-* \
371c35d236eSmrg	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
3721fb744b4Smrg	| hexagon-* \
373c35d236eSmrg	| i*86-* | i860-* | i960-* | ia64-* \
3744f6cd06fSmrg	| ip2k-* | iq2000-* \
3751fb744b4Smrg	| le32-* | le64-* \
3761fb744b4Smrg	| lm32-* \
3774f6cd06fSmrg	| m32c-* | m32r-* | m32rle-* \
378c35d236eSmrg	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
3791fb744b4Smrg	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
380c35d236eSmrg	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
381c35d236eSmrg	| mips16-* \
382c35d236eSmrg	| mips64-* | mips64el-* \
3831fb744b4Smrg	| mips64octeon-* | mips64octeonel-* \
384c35d236eSmrg	| mips64orion-* | mips64orionel-* \
3851fb744b4Smrg	| mips64r5900-* | mips64r5900el-* \
3861fb744b4Smrg	| mips64vr-* | mips64vrel-* \
387c35d236eSmrg	| mips64vr4100-* | mips64vr4100el-* \
388c35d236eSmrg	| mips64vr4300-* | mips64vr4300el-* \
389c35d236eSmrg	| mips64vr5000-* | mips64vr5000el-* \
3904f6cd06fSmrg	| mips64vr5900-* | mips64vr5900el-* \
391c35d236eSmrg	| mipsisa32-* | mipsisa32el-* \
392c35d236eSmrg	| mipsisa32r2-* | mipsisa32r2el-* \
393c35d236eSmrg	| mipsisa64-* | mipsisa64el-* \
3944f6cd06fSmrg	| mipsisa64r2-* | mipsisa64r2el-* \
395c35d236eSmrg	| mipsisa64sb1-* | mipsisa64sb1el-* \
396c35d236eSmrg	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
397c35d236eSmrg	| mipstx39-* | mipstx39el-* \
3984f6cd06fSmrg	| mmix-* \
3994f6cd06fSmrg	| mt-* \
400c35d236eSmrg	| msp430-* \
4011fb744b4Smrg	| nds32-* | nds32le-* | nds32be-* \
4024f6cd06fSmrg	| nios-* | nios2-* \
4034f6cd06fSmrg	| none-* | np1-* | ns16k-* | ns32k-* \
4041fb744b4Smrg	| open8-* \
405c35d236eSmrg	| orion-* \
406c35d236eSmrg	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
4071fb744b4Smrg	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
408c35d236eSmrg	| pyramid-* \
4091fb744b4Smrg	| rl78-* | romp-* | rs6000-* | rx-* \
4101fb744b4Smrg	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
411c35d236eSmrg	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
4124f6cd06fSmrg	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
4134f6cd06fSmrg	| sparclite-* \
4141fb744b4Smrg	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
4151fb744b4Smrg	| tahoe-* \
416c35d236eSmrg	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
4171fb744b4Smrg	| tile*-* \
418c35d236eSmrg	| tron-* \
4191fb744b4Smrg	| ubicom32-* \
4201fb744b4Smrg	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
4211fb744b4Smrg	| vax-* \
422c35d236eSmrg	| we32k-* \
4231fb744b4Smrg	| x86-* | x86_64-* | xc16x-* | xps100-* \
424f55e6a01Smrg	| xstormy16-* | xtensa*-* \
425c35d236eSmrg	| ymp-* \
4261fb744b4Smrg	| z8k-* | z80-*)
427c35d236eSmrg		;;
428f55e6a01Smrg	# Recognize the basic CPU types without company name, with glob match.
429f55e6a01Smrg	xtensa*)
430f55e6a01Smrg		basic_machine=$basic_machine-unknown
431f55e6a01Smrg		;;
432c35d236eSmrg	# Recognize the various machine names and aliases which stand
433c35d236eSmrg	# for a CPU type and a company and sometimes even an OS.
434c35d236eSmrg	386bsd)
435c35d236eSmrg		basic_machine=i386-unknown
436c35d236eSmrg		os=-bsd
437c35d236eSmrg		;;
438c35d236eSmrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
439c35d236eSmrg		basic_machine=m68000-att
440c35d236eSmrg		;;
441c35d236eSmrg	3b*)
442c35d236eSmrg		basic_machine=we32k-att
443c35d236eSmrg		;;
444c35d236eSmrg	a29khif)
445c35d236eSmrg		basic_machine=a29k-amd
446c35d236eSmrg		os=-udi
447c35d236eSmrg		;;
4481fb744b4Smrg	abacus)
4494f6cd06fSmrg		basic_machine=abacus-unknown
4504f6cd06fSmrg		;;
451c35d236eSmrg	adobe68k)
452c35d236eSmrg		basic_machine=m68010-adobe
453c35d236eSmrg		os=-scout
454c35d236eSmrg		;;
455c35d236eSmrg	alliant | fx80)
456c35d236eSmrg		basic_machine=fx80-alliant
457c35d236eSmrg		;;
458c35d236eSmrg	altos | altos3068)
459c35d236eSmrg		basic_machine=m68k-altos
460c35d236eSmrg		;;
461c35d236eSmrg	am29k)
462c35d236eSmrg		basic_machine=a29k-none
463c35d236eSmrg		os=-bsd
464c35d236eSmrg		;;
465c35d236eSmrg	amd64)
466c35d236eSmrg		basic_machine=x86_64-pc
467c35d236eSmrg		;;
4684f6cd06fSmrg	amd64-*)
4694f6cd06fSmrg		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
4704f6cd06fSmrg		;;
471c35d236eSmrg	amdahl)
472c35d236eSmrg		basic_machine=580-amdahl
473c35d236eSmrg		os=-sysv
474c35d236eSmrg		;;
475c35d236eSmrg	amiga | amiga-*)
476c35d236eSmrg		basic_machine=m68k-unknown
477c35d236eSmrg		;;
478c35d236eSmrg	amigaos | amigados)
479c35d236eSmrg		basic_machine=m68k-unknown
480c35d236eSmrg		os=-amigaos
481c35d236eSmrg		;;
482c35d236eSmrg	amigaunix | amix)
483c35d236eSmrg		basic_machine=m68k-unknown
484c35d236eSmrg		os=-sysv4
485c35d236eSmrg		;;
486c35d236eSmrg	apollo68)
487c35d236eSmrg		basic_machine=m68k-apollo
488c35d236eSmrg		os=-sysv
489c35d236eSmrg		;;
490c35d236eSmrg	apollo68bsd)
491c35d236eSmrg		basic_machine=m68k-apollo
492c35d236eSmrg		os=-bsd
493c35d236eSmrg		;;
4941fb744b4Smrg	aros)
4951fb744b4Smrg		basic_machine=i386-pc
4961fb744b4Smrg		os=-aros
4971fb744b4Smrg		;;
498c35d236eSmrg	aux)
499c35d236eSmrg		basic_machine=m68k-apple
500c35d236eSmrg		os=-aux
501c35d236eSmrg		;;
502c35d236eSmrg	balance)
503c35d236eSmrg		basic_machine=ns32k-sequent
504c35d236eSmrg		os=-dynix
505c35d236eSmrg		;;
506f55e6a01Smrg	blackfin)
507f55e6a01Smrg		basic_machine=bfin-unknown
508f55e6a01Smrg		os=-linux
509f55e6a01Smrg		;;
510f55e6a01Smrg	blackfin-*)
511f55e6a01Smrg		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
512f55e6a01Smrg		os=-linux
513f55e6a01Smrg		;;
5141fb744b4Smrg	bluegene*)
5151fb744b4Smrg		basic_machine=powerpc-ibm
5161fb744b4Smrg		os=-cnk
5171fb744b4Smrg		;;
5181fb744b4Smrg	c54x-*)
5191fb744b4Smrg		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
5201fb744b4Smrg		;;
5211fb744b4Smrg	c55x-*)
5221fb744b4Smrg		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
5231fb744b4Smrg		;;
5241fb744b4Smrg	c6x-*)
5251fb744b4Smrg		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
5261fb744b4Smrg		;;
527c35d236eSmrg	c90)
528c35d236eSmrg		basic_machine=c90-cray
529c35d236eSmrg		os=-unicos
530c35d236eSmrg		;;
5311fb744b4Smrg	cegcc)
5321fb744b4Smrg		basic_machine=arm-unknown
5331fb744b4Smrg		os=-cegcc
5341fb744b4Smrg		;;
535c35d236eSmrg	convex-c1)
536c35d236eSmrg		basic_machine=c1-convex
537c35d236eSmrg		os=-bsd
538c35d236eSmrg		;;
539c35d236eSmrg	convex-c2)
540c35d236eSmrg		basic_machine=c2-convex
541c35d236eSmrg		os=-bsd
542c35d236eSmrg		;;
543c35d236eSmrg	convex-c32)
544c35d236eSmrg		basic_machine=c32-convex
545c35d236eSmrg		os=-bsd
546c35d236eSmrg		;;
547c35d236eSmrg	convex-c34)
548c35d236eSmrg		basic_machine=c34-convex
549c35d236eSmrg		os=-bsd
550c35d236eSmrg		;;
551c35d236eSmrg	convex-c38)
552c35d236eSmrg		basic_machine=c38-convex
553c35d236eSmrg		os=-bsd
554c35d236eSmrg		;;
555c35d236eSmrg	cray | j90)
556c35d236eSmrg		basic_machine=j90-cray
557c35d236eSmrg		os=-unicos
558c35d236eSmrg		;;
5594f6cd06fSmrg	craynv)
5604f6cd06fSmrg		basic_machine=craynv-cray
5614f6cd06fSmrg		os=-unicosmp
5624f6cd06fSmrg		;;
5631fb744b4Smrg	cr16 | cr16-*)
564f55e6a01Smrg		basic_machine=cr16-unknown
5654f6cd06fSmrg		os=-elf
5664f6cd06fSmrg		;;
567c35d236eSmrg	crds | unos)
568c35d236eSmrg		basic_machine=m68k-crds
569c35d236eSmrg		;;
5704f6cd06fSmrg	crisv32 | crisv32-* | etraxfs*)
5714f6cd06fSmrg		basic_machine=crisv32-axis
5724f6cd06fSmrg		;;
573c35d236eSmrg	cris | cris-* | etrax*)
574c35d236eSmrg		basic_machine=cris-axis
575c35d236eSmrg		;;
5764f6cd06fSmrg	crx)
5774f6cd06fSmrg		basic_machine=crx-unknown
5784f6cd06fSmrg		os=-elf
5794f6cd06fSmrg		;;
580c35d236eSmrg	da30 | da30-*)
581c35d236eSmrg		basic_machine=m68k-da30
582c35d236eSmrg		;;
583c35d236eSmrg	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
584c35d236eSmrg		basic_machine=mips-dec
585c35d236eSmrg		;;
586c35d236eSmrg	decsystem10* | dec10*)
587c35d236eSmrg		basic_machine=pdp10-dec
588c35d236eSmrg		os=-tops10
589c35d236eSmrg		;;
590c35d236eSmrg	decsystem20* | dec20*)
591c35d236eSmrg		basic_machine=pdp10-dec
592c35d236eSmrg		os=-tops20
593c35d236eSmrg		;;
594c35d236eSmrg	delta | 3300 | motorola-3300 | motorola-delta \
595c35d236eSmrg	      | 3300-motorola | delta-motorola)
596c35d236eSmrg		basic_machine=m68k-motorola
597c35d236eSmrg		;;
598c35d236eSmrg	delta88)
599c35d236eSmrg		basic_machine=m88k-motorola
600c35d236eSmrg		os=-sysv3
601c35d236eSmrg		;;
6021fb744b4Smrg	dicos)
6031fb744b4Smrg		basic_machine=i686-pc
6041fb744b4Smrg		os=-dicos
6051fb744b4Smrg		;;
6064f6cd06fSmrg	djgpp)
6074f6cd06fSmrg		basic_machine=i586-pc
6084f6cd06fSmrg		os=-msdosdjgpp
6094f6cd06fSmrg		;;
610c35d236eSmrg	dpx20 | dpx20-*)
611c35d236eSmrg		basic_machine=rs6000-bull
612c35d236eSmrg		os=-bosx
613c35d236eSmrg		;;
614c35d236eSmrg	dpx2* | dpx2*-bull)
615c35d236eSmrg		basic_machine=m68k-bull
616c35d236eSmrg		os=-sysv3
617c35d236eSmrg		;;
618c35d236eSmrg	ebmon29k)
619c35d236eSmrg		basic_machine=a29k-amd
620c35d236eSmrg		os=-ebmon
621c35d236eSmrg		;;
622c35d236eSmrg	elxsi)
623c35d236eSmrg		basic_machine=elxsi-elxsi
624c35d236eSmrg		os=-bsd
625c35d236eSmrg		;;
626c35d236eSmrg	encore | umax | mmax)
627c35d236eSmrg		basic_machine=ns32k-encore
628c35d236eSmrg		;;
629c35d236eSmrg	es1800 | OSE68k | ose68k | ose | OSE)
630c35d236eSmrg		basic_machine=m68k-ericsson
631c35d236eSmrg		os=-ose
632c35d236eSmrg		;;
633c35d236eSmrg	fx2800)
634c35d236eSmrg		basic_machine=i860-alliant
635c35d236eSmrg		;;
636c35d236eSmrg	genix)
637c35d236eSmrg		basic_machine=ns32k-ns
638c35d236eSmrg		;;
639c35d236eSmrg	gmicro)
640c35d236eSmrg		basic_machine=tron-gmicro
641c35d236eSmrg		os=-sysv
642c35d236eSmrg		;;
643c35d236eSmrg	go32)
644c35d236eSmrg		basic_machine=i386-pc
645c35d236eSmrg		os=-go32
646c35d236eSmrg		;;
647c35d236eSmrg	h3050r* | hiux*)
648c35d236eSmrg		basic_machine=hppa1.1-hitachi
649c35d236eSmrg		os=-hiuxwe2
650c35d236eSmrg		;;
651c35d236eSmrg	h8300hms)
652c35d236eSmrg		basic_machine=h8300-hitachi
653c35d236eSmrg		os=-hms
654c35d236eSmrg		;;
655c35d236eSmrg	h8300xray)
656c35d236eSmrg		basic_machine=h8300-hitachi
657c35d236eSmrg		os=-xray
658c35d236eSmrg		;;
659c35d236eSmrg	h8500hms)
660c35d236eSmrg		basic_machine=h8500-hitachi
661c35d236eSmrg		os=-hms
662c35d236eSmrg		;;
663c35d236eSmrg	harris)
664c35d236eSmrg		basic_machine=m88k-harris
665c35d236eSmrg		os=-sysv3
666c35d236eSmrg		;;
667c35d236eSmrg	hp300-*)
668c35d236eSmrg		basic_machine=m68k-hp
669c35d236eSmrg		;;
670c35d236eSmrg	hp300bsd)
671c35d236eSmrg		basic_machine=m68k-hp
672c35d236eSmrg		os=-bsd
673c35d236eSmrg		;;
674c35d236eSmrg	hp300hpux)
675c35d236eSmrg		basic_machine=m68k-hp
676c35d236eSmrg		os=-hpux
677c35d236eSmrg		;;
678c35d236eSmrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
679c35d236eSmrg		basic_machine=hppa1.0-hp
680c35d236eSmrg		;;
681c35d236eSmrg	hp9k2[0-9][0-9] | hp9k31[0-9])
682c35d236eSmrg		basic_machine=m68000-hp
683c35d236eSmrg		;;
684c35d236eSmrg	hp9k3[2-9][0-9])
685c35d236eSmrg		basic_machine=m68k-hp
686c35d236eSmrg		;;
687c35d236eSmrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
688c35d236eSmrg		basic_machine=hppa1.0-hp
689c35d236eSmrg		;;
690c35d236eSmrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
691c35d236eSmrg		basic_machine=hppa1.1-hp
692c35d236eSmrg		;;
693c35d236eSmrg	hp9k78[0-9] | hp78[0-9])
694c35d236eSmrg		# FIXME: really hppa2.0-hp
695c35d236eSmrg		basic_machine=hppa1.1-hp
696c35d236eSmrg		;;
697c35d236eSmrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
698c35d236eSmrg		# FIXME: really hppa2.0-hp
699c35d236eSmrg		basic_machine=hppa1.1-hp
700c35d236eSmrg		;;
701c35d236eSmrg	hp9k8[0-9][13679] | hp8[0-9][13679])
702c35d236eSmrg		basic_machine=hppa1.1-hp
703c35d236eSmrg		;;
704c35d236eSmrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
705c35d236eSmrg		basic_machine=hppa1.0-hp
706c35d236eSmrg		;;
707c35d236eSmrg	hppa-next)
708c35d236eSmrg		os=-nextstep3
709c35d236eSmrg		;;
710c35d236eSmrg	hppaosf)
711c35d236eSmrg		basic_machine=hppa1.1-hp
712c35d236eSmrg		os=-osf
713c35d236eSmrg		;;
714c35d236eSmrg	hppro)
715c35d236eSmrg		basic_machine=hppa1.1-hp
716c35d236eSmrg		os=-proelf
717c35d236eSmrg		;;
718c35d236eSmrg	i370-ibm* | ibm*)
719c35d236eSmrg		basic_machine=i370-ibm
720c35d236eSmrg		;;
721c35d236eSmrg	i*86v32)
722c35d236eSmrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
723c35d236eSmrg		os=-sysv32
724c35d236eSmrg		;;
725c35d236eSmrg	i*86v4*)
726c35d236eSmrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
727c35d236eSmrg		os=-sysv4
728c35d236eSmrg		;;
729c35d236eSmrg	i*86v)
730c35d236eSmrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
731c35d236eSmrg		os=-sysv
732c35d236eSmrg		;;
733c35d236eSmrg	i*86sol2)
734c35d236eSmrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
735c35d236eSmrg		os=-solaris2
736c35d236eSmrg		;;
737c35d236eSmrg	i386mach)
738c35d236eSmrg		basic_machine=i386-mach
739c35d236eSmrg		os=-mach
740c35d236eSmrg		;;
741c35d236eSmrg	i386-vsta | vsta)
742c35d236eSmrg		basic_machine=i386-unknown
743c35d236eSmrg		os=-vsta
744c35d236eSmrg		;;
745c35d236eSmrg	iris | iris4d)
746c35d236eSmrg		basic_machine=mips-sgi
747c35d236eSmrg		case $os in
748c35d236eSmrg		    -irix*)
749c35d236eSmrg			;;
750c35d236eSmrg		    *)
751c35d236eSmrg			os=-irix4
752c35d236eSmrg			;;
753c35d236eSmrg		esac
754c35d236eSmrg		;;
755c35d236eSmrg	isi68 | isi)
756c35d236eSmrg		basic_machine=m68k-isi
757c35d236eSmrg		os=-sysv
758c35d236eSmrg		;;
759f55e6a01Smrg	m68knommu)
760f55e6a01Smrg		basic_machine=m68k-unknown
761f55e6a01Smrg		os=-linux
762f55e6a01Smrg		;;
763f55e6a01Smrg	m68knommu-*)
764f55e6a01Smrg		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
765f55e6a01Smrg		os=-linux
766f55e6a01Smrg		;;
767c35d236eSmrg	m88k-omron*)
768c35d236eSmrg		basic_machine=m88k-omron
769c35d236eSmrg		;;
770c35d236eSmrg	magnum | m3230)
771c35d236eSmrg		basic_machine=mips-mips
772c35d236eSmrg		os=-sysv
773c35d236eSmrg		;;
774c35d236eSmrg	merlin)
775c35d236eSmrg		basic_machine=ns32k-utek
776c35d236eSmrg		os=-sysv
777c35d236eSmrg		;;
7781fb744b4Smrg	microblaze)
7791fb744b4Smrg		basic_machine=microblaze-xilinx
7801fb744b4Smrg		;;
781c35d236eSmrg	mingw32)
782c35d236eSmrg		basic_machine=i386-pc
783c35d236eSmrg		os=-mingw32
784c35d236eSmrg		;;
785f55e6a01Smrg	mingw32ce)
786f55e6a01Smrg		basic_machine=arm-unknown
787f55e6a01Smrg		os=-mingw32ce
788f55e6a01Smrg		;;
789c35d236eSmrg	miniframe)
790c35d236eSmrg		basic_machine=m68000-convergent
791c35d236eSmrg		;;
792c35d236eSmrg	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
793c35d236eSmrg		basic_machine=m68k-atari
794c35d236eSmrg		os=-mint
795c35d236eSmrg		;;
796c35d236eSmrg	mips3*-*)
797c35d236eSmrg		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
798c35d236eSmrg		;;
799c35d236eSmrg	mips3*)
800c35d236eSmrg		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
801c35d236eSmrg		;;
802c35d236eSmrg	monitor)
803c35d236eSmrg		basic_machine=m68k-rom68k
804c35d236eSmrg		os=-coff
805c35d236eSmrg		;;
806c35d236eSmrg	morphos)
807c35d236eSmrg		basic_machine=powerpc-unknown
808c35d236eSmrg		os=-morphos
809c35d236eSmrg		;;
810c35d236eSmrg	msdos)
811c35d236eSmrg		basic_machine=i386-pc
812c35d236eSmrg		os=-msdos
813c35d236eSmrg		;;
8144f6cd06fSmrg	ms1-*)
8154f6cd06fSmrg		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
8164f6cd06fSmrg		;;
8171fb744b4Smrg	msys)
8181fb744b4Smrg		basic_machine=i386-pc
8191fb744b4Smrg		os=-msys
8201fb744b4Smrg		;;
821c35d236eSmrg	mvs)
822c35d236eSmrg		basic_machine=i370-ibm
823c35d236eSmrg		os=-mvs
824c35d236eSmrg		;;
8251fb744b4Smrg	nacl)
8261fb744b4Smrg		basic_machine=le32-unknown
8271fb744b4Smrg		os=-nacl
8281fb744b4Smrg		;;
829c35d236eSmrg	ncr3000)
830c35d236eSmrg		basic_machine=i486-ncr
831c35d236eSmrg		os=-sysv4
832c35d236eSmrg		;;
833c35d236eSmrg	netbsd386)
834c35d236eSmrg		basic_machine=i386-unknown
835c35d236eSmrg		os=-netbsd
836c35d236eSmrg		;;
837c35d236eSmrg	netwinder)
838c35d236eSmrg		basic_machine=armv4l-rebel
839c35d236eSmrg		os=-linux
840c35d236eSmrg		;;
841c35d236eSmrg	news | news700 | news800 | news900)
842c35d236eSmrg		basic_machine=m68k-sony
843c35d236eSmrg		os=-newsos
844c35d236eSmrg		;;
845c35d236eSmrg	news1000)
846c35d236eSmrg		basic_machine=m68030-sony
847c35d236eSmrg		os=-newsos
848c35d236eSmrg		;;
849c35d236eSmrg	news-3600 | risc-news)
850c35d236eSmrg		basic_machine=mips-sony
851c35d236eSmrg		os=-newsos
852c35d236eSmrg		;;
853c35d236eSmrg	necv70)
854c35d236eSmrg		basic_machine=v70-nec
855c35d236eSmrg		os=-sysv
856c35d236eSmrg		;;
857c35d236eSmrg	next | m*-next )
858c35d236eSmrg		basic_machine=m68k-next
859c35d236eSmrg		case $os in
860c35d236eSmrg		    -nextstep* )
861c35d236eSmrg			;;
862c35d236eSmrg		    -ns2*)
863c35d236eSmrg		      os=-nextstep2
864c35d236eSmrg			;;
865c35d236eSmrg		    *)
866c35d236eSmrg		      os=-nextstep3
867c35d236eSmrg			;;
868c35d236eSmrg		esac
869c35d236eSmrg		;;
870c35d236eSmrg	nh3000)
871c35d236eSmrg		basic_machine=m68k-harris
872c35d236eSmrg		os=-cxux
873c35d236eSmrg		;;
874c35d236eSmrg	nh[45]000)
875c35d236eSmrg		basic_machine=m88k-harris
876c35d236eSmrg		os=-cxux
877c35d236eSmrg		;;
878c35d236eSmrg	nindy960)
879c35d236eSmrg		basic_machine=i960-intel
880c35d236eSmrg		os=-nindy
881c35d236eSmrg		;;
882c35d236eSmrg	mon960)
883c35d236eSmrg		basic_machine=i960-intel
884c35d236eSmrg		os=-mon960
885c35d236eSmrg		;;
886c35d236eSmrg	nonstopux)
887c35d236eSmrg		basic_machine=mips-compaq
888c35d236eSmrg		os=-nonstopux
889c35d236eSmrg		;;
890c35d236eSmrg	np1)
891c35d236eSmrg		basic_machine=np1-gould
892c35d236eSmrg		;;
8931fb744b4Smrg	neo-tandem)
8941fb744b4Smrg		basic_machine=neo-tandem
8951fb744b4Smrg		;;
8961fb744b4Smrg	nse-tandem)
8971fb744b4Smrg		basic_machine=nse-tandem
8981fb744b4Smrg		;;
899c35d236eSmrg	nsr-tandem)
900c35d236eSmrg		basic_machine=nsr-tandem
901c35d236eSmrg		;;
902c35d236eSmrg	op50n-* | op60c-*)
903c35d236eSmrg		basic_machine=hppa1.1-oki
904c35d236eSmrg		os=-proelf
905c35d236eSmrg		;;
9064f6cd06fSmrg	openrisc | openrisc-*)
907c35d236eSmrg		basic_machine=or32-unknown
9084f6cd06fSmrg		;;
9094f6cd06fSmrg	os400)
9104f6cd06fSmrg		basic_machine=powerpc-ibm
9114f6cd06fSmrg		os=-os400
912c35d236eSmrg		;;
913c35d236eSmrg	OSE68000 | ose68000)
914c35d236eSmrg		basic_machine=m68000-ericsson
915c35d236eSmrg		os=-ose
916c35d236eSmrg		;;
917c35d236eSmrg	os68k)
918c35d236eSmrg		basic_machine=m68k-none
919c35d236eSmrg		os=-os68k
920c35d236eSmrg		;;
921c35d236eSmrg	pa-hitachi)
922c35d236eSmrg		basic_machine=hppa1.1-hitachi
923c35d236eSmrg		os=-hiuxwe2
924c35d236eSmrg		;;
925c35d236eSmrg	paragon)
926c35d236eSmrg		basic_machine=i860-intel
927c35d236eSmrg		os=-osf
928c35d236eSmrg		;;
929f55e6a01Smrg	parisc)
930f55e6a01Smrg		basic_machine=hppa-unknown
931f55e6a01Smrg		os=-linux
932f55e6a01Smrg		;;
933f55e6a01Smrg	parisc-*)
934f55e6a01Smrg		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
935f55e6a01Smrg		os=-linux
936f55e6a01Smrg		;;
937c35d236eSmrg	pbd)
938c35d236eSmrg		basic_machine=sparc-tti
939c35d236eSmrg		;;
940c35d236eSmrg	pbb)
941c35d236eSmrg		basic_machine=m68k-tti
942c35d236eSmrg		;;
943c35d236eSmrg	pc532 | pc532-*)
944c35d236eSmrg		basic_machine=ns32k-pc532
945c35d236eSmrg		;;
9464f6cd06fSmrg	pc98)
9474f6cd06fSmrg		basic_machine=i386-pc
9484f6cd06fSmrg		;;
9494f6cd06fSmrg	pc98-*)
9504f6cd06fSmrg		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
9514f6cd06fSmrg		;;
952c35d236eSmrg	pentium | p5 | k5 | k6 | nexgen | viac3)
953c35d236eSmrg		basic_machine=i586-pc
954c35d236eSmrg		;;
955c35d236eSmrg	pentiumpro | p6 | 6x86 | athlon | athlon_*)
956c35d236eSmrg		basic_machine=i686-pc
957c35d236eSmrg		;;
958c35d236eSmrg	pentiumii | pentium2 | pentiumiii | pentium3)
959c35d236eSmrg		basic_machine=i686-pc
960c35d236eSmrg		;;
961c35d236eSmrg	pentium4)
962c35d236eSmrg		basic_machine=i786-pc
963c35d236eSmrg		;;
964c35d236eSmrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
965c35d236eSmrg		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
966c35d236eSmrg		;;
967c35d236eSmrg	pentiumpro-* | p6-* | 6x86-* | athlon-*)
968c35d236eSmrg		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
969c35d236eSmrg		;;
970c35d236eSmrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
971c35d236eSmrg		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
972c35d236eSmrg		;;
973c35d236eSmrg	pentium4-*)
974c35d236eSmrg		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
975c35d236eSmrg		;;
976c35d236eSmrg	pn)
977c35d236eSmrg		basic_machine=pn-gould
978c35d236eSmrg		;;
979c35d236eSmrg	power)	basic_machine=power-ibm
980c35d236eSmrg		;;
9811fb744b4Smrg	ppc | ppcbe)	basic_machine=powerpc-unknown
982c35d236eSmrg		;;
9831fb744b4Smrg	ppc-* | ppcbe-*)
9841fb744b4Smrg		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
985c35d236eSmrg		;;
986c35d236eSmrg	ppcle | powerpclittle | ppc-le | powerpc-little)
987c35d236eSmrg		basic_machine=powerpcle-unknown
988c35d236eSmrg		;;
989c35d236eSmrg	ppcle-* | powerpclittle-*)
990c35d236eSmrg		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
991c35d236eSmrg		;;
992c35d236eSmrg	ppc64)	basic_machine=powerpc64-unknown
993c35d236eSmrg		;;
994c35d236eSmrg	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
995c35d236eSmrg		;;
996c35d236eSmrg	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
997c35d236eSmrg		basic_machine=powerpc64le-unknown
998c35d236eSmrg		;;
999c35d236eSmrg	ppc64le-* | powerpc64little-*)
1000c35d236eSmrg		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
1001c35d236eSmrg		;;
1002c35d236eSmrg	ps2)
1003c35d236eSmrg		basic_machine=i386-ibm
1004c35d236eSmrg		;;
1005c35d236eSmrg	pw32)
1006c35d236eSmrg		basic_machine=i586-unknown
1007c35d236eSmrg		os=-pw32
1008c35d236eSmrg		;;
10094f6cd06fSmrg	rdos)
10104f6cd06fSmrg		basic_machine=i386-pc
10114f6cd06fSmrg		os=-rdos
10124f6cd06fSmrg		;;
1013c35d236eSmrg	rom68k)
1014c35d236eSmrg		basic_machine=m68k-rom68k
1015c35d236eSmrg		os=-coff
1016c35d236eSmrg		;;
1017c35d236eSmrg	rm[46]00)
1018c35d236eSmrg		basic_machine=mips-siemens
1019c35d236eSmrg		;;
1020c35d236eSmrg	rtpc | rtpc-*)
1021c35d236eSmrg		basic_machine=romp-ibm
1022c35d236eSmrg		;;
10234f6cd06fSmrg	s390 | s390-*)
10244f6cd06fSmrg		basic_machine=s390-ibm
10254f6cd06fSmrg		;;
10264f6cd06fSmrg	s390x | s390x-*)
10274f6cd06fSmrg		basic_machine=s390x-ibm
10284f6cd06fSmrg		;;
1029c35d236eSmrg	sa29200)
1030c35d236eSmrg		basic_machine=a29k-amd
1031c35d236eSmrg		os=-udi
1032c35d236eSmrg		;;
1033c35d236eSmrg	sb1)
1034c35d236eSmrg		basic_machine=mipsisa64sb1-unknown
1035c35d236eSmrg		;;
1036c35d236eSmrg	sb1el)
1037c35d236eSmrg		basic_machine=mipsisa64sb1el-unknown
1038c35d236eSmrg		;;
10394f6cd06fSmrg	sde)
10404f6cd06fSmrg		basic_machine=mipsisa32-sde
10414f6cd06fSmrg		os=-elf
10424f6cd06fSmrg		;;
1043c35d236eSmrg	sei)
1044c35d236eSmrg		basic_machine=mips-sei
1045c35d236eSmrg		os=-seiux
1046c35d236eSmrg		;;
1047c35d236eSmrg	sequent)
1048c35d236eSmrg		basic_machine=i386-sequent
1049c35d236eSmrg		;;
1050c35d236eSmrg	sh)
1051c35d236eSmrg		basic_machine=sh-hitachi
1052c35d236eSmrg		os=-hms
1053c35d236eSmrg		;;
1054f55e6a01Smrg	sh5el)
1055f55e6a01Smrg		basic_machine=sh5le-unknown
1056f55e6a01Smrg		;;
1057c35d236eSmrg	sh64)
1058c35d236eSmrg		basic_machine=sh64-unknown
1059c35d236eSmrg		;;
1060c35d236eSmrg	sparclite-wrs | simso-wrs)
1061c35d236eSmrg		basic_machine=sparclite-wrs
1062c35d236eSmrg		os=-vxworks
1063c35d236eSmrg		;;
1064c35d236eSmrg	sps7)
1065c35d236eSmrg		basic_machine=m68k-bull
1066c35d236eSmrg		os=-sysv2
1067c35d236eSmrg		;;
1068c35d236eSmrg	spur)
1069c35d236eSmrg		basic_machine=spur-unknown
1070c35d236eSmrg		;;
1071c35d236eSmrg	st2000)
1072c35d236eSmrg		basic_machine=m68k-tandem
1073c35d236eSmrg		;;
1074c35d236eSmrg	stratus)
1075c35d236eSmrg		basic_machine=i860-stratus
1076c35d236eSmrg		os=-sysv4
1077c35d236eSmrg		;;
10781fb744b4Smrg	strongarm-* | thumb-*)
10791fb744b4Smrg		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
10801fb744b4Smrg		;;
1081c35d236eSmrg	sun2)
1082c35d236eSmrg		basic_machine=m68000-sun
1083c35d236eSmrg		;;
1084c35d236eSmrg	sun2os3)
1085c35d236eSmrg		basic_machine=m68000-sun
1086c35d236eSmrg		os=-sunos3
1087c35d236eSmrg		;;
1088c35d236eSmrg	sun2os4)
1089c35d236eSmrg		basic_machine=m68000-sun
1090c35d236eSmrg		os=-sunos4
1091c35d236eSmrg		;;
1092c35d236eSmrg	sun3os3)
1093c35d236eSmrg		basic_machine=m68k-sun
1094c35d236eSmrg		os=-sunos3
1095c35d236eSmrg		;;
1096c35d236eSmrg	sun3os4)
1097c35d236eSmrg		basic_machine=m68k-sun
1098c35d236eSmrg		os=-sunos4
1099c35d236eSmrg		;;
1100c35d236eSmrg	sun4os3)
1101c35d236eSmrg		basic_machine=sparc-sun
1102c35d236eSmrg		os=-sunos3
1103c35d236eSmrg		;;
1104c35d236eSmrg	sun4os4)
1105c35d236eSmrg		basic_machine=sparc-sun
1106c35d236eSmrg		os=-sunos4
1107c35d236eSmrg		;;
1108c35d236eSmrg	sun4sol2)
1109c35d236eSmrg		basic_machine=sparc-sun
1110c35d236eSmrg		os=-solaris2
1111c35d236eSmrg		;;
1112c35d236eSmrg	sun3 | sun3-*)
1113c35d236eSmrg		basic_machine=m68k-sun
1114c35d236eSmrg		;;
1115c35d236eSmrg	sun4)
1116c35d236eSmrg		basic_machine=sparc-sun
1117c35d236eSmrg		;;
1118c35d236eSmrg	sun386 | sun386i | roadrunner)
1119c35d236eSmrg		basic_machine=i386-sun
1120c35d236eSmrg		;;
1121c35d236eSmrg	sv1)
1122c35d236eSmrg		basic_machine=sv1-cray
1123c35d236eSmrg		os=-unicos
1124c35d236eSmrg		;;
1125c35d236eSmrg	symmetry)
1126c35d236eSmrg		basic_machine=i386-sequent
1127c35d236eSmrg		os=-dynix
1128c35d236eSmrg		;;
1129c35d236eSmrg	t3e)
1130c35d236eSmrg		basic_machine=alphaev5-cray
1131c35d236eSmrg		os=-unicos
1132c35d236eSmrg		;;
1133c35d236eSmrg	t90)
1134c35d236eSmrg		basic_machine=t90-cray
1135c35d236eSmrg		os=-unicos
1136c35d236eSmrg		;;
1137f55e6a01Smrg	tile*)
11381fb744b4Smrg		basic_machine=$basic_machine-unknown
1139f55e6a01Smrg		os=-linux-gnu
1140f55e6a01Smrg		;;
1141c35d236eSmrg	tx39)
1142c35d236eSmrg		basic_machine=mipstx39-unknown
1143c35d236eSmrg		;;
1144c35d236eSmrg	tx39el)
1145c35d236eSmrg		basic_machine=mipstx39el-unknown
1146c35d236eSmrg		;;
1147c35d236eSmrg	toad1)
1148c35d236eSmrg		basic_machine=pdp10-xkl
1149c35d236eSmrg		os=-tops20
1150c35d236eSmrg		;;
1151c35d236eSmrg	tower | tower-32)
1152c35d236eSmrg		basic_machine=m68k-ncr
1153c35d236eSmrg		;;
11544f6cd06fSmrg	tpf)
11554f6cd06fSmrg		basic_machine=s390x-ibm
11564f6cd06fSmrg		os=-tpf
11574f6cd06fSmrg		;;
1158c35d236eSmrg	udi29k)
1159c35d236eSmrg		basic_machine=a29k-amd
1160c35d236eSmrg		os=-udi
1161c35d236eSmrg		;;
1162c35d236eSmrg	ultra3)
1163c35d236eSmrg		basic_machine=a29k-nyu
1164c35d236eSmrg		os=-sym1
1165c35d236eSmrg		;;
1166c35d236eSmrg	v810 | necv810)
1167c35d236eSmrg		basic_machine=v810-nec
1168c35d236eSmrg		os=-none
1169c35d236eSmrg		;;
1170c35d236eSmrg	vaxv)
1171c35d236eSmrg		basic_machine=vax-dec
1172c35d236eSmrg		os=-sysv
1173c35d236eSmrg		;;
1174c35d236eSmrg	vms)
1175c35d236eSmrg		basic_machine=vax-dec
1176c35d236eSmrg		os=-vms
1177c35d236eSmrg		;;
1178c35d236eSmrg	vpp*|vx|vx-*)
1179c35d236eSmrg		basic_machine=f301-fujitsu
1180c35d236eSmrg		;;
1181c35d236eSmrg	vxworks960)
1182c35d236eSmrg		basic_machine=i960-wrs
1183c35d236eSmrg		os=-vxworks
1184c35d236eSmrg		;;
1185c35d236eSmrg	vxworks68)
1186c35d236eSmrg		basic_machine=m68k-wrs
1187c35d236eSmrg		os=-vxworks
1188c35d236eSmrg		;;
1189c35d236eSmrg	vxworks29k)
1190c35d236eSmrg		basic_machine=a29k-wrs
1191c35d236eSmrg		os=-vxworks
1192c35d236eSmrg		;;
1193c35d236eSmrg	w65*)
1194c35d236eSmrg		basic_machine=w65-wdc
1195c35d236eSmrg		os=-none
1196c35d236eSmrg		;;
1197c35d236eSmrg	w89k-*)
1198c35d236eSmrg		basic_machine=hppa1.1-winbond
1199c35d236eSmrg		os=-proelf
1200c35d236eSmrg		;;
12014f6cd06fSmrg	xbox)
12024f6cd06fSmrg		basic_machine=i686-pc
12034f6cd06fSmrg		os=-mingw32
12044f6cd06fSmrg		;;
1205c35d236eSmrg	xps | xps100)
1206c35d236eSmrg		basic_machine=xps100-honeywell
1207c35d236eSmrg		;;
12081fb744b4Smrg	xscale-* | xscalee[bl]-*)
12091fb744b4Smrg		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
12101fb744b4Smrg		;;
1211c35d236eSmrg	ymp)
1212c35d236eSmrg		basic_machine=ymp-cray
1213c35d236eSmrg		os=-unicos
1214c35d236eSmrg		;;
1215c35d236eSmrg	z8k-*-coff)
1216c35d236eSmrg		basic_machine=z8k-unknown
1217c35d236eSmrg		os=-sim
1218c35d236eSmrg		;;
12191fb744b4Smrg	z80-*-coff)
12201fb744b4Smrg		basic_machine=z80-unknown
12211fb744b4Smrg		os=-sim
12221fb744b4Smrg		;;
1223c35d236eSmrg	none)
1224c35d236eSmrg		basic_machine=none-none
1225c35d236eSmrg		os=-none
1226c35d236eSmrg		;;
1227c35d236eSmrg
1228c35d236eSmrg# Here we handle the default manufacturer of certain CPU types.  It is in
1229c35d236eSmrg# some cases the only manufacturer, in others, it is the most popular.
1230c35d236eSmrg	w89k)
1231c35d236eSmrg		basic_machine=hppa1.1-winbond
1232c35d236eSmrg		;;
1233c35d236eSmrg	op50n)
1234c35d236eSmrg		basic_machine=hppa1.1-oki
1235c35d236eSmrg		;;
1236c35d236eSmrg	op60c)
1237c35d236eSmrg		basic_machine=hppa1.1-oki
1238c35d236eSmrg		;;
1239c35d236eSmrg	romp)
1240c35d236eSmrg		basic_machine=romp-ibm
1241c35d236eSmrg		;;
12424f6cd06fSmrg	mmix)
12434f6cd06fSmrg		basic_machine=mmix-knuth
12444f6cd06fSmrg		;;
1245c35d236eSmrg	rs6000)
1246c35d236eSmrg		basic_machine=rs6000-ibm
1247c35d236eSmrg		;;
1248c35d236eSmrg	vax)
1249c35d236eSmrg		basic_machine=vax-dec
1250c35d236eSmrg		;;
1251c35d236eSmrg	pdp10)
1252c35d236eSmrg		# there are many clones, so DEC is not a safe bet
1253c35d236eSmrg		basic_machine=pdp10-unknown
1254c35d236eSmrg		;;
1255c35d236eSmrg	pdp11)
1256c35d236eSmrg		basic_machine=pdp11-dec
1257c35d236eSmrg		;;
1258c35d236eSmrg	we32k)
1259c35d236eSmrg		basic_machine=we32k-att
1260c35d236eSmrg		;;
12611fb744b4Smrg	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1262c35d236eSmrg		basic_machine=sh-unknown
1263c35d236eSmrg		;;
12644f6cd06fSmrg	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1265c35d236eSmrg		basic_machine=sparc-sun
1266c35d236eSmrg		;;
1267c35d236eSmrg	cydra)
1268c35d236eSmrg		basic_machine=cydra-cydrome
1269c35d236eSmrg		;;
1270c35d236eSmrg	orion)
1271c35d236eSmrg		basic_machine=orion-highlevel
1272c35d236eSmrg		;;
1273c35d236eSmrg	orion105)
1274c35d236eSmrg		basic_machine=clipper-highlevel
1275c35d236eSmrg		;;
1276c35d236eSmrg	mac | mpw | mac-mpw)
1277c35d236eSmrg		basic_machine=m68k-apple
1278c35d236eSmrg		;;
1279c35d236eSmrg	pmac | pmac-mpw)
1280c35d236eSmrg		basic_machine=powerpc-apple
1281c35d236eSmrg		;;
1282c35d236eSmrg	*-unknown)
1283c35d236eSmrg		# Make sure to match an already-canonicalized machine name.
1284c35d236eSmrg		;;
1285c35d236eSmrg	*)
1286c35d236eSmrg		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1287c35d236eSmrg		exit 1
1288c35d236eSmrg		;;
1289c35d236eSmrgesac
1290c35d236eSmrg
1291c35d236eSmrg# Here we canonicalize certain aliases for manufacturers.
1292c35d236eSmrgcase $basic_machine in
1293c35d236eSmrg	*-digital*)
1294c35d236eSmrg		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1295c35d236eSmrg		;;
1296c35d236eSmrg	*-commodore*)
1297c35d236eSmrg		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1298c35d236eSmrg		;;
1299c35d236eSmrg	*)
1300c35d236eSmrg		;;
1301c35d236eSmrgesac
1302c35d236eSmrg
1303c35d236eSmrg# Decode manufacturer-specific aliases for certain operating systems.
1304c35d236eSmrg
1305c35d236eSmrgif [ x"$os" != x"" ]
1306c35d236eSmrgthen
1307c35d236eSmrgcase $os in
13081fb744b4Smrg	# First match some system type aliases
13091fb744b4Smrg	# that might get confused with valid system types.
1310c35d236eSmrg	# -solaris* is a basic system type, with this one exception.
13111fb744b4Smrg	-auroraux)
13121fb744b4Smrg		os=-auroraux
13131fb744b4Smrg		;;
1314c35d236eSmrg	-solaris1 | -solaris1.*)
1315c35d236eSmrg		os=`echo $os | sed -e 's|solaris1|sunos4|'`
1316c35d236eSmrg		;;
1317c35d236eSmrg	-solaris)
1318c35d236eSmrg		os=-solaris2
1319c35d236eSmrg		;;
1320c35d236eSmrg	-svr4*)
1321c35d236eSmrg		os=-sysv4
1322c35d236eSmrg		;;
1323c35d236eSmrg	-unixware*)
1324c35d236eSmrg		os=-sysv4.2uw
1325c35d236eSmrg		;;
1326c35d236eSmrg	-gnu/linux*)
1327c35d236eSmrg		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1328c35d236eSmrg		;;
1329c35d236eSmrg	# First accept the basic system types.
1330c35d236eSmrg	# The portable systems comes first.
1331c35d236eSmrg	# Each alternative MUST END IN A *, to match a version number.
1332c35d236eSmrg	# -sysv* is not here because it comes later, after sysvr4.
1333c35d236eSmrg	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
13341fb744b4Smrg	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
13351fb744b4Smrg	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
13361fb744b4Smrg	      | -sym* | -kopensolaris* \
1337c35d236eSmrg	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
13381fb744b4Smrg	      | -aos* | -aros* \
1339c35d236eSmrg	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1340c35d236eSmrg	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
13414f6cd06fSmrg	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
13424f6cd06fSmrg	      | -openbsd* | -solidbsd* \
13434f6cd06fSmrg	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
13444f6cd06fSmrg	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1345c35d236eSmrg	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1346c35d236eSmrg	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
13471fb744b4Smrg	      | -chorusos* | -chorusrdb* | -cegcc* \
13481fb744b4Smrg	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
13491fb744b4Smrg	      | -mingw32* | -linux-gnu* | -linux-android* \
13501fb744b4Smrg	      | -linux-newlib* | -linux-uclibc* \
13514f6cd06fSmrg	      | -uxpv* | -beos* | -mpeix* | -udk* \
1352c35d236eSmrg	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1353c35d236eSmrg	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1354c35d236eSmrg	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1355c35d236eSmrg	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1356c35d236eSmrg	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
13574f6cd06fSmrg	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
13581fb744b4Smrg	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1359c35d236eSmrg	# Remember, each alternative MUST END IN *, to match a version number.
1360c35d236eSmrg		;;
1361c35d236eSmrg	-qnx*)
1362c35d236eSmrg		case $basic_machine in
1363c35d236eSmrg		    x86-* | i*86-*)
1364c35d236eSmrg			;;
1365c35d236eSmrg		    *)
1366c35d236eSmrg			os=-nto$os
1367c35d236eSmrg			;;
1368c35d236eSmrg		esac
1369c35d236eSmrg		;;
1370c35d236eSmrg	-nto-qnx*)
1371c35d236eSmrg		;;
1372c35d236eSmrg	-nto*)
1373c35d236eSmrg		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1374c35d236eSmrg		;;
1375c35d236eSmrg	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
13764f6cd06fSmrg	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1377c35d236eSmrg	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1378c35d236eSmrg		;;
1379c35d236eSmrg	-mac*)
1380c35d236eSmrg		os=`echo $os | sed -e 's|mac|macos|'`
1381c35d236eSmrg		;;
13824f6cd06fSmrg	-linux-dietlibc)
13834f6cd06fSmrg		os=-linux-dietlibc
13844f6cd06fSmrg		;;
1385c35d236eSmrg	-linux*)
1386c35d236eSmrg		os=`echo $os | sed -e 's|linux|linux-gnu|'`
1387c35d236eSmrg		;;
1388c35d236eSmrg	-sunos5*)
1389c35d236eSmrg		os=`echo $os | sed -e 's|sunos5|solaris2|'`
1390c35d236eSmrg		;;
1391c35d236eSmrg	-sunos6*)
1392c35d236eSmrg		os=`echo $os | sed -e 's|sunos6|solaris3|'`
1393c35d236eSmrg		;;
1394c35d236eSmrg	-opened*)
1395c35d236eSmrg		os=-openedition
1396c35d236eSmrg		;;
13971fb744b4Smrg	-os400*)
13984f6cd06fSmrg		os=-os400
13994f6cd06fSmrg		;;
1400c35d236eSmrg	-wince*)
1401c35d236eSmrg		os=-wince
1402c35d236eSmrg		;;
1403c35d236eSmrg	-osfrose*)
1404c35d236eSmrg		os=-osfrose
1405c35d236eSmrg		;;
1406c35d236eSmrg	-osf*)
1407c35d236eSmrg		os=-osf
1408c35d236eSmrg		;;
1409c35d236eSmrg	-utek*)
1410c35d236eSmrg		os=-bsd
1411c35d236eSmrg		;;
1412c35d236eSmrg	-dynix*)
1413c35d236eSmrg		os=-bsd
1414c35d236eSmrg		;;
1415c35d236eSmrg	-acis*)
1416c35d236eSmrg		os=-aos
1417c35d236eSmrg		;;
1418c35d236eSmrg	-atheos*)
1419c35d236eSmrg		os=-atheos
1420c35d236eSmrg		;;
14214f6cd06fSmrg	-syllable*)
14224f6cd06fSmrg		os=-syllable
14234f6cd06fSmrg		;;
1424c35d236eSmrg	-386bsd)
1425c35d236eSmrg		os=-bsd
1426c35d236eSmrg		;;
1427c35d236eSmrg	-ctix* | -uts*)
1428c35d236eSmrg		os=-sysv
1429c35d236eSmrg		;;
1430c35d236eSmrg	-nova*)
1431c35d236eSmrg		os=-rtmk-nova
1432c35d236eSmrg		;;
1433c35d236eSmrg	-ns2 )
1434c35d236eSmrg		os=-nextstep2
1435c35d236eSmrg		;;
1436c35d236eSmrg	-nsk*)
1437c35d236eSmrg		os=-nsk
1438c35d236eSmrg		;;
1439c35d236eSmrg	# Preserve the version number of sinix5.
1440c35d236eSmrg	-sinix5.*)
1441c35d236eSmrg		os=`echo $os | sed -e 's|sinix|sysv|'`
1442c35d236eSmrg		;;
1443c35d236eSmrg	-sinix*)
1444c35d236eSmrg		os=-sysv4
1445c35d236eSmrg		;;
14461fb744b4Smrg	-tpf*)
14474f6cd06fSmrg		os=-tpf
14484f6cd06fSmrg		;;
1449c35d236eSmrg	-triton*)
1450c35d236eSmrg		os=-sysv3
1451c35d236eSmrg		;;
1452c35d236eSmrg	-oss*)
1453c35d236eSmrg		os=-sysv3
1454c35d236eSmrg		;;
1455c35d236eSmrg	-svr4)
1456c35d236eSmrg		os=-sysv4
1457c35d236eSmrg		;;
1458c35d236eSmrg	-svr3)
1459c35d236eSmrg		os=-sysv3
1460c35d236eSmrg		;;
1461c35d236eSmrg	-sysvr4)
1462c35d236eSmrg		os=-sysv4
1463c35d236eSmrg		;;
1464c35d236eSmrg	# This must come after -sysvr4.
1465c35d236eSmrg	-sysv*)
1466c35d236eSmrg		;;
1467c35d236eSmrg	-ose*)
1468c35d236eSmrg		os=-ose
1469c35d236eSmrg		;;
1470c35d236eSmrg	-es1800*)
1471c35d236eSmrg		os=-ose
1472c35d236eSmrg		;;
1473c35d236eSmrg	-xenix)
1474c35d236eSmrg		os=-xenix
1475c35d236eSmrg		;;
1476c35d236eSmrg	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1477c35d236eSmrg		os=-mint
1478c35d236eSmrg		;;
1479c35d236eSmrg	-aros*)
1480c35d236eSmrg		os=-aros
1481c35d236eSmrg		;;
1482c35d236eSmrg	-kaos*)
1483c35d236eSmrg		os=-kaos
1484c35d236eSmrg		;;
14854f6cd06fSmrg	-zvmoe)
14864f6cd06fSmrg		os=-zvmoe
14874f6cd06fSmrg		;;
14881fb744b4Smrg	-dicos*)
14891fb744b4Smrg		os=-dicos
14901fb744b4Smrg		;;
14911fb744b4Smrg	-nacl*)
14921fb744b4Smrg		;;
1493c35d236eSmrg	-none)
1494c35d236eSmrg		;;
1495c35d236eSmrg	*)
1496c35d236eSmrg		# Get rid of the `-' at the beginning of $os.
1497c35d236eSmrg		os=`echo $os | sed 's/[^-]*-//'`
1498c35d236eSmrg		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1499c35d236eSmrg		exit 1
1500c35d236eSmrg		;;
1501c35d236eSmrgesac
1502c35d236eSmrgelse
1503c35d236eSmrg
1504c35d236eSmrg# Here we handle the default operating systems that come with various machines.
1505c35d236eSmrg# The value should be what the vendor currently ships out the door with their
1506c35d236eSmrg# machine or put another way, the most popular os provided with the machine.
1507c35d236eSmrg
1508c35d236eSmrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
1509c35d236eSmrg# "-sun"), then you have to tell the case statement up towards the top
1510c35d236eSmrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
1511c35d236eSmrg# will signal an error saying that MANUFACTURER isn't an operating
1512c35d236eSmrg# system, and we'll never get to this point.
1513c35d236eSmrg
1514c35d236eSmrgcase $basic_machine in
15151fb744b4Smrg	score-*)
15164f6cd06fSmrg		os=-elf
15174f6cd06fSmrg		;;
15181fb744b4Smrg	spu-*)
15194f6cd06fSmrg		os=-elf
15204f6cd06fSmrg		;;
1521c35d236eSmrg	*-acorn)
1522c35d236eSmrg		os=-riscix1.2
1523c35d236eSmrg		;;
1524c35d236eSmrg	arm*-rebel)
1525c35d236eSmrg		os=-linux
1526c35d236eSmrg		;;
1527c35d236eSmrg	arm*-semi)
1528c35d236eSmrg		os=-aout
1529c35d236eSmrg		;;
15301fb744b4Smrg	c4x-* | tic4x-*)
15311fb744b4Smrg		os=-coff
15321fb744b4Smrg		;;
15331fb744b4Smrg	tic54x-*)
15341fb744b4Smrg		os=-coff
15351fb744b4Smrg		;;
15361fb744b4Smrg	tic55x-*)
15371fb744b4Smrg		os=-coff
15381fb744b4Smrg		;;
15391fb744b4Smrg	tic6x-*)
15401fb744b4Smrg		os=-coff
1541c35d236eSmrg		;;
1542c35d236eSmrg	# This must come before the *-dec entry.
1543c35d236eSmrg	pdp10-*)
1544c35d236eSmrg		os=-tops20
1545c35d236eSmrg		;;
1546c35d236eSmrg	pdp11-*)
1547c35d236eSmrg		os=-none
1548c35d236eSmrg		;;
1549c35d236eSmrg	*-dec | vax-*)
1550c35d236eSmrg		os=-ultrix4.2
1551c35d236eSmrg		;;
1552c35d236eSmrg	m68*-apollo)
1553c35d236eSmrg		os=-domain
1554c35d236eSmrg		;;
1555c35d236eSmrg	i386-sun)
1556c35d236eSmrg		os=-sunos4.0.2
1557c35d236eSmrg		;;
1558c35d236eSmrg	m68000-sun)
1559c35d236eSmrg		os=-sunos3
1560c35d236eSmrg		;;
1561c35d236eSmrg	m68*-cisco)
1562c35d236eSmrg		os=-aout
1563c35d236eSmrg		;;
15641fb744b4Smrg	mep-*)
1565f55e6a01Smrg		os=-elf
1566f55e6a01Smrg		;;
1567c35d236eSmrg	mips*-cisco)
1568c35d236eSmrg		os=-elf
1569c35d236eSmrg		;;
1570c35d236eSmrg	mips*-*)
1571c35d236eSmrg		os=-elf
1572c35d236eSmrg		;;
1573c35d236eSmrg	or32-*)
1574c35d236eSmrg		os=-coff
1575c35d236eSmrg		;;
1576c35d236eSmrg	*-tti)	# must be before sparc entry or we get the wrong os.
1577c35d236eSmrg		os=-sysv3
1578c35d236eSmrg		;;
1579c35d236eSmrg	sparc-* | *-sun)
1580c35d236eSmrg		os=-sunos4.1.1
1581c35d236eSmrg		;;
1582c35d236eSmrg	*-be)
1583c35d236eSmrg		os=-beos
1584c35d236eSmrg		;;
15854f6cd06fSmrg	*-haiku)
15864f6cd06fSmrg		os=-haiku
15874f6cd06fSmrg		;;
1588c35d236eSmrg	*-ibm)
1589c35d236eSmrg		os=-aix
1590c35d236eSmrg		;;
15911fb744b4Smrg	*-knuth)
15924f6cd06fSmrg		os=-mmixware
15934f6cd06fSmrg		;;
1594c35d236eSmrg	*-wec)
1595c35d236eSmrg		os=-proelf
1596c35d236eSmrg		;;
1597c35d236eSmrg	*-winbond)
1598c35d236eSmrg		os=-proelf
1599c35d236eSmrg		;;
1600c35d236eSmrg	*-oki)
1601c35d236eSmrg		os=-proelf
1602c35d236eSmrg		;;
1603c35d236eSmrg	*-hp)
1604c35d236eSmrg		os=-hpux
1605c35d236eSmrg		;;
1606c35d236eSmrg	*-hitachi)
1607c35d236eSmrg		os=-hiux
1608c35d236eSmrg		;;
1609c35d236eSmrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1610c35d236eSmrg		os=-sysv
1611c35d236eSmrg		;;
1612c35d236eSmrg	*-cbm)
1613c35d236eSmrg		os=-amigaos
1614c35d236eSmrg		;;
1615c35d236eSmrg	*-dg)
1616c35d236eSmrg		os=-dgux
1617c35d236eSmrg		;;
1618c35d236eSmrg	*-dolphin)
1619c35d236eSmrg		os=-sysv3
1620c35d236eSmrg		;;
1621c35d236eSmrg	m68k-ccur)
1622c35d236eSmrg		os=-rtu
1623c35d236eSmrg		;;
1624c35d236eSmrg	m88k-omron*)
1625c35d236eSmrg		os=-luna
1626c35d236eSmrg		;;
1627c35d236eSmrg	*-next )
1628c35d236eSmrg		os=-nextstep
1629c35d236eSmrg		;;
1630c35d236eSmrg	*-sequent)
1631c35d236eSmrg		os=-ptx
1632c35d236eSmrg		;;
1633c35d236eSmrg	*-crds)
1634c35d236eSmrg		os=-unos
1635c35d236eSmrg		;;
1636c35d236eSmrg	*-ns)
1637c35d236eSmrg		os=-genix
1638c35d236eSmrg		;;
1639c35d236eSmrg	i370-*)
1640c35d236eSmrg		os=-mvs
1641c35d236eSmrg		;;
1642c35d236eSmrg	*-next)
1643c35d236eSmrg		os=-nextstep3
1644c35d236eSmrg		;;
1645c35d236eSmrg	*-gould)
1646c35d236eSmrg		os=-sysv
1647c35d236eSmrg		;;
1648c35d236eSmrg	*-highlevel)
1649c35d236eSmrg		os=-bsd
1650c35d236eSmrg		;;
1651c35d236eSmrg	*-encore)
1652c35d236eSmrg		os=-bsd
1653c35d236eSmrg		;;
1654c35d236eSmrg	*-sgi)
1655c35d236eSmrg		os=-irix
1656c35d236eSmrg		;;
1657c35d236eSmrg	*-siemens)
1658c35d236eSmrg		os=-sysv4
1659c35d236eSmrg		;;
1660c35d236eSmrg	*-masscomp)
1661c35d236eSmrg		os=-rtu
1662c35d236eSmrg		;;
1663c35d236eSmrg	f30[01]-fujitsu | f700-fujitsu)
1664c35d236eSmrg		os=-uxpv
1665c35d236eSmrg		;;
1666c35d236eSmrg	*-rom68k)
1667c35d236eSmrg		os=-coff
1668c35d236eSmrg		;;
1669c35d236eSmrg	*-*bug)
1670c35d236eSmrg		os=-coff
1671c35d236eSmrg		;;
1672c35d236eSmrg	*-apple)
1673c35d236eSmrg		os=-macos
1674c35d236eSmrg		;;
1675c35d236eSmrg	*-atari*)
1676c35d236eSmrg		os=-mint
1677c35d236eSmrg		;;
1678c35d236eSmrg	*)
1679c35d236eSmrg		os=-none
1680c35d236eSmrg		;;
1681c35d236eSmrgesac
1682c35d236eSmrgfi
1683c35d236eSmrg
1684c35d236eSmrg# Here we handle the case where we know the os, and the CPU type, but not the
1685c35d236eSmrg# manufacturer.  We pick the logical manufacturer.
1686c35d236eSmrgvendor=unknown
1687c35d236eSmrgcase $basic_machine in
1688c35d236eSmrg	*-unknown)
1689c35d236eSmrg		case $os in
1690c35d236eSmrg			-riscix*)
1691c35d236eSmrg				vendor=acorn
1692c35d236eSmrg				;;
1693c35d236eSmrg			-sunos*)
1694c35d236eSmrg				vendor=sun
1695c35d236eSmrg				;;
16961fb744b4Smrg			-cnk*|-aix*)
1697c35d236eSmrg				vendor=ibm
1698c35d236eSmrg				;;
1699c35d236eSmrg			-beos*)
1700c35d236eSmrg				vendor=be
1701c35d236eSmrg				;;
1702c35d236eSmrg			-hpux*)
1703c35d236eSmrg				vendor=hp
1704c35d236eSmrg				;;
1705c35d236eSmrg			-mpeix*)
1706c35d236eSmrg				vendor=hp
1707c35d236eSmrg				;;
1708c35d236eSmrg			-hiux*)
1709c35d236eSmrg				vendor=hitachi
1710c35d236eSmrg				;;
1711c35d236eSmrg			-unos*)
1712c35d236eSmrg				vendor=crds
1713c35d236eSmrg				;;
1714c35d236eSmrg			-dgux*)
1715c35d236eSmrg				vendor=dg
1716c35d236eSmrg				;;
1717c35d236eSmrg			-luna*)
1718c35d236eSmrg				vendor=omron
1719c35d236eSmrg				;;
1720c35d236eSmrg			-genix*)
1721c35d236eSmrg				vendor=ns
1722c35d236eSmrg				;;
1723c35d236eSmrg			-mvs* | -opened*)
1724c35d236eSmrg				vendor=ibm
1725c35d236eSmrg				;;
17264f6cd06fSmrg			-os400*)
17274f6cd06fSmrg				vendor=ibm
17284f6cd06fSmrg				;;
1729c35d236eSmrg			-ptx*)
1730c35d236eSmrg				vendor=sequent
1731c35d236eSmrg				;;
17324f6cd06fSmrg			-tpf*)
17334f6cd06fSmrg				vendor=ibm
17344f6cd06fSmrg				;;
1735c35d236eSmrg			-vxsim* | -vxworks* | -windiss*)
1736c35d236eSmrg				vendor=wrs
1737c35d236eSmrg				;;
1738c35d236eSmrg			-aux*)
1739c35d236eSmrg				vendor=apple
1740c35d236eSmrg				;;
1741c35d236eSmrg			-hms*)
1742c35d236eSmrg				vendor=hitachi
1743c35d236eSmrg				;;
1744c35d236eSmrg			-mpw* | -macos*)
1745c35d236eSmrg				vendor=apple
1746c35d236eSmrg				;;
1747c35d236eSmrg			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1748c35d236eSmrg				vendor=atari
1749c35d236eSmrg				;;
1750c35d236eSmrg			-vos*)
1751c35d236eSmrg				vendor=stratus
1752c35d236eSmrg				;;
1753c35d236eSmrg		esac
1754c35d236eSmrg		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1755c35d236eSmrg		;;
1756c35d236eSmrgesac
1757c35d236eSmrg
1758c35d236eSmrgecho $basic_machine$os
17594f6cd06fSmrgexit
1760c35d236eSmrg
1761c35d236eSmrg# Local variables:
1762c35d236eSmrg# eval: (add-hook 'write-file-hooks 'time-stamp)
1763c35d236eSmrg# time-stamp-start: "timestamp='"
1764c35d236eSmrg# time-stamp-format: "%:y-%02m-%02d"
1765c35d236eSmrg# time-stamp-end: "'"
1766c35d236eSmrg# End:
1767