1876ff6feSmrg#! /bin/sh
2876ff6feSmrg# Configuration validation subroutine script.
3d41660beSmrg#   Copyright 1992-2017 Free Software Foundation, Inc.
4876ff6feSmrg
5d41660beSmrgtimestamp='2017-01-01'
6876ff6feSmrg
7d41660beSmrg# This file is free software; you can redistribute it and/or modify it
8d41660beSmrg# under the terms of the GNU General Public License as published by
9d41660beSmrg# the Free Software Foundation; either version 3 of the License, or
10876ff6feSmrg# (at your option) any later version.
11876ff6feSmrg#
12d41660beSmrg# This program is distributed in the hope that it will be useful, but
13d41660beSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of
14d41660beSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15d41660beSmrg# General Public License for more details.
16876ff6feSmrg#
17876ff6feSmrg# You should have received a copy of the GNU General Public License
18d41660beSmrg# along with this program; if not, see <http://www.gnu.org/licenses/>.
19876ff6feSmrg#
20876ff6feSmrg# As a special exception to the GNU General Public License, if you
21876ff6feSmrg# distribute this file as part of a program that contains a
22876ff6feSmrg# configuration script generated by Autoconf, you may include it under
23d41660beSmrg# the same distribution terms that you use for the rest of that
24d41660beSmrg# program.  This Exception is an additional permission under section 7
25d41660beSmrg# of the GNU General Public License, version 3 ("GPLv3").
26876ff6feSmrg
27876ff6feSmrg
28d41660beSmrg# Please send patches to <config-patches@gnu.org>.
29876ff6feSmrg#
30876ff6feSmrg# Configuration subroutine to validate and canonicalize a configuration type.
31876ff6feSmrg# Supply the specified configuration type as an argument.
32876ff6feSmrg# If it is invalid, we print an error message on stderr and exit with code 1.
33876ff6feSmrg# Otherwise, we print the canonical config type on stdout and succeed.
34876ff6feSmrg
35d41660beSmrg# You can get the latest version of this script from:
36d41660beSmrg# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
37d41660beSmrg
38876ff6feSmrg# This file is supposed to be the same for all GNU packages
39876ff6feSmrg# and recognize all the CPU types, system types and aliases
40876ff6feSmrg# that are meaningful with *any* GNU software.
41876ff6feSmrg# Each package is responsible for reporting which valid configurations
42876ff6feSmrg# it does not support.  The user should be able to distinguish
43876ff6feSmrg# a failure to support a valid configuration from a meaningless
44876ff6feSmrg# configuration.
45876ff6feSmrg
46876ff6feSmrg# The goal of this file is to map all the various variations of a given
47876ff6feSmrg# machine specification into a single specification in the form:
48876ff6feSmrg#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
49876ff6feSmrg# or in some cases, the newer four-part form:
50876ff6feSmrg#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
51876ff6feSmrg# It is wrong to echo any other type of specification.
52876ff6feSmrg
53876ff6feSmrgme=`echo "$0" | sed -e 's,.*/,,'`
54876ff6feSmrg
55876ff6feSmrgusage="\
56d41660beSmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
57876ff6feSmrg
58876ff6feSmrgCanonicalize a configuration name.
59876ff6feSmrg
60876ff6feSmrgOperation modes:
61876ff6feSmrg  -h, --help         print this help, then exit
62876ff6feSmrg  -t, --time-stamp   print date of last modification, then exit
63876ff6feSmrg  -v, --version      print version number, then exit
64876ff6feSmrg
65876ff6feSmrgReport bugs and patches to <config-patches@gnu.org>."
66876ff6feSmrg
67876ff6feSmrgversion="\
68876ff6feSmrgGNU config.sub ($timestamp)
69876ff6feSmrg
70d41660beSmrgCopyright 1992-2017 Free Software Foundation, Inc.
71876ff6feSmrg
72876ff6feSmrgThis is free software; see the source for copying conditions.  There is NO
73876ff6feSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
74876ff6feSmrg
75876ff6feSmrghelp="
76876ff6feSmrgTry \`$me --help' for more information."
77876ff6feSmrg
78876ff6feSmrg# Parse command line
79876ff6feSmrgwhile test $# -gt 0 ; do
80876ff6feSmrg  case $1 in
81876ff6feSmrg    --time-stamp | --time* | -t )
82876ff6feSmrg       echo "$timestamp" ; exit ;;
83876ff6feSmrg    --version | -v )
84876ff6feSmrg       echo "$version" ; exit ;;
85876ff6feSmrg    --help | --h* | -h )
86876ff6feSmrg       echo "$usage"; exit ;;
87876ff6feSmrg    -- )     # Stop option processing
88876ff6feSmrg       shift; break ;;
89876ff6feSmrg    - )	# Use stdin as input.
90876ff6feSmrg       break ;;
91876ff6feSmrg    -* )
92876ff6feSmrg       echo "$me: invalid option $1$help"
93876ff6feSmrg       exit 1 ;;
94876ff6feSmrg
95876ff6feSmrg    *local*)
96876ff6feSmrg       # First pass through any local machine types.
97876ff6feSmrg       echo $1
98876ff6feSmrg       exit ;;
99876ff6feSmrg
100876ff6feSmrg    * )
101876ff6feSmrg       break ;;
102876ff6feSmrg  esac
103876ff6feSmrgdone
104876ff6feSmrg
105876ff6feSmrgcase $# in
106876ff6feSmrg 0) echo "$me: missing argument$help" >&2
107876ff6feSmrg    exit 1;;
108876ff6feSmrg 1) ;;
109876ff6feSmrg *) echo "$me: too many arguments$help" >&2
110876ff6feSmrg    exit 1;;
111876ff6feSmrgesac
112876ff6feSmrg
113876ff6feSmrg# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
114876ff6feSmrg# Here we must recognize all the valid KERNEL-OS combinations.
115876ff6feSmrgmaybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
116876ff6feSmrgcase $maybe_os in
117d41660beSmrg  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
118d41660beSmrg  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
119d41660beSmrg  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
120d41660beSmrg  kopensolaris*-gnu* | cloudabi*-eabi* | \
121d41660beSmrg  storm-chaos* | os2-emx* | rtmk-nova*)
122876ff6feSmrg    os=-$maybe_os
123876ff6feSmrg    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
124876ff6feSmrg    ;;
125d41660beSmrg  android-linux)
126d41660beSmrg    os=-linux-android
127d41660beSmrg    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
128d41660beSmrg    ;;
129876ff6feSmrg  *)
130876ff6feSmrg    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
131876ff6feSmrg    if [ $basic_machine != $1 ]
132876ff6feSmrg    then os=`echo $1 | sed 's/.*-/-/'`
133876ff6feSmrg    else os=; fi
134876ff6feSmrg    ;;
135876ff6feSmrgesac
136876ff6feSmrg
137876ff6feSmrg### Let's recognize common machines as not being operating systems so
138876ff6feSmrg### that things like config.sub decstation-3100 work.  We also
139876ff6feSmrg### recognize some manufacturers as not being operating systems, so we
140876ff6feSmrg### can provide default operating systems below.
141876ff6feSmrgcase $os in
142876ff6feSmrg	-sun*os*)
143876ff6feSmrg		# Prevent following clause from handling this invalid input.
144876ff6feSmrg		;;
145876ff6feSmrg	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
146876ff6feSmrg	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
147876ff6feSmrg	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
148876ff6feSmrg	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
149876ff6feSmrg	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
150876ff6feSmrg	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
151d41660beSmrg	-apple | -axis | -knuth | -cray | -microblaze*)
152876ff6feSmrg		os=
153876ff6feSmrg		basic_machine=$1
154876ff6feSmrg		;;
155d41660beSmrg	-bluegene*)
156d41660beSmrg		os=-cnk
157d41660beSmrg		;;
158876ff6feSmrg	-sim | -cisco | -oki | -wec | -winbond)
159876ff6feSmrg		os=
160876ff6feSmrg		basic_machine=$1
161876ff6feSmrg		;;
162876ff6feSmrg	-scout)
163876ff6feSmrg		;;
164876ff6feSmrg	-wrs)
165876ff6feSmrg		os=-vxworks
166876ff6feSmrg		basic_machine=$1
167876ff6feSmrg		;;
168876ff6feSmrg	-chorusos*)
169876ff6feSmrg		os=-chorusos
170876ff6feSmrg		basic_machine=$1
171876ff6feSmrg		;;
172d41660beSmrg	-chorusrdb)
173d41660beSmrg		os=-chorusrdb
174876ff6feSmrg		basic_machine=$1
175d41660beSmrg		;;
176876ff6feSmrg	-hiux*)
177876ff6feSmrg		os=-hiuxwe2
178876ff6feSmrg		;;
179d41660beSmrg	-sco6)
180d41660beSmrg		os=-sco5v6
181d41660beSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
182d41660beSmrg		;;
183876ff6feSmrg	-sco5)
184876ff6feSmrg		os=-sco3.2v5
185876ff6feSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
186876ff6feSmrg		;;
187876ff6feSmrg	-sco4)
188876ff6feSmrg		os=-sco3.2v4
189876ff6feSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
190876ff6feSmrg		;;
191876ff6feSmrg	-sco3.2.[4-9]*)
192876ff6feSmrg		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
193876ff6feSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
194876ff6feSmrg		;;
195876ff6feSmrg	-sco3.2v[4-9]*)
196876ff6feSmrg		# Don't forget version if it is 3.2v4 or newer.
197876ff6feSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
198876ff6feSmrg		;;
199d41660beSmrg	-sco5v6*)
200d41660beSmrg		# Don't forget version if it is 3.2v4 or newer.
201d41660beSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
202d41660beSmrg		;;
203876ff6feSmrg	-sco*)
204876ff6feSmrg		os=-sco3.2v2
205876ff6feSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
206876ff6feSmrg		;;
207876ff6feSmrg	-udk*)
208876ff6feSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
209876ff6feSmrg		;;
210876ff6feSmrg	-isc)
211876ff6feSmrg		os=-isc2.2
212876ff6feSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
213876ff6feSmrg		;;
214876ff6feSmrg	-clix*)
215876ff6feSmrg		basic_machine=clipper-intergraph
216876ff6feSmrg		;;
217876ff6feSmrg	-isc*)
218876ff6feSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
219876ff6feSmrg		;;
220d41660beSmrg	-lynx*178)
221d41660beSmrg		os=-lynxos178
222d41660beSmrg		;;
223d41660beSmrg	-lynx*5)
224d41660beSmrg		os=-lynxos5
225d41660beSmrg		;;
226876ff6feSmrg	-lynx*)
227876ff6feSmrg		os=-lynxos
228876ff6feSmrg		;;
229876ff6feSmrg	-ptx*)
230876ff6feSmrg		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
231876ff6feSmrg		;;
232876ff6feSmrg	-windowsnt*)
233876ff6feSmrg		os=`echo $os | sed -e 's/windowsnt/winnt/'`
234876ff6feSmrg		;;
235876ff6feSmrg	-psos*)
236876ff6feSmrg		os=-psos
237876ff6feSmrg		;;
238876ff6feSmrg	-mint | -mint[0-9]*)
239876ff6feSmrg		basic_machine=m68k-atari
240876ff6feSmrg		os=-mint
241876ff6feSmrg		;;
242876ff6feSmrgesac
243876ff6feSmrg
244876ff6feSmrg# Decode aliases for certain CPU-COMPANY combinations.
245876ff6feSmrgcase $basic_machine in
246876ff6feSmrg	# Recognize the basic CPU types without company name.
247876ff6feSmrg	# Some are omitted here because they have special meanings below.
248876ff6feSmrg	1750a | 580 \
249876ff6feSmrg	| a29k \
250d41660beSmrg	| aarch64 | aarch64_be \
251876ff6feSmrg	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
252876ff6feSmrg	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
253876ff6feSmrg	| am33_2.0 \
254d41660beSmrg	| arc | arceb \
255d41660beSmrg	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
256d41660beSmrg	| avr | avr32 \
257d41660beSmrg	| ba \
258d41660beSmrg	| be32 | be64 \
259876ff6feSmrg	| bfin \
260d41660beSmrg	| c4x | c8051 | clipper \
261d41660beSmrg	| d10v | d30v | dlx | dsp16xx | dvp \
262d41660beSmrg	| e2k | epiphany \
263d41660beSmrg	| fido | fr30 | frv | ft32 \
264876ff6feSmrg	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
265d41660beSmrg	| hexagon \
266876ff6feSmrg	| i370 | i860 | i960 | ia64 \
267876ff6feSmrg	| ip2k | iq2000 \
268d41660beSmrg	| k1om \
269d41660beSmrg	| le32 | le64 \
270d41660beSmrg	| lm32 \
271d41660beSmrg	| m32c | m32r | m32rle | m68000 | m68k | m88k \
272d41660beSmrg	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
273876ff6feSmrg	| mips | mipsbe | mipseb | mipsel | mipsle \
274876ff6feSmrg	| mips16 \
275876ff6feSmrg	| mips64 | mips64el \
276d41660beSmrg	| mips64octeon | mips64octeonel \
277876ff6feSmrg	| mips64orion | mips64orionel \
278d41660beSmrg	| mips64r5900 | mips64r5900el \
279d41660beSmrg	| mips64vr | mips64vrel \
280876ff6feSmrg	| mips64vr4100 | mips64vr4100el \
281876ff6feSmrg	| mips64vr4300 | mips64vr4300el \
282876ff6feSmrg	| mips64vr5000 | mips64vr5000el \
283876ff6feSmrg	| mips64vr5900 | mips64vr5900el \
284876ff6feSmrg	| mipsisa32 | mipsisa32el \
285876ff6feSmrg	| mipsisa32r2 | mipsisa32r2el \
286d41660beSmrg	| mipsisa32r6 | mipsisa32r6el \
287876ff6feSmrg	| mipsisa64 | mipsisa64el \
288876ff6feSmrg	| mipsisa64r2 | mipsisa64r2el \
289d41660beSmrg	| mipsisa64r6 | mipsisa64r6el \
290876ff6feSmrg	| mipsisa64sb1 | mipsisa64sb1el \
291876ff6feSmrg	| mipsisa64sr71k | mipsisa64sr71kel \
292d41660beSmrg	| mipsr5900 | mipsr5900el \
293876ff6feSmrg	| mipstx39 | mipstx39el \
294876ff6feSmrg	| mn10200 | mn10300 \
295d41660beSmrg	| moxie \
296d41660beSmrg	| mt \
297876ff6feSmrg	| msp430 \
298d41660beSmrg	| nds32 | nds32le | nds32be \
299d41660beSmrg	| nios | nios2 | nios2eb | nios2el \
300876ff6feSmrg	| ns16k | ns32k \
301d41660beSmrg	| open8 | or1k | or1knd | or32 \
302876ff6feSmrg	| pdp10 | pdp11 | pj | pjl \
303d41660beSmrg	| powerpc | powerpc64 | powerpc64le | powerpcle \
304d41660beSmrg	| pru \
305876ff6feSmrg	| pyramid \
306d41660beSmrg	| riscv32 | riscv64 \
307d41660beSmrg	| rl78 | rx \
308d41660beSmrg	| score \
309d41660beSmrg	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
310876ff6feSmrg	| sh64 | sh64le \
311d41660beSmrg	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
312d41660beSmrg	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
313d41660beSmrg	| spu \
314d41660beSmrg	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
315d41660beSmrg	| ubicom32 \
316d41660beSmrg	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
317d41660beSmrg	| visium \
318876ff6feSmrg	| we32k \
319d41660beSmrg	| x86 | xc16x | xstormy16 | xtensa \
320d41660beSmrg	| z8k | z80)
321876ff6feSmrg		basic_machine=$basic_machine-unknown
322876ff6feSmrg		;;
323d41660beSmrg	c54x)
324d41660beSmrg		basic_machine=tic54x-unknown
325876ff6feSmrg		;;
326d41660beSmrg	c55x)
327d41660beSmrg		basic_machine=tic55x-unknown
328d41660beSmrg		;;
329d41660beSmrg	c6x)
330d41660beSmrg		basic_machine=tic6x-unknown
331d41660beSmrg		;;
332d41660beSmrg	leon|leon[3-9])
333d41660beSmrg		basic_machine=sparc-$basic_machine
334d41660beSmrg		;;
335d41660beSmrg	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
336876ff6feSmrg		basic_machine=$basic_machine-unknown
337876ff6feSmrg		os=-none
338876ff6feSmrg		;;
339876ff6feSmrg	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
340876ff6feSmrg		;;
341d41660beSmrg	ms1)
342d41660beSmrg		basic_machine=mt-unknown
343d41660beSmrg		;;
344d41660beSmrg
345d41660beSmrg	strongarm | thumb | xscale)
346d41660beSmrg		basic_machine=arm-unknown
347d41660beSmrg		;;
348d41660beSmrg	xgate)
349d41660beSmrg		basic_machine=$basic_machine-unknown
350d41660beSmrg		os=-none
351d41660beSmrg		;;
352d41660beSmrg	xscaleeb)
353d41660beSmrg		basic_machine=armeb-unknown
354d41660beSmrg		;;
355d41660beSmrg
356d41660beSmrg	xscaleel)
357d41660beSmrg		basic_machine=armel-unknown
358d41660beSmrg		;;
359876ff6feSmrg
360876ff6feSmrg	# We use `pc' rather than `unknown'
361876ff6feSmrg	# because (1) that's what they normally are, and
362876ff6feSmrg	# (2) the word "unknown" tends to confuse beginning users.
363876ff6feSmrg	i*86 | x86_64)
364876ff6feSmrg	  basic_machine=$basic_machine-pc
365876ff6feSmrg	  ;;
366876ff6feSmrg	# Object if more than one company name word.
367876ff6feSmrg	*-*-*)
368876ff6feSmrg		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
369876ff6feSmrg		exit 1
370876ff6feSmrg		;;
371876ff6feSmrg	# Recognize the basic CPU types with company name.
372876ff6feSmrg	580-* \
373876ff6feSmrg	| a29k-* \
374d41660beSmrg	| aarch64-* | aarch64_be-* \
375876ff6feSmrg	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
376876ff6feSmrg	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
377d41660beSmrg	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
378876ff6feSmrg	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
379d41660beSmrg	| avr-* | avr32-* \
380d41660beSmrg	| ba-* \
381d41660beSmrg	| be32-* | be64-* \
382876ff6feSmrg	| bfin-* | bs2000-* \
383d41660beSmrg	| c[123]* | c30-* | [cjt]90-* | c4x-* \
384d41660beSmrg	| c8051-* | clipper-* | craynv-* | cydra-* \
385876ff6feSmrg	| d10v-* | d30v-* | dlx-* \
386d41660beSmrg	| e2k-* | elxsi-* \
387d41660beSmrg	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
388876ff6feSmrg	| h8300-* | h8500-* \
389876ff6feSmrg	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
390d41660beSmrg	| hexagon-* \
391876ff6feSmrg	| i*86-* | i860-* | i960-* | ia64-* \
392876ff6feSmrg	| ip2k-* | iq2000-* \
393d41660beSmrg	| k1om-* \
394d41660beSmrg	| le32-* | le64-* \
395d41660beSmrg	| lm32-* \
396d41660beSmrg	| m32c-* | m32r-* | m32rle-* \
397876ff6feSmrg	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
398d41660beSmrg	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
399d41660beSmrg	| microblaze-* | microblazeel-* \
400876ff6feSmrg	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
401876ff6feSmrg	| mips16-* \
402876ff6feSmrg	| mips64-* | mips64el-* \
403d41660beSmrg	| mips64octeon-* | mips64octeonel-* \
404876ff6feSmrg	| mips64orion-* | mips64orionel-* \
405d41660beSmrg	| mips64r5900-* | mips64r5900el-* \
406d41660beSmrg	| mips64vr-* | mips64vrel-* \
407876ff6feSmrg	| mips64vr4100-* | mips64vr4100el-* \
408876ff6feSmrg	| mips64vr4300-* | mips64vr4300el-* \
409876ff6feSmrg	| mips64vr5000-* | mips64vr5000el-* \
410876ff6feSmrg	| mips64vr5900-* | mips64vr5900el-* \
411876ff6feSmrg	| mipsisa32-* | mipsisa32el-* \
412876ff6feSmrg	| mipsisa32r2-* | mipsisa32r2el-* \
413d41660beSmrg	| mipsisa32r6-* | mipsisa32r6el-* \
414876ff6feSmrg	| mipsisa64-* | mipsisa64el-* \
415876ff6feSmrg	| mipsisa64r2-* | mipsisa64r2el-* \
416d41660beSmrg	| mipsisa64r6-* | mipsisa64r6el-* \
417876ff6feSmrg	| mipsisa64sb1-* | mipsisa64sb1el-* \
418876ff6feSmrg	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
419d41660beSmrg	| mipsr5900-* | mipsr5900el-* \
420876ff6feSmrg	| mipstx39-* | mipstx39el-* \
421876ff6feSmrg	| mmix-* \
422d41660beSmrg	| mt-* \
423876ff6feSmrg	| msp430-* \
424d41660beSmrg	| nds32-* | nds32le-* | nds32be-* \
425d41660beSmrg	| nios-* | nios2-* | nios2eb-* | nios2el-* \
426876ff6feSmrg	| none-* | np1-* | ns16k-* | ns32k-* \
427d41660beSmrg	| open8-* \
428d41660beSmrg	| or1k*-* \
429876ff6feSmrg	| orion-* \
430876ff6feSmrg	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
431d41660beSmrg	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
432d41660beSmrg	| pru-* \
433876ff6feSmrg	| pyramid-* \
434d41660beSmrg	| riscv32-* | riscv64-* \
435d41660beSmrg	| rl78-* | romp-* | rs6000-* | rx-* \
436d41660beSmrg	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
437876ff6feSmrg	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
438d41660beSmrg	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
439876ff6feSmrg	| sparclite-* \
440d41660beSmrg	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
441d41660beSmrg	| tahoe-* \
442876ff6feSmrg	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
443d41660beSmrg	| tile*-* \
444876ff6feSmrg	| tron-* \
445d41660beSmrg	| ubicom32-* \
446d41660beSmrg	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
447d41660beSmrg	| vax-* \
448d41660beSmrg	| visium-* \
449876ff6feSmrg	| we32k-* \
450d41660beSmrg	| x86-* | x86_64-* | xc16x-* | xps100-* \
451d41660beSmrg	| xstormy16-* | xtensa*-* \
452876ff6feSmrg	| ymp-* \
453d41660beSmrg	| z8k-* | z80-*)
454876ff6feSmrg		;;
455d41660beSmrg	# Recognize the basic CPU types without company name, with glob match.
456d41660beSmrg	xtensa*)
457d41660beSmrg		basic_machine=$basic_machine-unknown
458876ff6feSmrg		;;
459876ff6feSmrg	# Recognize the various machine names and aliases which stand
460876ff6feSmrg	# for a CPU type and a company and sometimes even an OS.
461876ff6feSmrg	386bsd)
462876ff6feSmrg		basic_machine=i386-unknown
463876ff6feSmrg		os=-bsd
464876ff6feSmrg		;;
465876ff6feSmrg	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
466876ff6feSmrg		basic_machine=m68000-att
467876ff6feSmrg		;;
468876ff6feSmrg	3b*)
469876ff6feSmrg		basic_machine=we32k-att
470876ff6feSmrg		;;
471876ff6feSmrg	a29khif)
472876ff6feSmrg		basic_machine=a29k-amd
473876ff6feSmrg		os=-udi
474876ff6feSmrg		;;
475d41660beSmrg	abacus)
476876ff6feSmrg		basic_machine=abacus-unknown
477876ff6feSmrg		;;
478876ff6feSmrg	adobe68k)
479876ff6feSmrg		basic_machine=m68010-adobe
480876ff6feSmrg		os=-scout
481876ff6feSmrg		;;
482876ff6feSmrg	alliant | fx80)
483876ff6feSmrg		basic_machine=fx80-alliant
484876ff6feSmrg		;;
485876ff6feSmrg	altos | altos3068)
486876ff6feSmrg		basic_machine=m68k-altos
487876ff6feSmrg		;;
488876ff6feSmrg	am29k)
489876ff6feSmrg		basic_machine=a29k-none
490876ff6feSmrg		os=-bsd
491876ff6feSmrg		;;
492876ff6feSmrg	amd64)
493876ff6feSmrg		basic_machine=x86_64-pc
494876ff6feSmrg		;;
495876ff6feSmrg	amd64-*)
496876ff6feSmrg		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
497876ff6feSmrg		;;
498876ff6feSmrg	amdahl)
499876ff6feSmrg		basic_machine=580-amdahl
500876ff6feSmrg		os=-sysv
501876ff6feSmrg		;;
502876ff6feSmrg	amiga | amiga-*)
503876ff6feSmrg		basic_machine=m68k-unknown
504876ff6feSmrg		;;
505876ff6feSmrg	amigaos | amigados)
506876ff6feSmrg		basic_machine=m68k-unknown
507876ff6feSmrg		os=-amigaos
508876ff6feSmrg		;;
509876ff6feSmrg	amigaunix | amix)
510876ff6feSmrg		basic_machine=m68k-unknown
511876ff6feSmrg		os=-sysv4
512876ff6feSmrg		;;
513876ff6feSmrg	apollo68)
514876ff6feSmrg		basic_machine=m68k-apollo
515876ff6feSmrg		os=-sysv
516876ff6feSmrg		;;
517876ff6feSmrg	apollo68bsd)
518876ff6feSmrg		basic_machine=m68k-apollo
519876ff6feSmrg		os=-bsd
520876ff6feSmrg		;;
521d41660beSmrg	aros)
522d41660beSmrg		basic_machine=i386-pc
523d41660beSmrg		os=-aros
524d41660beSmrg		;;
525d41660beSmrg	asmjs)
526d41660beSmrg		basic_machine=asmjs-unknown
527d41660beSmrg		;;
528876ff6feSmrg	aux)
529876ff6feSmrg		basic_machine=m68k-apple
530876ff6feSmrg		os=-aux
531876ff6feSmrg		;;
532876ff6feSmrg	balance)
533876ff6feSmrg		basic_machine=ns32k-sequent
534876ff6feSmrg		os=-dynix
535876ff6feSmrg		;;
536d41660beSmrg	blackfin)
537d41660beSmrg		basic_machine=bfin-unknown
538d41660beSmrg		os=-linux
539d41660beSmrg		;;
540d41660beSmrg	blackfin-*)
541d41660beSmrg		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
542d41660beSmrg		os=-linux
543d41660beSmrg		;;
544d41660beSmrg	bluegene*)
545d41660beSmrg		basic_machine=powerpc-ibm
546d41660beSmrg		os=-cnk
547d41660beSmrg		;;
548d41660beSmrg	c54x-*)
549d41660beSmrg		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
550d41660beSmrg		;;
551d41660beSmrg	c55x-*)
552d41660beSmrg		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
553d41660beSmrg		;;
554d41660beSmrg	c6x-*)
555d41660beSmrg		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
556d41660beSmrg		;;
557876ff6feSmrg	c90)
558876ff6feSmrg		basic_machine=c90-cray
559876ff6feSmrg		os=-unicos
560876ff6feSmrg		;;
561d41660beSmrg	cegcc)
562d41660beSmrg		basic_machine=arm-unknown
563d41660beSmrg		os=-cegcc
564d41660beSmrg		;;
565876ff6feSmrg	convex-c1)
566876ff6feSmrg		basic_machine=c1-convex
567876ff6feSmrg		os=-bsd
568876ff6feSmrg		;;
569876ff6feSmrg	convex-c2)
570876ff6feSmrg		basic_machine=c2-convex
571876ff6feSmrg		os=-bsd
572876ff6feSmrg		;;
573876ff6feSmrg	convex-c32)
574876ff6feSmrg		basic_machine=c32-convex
575876ff6feSmrg		os=-bsd
576876ff6feSmrg		;;
577876ff6feSmrg	convex-c34)
578876ff6feSmrg		basic_machine=c34-convex
579876ff6feSmrg		os=-bsd
580876ff6feSmrg		;;
581876ff6feSmrg	convex-c38)
582876ff6feSmrg		basic_machine=c38-convex
583876ff6feSmrg		os=-bsd
584876ff6feSmrg		;;
585876ff6feSmrg	cray | j90)
586876ff6feSmrg		basic_machine=j90-cray
587876ff6feSmrg		os=-unicos
588876ff6feSmrg		;;
589876ff6feSmrg	craynv)
590876ff6feSmrg		basic_machine=craynv-cray
591876ff6feSmrg		os=-unicosmp
592876ff6feSmrg		;;
593d41660beSmrg	cr16 | cr16-*)
594d41660beSmrg		basic_machine=cr16-unknown
595876ff6feSmrg		os=-elf
596876ff6feSmrg		;;
597876ff6feSmrg	crds | unos)
598876ff6feSmrg		basic_machine=m68k-crds
599876ff6feSmrg		;;
600876ff6feSmrg	crisv32 | crisv32-* | etraxfs*)
601876ff6feSmrg		basic_machine=crisv32-axis
602876ff6feSmrg		;;
603876ff6feSmrg	cris | cris-* | etrax*)
604876ff6feSmrg		basic_machine=cris-axis
605876ff6feSmrg		;;
606876ff6feSmrg	crx)
607876ff6feSmrg		basic_machine=crx-unknown
608876ff6feSmrg		os=-elf
609876ff6feSmrg		;;
610876ff6feSmrg	da30 | da30-*)
611876ff6feSmrg		basic_machine=m68k-da30
612876ff6feSmrg		;;
613876ff6feSmrg	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
614876ff6feSmrg		basic_machine=mips-dec
615876ff6feSmrg		;;
616876ff6feSmrg	decsystem10* | dec10*)
617876ff6feSmrg		basic_machine=pdp10-dec
618876ff6feSmrg		os=-tops10
619876ff6feSmrg		;;
620876ff6feSmrg	decsystem20* | dec20*)
621876ff6feSmrg		basic_machine=pdp10-dec
622876ff6feSmrg		os=-tops20
623876ff6feSmrg		;;
624876ff6feSmrg	delta | 3300 | motorola-3300 | motorola-delta \
625876ff6feSmrg	      | 3300-motorola | delta-motorola)
626876ff6feSmrg		basic_machine=m68k-motorola
627876ff6feSmrg		;;
628876ff6feSmrg	delta88)
629876ff6feSmrg		basic_machine=m88k-motorola
630876ff6feSmrg		os=-sysv3
631876ff6feSmrg		;;
632d41660beSmrg	dicos)
633d41660beSmrg		basic_machine=i686-pc
634d41660beSmrg		os=-dicos
635d41660beSmrg		;;
636876ff6feSmrg	djgpp)
637876ff6feSmrg		basic_machine=i586-pc
638876ff6feSmrg		os=-msdosdjgpp
639876ff6feSmrg		;;
640876ff6feSmrg	dpx20 | dpx20-*)
641876ff6feSmrg		basic_machine=rs6000-bull
642876ff6feSmrg		os=-bosx
643876ff6feSmrg		;;
644876ff6feSmrg	dpx2* | dpx2*-bull)
645876ff6feSmrg		basic_machine=m68k-bull
646876ff6feSmrg		os=-sysv3
647876ff6feSmrg		;;
648d41660beSmrg	e500v[12])
649d41660beSmrg		basic_machine=powerpc-unknown
650d41660beSmrg		os=$os"spe"
651d41660beSmrg		;;
652d41660beSmrg	e500v[12]-*)
653d41660beSmrg		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
654d41660beSmrg		os=$os"spe"
655d41660beSmrg		;;
656876ff6feSmrg	ebmon29k)
657876ff6feSmrg		basic_machine=a29k-amd
658876ff6feSmrg		os=-ebmon
659876ff6feSmrg		;;
660876ff6feSmrg	elxsi)
661876ff6feSmrg		basic_machine=elxsi-elxsi
662876ff6feSmrg		os=-bsd
663876ff6feSmrg		;;
664876ff6feSmrg	encore | umax | mmax)
665876ff6feSmrg		basic_machine=ns32k-encore
666876ff6feSmrg		;;
667876ff6feSmrg	es1800 | OSE68k | ose68k | ose | OSE)
668876ff6feSmrg		basic_machine=m68k-ericsson
669876ff6feSmrg		os=-ose
670876ff6feSmrg		;;
671876ff6feSmrg	fx2800)
672876ff6feSmrg		basic_machine=i860-alliant
673876ff6feSmrg		;;
674876ff6feSmrg	genix)
675876ff6feSmrg		basic_machine=ns32k-ns
676876ff6feSmrg		;;
677876ff6feSmrg	gmicro)
678876ff6feSmrg		basic_machine=tron-gmicro
679876ff6feSmrg		os=-sysv
680876ff6feSmrg		;;
681876ff6feSmrg	go32)
682876ff6feSmrg		basic_machine=i386-pc
683876ff6feSmrg		os=-go32
684876ff6feSmrg		;;
685876ff6feSmrg	h3050r* | hiux*)
686876ff6feSmrg		basic_machine=hppa1.1-hitachi
687876ff6feSmrg		os=-hiuxwe2
688876ff6feSmrg		;;
689876ff6feSmrg	h8300hms)
690876ff6feSmrg		basic_machine=h8300-hitachi
691876ff6feSmrg		os=-hms
692876ff6feSmrg		;;
693876ff6feSmrg	h8300xray)
694876ff6feSmrg		basic_machine=h8300-hitachi
695876ff6feSmrg		os=-xray
696876ff6feSmrg		;;
697876ff6feSmrg	h8500hms)
698876ff6feSmrg		basic_machine=h8500-hitachi
699876ff6feSmrg		os=-hms
700876ff6feSmrg		;;
701876ff6feSmrg	harris)
702876ff6feSmrg		basic_machine=m88k-harris
703876ff6feSmrg		os=-sysv3
704876ff6feSmrg		;;
705876ff6feSmrg	hp300-*)
706876ff6feSmrg		basic_machine=m68k-hp
707876ff6feSmrg		;;
708876ff6feSmrg	hp300bsd)
709876ff6feSmrg		basic_machine=m68k-hp
710876ff6feSmrg		os=-bsd
711876ff6feSmrg		;;
712876ff6feSmrg	hp300hpux)
713876ff6feSmrg		basic_machine=m68k-hp
714876ff6feSmrg		os=-hpux
715876ff6feSmrg		;;
716876ff6feSmrg	hp3k9[0-9][0-9] | hp9[0-9][0-9])
717876ff6feSmrg		basic_machine=hppa1.0-hp
718876ff6feSmrg		;;
719876ff6feSmrg	hp9k2[0-9][0-9] | hp9k31[0-9])
720876ff6feSmrg		basic_machine=m68000-hp
721876ff6feSmrg		;;
722876ff6feSmrg	hp9k3[2-9][0-9])
723876ff6feSmrg		basic_machine=m68k-hp
724876ff6feSmrg		;;
725876ff6feSmrg	hp9k6[0-9][0-9] | hp6[0-9][0-9])
726876ff6feSmrg		basic_machine=hppa1.0-hp
727876ff6feSmrg		;;
728876ff6feSmrg	hp9k7[0-79][0-9] | hp7[0-79][0-9])
729876ff6feSmrg		basic_machine=hppa1.1-hp
730876ff6feSmrg		;;
731876ff6feSmrg	hp9k78[0-9] | hp78[0-9])
732876ff6feSmrg		# FIXME: really hppa2.0-hp
733876ff6feSmrg		basic_machine=hppa1.1-hp
734876ff6feSmrg		;;
735876ff6feSmrg	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
736876ff6feSmrg		# FIXME: really hppa2.0-hp
737876ff6feSmrg		basic_machine=hppa1.1-hp
738876ff6feSmrg		;;
739876ff6feSmrg	hp9k8[0-9][13679] | hp8[0-9][13679])
740876ff6feSmrg		basic_machine=hppa1.1-hp
741876ff6feSmrg		;;
742876ff6feSmrg	hp9k8[0-9][0-9] | hp8[0-9][0-9])
743876ff6feSmrg		basic_machine=hppa1.0-hp
744876ff6feSmrg		;;
745876ff6feSmrg	hppa-next)
746876ff6feSmrg		os=-nextstep3
747876ff6feSmrg		;;
748876ff6feSmrg	hppaosf)
749876ff6feSmrg		basic_machine=hppa1.1-hp
750876ff6feSmrg		os=-osf
751876ff6feSmrg		;;
752876ff6feSmrg	hppro)
753876ff6feSmrg		basic_machine=hppa1.1-hp
754876ff6feSmrg		os=-proelf
755876ff6feSmrg		;;
756876ff6feSmrg	i370-ibm* | ibm*)
757876ff6feSmrg		basic_machine=i370-ibm
758876ff6feSmrg		;;
759876ff6feSmrg	i*86v32)
760876ff6feSmrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
761876ff6feSmrg		os=-sysv32
762876ff6feSmrg		;;
763876ff6feSmrg	i*86v4*)
764876ff6feSmrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
765876ff6feSmrg		os=-sysv4
766876ff6feSmrg		;;
767876ff6feSmrg	i*86v)
768876ff6feSmrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
769876ff6feSmrg		os=-sysv
770876ff6feSmrg		;;
771876ff6feSmrg	i*86sol2)
772876ff6feSmrg		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
773876ff6feSmrg		os=-solaris2
774876ff6feSmrg		;;
775876ff6feSmrg	i386mach)
776876ff6feSmrg		basic_machine=i386-mach
777876ff6feSmrg		os=-mach
778876ff6feSmrg		;;
779876ff6feSmrg	i386-vsta | vsta)
780876ff6feSmrg		basic_machine=i386-unknown
781876ff6feSmrg		os=-vsta
782876ff6feSmrg		;;
783876ff6feSmrg	iris | iris4d)
784876ff6feSmrg		basic_machine=mips-sgi
785876ff6feSmrg		case $os in
786876ff6feSmrg		    -irix*)
787876ff6feSmrg			;;
788876ff6feSmrg		    *)
789876ff6feSmrg			os=-irix4
790876ff6feSmrg			;;
791876ff6feSmrg		esac
792876ff6feSmrg		;;
793876ff6feSmrg	isi68 | isi)
794876ff6feSmrg		basic_machine=m68k-isi
795876ff6feSmrg		os=-sysv
796876ff6feSmrg		;;
797d41660beSmrg	leon-*|leon[3-9]-*)
798d41660beSmrg		basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
799d41660beSmrg		;;
800d41660beSmrg	m68knommu)
801d41660beSmrg		basic_machine=m68k-unknown
802d41660beSmrg		os=-linux
803d41660beSmrg		;;
804d41660beSmrg	m68knommu-*)
805d41660beSmrg		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
806d41660beSmrg		os=-linux
807d41660beSmrg		;;
808876ff6feSmrg	m88k-omron*)
809876ff6feSmrg		basic_machine=m88k-omron
810876ff6feSmrg		;;
811876ff6feSmrg	magnum | m3230)
812876ff6feSmrg		basic_machine=mips-mips
813876ff6feSmrg		os=-sysv
814876ff6feSmrg		;;
815876ff6feSmrg	merlin)
816876ff6feSmrg		basic_machine=ns32k-utek
817876ff6feSmrg		os=-sysv
818876ff6feSmrg		;;
819d41660beSmrg	microblaze*)
820d41660beSmrg		basic_machine=microblaze-xilinx
821d41660beSmrg		;;
822d41660beSmrg	mingw64)
823d41660beSmrg		basic_machine=x86_64-pc
824d41660beSmrg		os=-mingw64
825d41660beSmrg		;;
826876ff6feSmrg	mingw32)
827d41660beSmrg		basic_machine=i686-pc
828876ff6feSmrg		os=-mingw32
829876ff6feSmrg		;;
830d41660beSmrg	mingw32ce)
831d41660beSmrg		basic_machine=arm-unknown
832d41660beSmrg		os=-mingw32ce
833d41660beSmrg		;;
834876ff6feSmrg	miniframe)
835876ff6feSmrg		basic_machine=m68000-convergent
836876ff6feSmrg		;;
837876ff6feSmrg	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
838876ff6feSmrg		basic_machine=m68k-atari
839876ff6feSmrg		os=-mint
840876ff6feSmrg		;;
841d41660beSmrg	mipsEE* | ee | ps2)
842d41660beSmrg		basic_machine=mips64r5900el-scei
843d41660beSmrg		case $os in
844d41660beSmrg		    -linux*)
845d41660beSmrg			;;
846d41660beSmrg		    *)
847d41660beSmrg			os=-elf
848d41660beSmrg			;;
849d41660beSmrg		esac
850d41660beSmrg		;;
851d41660beSmrg	iop)
852d41660beSmrg		basic_machine=mipsel-scei
853d41660beSmrg		os=-irx
854d41660beSmrg		;;
855d41660beSmrg	dvp)
856d41660beSmrg		basic_machine=dvp-scei
857d41660beSmrg		os=-elf
858d41660beSmrg		;;
859876ff6feSmrg	mips3*-*)
860876ff6feSmrg		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
861876ff6feSmrg		;;
862876ff6feSmrg	mips3*)
863876ff6feSmrg		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
864876ff6feSmrg		;;
865876ff6feSmrg	monitor)
866876ff6feSmrg		basic_machine=m68k-rom68k
867876ff6feSmrg		os=-coff
868876ff6feSmrg		;;
869876ff6feSmrg	morphos)
870876ff6feSmrg		basic_machine=powerpc-unknown
871876ff6feSmrg		os=-morphos
872876ff6feSmrg		;;
873d41660beSmrg	moxiebox)
874d41660beSmrg		basic_machine=moxie-unknown
875d41660beSmrg		os=-moxiebox
876d41660beSmrg		;;
877876ff6feSmrg	msdos)
878876ff6feSmrg		basic_machine=i386-pc
879876ff6feSmrg		os=-msdos
880876ff6feSmrg		;;
881d41660beSmrg	ms1-*)
882d41660beSmrg		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
883d41660beSmrg		;;
884d41660beSmrg	msys)
885d41660beSmrg		basic_machine=i686-pc
886d41660beSmrg		os=-msys
887d41660beSmrg		;;
888876ff6feSmrg	mvs)
889876ff6feSmrg		basic_machine=i370-ibm
890876ff6feSmrg		os=-mvs
891876ff6feSmrg		;;
892d41660beSmrg	nacl)
893d41660beSmrg		basic_machine=le32-unknown
894d41660beSmrg		os=-nacl
895d41660beSmrg		;;
896876ff6feSmrg	ncr3000)
897876ff6feSmrg		basic_machine=i486-ncr
898876ff6feSmrg		os=-sysv4
899876ff6feSmrg		;;
900876ff6feSmrg	netbsd386)
901876ff6feSmrg		basic_machine=i386-unknown
902876ff6feSmrg		os=-netbsd
903876ff6feSmrg		;;
904876ff6feSmrg	netwinder)
905876ff6feSmrg		basic_machine=armv4l-rebel
906876ff6feSmrg		os=-linux
907876ff6feSmrg		;;
908876ff6feSmrg	news | news700 | news800 | news900)
909876ff6feSmrg		basic_machine=m68k-sony
910876ff6feSmrg		os=-newsos
911876ff6feSmrg		;;
912876ff6feSmrg	news1000)
913876ff6feSmrg		basic_machine=m68030-sony
914876ff6feSmrg		os=-newsos
915876ff6feSmrg		;;
916876ff6feSmrg	news-3600 | risc-news)
917876ff6feSmrg		basic_machine=mips-sony
918876ff6feSmrg		os=-newsos
919876ff6feSmrg		;;
920876ff6feSmrg	necv70)
921876ff6feSmrg		basic_machine=v70-nec
922876ff6feSmrg		os=-sysv
923876ff6feSmrg		;;
924876ff6feSmrg	next | m*-next )
925876ff6feSmrg		basic_machine=m68k-next
926876ff6feSmrg		case $os in
927876ff6feSmrg		    -nextstep* )
928876ff6feSmrg			;;
929876ff6feSmrg		    -ns2*)
930876ff6feSmrg		      os=-nextstep2
931876ff6feSmrg			;;
932876ff6feSmrg		    *)
933876ff6feSmrg		      os=-nextstep3
934876ff6feSmrg			;;
935876ff6feSmrg		esac
936876ff6feSmrg		;;
937876ff6feSmrg	nh3000)
938876ff6feSmrg		basic_machine=m68k-harris
939876ff6feSmrg		os=-cxux
940876ff6feSmrg		;;
941876ff6feSmrg	nh[45]000)
942876ff6feSmrg		basic_machine=m88k-harris
943876ff6feSmrg		os=-cxux
944876ff6feSmrg		;;
945876ff6feSmrg	nindy960)
946876ff6feSmrg		basic_machine=i960-intel
947876ff6feSmrg		os=-nindy
948876ff6feSmrg		;;
949876ff6feSmrg	mon960)
950876ff6feSmrg		basic_machine=i960-intel
951876ff6feSmrg		os=-mon960
952876ff6feSmrg		;;
953876ff6feSmrg	nonstopux)
954876ff6feSmrg		basic_machine=mips-compaq
955876ff6feSmrg		os=-nonstopux
956876ff6feSmrg		;;
957876ff6feSmrg	np1)
958876ff6feSmrg		basic_machine=np1-gould
959876ff6feSmrg		;;
960d41660beSmrg	neo-tandem)
961d41660beSmrg		basic_machine=neo-tandem
962d41660beSmrg		;;
963d41660beSmrg	nse-tandem)
964d41660beSmrg		basic_machine=nse-tandem
965d41660beSmrg		;;
966876ff6feSmrg	nsr-tandem)
967876ff6feSmrg		basic_machine=nsr-tandem
968876ff6feSmrg		;;
969876ff6feSmrg	op50n-* | op60c-*)
970876ff6feSmrg		basic_machine=hppa1.1-oki
971876ff6feSmrg		os=-proelf
972876ff6feSmrg		;;
973876ff6feSmrg	openrisc | openrisc-*)
974876ff6feSmrg		basic_machine=or32-unknown
975876ff6feSmrg		;;
976876ff6feSmrg	os400)
977876ff6feSmrg		basic_machine=powerpc-ibm
978876ff6feSmrg		os=-os400
979876ff6feSmrg		;;
980876ff6feSmrg	OSE68000 | ose68000)
981876ff6feSmrg		basic_machine=m68000-ericsson
982876ff6feSmrg		os=-ose
983876ff6feSmrg		;;
984876ff6feSmrg	os68k)
985876ff6feSmrg		basic_machine=m68k-none
986876ff6feSmrg		os=-os68k
987876ff6feSmrg		;;
988876ff6feSmrg	pa-hitachi)
989876ff6feSmrg		basic_machine=hppa1.1-hitachi
990876ff6feSmrg		os=-hiuxwe2
991876ff6feSmrg		;;
992876ff6feSmrg	paragon)
993876ff6feSmrg		basic_machine=i860-intel
994876ff6feSmrg		os=-osf
995876ff6feSmrg		;;
996d41660beSmrg	parisc)
997d41660beSmrg		basic_machine=hppa-unknown
998d41660beSmrg		os=-linux
999d41660beSmrg		;;
1000d41660beSmrg	parisc-*)
1001d41660beSmrg		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
1002d41660beSmrg		os=-linux
1003d41660beSmrg		;;
1004876ff6feSmrg	pbd)
1005876ff6feSmrg		basic_machine=sparc-tti
1006876ff6feSmrg		;;
1007876ff6feSmrg	pbb)
1008876ff6feSmrg		basic_machine=m68k-tti
1009876ff6feSmrg		;;
1010876ff6feSmrg	pc532 | pc532-*)
1011876ff6feSmrg		basic_machine=ns32k-pc532
1012876ff6feSmrg		;;
1013d41660beSmrg	pc98)
1014d41660beSmrg		basic_machine=i386-pc
1015d41660beSmrg		;;
1016d41660beSmrg	pc98-*)
1017d41660beSmrg		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
1018d41660beSmrg		;;
1019876ff6feSmrg	pentium | p5 | k5 | k6 | nexgen | viac3)
1020876ff6feSmrg		basic_machine=i586-pc
1021876ff6feSmrg		;;
1022876ff6feSmrg	pentiumpro | p6 | 6x86 | athlon | athlon_*)
1023876ff6feSmrg		basic_machine=i686-pc
1024876ff6feSmrg		;;
1025876ff6feSmrg	pentiumii | pentium2 | pentiumiii | pentium3)
1026876ff6feSmrg		basic_machine=i686-pc
1027876ff6feSmrg		;;
1028876ff6feSmrg	pentium4)
1029876ff6feSmrg		basic_machine=i786-pc
1030876ff6feSmrg		;;
1031876ff6feSmrg	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1032876ff6feSmrg		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
1033876ff6feSmrg		;;
1034876ff6feSmrg	pentiumpro-* | p6-* | 6x86-* | athlon-*)
1035876ff6feSmrg		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
1036876ff6feSmrg		;;
1037876ff6feSmrg	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1038876ff6feSmrg		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
1039876ff6feSmrg		;;
1040876ff6feSmrg	pentium4-*)
1041876ff6feSmrg		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
1042876ff6feSmrg		;;
1043876ff6feSmrg	pn)
1044876ff6feSmrg		basic_machine=pn-gould
1045876ff6feSmrg		;;
1046876ff6feSmrg	power)	basic_machine=power-ibm
1047876ff6feSmrg		;;
1048d41660beSmrg	ppc | ppcbe)	basic_machine=powerpc-unknown
1049876ff6feSmrg		;;
1050d41660beSmrg	ppc-* | ppcbe-*)
1051d41660beSmrg		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
1052876ff6feSmrg		;;
1053d41660beSmrg	ppcle | powerpclittle)
1054876ff6feSmrg		basic_machine=powerpcle-unknown
1055876ff6feSmrg		;;
1056876ff6feSmrg	ppcle-* | powerpclittle-*)
1057876ff6feSmrg		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
1058876ff6feSmrg		;;
1059876ff6feSmrg	ppc64)	basic_machine=powerpc64-unknown
1060876ff6feSmrg		;;
1061876ff6feSmrg	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
1062876ff6feSmrg		;;
1063d41660beSmrg	ppc64le | powerpc64little)
1064876ff6feSmrg		basic_machine=powerpc64le-unknown
1065876ff6feSmrg		;;
1066876ff6feSmrg	ppc64le-* | powerpc64little-*)
1067876ff6feSmrg		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
1068876ff6feSmrg		;;
1069876ff6feSmrg	ps2)
1070876ff6feSmrg		basic_machine=i386-ibm
1071876ff6feSmrg		;;
1072876ff6feSmrg	pw32)
1073876ff6feSmrg		basic_machine=i586-unknown
1074876ff6feSmrg		os=-pw32
1075876ff6feSmrg		;;
1076d41660beSmrg	rdos | rdos64)
1077d41660beSmrg		basic_machine=x86_64-pc
1078d41660beSmrg		os=-rdos
1079d41660beSmrg		;;
1080d41660beSmrg	rdos32)
1081d41660beSmrg		basic_machine=i386-pc
1082d41660beSmrg		os=-rdos
1083d41660beSmrg		;;
1084876ff6feSmrg	rom68k)
1085876ff6feSmrg		basic_machine=m68k-rom68k
1086876ff6feSmrg		os=-coff
1087876ff6feSmrg		;;
1088876ff6feSmrg	rm[46]00)
1089876ff6feSmrg		basic_machine=mips-siemens
1090876ff6feSmrg		;;
1091876ff6feSmrg	rtpc | rtpc-*)
1092876ff6feSmrg		basic_machine=romp-ibm
1093876ff6feSmrg		;;
1094876ff6feSmrg	s390 | s390-*)
1095876ff6feSmrg		basic_machine=s390-ibm
1096876ff6feSmrg		;;
1097876ff6feSmrg	s390x | s390x-*)
1098876ff6feSmrg		basic_machine=s390x-ibm
1099876ff6feSmrg		;;
1100876ff6feSmrg	sa29200)
1101876ff6feSmrg		basic_machine=a29k-amd
1102876ff6feSmrg		os=-udi
1103876ff6feSmrg		;;
1104876ff6feSmrg	sb1)
1105876ff6feSmrg		basic_machine=mipsisa64sb1-unknown
1106876ff6feSmrg		;;
1107876ff6feSmrg	sb1el)
1108876ff6feSmrg		basic_machine=mipsisa64sb1el-unknown
1109876ff6feSmrg		;;
1110d41660beSmrg	sde)
1111d41660beSmrg		basic_machine=mipsisa32-sde
1112d41660beSmrg		os=-elf
1113d41660beSmrg		;;
1114876ff6feSmrg	sei)
1115876ff6feSmrg		basic_machine=mips-sei
1116876ff6feSmrg		os=-seiux
1117876ff6feSmrg		;;
1118876ff6feSmrg	sequent)
1119876ff6feSmrg		basic_machine=i386-sequent
1120876ff6feSmrg		;;
1121876ff6feSmrg	sh)
1122876ff6feSmrg		basic_machine=sh-hitachi
1123876ff6feSmrg		os=-hms
1124876ff6feSmrg		;;
1125d41660beSmrg	sh5el)
1126d41660beSmrg		basic_machine=sh5le-unknown
1127d41660beSmrg		;;
1128876ff6feSmrg	sh64)
1129876ff6feSmrg		basic_machine=sh64-unknown
1130876ff6feSmrg		;;
1131876ff6feSmrg	sparclite-wrs | simso-wrs)
1132876ff6feSmrg		basic_machine=sparclite-wrs
1133876ff6feSmrg		os=-vxworks
1134876ff6feSmrg		;;
1135876ff6feSmrg	sps7)
1136876ff6feSmrg		basic_machine=m68k-bull
1137876ff6feSmrg		os=-sysv2
1138876ff6feSmrg		;;
1139876ff6feSmrg	spur)
1140876ff6feSmrg		basic_machine=spur-unknown
1141876ff6feSmrg		;;
1142876ff6feSmrg	st2000)
1143876ff6feSmrg		basic_machine=m68k-tandem
1144876ff6feSmrg		;;
1145876ff6feSmrg	stratus)
1146876ff6feSmrg		basic_machine=i860-stratus
1147876ff6feSmrg		os=-sysv4
1148876ff6feSmrg		;;
1149d41660beSmrg	strongarm-* | thumb-*)
1150d41660beSmrg		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1151d41660beSmrg		;;
1152876ff6feSmrg	sun2)
1153876ff6feSmrg		basic_machine=m68000-sun
1154876ff6feSmrg		;;
1155876ff6feSmrg	sun2os3)
1156876ff6feSmrg		basic_machine=m68000-sun
1157876ff6feSmrg		os=-sunos3
1158876ff6feSmrg		;;
1159876ff6feSmrg	sun2os4)
1160876ff6feSmrg		basic_machine=m68000-sun
1161876ff6feSmrg		os=-sunos4
1162876ff6feSmrg		;;
1163876ff6feSmrg	sun3os3)
1164876ff6feSmrg		basic_machine=m68k-sun
1165876ff6feSmrg		os=-sunos3
1166876ff6feSmrg		;;
1167876ff6feSmrg	sun3os4)
1168876ff6feSmrg		basic_machine=m68k-sun
1169876ff6feSmrg		os=-sunos4
1170876ff6feSmrg		;;
1171876ff6feSmrg	sun4os3)
1172876ff6feSmrg		basic_machine=sparc-sun
1173876ff6feSmrg		os=-sunos3
1174876ff6feSmrg		;;
1175876ff6feSmrg	sun4os4)
1176876ff6feSmrg		basic_machine=sparc-sun
1177876ff6feSmrg		os=-sunos4
1178876ff6feSmrg		;;
1179876ff6feSmrg	sun4sol2)
1180876ff6feSmrg		basic_machine=sparc-sun
1181876ff6feSmrg		os=-solaris2
1182876ff6feSmrg		;;
1183876ff6feSmrg	sun3 | sun3-*)
1184876ff6feSmrg		basic_machine=m68k-sun
1185876ff6feSmrg		;;
1186876ff6feSmrg	sun4)
1187876ff6feSmrg		basic_machine=sparc-sun
1188876ff6feSmrg		;;
1189876ff6feSmrg	sun386 | sun386i | roadrunner)
1190876ff6feSmrg		basic_machine=i386-sun
1191876ff6feSmrg		;;
1192876ff6feSmrg	sv1)
1193876ff6feSmrg		basic_machine=sv1-cray
1194876ff6feSmrg		os=-unicos
1195876ff6feSmrg		;;
1196876ff6feSmrg	symmetry)
1197876ff6feSmrg		basic_machine=i386-sequent
1198876ff6feSmrg		os=-dynix
1199876ff6feSmrg		;;
1200876ff6feSmrg	t3e)
1201876ff6feSmrg		basic_machine=alphaev5-cray
1202876ff6feSmrg		os=-unicos
1203876ff6feSmrg		;;
1204876ff6feSmrg	t90)
1205876ff6feSmrg		basic_machine=t90-cray
1206876ff6feSmrg		os=-unicos
1207876ff6feSmrg		;;
1208d41660beSmrg	tile*)
1209d41660beSmrg		basic_machine=$basic_machine-unknown
1210d41660beSmrg		os=-linux-gnu
1211876ff6feSmrg		;;
1212876ff6feSmrg	tx39)
1213876ff6feSmrg		basic_machine=mipstx39-unknown
1214876ff6feSmrg		;;
1215876ff6feSmrg	tx39el)
1216876ff6feSmrg		basic_machine=mipstx39el-unknown
1217876ff6feSmrg		;;
1218876ff6feSmrg	toad1)
1219876ff6feSmrg		basic_machine=pdp10-xkl
1220876ff6feSmrg		os=-tops20
1221876ff6feSmrg		;;
1222876ff6feSmrg	tower | tower-32)
1223876ff6feSmrg		basic_machine=m68k-ncr
1224876ff6feSmrg		;;
1225876ff6feSmrg	tpf)
1226876ff6feSmrg		basic_machine=s390x-ibm
1227876ff6feSmrg		os=-tpf
1228876ff6feSmrg		;;
1229876ff6feSmrg	udi29k)
1230876ff6feSmrg		basic_machine=a29k-amd
1231876ff6feSmrg		os=-udi
1232876ff6feSmrg		;;
1233876ff6feSmrg	ultra3)
1234876ff6feSmrg		basic_machine=a29k-nyu
1235876ff6feSmrg		os=-sym1
1236876ff6feSmrg		;;
1237876ff6feSmrg	v810 | necv810)
1238876ff6feSmrg		basic_machine=v810-nec
1239876ff6feSmrg		os=-none
1240876ff6feSmrg		;;
1241876ff6feSmrg	vaxv)
1242876ff6feSmrg		basic_machine=vax-dec
1243876ff6feSmrg		os=-sysv
1244876ff6feSmrg		;;
1245876ff6feSmrg	vms)
1246876ff6feSmrg		basic_machine=vax-dec
1247876ff6feSmrg		os=-vms
1248876ff6feSmrg		;;
1249876ff6feSmrg	vpp*|vx|vx-*)
1250876ff6feSmrg		basic_machine=f301-fujitsu
1251876ff6feSmrg		;;
1252876ff6feSmrg	vxworks960)
1253876ff6feSmrg		basic_machine=i960-wrs
1254876ff6feSmrg		os=-vxworks
1255876ff6feSmrg		;;
1256876ff6feSmrg	vxworks68)
1257876ff6feSmrg		basic_machine=m68k-wrs
1258876ff6feSmrg		os=-vxworks
1259876ff6feSmrg		;;
1260876ff6feSmrg	vxworks29k)
1261876ff6feSmrg		basic_machine=a29k-wrs
1262876ff6feSmrg		os=-vxworks
1263876ff6feSmrg		;;
1264876ff6feSmrg	w65*)
1265876ff6feSmrg		basic_machine=w65-wdc
1266876ff6feSmrg		os=-none
1267876ff6feSmrg		;;
1268876ff6feSmrg	w89k-*)
1269876ff6feSmrg		basic_machine=hppa1.1-winbond
1270876ff6feSmrg		os=-proelf
1271876ff6feSmrg		;;
1272876ff6feSmrg	xbox)
1273876ff6feSmrg		basic_machine=i686-pc
1274876ff6feSmrg		os=-mingw32
1275876ff6feSmrg		;;
1276876ff6feSmrg	xps | xps100)
1277876ff6feSmrg		basic_machine=xps100-honeywell
1278876ff6feSmrg		;;
1279d41660beSmrg	xscale-* | xscalee[bl]-*)
1280d41660beSmrg		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1281d41660beSmrg		;;
1282876ff6feSmrg	ymp)
1283876ff6feSmrg		basic_machine=ymp-cray
1284876ff6feSmrg		os=-unicos
1285876ff6feSmrg		;;
1286876ff6feSmrg	z8k-*-coff)
1287876ff6feSmrg		basic_machine=z8k-unknown
1288876ff6feSmrg		os=-sim
1289876ff6feSmrg		;;
1290d41660beSmrg	z80-*-coff)
1291d41660beSmrg		basic_machine=z80-unknown
1292d41660beSmrg		os=-sim
1293d41660beSmrg		;;
1294876ff6feSmrg	none)
1295876ff6feSmrg		basic_machine=none-none
1296876ff6feSmrg		os=-none
1297876ff6feSmrg		;;
1298876ff6feSmrg
1299876ff6feSmrg# Here we handle the default manufacturer of certain CPU types.  It is in
1300876ff6feSmrg# some cases the only manufacturer, in others, it is the most popular.
1301876ff6feSmrg	w89k)
1302876ff6feSmrg		basic_machine=hppa1.1-winbond
1303876ff6feSmrg		;;
1304876ff6feSmrg	op50n)
1305876ff6feSmrg		basic_machine=hppa1.1-oki
1306876ff6feSmrg		;;
1307876ff6feSmrg	op60c)
1308876ff6feSmrg		basic_machine=hppa1.1-oki
1309876ff6feSmrg		;;
1310876ff6feSmrg	romp)
1311876ff6feSmrg		basic_machine=romp-ibm
1312876ff6feSmrg		;;
1313876ff6feSmrg	mmix)
1314876ff6feSmrg		basic_machine=mmix-knuth
1315876ff6feSmrg		;;
1316876ff6feSmrg	rs6000)
1317876ff6feSmrg		basic_machine=rs6000-ibm
1318876ff6feSmrg		;;
1319876ff6feSmrg	vax)
1320876ff6feSmrg		basic_machine=vax-dec
1321876ff6feSmrg		;;
1322876ff6feSmrg	pdp10)
1323876ff6feSmrg		# there are many clones, so DEC is not a safe bet
1324876ff6feSmrg		basic_machine=pdp10-unknown
1325876ff6feSmrg		;;
1326876ff6feSmrg	pdp11)
1327876ff6feSmrg		basic_machine=pdp11-dec
1328876ff6feSmrg		;;
1329876ff6feSmrg	we32k)
1330876ff6feSmrg		basic_machine=we32k-att
1331876ff6feSmrg		;;
1332d41660beSmrg	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1333876ff6feSmrg		basic_machine=sh-unknown
1334876ff6feSmrg		;;
1335d41660beSmrg	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1336876ff6feSmrg		basic_machine=sparc-sun
1337876ff6feSmrg		;;
1338876ff6feSmrg	cydra)
1339876ff6feSmrg		basic_machine=cydra-cydrome
1340876ff6feSmrg		;;
1341876ff6feSmrg	orion)
1342876ff6feSmrg		basic_machine=orion-highlevel
1343876ff6feSmrg		;;
1344876ff6feSmrg	orion105)
1345876ff6feSmrg		basic_machine=clipper-highlevel
1346876ff6feSmrg		;;
1347876ff6feSmrg	mac | mpw | mac-mpw)
1348876ff6feSmrg		basic_machine=m68k-apple
1349876ff6feSmrg		;;
1350876ff6feSmrg	pmac | pmac-mpw)
1351876ff6feSmrg		basic_machine=powerpc-apple
1352876ff6feSmrg		;;
1353876ff6feSmrg	*-unknown)
1354876ff6feSmrg		# Make sure to match an already-canonicalized machine name.
1355876ff6feSmrg		;;
1356876ff6feSmrg	*)
1357876ff6feSmrg		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1358876ff6feSmrg		exit 1
1359876ff6feSmrg		;;
1360876ff6feSmrgesac
1361876ff6feSmrg
1362876ff6feSmrg# Here we canonicalize certain aliases for manufacturers.
1363876ff6feSmrgcase $basic_machine in
1364876ff6feSmrg	*-digital*)
1365876ff6feSmrg		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1366876ff6feSmrg		;;
1367876ff6feSmrg	*-commodore*)
1368876ff6feSmrg		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1369876ff6feSmrg		;;
1370876ff6feSmrg	*)
1371876ff6feSmrg		;;
1372876ff6feSmrgesac
1373876ff6feSmrg
1374876ff6feSmrg# Decode manufacturer-specific aliases for certain operating systems.
1375876ff6feSmrg
1376876ff6feSmrgif [ x"$os" != x"" ]
1377876ff6feSmrgthen
1378876ff6feSmrgcase $os in
1379d41660beSmrg	# First match some system type aliases
1380d41660beSmrg	# that might get confused with valid system types.
1381876ff6feSmrg	# -solaris* is a basic system type, with this one exception.
1382d41660beSmrg	-auroraux)
1383d41660beSmrg		os=-auroraux
1384d41660beSmrg		;;
1385876ff6feSmrg	-solaris1 | -solaris1.*)
1386876ff6feSmrg		os=`echo $os | sed -e 's|solaris1|sunos4|'`
1387876ff6feSmrg		;;
1388876ff6feSmrg	-solaris)
1389876ff6feSmrg		os=-solaris2
1390876ff6feSmrg		;;
1391876ff6feSmrg	-svr4*)
1392876ff6feSmrg		os=-sysv4
1393876ff6feSmrg		;;
1394876ff6feSmrg	-unixware*)
1395876ff6feSmrg		os=-sysv4.2uw
1396876ff6feSmrg		;;
1397876ff6feSmrg	-gnu/linux*)
1398876ff6feSmrg		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1399876ff6feSmrg		;;
1400876ff6feSmrg	# First accept the basic system types.
1401876ff6feSmrg	# The portable systems comes first.
1402876ff6feSmrg	# Each alternative MUST END IN A *, to match a version number.
1403876ff6feSmrg	# -sysv* is not here because it comes later, after sysvr4.
1404876ff6feSmrg	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1405d41660beSmrg	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1406d41660beSmrg	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1407d41660beSmrg	      | -sym* | -kopensolaris* | -plan9* \
1408876ff6feSmrg	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1409d41660beSmrg	      | -aos* | -aros* | -cloudabi* | -sortix* \
1410876ff6feSmrg	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1411876ff6feSmrg	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1412d41660beSmrg	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1413d41660beSmrg	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
1414876ff6feSmrg	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1415876ff6feSmrg	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1416876ff6feSmrg	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1417876ff6feSmrg	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1418d41660beSmrg	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
1419d41660beSmrg	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1420d41660beSmrg	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1421d41660beSmrg	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
1422d41660beSmrg	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
1423876ff6feSmrg	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1424876ff6feSmrg	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1425d41660beSmrg	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -irx* \
1426876ff6feSmrg	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1427876ff6feSmrg	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1428876ff6feSmrg	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1429d41660beSmrg	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
1430d41660beSmrg	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
1431876ff6feSmrg	# Remember, each alternative MUST END IN *, to match a version number.
1432876ff6feSmrg		;;
1433876ff6feSmrg	-qnx*)
1434876ff6feSmrg		case $basic_machine in
1435876ff6feSmrg		    x86-* | i*86-*)
1436876ff6feSmrg			;;
1437876ff6feSmrg		    *)
1438876ff6feSmrg			os=-nto$os
1439876ff6feSmrg			;;
1440876ff6feSmrg		esac
1441876ff6feSmrg		;;
1442876ff6feSmrg	-nto-qnx*)
1443876ff6feSmrg		;;
1444876ff6feSmrg	-nto*)
1445876ff6feSmrg		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1446876ff6feSmrg		;;
1447876ff6feSmrg	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1448876ff6feSmrg	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1449876ff6feSmrg	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1450876ff6feSmrg		;;
1451876ff6feSmrg	-mac*)
1452876ff6feSmrg		os=`echo $os | sed -e 's|mac|macos|'`
1453876ff6feSmrg		;;
1454876ff6feSmrg	-linux-dietlibc)
1455876ff6feSmrg		os=-linux-dietlibc
1456876ff6feSmrg		;;
1457876ff6feSmrg	-linux*)
1458876ff6feSmrg		os=`echo $os | sed -e 's|linux|linux-gnu|'`
1459876ff6feSmrg		;;
1460876ff6feSmrg	-sunos5*)
1461876ff6feSmrg		os=`echo $os | sed -e 's|sunos5|solaris2|'`
1462876ff6feSmrg		;;
1463876ff6feSmrg	-sunos6*)
1464876ff6feSmrg		os=`echo $os | sed -e 's|sunos6|solaris3|'`
1465876ff6feSmrg		;;
1466876ff6feSmrg	-opened*)
1467876ff6feSmrg		os=-openedition
1468876ff6feSmrg		;;
1469d41660beSmrg	-os400*)
1470876ff6feSmrg		os=-os400
1471876ff6feSmrg		;;
1472876ff6feSmrg	-wince*)
1473876ff6feSmrg		os=-wince
1474876ff6feSmrg		;;
1475876ff6feSmrg	-osfrose*)
1476876ff6feSmrg		os=-osfrose
1477876ff6feSmrg		;;
1478876ff6feSmrg	-osf*)
1479876ff6feSmrg		os=-osf
1480876ff6feSmrg		;;
1481876ff6feSmrg	-utek*)
1482876ff6feSmrg		os=-bsd
1483876ff6feSmrg		;;
1484876ff6feSmrg	-dynix*)
1485876ff6feSmrg		os=-bsd
1486876ff6feSmrg		;;
1487876ff6feSmrg	-acis*)
1488876ff6feSmrg		os=-aos
1489876ff6feSmrg		;;
1490876ff6feSmrg	-atheos*)
1491876ff6feSmrg		os=-atheos
1492876ff6feSmrg		;;
1493876ff6feSmrg	-syllable*)
1494876ff6feSmrg		os=-syllable
1495876ff6feSmrg		;;
1496876ff6feSmrg	-386bsd)
1497876ff6feSmrg		os=-bsd
1498876ff6feSmrg		;;
1499876ff6feSmrg	-ctix* | -uts*)
1500876ff6feSmrg		os=-sysv
1501876ff6feSmrg		;;
1502876ff6feSmrg	-nova*)
1503876ff6feSmrg		os=-rtmk-nova
1504876ff6feSmrg		;;
1505876ff6feSmrg	-ns2 )
1506876ff6feSmrg		os=-nextstep2
1507876ff6feSmrg		;;
1508876ff6feSmrg	-nsk*)
1509876ff6feSmrg		os=-nsk
1510876ff6feSmrg		;;
1511876ff6feSmrg	# Preserve the version number of sinix5.
1512876ff6feSmrg	-sinix5.*)
1513876ff6feSmrg		os=`echo $os | sed -e 's|sinix|sysv|'`
1514876ff6feSmrg		;;
1515876ff6feSmrg	-sinix*)
1516876ff6feSmrg		os=-sysv4
1517876ff6feSmrg		;;
1518d41660beSmrg	-tpf*)
1519876ff6feSmrg		os=-tpf
1520876ff6feSmrg		;;
1521876ff6feSmrg	-triton*)
1522876ff6feSmrg		os=-sysv3
1523876ff6feSmrg		;;
1524876ff6feSmrg	-oss*)
1525876ff6feSmrg		os=-sysv3
1526876ff6feSmrg		;;
1527876ff6feSmrg	-svr4)
1528876ff6feSmrg		os=-sysv4
1529876ff6feSmrg		;;
1530876ff6feSmrg	-svr3)
1531876ff6feSmrg		os=-sysv3
1532876ff6feSmrg		;;
1533876ff6feSmrg	-sysvr4)
1534876ff6feSmrg		os=-sysv4
1535876ff6feSmrg		;;
1536876ff6feSmrg	# This must come after -sysvr4.
1537876ff6feSmrg	-sysv*)
1538876ff6feSmrg		;;
1539876ff6feSmrg	-ose*)
1540876ff6feSmrg		os=-ose
1541876ff6feSmrg		;;
1542876ff6feSmrg	-es1800*)
1543876ff6feSmrg		os=-ose
1544876ff6feSmrg		;;
1545876ff6feSmrg	-xenix)
1546876ff6feSmrg		os=-xenix
1547876ff6feSmrg		;;
1548876ff6feSmrg	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1549876ff6feSmrg		os=-mint
1550876ff6feSmrg		;;
1551876ff6feSmrg	-aros*)
1552876ff6feSmrg		os=-aros
1553876ff6feSmrg		;;
1554876ff6feSmrg	-zvmoe)
1555876ff6feSmrg		os=-zvmoe
1556876ff6feSmrg		;;
1557d41660beSmrg	-dicos*)
1558d41660beSmrg		os=-dicos
1559d41660beSmrg		;;
1560d41660beSmrg	-nacl*)
1561d41660beSmrg		;;
1562d41660beSmrg	-ios)
1563d41660beSmrg		;;
1564876ff6feSmrg	-none)
1565876ff6feSmrg		;;
1566876ff6feSmrg	*)
1567876ff6feSmrg		# Get rid of the `-' at the beginning of $os.
1568876ff6feSmrg		os=`echo $os | sed 's/[^-]*-//'`
1569876ff6feSmrg		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1570876ff6feSmrg		exit 1
1571876ff6feSmrg		;;
1572876ff6feSmrgesac
1573876ff6feSmrgelse
1574876ff6feSmrg
1575876ff6feSmrg# Here we handle the default operating systems that come with various machines.
1576876ff6feSmrg# The value should be what the vendor currently ships out the door with their
1577876ff6feSmrg# machine or put another way, the most popular os provided with the machine.
1578876ff6feSmrg
1579876ff6feSmrg# Note that if you're going to try to match "-MANUFACTURER" here (say,
1580876ff6feSmrg# "-sun"), then you have to tell the case statement up towards the top
1581876ff6feSmrg# that MANUFACTURER isn't an operating system.  Otherwise, code above
1582876ff6feSmrg# will signal an error saying that MANUFACTURER isn't an operating
1583876ff6feSmrg# system, and we'll never get to this point.
1584876ff6feSmrg
1585876ff6feSmrgcase $basic_machine in
1586d41660beSmrg	score-*)
1587d41660beSmrg		os=-elf
1588d41660beSmrg		;;
1589d41660beSmrg	spu-*)
1590d41660beSmrg		os=-elf
1591d41660beSmrg		;;
1592876ff6feSmrg	*-acorn)
1593876ff6feSmrg		os=-riscix1.2
1594876ff6feSmrg		;;
1595876ff6feSmrg	arm*-rebel)
1596876ff6feSmrg		os=-linux
1597876ff6feSmrg		;;
1598876ff6feSmrg	arm*-semi)
1599876ff6feSmrg		os=-aout
1600876ff6feSmrg		;;
1601d41660beSmrg	c4x-* | tic4x-*)
1602d41660beSmrg		os=-coff
1603d41660beSmrg		;;
1604d41660beSmrg	c8051-*)
1605d41660beSmrg		os=-elf
1606d41660beSmrg		;;
1607d41660beSmrg	hexagon-*)
1608d41660beSmrg		os=-elf
1609d41660beSmrg		;;
1610d41660beSmrg	tic54x-*)
1611d41660beSmrg		os=-coff
1612d41660beSmrg		;;
1613d41660beSmrg	tic55x-*)
1614d41660beSmrg		os=-coff
1615d41660beSmrg		;;
1616d41660beSmrg	tic6x-*)
1617d41660beSmrg		os=-coff
1618d41660beSmrg		;;
1619876ff6feSmrg	# This must come before the *-dec entry.
1620876ff6feSmrg	pdp10-*)
1621876ff6feSmrg		os=-tops20
1622876ff6feSmrg		;;
1623876ff6feSmrg	pdp11-*)
1624876ff6feSmrg		os=-none
1625876ff6feSmrg		;;
1626876ff6feSmrg	*-dec | vax-*)
1627876ff6feSmrg		os=-ultrix4.2
1628876ff6feSmrg		;;
1629876ff6feSmrg	m68*-apollo)
1630876ff6feSmrg		os=-domain
1631876ff6feSmrg		;;
1632876ff6feSmrg	i386-sun)
1633876ff6feSmrg		os=-sunos4.0.2
1634876ff6feSmrg		;;
1635876ff6feSmrg	m68000-sun)
1636876ff6feSmrg		os=-sunos3
1637876ff6feSmrg		;;
1638876ff6feSmrg	m68*-cisco)
1639876ff6feSmrg		os=-aout
1640876ff6feSmrg		;;
1641d41660beSmrg	mep-*)
1642d41660beSmrg		os=-elf
1643d41660beSmrg		;;
1644876ff6feSmrg	mips*-cisco)
1645876ff6feSmrg		os=-elf
1646876ff6feSmrg		;;
1647876ff6feSmrg	mips*-*)
1648876ff6feSmrg		os=-elf
1649876ff6feSmrg		;;
1650876ff6feSmrg	or32-*)
1651876ff6feSmrg		os=-coff
1652876ff6feSmrg		;;
1653876ff6feSmrg	*-tti)	# must be before sparc entry or we get the wrong os.
1654876ff6feSmrg		os=-sysv3
1655876ff6feSmrg		;;
1656876ff6feSmrg	sparc-* | *-sun)
1657876ff6feSmrg		os=-sunos4.1.1
1658876ff6feSmrg		;;
1659d41660beSmrg	pru-*)
1660d41660beSmrg		os=-elf
1661d41660beSmrg		;;
1662876ff6feSmrg	*-be)
1663876ff6feSmrg		os=-beos
1664876ff6feSmrg		;;
1665876ff6feSmrg	*-haiku)
1666876ff6feSmrg		os=-haiku
1667876ff6feSmrg		;;
1668876ff6feSmrg	*-ibm)
1669876ff6feSmrg		os=-aix
1670876ff6feSmrg		;;
1671d41660beSmrg	*-knuth)
1672876ff6feSmrg		os=-mmixware
1673876ff6feSmrg		;;
1674876ff6feSmrg	*-wec)
1675876ff6feSmrg		os=-proelf
1676876ff6feSmrg		;;
1677876ff6feSmrg	*-winbond)
1678876ff6feSmrg		os=-proelf
1679876ff6feSmrg		;;
1680876ff6feSmrg	*-oki)
1681876ff6feSmrg		os=-proelf
1682876ff6feSmrg		;;
1683876ff6feSmrg	*-hp)
1684876ff6feSmrg		os=-hpux
1685876ff6feSmrg		;;
1686876ff6feSmrg	*-hitachi)
1687876ff6feSmrg		os=-hiux
1688876ff6feSmrg		;;
1689876ff6feSmrg	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1690876ff6feSmrg		os=-sysv
1691876ff6feSmrg		;;
1692876ff6feSmrg	*-cbm)
1693876ff6feSmrg		os=-amigaos
1694876ff6feSmrg		;;
1695876ff6feSmrg	*-dg)
1696876ff6feSmrg		os=-dgux
1697876ff6feSmrg		;;
1698876ff6feSmrg	*-dolphin)
1699876ff6feSmrg		os=-sysv3
1700876ff6feSmrg		;;
1701876ff6feSmrg	m68k-ccur)
1702876ff6feSmrg		os=-rtu
1703876ff6feSmrg		;;
1704876ff6feSmrg	m88k-omron*)
1705876ff6feSmrg		os=-luna
1706876ff6feSmrg		;;
1707876ff6feSmrg	*-next )
1708876ff6feSmrg		os=-nextstep
1709876ff6feSmrg		;;
1710876ff6feSmrg	*-sequent)
1711876ff6feSmrg		os=-ptx
1712876ff6feSmrg		;;
1713876ff6feSmrg	*-crds)
1714876ff6feSmrg		os=-unos
1715876ff6feSmrg		;;
1716876ff6feSmrg	*-ns)
1717876ff6feSmrg		os=-genix
1718876ff6feSmrg		;;
1719876ff6feSmrg	i370-*)
1720876ff6feSmrg		os=-mvs
1721876ff6feSmrg		;;
1722876ff6feSmrg	*-next)
1723876ff6feSmrg		os=-nextstep3
1724876ff6feSmrg		;;
1725876ff6feSmrg	*-gould)
1726876ff6feSmrg		os=-sysv
1727876ff6feSmrg		;;
1728876ff6feSmrg	*-highlevel)
1729876ff6feSmrg		os=-bsd
1730876ff6feSmrg		;;
1731876ff6feSmrg	*-encore)
1732876ff6feSmrg		os=-bsd
1733876ff6feSmrg		;;
1734876ff6feSmrg	*-sgi)
1735876ff6feSmrg		os=-irix
1736876ff6feSmrg		;;
1737876ff6feSmrg	*-siemens)
1738876ff6feSmrg		os=-sysv4
1739876ff6feSmrg		;;
1740876ff6feSmrg	*-masscomp)
1741876ff6feSmrg		os=-rtu
1742876ff6feSmrg		;;
1743876ff6feSmrg	f30[01]-fujitsu | f700-fujitsu)
1744876ff6feSmrg		os=-uxpv
1745876ff6feSmrg		;;
1746876ff6feSmrg	*-rom68k)
1747876ff6feSmrg		os=-coff
1748876ff6feSmrg		;;
1749876ff6feSmrg	*-*bug)
1750876ff6feSmrg		os=-coff
1751876ff6feSmrg		;;
1752876ff6feSmrg	*-apple)
1753876ff6feSmrg		os=-macos
1754876ff6feSmrg		;;
1755876ff6feSmrg	*-atari*)
1756876ff6feSmrg		os=-mint
1757876ff6feSmrg		;;
1758876ff6feSmrg	*)
1759876ff6feSmrg		os=-none
1760876ff6feSmrg		;;
1761876ff6feSmrgesac
1762876ff6feSmrgfi
1763876ff6feSmrg
1764876ff6feSmrg# Here we handle the case where we know the os, and the CPU type, but not the
1765876ff6feSmrg# manufacturer.  We pick the logical manufacturer.
1766876ff6feSmrgvendor=unknown
1767876ff6feSmrgcase $basic_machine in
1768876ff6feSmrg	*-unknown)
1769876ff6feSmrg		case $os in
1770876ff6feSmrg			-riscix*)
1771876ff6feSmrg				vendor=acorn
1772876ff6feSmrg				;;
1773876ff6feSmrg			-sunos*)
1774876ff6feSmrg				vendor=sun
1775876ff6feSmrg				;;
1776d41660beSmrg			-cnk*|-aix*)
1777876ff6feSmrg				vendor=ibm
1778876ff6feSmrg				;;
1779876ff6feSmrg			-beos*)
1780876ff6feSmrg				vendor=be
1781876ff6feSmrg				;;
1782876ff6feSmrg			-hpux*)
1783876ff6feSmrg				vendor=hp
1784876ff6feSmrg				;;
1785876ff6feSmrg			-mpeix*)
1786876ff6feSmrg				vendor=hp
1787876ff6feSmrg				;;
1788876ff6feSmrg			-hiux*)
1789876ff6feSmrg				vendor=hitachi
1790876ff6feSmrg				;;
1791876ff6feSmrg			-unos*)
1792876ff6feSmrg				vendor=crds
1793876ff6feSmrg				;;
1794876ff6feSmrg			-dgux*)
1795876ff6feSmrg				vendor=dg
1796876ff6feSmrg				;;
1797876ff6feSmrg			-luna*)
1798876ff6feSmrg				vendor=omron
1799876ff6feSmrg				;;
1800876ff6feSmrg			-genix*)
1801876ff6feSmrg				vendor=ns
1802876ff6feSmrg				;;
1803876ff6feSmrg			-mvs* | -opened*)
1804876ff6feSmrg				vendor=ibm
1805876ff6feSmrg				;;
1806876ff6feSmrg			-os400*)
1807876ff6feSmrg				vendor=ibm
1808876ff6feSmrg				;;
1809876ff6feSmrg			-ptx*)
1810876ff6feSmrg				vendor=sequent
1811876ff6feSmrg				;;
1812876ff6feSmrg			-tpf*)
1813876ff6feSmrg				vendor=ibm
1814876ff6feSmrg				;;
1815876ff6feSmrg			-vxsim* | -vxworks* | -windiss*)
1816876ff6feSmrg				vendor=wrs
1817876ff6feSmrg				;;
1818876ff6feSmrg			-aux*)
1819876ff6feSmrg				vendor=apple
1820876ff6feSmrg				;;
1821876ff6feSmrg			-hms*)
1822876ff6feSmrg				vendor=hitachi
1823876ff6feSmrg				;;
1824876ff6feSmrg			-mpw* | -macos*)
1825876ff6feSmrg				vendor=apple
1826876ff6feSmrg				;;
1827876ff6feSmrg			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1828876ff6feSmrg				vendor=atari
1829876ff6feSmrg				;;
1830876ff6feSmrg			-vos*)
1831876ff6feSmrg				vendor=stratus
1832876ff6feSmrg				;;
1833876ff6feSmrg		esac
1834876ff6feSmrg		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1835876ff6feSmrg		;;
1836876ff6feSmrgesac
1837876ff6feSmrg
1838876ff6feSmrgecho $basic_machine$os
1839876ff6feSmrgexit
1840876ff6feSmrg
1841876ff6feSmrg# Local variables:
1842876ff6feSmrg# eval: (add-hook 'write-file-hooks 'time-stamp)
1843876ff6feSmrg# time-stamp-start: "timestamp='"
1844876ff6feSmrg# time-stamp-format: "%:y-%02m-%02d"
1845876ff6feSmrg# time-stamp-end: "'"
1846876ff6feSmrg# End:
1847