xref: /netbsd-src/external/gpl2/diffutils/dist/config/config.sub (revision cc576e1d8e4f4078fd4e81238abca9fca216f6ec)
175f6d617Schristos#! /bin/sh
275f6d617Schristos# Configuration validation subroutine script.
3*cc576e1dSsevan#   Copyright 1992-2017 Free Software Foundation, Inc.
475f6d617Schristos
5*cc576e1dSsevantimestamp='2017-01-01'
675f6d617Schristos
7*cc576e1dSsevan# This file is free software; you can redistribute it and/or modify it
8*cc576e1dSsevan# under the terms of the GNU General Public License as published by
9*cc576e1dSsevan# the Free Software Foundation; either version 3 of the License, or
1075f6d617Schristos# (at your option) any later version.
1175f6d617Schristos#
12*cc576e1dSsevan# This program is distributed in the hope that it will be useful, but
13*cc576e1dSsevan# WITHOUT ANY WARRANTY; without even the implied warranty of
14*cc576e1dSsevan# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15*cc576e1dSsevan# General Public License for more details.
1675f6d617Schristos#
1775f6d617Schristos# You should have received a copy of the GNU General Public License
18*cc576e1dSsevan# along with this program; if not, see <http://www.gnu.org/licenses/>.
19*cc576e1dSsevan#
2075f6d617Schristos# As a special exception to the GNU General Public License, if you
2175f6d617Schristos# distribute this file as part of a program that contains a
2275f6d617Schristos# configuration script generated by Autoconf, you may include it under
23*cc576e1dSsevan# the same distribution terms that you use for the rest of that
24*cc576e1dSsevan# program.  This Exception is an additional permission under section 7
25*cc576e1dSsevan# of the GNU General Public License, version 3 ("GPLv3").
2675f6d617Schristos
27*cc576e1dSsevan
28*cc576e1dSsevan# Please send patches to <config-patches@gnu.org>.
2975f6d617Schristos#
3075f6d617Schristos# Configuration subroutine to validate and canonicalize a configuration type.
3175f6d617Schristos# Supply the specified configuration type as an argument.
3275f6d617Schristos# If it is invalid, we print an error message on stderr and exit with code 1.
3375f6d617Schristos# Otherwise, we print the canonical config type on stdout and succeed.
3475f6d617Schristos
35*cc576e1dSsevan# You can get the latest version of this script from:
36*cc576e1dSsevan# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
37*cc576e1dSsevan
3875f6d617Schristos# This file is supposed to be the same for all GNU packages
3975f6d617Schristos# and recognize all the CPU types, system types and aliases
4075f6d617Schristos# that are meaningful with *any* GNU software.
4175f6d617Schristos# Each package is responsible for reporting which valid configurations
4275f6d617Schristos# it does not support.  The user should be able to distinguish
4375f6d617Schristos# a failure to support a valid configuration from a meaningless
4475f6d617Schristos# configuration.
4575f6d617Schristos
4675f6d617Schristos# The goal of this file is to map all the various variations of a given
4775f6d617Schristos# machine specification into a single specification in the form:
4875f6d617Schristos#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
4975f6d617Schristos# or in some cases, the newer four-part form:
5075f6d617Schristos#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
5175f6d617Schristos# It is wrong to echo any other type of specification.
5275f6d617Schristos
5375f6d617Schristosme=`echo "$0" | sed -e 's,.*/,,'`
5475f6d617Schristos
5575f6d617Schristosusage="\
56*cc576e1dSsevanUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
5775f6d617Schristos
5875f6d617SchristosCanonicalize a configuration name.
5975f6d617Schristos
6075f6d617SchristosOperation modes:
6175f6d617Schristos  -h, --help         print this help, then exit
6275f6d617Schristos  -t, --time-stamp   print date of last modification, then exit
6375f6d617Schristos  -v, --version      print version number, then exit
6475f6d617Schristos
6575f6d617SchristosReport bugs and patches to <config-patches@gnu.org>."
6675f6d617Schristos
6775f6d617Schristosversion="\
6875f6d617SchristosGNU config.sub ($timestamp)
6975f6d617Schristos
70*cc576e1dSsevanCopyright 1992-2017 Free Software Foundation, Inc.
7175f6d617Schristos
7275f6d617SchristosThis is free software; see the source for copying conditions.  There is NO
7375f6d617Schristoswarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
7475f6d617Schristos
7575f6d617Schristoshelp="
7675f6d617SchristosTry \`$me --help' for more information."
7775f6d617Schristos
7875f6d617Schristos# Parse command line
7975f6d617Schristoswhile test $# -gt 0 ; do
8075f6d617Schristos  case $1 in
8175f6d617Schristos    --time-stamp | --time* | -t )
82*cc576e1dSsevan       echo "$timestamp" ; exit ;;
8375f6d617Schristos    --version | -v )
84*cc576e1dSsevan       echo "$version" ; exit ;;
8575f6d617Schristos    --help | --h* | -h )
86*cc576e1dSsevan       echo "$usage"; exit ;;
8775f6d617Schristos    -- )     # Stop option processing
8875f6d617Schristos       shift; break ;;
8975f6d617Schristos    - )	# Use stdin as input.
9075f6d617Schristos       break ;;
9175f6d617Schristos    -* )
9275f6d617Schristos       echo "$me: invalid option $1$help"
9375f6d617Schristos       exit 1 ;;
9475f6d617Schristos
9575f6d617Schristos    *local*)
9675f6d617Schristos       # First pass through any local machine types.
9775f6d617Schristos       echo $1
98*cc576e1dSsevan       exit ;;
9975f6d617Schristos
10075f6d617Schristos    * )
10175f6d617Schristos       break ;;
10275f6d617Schristos  esac
10375f6d617Schristosdone
10475f6d617Schristos
10575f6d617Schristoscase $# in
10675f6d617Schristos 0) echo "$me: missing argument$help" >&2
10775f6d617Schristos    exit 1;;
10875f6d617Schristos 1) ;;
10975f6d617Schristos *) echo "$me: too many arguments$help" >&2
11075f6d617Schristos    exit 1;;
11175f6d617Schristosesac
11275f6d617Schristos
11375f6d617Schristos# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
11475f6d617Schristos# Here we must recognize all the valid KERNEL-OS combinations.
11575f6d617Schristosmaybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
11675f6d617Schristoscase $maybe_os in
117*cc576e1dSsevan  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
118*cc576e1dSsevan  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
119*cc576e1dSsevan  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
120*cc576e1dSsevan  kopensolaris*-gnu* | cloudabi*-eabi* | \
121*cc576e1dSsevan  storm-chaos* | os2-emx* | rtmk-nova*)
12275f6d617Schristos    os=-$maybe_os
12375f6d617Schristos    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
12475f6d617Schristos    ;;
125*cc576e1dSsevan  android-linux)
126*cc576e1dSsevan    os=-linux-android
127*cc576e1dSsevan    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
128*cc576e1dSsevan    ;;
12975f6d617Schristos  *)
13075f6d617Schristos    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
13175f6d617Schristos    if [ $basic_machine != $1 ]
13275f6d617Schristos    then os=`echo $1 | sed 's/.*-/-/'`
13375f6d617Schristos    else os=; fi
13475f6d617Schristos    ;;
13575f6d617Schristosesac
13675f6d617Schristos
13775f6d617Schristos### Let's recognize common machines as not being operating systems so
13875f6d617Schristos### that things like config.sub decstation-3100 work.  We also
13975f6d617Schristos### recognize some manufacturers as not being operating systems, so we
14075f6d617Schristos### can provide default operating systems below.
14175f6d617Schristoscase $os in
14275f6d617Schristos	-sun*os*)
14375f6d617Schristos		# Prevent following clause from handling this invalid input.
14475f6d617Schristos		;;
14575f6d617Schristos	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
14675f6d617Schristos	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
14775f6d617Schristos	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
14875f6d617Schristos	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
14975f6d617Schristos	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
15075f6d617Schristos	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
151*cc576e1dSsevan	-apple | -axis | -knuth | -cray | -microblaze*)
15275f6d617Schristos		os=
15375f6d617Schristos		basic_machine=$1
15475f6d617Schristos		;;
155*cc576e1dSsevan	-bluegene*)
156*cc576e1dSsevan		os=-cnk
157*cc576e1dSsevan		;;
15875f6d617Schristos	-sim | -cisco | -oki | -wec | -winbond)
15975f6d617Schristos		os=
16075f6d617Schristos		basic_machine=$1
16175f6d617Schristos		;;
16275f6d617Schristos	-scout)
16375f6d617Schristos		;;
16475f6d617Schristos	-wrs)
16575f6d617Schristos		os=-vxworks
16675f6d617Schristos		basic_machine=$1
16775f6d617Schristos		;;
16875f6d617Schristos	-chorusos*)
16975f6d617Schristos		os=-chorusos
17075f6d617Schristos		basic_machine=$1
17175f6d617Schristos		;;
17275f6d617Schristos	-chorusrdb)
17375f6d617Schristos		os=-chorusrdb
17475f6d617Schristos		basic_machine=$1
17575f6d617Schristos		;;
17675f6d617Schristos	-hiux*)
17775f6d617Schristos		os=-hiuxwe2
17875f6d617Schristos		;;
179*cc576e1dSsevan	-sco6)
180*cc576e1dSsevan		os=-sco5v6
181*cc576e1dSsevan		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
182*cc576e1dSsevan		;;
18375f6d617Schristos	-sco5)
18475f6d617Schristos		os=-sco3.2v5
18575f6d617Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
18675f6d617Schristos		;;
18775f6d617Schristos	-sco4)
18875f6d617Schristos		os=-sco3.2v4
18975f6d617Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
19075f6d617Schristos		;;
19175f6d617Schristos	-sco3.2.[4-9]*)
19275f6d617Schristos		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
19375f6d617Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
19475f6d617Schristos		;;
19575f6d617Schristos	-sco3.2v[4-9]*)
19675f6d617Schristos		# Don't forget version if it is 3.2v4 or newer.
19775f6d617Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
19875f6d617Schristos		;;
199*cc576e1dSsevan	-sco5v6*)
200*cc576e1dSsevan		# Don't forget version if it is 3.2v4 or newer.
201*cc576e1dSsevan		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
202*cc576e1dSsevan		;;
20375f6d617Schristos	-sco*)
20475f6d617Schristos		os=-sco3.2v2
20575f6d617Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
20675f6d617Schristos		;;
20775f6d617Schristos	-udk*)
20875f6d617Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
20975f6d617Schristos		;;
21075f6d617Schristos	-isc)
21175f6d617Schristos		os=-isc2.2
21275f6d617Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
21375f6d617Schristos		;;
21475f6d617Schristos	-clix*)
21575f6d617Schristos		basic_machine=clipper-intergraph
21675f6d617Schristos		;;
21775f6d617Schristos	-isc*)
21875f6d617Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
21975f6d617Schristos		;;
220*cc576e1dSsevan	-lynx*178)
221*cc576e1dSsevan		os=-lynxos178
222*cc576e1dSsevan		;;
223*cc576e1dSsevan	-lynx*5)
224*cc576e1dSsevan		os=-lynxos5
225*cc576e1dSsevan		;;
22675f6d617Schristos	-lynx*)
22775f6d617Schristos		os=-lynxos
22875f6d617Schristos		;;
22975f6d617Schristos	-ptx*)
23075f6d617Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
23175f6d617Schristos		;;
23275f6d617Schristos	-windowsnt*)
23375f6d617Schristos		os=`echo $os | sed -e 's/windowsnt/winnt/'`
23475f6d617Schristos		;;
23575f6d617Schristos	-psos*)
23675f6d617Schristos		os=-psos
23775f6d617Schristos		;;
23875f6d617Schristos	-mint | -mint[0-9]*)
23975f6d617Schristos		basic_machine=m68k-atari
24075f6d617Schristos		os=-mint
24175f6d617Schristos		;;
24275f6d617Schristosesac
24375f6d617Schristos
24475f6d617Schristos# Decode aliases for certain CPU-COMPANY combinations.
24575f6d617Schristoscase $basic_machine in
24675f6d617Schristos	# Recognize the basic CPU types without company name.
24775f6d617Schristos	# Some are omitted here because they have special meanings below.
24875f6d617Schristos	1750a | 580 \
24975f6d617Schristos	| a29k \
250*cc576e1dSsevan	| aarch64 | aarch64_be \
25175f6d617Schristos	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
25275f6d617Schristos	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
253*cc576e1dSsevan	| am33_2.0 \
254*cc576e1dSsevan	| arc | arceb \
255*cc576e1dSsevan	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
256*cc576e1dSsevan	| avr | avr32 \
257*cc576e1dSsevan	| ba \
258*cc576e1dSsevan	| be32 | be64 \
259*cc576e1dSsevan	| bfin \
260*cc576e1dSsevan	| c4x | c8051 | clipper \
261*cc576e1dSsevan	| d10v | d30v | dlx | dsp16xx \
262*cc576e1dSsevan	| e2k | epiphany \
263*cc576e1dSsevan	| fido | fr30 | frv | ft32 \
26475f6d617Schristos	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
265*cc576e1dSsevan	| hexagon \
26675f6d617Schristos	| i370 | i860 | i960 | ia64 \
267*cc576e1dSsevan	| ip2k | iq2000 \
268*cc576e1dSsevan	| k1om \
269*cc576e1dSsevan	| le32 | le64 \
270*cc576e1dSsevan	| lm32 \
271*cc576e1dSsevan	| m32c | m32r | m32rle | m68000 | m68k | m88k \
272*cc576e1dSsevan	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
273*cc576e1dSsevan	| mips | mipsbe | mipseb | mipsel | mipsle \
274*cc576e1dSsevan	| mips16 \
275*cc576e1dSsevan	| mips64 | mips64el \
276*cc576e1dSsevan	| mips64octeon | mips64octeonel \
277*cc576e1dSsevan	| mips64orion | mips64orionel \
278*cc576e1dSsevan	| mips64r5900 | mips64r5900el \
279*cc576e1dSsevan	| mips64vr | mips64vrel \
280*cc576e1dSsevan	| mips64vr4100 | mips64vr4100el \
281*cc576e1dSsevan	| mips64vr4300 | mips64vr4300el \
282*cc576e1dSsevan	| mips64vr5000 | mips64vr5000el \
283*cc576e1dSsevan	| mips64vr5900 | mips64vr5900el \
284*cc576e1dSsevan	| mipsisa32 | mipsisa32el \
285*cc576e1dSsevan	| mipsisa32r2 | mipsisa32r2el \
286*cc576e1dSsevan	| mipsisa32r6 | mipsisa32r6el \
287*cc576e1dSsevan	| mipsisa64 | mipsisa64el \
288*cc576e1dSsevan	| mipsisa64r2 | mipsisa64r2el \
289*cc576e1dSsevan	| mipsisa64r6 | mipsisa64r6el \
290*cc576e1dSsevan	| mipsisa64sb1 | mipsisa64sb1el \
291*cc576e1dSsevan	| mipsisa64sr71k | mipsisa64sr71kel \
292*cc576e1dSsevan	| mipsr5900 | mipsr5900el \
293*cc576e1dSsevan	| mipstx39 | mipstx39el \
29475f6d617Schristos	| mn10200 | mn10300 \
295*cc576e1dSsevan	| moxie \
296*cc576e1dSsevan	| mt \
297*cc576e1dSsevan	| msp430 \
298*cc576e1dSsevan	| nds32 | nds32le | nds32be \
299*cc576e1dSsevan	| nios | nios2 | nios2eb | nios2el \
30075f6d617Schristos	| ns16k | ns32k \
301*cc576e1dSsevan	| open8 | or1k | or1knd | or32 \
30275f6d617Schristos	| pdp10 | pdp11 | pj | pjl \
303*cc576e1dSsevan	| powerpc | powerpc64 | powerpc64le | powerpcle \
304*cc576e1dSsevan	| pru \
30575f6d617Schristos	| pyramid \
306*cc576e1dSsevan	| riscv32 | riscv64 \
307*cc576e1dSsevan	| rl78 | rx \
308*cc576e1dSsevan	| score \
309*cc576e1dSsevan	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
310*cc576e1dSsevan	| sh64 | sh64le \
311*cc576e1dSsevan	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
312*cc576e1dSsevan	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
313*cc576e1dSsevan	| spu \
314*cc576e1dSsevan	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
315*cc576e1dSsevan	| ubicom32 \
316*cc576e1dSsevan	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
317*cc576e1dSsevan	| visium \
31875f6d617Schristos	| we32k \
319*cc576e1dSsevan	| x86 | xc16x | xstormy16 | xtensa \
320*cc576e1dSsevan	| z8k | z80)
32175f6d617Schristos		basic_machine=$basic_machine-unknown
32275f6d617Schristos		;;
323*cc576e1dSsevan	c54x)
324*cc576e1dSsevan		basic_machine=tic54x-unknown
325*cc576e1dSsevan		;;
326*cc576e1dSsevan	c55x)
327*cc576e1dSsevan		basic_machine=tic55x-unknown
328*cc576e1dSsevan		;;
329*cc576e1dSsevan	c6x)
330*cc576e1dSsevan		basic_machine=tic6x-unknown
331*cc576e1dSsevan		;;
332*cc576e1dSsevan	leon|leon[3-9])
333*cc576e1dSsevan		basic_machine=sparc-$basic_machine
334*cc576e1dSsevan		;;
335*cc576e1dSsevan	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
33675f6d617Schristos		basic_machine=$basic_machine-unknown
33775f6d617Schristos		os=-none
33875f6d617Schristos		;;
33975f6d617Schristos	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
34075f6d617Schristos		;;
341*cc576e1dSsevan	ms1)
342*cc576e1dSsevan		basic_machine=mt-unknown
343*cc576e1dSsevan		;;
344*cc576e1dSsevan
345*cc576e1dSsevan	strongarm | thumb | xscale)
346*cc576e1dSsevan		basic_machine=arm-unknown
347*cc576e1dSsevan		;;
348*cc576e1dSsevan	xgate)
349*cc576e1dSsevan		basic_machine=$basic_machine-unknown
350*cc576e1dSsevan		os=-none
351*cc576e1dSsevan		;;
352*cc576e1dSsevan	xscaleeb)
353*cc576e1dSsevan		basic_machine=armeb-unknown
354*cc576e1dSsevan		;;
355*cc576e1dSsevan
356*cc576e1dSsevan	xscaleel)
357*cc576e1dSsevan		basic_machine=armel-unknown
358*cc576e1dSsevan		;;
35975f6d617Schristos
36075f6d617Schristos	# We use `pc' rather than `unknown'
36175f6d617Schristos	# because (1) that's what they normally are, and
36275f6d617Schristos	# (2) the word "unknown" tends to confuse beginning users.
36375f6d617Schristos	i*86 | x86_64)
36475f6d617Schristos	  basic_machine=$basic_machine-pc
36575f6d617Schristos	  ;;
36675f6d617Schristos	# Object if more than one company name word.
36775f6d617Schristos	*-*-*)
36875f6d617Schristos		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
36975f6d617Schristos		exit 1
37075f6d617Schristos		;;
37175f6d617Schristos	# Recognize the basic CPU types with company name.
37275f6d617Schristos	580-* \
37375f6d617Schristos	| a29k-* \
374*cc576e1dSsevan	| aarch64-* | aarch64_be-* \
37575f6d617Schristos	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
37675f6d617Schristos	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
377*cc576e1dSsevan	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
378*cc576e1dSsevan	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
379*cc576e1dSsevan	| avr-* | avr32-* \
380*cc576e1dSsevan	| ba-* \
381*cc576e1dSsevan	| be32-* | be64-* \
382*cc576e1dSsevan	| bfin-* | bs2000-* \
383*cc576e1dSsevan	| c[123]* | c30-* | [cjt]90-* | c4x-* \
384*cc576e1dSsevan	| c8051-* | clipper-* | craynv-* | cydra-* \
385*cc576e1dSsevan	| d10v-* | d30v-* | dlx-* \
386*cc576e1dSsevan	| e2k-* | elxsi-* \
387*cc576e1dSsevan	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
38875f6d617Schristos	| h8300-* | h8500-* \
38975f6d617Schristos	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
390*cc576e1dSsevan	| hexagon-* \
39175f6d617Schristos	| i*86-* | i860-* | i960-* | ia64-* \
392*cc576e1dSsevan	| ip2k-* | iq2000-* \
393*cc576e1dSsevan	| k1om-* \
394*cc576e1dSsevan	| le32-* | le64-* \
395*cc576e1dSsevan	| lm32-* \
396*cc576e1dSsevan	| m32c-* | m32r-* | m32rle-* \
39775f6d617Schristos	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
398*cc576e1dSsevan	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
399*cc576e1dSsevan	| microblaze-* | microblazeel-* \
400*cc576e1dSsevan	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
401*cc576e1dSsevan	| mips16-* \
402*cc576e1dSsevan	| mips64-* | mips64el-* \
403*cc576e1dSsevan	| mips64octeon-* | mips64octeonel-* \
404*cc576e1dSsevan	| mips64orion-* | mips64orionel-* \
405*cc576e1dSsevan	| mips64r5900-* | mips64r5900el-* \
406*cc576e1dSsevan	| mips64vr-* | mips64vrel-* \
407*cc576e1dSsevan	| mips64vr4100-* | mips64vr4100el-* \
408*cc576e1dSsevan	| mips64vr4300-* | mips64vr4300el-* \
409*cc576e1dSsevan	| mips64vr5000-* | mips64vr5000el-* \
410*cc576e1dSsevan	| mips64vr5900-* | mips64vr5900el-* \
411*cc576e1dSsevan	| mipsisa32-* | mipsisa32el-* \
412*cc576e1dSsevan	| mipsisa32r2-* | mipsisa32r2el-* \
413*cc576e1dSsevan	| mipsisa32r6-* | mipsisa32r6el-* \
414*cc576e1dSsevan	| mipsisa64-* | mipsisa64el-* \
415*cc576e1dSsevan	| mipsisa64r2-* | mipsisa64r2el-* \
416*cc576e1dSsevan	| mipsisa64r6-* | mipsisa64r6el-* \
417*cc576e1dSsevan	| mipsisa64sb1-* | mipsisa64sb1el-* \
418*cc576e1dSsevan	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
419*cc576e1dSsevan	| mipsr5900-* | mipsr5900el-* \
420*cc576e1dSsevan	| mipstx39-* | mipstx39el-* \
421*cc576e1dSsevan	| mmix-* \
422*cc576e1dSsevan	| mt-* \
423*cc576e1dSsevan	| msp430-* \
424*cc576e1dSsevan	| nds32-* | nds32le-* | nds32be-* \
425*cc576e1dSsevan	| nios-* | nios2-* | nios2eb-* | nios2el-* \
42675f6d617Schristos	| none-* | np1-* | ns16k-* | ns32k-* \
427*cc576e1dSsevan	| open8-* \
428*cc576e1dSsevan	| or1k*-* \
42975f6d617Schristos	| orion-* \
43075f6d617Schristos	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
431*cc576e1dSsevan	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
432*cc576e1dSsevan	| pru-* \
43375f6d617Schristos	| pyramid-* \
434*cc576e1dSsevan	| riscv32-* | riscv64-* \
435*cc576e1dSsevan	| rl78-* | romp-* | rs6000-* | rx-* \
436*cc576e1dSsevan	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
437*cc576e1dSsevan	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
438*cc576e1dSsevan	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
439*cc576e1dSsevan	| sparclite-* \
440*cc576e1dSsevan	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
441*cc576e1dSsevan	| tahoe-* \
442*cc576e1dSsevan	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
443*cc576e1dSsevan	| tile*-* \
444*cc576e1dSsevan	| tron-* \
445*cc576e1dSsevan	| ubicom32-* \
446*cc576e1dSsevan	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
447*cc576e1dSsevan	| vax-* \
448*cc576e1dSsevan	| visium-* \
44975f6d617Schristos	| we32k-* \
450*cc576e1dSsevan	| x86-* | x86_64-* | xc16x-* | xps100-* \
451*cc576e1dSsevan	| xstormy16-* | xtensa*-* \
45275f6d617Schristos	| ymp-* \
453*cc576e1dSsevan	| z8k-* | z80-*)
454*cc576e1dSsevan		;;
455*cc576e1dSsevan	# Recognize the basic CPU types without company name, with glob match.
456*cc576e1dSsevan	xtensa*)
457*cc576e1dSsevan		basic_machine=$basic_machine-unknown
45875f6d617Schristos		;;
45975f6d617Schristos	# Recognize the various machine names and aliases which stand
46075f6d617Schristos	# for a CPU type and a company and sometimes even an OS.
46175f6d617Schristos	386bsd)
46275f6d617Schristos		basic_machine=i386-unknown
46375f6d617Schristos		os=-bsd
46475f6d617Schristos		;;
46575f6d617Schristos	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
46675f6d617Schristos		basic_machine=m68000-att
46775f6d617Schristos		;;
46875f6d617Schristos	3b*)
46975f6d617Schristos		basic_machine=we32k-att
47075f6d617Schristos		;;
47175f6d617Schristos	a29khif)
47275f6d617Schristos		basic_machine=a29k-amd
47375f6d617Schristos		os=-udi
47475f6d617Schristos		;;
475*cc576e1dSsevan	abacus)
476*cc576e1dSsevan		basic_machine=abacus-unknown
477*cc576e1dSsevan		;;
47875f6d617Schristos	adobe68k)
47975f6d617Schristos		basic_machine=m68010-adobe
48075f6d617Schristos		os=-scout
48175f6d617Schristos		;;
48275f6d617Schristos	alliant | fx80)
48375f6d617Schristos		basic_machine=fx80-alliant
48475f6d617Schristos		;;
48575f6d617Schristos	altos | altos3068)
48675f6d617Schristos		basic_machine=m68k-altos
48775f6d617Schristos		;;
48875f6d617Schristos	am29k)
48975f6d617Schristos		basic_machine=a29k-none
49075f6d617Schristos		os=-bsd
49175f6d617Schristos		;;
492*cc576e1dSsevan	amd64)
493*cc576e1dSsevan		basic_machine=x86_64-pc
494*cc576e1dSsevan		;;
495*cc576e1dSsevan	amd64-*)
496*cc576e1dSsevan		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
497*cc576e1dSsevan		;;
49875f6d617Schristos	amdahl)
49975f6d617Schristos		basic_machine=580-amdahl
50075f6d617Schristos		os=-sysv
50175f6d617Schristos		;;
50275f6d617Schristos	amiga | amiga-*)
50375f6d617Schristos		basic_machine=m68k-unknown
50475f6d617Schristos		;;
50575f6d617Schristos	amigaos | amigados)
50675f6d617Schristos		basic_machine=m68k-unknown
50775f6d617Schristos		os=-amigaos
50875f6d617Schristos		;;
50975f6d617Schristos	amigaunix | amix)
51075f6d617Schristos		basic_machine=m68k-unknown
51175f6d617Schristos		os=-sysv4
51275f6d617Schristos		;;
51375f6d617Schristos	apollo68)
51475f6d617Schristos		basic_machine=m68k-apollo
51575f6d617Schristos		os=-sysv
51675f6d617Schristos		;;
51775f6d617Schristos	apollo68bsd)
51875f6d617Schristos		basic_machine=m68k-apollo
51975f6d617Schristos		os=-bsd
52075f6d617Schristos		;;
521*cc576e1dSsevan	aros)
522*cc576e1dSsevan		basic_machine=i386-pc
523*cc576e1dSsevan		os=-aros
524*cc576e1dSsevan		;;
525*cc576e1dSsevan	asmjs)
526*cc576e1dSsevan		basic_machine=asmjs-unknown
527*cc576e1dSsevan		;;
52875f6d617Schristos	aux)
52975f6d617Schristos		basic_machine=m68k-apple
53075f6d617Schristos		os=-aux
53175f6d617Schristos		;;
53275f6d617Schristos	balance)
53375f6d617Schristos		basic_machine=ns32k-sequent
53475f6d617Schristos		os=-dynix
53575f6d617Schristos		;;
536*cc576e1dSsevan	blackfin)
537*cc576e1dSsevan		basic_machine=bfin-unknown
538*cc576e1dSsevan		os=-linux
539*cc576e1dSsevan		;;
540*cc576e1dSsevan	blackfin-*)
541*cc576e1dSsevan		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
542*cc576e1dSsevan		os=-linux
543*cc576e1dSsevan		;;
544*cc576e1dSsevan	bluegene*)
545*cc576e1dSsevan		basic_machine=powerpc-ibm
546*cc576e1dSsevan		os=-cnk
547*cc576e1dSsevan		;;
548*cc576e1dSsevan	c54x-*)
549*cc576e1dSsevan		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
550*cc576e1dSsevan		;;
551*cc576e1dSsevan	c55x-*)
552*cc576e1dSsevan		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
553*cc576e1dSsevan		;;
554*cc576e1dSsevan	c6x-*)
555*cc576e1dSsevan		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
556*cc576e1dSsevan		;;
55775f6d617Schristos	c90)
55875f6d617Schristos		basic_machine=c90-cray
55975f6d617Schristos		os=-unicos
56075f6d617Schristos		;;
561*cc576e1dSsevan	cegcc)
562*cc576e1dSsevan		basic_machine=arm-unknown
563*cc576e1dSsevan		os=-cegcc
564*cc576e1dSsevan		;;
56575f6d617Schristos	convex-c1)
56675f6d617Schristos		basic_machine=c1-convex
56775f6d617Schristos		os=-bsd
56875f6d617Schristos		;;
56975f6d617Schristos	convex-c2)
57075f6d617Schristos		basic_machine=c2-convex
57175f6d617Schristos		os=-bsd
57275f6d617Schristos		;;
57375f6d617Schristos	convex-c32)
57475f6d617Schristos		basic_machine=c32-convex
57575f6d617Schristos		os=-bsd
57675f6d617Schristos		;;
57775f6d617Schristos	convex-c34)
57875f6d617Schristos		basic_machine=c34-convex
57975f6d617Schristos		os=-bsd
58075f6d617Schristos		;;
58175f6d617Schristos	convex-c38)
58275f6d617Schristos		basic_machine=c38-convex
58375f6d617Schristos		os=-bsd
58475f6d617Schristos		;;
58575f6d617Schristos	cray | j90)
58675f6d617Schristos		basic_machine=j90-cray
58775f6d617Schristos		os=-unicos
58875f6d617Schristos		;;
589*cc576e1dSsevan	craynv)
590*cc576e1dSsevan		basic_machine=craynv-cray
591*cc576e1dSsevan		os=-unicosmp
592*cc576e1dSsevan		;;
593*cc576e1dSsevan	cr16 | cr16-*)
594*cc576e1dSsevan		basic_machine=cr16-unknown
595*cc576e1dSsevan		os=-elf
596*cc576e1dSsevan		;;
59775f6d617Schristos	crds | unos)
59875f6d617Schristos		basic_machine=m68k-crds
59975f6d617Schristos		;;
600*cc576e1dSsevan	crisv32 | crisv32-* | etraxfs*)
601*cc576e1dSsevan		basic_machine=crisv32-axis
602*cc576e1dSsevan		;;
60375f6d617Schristos	cris | cris-* | etrax*)
60475f6d617Schristos		basic_machine=cris-axis
60575f6d617Schristos		;;
606*cc576e1dSsevan	crx)
607*cc576e1dSsevan		basic_machine=crx-unknown
608*cc576e1dSsevan		os=-elf
609*cc576e1dSsevan		;;
61075f6d617Schristos	da30 | da30-*)
61175f6d617Schristos		basic_machine=m68k-da30
61275f6d617Schristos		;;
61375f6d617Schristos	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
61475f6d617Schristos		basic_machine=mips-dec
61575f6d617Schristos		;;
61675f6d617Schristos	decsystem10* | dec10*)
61775f6d617Schristos		basic_machine=pdp10-dec
61875f6d617Schristos		os=-tops10
61975f6d617Schristos		;;
62075f6d617Schristos	decsystem20* | dec20*)
62175f6d617Schristos		basic_machine=pdp10-dec
62275f6d617Schristos		os=-tops20
62375f6d617Schristos		;;
62475f6d617Schristos	delta | 3300 | motorola-3300 | motorola-delta \
62575f6d617Schristos	      | 3300-motorola | delta-motorola)
62675f6d617Schristos		basic_machine=m68k-motorola
62775f6d617Schristos		;;
62875f6d617Schristos	delta88)
62975f6d617Schristos		basic_machine=m88k-motorola
63075f6d617Schristos		os=-sysv3
63175f6d617Schristos		;;
632*cc576e1dSsevan	dicos)
633*cc576e1dSsevan		basic_machine=i686-pc
634*cc576e1dSsevan		os=-dicos
635*cc576e1dSsevan		;;
636*cc576e1dSsevan	djgpp)
637*cc576e1dSsevan		basic_machine=i586-pc
638*cc576e1dSsevan		os=-msdosdjgpp
639*cc576e1dSsevan		;;
64075f6d617Schristos	dpx20 | dpx20-*)
64175f6d617Schristos		basic_machine=rs6000-bull
64275f6d617Schristos		os=-bosx
64375f6d617Schristos		;;
64475f6d617Schristos	dpx2* | dpx2*-bull)
64575f6d617Schristos		basic_machine=m68k-bull
64675f6d617Schristos		os=-sysv3
64775f6d617Schristos		;;
648*cc576e1dSsevan	e500v[12])
649*cc576e1dSsevan		basic_machine=powerpc-unknown
650*cc576e1dSsevan		os=$os"spe"
651*cc576e1dSsevan		;;
652*cc576e1dSsevan	e500v[12]-*)
653*cc576e1dSsevan		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
654*cc576e1dSsevan		os=$os"spe"
655*cc576e1dSsevan		;;
65675f6d617Schristos	ebmon29k)
65775f6d617Schristos		basic_machine=a29k-amd
65875f6d617Schristos		os=-ebmon
65975f6d617Schristos		;;
66075f6d617Schristos	elxsi)
66175f6d617Schristos		basic_machine=elxsi-elxsi
66275f6d617Schristos		os=-bsd
66375f6d617Schristos		;;
66475f6d617Schristos	encore | umax | mmax)
66575f6d617Schristos		basic_machine=ns32k-encore
66675f6d617Schristos		;;
66775f6d617Schristos	es1800 | OSE68k | ose68k | ose | OSE)
66875f6d617Schristos		basic_machine=m68k-ericsson
66975f6d617Schristos		os=-ose
67075f6d617Schristos		;;
67175f6d617Schristos	fx2800)
67275f6d617Schristos		basic_machine=i860-alliant
67375f6d617Schristos		;;
67475f6d617Schristos	genix)
67575f6d617Schristos		basic_machine=ns32k-ns
67675f6d617Schristos		;;
67775f6d617Schristos	gmicro)
67875f6d617Schristos		basic_machine=tron-gmicro
67975f6d617Schristos		os=-sysv
68075f6d617Schristos		;;
68175f6d617Schristos	go32)
68275f6d617Schristos		basic_machine=i386-pc
68375f6d617Schristos		os=-go32
68475f6d617Schristos		;;
68575f6d617Schristos	h3050r* | hiux*)
68675f6d617Schristos		basic_machine=hppa1.1-hitachi
68775f6d617Schristos		os=-hiuxwe2
68875f6d617Schristos		;;
68975f6d617Schristos	h8300hms)
69075f6d617Schristos		basic_machine=h8300-hitachi
69175f6d617Schristos		os=-hms
69275f6d617Schristos		;;
69375f6d617Schristos	h8300xray)
69475f6d617Schristos		basic_machine=h8300-hitachi
69575f6d617Schristos		os=-xray
69675f6d617Schristos		;;
69775f6d617Schristos	h8500hms)
69875f6d617Schristos		basic_machine=h8500-hitachi
69975f6d617Schristos		os=-hms
70075f6d617Schristos		;;
70175f6d617Schristos	harris)
70275f6d617Schristos		basic_machine=m88k-harris
70375f6d617Schristos		os=-sysv3
70475f6d617Schristos		;;
70575f6d617Schristos	hp300-*)
70675f6d617Schristos		basic_machine=m68k-hp
70775f6d617Schristos		;;
70875f6d617Schristos	hp300bsd)
70975f6d617Schristos		basic_machine=m68k-hp
71075f6d617Schristos		os=-bsd
71175f6d617Schristos		;;
71275f6d617Schristos	hp300hpux)
71375f6d617Schristos		basic_machine=m68k-hp
71475f6d617Schristos		os=-hpux
71575f6d617Schristos		;;
71675f6d617Schristos	hp3k9[0-9][0-9] | hp9[0-9][0-9])
71775f6d617Schristos		basic_machine=hppa1.0-hp
71875f6d617Schristos		;;
71975f6d617Schristos	hp9k2[0-9][0-9] | hp9k31[0-9])
72075f6d617Schristos		basic_machine=m68000-hp
72175f6d617Schristos		;;
72275f6d617Schristos	hp9k3[2-9][0-9])
72375f6d617Schristos		basic_machine=m68k-hp
72475f6d617Schristos		;;
72575f6d617Schristos	hp9k6[0-9][0-9] | hp6[0-9][0-9])
72675f6d617Schristos		basic_machine=hppa1.0-hp
72775f6d617Schristos		;;
72875f6d617Schristos	hp9k7[0-79][0-9] | hp7[0-79][0-9])
72975f6d617Schristos		basic_machine=hppa1.1-hp
73075f6d617Schristos		;;
73175f6d617Schristos	hp9k78[0-9] | hp78[0-9])
73275f6d617Schristos		# FIXME: really hppa2.0-hp
73375f6d617Schristos		basic_machine=hppa1.1-hp
73475f6d617Schristos		;;
73575f6d617Schristos	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
73675f6d617Schristos		# FIXME: really hppa2.0-hp
73775f6d617Schristos		basic_machine=hppa1.1-hp
73875f6d617Schristos		;;
73975f6d617Schristos	hp9k8[0-9][13679] | hp8[0-9][13679])
74075f6d617Schristos		basic_machine=hppa1.1-hp
74175f6d617Schristos		;;
74275f6d617Schristos	hp9k8[0-9][0-9] | hp8[0-9][0-9])
74375f6d617Schristos		basic_machine=hppa1.0-hp
74475f6d617Schristos		;;
74575f6d617Schristos	hppa-next)
74675f6d617Schristos		os=-nextstep3
74775f6d617Schristos		;;
74875f6d617Schristos	hppaosf)
74975f6d617Schristos		basic_machine=hppa1.1-hp
75075f6d617Schristos		os=-osf
75175f6d617Schristos		;;
75275f6d617Schristos	hppro)
75375f6d617Schristos		basic_machine=hppa1.1-hp
75475f6d617Schristos		os=-proelf
75575f6d617Schristos		;;
75675f6d617Schristos	i370-ibm* | ibm*)
75775f6d617Schristos		basic_machine=i370-ibm
75875f6d617Schristos		;;
75975f6d617Schristos	i*86v32)
76075f6d617Schristos		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
76175f6d617Schristos		os=-sysv32
76275f6d617Schristos		;;
76375f6d617Schristos	i*86v4*)
76475f6d617Schristos		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
76575f6d617Schristos		os=-sysv4
76675f6d617Schristos		;;
76775f6d617Schristos	i*86v)
76875f6d617Schristos		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
76975f6d617Schristos		os=-sysv
77075f6d617Schristos		;;
77175f6d617Schristos	i*86sol2)
77275f6d617Schristos		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
77375f6d617Schristos		os=-solaris2
77475f6d617Schristos		;;
77575f6d617Schristos	i386mach)
77675f6d617Schristos		basic_machine=i386-mach
77775f6d617Schristos		os=-mach
77875f6d617Schristos		;;
77975f6d617Schristos	i386-vsta | vsta)
78075f6d617Schristos		basic_machine=i386-unknown
78175f6d617Schristos		os=-vsta
78275f6d617Schristos		;;
78375f6d617Schristos	iris | iris4d)
78475f6d617Schristos		basic_machine=mips-sgi
78575f6d617Schristos		case $os in
78675f6d617Schristos		    -irix*)
78775f6d617Schristos			;;
78875f6d617Schristos		    *)
78975f6d617Schristos			os=-irix4
79075f6d617Schristos			;;
79175f6d617Schristos		esac
79275f6d617Schristos		;;
79375f6d617Schristos	isi68 | isi)
79475f6d617Schristos		basic_machine=m68k-isi
79575f6d617Schristos		os=-sysv
79675f6d617Schristos		;;
797*cc576e1dSsevan	leon-*|leon[3-9]-*)
798*cc576e1dSsevan		basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
799*cc576e1dSsevan		;;
800*cc576e1dSsevan	m68knommu)
801*cc576e1dSsevan		basic_machine=m68k-unknown
802*cc576e1dSsevan		os=-linux
803*cc576e1dSsevan		;;
804*cc576e1dSsevan	m68knommu-*)
805*cc576e1dSsevan		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
806*cc576e1dSsevan		os=-linux
807*cc576e1dSsevan		;;
80875f6d617Schristos	m88k-omron*)
80975f6d617Schristos		basic_machine=m88k-omron
81075f6d617Schristos		;;
81175f6d617Schristos	magnum | m3230)
81275f6d617Schristos		basic_machine=mips-mips
81375f6d617Schristos		os=-sysv
81475f6d617Schristos		;;
81575f6d617Schristos	merlin)
81675f6d617Schristos		basic_machine=ns32k-utek
81775f6d617Schristos		os=-sysv
81875f6d617Schristos		;;
819*cc576e1dSsevan	microblaze*)
820*cc576e1dSsevan		basic_machine=microblaze-xilinx
821*cc576e1dSsevan		;;
822*cc576e1dSsevan	mingw64)
823*cc576e1dSsevan		basic_machine=x86_64-pc
824*cc576e1dSsevan		os=-mingw64
825*cc576e1dSsevan		;;
82675f6d617Schristos	mingw32)
827*cc576e1dSsevan		basic_machine=i686-pc
82875f6d617Schristos		os=-mingw32
82975f6d617Schristos		;;
830*cc576e1dSsevan	mingw32ce)
831*cc576e1dSsevan		basic_machine=arm-unknown
832*cc576e1dSsevan		os=-mingw32ce
833*cc576e1dSsevan		;;
83475f6d617Schristos	miniframe)
83575f6d617Schristos		basic_machine=m68000-convergent
83675f6d617Schristos		;;
83775f6d617Schristos	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
83875f6d617Schristos		basic_machine=m68k-atari
83975f6d617Schristos		os=-mint
84075f6d617Schristos		;;
84175f6d617Schristos	mips3*-*)
84275f6d617Schristos		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
84375f6d617Schristos		;;
84475f6d617Schristos	mips3*)
84575f6d617Schristos		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
84675f6d617Schristos		;;
84775f6d617Schristos	monitor)
84875f6d617Schristos		basic_machine=m68k-rom68k
84975f6d617Schristos		os=-coff
85075f6d617Schristos		;;
85175f6d617Schristos	morphos)
85275f6d617Schristos		basic_machine=powerpc-unknown
85375f6d617Schristos		os=-morphos
85475f6d617Schristos		;;
855*cc576e1dSsevan	moxiebox)
856*cc576e1dSsevan		basic_machine=moxie-unknown
857*cc576e1dSsevan		os=-moxiebox
858*cc576e1dSsevan		;;
85975f6d617Schristos	msdos)
86075f6d617Schristos		basic_machine=i386-pc
86175f6d617Schristos		os=-msdos
86275f6d617Schristos		;;
863*cc576e1dSsevan	ms1-*)
864*cc576e1dSsevan		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
865*cc576e1dSsevan		;;
866*cc576e1dSsevan	msys)
867*cc576e1dSsevan		basic_machine=i686-pc
868*cc576e1dSsevan		os=-msys
869*cc576e1dSsevan		;;
87075f6d617Schristos	mvs)
87175f6d617Schristos		basic_machine=i370-ibm
87275f6d617Schristos		os=-mvs
87375f6d617Schristos		;;
874*cc576e1dSsevan	nacl)
875*cc576e1dSsevan		basic_machine=le32-unknown
876*cc576e1dSsevan		os=-nacl
877*cc576e1dSsevan		;;
87875f6d617Schristos	ncr3000)
87975f6d617Schristos		basic_machine=i486-ncr
88075f6d617Schristos		os=-sysv4
88175f6d617Schristos		;;
88275f6d617Schristos	netbsd386)
88375f6d617Schristos		basic_machine=i386-unknown
88475f6d617Schristos		os=-netbsd
88575f6d617Schristos		;;
88675f6d617Schristos	netwinder)
88775f6d617Schristos		basic_machine=armv4l-rebel
88875f6d617Schristos		os=-linux
88975f6d617Schristos		;;
89075f6d617Schristos	news | news700 | news800 | news900)
89175f6d617Schristos		basic_machine=m68k-sony
89275f6d617Schristos		os=-newsos
89375f6d617Schristos		;;
89475f6d617Schristos	news1000)
89575f6d617Schristos		basic_machine=m68030-sony
89675f6d617Schristos		os=-newsos
89775f6d617Schristos		;;
89875f6d617Schristos	news-3600 | risc-news)
89975f6d617Schristos		basic_machine=mips-sony
90075f6d617Schristos		os=-newsos
90175f6d617Schristos		;;
90275f6d617Schristos	necv70)
90375f6d617Schristos		basic_machine=v70-nec
90475f6d617Schristos		os=-sysv
90575f6d617Schristos		;;
90675f6d617Schristos	next | m*-next )
90775f6d617Schristos		basic_machine=m68k-next
90875f6d617Schristos		case $os in
90975f6d617Schristos		    -nextstep* )
91075f6d617Schristos			;;
91175f6d617Schristos		    -ns2*)
91275f6d617Schristos		      os=-nextstep2
91375f6d617Schristos			;;
91475f6d617Schristos		    *)
91575f6d617Schristos		      os=-nextstep3
91675f6d617Schristos			;;
91775f6d617Schristos		esac
91875f6d617Schristos		;;
91975f6d617Schristos	nh3000)
92075f6d617Schristos		basic_machine=m68k-harris
92175f6d617Schristos		os=-cxux
92275f6d617Schristos		;;
92375f6d617Schristos	nh[45]000)
92475f6d617Schristos		basic_machine=m88k-harris
92575f6d617Schristos		os=-cxux
92675f6d617Schristos		;;
92775f6d617Schristos	nindy960)
92875f6d617Schristos		basic_machine=i960-intel
92975f6d617Schristos		os=-nindy
93075f6d617Schristos		;;
93175f6d617Schristos	mon960)
93275f6d617Schristos		basic_machine=i960-intel
93375f6d617Schristos		os=-mon960
93475f6d617Schristos		;;
93575f6d617Schristos	nonstopux)
93675f6d617Schristos		basic_machine=mips-compaq
93775f6d617Schristos		os=-nonstopux
93875f6d617Schristos		;;
93975f6d617Schristos	np1)
94075f6d617Schristos		basic_machine=np1-gould
94175f6d617Schristos		;;
942*cc576e1dSsevan	neo-tandem)
943*cc576e1dSsevan		basic_machine=neo-tandem
944*cc576e1dSsevan		;;
945*cc576e1dSsevan	nse-tandem)
946*cc576e1dSsevan		basic_machine=nse-tandem
947*cc576e1dSsevan		;;
94875f6d617Schristos	nsr-tandem)
94975f6d617Schristos		basic_machine=nsr-tandem
95075f6d617Schristos		;;
95175f6d617Schristos	op50n-* | op60c-*)
95275f6d617Schristos		basic_machine=hppa1.1-oki
95375f6d617Schristos		os=-proelf
95475f6d617Schristos		;;
955*cc576e1dSsevan	openrisc | openrisc-*)
95675f6d617Schristos		basic_machine=or32-unknown
957*cc576e1dSsevan		;;
958*cc576e1dSsevan	os400)
959*cc576e1dSsevan		basic_machine=powerpc-ibm
960*cc576e1dSsevan		os=-os400
96175f6d617Schristos		;;
96275f6d617Schristos	OSE68000 | ose68000)
96375f6d617Schristos		basic_machine=m68000-ericsson
96475f6d617Schristos		os=-ose
96575f6d617Schristos		;;
96675f6d617Schristos	os68k)
96775f6d617Schristos		basic_machine=m68k-none
96875f6d617Schristos		os=-os68k
96975f6d617Schristos		;;
97075f6d617Schristos	pa-hitachi)
97175f6d617Schristos		basic_machine=hppa1.1-hitachi
97275f6d617Schristos		os=-hiuxwe2
97375f6d617Schristos		;;
97475f6d617Schristos	paragon)
97575f6d617Schristos		basic_machine=i860-intel
97675f6d617Schristos		os=-osf
97775f6d617Schristos		;;
978*cc576e1dSsevan	parisc)
979*cc576e1dSsevan		basic_machine=hppa-unknown
980*cc576e1dSsevan		os=-linux
981*cc576e1dSsevan		;;
982*cc576e1dSsevan	parisc-*)
983*cc576e1dSsevan		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
984*cc576e1dSsevan		os=-linux
985*cc576e1dSsevan		;;
98675f6d617Schristos	pbd)
98775f6d617Schristos		basic_machine=sparc-tti
98875f6d617Schristos		;;
98975f6d617Schristos	pbb)
99075f6d617Schristos		basic_machine=m68k-tti
99175f6d617Schristos		;;
99275f6d617Schristos	pc532 | pc532-*)
99375f6d617Schristos		basic_machine=ns32k-pc532
99475f6d617Schristos		;;
995*cc576e1dSsevan	pc98)
996*cc576e1dSsevan		basic_machine=i386-pc
997*cc576e1dSsevan		;;
998*cc576e1dSsevan	pc98-*)
999*cc576e1dSsevan		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
1000*cc576e1dSsevan		;;
100175f6d617Schristos	pentium | p5 | k5 | k6 | nexgen | viac3)
100275f6d617Schristos		basic_machine=i586-pc
100375f6d617Schristos		;;
1004*cc576e1dSsevan	pentiumpro | p6 | 6x86 | athlon | athlon_*)
100575f6d617Schristos		basic_machine=i686-pc
100675f6d617Schristos		;;
1007*cc576e1dSsevan	pentiumii | pentium2 | pentiumiii | pentium3)
100875f6d617Schristos		basic_machine=i686-pc
100975f6d617Schristos		;;
1010*cc576e1dSsevan	pentium4)
1011*cc576e1dSsevan		basic_machine=i786-pc
1012*cc576e1dSsevan		;;
101375f6d617Schristos	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
101475f6d617Schristos		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
101575f6d617Schristos		;;
101675f6d617Schristos	pentiumpro-* | p6-* | 6x86-* | athlon-*)
101775f6d617Schristos		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
101875f6d617Schristos		;;
1019*cc576e1dSsevan	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
102075f6d617Schristos		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
102175f6d617Schristos		;;
1022*cc576e1dSsevan	pentium4-*)
1023*cc576e1dSsevan		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
1024*cc576e1dSsevan		;;
102575f6d617Schristos	pn)
102675f6d617Schristos		basic_machine=pn-gould
102775f6d617Schristos		;;
102875f6d617Schristos	power)	basic_machine=power-ibm
102975f6d617Schristos		;;
1030*cc576e1dSsevan	ppc | ppcbe)	basic_machine=powerpc-unknown
103175f6d617Schristos		;;
1032*cc576e1dSsevan	ppc-* | ppcbe-*)
1033*cc576e1dSsevan		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
103475f6d617Schristos		;;
1035*cc576e1dSsevan	ppcle | powerpclittle)
103675f6d617Schristos		basic_machine=powerpcle-unknown
103775f6d617Schristos		;;
103875f6d617Schristos	ppcle-* | powerpclittle-*)
103975f6d617Schristos		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
104075f6d617Schristos		;;
104175f6d617Schristos	ppc64)	basic_machine=powerpc64-unknown
104275f6d617Schristos		;;
104375f6d617Schristos	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
104475f6d617Schristos		;;
1045*cc576e1dSsevan	ppc64le | powerpc64little)
104675f6d617Schristos		basic_machine=powerpc64le-unknown
104775f6d617Schristos		;;
104875f6d617Schristos	ppc64le-* | powerpc64little-*)
104975f6d617Schristos		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
105075f6d617Schristos		;;
105175f6d617Schristos	ps2)
105275f6d617Schristos		basic_machine=i386-ibm
105375f6d617Schristos		;;
105475f6d617Schristos	pw32)
105575f6d617Schristos		basic_machine=i586-unknown
105675f6d617Schristos		os=-pw32
105775f6d617Schristos		;;
1058*cc576e1dSsevan	rdos | rdos64)
1059*cc576e1dSsevan		basic_machine=x86_64-pc
1060*cc576e1dSsevan		os=-rdos
1061*cc576e1dSsevan		;;
1062*cc576e1dSsevan	rdos32)
1063*cc576e1dSsevan		basic_machine=i386-pc
1064*cc576e1dSsevan		os=-rdos
1065*cc576e1dSsevan		;;
106675f6d617Schristos	rom68k)
106775f6d617Schristos		basic_machine=m68k-rom68k
106875f6d617Schristos		os=-coff
106975f6d617Schristos		;;
107075f6d617Schristos	rm[46]00)
107175f6d617Schristos		basic_machine=mips-siemens
107275f6d617Schristos		;;
107375f6d617Schristos	rtpc | rtpc-*)
107475f6d617Schristos		basic_machine=romp-ibm
107575f6d617Schristos		;;
107675f6d617Schristos	s390 | s390-*)
107775f6d617Schristos		basic_machine=s390-ibm
107875f6d617Schristos		;;
107975f6d617Schristos	s390x | s390x-*)
108075f6d617Schristos		basic_machine=s390x-ibm
108175f6d617Schristos		;;
108275f6d617Schristos	sa29200)
108375f6d617Schristos		basic_machine=a29k-amd
108475f6d617Schristos		os=-udi
108575f6d617Schristos		;;
1086*cc576e1dSsevan	sb1)
1087*cc576e1dSsevan		basic_machine=mipsisa64sb1-unknown
1088*cc576e1dSsevan		;;
1089*cc576e1dSsevan	sb1el)
1090*cc576e1dSsevan		basic_machine=mipsisa64sb1el-unknown
1091*cc576e1dSsevan		;;
1092*cc576e1dSsevan	sde)
1093*cc576e1dSsevan		basic_machine=mipsisa32-sde
1094*cc576e1dSsevan		os=-elf
1095*cc576e1dSsevan		;;
1096*cc576e1dSsevan	sei)
1097*cc576e1dSsevan		basic_machine=mips-sei
1098*cc576e1dSsevan		os=-seiux
1099*cc576e1dSsevan		;;
110075f6d617Schristos	sequent)
110175f6d617Schristos		basic_machine=i386-sequent
110275f6d617Schristos		;;
110375f6d617Schristos	sh)
110475f6d617Schristos		basic_machine=sh-hitachi
110575f6d617Schristos		os=-hms
110675f6d617Schristos		;;
1107*cc576e1dSsevan	sh5el)
1108*cc576e1dSsevan		basic_machine=sh5le-unknown
1109*cc576e1dSsevan		;;
1110*cc576e1dSsevan	sh64)
1111*cc576e1dSsevan		basic_machine=sh64-unknown
1112*cc576e1dSsevan		;;
111375f6d617Schristos	sparclite-wrs | simso-wrs)
111475f6d617Schristos		basic_machine=sparclite-wrs
111575f6d617Schristos		os=-vxworks
111675f6d617Schristos		;;
111775f6d617Schristos	sps7)
111875f6d617Schristos		basic_machine=m68k-bull
111975f6d617Schristos		os=-sysv2
112075f6d617Schristos		;;
112175f6d617Schristos	spur)
112275f6d617Schristos		basic_machine=spur-unknown
112375f6d617Schristos		;;
112475f6d617Schristos	st2000)
112575f6d617Schristos		basic_machine=m68k-tandem
112675f6d617Schristos		;;
112775f6d617Schristos	stratus)
112875f6d617Schristos		basic_machine=i860-stratus
112975f6d617Schristos		os=-sysv4
113075f6d617Schristos		;;
1131*cc576e1dSsevan	strongarm-* | thumb-*)
1132*cc576e1dSsevan		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1133*cc576e1dSsevan		;;
113475f6d617Schristos	sun2)
113575f6d617Schristos		basic_machine=m68000-sun
113675f6d617Schristos		;;
113775f6d617Schristos	sun2os3)
113875f6d617Schristos		basic_machine=m68000-sun
113975f6d617Schristos		os=-sunos3
114075f6d617Schristos		;;
114175f6d617Schristos	sun2os4)
114275f6d617Schristos		basic_machine=m68000-sun
114375f6d617Schristos		os=-sunos4
114475f6d617Schristos		;;
114575f6d617Schristos	sun3os3)
114675f6d617Schristos		basic_machine=m68k-sun
114775f6d617Schristos		os=-sunos3
114875f6d617Schristos		;;
114975f6d617Schristos	sun3os4)
115075f6d617Schristos		basic_machine=m68k-sun
115175f6d617Schristos		os=-sunos4
115275f6d617Schristos		;;
115375f6d617Schristos	sun4os3)
115475f6d617Schristos		basic_machine=sparc-sun
115575f6d617Schristos		os=-sunos3
115675f6d617Schristos		;;
115775f6d617Schristos	sun4os4)
115875f6d617Schristos		basic_machine=sparc-sun
115975f6d617Schristos		os=-sunos4
116075f6d617Schristos		;;
116175f6d617Schristos	sun4sol2)
116275f6d617Schristos		basic_machine=sparc-sun
116375f6d617Schristos		os=-solaris2
116475f6d617Schristos		;;
116575f6d617Schristos	sun3 | sun3-*)
116675f6d617Schristos		basic_machine=m68k-sun
116775f6d617Schristos		;;
116875f6d617Schristos	sun4)
116975f6d617Schristos		basic_machine=sparc-sun
117075f6d617Schristos		;;
117175f6d617Schristos	sun386 | sun386i | roadrunner)
117275f6d617Schristos		basic_machine=i386-sun
117375f6d617Schristos		;;
117475f6d617Schristos	sv1)
117575f6d617Schristos		basic_machine=sv1-cray
117675f6d617Schristos		os=-unicos
117775f6d617Schristos		;;
117875f6d617Schristos	symmetry)
117975f6d617Schristos		basic_machine=i386-sequent
118075f6d617Schristos		os=-dynix
118175f6d617Schristos		;;
118275f6d617Schristos	t3e)
118375f6d617Schristos		basic_machine=alphaev5-cray
118475f6d617Schristos		os=-unicos
118575f6d617Schristos		;;
118675f6d617Schristos	t90)
118775f6d617Schristos		basic_machine=t90-cray
118875f6d617Schristos		os=-unicos
118975f6d617Schristos		;;
1190*cc576e1dSsevan	tile*)
1191*cc576e1dSsevan		basic_machine=$basic_machine-unknown
1192*cc576e1dSsevan		os=-linux-gnu
119375f6d617Schristos		;;
119475f6d617Schristos	tx39)
119575f6d617Schristos		basic_machine=mipstx39-unknown
119675f6d617Schristos		;;
119775f6d617Schristos	tx39el)
119875f6d617Schristos		basic_machine=mipstx39el-unknown
119975f6d617Schristos		;;
120075f6d617Schristos	toad1)
120175f6d617Schristos		basic_machine=pdp10-xkl
120275f6d617Schristos		os=-tops20
120375f6d617Schristos		;;
120475f6d617Schristos	tower | tower-32)
120575f6d617Schristos		basic_machine=m68k-ncr
120675f6d617Schristos		;;
1207*cc576e1dSsevan	tpf)
1208*cc576e1dSsevan		basic_machine=s390x-ibm
1209*cc576e1dSsevan		os=-tpf
1210*cc576e1dSsevan		;;
121175f6d617Schristos	udi29k)
121275f6d617Schristos		basic_machine=a29k-amd
121375f6d617Schristos		os=-udi
121475f6d617Schristos		;;
121575f6d617Schristos	ultra3)
121675f6d617Schristos		basic_machine=a29k-nyu
121775f6d617Schristos		os=-sym1
121875f6d617Schristos		;;
121975f6d617Schristos	v810 | necv810)
122075f6d617Schristos		basic_machine=v810-nec
122175f6d617Schristos		os=-none
122275f6d617Schristos		;;
122375f6d617Schristos	vaxv)
122475f6d617Schristos		basic_machine=vax-dec
122575f6d617Schristos		os=-sysv
122675f6d617Schristos		;;
122775f6d617Schristos	vms)
122875f6d617Schristos		basic_machine=vax-dec
122975f6d617Schristos		os=-vms
123075f6d617Schristos		;;
123175f6d617Schristos	vpp*|vx|vx-*)
123275f6d617Schristos		basic_machine=f301-fujitsu
123375f6d617Schristos		;;
123475f6d617Schristos	vxworks960)
123575f6d617Schristos		basic_machine=i960-wrs
123675f6d617Schristos		os=-vxworks
123775f6d617Schristos		;;
123875f6d617Schristos	vxworks68)
123975f6d617Schristos		basic_machine=m68k-wrs
124075f6d617Schristos		os=-vxworks
124175f6d617Schristos		;;
124275f6d617Schristos	vxworks29k)
124375f6d617Schristos		basic_machine=a29k-wrs
124475f6d617Schristos		os=-vxworks
124575f6d617Schristos		;;
124675f6d617Schristos	w65*)
124775f6d617Schristos		basic_machine=w65-wdc
124875f6d617Schristos		os=-none
124975f6d617Schristos		;;
125075f6d617Schristos	w89k-*)
125175f6d617Schristos		basic_machine=hppa1.1-winbond
125275f6d617Schristos		os=-proelf
125375f6d617Schristos		;;
1254*cc576e1dSsevan	xbox)
1255*cc576e1dSsevan		basic_machine=i686-pc
1256*cc576e1dSsevan		os=-mingw32
125775f6d617Schristos		;;
125875f6d617Schristos	xps | xps100)
125975f6d617Schristos		basic_machine=xps100-honeywell
126075f6d617Schristos		;;
1261*cc576e1dSsevan	xscale-* | xscalee[bl]-*)
1262*cc576e1dSsevan		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1263*cc576e1dSsevan		;;
126475f6d617Schristos	ymp)
126575f6d617Schristos		basic_machine=ymp-cray
126675f6d617Schristos		os=-unicos
126775f6d617Schristos		;;
126875f6d617Schristos	z8k-*-coff)
126975f6d617Schristos		basic_machine=z8k-unknown
127075f6d617Schristos		os=-sim
127175f6d617Schristos		;;
1272*cc576e1dSsevan	z80-*-coff)
1273*cc576e1dSsevan		basic_machine=z80-unknown
1274*cc576e1dSsevan		os=-sim
1275*cc576e1dSsevan		;;
127675f6d617Schristos	none)
127775f6d617Schristos		basic_machine=none-none
127875f6d617Schristos		os=-none
127975f6d617Schristos		;;
128075f6d617Schristos
128175f6d617Schristos# Here we handle the default manufacturer of certain CPU types.  It is in
128275f6d617Schristos# some cases the only manufacturer, in others, it is the most popular.
128375f6d617Schristos	w89k)
128475f6d617Schristos		basic_machine=hppa1.1-winbond
128575f6d617Schristos		;;
128675f6d617Schristos	op50n)
128775f6d617Schristos		basic_machine=hppa1.1-oki
128875f6d617Schristos		;;
128975f6d617Schristos	op60c)
129075f6d617Schristos		basic_machine=hppa1.1-oki
129175f6d617Schristos		;;
129275f6d617Schristos	romp)
129375f6d617Schristos		basic_machine=romp-ibm
129475f6d617Schristos		;;
1295*cc576e1dSsevan	mmix)
1296*cc576e1dSsevan		basic_machine=mmix-knuth
1297*cc576e1dSsevan		;;
129875f6d617Schristos	rs6000)
129975f6d617Schristos		basic_machine=rs6000-ibm
130075f6d617Schristos		;;
130175f6d617Schristos	vax)
130275f6d617Schristos		basic_machine=vax-dec
130375f6d617Schristos		;;
130475f6d617Schristos	pdp10)
130575f6d617Schristos		# there are many clones, so DEC is not a safe bet
130675f6d617Schristos		basic_machine=pdp10-unknown
130775f6d617Schristos		;;
130875f6d617Schristos	pdp11)
130975f6d617Schristos		basic_machine=pdp11-dec
131075f6d617Schristos		;;
131175f6d617Schristos	we32k)
131275f6d617Schristos		basic_machine=we32k-att
131375f6d617Schristos		;;
1314*cc576e1dSsevan	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
131575f6d617Schristos		basic_machine=sh-unknown
131675f6d617Schristos		;;
1317*cc576e1dSsevan	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
131875f6d617Schristos		basic_machine=sparc-sun
131975f6d617Schristos		;;
132075f6d617Schristos	cydra)
132175f6d617Schristos		basic_machine=cydra-cydrome
132275f6d617Schristos		;;
132375f6d617Schristos	orion)
132475f6d617Schristos		basic_machine=orion-highlevel
132575f6d617Schristos		;;
132675f6d617Schristos	orion105)
132775f6d617Schristos		basic_machine=clipper-highlevel
132875f6d617Schristos		;;
132975f6d617Schristos	mac | mpw | mac-mpw)
133075f6d617Schristos		basic_machine=m68k-apple
133175f6d617Schristos		;;
133275f6d617Schristos	pmac | pmac-mpw)
133375f6d617Schristos		basic_machine=powerpc-apple
133475f6d617Schristos		;;
133575f6d617Schristos	*-unknown)
133675f6d617Schristos		# Make sure to match an already-canonicalized machine name.
133775f6d617Schristos		;;
133875f6d617Schristos	*)
133975f6d617Schristos		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
134075f6d617Schristos		exit 1
134175f6d617Schristos		;;
134275f6d617Schristosesac
134375f6d617Schristos
134475f6d617Schristos# Here we canonicalize certain aliases for manufacturers.
134575f6d617Schristoscase $basic_machine in
134675f6d617Schristos	*-digital*)
134775f6d617Schristos		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
134875f6d617Schristos		;;
134975f6d617Schristos	*-commodore*)
135075f6d617Schristos		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
135175f6d617Schristos		;;
135275f6d617Schristos	*)
135375f6d617Schristos		;;
135475f6d617Schristosesac
135575f6d617Schristos
135675f6d617Schristos# Decode manufacturer-specific aliases for certain operating systems.
135775f6d617Schristos
135875f6d617Schristosif [ x"$os" != x"" ]
135975f6d617Schristosthen
136075f6d617Schristoscase $os in
136175f6d617Schristos	# First match some system type aliases
136275f6d617Schristos	# that might get confused with valid system types.
136375f6d617Schristos	# -solaris* is a basic system type, with this one exception.
1364*cc576e1dSsevan	-auroraux)
1365*cc576e1dSsevan		os=-auroraux
1366*cc576e1dSsevan		;;
136775f6d617Schristos	-solaris1 | -solaris1.*)
136875f6d617Schristos		os=`echo $os | sed -e 's|solaris1|sunos4|'`
136975f6d617Schristos		;;
137075f6d617Schristos	-solaris)
137175f6d617Schristos		os=-solaris2
137275f6d617Schristos		;;
137375f6d617Schristos	-svr4*)
137475f6d617Schristos		os=-sysv4
137575f6d617Schristos		;;
137675f6d617Schristos	-unixware*)
137775f6d617Schristos		os=-sysv4.2uw
137875f6d617Schristos		;;
137975f6d617Schristos	-gnu/linux*)
138075f6d617Schristos		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
138175f6d617Schristos		;;
138275f6d617Schristos	# First accept the basic system types.
138375f6d617Schristos	# The portable systems comes first.
138475f6d617Schristos	# Each alternative MUST END IN A *, to match a version number.
138575f6d617Schristos	# -sysv* is not here because it comes later, after sysvr4.
138675f6d617Schristos	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1387*cc576e1dSsevan	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1388*cc576e1dSsevan	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1389*cc576e1dSsevan	      | -sym* | -kopensolaris* | -plan9* \
139075f6d617Schristos	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1391*cc576e1dSsevan	      | -aos* | -aros* | -cloudabi* | -sortix* \
139275f6d617Schristos	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
139375f6d617Schristos	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1394*cc576e1dSsevan	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1395*cc576e1dSsevan	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
1396*cc576e1dSsevan	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1397*cc576e1dSsevan	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
139875f6d617Schristos	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
139975f6d617Schristos	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1400*cc576e1dSsevan	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
1401*cc576e1dSsevan	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1402*cc576e1dSsevan	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1403*cc576e1dSsevan	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
1404*cc576e1dSsevan	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
1405*cc576e1dSsevan	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
140675f6d617Schristos	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
140775f6d617Schristos	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
140875f6d617Schristos	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1409*cc576e1dSsevan	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1410*cc576e1dSsevan	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1411*cc576e1dSsevan	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
1412*cc576e1dSsevan	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
141375f6d617Schristos	# Remember, each alternative MUST END IN *, to match a version number.
141475f6d617Schristos		;;
141575f6d617Schristos	-qnx*)
141675f6d617Schristos		case $basic_machine in
141775f6d617Schristos		    x86-* | i*86-*)
141875f6d617Schristos			;;
141975f6d617Schristos		    *)
142075f6d617Schristos			os=-nto$os
142175f6d617Schristos			;;
142275f6d617Schristos		esac
142375f6d617Schristos		;;
1424*cc576e1dSsevan	-nto-qnx*)
1425*cc576e1dSsevan		;;
142675f6d617Schristos	-nto*)
1427*cc576e1dSsevan		os=`echo $os | sed -e 's|nto|nto-qnx|'`
142875f6d617Schristos		;;
142975f6d617Schristos	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1430*cc576e1dSsevan	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
143175f6d617Schristos	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
143275f6d617Schristos		;;
143375f6d617Schristos	-mac*)
143475f6d617Schristos		os=`echo $os | sed -e 's|mac|macos|'`
143575f6d617Schristos		;;
1436*cc576e1dSsevan	-linux-dietlibc)
1437*cc576e1dSsevan		os=-linux-dietlibc
1438*cc576e1dSsevan		;;
143975f6d617Schristos	-linux*)
144075f6d617Schristos		os=`echo $os | sed -e 's|linux|linux-gnu|'`
144175f6d617Schristos		;;
144275f6d617Schristos	-sunos5*)
144375f6d617Schristos		os=`echo $os | sed -e 's|sunos5|solaris2|'`
144475f6d617Schristos		;;
144575f6d617Schristos	-sunos6*)
144675f6d617Schristos		os=`echo $os | sed -e 's|sunos6|solaris3|'`
144775f6d617Schristos		;;
144875f6d617Schristos	-opened*)
144975f6d617Schristos		os=-openedition
145075f6d617Schristos		;;
1451*cc576e1dSsevan	-os400*)
1452*cc576e1dSsevan		os=-os400
1453*cc576e1dSsevan		;;
145475f6d617Schristos	-wince*)
145575f6d617Schristos		os=-wince
145675f6d617Schristos		;;
145775f6d617Schristos	-osfrose*)
145875f6d617Schristos		os=-osfrose
145975f6d617Schristos		;;
146075f6d617Schristos	-osf*)
146175f6d617Schristos		os=-osf
146275f6d617Schristos		;;
146375f6d617Schristos	-utek*)
146475f6d617Schristos		os=-bsd
146575f6d617Schristos		;;
146675f6d617Schristos	-dynix*)
146775f6d617Schristos		os=-bsd
146875f6d617Schristos		;;
146975f6d617Schristos	-acis*)
147075f6d617Schristos		os=-aos
147175f6d617Schristos		;;
147275f6d617Schristos	-atheos*)
147375f6d617Schristos		os=-atheos
147475f6d617Schristos		;;
1475*cc576e1dSsevan	-syllable*)
1476*cc576e1dSsevan		os=-syllable
1477*cc576e1dSsevan		;;
147875f6d617Schristos	-386bsd)
147975f6d617Schristos		os=-bsd
148075f6d617Schristos		;;
148175f6d617Schristos	-ctix* | -uts*)
148275f6d617Schristos		os=-sysv
148375f6d617Schristos		;;
148475f6d617Schristos	-nova*)
148575f6d617Schristos		os=-rtmk-nova
148675f6d617Schristos		;;
148775f6d617Schristos	-ns2 )
148875f6d617Schristos		os=-nextstep2
148975f6d617Schristos		;;
149075f6d617Schristos	-nsk*)
149175f6d617Schristos		os=-nsk
149275f6d617Schristos		;;
149375f6d617Schristos	# Preserve the version number of sinix5.
149475f6d617Schristos	-sinix5.*)
149575f6d617Schristos		os=`echo $os | sed -e 's|sinix|sysv|'`
149675f6d617Schristos		;;
149775f6d617Schristos	-sinix*)
149875f6d617Schristos		os=-sysv4
149975f6d617Schristos		;;
1500*cc576e1dSsevan	-tpf*)
1501*cc576e1dSsevan		os=-tpf
1502*cc576e1dSsevan		;;
150375f6d617Schristos	-triton*)
150475f6d617Schristos		os=-sysv3
150575f6d617Schristos		;;
150675f6d617Schristos	-oss*)
150775f6d617Schristos		os=-sysv3
150875f6d617Schristos		;;
150975f6d617Schristos	-svr4)
151075f6d617Schristos		os=-sysv4
151175f6d617Schristos		;;
151275f6d617Schristos	-svr3)
151375f6d617Schristos		os=-sysv3
151475f6d617Schristos		;;
151575f6d617Schristos	-sysvr4)
151675f6d617Schristos		os=-sysv4
151775f6d617Schristos		;;
151875f6d617Schristos	# This must come after -sysvr4.
151975f6d617Schristos	-sysv*)
152075f6d617Schristos		;;
152175f6d617Schristos	-ose*)
152275f6d617Schristos		os=-ose
152375f6d617Schristos		;;
152475f6d617Schristos	-es1800*)
152575f6d617Schristos		os=-ose
152675f6d617Schristos		;;
152775f6d617Schristos	-xenix)
152875f6d617Schristos		os=-xenix
152975f6d617Schristos		;;
153075f6d617Schristos	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
153175f6d617Schristos		os=-mint
153275f6d617Schristos		;;
1533*cc576e1dSsevan	-aros*)
1534*cc576e1dSsevan		os=-aros
1535*cc576e1dSsevan		;;
1536*cc576e1dSsevan	-zvmoe)
1537*cc576e1dSsevan		os=-zvmoe
1538*cc576e1dSsevan		;;
1539*cc576e1dSsevan	-dicos*)
1540*cc576e1dSsevan		os=-dicos
1541*cc576e1dSsevan		;;
1542*cc576e1dSsevan	-nacl*)
1543*cc576e1dSsevan		;;
1544*cc576e1dSsevan	-ios)
1545*cc576e1dSsevan		;;
154675f6d617Schristos	-none)
154775f6d617Schristos		;;
154875f6d617Schristos	*)
154975f6d617Schristos		# Get rid of the `-' at the beginning of $os.
155075f6d617Schristos		os=`echo $os | sed 's/[^-]*-//'`
155175f6d617Schristos		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
155275f6d617Schristos		exit 1
155375f6d617Schristos		;;
155475f6d617Schristosesac
155575f6d617Schristoselse
155675f6d617Schristos
155775f6d617Schristos# Here we handle the default operating systems that come with various machines.
155875f6d617Schristos# The value should be what the vendor currently ships out the door with their
155975f6d617Schristos# machine or put another way, the most popular os provided with the machine.
156075f6d617Schristos
156175f6d617Schristos# Note that if you're going to try to match "-MANUFACTURER" here (say,
156275f6d617Schristos# "-sun"), then you have to tell the case statement up towards the top
156375f6d617Schristos# that MANUFACTURER isn't an operating system.  Otherwise, code above
156475f6d617Schristos# will signal an error saying that MANUFACTURER isn't an operating
156575f6d617Schristos# system, and we'll never get to this point.
156675f6d617Schristos
156775f6d617Schristoscase $basic_machine in
1568*cc576e1dSsevan	score-*)
1569*cc576e1dSsevan		os=-elf
1570*cc576e1dSsevan		;;
1571*cc576e1dSsevan	spu-*)
1572*cc576e1dSsevan		os=-elf
1573*cc576e1dSsevan		;;
157475f6d617Schristos	*-acorn)
157575f6d617Schristos		os=-riscix1.2
157675f6d617Schristos		;;
157775f6d617Schristos	arm*-rebel)
157875f6d617Schristos		os=-linux
157975f6d617Schristos		;;
158075f6d617Schristos	arm*-semi)
158175f6d617Schristos		os=-aout
158275f6d617Schristos		;;
1583*cc576e1dSsevan	c4x-* | tic4x-*)
1584*cc576e1dSsevan		os=-coff
1585*cc576e1dSsevan		;;
1586*cc576e1dSsevan	c8051-*)
1587*cc576e1dSsevan		os=-elf
1588*cc576e1dSsevan		;;
1589*cc576e1dSsevan	hexagon-*)
1590*cc576e1dSsevan		os=-elf
1591*cc576e1dSsevan		;;
1592*cc576e1dSsevan	tic54x-*)
1593*cc576e1dSsevan		os=-coff
1594*cc576e1dSsevan		;;
1595*cc576e1dSsevan	tic55x-*)
1596*cc576e1dSsevan		os=-coff
1597*cc576e1dSsevan		;;
1598*cc576e1dSsevan	tic6x-*)
1599*cc576e1dSsevan		os=-coff
1600*cc576e1dSsevan		;;
160175f6d617Schristos	# This must come before the *-dec entry.
160275f6d617Schristos	pdp10-*)
160375f6d617Schristos		os=-tops20
160475f6d617Schristos		;;
160575f6d617Schristos	pdp11-*)
160675f6d617Schristos		os=-none
160775f6d617Schristos		;;
160875f6d617Schristos	*-dec | vax-*)
160975f6d617Schristos		os=-ultrix4.2
161075f6d617Schristos		;;
161175f6d617Schristos	m68*-apollo)
161275f6d617Schristos		os=-domain
161375f6d617Schristos		;;
161475f6d617Schristos	i386-sun)
161575f6d617Schristos		os=-sunos4.0.2
161675f6d617Schristos		;;
161775f6d617Schristos	m68000-sun)
161875f6d617Schristos		os=-sunos3
161975f6d617Schristos		;;
162075f6d617Schristos	m68*-cisco)
162175f6d617Schristos		os=-aout
162275f6d617Schristos		;;
1623*cc576e1dSsevan	mep-*)
1624*cc576e1dSsevan		os=-elf
1625*cc576e1dSsevan		;;
162675f6d617Schristos	mips*-cisco)
162775f6d617Schristos		os=-elf
162875f6d617Schristos		;;
162975f6d617Schristos	mips*-*)
163075f6d617Schristos		os=-elf
163175f6d617Schristos		;;
163275f6d617Schristos	or32-*)
163375f6d617Schristos		os=-coff
163475f6d617Schristos		;;
163575f6d617Schristos	*-tti)	# must be before sparc entry or we get the wrong os.
163675f6d617Schristos		os=-sysv3
163775f6d617Schristos		;;
163875f6d617Schristos	sparc-* | *-sun)
163975f6d617Schristos		os=-sunos4.1.1
164075f6d617Schristos		;;
1641*cc576e1dSsevan	pru-*)
1642*cc576e1dSsevan		os=-elf
1643*cc576e1dSsevan		;;
164475f6d617Schristos	*-be)
164575f6d617Schristos		os=-beos
164675f6d617Schristos		;;
1647*cc576e1dSsevan	*-haiku)
1648*cc576e1dSsevan		os=-haiku
1649*cc576e1dSsevan		;;
165075f6d617Schristos	*-ibm)
165175f6d617Schristos		os=-aix
165275f6d617Schristos		;;
1653*cc576e1dSsevan	*-knuth)
1654*cc576e1dSsevan		os=-mmixware
1655*cc576e1dSsevan		;;
165675f6d617Schristos	*-wec)
165775f6d617Schristos		os=-proelf
165875f6d617Schristos		;;
165975f6d617Schristos	*-winbond)
166075f6d617Schristos		os=-proelf
166175f6d617Schristos		;;
166275f6d617Schristos	*-oki)
166375f6d617Schristos		os=-proelf
166475f6d617Schristos		;;
166575f6d617Schristos	*-hp)
166675f6d617Schristos		os=-hpux
166775f6d617Schristos		;;
166875f6d617Schristos	*-hitachi)
166975f6d617Schristos		os=-hiux
167075f6d617Schristos		;;
167175f6d617Schristos	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
167275f6d617Schristos		os=-sysv
167375f6d617Schristos		;;
167475f6d617Schristos	*-cbm)
167575f6d617Schristos		os=-amigaos
167675f6d617Schristos		;;
167775f6d617Schristos	*-dg)
167875f6d617Schristos		os=-dgux
167975f6d617Schristos		;;
168075f6d617Schristos	*-dolphin)
168175f6d617Schristos		os=-sysv3
168275f6d617Schristos		;;
168375f6d617Schristos	m68k-ccur)
168475f6d617Schristos		os=-rtu
168575f6d617Schristos		;;
168675f6d617Schristos	m88k-omron*)
168775f6d617Schristos		os=-luna
168875f6d617Schristos		;;
168975f6d617Schristos	*-next )
169075f6d617Schristos		os=-nextstep
169175f6d617Schristos		;;
169275f6d617Schristos	*-sequent)
169375f6d617Schristos		os=-ptx
169475f6d617Schristos		;;
169575f6d617Schristos	*-crds)
169675f6d617Schristos		os=-unos
169775f6d617Schristos		;;
169875f6d617Schristos	*-ns)
169975f6d617Schristos		os=-genix
170075f6d617Schristos		;;
170175f6d617Schristos	i370-*)
170275f6d617Schristos		os=-mvs
170375f6d617Schristos		;;
170475f6d617Schristos	*-next)
170575f6d617Schristos		os=-nextstep3
170675f6d617Schristos		;;
170775f6d617Schristos	*-gould)
170875f6d617Schristos		os=-sysv
170975f6d617Schristos		;;
171075f6d617Schristos	*-highlevel)
171175f6d617Schristos		os=-bsd
171275f6d617Schristos		;;
171375f6d617Schristos	*-encore)
171475f6d617Schristos		os=-bsd
171575f6d617Schristos		;;
171675f6d617Schristos	*-sgi)
171775f6d617Schristos		os=-irix
171875f6d617Schristos		;;
171975f6d617Schristos	*-siemens)
172075f6d617Schristos		os=-sysv4
172175f6d617Schristos		;;
172275f6d617Schristos	*-masscomp)
172375f6d617Schristos		os=-rtu
172475f6d617Schristos		;;
172575f6d617Schristos	f30[01]-fujitsu | f700-fujitsu)
172675f6d617Schristos		os=-uxpv
172775f6d617Schristos		;;
172875f6d617Schristos	*-rom68k)
172975f6d617Schristos		os=-coff
173075f6d617Schristos		;;
173175f6d617Schristos	*-*bug)
173275f6d617Schristos		os=-coff
173375f6d617Schristos		;;
173475f6d617Schristos	*-apple)
173575f6d617Schristos		os=-macos
173675f6d617Schristos		;;
173775f6d617Schristos	*-atari*)
173875f6d617Schristos		os=-mint
173975f6d617Schristos		;;
174075f6d617Schristos	*)
174175f6d617Schristos		os=-none
174275f6d617Schristos		;;
174375f6d617Schristosesac
174475f6d617Schristosfi
174575f6d617Schristos
174675f6d617Schristos# Here we handle the case where we know the os, and the CPU type, but not the
174775f6d617Schristos# manufacturer.  We pick the logical manufacturer.
174875f6d617Schristosvendor=unknown
174975f6d617Schristoscase $basic_machine in
175075f6d617Schristos	*-unknown)
175175f6d617Schristos		case $os in
175275f6d617Schristos			-riscix*)
175375f6d617Schristos				vendor=acorn
175475f6d617Schristos				;;
175575f6d617Schristos			-sunos*)
175675f6d617Schristos				vendor=sun
175775f6d617Schristos				;;
1758*cc576e1dSsevan			-cnk*|-aix*)
175975f6d617Schristos				vendor=ibm
176075f6d617Schristos				;;
176175f6d617Schristos			-beos*)
176275f6d617Schristos				vendor=be
176375f6d617Schristos				;;
176475f6d617Schristos			-hpux*)
176575f6d617Schristos				vendor=hp
176675f6d617Schristos				;;
176775f6d617Schristos			-mpeix*)
176875f6d617Schristos				vendor=hp
176975f6d617Schristos				;;
177075f6d617Schristos			-hiux*)
177175f6d617Schristos				vendor=hitachi
177275f6d617Schristos				;;
177375f6d617Schristos			-unos*)
177475f6d617Schristos				vendor=crds
177575f6d617Schristos				;;
177675f6d617Schristos			-dgux*)
177775f6d617Schristos				vendor=dg
177875f6d617Schristos				;;
177975f6d617Schristos			-luna*)
178075f6d617Schristos				vendor=omron
178175f6d617Schristos				;;
178275f6d617Schristos			-genix*)
178375f6d617Schristos				vendor=ns
178475f6d617Schristos				;;
178575f6d617Schristos			-mvs* | -opened*)
178675f6d617Schristos				vendor=ibm
178775f6d617Schristos				;;
1788*cc576e1dSsevan			-os400*)
1789*cc576e1dSsevan				vendor=ibm
1790*cc576e1dSsevan				;;
179175f6d617Schristos			-ptx*)
179275f6d617Schristos				vendor=sequent
179375f6d617Schristos				;;
1794*cc576e1dSsevan			-tpf*)
1795*cc576e1dSsevan				vendor=ibm
1796*cc576e1dSsevan				;;
1797*cc576e1dSsevan			-vxsim* | -vxworks* | -windiss*)
179875f6d617Schristos				vendor=wrs
179975f6d617Schristos				;;
180075f6d617Schristos			-aux*)
180175f6d617Schristos				vendor=apple
180275f6d617Schristos				;;
180375f6d617Schristos			-hms*)
180475f6d617Schristos				vendor=hitachi
180575f6d617Schristos				;;
180675f6d617Schristos			-mpw* | -macos*)
180775f6d617Schristos				vendor=apple
180875f6d617Schristos				;;
180975f6d617Schristos			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
181075f6d617Schristos				vendor=atari
181175f6d617Schristos				;;
181275f6d617Schristos			-vos*)
181375f6d617Schristos				vendor=stratus
181475f6d617Schristos				;;
181575f6d617Schristos		esac
181675f6d617Schristos		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
181775f6d617Schristos		;;
181875f6d617Schristosesac
181975f6d617Schristos
182075f6d617Schristosecho $basic_machine$os
1821*cc576e1dSsevanexit
182275f6d617Schristos
182375f6d617Schristos# Local variables:
182475f6d617Schristos# eval: (add-hook 'write-file-hooks 'time-stamp)
182575f6d617Schristos# time-stamp-start: "timestamp='"
182675f6d617Schristos# time-stamp-format: "%:y-%02m-%02d"
182775f6d617Schristos# time-stamp-end: "'"
182875f6d617Schristos# End:
1829