config.sub revision af9a7ee5
1caade7ccSmrg#! /bin/sh
2caade7ccSmrg# Configuration validation subroutine script.
3af9a7ee5Smrg#   Copyright 1992-2013 Free Software Foundation, Inc.
4caade7ccSmrg
5af9a7ee5Smrgtimestamp='2013-04-24'
6caade7ccSmrg
7af9a7ee5Smrg# This file is free software; you can redistribute it and/or modify it
8af9a7ee5Smrg# under the terms of the GNU General Public License as published by
9af9a7ee5Smrg# the Free Software Foundation; either version 3 of the License, or
10caade7ccSmrg# (at your option) any later version.
11caade7ccSmrg#
12af9a7ee5Smrg# This program is distributed in the hope that it will be useful, but
13af9a7ee5Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
14af9a7ee5Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15af9a7ee5Smrg# General Public License for more details.
16caade7ccSmrg#
17caade7ccSmrg# You should have received a copy of the GNU General Public License
18af9a7ee5Smrg# along with this program; if not, see <http://www.gnu.org/licenses/>.
19caade7ccSmrg#
20caade7ccSmrg# As a special exception to the GNU General Public License, if you
21caade7ccSmrg# distribute this file as part of a program that contains a
22caade7ccSmrg# configuration script generated by Autoconf, you may include it under
23af9a7ee5Smrg# the same distribution terms that you use for the rest of that
24af9a7ee5Smrg# program.  This Exception is an additional permission under section 7
25af9a7ee5Smrg# of the GNU General Public License, version 3 ("GPLv3").
26caade7ccSmrg
27caade7ccSmrg
28af9a7ee5Smrg# Please send patches with a ChangeLog entry to config-patches@gnu.org.
29caade7ccSmrg#
30caade7ccSmrg# Configuration subroutine to validate and canonicalize a configuration type.
31caade7ccSmrg# Supply the specified configuration type as an argument.
32caade7ccSmrg# If it is invalid, we print an error message on stderr and exit with code 1.
33caade7ccSmrg# Otherwise, we print the canonical config type on stdout and succeed.
34caade7ccSmrg
35b9b4fd27Smrg# You can get the latest version of this script from:
36b9b4fd27Smrg# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
37b9b4fd27Smrg
38caade7ccSmrg# This file is supposed to be the same for all GNU packages
39caade7ccSmrg# and recognize all the CPU types, system types and aliases
40caade7ccSmrg# that are meaningful with *any* GNU software.
41caade7ccSmrg# Each package is responsible for reporting which valid configurations
42caade7ccSmrg# it does not support.  The user should be able to distinguish
43caade7ccSmrg# a failure to support a valid configuration from a meaningless
44caade7ccSmrg# configuration.
45caade7ccSmrg
46caade7ccSmrg# The goal of this file is to map all the various variations of a given
47caade7ccSmrg# machine specification into a single specification in the form:
48caade7ccSmrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
49caade7ccSmrg# or in some cases, the newer four-part form:
50caade7ccSmrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
51caade7ccSmrg# It is wrong to echo any other type of specification.
52caade7ccSmrg
53caade7ccSmrgme=`echo "$0" | sed -e 's,.*/,,'`
54caade7ccSmrg
55caade7ccSmrgusage="\
56caade7ccSmrgUsage: $0 [OPTION] CPU-MFR-OPSYS
57caade7ccSmrg       $0 [OPTION] ALIAS
58caade7ccSmrg
59caade7ccSmrgCanonicalize a configuration name.
60caade7ccSmrg
61caade7ccSmrgOperation modes:
62caade7ccSmrg  -h, --help         print this help, then exit
63caade7ccSmrg  -t, --time-stamp   print date of last modification, then exit
64caade7ccSmrg  -v, --version      print version number, then exit
65caade7ccSmrg
66caade7ccSmrgReport bugs and patches to <config-patches@gnu.org>."
67caade7ccSmrg
68caade7ccSmrgversion="\
69caade7ccSmrgGNU config.sub ($timestamp)
70caade7ccSmrg
71af9a7ee5SmrgCopyright 1992-2013 Free Software Foundation, Inc.
72caade7ccSmrg
73caade7ccSmrgThis is free software; see the source for copying conditions.  There is NO
74caade7ccSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
75caade7ccSmrg
76caade7ccSmrghelp="
77caade7ccSmrgTry \`$me --help' for more information."
78caade7ccSmrg
79caade7ccSmrg# Parse command line
80caade7ccSmrgwhile test $# -gt 0 ; do
81caade7ccSmrg  case $1 in
82caade7ccSmrg    --time-stamp | --time* | -t )
83caade7ccSmrg       echo "$timestamp" ; exit ;;
84caade7ccSmrg    --version | -v )
85caade7ccSmrg       echo "$version" ; exit ;;
86caade7ccSmrg    --help | --h* | -h )
87caade7ccSmrg       echo "$usage"; exit ;;
88caade7ccSmrg    -- )     # Stop option processing
89caade7ccSmrg       shift; break ;;
90caade7ccSmrg    - )	# Use stdin as input.
91caade7ccSmrg       break ;;
92caade7ccSmrg    -* )
93caade7ccSmrg       echo "$me: invalid option $1$help"
94caade7ccSmrg       exit 1 ;;
95caade7ccSmrg
96caade7ccSmrg    *local*)
97caade7ccSmrg       # First pass through any local machine types.
98caade7ccSmrg       echo $1
99caade7ccSmrg       exit ;;
100caade7ccSmrg
101caade7ccSmrg    * )
102caade7ccSmrg       break ;;
103caade7ccSmrg  esac
104caade7ccSmrgdone
105caade7ccSmrg
106caade7ccSmrgcase $# in
107caade7ccSmrg 0) echo "$me: missing argument$help" >&2
108caade7ccSmrg    exit 1;;
109caade7ccSmrg 1) ;;
110caade7ccSmrg *) echo "$me: too many arguments$help" >&2
111caade7ccSmrg    exit 1;;
112caade7ccSmrgesac
113caade7ccSmrg
114caade7ccSmrg# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
115caade7ccSmrg# Here we must recognize all the valid KERNEL-OS combinations.
116caade7ccSmrgmaybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
117caade7ccSmrgcase $maybe_os in
118e8a5466aSmrg  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
119af9a7ee5Smrg  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
120e8a5466aSmrg  knetbsd*-gnu* | netbsd*-gnu* | \
121b9b4fd27Smrg  kopensolaris*-gnu* | \
122caade7ccSmrg  storm-chaos* | os2-emx* | rtmk-nova*)
123caade7ccSmrg    os=-$maybe_os
124caade7ccSmrg    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
125caade7ccSmrg    ;;
126af9a7ee5Smrg  android-linux)
127af9a7ee5Smrg    os=-linux-android
128af9a7ee5Smrg    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
129af9a7ee5Smrg    ;;
130caade7ccSmrg  *)
131caade7ccSmrg    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
132caade7ccSmrg    if [ $basic_machine != $1 ]
133caade7ccSmrg    then os=`echo $1 | sed 's/.*-/-/'`
134caade7ccSmrg    else os=; fi
135caade7ccSmrg    ;;
136caade7ccSmrgesac
137caade7ccSmrg
138caade7ccSmrg### Let's recognize common machines as not being operating systems so
139caade7ccSmrg### that things like config.sub decstation-3100 work.  We also
140caade7ccSmrg### recognize some manufacturers as not being operating systems, so we
141caade7ccSmrg### can provide default operating systems below.
142caade7ccSmrgcase $os in
143caade7ccSmrg	-sun*os*)
144caade7ccSmrg		# Prevent following clause from handling this invalid input.
145caade7ccSmrg		;;
146caade7ccSmrg	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
147caade7ccSmrg	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
148caade7ccSmrg	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
149caade7ccSmrg	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
150caade7ccSmrg	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
151caade7ccSmrg	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
152af9a7ee5Smrg	-apple | -axis | -knuth | -cray | -microblaze*)
153caade7ccSmrg		os=
154caade7ccSmrg		basic_machine=$1
155caade7ccSmrg		;;
156af9a7ee5Smrg	-bluegene*)
157af9a7ee5Smrg		os=-cnk
158b9b4fd27Smrg		;;
159caade7ccSmrg	-sim | -cisco | -oki | -wec | -winbond)
160caade7ccSmrg		os=
161caade7ccSmrg		basic_machine=$1
162caade7ccSmrg		;;
163caade7ccSmrg	-scout)
164caade7ccSmrg		;;
165caade7ccSmrg	-wrs)
166caade7ccSmrg		os=-vxworks
167caade7ccSmrg		basic_machine=$1
168caade7ccSmrg		;;
169caade7ccSmrg	-chorusos*)
170caade7ccSmrg		os=-chorusos
171caade7ccSmrg		basic_machine=$1
172caade7ccSmrg		;;
173af9a7ee5Smrg	-chorusrdb)
174af9a7ee5Smrg		os=-chorusrdb
175caade7ccSmrg		basic_machine=$1
176af9a7ee5Smrg		;;
177caade7ccSmrg	-hiux*)
178caade7ccSmrg		os=-hiuxwe2
179caade7ccSmrg		;;
180caade7ccSmrg	-sco6)
181caade7ccSmrg		os=-sco5v6
182caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
183caade7ccSmrg		;;
184caade7ccSmrg	-sco5)
185caade7ccSmrg		os=-sco3.2v5
186caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
187caade7ccSmrg		;;
188caade7ccSmrg	-sco4)
189caade7ccSmrg		os=-sco3.2v4
190caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
191caade7ccSmrg		;;
192caade7ccSmrg	-sco3.2.[4-9]*)
193caade7ccSmrg		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
194caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
195caade7ccSmrg		;;
196caade7ccSmrg	-sco3.2v[4-9]*)
197caade7ccSmrg		# Don't forget version if it is 3.2v4 or newer.
198caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
199caade7ccSmrg		;;
200caade7ccSmrg	-sco5v6*)
201caade7ccSmrg		# Don't forget version if it is 3.2v4 or newer.
202caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
203caade7ccSmrg		;;
204caade7ccSmrg	-sco*)
205caade7ccSmrg		os=-sco3.2v2
206caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
207caade7ccSmrg		;;
208caade7ccSmrg	-udk*)
209caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
210caade7ccSmrg		;;
211caade7ccSmrg	-isc)
212caade7ccSmrg		os=-isc2.2
213caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
214caade7ccSmrg		;;
215caade7ccSmrg	-clix*)
216caade7ccSmrg		basic_machine=clipper-intergraph
217caade7ccSmrg		;;
218caade7ccSmrg	-isc*)
219caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
220caade7ccSmrg		;;
221af9a7ee5Smrg	-lynx*178)
222af9a7ee5Smrg		os=-lynxos178
223af9a7ee5Smrg		;;
224af9a7ee5Smrg	-lynx*5)
225af9a7ee5Smrg		os=-lynxos5
226af9a7ee5Smrg		;;
227caade7ccSmrg	-lynx*)
228caade7ccSmrg		os=-lynxos
229caade7ccSmrg		;;
230caade7ccSmrg	-ptx*)
231caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
232caade7ccSmrg		;;
233caade7ccSmrg	-windowsnt*)
234caade7ccSmrg		os=`echo $os | sed -e 's/windowsnt/winnt/'`
235caade7ccSmrg		;;
236caade7ccSmrg	-psos*)
237caade7ccSmrg		os=-psos
238caade7ccSmrg		;;
239caade7ccSmrg	-mint | -mint[0-9]*)
240caade7ccSmrg		basic_machine=m68k-atari
241caade7ccSmrg		os=-mint
242caade7ccSmrg		;;
243caade7ccSmrgesac
244caade7ccSmrg
245caade7ccSmrg# Decode aliases for certain CPU-COMPANY combinations.
246caade7ccSmrgcase $basic_machine in
247caade7ccSmrg	# Recognize the basic CPU types without company name.
248caade7ccSmrg	# Some are omitted here because they have special meanings below.
249caade7ccSmrg	1750a | 580 \
250caade7ccSmrg	| a29k \
251af9a7ee5Smrg	| aarch64 | aarch64_be \
252caade7ccSmrg	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
253caade7ccSmrg	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
254caade7ccSmrg	| am33_2.0 \
255af9a7ee5Smrg	| arc | arceb \
256af9a7ee5Smrg	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
257af9a7ee5Smrg	| avr | avr32 \
258af9a7ee5Smrg	| be32 | be64 \
259caade7ccSmrg	| bfin \
260caade7ccSmrg	| c4x | clipper \
261caade7ccSmrg	| d10v | d30v | dlx | dsp16xx \
262af9a7ee5Smrg	| epiphany \
263485f0483Smrg	| fido | fr30 | frv \
264caade7ccSmrg	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
265af9a7ee5Smrg	| hexagon \
266caade7ccSmrg	| i370 | i860 | i960 | ia64 \
267caade7ccSmrg	| ip2k | iq2000 \
268af9a7ee5Smrg	| le32 | le64 \
269b9b4fd27Smrg	| lm32 \
270485f0483Smrg	| m32c | m32r | m32rle | m68000 | m68k | m88k \
271af9a7ee5Smrg	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
272caade7ccSmrg	| mips | mipsbe | mipseb | mipsel | mipsle \
273caade7ccSmrg	| mips16 \
274caade7ccSmrg	| mips64 | mips64el \
275b9b4fd27Smrg	| mips64octeon | mips64octeonel \
276caade7ccSmrg	| mips64orion | mips64orionel \
277b9b4fd27Smrg	| mips64r5900 | mips64r5900el \
278b9b4fd27Smrg	| mips64vr | mips64vrel \
279caade7ccSmrg	| mips64vr4100 | mips64vr4100el \
280caade7ccSmrg	| mips64vr4300 | mips64vr4300el \
281caade7ccSmrg	| mips64vr5000 | mips64vr5000el \
282caade7ccSmrg	| mips64vr5900 | mips64vr5900el \
283caade7ccSmrg	| mipsisa32 | mipsisa32el \
284caade7ccSmrg	| mipsisa32r2 | mipsisa32r2el \
285caade7ccSmrg	| mipsisa64 | mipsisa64el \
286caade7ccSmrg	| mipsisa64r2 | mipsisa64r2el \
287caade7ccSmrg	| mipsisa64sb1 | mipsisa64sb1el \
288caade7ccSmrg	| mipsisa64sr71k | mipsisa64sr71kel \
289af9a7ee5Smrg	| mipsr5900 | mipsr5900el \
290caade7ccSmrg	| mipstx39 | mipstx39el \
291caade7ccSmrg	| mn10200 | mn10300 \
292b9b4fd27Smrg	| moxie \
293caade7ccSmrg	| mt \
294caade7ccSmrg	| msp430 \
295e8a5466aSmrg	| nds32 | nds32le | nds32be \
296af9a7ee5Smrg	| nios | nios2 | nios2eb | nios2el \
297caade7ccSmrg	| ns16k | ns32k \
298af9a7ee5Smrg	| open8 \
299af9a7ee5Smrg	| or1k | or32 \
300caade7ccSmrg	| pdp10 | pdp11 | pj | pjl \
301af9a7ee5Smrg	| powerpc | powerpc64 | powerpc64le | powerpcle \
302caade7ccSmrg	| pyramid \
303af9a7ee5Smrg	| rl78 | rx \
304485f0483Smrg	| score \
305b9b4fd27Smrg	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
306caade7ccSmrg	| sh64 | sh64le \
307485f0483Smrg	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
308485f0483Smrg	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
309af9a7ee5Smrg	| spu \
310af9a7ee5Smrg	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
311b9b4fd27Smrg	| ubicom32 \
312af9a7ee5Smrg	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
313caade7ccSmrg	| we32k \
314af9a7ee5Smrg	| x86 | xc16x | xstormy16 | xtensa \
315b9b4fd27Smrg	| z8k | z80)
316caade7ccSmrg		basic_machine=$basic_machine-unknown
317caade7ccSmrg		;;
318e8a5466aSmrg	c54x)
319e8a5466aSmrg		basic_machine=tic54x-unknown
320e8a5466aSmrg		;;
321e8a5466aSmrg	c55x)
322e8a5466aSmrg		basic_machine=tic55x-unknown
323e8a5466aSmrg		;;
324e8a5466aSmrg	c6x)
325e8a5466aSmrg		basic_machine=tic6x-unknown
326e8a5466aSmrg		;;
327af9a7ee5Smrg	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
328caade7ccSmrg		basic_machine=$basic_machine-unknown
329caade7ccSmrg		os=-none
330caade7ccSmrg		;;
331caade7ccSmrg	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
332caade7ccSmrg		;;
333caade7ccSmrg	ms1)
334caade7ccSmrg		basic_machine=mt-unknown
335caade7ccSmrg		;;
336caade7ccSmrg
337af9a7ee5Smrg	strongarm | thumb | xscale)
338af9a7ee5Smrg		basic_machine=arm-unknown
339af9a7ee5Smrg		;;
340af9a7ee5Smrg	xgate)
341af9a7ee5Smrg		basic_machine=$basic_machine-unknown
342af9a7ee5Smrg		os=-none
343af9a7ee5Smrg		;;
344af9a7ee5Smrg	xscaleeb)
345af9a7ee5Smrg		basic_machine=armeb-unknown
346af9a7ee5Smrg		;;
347af9a7ee5Smrg
348af9a7ee5Smrg	xscaleel)
349af9a7ee5Smrg		basic_machine=armel-unknown
350af9a7ee5Smrg		;;
351af9a7ee5Smrg
352caade7ccSmrg	# We use `pc' rather than `unknown'
353caade7ccSmrg	# because (1) that's what they normally are, and
354caade7ccSmrg	# (2) the word "unknown" tends to confuse beginning users.
355caade7ccSmrg	i*86 | x86_64)
356caade7ccSmrg	  basic_machine=$basic_machine-pc
357caade7ccSmrg	  ;;
358caade7ccSmrg	# Object if more than one company name word.
359caade7ccSmrg	*-*-*)
360caade7ccSmrg		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
361caade7ccSmrg		exit 1
362caade7ccSmrg		;;
363caade7ccSmrg	# Recognize the basic CPU types with company name.
364caade7ccSmrg	580-* \
365caade7ccSmrg	| a29k-* \
366af9a7ee5Smrg	| aarch64-* | aarch64_be-* \
367caade7ccSmrg	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
368caade7ccSmrg	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
369af9a7ee5Smrg	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
370caade7ccSmrg	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
371485f0483Smrg	| avr-* | avr32-* \
372af9a7ee5Smrg	| be32-* | be64-* \
373caade7ccSmrg	| bfin-* | bs2000-* \
374e8a5466aSmrg	| c[123]* | c30-* | [cjt]90-* | c4x-* \
375caade7ccSmrg	| clipper-* | craynv-* | cydra-* \
376caade7ccSmrg	| d10v-* | d30v-* | dlx-* \
377caade7ccSmrg	| elxsi-* \
378485f0483Smrg	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
379caade7ccSmrg	| h8300-* | h8500-* \
380caade7ccSmrg	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
381af9a7ee5Smrg	| hexagon-* \
382caade7ccSmrg	| i*86-* | i860-* | i960-* | ia64-* \
383caade7ccSmrg	| ip2k-* | iq2000-* \
384af9a7ee5Smrg	| le32-* | le64-* \
385b9b4fd27Smrg	| lm32-* \
386485f0483Smrg	| m32c-* | m32r-* | m32rle-* \
387caade7ccSmrg	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
388af9a7ee5Smrg	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
389af9a7ee5Smrg	| microblaze-* | microblazeel-* \
390caade7ccSmrg	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
391caade7ccSmrg	| mips16-* \
392caade7ccSmrg	| mips64-* | mips64el-* \
393b9b4fd27Smrg	| mips64octeon-* | mips64octeonel-* \
394caade7ccSmrg	| mips64orion-* | mips64orionel-* \
395b9b4fd27Smrg	| mips64r5900-* | mips64r5900el-* \
396b9b4fd27Smrg	| mips64vr-* | mips64vrel-* \
397caade7ccSmrg	| mips64vr4100-* | mips64vr4100el-* \
398caade7ccSmrg	| mips64vr4300-* | mips64vr4300el-* \
399caade7ccSmrg	| mips64vr5000-* | mips64vr5000el-* \
400caade7ccSmrg	| mips64vr5900-* | mips64vr5900el-* \
401caade7ccSmrg	| mipsisa32-* | mipsisa32el-* \
402caade7ccSmrg	| mipsisa32r2-* | mipsisa32r2el-* \
403caade7ccSmrg	| mipsisa64-* | mipsisa64el-* \
404caade7ccSmrg	| mipsisa64r2-* | mipsisa64r2el-* \
405caade7ccSmrg	| mipsisa64sb1-* | mipsisa64sb1el-* \
406caade7ccSmrg	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
407af9a7ee5Smrg	| mipsr5900-* | mipsr5900el-* \
408caade7ccSmrg	| mipstx39-* | mipstx39el-* \
409caade7ccSmrg	| mmix-* \
410caade7ccSmrg	| mt-* \
411caade7ccSmrg	| msp430-* \
412e8a5466aSmrg	| nds32-* | nds32le-* | nds32be-* \
413af9a7ee5Smrg	| nios-* | nios2-* | nios2eb-* | nios2el-* \
414caade7ccSmrg	| none-* | np1-* | ns16k-* | ns32k-* \
415af9a7ee5Smrg	| open8-* \
416caade7ccSmrg	| orion-* \
417caade7ccSmrg	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
418af9a7ee5Smrg	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
419caade7ccSmrg	| pyramid-* \
420af9a7ee5Smrg	| rl78-* | romp-* | rs6000-* | rx-* \
421b9b4fd27Smrg	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
422caade7ccSmrg	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
423485f0483Smrg	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
424caade7ccSmrg	| sparclite-* \
425af9a7ee5Smrg	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
426af9a7ee5Smrg	| tahoe-* \
427e8a5466aSmrg	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
428af9a7ee5Smrg	| tile*-* \
429caade7ccSmrg	| tron-* \
430b9b4fd27Smrg	| ubicom32-* \
431af9a7ee5Smrg	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
432af9a7ee5Smrg	| vax-* \
433caade7ccSmrg	| we32k-* \
434af9a7ee5Smrg	| x86-* | x86_64-* | xc16x-* | xps100-* \
435485f0483Smrg	| xstormy16-* | xtensa*-* \
436caade7ccSmrg	| ymp-* \
437b9b4fd27Smrg	| z8k-* | z80-*)
438caade7ccSmrg		;;
439485f0483Smrg	# Recognize the basic CPU types without company name, with glob match.
440485f0483Smrg	xtensa*)
441485f0483Smrg		basic_machine=$basic_machine-unknown
442caade7ccSmrg		;;
443caade7ccSmrg	# Recognize the various machine names and aliases which stand
444caade7ccSmrg	# for a CPU type and a company and sometimes even an OS.
445caade7ccSmrg	386bsd)
446caade7ccSmrg		basic_machine=i386-unknown
447caade7ccSmrg		os=-bsd
448caade7ccSmrg		;;
449caade7ccSmrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
450caade7ccSmrg		basic_machine=m68000-att
451caade7ccSmrg		;;
452caade7ccSmrg	3b*)
453caade7ccSmrg		basic_machine=we32k-att
454caade7ccSmrg		;;
455caade7ccSmrg	a29khif)
456caade7ccSmrg		basic_machine=a29k-amd
457caade7ccSmrg		os=-udi
458caade7ccSmrg		;;
459af9a7ee5Smrg	abacus)
460caade7ccSmrg		basic_machine=abacus-unknown
461caade7ccSmrg		;;
462caade7ccSmrg	adobe68k)
463caade7ccSmrg		basic_machine=m68010-adobe
464caade7ccSmrg		os=-scout
465caade7ccSmrg		;;
466caade7ccSmrg	alliant | fx80)
467caade7ccSmrg		basic_machine=fx80-alliant
468caade7ccSmrg		;;
469caade7ccSmrg	altos | altos3068)
470caade7ccSmrg		basic_machine=m68k-altos
471caade7ccSmrg		;;
472caade7ccSmrg	am29k)
473caade7ccSmrg		basic_machine=a29k-none
474caade7ccSmrg		os=-bsd
475caade7ccSmrg		;;
476caade7ccSmrg	amd64)
477caade7ccSmrg		basic_machine=x86_64-pc
478caade7ccSmrg		;;
479caade7ccSmrg	amd64-*)
480caade7ccSmrg		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
481caade7ccSmrg		;;
482caade7ccSmrg	amdahl)
483caade7ccSmrg		basic_machine=580-amdahl
484caade7ccSmrg		os=-sysv
485caade7ccSmrg		;;
486caade7ccSmrg	amiga | amiga-*)
487caade7ccSmrg		basic_machine=m68k-unknown
488caade7ccSmrg		;;
489caade7ccSmrg	amigaos | amigados)
490caade7ccSmrg		basic_machine=m68k-unknown
491caade7ccSmrg		os=-amigaos
492caade7ccSmrg		;;
493caade7ccSmrg	amigaunix | amix)
494caade7ccSmrg		basic_machine=m68k-unknown
495caade7ccSmrg		os=-sysv4
496caade7ccSmrg		;;
497caade7ccSmrg	apollo68)
498caade7ccSmrg		basic_machine=m68k-apollo
499caade7ccSmrg		os=-sysv
500caade7ccSmrg		;;
501caade7ccSmrg	apollo68bsd)
502caade7ccSmrg		basic_machine=m68k-apollo
503caade7ccSmrg		os=-bsd
504caade7ccSmrg		;;
505b9b4fd27Smrg	aros)
506b9b4fd27Smrg		basic_machine=i386-pc
507b9b4fd27Smrg		os=-aros
508b9b4fd27Smrg		;;
509caade7ccSmrg	aux)
510caade7ccSmrg		basic_machine=m68k-apple
511caade7ccSmrg		os=-aux
512caade7ccSmrg		;;
513caade7ccSmrg	balance)
514caade7ccSmrg		basic_machine=ns32k-sequent
515caade7ccSmrg		os=-dynix
516caade7ccSmrg		;;
517485f0483Smrg	blackfin)
518485f0483Smrg		basic_machine=bfin-unknown
519485f0483Smrg		os=-linux
520485f0483Smrg		;;
521485f0483Smrg	blackfin-*)
522485f0483Smrg		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
523485f0483Smrg		os=-linux
524485f0483Smrg		;;
525b9b4fd27Smrg	bluegene*)
526b9b4fd27Smrg		basic_machine=powerpc-ibm
527b9b4fd27Smrg		os=-cnk
528b9b4fd27Smrg		;;
529e8a5466aSmrg	c54x-*)
530e8a5466aSmrg		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
531e8a5466aSmrg		;;
532e8a5466aSmrg	c55x-*)
533e8a5466aSmrg		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
534e8a5466aSmrg		;;
535e8a5466aSmrg	c6x-*)
536e8a5466aSmrg		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
537e8a5466aSmrg		;;
538caade7ccSmrg	c90)
539caade7ccSmrg		basic_machine=c90-cray
540caade7ccSmrg		os=-unicos
541caade7ccSmrg		;;
542af9a7ee5Smrg	cegcc)
543b9b4fd27Smrg		basic_machine=arm-unknown
544b9b4fd27Smrg		os=-cegcc
545b9b4fd27Smrg		;;
546caade7ccSmrg	convex-c1)
547caade7ccSmrg		basic_machine=c1-convex
548caade7ccSmrg		os=-bsd
549caade7ccSmrg		;;
550caade7ccSmrg	convex-c2)
551caade7ccSmrg		basic_machine=c2-convex
552caade7ccSmrg		os=-bsd
553caade7ccSmrg		;;
554caade7ccSmrg	convex-c32)
555caade7ccSmrg		basic_machine=c32-convex
556caade7ccSmrg		os=-bsd
557caade7ccSmrg		;;
558caade7ccSmrg	convex-c34)
559caade7ccSmrg		basic_machine=c34-convex
560caade7ccSmrg		os=-bsd
561caade7ccSmrg		;;
562caade7ccSmrg	convex-c38)
563caade7ccSmrg		basic_machine=c38-convex
564caade7ccSmrg		os=-bsd
565caade7ccSmrg		;;
566caade7ccSmrg	cray | j90)
567caade7ccSmrg		basic_machine=j90-cray
568caade7ccSmrg		os=-unicos
569caade7ccSmrg		;;
570caade7ccSmrg	craynv)
571caade7ccSmrg		basic_machine=craynv-cray
572caade7ccSmrg		os=-unicosmp
573caade7ccSmrg		;;
574af9a7ee5Smrg	cr16 | cr16-*)
575485f0483Smrg		basic_machine=cr16-unknown
576caade7ccSmrg		os=-elf
577caade7ccSmrg		;;
578caade7ccSmrg	crds | unos)
579caade7ccSmrg		basic_machine=m68k-crds
580caade7ccSmrg		;;
581caade7ccSmrg	crisv32 | crisv32-* | etraxfs*)
582caade7ccSmrg		basic_machine=crisv32-axis
583caade7ccSmrg		;;
584caade7ccSmrg	cris | cris-* | etrax*)
585caade7ccSmrg		basic_machine=cris-axis
586caade7ccSmrg		;;
587caade7ccSmrg	crx)
588caade7ccSmrg		basic_machine=crx-unknown
589caade7ccSmrg		os=-elf
590caade7ccSmrg		;;
591caade7ccSmrg	da30 | da30-*)
592caade7ccSmrg		basic_machine=m68k-da30
593caade7ccSmrg		;;
594caade7ccSmrg	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
595caade7ccSmrg		basic_machine=mips-dec
596caade7ccSmrg		;;
597caade7ccSmrg	decsystem10* | dec10*)
598caade7ccSmrg		basic_machine=pdp10-dec
599caade7ccSmrg		os=-tops10
600caade7ccSmrg		;;
601caade7ccSmrg	decsystem20* | dec20*)
602caade7ccSmrg		basic_machine=pdp10-dec
603caade7ccSmrg		os=-tops20
604caade7ccSmrg		;;
605caade7ccSmrg	delta | 3300 | motorola-3300 | motorola-delta \
606caade7ccSmrg	      | 3300-motorola | delta-motorola)
607caade7ccSmrg		basic_machine=m68k-motorola
608caade7ccSmrg		;;
609caade7ccSmrg	delta88)
610caade7ccSmrg		basic_machine=m88k-motorola
611caade7ccSmrg		os=-sysv3
612caade7ccSmrg		;;
613b9b4fd27Smrg	dicos)
614b9b4fd27Smrg		basic_machine=i686-pc
615b9b4fd27Smrg		os=-dicos
616b9b4fd27Smrg		;;
617caade7ccSmrg	djgpp)
618caade7ccSmrg		basic_machine=i586-pc
619caade7ccSmrg		os=-msdosdjgpp
620caade7ccSmrg		;;
621caade7ccSmrg	dpx20 | dpx20-*)
622caade7ccSmrg		basic_machine=rs6000-bull
623caade7ccSmrg		os=-bosx
624caade7ccSmrg		;;
625caade7ccSmrg	dpx2* | dpx2*-bull)
626caade7ccSmrg		basic_machine=m68k-bull
627caade7ccSmrg		os=-sysv3
628caade7ccSmrg		;;
629caade7ccSmrg	ebmon29k)
630caade7ccSmrg		basic_machine=a29k-amd
631caade7ccSmrg		os=-ebmon
632caade7ccSmrg		;;
633caade7ccSmrg	elxsi)
634caade7ccSmrg		basic_machine=elxsi-elxsi
635caade7ccSmrg		os=-bsd
636caade7ccSmrg		;;
637caade7ccSmrg	encore | umax | mmax)
638caade7ccSmrg		basic_machine=ns32k-encore
639caade7ccSmrg		;;
640caade7ccSmrg	es1800 | OSE68k | ose68k | ose | OSE)
641caade7ccSmrg		basic_machine=m68k-ericsson
642caade7ccSmrg		os=-ose
643caade7ccSmrg		;;
644caade7ccSmrg	fx2800)
645caade7ccSmrg		basic_machine=i860-alliant
646caade7ccSmrg		;;
647caade7ccSmrg	genix)
648caade7ccSmrg		basic_machine=ns32k-ns
649caade7ccSmrg		;;
650caade7ccSmrg	gmicro)
651caade7ccSmrg		basic_machine=tron-gmicro
652caade7ccSmrg		os=-sysv
653caade7ccSmrg		;;
654caade7ccSmrg	go32)
655caade7ccSmrg		basic_machine=i386-pc
656caade7ccSmrg		os=-go32
657caade7ccSmrg		;;
658caade7ccSmrg	h3050r* | hiux*)
659caade7ccSmrg		basic_machine=hppa1.1-hitachi
660caade7ccSmrg		os=-hiuxwe2
661caade7ccSmrg		;;
662caade7ccSmrg	h8300hms)
663caade7ccSmrg		basic_machine=h8300-hitachi
664caade7ccSmrg		os=-hms
665caade7ccSmrg		;;
666caade7ccSmrg	h8300xray)
667caade7ccSmrg		basic_machine=h8300-hitachi
668caade7ccSmrg		os=-xray
669caade7ccSmrg		;;
670caade7ccSmrg	h8500hms)
671caade7ccSmrg		basic_machine=h8500-hitachi
672caade7ccSmrg		os=-hms
673caade7ccSmrg		;;
674caade7ccSmrg	harris)
675caade7ccSmrg		basic_machine=m88k-harris
676caade7ccSmrg		os=-sysv3
677caade7ccSmrg		;;
678caade7ccSmrg	hp300-*)
679caade7ccSmrg		basic_machine=m68k-hp
680caade7ccSmrg		;;
681caade7ccSmrg	hp300bsd)
682caade7ccSmrg		basic_machine=m68k-hp
683caade7ccSmrg		os=-bsd
684caade7ccSmrg		;;
685caade7ccSmrg	hp300hpux)
686caade7ccSmrg		basic_machine=m68k-hp
687caade7ccSmrg		os=-hpux
688caade7ccSmrg		;;
689caade7ccSmrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
690caade7ccSmrg		basic_machine=hppa1.0-hp
691caade7ccSmrg		;;
692caade7ccSmrg	hp9k2[0-9][0-9] | hp9k31[0-9])
693caade7ccSmrg		basic_machine=m68000-hp
694caade7ccSmrg		;;
695caade7ccSmrg	hp9k3[2-9][0-9])
696caade7ccSmrg		basic_machine=m68k-hp
697caade7ccSmrg		;;
698caade7ccSmrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
699caade7ccSmrg		basic_machine=hppa1.0-hp
700caade7ccSmrg		;;
701caade7ccSmrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
702caade7ccSmrg		basic_machine=hppa1.1-hp
703caade7ccSmrg		;;
704caade7ccSmrg	hp9k78[0-9] | hp78[0-9])
705caade7ccSmrg		# FIXME: really hppa2.0-hp
706caade7ccSmrg		basic_machine=hppa1.1-hp
707caade7ccSmrg		;;
708caade7ccSmrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
709caade7ccSmrg		# FIXME: really hppa2.0-hp
710caade7ccSmrg		basic_machine=hppa1.1-hp
711caade7ccSmrg		;;
712caade7ccSmrg	hp9k8[0-9][13679] | hp8[0-9][13679])
713caade7ccSmrg		basic_machine=hppa1.1-hp
714caade7ccSmrg		;;
715caade7ccSmrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
716caade7ccSmrg		basic_machine=hppa1.0-hp
717caade7ccSmrg		;;
718caade7ccSmrg	hppa-next)
719caade7ccSmrg		os=-nextstep3
720caade7ccSmrg		;;
721caade7ccSmrg	hppaosf)
722caade7ccSmrg		basic_machine=hppa1.1-hp
723caade7ccSmrg		os=-osf
724caade7ccSmrg		;;
725caade7ccSmrg	hppro)
726caade7ccSmrg		basic_machine=hppa1.1-hp
727caade7ccSmrg		os=-proelf
728caade7ccSmrg		;;
729caade7ccSmrg	i370-ibm* | ibm*)
730caade7ccSmrg		basic_machine=i370-ibm
731caade7ccSmrg		;;
732caade7ccSmrg	i*86v32)
733caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
734caade7ccSmrg		os=-sysv32
735caade7ccSmrg		;;
736caade7ccSmrg	i*86v4*)
737caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
738caade7ccSmrg		os=-sysv4
739caade7ccSmrg		;;
740caade7ccSmrg	i*86v)
741caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
742caade7ccSmrg		os=-sysv
743caade7ccSmrg		;;
744caade7ccSmrg	i*86sol2)
745caade7ccSmrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
746caade7ccSmrg		os=-solaris2
747caade7ccSmrg		;;
748caade7ccSmrg	i386mach)
749caade7ccSmrg		basic_machine=i386-mach
750caade7ccSmrg		os=-mach
751caade7ccSmrg		;;
752caade7ccSmrg	i386-vsta | vsta)
753caade7ccSmrg		basic_machine=i386-unknown
754caade7ccSmrg		os=-vsta
755caade7ccSmrg		;;
756caade7ccSmrg	iris | iris4d)
757caade7ccSmrg		basic_machine=mips-sgi
758caade7ccSmrg		case $os in
759caade7ccSmrg		    -irix*)
760caade7ccSmrg			;;
761caade7ccSmrg		    *)
762caade7ccSmrg			os=-irix4
763caade7ccSmrg			;;
764caade7ccSmrg		esac
765caade7ccSmrg		;;
766caade7ccSmrg	isi68 | isi)
767caade7ccSmrg		basic_machine=m68k-isi
768caade7ccSmrg		os=-sysv
769caade7ccSmrg		;;
770485f0483Smrg	m68knommu)
771485f0483Smrg		basic_machine=m68k-unknown
772485f0483Smrg		os=-linux
773485f0483Smrg		;;
774485f0483Smrg	m68knommu-*)
775485f0483Smrg		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
776485f0483Smrg		os=-linux
777485f0483Smrg		;;
778caade7ccSmrg	m88k-omron*)
779caade7ccSmrg		basic_machine=m88k-omron
780caade7ccSmrg		;;
781caade7ccSmrg	magnum | m3230)
782caade7ccSmrg		basic_machine=mips-mips
783caade7ccSmrg		os=-sysv
784caade7ccSmrg		;;
785caade7ccSmrg	merlin)
786caade7ccSmrg		basic_machine=ns32k-utek
787caade7ccSmrg		os=-sysv
788caade7ccSmrg		;;
789af9a7ee5Smrg	microblaze*)
790b9b4fd27Smrg		basic_machine=microblaze-xilinx
791b9b4fd27Smrg		;;
792af9a7ee5Smrg	mingw64)
793af9a7ee5Smrg		basic_machine=x86_64-pc
794af9a7ee5Smrg		os=-mingw64
795af9a7ee5Smrg		;;
796caade7ccSmrg	mingw32)
797caade7ccSmrg		basic_machine=i386-pc
798caade7ccSmrg		os=-mingw32
799caade7ccSmrg		;;
800485f0483Smrg	mingw32ce)
801485f0483Smrg		basic_machine=arm-unknown
802485f0483Smrg		os=-mingw32ce
803485f0483Smrg		;;
804caade7ccSmrg	miniframe)
805caade7ccSmrg		basic_machine=m68000-convergent
806caade7ccSmrg		;;
807caade7ccSmrg	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
808caade7ccSmrg		basic_machine=m68k-atari
809caade7ccSmrg		os=-mint
810caade7ccSmrg		;;
811caade7ccSmrg	mips3*-*)
812caade7ccSmrg		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
813caade7ccSmrg		;;
814caade7ccSmrg	mips3*)
815caade7ccSmrg		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
816caade7ccSmrg		;;
817caade7ccSmrg	monitor)
818caade7ccSmrg		basic_machine=m68k-rom68k
819caade7ccSmrg		os=-coff
820caade7ccSmrg		;;
821caade7ccSmrg	morphos)
822caade7ccSmrg		basic_machine=powerpc-unknown
823caade7ccSmrg		os=-morphos
824caade7ccSmrg		;;
825caade7ccSmrg	msdos)
826caade7ccSmrg		basic_machine=i386-pc
827caade7ccSmrg		os=-msdos
828caade7ccSmrg		;;
829caade7ccSmrg	ms1-*)
830caade7ccSmrg		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
831caade7ccSmrg		;;
832af9a7ee5Smrg	msys)
833af9a7ee5Smrg		basic_machine=i386-pc
834af9a7ee5Smrg		os=-msys
835af9a7ee5Smrg		;;
836caade7ccSmrg	mvs)
837caade7ccSmrg		basic_machine=i370-ibm
838caade7ccSmrg		os=-mvs
839caade7ccSmrg		;;
840af9a7ee5Smrg	nacl)
841af9a7ee5Smrg		basic_machine=le32-unknown
842af9a7ee5Smrg		os=-nacl
843af9a7ee5Smrg		;;
844caade7ccSmrg	ncr3000)
845caade7ccSmrg		basic_machine=i486-ncr
846caade7ccSmrg		os=-sysv4
847caade7ccSmrg		;;
848caade7ccSmrg	netbsd386)
849caade7ccSmrg		basic_machine=i386-unknown
850caade7ccSmrg		os=-netbsd
851caade7ccSmrg		;;
852caade7ccSmrg	netwinder)
853caade7ccSmrg		basic_machine=armv4l-rebel
854caade7ccSmrg		os=-linux
855caade7ccSmrg		;;
856caade7ccSmrg	news | news700 | news800 | news900)
857caade7ccSmrg		basic_machine=m68k-sony
858caade7ccSmrg		os=-newsos
859caade7ccSmrg		;;
860caade7ccSmrg	news1000)
861caade7ccSmrg		basic_machine=m68030-sony
862caade7ccSmrg		os=-newsos
863caade7ccSmrg		;;
864caade7ccSmrg	news-3600 | risc-news)
865caade7ccSmrg		basic_machine=mips-sony
866caade7ccSmrg		os=-newsos
867caade7ccSmrg		;;
868caade7ccSmrg	necv70)
869caade7ccSmrg		basic_machine=v70-nec
870caade7ccSmrg		os=-sysv
871caade7ccSmrg		;;
872caade7ccSmrg	next | m*-next )
873caade7ccSmrg		basic_machine=m68k-next
874caade7ccSmrg		case $os in
875caade7ccSmrg		    -nextstep* )
876caade7ccSmrg			;;
877caade7ccSmrg		    -ns2*)
878caade7ccSmrg		      os=-nextstep2
879caade7ccSmrg			;;
880caade7ccSmrg		    *)
881caade7ccSmrg		      os=-nextstep3
882caade7ccSmrg			;;
883caade7ccSmrg		esac
884caade7ccSmrg		;;
885caade7ccSmrg	nh3000)
886caade7ccSmrg		basic_machine=m68k-harris
887caade7ccSmrg		os=-cxux
888caade7ccSmrg		;;
889caade7ccSmrg	nh[45]000)
890caade7ccSmrg		basic_machine=m88k-harris
891caade7ccSmrg		os=-cxux
892caade7ccSmrg		;;
893caade7ccSmrg	nindy960)
894caade7ccSmrg		basic_machine=i960-intel
895caade7ccSmrg		os=-nindy
896caade7ccSmrg		;;
897caade7ccSmrg	mon960)
898caade7ccSmrg		basic_machine=i960-intel
899caade7ccSmrg		os=-mon960
900caade7ccSmrg		;;
901caade7ccSmrg	nonstopux)
902caade7ccSmrg		basic_machine=mips-compaq
903caade7ccSmrg		os=-nonstopux
904caade7ccSmrg		;;
905caade7ccSmrg	np1)
906caade7ccSmrg		basic_machine=np1-gould
907caade7ccSmrg		;;
908af9a7ee5Smrg	neo-tandem)
909e8a5466aSmrg		basic_machine=neo-tandem
910e8a5466aSmrg		;;
911af9a7ee5Smrg	nse-tandem)
912e8a5466aSmrg		basic_machine=nse-tandem
913e8a5466aSmrg		;;
914caade7ccSmrg	nsr-tandem)
915caade7ccSmrg		basic_machine=nsr-tandem
916caade7ccSmrg		;;
917caade7ccSmrg	op50n-* | op60c-*)
918caade7ccSmrg		basic_machine=hppa1.1-oki
919caade7ccSmrg		os=-proelf
920caade7ccSmrg		;;
921caade7ccSmrg	openrisc | openrisc-*)
922caade7ccSmrg		basic_machine=or32-unknown
923caade7ccSmrg		;;
924caade7ccSmrg	os400)
925caade7ccSmrg		basic_machine=powerpc-ibm
926caade7ccSmrg		os=-os400
927caade7ccSmrg		;;
928caade7ccSmrg	OSE68000 | ose68000)
929caade7ccSmrg		basic_machine=m68000-ericsson
930caade7ccSmrg		os=-ose
931caade7ccSmrg		;;
932caade7ccSmrg	os68k)
933caade7ccSmrg		basic_machine=m68k-none
934caade7ccSmrg		os=-os68k
935caade7ccSmrg		;;
936caade7ccSmrg	pa-hitachi)
937caade7ccSmrg		basic_machine=hppa1.1-hitachi
938caade7ccSmrg		os=-hiuxwe2
939caade7ccSmrg		;;
940caade7ccSmrg	paragon)
941caade7ccSmrg		basic_machine=i860-intel
942caade7ccSmrg		os=-osf
943caade7ccSmrg		;;
944485f0483Smrg	parisc)
945485f0483Smrg		basic_machine=hppa-unknown
946485f0483Smrg		os=-linux
947485f0483Smrg		;;
948485f0483Smrg	parisc-*)
949485f0483Smrg		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
950485f0483Smrg		os=-linux
951485f0483Smrg		;;
952caade7ccSmrg	pbd)
953caade7ccSmrg		basic_machine=sparc-tti
954caade7ccSmrg		;;
955caade7ccSmrg	pbb)
956caade7ccSmrg		basic_machine=m68k-tti
957caade7ccSmrg		;;
958caade7ccSmrg	pc532 | pc532-*)
959caade7ccSmrg		basic_machine=ns32k-pc532
960caade7ccSmrg		;;
961485f0483Smrg	pc98)
962485f0483Smrg		basic_machine=i386-pc
963485f0483Smrg		;;
964485f0483Smrg	pc98-*)
965485f0483Smrg		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
966485f0483Smrg		;;
967caade7ccSmrg	pentium | p5 | k5 | k6 | nexgen | viac3)
968caade7ccSmrg		basic_machine=i586-pc
969caade7ccSmrg		;;
970caade7ccSmrg	pentiumpro | p6 | 6x86 | athlon | athlon_*)
971caade7ccSmrg		basic_machine=i686-pc
972caade7ccSmrg		;;
973caade7ccSmrg	pentiumii | pentium2 | pentiumiii | pentium3)
974caade7ccSmrg		basic_machine=i686-pc
975caade7ccSmrg		;;
976caade7ccSmrg	pentium4)
977caade7ccSmrg		basic_machine=i786-pc
978caade7ccSmrg		;;
979caade7ccSmrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
980caade7ccSmrg		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
981caade7ccSmrg		;;
982caade7ccSmrg	pentiumpro-* | p6-* | 6x86-* | athlon-*)
983caade7ccSmrg		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
984caade7ccSmrg		;;
985caade7ccSmrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
986caade7ccSmrg		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
987caade7ccSmrg		;;
988caade7ccSmrg	pentium4-*)
989caade7ccSmrg		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
990caade7ccSmrg		;;
991caade7ccSmrg	pn)
992caade7ccSmrg		basic_machine=pn-gould
993caade7ccSmrg		;;
994caade7ccSmrg	power)	basic_machine=power-ibm
995caade7ccSmrg		;;
996af9a7ee5Smrg	ppc | ppcbe)	basic_machine=powerpc-unknown
997caade7ccSmrg		;;
998af9a7ee5Smrg	ppc-* | ppcbe-*)
999af9a7ee5Smrg		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
1000caade7ccSmrg		;;
1001caade7ccSmrg	ppcle | powerpclittle | ppc-le | powerpc-little)
1002caade7ccSmrg		basic_machine=powerpcle-unknown
1003caade7ccSmrg		;;
1004caade7ccSmrg	ppcle-* | powerpclittle-*)
1005caade7ccSmrg		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
1006caade7ccSmrg		;;
1007caade7ccSmrg	ppc64)	basic_machine=powerpc64-unknown
1008caade7ccSmrg		;;
1009caade7ccSmrg	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
1010caade7ccSmrg		;;
1011caade7ccSmrg	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
1012caade7ccSmrg		basic_machine=powerpc64le-unknown
1013caade7ccSmrg		;;
1014caade7ccSmrg	ppc64le-* | powerpc64little-*)
1015caade7ccSmrg		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
1016caade7ccSmrg		;;
1017caade7ccSmrg	ps2)
1018caade7ccSmrg		basic_machine=i386-ibm
1019caade7ccSmrg		;;
1020caade7ccSmrg	pw32)
1021caade7ccSmrg		basic_machine=i586-unknown
1022caade7ccSmrg		os=-pw32
1023caade7ccSmrg		;;
1024af9a7ee5Smrg	rdos | rdos64)
1025af9a7ee5Smrg		basic_machine=x86_64-pc
1026af9a7ee5Smrg		os=-rdos
1027af9a7ee5Smrg		;;
1028af9a7ee5Smrg	rdos32)
1029caade7ccSmrg		basic_machine=i386-pc
1030caade7ccSmrg		os=-rdos
1031caade7ccSmrg		;;
1032caade7ccSmrg	rom68k)
1033caade7ccSmrg		basic_machine=m68k-rom68k
1034caade7ccSmrg		os=-coff
1035caade7ccSmrg		;;
1036caade7ccSmrg	rm[46]00)
1037caade7ccSmrg		basic_machine=mips-siemens
1038caade7ccSmrg		;;
1039caade7ccSmrg	rtpc | rtpc-*)
1040caade7ccSmrg		basic_machine=romp-ibm
1041caade7ccSmrg		;;
1042caade7ccSmrg	s390 | s390-*)
1043caade7ccSmrg		basic_machine=s390-ibm
1044caade7ccSmrg		;;
1045caade7ccSmrg	s390x | s390x-*)
1046caade7ccSmrg		basic_machine=s390x-ibm
1047caade7ccSmrg		;;
1048caade7ccSmrg	sa29200)
1049caade7ccSmrg		basic_machine=a29k-amd
1050caade7ccSmrg		os=-udi
1051caade7ccSmrg		;;
1052caade7ccSmrg	sb1)
1053caade7ccSmrg		basic_machine=mipsisa64sb1-unknown
1054caade7ccSmrg		;;
1055caade7ccSmrg	sb1el)
1056caade7ccSmrg		basic_machine=mipsisa64sb1el-unknown
1057caade7ccSmrg		;;
1058485f0483Smrg	sde)
1059485f0483Smrg		basic_machine=mipsisa32-sde
1060485f0483Smrg		os=-elf
1061485f0483Smrg		;;
1062caade7ccSmrg	sei)
1063caade7ccSmrg		basic_machine=mips-sei
1064caade7ccSmrg		os=-seiux
1065caade7ccSmrg		;;
1066caade7ccSmrg	sequent)
1067caade7ccSmrg		basic_machine=i386-sequent
1068caade7ccSmrg		;;
1069caade7ccSmrg	sh)
1070caade7ccSmrg		basic_machine=sh-hitachi
1071caade7ccSmrg		os=-hms
1072caade7ccSmrg		;;
1073485f0483Smrg	sh5el)
1074485f0483Smrg		basic_machine=sh5le-unknown
1075485f0483Smrg		;;
1076caade7ccSmrg	sh64)
1077caade7ccSmrg		basic_machine=sh64-unknown
1078caade7ccSmrg		;;
1079caade7ccSmrg	sparclite-wrs | simso-wrs)
1080caade7ccSmrg		basic_machine=sparclite-wrs
1081caade7ccSmrg		os=-vxworks
1082caade7ccSmrg		;;
1083caade7ccSmrg	sps7)
1084caade7ccSmrg		basic_machine=m68k-bull
1085caade7ccSmrg		os=-sysv2
1086caade7ccSmrg		;;
1087caade7ccSmrg	spur)
1088caade7ccSmrg		basic_machine=spur-unknown
1089caade7ccSmrg		;;
1090caade7ccSmrg	st2000)
1091caade7ccSmrg		basic_machine=m68k-tandem
1092caade7ccSmrg		;;
1093caade7ccSmrg	stratus)
1094caade7ccSmrg		basic_machine=i860-stratus
1095caade7ccSmrg		os=-sysv4
1096caade7ccSmrg		;;
1097af9a7ee5Smrg	strongarm-* | thumb-*)
1098af9a7ee5Smrg		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1099af9a7ee5Smrg		;;
1100caade7ccSmrg	sun2)
1101caade7ccSmrg		basic_machine=m68000-sun
1102caade7ccSmrg		;;
1103caade7ccSmrg	sun2os3)
1104caade7ccSmrg		basic_machine=m68000-sun
1105caade7ccSmrg		os=-sunos3
1106caade7ccSmrg		;;
1107caade7ccSmrg	sun2os4)
1108caade7ccSmrg		basic_machine=m68000-sun
1109caade7ccSmrg		os=-sunos4
1110caade7ccSmrg		;;
1111caade7ccSmrg	sun3os3)
1112caade7ccSmrg		basic_machine=m68k-sun
1113caade7ccSmrg		os=-sunos3
1114caade7ccSmrg		;;
1115caade7ccSmrg	sun3os4)
1116caade7ccSmrg		basic_machine=m68k-sun
1117caade7ccSmrg		os=-sunos4
1118caade7ccSmrg		;;
1119caade7ccSmrg	sun4os3)
1120caade7ccSmrg		basic_machine=sparc-sun
1121caade7ccSmrg		os=-sunos3
1122caade7ccSmrg		;;
1123caade7ccSmrg	sun4os4)
1124caade7ccSmrg		basic_machine=sparc-sun
1125caade7ccSmrg		os=-sunos4
1126caade7ccSmrg		;;
1127caade7ccSmrg	sun4sol2)
1128caade7ccSmrg		basic_machine=sparc-sun
1129caade7ccSmrg		os=-solaris2
1130caade7ccSmrg		;;
1131caade7ccSmrg	sun3 | sun3-*)
1132caade7ccSmrg		basic_machine=m68k-sun
1133caade7ccSmrg		;;
1134caade7ccSmrg	sun4)
1135caade7ccSmrg		basic_machine=sparc-sun
1136caade7ccSmrg		;;
1137caade7ccSmrg	sun386 | sun386i | roadrunner)
1138caade7ccSmrg		basic_machine=i386-sun
1139caade7ccSmrg		;;
1140caade7ccSmrg	sv1)
1141caade7ccSmrg		basic_machine=sv1-cray
1142caade7ccSmrg		os=-unicos
1143caade7ccSmrg		;;
1144caade7ccSmrg	symmetry)
1145caade7ccSmrg		basic_machine=i386-sequent
1146caade7ccSmrg		os=-dynix
1147caade7ccSmrg		;;
1148caade7ccSmrg	t3e)
1149caade7ccSmrg		basic_machine=alphaev5-cray
1150caade7ccSmrg		os=-unicos
1151caade7ccSmrg		;;
1152caade7ccSmrg	t90)
1153caade7ccSmrg		basic_machine=t90-cray
1154caade7ccSmrg		os=-unicos
1155caade7ccSmrg		;;
1156485f0483Smrg	tile*)
1157af9a7ee5Smrg		basic_machine=$basic_machine-unknown
1158485f0483Smrg		os=-linux-gnu
1159485f0483Smrg		;;
1160caade7ccSmrg	tx39)
1161caade7ccSmrg		basic_machine=mipstx39-unknown
1162caade7ccSmrg		;;
1163caade7ccSmrg	tx39el)
1164caade7ccSmrg		basic_machine=mipstx39el-unknown
1165caade7ccSmrg		;;
1166caade7ccSmrg	toad1)
1167caade7ccSmrg		basic_machine=pdp10-xkl
1168caade7ccSmrg		os=-tops20
1169caade7ccSmrg		;;
1170caade7ccSmrg	tower | tower-32)
1171caade7ccSmrg		basic_machine=m68k-ncr
1172caade7ccSmrg		;;
1173caade7ccSmrg	tpf)
1174caade7ccSmrg		basic_machine=s390x-ibm
1175caade7ccSmrg		os=-tpf
1176caade7ccSmrg		;;
1177caade7ccSmrg	udi29k)
1178caade7ccSmrg		basic_machine=a29k-amd
1179caade7ccSmrg		os=-udi
1180caade7ccSmrg		;;
1181caade7ccSmrg	ultra3)
1182caade7ccSmrg		basic_machine=a29k-nyu
1183caade7ccSmrg		os=-sym1
1184caade7ccSmrg		;;
1185caade7ccSmrg	v810 | necv810)
1186caade7ccSmrg		basic_machine=v810-nec
1187caade7ccSmrg		os=-none
1188caade7ccSmrg		;;
1189caade7ccSmrg	vaxv)
1190caade7ccSmrg		basic_machine=vax-dec
1191caade7ccSmrg		os=-sysv
1192caade7ccSmrg		;;
1193caade7ccSmrg	vms)
1194caade7ccSmrg		basic_machine=vax-dec
1195caade7ccSmrg		os=-vms
1196caade7ccSmrg		;;
1197caade7ccSmrg	vpp*|vx|vx-*)
1198caade7ccSmrg		basic_machine=f301-fujitsu
1199caade7ccSmrg		;;
1200caade7ccSmrg	vxworks960)
1201caade7ccSmrg		basic_machine=i960-wrs
1202caade7ccSmrg		os=-vxworks
1203caade7ccSmrg		;;
1204caade7ccSmrg	vxworks68)
1205caade7ccSmrg		basic_machine=m68k-wrs
1206caade7ccSmrg		os=-vxworks
1207caade7ccSmrg		;;
1208caade7ccSmrg	vxworks29k)
1209caade7ccSmrg		basic_machine=a29k-wrs
1210caade7ccSmrg		os=-vxworks
1211caade7ccSmrg		;;
1212caade7ccSmrg	w65*)
1213caade7ccSmrg		basic_machine=w65-wdc
1214caade7ccSmrg		os=-none
1215caade7ccSmrg		;;
1216caade7ccSmrg	w89k-*)
1217caade7ccSmrg		basic_machine=hppa1.1-winbond
1218caade7ccSmrg		os=-proelf
1219caade7ccSmrg		;;
1220caade7ccSmrg	xbox)
1221caade7ccSmrg		basic_machine=i686-pc
1222caade7ccSmrg		os=-mingw32
1223caade7ccSmrg		;;
1224caade7ccSmrg	xps | xps100)
1225caade7ccSmrg		basic_machine=xps100-honeywell
1226caade7ccSmrg		;;
1227af9a7ee5Smrg	xscale-* | xscalee[bl]-*)
1228af9a7ee5Smrg		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1229af9a7ee5Smrg		;;
1230caade7ccSmrg	ymp)
1231caade7ccSmrg		basic_machine=ymp-cray
1232caade7ccSmrg		os=-unicos
1233caade7ccSmrg		;;
1234caade7ccSmrg	z8k-*-coff)
1235caade7ccSmrg		basic_machine=z8k-unknown
1236caade7ccSmrg		os=-sim
1237caade7ccSmrg		;;
1238b9b4fd27Smrg	z80-*-coff)
1239b9b4fd27Smrg		basic_machine=z80-unknown
1240b9b4fd27Smrg		os=-sim
1241b9b4fd27Smrg		;;
1242caade7ccSmrg	none)
1243caade7ccSmrg		basic_machine=none-none
1244caade7ccSmrg		os=-none
1245caade7ccSmrg		;;
1246caade7ccSmrg
1247caade7ccSmrg# Here we handle the default manufacturer of certain CPU types.  It is in
1248caade7ccSmrg# some cases the only manufacturer, in others, it is the most popular.
1249caade7ccSmrg	w89k)
1250caade7ccSmrg		basic_machine=hppa1.1-winbond
1251caade7ccSmrg		;;
1252caade7ccSmrg	op50n)
1253caade7ccSmrg		basic_machine=hppa1.1-oki
1254caade7ccSmrg		;;
1255caade7ccSmrg	op60c)
1256caade7ccSmrg		basic_machine=hppa1.1-oki
1257caade7ccSmrg		;;
1258caade7ccSmrg	romp)
1259caade7ccSmrg		basic_machine=romp-ibm
1260caade7ccSmrg		;;
1261caade7ccSmrg	mmix)
1262caade7ccSmrg		basic_machine=mmix-knuth
1263caade7ccSmrg		;;
1264caade7ccSmrg	rs6000)
1265caade7ccSmrg		basic_machine=rs6000-ibm
1266caade7ccSmrg		;;
1267caade7ccSmrg	vax)
1268caade7ccSmrg		basic_machine=vax-dec
1269caade7ccSmrg		;;
1270caade7ccSmrg	pdp10)
1271caade7ccSmrg		# there are many clones, so DEC is not a safe bet
1272caade7ccSmrg		basic_machine=pdp10-unknown
1273caade7ccSmrg		;;
1274caade7ccSmrg	pdp11)
1275caade7ccSmrg		basic_machine=pdp11-dec
1276caade7ccSmrg		;;
1277caade7ccSmrg	we32k)
1278caade7ccSmrg		basic_machine=we32k-att
1279caade7ccSmrg		;;
1280b9b4fd27Smrg	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1281caade7ccSmrg		basic_machine=sh-unknown
1282caade7ccSmrg		;;
1283485f0483Smrg	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1284caade7ccSmrg		basic_machine=sparc-sun
1285caade7ccSmrg		;;
1286caade7ccSmrg	cydra)
1287caade7ccSmrg		basic_machine=cydra-cydrome
1288caade7ccSmrg		;;
1289caade7ccSmrg	orion)
1290caade7ccSmrg		basic_machine=orion-highlevel
1291caade7ccSmrg		;;
1292caade7ccSmrg	orion105)
1293caade7ccSmrg		basic_machine=clipper-highlevel
1294caade7ccSmrg		;;
1295caade7ccSmrg	mac | mpw | mac-mpw)
1296caade7ccSmrg		basic_machine=m68k-apple
1297caade7ccSmrg		;;
1298caade7ccSmrg	pmac | pmac-mpw)
1299caade7ccSmrg		basic_machine=powerpc-apple
1300caade7ccSmrg		;;
1301caade7ccSmrg	*-unknown)
1302caade7ccSmrg		# Make sure to match an already-canonicalized machine name.
1303caade7ccSmrg		;;
1304caade7ccSmrg	*)
1305caade7ccSmrg		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1306caade7ccSmrg		exit 1
1307caade7ccSmrg		;;
1308caade7ccSmrgesac
1309caade7ccSmrg
1310caade7ccSmrg# Here we canonicalize certain aliases for manufacturers.
1311caade7ccSmrgcase $basic_machine in
1312caade7ccSmrg	*-digital*)
1313caade7ccSmrg		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1314caade7ccSmrg		;;
1315caade7ccSmrg	*-commodore*)
1316caade7ccSmrg		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1317caade7ccSmrg		;;
1318caade7ccSmrg	*)
1319caade7ccSmrg		;;
1320caade7ccSmrgesac
1321caade7ccSmrg
1322caade7ccSmrg# Decode manufacturer-specific aliases for certain operating systems.
1323caade7ccSmrg
1324caade7ccSmrgif [ x"$os" != x"" ]
1325caade7ccSmrgthen
1326caade7ccSmrgcase $os in
1327af9a7ee5Smrg	# First match some system type aliases
1328af9a7ee5Smrg	# that might get confused with valid system types.
1329caade7ccSmrg	# -solaris* is a basic system type, with this one exception.
1330af9a7ee5Smrg	-auroraux)
1331af9a7ee5Smrg		os=-auroraux
1332b9b4fd27Smrg		;;
1333caade7ccSmrg	-solaris1 | -solaris1.*)
1334caade7ccSmrg		os=`echo $os | sed -e 's|solaris1|sunos4|'`
1335caade7ccSmrg		;;
1336caade7ccSmrg	-solaris)
1337caade7ccSmrg		os=-solaris2
1338caade7ccSmrg		;;
1339caade7ccSmrg	-svr4*)
1340caade7ccSmrg		os=-sysv4
1341caade7ccSmrg		;;
1342caade7ccSmrg	-unixware*)
1343caade7ccSmrg		os=-sysv4.2uw
1344caade7ccSmrg		;;
1345caade7ccSmrg	-gnu/linux*)
1346caade7ccSmrg		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1347caade7ccSmrg		;;
1348caade7ccSmrg	# First accept the basic system types.
1349caade7ccSmrg	# The portable systems comes first.
1350caade7ccSmrg	# Each alternative MUST END IN A *, to match a version number.
1351caade7ccSmrg	# -sysv* is not here because it comes later, after sysvr4.
1352caade7ccSmrg	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1353b9b4fd27Smrg	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1354b9b4fd27Smrg	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1355af9a7ee5Smrg	      | -sym* | -kopensolaris* | -plan9* \
1356caade7ccSmrg	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1357b9b4fd27Smrg	      | -aos* | -aros* \
1358caade7ccSmrg	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1359caade7ccSmrg	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1360485f0483Smrg	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1361af9a7ee5Smrg	      | -bitrig* | -openbsd* | -solidbsd* \
1362caade7ccSmrg	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1363caade7ccSmrg	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1364caade7ccSmrg	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1365caade7ccSmrg	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1366b9b4fd27Smrg	      | -chorusos* | -chorusrdb* | -cegcc* \
1367af9a7ee5Smrg	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1368af9a7ee5Smrg	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1369af9a7ee5Smrg	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
1370caade7ccSmrg	      | -uxpv* | -beos* | -mpeix* | -udk* \
1371caade7ccSmrg	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1372caade7ccSmrg	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1373caade7ccSmrg	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1374caade7ccSmrg	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1375caade7ccSmrg	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1376caade7ccSmrg	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1377b9b4fd27Smrg	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1378caade7ccSmrg	# Remember, each alternative MUST END IN *, to match a version number.
1379caade7ccSmrg		;;
1380caade7ccSmrg	-qnx*)
1381caade7ccSmrg		case $basic_machine in
1382caade7ccSmrg		    x86-* | i*86-*)
1383caade7ccSmrg			;;
1384caade7ccSmrg		    *)
1385caade7ccSmrg			os=-nto$os
1386caade7ccSmrg			;;
1387caade7ccSmrg		esac
1388caade7ccSmrg		;;
1389caade7ccSmrg	-nto-qnx*)
1390caade7ccSmrg		;;
1391caade7ccSmrg	-nto*)
1392caade7ccSmrg		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1393caade7ccSmrg		;;
1394caade7ccSmrg	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1395caade7ccSmrg	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1396caade7ccSmrg	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1397caade7ccSmrg		;;
1398caade7ccSmrg	-mac*)
1399caade7ccSmrg		os=`echo $os | sed -e 's|mac|macos|'`
1400caade7ccSmrg		;;
1401caade7ccSmrg	-linux-dietlibc)
1402caade7ccSmrg		os=-linux-dietlibc
1403caade7ccSmrg		;;
1404caade7ccSmrg	-linux*)
1405caade7ccSmrg		os=`echo $os | sed -e 's|linux|linux-gnu|'`
1406caade7ccSmrg		;;
1407caade7ccSmrg	-sunos5*)
1408caade7ccSmrg		os=`echo $os | sed -e 's|sunos5|solaris2|'`
1409caade7ccSmrg		;;
1410caade7ccSmrg	-sunos6*)
1411caade7ccSmrg		os=`echo $os | sed -e 's|sunos6|solaris3|'`
1412caade7ccSmrg		;;
1413caade7ccSmrg	-opened*)
1414caade7ccSmrg		os=-openedition
1415caade7ccSmrg		;;
1416af9a7ee5Smrg	-os400*)
1417caade7ccSmrg		os=-os400
1418caade7ccSmrg		;;
1419caade7ccSmrg	-wince*)
1420caade7ccSmrg		os=-wince
1421caade7ccSmrg		;;
1422caade7ccSmrg	-osfrose*)
1423caade7ccSmrg		os=-osfrose
1424caade7ccSmrg		;;
1425caade7ccSmrg	-osf*)
1426caade7ccSmrg		os=-osf
1427caade7ccSmrg		;;
1428caade7ccSmrg	-utek*)
1429caade7ccSmrg		os=-bsd
1430caade7ccSmrg		;;
1431caade7ccSmrg	-dynix*)
1432caade7ccSmrg		os=-bsd
1433caade7ccSmrg		;;
1434caade7ccSmrg	-acis*)
1435caade7ccSmrg		os=-aos
1436caade7ccSmrg		;;
1437caade7ccSmrg	-atheos*)
1438caade7ccSmrg		os=-atheos
1439caade7ccSmrg		;;
1440caade7ccSmrg	-syllable*)
1441caade7ccSmrg		os=-syllable
1442caade7ccSmrg		;;
1443caade7ccSmrg	-386bsd)
1444caade7ccSmrg		os=-bsd
1445caade7ccSmrg		;;
1446caade7ccSmrg	-ctix* | -uts*)
1447caade7ccSmrg		os=-sysv
1448caade7ccSmrg		;;
1449caade7ccSmrg	-nova*)
1450caade7ccSmrg		os=-rtmk-nova
1451caade7ccSmrg		;;
1452caade7ccSmrg	-ns2 )
1453caade7ccSmrg		os=-nextstep2
1454caade7ccSmrg		;;
1455caade7ccSmrg	-nsk*)
1456caade7ccSmrg		os=-nsk
1457caade7ccSmrg		;;
1458caade7ccSmrg	# Preserve the version number of sinix5.
1459caade7ccSmrg	-sinix5.*)
1460caade7ccSmrg		os=`echo $os | sed -e 's|sinix|sysv|'`
1461caade7ccSmrg		;;
1462caade7ccSmrg	-sinix*)
1463caade7ccSmrg		os=-sysv4
1464caade7ccSmrg		;;
1465af9a7ee5Smrg	-tpf*)
1466caade7ccSmrg		os=-tpf
1467caade7ccSmrg		;;
1468caade7ccSmrg	-triton*)
1469caade7ccSmrg		os=-sysv3
1470caade7ccSmrg		;;
1471caade7ccSmrg	-oss*)
1472caade7ccSmrg		os=-sysv3
1473caade7ccSmrg		;;
1474caade7ccSmrg	-svr4)
1475caade7ccSmrg		os=-sysv4
1476caade7ccSmrg		;;
1477caade7ccSmrg	-svr3)
1478caade7ccSmrg		os=-sysv3
1479caade7ccSmrg		;;
1480caade7ccSmrg	-sysvr4)
1481caade7ccSmrg		os=-sysv4
1482caade7ccSmrg		;;
1483caade7ccSmrg	# This must come after -sysvr4.
1484caade7ccSmrg	-sysv*)
1485caade7ccSmrg		;;
1486caade7ccSmrg	-ose*)
1487caade7ccSmrg		os=-ose
1488caade7ccSmrg		;;
1489caade7ccSmrg	-es1800*)
1490caade7ccSmrg		os=-ose
1491caade7ccSmrg		;;
1492caade7ccSmrg	-xenix)
1493caade7ccSmrg		os=-xenix
1494caade7ccSmrg		;;
1495caade7ccSmrg	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1496caade7ccSmrg		os=-mint
1497caade7ccSmrg		;;
1498caade7ccSmrg	-aros*)
1499caade7ccSmrg		os=-aros
1500caade7ccSmrg		;;
1501caade7ccSmrg	-zvmoe)
1502caade7ccSmrg		os=-zvmoe
1503caade7ccSmrg		;;
1504b9b4fd27Smrg	-dicos*)
1505b9b4fd27Smrg		os=-dicos
1506b9b4fd27Smrg		;;
1507af9a7ee5Smrg	-nacl*)
1508af9a7ee5Smrg		;;
1509caade7ccSmrg	-none)
1510caade7ccSmrg		;;
1511caade7ccSmrg	*)
1512caade7ccSmrg		# Get rid of the `-' at the beginning of $os.
1513caade7ccSmrg		os=`echo $os | sed 's/[^-]*-//'`
1514caade7ccSmrg		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1515caade7ccSmrg		exit 1
1516caade7ccSmrg		;;
1517caade7ccSmrgesac
1518caade7ccSmrgelse
1519caade7ccSmrg
1520caade7ccSmrg# Here we handle the default operating systems that come with various machines.
1521caade7ccSmrg# The value should be what the vendor currently ships out the door with their
1522caade7ccSmrg# machine or put another way, the most popular os provided with the machine.
1523caade7ccSmrg
1524caade7ccSmrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
1525caade7ccSmrg# "-sun"), then you have to tell the case statement up towards the top
1526caade7ccSmrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
1527caade7ccSmrg# will signal an error saying that MANUFACTURER isn't an operating
1528caade7ccSmrg# system, and we'll never get to this point.
1529caade7ccSmrg
1530caade7ccSmrgcase $basic_machine in
1531af9a7ee5Smrg	score-*)
1532485f0483Smrg		os=-elf
1533485f0483Smrg		;;
1534af9a7ee5Smrg	spu-*)
1535485f0483Smrg		os=-elf
1536485f0483Smrg		;;
1537caade7ccSmrg	*-acorn)
1538caade7ccSmrg		os=-riscix1.2
1539caade7ccSmrg		;;
1540caade7ccSmrg	arm*-rebel)
1541caade7ccSmrg		os=-linux
1542caade7ccSmrg		;;
1543caade7ccSmrg	arm*-semi)
1544caade7ccSmrg		os=-aout
1545caade7ccSmrg		;;
1546af9a7ee5Smrg	c4x-* | tic4x-*)
1547af9a7ee5Smrg		os=-coff
1548af9a7ee5Smrg		;;
1549af9a7ee5Smrg	hexagon-*)
1550af9a7ee5Smrg		os=-elf
1551485f0483Smrg		;;
1552e8a5466aSmrg	tic54x-*)
1553e8a5466aSmrg		os=-coff
1554e8a5466aSmrg		;;
1555e8a5466aSmrg	tic55x-*)
1556e8a5466aSmrg		os=-coff
1557e8a5466aSmrg		;;
1558e8a5466aSmrg	tic6x-*)
1559e8a5466aSmrg		os=-coff
1560e8a5466aSmrg		;;
1561caade7ccSmrg	# This must come before the *-dec entry.
1562caade7ccSmrg	pdp10-*)
1563caade7ccSmrg		os=-tops20
1564caade7ccSmrg		;;
1565caade7ccSmrg	pdp11-*)
1566caade7ccSmrg		os=-none
1567caade7ccSmrg		;;
1568caade7ccSmrg	*-dec | vax-*)
1569caade7ccSmrg		os=-ultrix4.2
1570caade7ccSmrg		;;
1571caade7ccSmrg	m68*-apollo)
1572caade7ccSmrg		os=-domain
1573caade7ccSmrg		;;
1574caade7ccSmrg	i386-sun)
1575caade7ccSmrg		os=-sunos4.0.2
1576caade7ccSmrg		;;
1577caade7ccSmrg	m68000-sun)
1578caade7ccSmrg		os=-sunos3
1579caade7ccSmrg		;;
1580caade7ccSmrg	m68*-cisco)
1581caade7ccSmrg		os=-aout
1582caade7ccSmrg		;;
1583af9a7ee5Smrg	mep-*)
1584485f0483Smrg		os=-elf
1585485f0483Smrg		;;
1586caade7ccSmrg	mips*-cisco)
1587caade7ccSmrg		os=-elf
1588caade7ccSmrg		;;
1589caade7ccSmrg	mips*-*)
1590caade7ccSmrg		os=-elf
1591caade7ccSmrg		;;
1592af9a7ee5Smrg	or1k-*)
1593af9a7ee5Smrg		os=-elf
1594af9a7ee5Smrg		;;
1595caade7ccSmrg	or32-*)
1596caade7ccSmrg		os=-coff
1597caade7ccSmrg		;;
1598caade7ccSmrg	*-tti)	# must be before sparc entry or we get the wrong os.
1599caade7ccSmrg		os=-sysv3
1600caade7ccSmrg		;;
1601caade7ccSmrg	sparc-* | *-sun)
1602caade7ccSmrg		os=-sunos4.1.1
1603caade7ccSmrg		;;
1604caade7ccSmrg	*-be)
1605caade7ccSmrg		os=-beos
1606caade7ccSmrg		;;
1607caade7ccSmrg	*-haiku)
1608caade7ccSmrg		os=-haiku
1609caade7ccSmrg		;;
1610caade7ccSmrg	*-ibm)
1611caade7ccSmrg		os=-aix
1612caade7ccSmrg		;;
1613af9a7ee5Smrg	*-knuth)
1614caade7ccSmrg		os=-mmixware
1615caade7ccSmrg		;;
1616caade7ccSmrg	*-wec)
1617caade7ccSmrg		os=-proelf
1618caade7ccSmrg		;;
1619caade7ccSmrg	*-winbond)
1620caade7ccSmrg		os=-proelf
1621caade7ccSmrg		;;
1622caade7ccSmrg	*-oki)
1623caade7ccSmrg		os=-proelf
1624caade7ccSmrg		;;
1625caade7ccSmrg	*-hp)
1626caade7ccSmrg		os=-hpux
1627caade7ccSmrg		;;
1628caade7ccSmrg	*-hitachi)
1629caade7ccSmrg		os=-hiux
1630caade7ccSmrg		;;
1631caade7ccSmrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1632caade7ccSmrg		os=-sysv
1633caade7ccSmrg		;;
1634caade7ccSmrg	*-cbm)
1635caade7ccSmrg		os=-amigaos
1636caade7ccSmrg		;;
1637caade7ccSmrg	*-dg)
1638caade7ccSmrg		os=-dgux
1639caade7ccSmrg		;;
1640caade7ccSmrg	*-dolphin)
1641caade7ccSmrg		os=-sysv3
1642caade7ccSmrg		;;
1643caade7ccSmrg	m68k-ccur)
1644caade7ccSmrg		os=-rtu
1645caade7ccSmrg		;;
1646caade7ccSmrg	m88k-omron*)
1647caade7ccSmrg		os=-luna
1648caade7ccSmrg		;;
1649caade7ccSmrg	*-next )
1650caade7ccSmrg		os=-nextstep
1651caade7ccSmrg		;;
1652caade7ccSmrg	*-sequent)
1653caade7ccSmrg		os=-ptx
1654caade7ccSmrg		;;
1655caade7ccSmrg	*-crds)
1656caade7ccSmrg		os=-unos
1657caade7ccSmrg		;;
1658caade7ccSmrg	*-ns)
1659caade7ccSmrg		os=-genix
1660caade7ccSmrg		;;
1661caade7ccSmrg	i370-*)
1662caade7ccSmrg		os=-mvs
1663caade7ccSmrg		;;
1664caade7ccSmrg	*-next)
1665caade7ccSmrg		os=-nextstep3
1666caade7ccSmrg		;;
1667caade7ccSmrg	*-gould)
1668caade7ccSmrg		os=-sysv
1669caade7ccSmrg		;;
1670caade7ccSmrg	*-highlevel)
1671caade7ccSmrg		os=-bsd
1672caade7ccSmrg		;;
1673caade7ccSmrg	*-encore)
1674caade7ccSmrg		os=-bsd
1675caade7ccSmrg		;;
1676caade7ccSmrg	*-sgi)
1677caade7ccSmrg		os=-irix
1678caade7ccSmrg		;;
1679caade7ccSmrg	*-siemens)
1680caade7ccSmrg		os=-sysv4
1681caade7ccSmrg		;;
1682caade7ccSmrg	*-masscomp)
1683caade7ccSmrg		os=-rtu
1684caade7ccSmrg		;;
1685caade7ccSmrg	f30[01]-fujitsu | f700-fujitsu)
1686caade7ccSmrg		os=-uxpv
1687caade7ccSmrg		;;
1688caade7ccSmrg	*-rom68k)
1689caade7ccSmrg		os=-coff
1690caade7ccSmrg		;;
1691caade7ccSmrg	*-*bug)
1692caade7ccSmrg		os=-coff
1693caade7ccSmrg		;;
1694caade7ccSmrg	*-apple)
1695caade7ccSmrg		os=-macos
1696caade7ccSmrg		;;
1697caade7ccSmrg	*-atari*)
1698caade7ccSmrg		os=-mint
1699caade7ccSmrg		;;
1700caade7ccSmrg	*)
1701caade7ccSmrg		os=-none
1702caade7ccSmrg		;;
1703caade7ccSmrgesac
1704caade7ccSmrgfi
1705caade7ccSmrg
1706caade7ccSmrg# Here we handle the case where we know the os, and the CPU type, but not the
1707caade7ccSmrg# manufacturer.  We pick the logical manufacturer.
1708caade7ccSmrgvendor=unknown
1709caade7ccSmrgcase $basic_machine in
1710caade7ccSmrg	*-unknown)
1711caade7ccSmrg		case $os in
1712caade7ccSmrg			-riscix*)
1713caade7ccSmrg				vendor=acorn
1714caade7ccSmrg				;;
1715caade7ccSmrg			-sunos*)
1716caade7ccSmrg				vendor=sun
1717caade7ccSmrg				;;
1718b9b4fd27Smrg			-cnk*|-aix*)
1719caade7ccSmrg				vendor=ibm
1720caade7ccSmrg				;;
1721caade7ccSmrg			-beos*)
1722caade7ccSmrg				vendor=be
1723caade7ccSmrg				;;
1724caade7ccSmrg			-hpux*)
1725caade7ccSmrg				vendor=hp
1726caade7ccSmrg				;;
1727caade7ccSmrg			-mpeix*)
1728caade7ccSmrg				vendor=hp
1729caade7ccSmrg				;;
1730caade7ccSmrg			-hiux*)
1731caade7ccSmrg				vendor=hitachi
1732caade7ccSmrg				;;
1733caade7ccSmrg			-unos*)
1734caade7ccSmrg				vendor=crds
1735caade7ccSmrg				;;
1736caade7ccSmrg			-dgux*)
1737caade7ccSmrg				vendor=dg
1738caade7ccSmrg				;;
1739caade7ccSmrg			-luna*)
1740caade7ccSmrg				vendor=omron
1741caade7ccSmrg				;;
1742caade7ccSmrg			-genix*)
1743caade7ccSmrg				vendor=ns
1744caade7ccSmrg				;;
1745caade7ccSmrg			-mvs* | -opened*)
1746caade7ccSmrg				vendor=ibm
1747caade7ccSmrg				;;
1748caade7ccSmrg			-os400*)
1749caade7ccSmrg				vendor=ibm
1750caade7ccSmrg				;;
1751caade7ccSmrg			-ptx*)
1752caade7ccSmrg				vendor=sequent
1753caade7ccSmrg				;;
1754caade7ccSmrg			-tpf*)
1755caade7ccSmrg				vendor=ibm
1756caade7ccSmrg				;;
1757caade7ccSmrg			-vxsim* | -vxworks* | -windiss*)
1758caade7ccSmrg				vendor=wrs
1759caade7ccSmrg				;;
1760caade7ccSmrg			-aux*)
1761caade7ccSmrg				vendor=apple
1762caade7ccSmrg				;;
1763caade7ccSmrg			-hms*)
1764caade7ccSmrg				vendor=hitachi
1765caade7ccSmrg				;;
1766caade7ccSmrg			-mpw* | -macos*)
1767caade7ccSmrg				vendor=apple
1768caade7ccSmrg				;;
1769caade7ccSmrg			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1770caade7ccSmrg				vendor=atari
1771caade7ccSmrg				;;
1772caade7ccSmrg			-vos*)
1773caade7ccSmrg				vendor=stratus
1774caade7ccSmrg				;;
1775caade7ccSmrg		esac
1776caade7ccSmrg		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1777caade7ccSmrg		;;
1778caade7ccSmrgesac
1779caade7ccSmrg
1780caade7ccSmrgecho $basic_machine$os
1781caade7ccSmrgexit
1782caade7ccSmrg
1783caade7ccSmrg# Local variables:
1784caade7ccSmrg# eval: (add-hook 'write-file-hooks 'time-stamp)
1785caade7ccSmrg# time-stamp-start: "timestamp='"
1786caade7ccSmrg# time-stamp-format: "%:y-%02m-%02d"
1787caade7ccSmrg# time-stamp-end: "'"
1788caade7ccSmrg# End:
1789