xref: /netbsd/external/bsd/top/dist/config.sub (revision 32b71e0e)
110dd2532Schristos#! /bin/sh
210dd2532Schristos# Configuration validation subroutine script.
3*32b71e0eSsevan#   Copyright 1992-2017 Free Software Foundation, Inc.
410dd2532Schristos
5*32b71e0eSsevantimestamp='2017-01-01'
610dd2532Schristos
7*32b71e0eSsevan# This file is free software; you can redistribute it and/or modify it
8*32b71e0eSsevan# under the terms of the GNU General Public License as published by
9*32b71e0eSsevan# the Free Software Foundation; either version 3 of the License, or
1010dd2532Schristos# (at your option) any later version.
1110dd2532Schristos#
12*32b71e0eSsevan# This program is distributed in the hope that it will be useful, but
13*32b71e0eSsevan# WITHOUT ANY WARRANTY; without even the implied warranty of
14*32b71e0eSsevan# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15*32b71e0eSsevan# General Public License for more details.
1610dd2532Schristos#
1710dd2532Schristos# You should have received a copy of the GNU General Public License
18*32b71e0eSsevan# along with this program; if not, see <http://www.gnu.org/licenses/>.
19*32b71e0eSsevan#
2010dd2532Schristos# As a special exception to the GNU General Public License, if you
2110dd2532Schristos# distribute this file as part of a program that contains a
2210dd2532Schristos# configuration script generated by Autoconf, you may include it under
23*32b71e0eSsevan# the same distribution terms that you use for the rest of that
24*32b71e0eSsevan# program.  This Exception is an additional permission under section 7
25*32b71e0eSsevan# of the GNU General Public License, version 3 ("GPLv3").
2610dd2532Schristos
27*32b71e0eSsevan
28*32b71e0eSsevan# Please send patches to <config-patches@gnu.org>.
2910dd2532Schristos#
3010dd2532Schristos# Configuration subroutine to validate and canonicalize a configuration type.
3110dd2532Schristos# Supply the specified configuration type as an argument.
3210dd2532Schristos# If it is invalid, we print an error message on stderr and exit with code 1.
3310dd2532Schristos# Otherwise, we print the canonical config type on stdout and succeed.
3410dd2532Schristos
35*32b71e0eSsevan# You can get the latest version of this script from:
36*32b71e0eSsevan# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
37*32b71e0eSsevan
3810dd2532Schristos# This file is supposed to be the same for all GNU packages
3910dd2532Schristos# and recognize all the CPU types, system types and aliases
4010dd2532Schristos# that are meaningful with *any* GNU software.
4110dd2532Schristos# Each package is responsible for reporting which valid configurations
4210dd2532Schristos# it does not support.  The user should be able to distinguish
4310dd2532Schristos# a failure to support a valid configuration from a meaningless
4410dd2532Schristos# configuration.
4510dd2532Schristos
4610dd2532Schristos# The goal of this file is to map all the various variations of a given
4710dd2532Schristos# machine specification into a single specification in the form:
4810dd2532Schristos#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
4910dd2532Schristos# or in some cases, the newer four-part form:
5010dd2532Schristos#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
5110dd2532Schristos# It is wrong to echo any other type of specification.
5210dd2532Schristos
5310dd2532Schristosme=`echo "$0" | sed -e 's,.*/,,'`
5410dd2532Schristos
5510dd2532Schristosusage="\
56*32b71e0eSsevanUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
5710dd2532Schristos
5810dd2532SchristosCanonicalize a configuration name.
5910dd2532Schristos
6010dd2532SchristosOperation modes:
6110dd2532Schristos  -h, --help         print this help, then exit
6210dd2532Schristos  -t, --time-stamp   print date of last modification, then exit
6310dd2532Schristos  -v, --version      print version number, then exit
6410dd2532Schristos
6510dd2532SchristosReport bugs and patches to <config-patches@gnu.org>."
6610dd2532Schristos
6710dd2532Schristosversion="\
6810dd2532SchristosGNU config.sub ($timestamp)
6910dd2532Schristos
70*32b71e0eSsevanCopyright 1992-2017 Free Software Foundation, Inc.
7110dd2532Schristos
7210dd2532SchristosThis is free software; see the source for copying conditions.  There is NO
7310dd2532Schristoswarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
7410dd2532Schristos
7510dd2532Schristoshelp="
7610dd2532SchristosTry \`$me --help' for more information."
7710dd2532Schristos
7810dd2532Schristos# Parse command line
7910dd2532Schristoswhile test $# -gt 0 ; do
8010dd2532Schristos  case $1 in
8110dd2532Schristos    --time-stamp | --time* | -t )
82*32b71e0eSsevan       echo "$timestamp" ; exit ;;
8310dd2532Schristos    --version | -v )
84*32b71e0eSsevan       echo "$version" ; exit ;;
8510dd2532Schristos    --help | --h* | -h )
86*32b71e0eSsevan       echo "$usage"; exit ;;
8710dd2532Schristos    -- )     # Stop option processing
8810dd2532Schristos       shift; break ;;
8910dd2532Schristos    - )	# Use stdin as input.
9010dd2532Schristos       break ;;
9110dd2532Schristos    -* )
9210dd2532Schristos       echo "$me: invalid option $1$help"
9310dd2532Schristos       exit 1 ;;
9410dd2532Schristos
9510dd2532Schristos    *local*)
9610dd2532Schristos       # First pass through any local machine types.
9710dd2532Schristos       echo $1
98*32b71e0eSsevan       exit ;;
9910dd2532Schristos
10010dd2532Schristos    * )
10110dd2532Schristos       break ;;
10210dd2532Schristos  esac
10310dd2532Schristosdone
10410dd2532Schristos
10510dd2532Schristoscase $# in
10610dd2532Schristos 0) echo "$me: missing argument$help" >&2
10710dd2532Schristos    exit 1;;
10810dd2532Schristos 1) ;;
10910dd2532Schristos *) echo "$me: too many arguments$help" >&2
11010dd2532Schristos    exit 1;;
11110dd2532Schristosesac
11210dd2532Schristos
11310dd2532Schristos# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
11410dd2532Schristos# Here we must recognize all the valid KERNEL-OS combinations.
11510dd2532Schristosmaybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
11610dd2532Schristoscase $maybe_os in
117*32b71e0eSsevan  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
118*32b71e0eSsevan  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
119*32b71e0eSsevan  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
120*32b71e0eSsevan  kopensolaris*-gnu* | cloudabi*-eabi* | \
121*32b71e0eSsevan  storm-chaos* | os2-emx* | rtmk-nova*)
12210dd2532Schristos    os=-$maybe_os
12310dd2532Schristos    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
12410dd2532Schristos    ;;
125*32b71e0eSsevan  android-linux)
126*32b71e0eSsevan    os=-linux-android
127*32b71e0eSsevan    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
128*32b71e0eSsevan    ;;
12910dd2532Schristos  *)
13010dd2532Schristos    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
13110dd2532Schristos    if [ $basic_machine != $1 ]
13210dd2532Schristos    then os=`echo $1 | sed 's/.*-/-/'`
13310dd2532Schristos    else os=; fi
13410dd2532Schristos    ;;
13510dd2532Schristosesac
13610dd2532Schristos
13710dd2532Schristos### Let's recognize common machines as not being operating systems so
13810dd2532Schristos### that things like config.sub decstation-3100 work.  We also
13910dd2532Schristos### recognize some manufacturers as not being operating systems, so we
14010dd2532Schristos### can provide default operating systems below.
14110dd2532Schristoscase $os in
14210dd2532Schristos	-sun*os*)
14310dd2532Schristos		# Prevent following clause from handling this invalid input.
14410dd2532Schristos		;;
14510dd2532Schristos	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
14610dd2532Schristos	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
14710dd2532Schristos	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
14810dd2532Schristos	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
14910dd2532Schristos	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
15010dd2532Schristos	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
151*32b71e0eSsevan	-apple | -axis | -knuth | -cray | -microblaze*)
15210dd2532Schristos		os=
15310dd2532Schristos		basic_machine=$1
15410dd2532Schristos		;;
155*32b71e0eSsevan	-bluegene*)
156*32b71e0eSsevan		os=-cnk
157*32b71e0eSsevan		;;
15810dd2532Schristos	-sim | -cisco | -oki | -wec | -winbond)
15910dd2532Schristos		os=
16010dd2532Schristos		basic_machine=$1
16110dd2532Schristos		;;
16210dd2532Schristos	-scout)
16310dd2532Schristos		;;
16410dd2532Schristos	-wrs)
16510dd2532Schristos		os=-vxworks
16610dd2532Schristos		basic_machine=$1
16710dd2532Schristos		;;
16810dd2532Schristos	-chorusos*)
16910dd2532Schristos		os=-chorusos
17010dd2532Schristos		basic_machine=$1
17110dd2532Schristos		;;
17210dd2532Schristos	-chorusrdb)
17310dd2532Schristos		os=-chorusrdb
17410dd2532Schristos		basic_machine=$1
17510dd2532Schristos		;;
17610dd2532Schristos	-hiux*)
17710dd2532Schristos		os=-hiuxwe2
17810dd2532Schristos		;;
179*32b71e0eSsevan	-sco6)
180*32b71e0eSsevan		os=-sco5v6
181*32b71e0eSsevan		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
182*32b71e0eSsevan		;;
18310dd2532Schristos	-sco5)
18410dd2532Schristos		os=-sco3.2v5
18510dd2532Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
18610dd2532Schristos		;;
18710dd2532Schristos	-sco4)
18810dd2532Schristos		os=-sco3.2v4
18910dd2532Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
19010dd2532Schristos		;;
19110dd2532Schristos	-sco3.2.[4-9]*)
19210dd2532Schristos		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
19310dd2532Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
19410dd2532Schristos		;;
19510dd2532Schristos	-sco3.2v[4-9]*)
19610dd2532Schristos		# Don't forget version if it is 3.2v4 or newer.
19710dd2532Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
19810dd2532Schristos		;;
199*32b71e0eSsevan	-sco5v6*)
200*32b71e0eSsevan		# Don't forget version if it is 3.2v4 or newer.
201*32b71e0eSsevan		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
202*32b71e0eSsevan		;;
20310dd2532Schristos	-sco*)
20410dd2532Schristos		os=-sco3.2v2
20510dd2532Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
20610dd2532Schristos		;;
20710dd2532Schristos	-udk*)
20810dd2532Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
20910dd2532Schristos		;;
21010dd2532Schristos	-isc)
21110dd2532Schristos		os=-isc2.2
21210dd2532Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
21310dd2532Schristos		;;
21410dd2532Schristos	-clix*)
21510dd2532Schristos		basic_machine=clipper-intergraph
21610dd2532Schristos		;;
21710dd2532Schristos	-isc*)
21810dd2532Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
21910dd2532Schristos		;;
220*32b71e0eSsevan	-lynx*178)
221*32b71e0eSsevan		os=-lynxos178
222*32b71e0eSsevan		;;
223*32b71e0eSsevan	-lynx*5)
224*32b71e0eSsevan		os=-lynxos5
225*32b71e0eSsevan		;;
22610dd2532Schristos	-lynx*)
22710dd2532Schristos		os=-lynxos
22810dd2532Schristos		;;
22910dd2532Schristos	-ptx*)
23010dd2532Schristos		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
23110dd2532Schristos		;;
23210dd2532Schristos	-windowsnt*)
23310dd2532Schristos		os=`echo $os | sed -e 's/windowsnt/winnt/'`
23410dd2532Schristos		;;
23510dd2532Schristos	-psos*)
23610dd2532Schristos		os=-psos
23710dd2532Schristos		;;
23810dd2532Schristos	-mint | -mint[0-9]*)
23910dd2532Schristos		basic_machine=m68k-atari
24010dd2532Schristos		os=-mint
24110dd2532Schristos		;;
24210dd2532Schristosesac
24310dd2532Schristos
24410dd2532Schristos# Decode aliases for certain CPU-COMPANY combinations.
24510dd2532Schristoscase $basic_machine in
24610dd2532Schristos	# Recognize the basic CPU types without company name.
24710dd2532Schristos	# Some are omitted here because they have special meanings below.
24810dd2532Schristos	1750a | 580 \
24910dd2532Schristos	| a29k \
250*32b71e0eSsevan	| aarch64 | aarch64_be \
25110dd2532Schristos	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
25210dd2532Schristos	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
253*32b71e0eSsevan	| am33_2.0 \
254*32b71e0eSsevan	| arc | arceb \
255*32b71e0eSsevan	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
256*32b71e0eSsevan	| avr | avr32 \
257*32b71e0eSsevan	| ba \
258*32b71e0eSsevan	| be32 | be64 \
259*32b71e0eSsevan	| bfin \
260*32b71e0eSsevan	| c4x | c8051 | clipper \
26110dd2532Schristos	| d10v | d30v | dlx | dsp16xx \
262*32b71e0eSsevan	| e2k | epiphany \
263*32b71e0eSsevan	| fido | fr30 | frv | ft32 \
26410dd2532Schristos	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
265*32b71e0eSsevan	| hexagon \
26610dd2532Schristos	| i370 | i860 | i960 | ia64 \
267*32b71e0eSsevan	| ip2k | iq2000 \
268*32b71e0eSsevan	| k1om \
269*32b71e0eSsevan	| le32 | le64 \
270*32b71e0eSsevan	| lm32 \
271*32b71e0eSsevan	| m32c | m32r | m32rle | m68000 | m68k | m88k \
272*32b71e0eSsevan	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
27310dd2532Schristos	| mips | mipsbe | mipseb | mipsel | mipsle \
27410dd2532Schristos	| mips16 \
27510dd2532Schristos	| mips64 | mips64el \
276*32b71e0eSsevan	| mips64octeon | mips64octeonel \
27710dd2532Schristos	| mips64orion | mips64orionel \
278*32b71e0eSsevan	| mips64r5900 | mips64r5900el \
279*32b71e0eSsevan	| mips64vr | mips64vrel \
28010dd2532Schristos	| mips64vr4100 | mips64vr4100el \
28110dd2532Schristos	| mips64vr4300 | mips64vr4300el \
28210dd2532Schristos	| mips64vr5000 | mips64vr5000el \
283*32b71e0eSsevan	| mips64vr5900 | mips64vr5900el \
28410dd2532Schristos	| mipsisa32 | mipsisa32el \
28510dd2532Schristos	| mipsisa32r2 | mipsisa32r2el \
286*32b71e0eSsevan	| mipsisa32r6 | mipsisa32r6el \
28710dd2532Schristos	| mipsisa64 | mipsisa64el \
288*32b71e0eSsevan	| mipsisa64r2 | mipsisa64r2el \
289*32b71e0eSsevan	| mipsisa64r6 | mipsisa64r6el \
29010dd2532Schristos	| mipsisa64sb1 | mipsisa64sb1el \
29110dd2532Schristos	| mipsisa64sr71k | mipsisa64sr71kel \
292*32b71e0eSsevan	| mipsr5900 | mipsr5900el \
29310dd2532Schristos	| mipstx39 | mipstx39el \
29410dd2532Schristos	| mn10200 | mn10300 \
295*32b71e0eSsevan	| moxie \
296*32b71e0eSsevan	| mt \
29710dd2532Schristos	| msp430 \
298*32b71e0eSsevan	| nds32 | nds32le | nds32be \
299*32b71e0eSsevan	| nios | nios2 | nios2eb | nios2el \
30010dd2532Schristos	| ns16k | ns32k \
301*32b71e0eSsevan	| open8 | or1k | or1knd | or32 \
30210dd2532Schristos	| pdp10 | pdp11 | pj | pjl \
303*32b71e0eSsevan	| powerpc | powerpc64 | powerpc64le | powerpcle \
304*32b71e0eSsevan	| pru \
30510dd2532Schristos	| pyramid \
306*32b71e0eSsevan	| riscv32 | riscv64 \
307*32b71e0eSsevan	| rl78 | rx \
308*32b71e0eSsevan	| score \
309*32b71e0eSsevan	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
31010dd2532Schristos	| sh64 | sh64le \
311*32b71e0eSsevan	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
312*32b71e0eSsevan	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
313*32b71e0eSsevan	| spu \
314*32b71e0eSsevan	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
315*32b71e0eSsevan	| ubicom32 \
316*32b71e0eSsevan	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
317*32b71e0eSsevan	| visium \
31810dd2532Schristos	| we32k \
319*32b71e0eSsevan	| x86 | xc16x | xstormy16 | xtensa \
320*32b71e0eSsevan	| z8k | z80)
32110dd2532Schristos		basic_machine=$basic_machine-unknown
32210dd2532Schristos		;;
323*32b71e0eSsevan	c54x)
324*32b71e0eSsevan		basic_machine=tic54x-unknown
325*32b71e0eSsevan		;;
326*32b71e0eSsevan	c55x)
327*32b71e0eSsevan		basic_machine=tic55x-unknown
328*32b71e0eSsevan		;;
329*32b71e0eSsevan	c6x)
330*32b71e0eSsevan		basic_machine=tic6x-unknown
331*32b71e0eSsevan		;;
332*32b71e0eSsevan	leon|leon[3-9])
333*32b71e0eSsevan		basic_machine=sparc-$basic_machine
334*32b71e0eSsevan		;;
335*32b71e0eSsevan	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
33610dd2532Schristos		basic_machine=$basic_machine-unknown
33710dd2532Schristos		os=-none
33810dd2532Schristos		;;
33910dd2532Schristos	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
34010dd2532Schristos		;;
341*32b71e0eSsevan	ms1)
342*32b71e0eSsevan		basic_machine=mt-unknown
343*32b71e0eSsevan		;;
344*32b71e0eSsevan
345*32b71e0eSsevan	strongarm | thumb | xscale)
346*32b71e0eSsevan		basic_machine=arm-unknown
347*32b71e0eSsevan		;;
348*32b71e0eSsevan	xgate)
349*32b71e0eSsevan		basic_machine=$basic_machine-unknown
350*32b71e0eSsevan		os=-none
351*32b71e0eSsevan		;;
352*32b71e0eSsevan	xscaleeb)
353*32b71e0eSsevan		basic_machine=armeb-unknown
354*32b71e0eSsevan		;;
355*32b71e0eSsevan
356*32b71e0eSsevan	xscaleel)
357*32b71e0eSsevan		basic_machine=armel-unknown
358*32b71e0eSsevan		;;
35910dd2532Schristos
36010dd2532Schristos	# We use `pc' rather than `unknown'
36110dd2532Schristos	# because (1) that's what they normally are, and
36210dd2532Schristos	# (2) the word "unknown" tends to confuse beginning users.
36310dd2532Schristos	i*86 | x86_64)
36410dd2532Schristos	  basic_machine=$basic_machine-pc
36510dd2532Schristos	  ;;
36610dd2532Schristos	# Object if more than one company name word.
36710dd2532Schristos	*-*-*)
36810dd2532Schristos		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
36910dd2532Schristos		exit 1
37010dd2532Schristos		;;
37110dd2532Schristos	# Recognize the basic CPU types with company name.
37210dd2532Schristos	580-* \
37310dd2532Schristos	| a29k-* \
374*32b71e0eSsevan	| aarch64-* | aarch64_be-* \
37510dd2532Schristos	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
37610dd2532Schristos	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
377*32b71e0eSsevan	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
37810dd2532Schristos	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
379*32b71e0eSsevan	| avr-* | avr32-* \
380*32b71e0eSsevan	| ba-* \
381*32b71e0eSsevan	| be32-* | be64-* \
382*32b71e0eSsevan	| bfin-* | bs2000-* \
383*32b71e0eSsevan	| c[123]* | c30-* | [cjt]90-* | c4x-* \
384*32b71e0eSsevan	| c8051-* | clipper-* | craynv-* | cydra-* \
38510dd2532Schristos	| d10v-* | d30v-* | dlx-* \
386*32b71e0eSsevan	| e2k-* | elxsi-* \
387*32b71e0eSsevan	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
38810dd2532Schristos	| h8300-* | h8500-* \
38910dd2532Schristos	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
390*32b71e0eSsevan	| hexagon-* \
39110dd2532Schristos	| i*86-* | i860-* | i960-* | ia64-* \
392*32b71e0eSsevan	| ip2k-* | iq2000-* \
393*32b71e0eSsevan	| k1om-* \
394*32b71e0eSsevan	| le32-* | le64-* \
395*32b71e0eSsevan	| lm32-* \
396*32b71e0eSsevan	| m32c-* | m32r-* | m32rle-* \
39710dd2532Schristos	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
398*32b71e0eSsevan	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
399*32b71e0eSsevan	| microblaze-* | microblazeel-* \
40010dd2532Schristos	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
40110dd2532Schristos	| mips16-* \
40210dd2532Schristos	| mips64-* | mips64el-* \
403*32b71e0eSsevan	| mips64octeon-* | mips64octeonel-* \
40410dd2532Schristos	| mips64orion-* | mips64orionel-* \
405*32b71e0eSsevan	| mips64r5900-* | mips64r5900el-* \
406*32b71e0eSsevan	| mips64vr-* | mips64vrel-* \
40710dd2532Schristos	| mips64vr4100-* | mips64vr4100el-* \
40810dd2532Schristos	| mips64vr4300-* | mips64vr4300el-* \
40910dd2532Schristos	| mips64vr5000-* | mips64vr5000el-* \
410*32b71e0eSsevan	| mips64vr5900-* | mips64vr5900el-* \
41110dd2532Schristos	| mipsisa32-* | mipsisa32el-* \
41210dd2532Schristos	| mipsisa32r2-* | mipsisa32r2el-* \
413*32b71e0eSsevan	| mipsisa32r6-* | mipsisa32r6el-* \
41410dd2532Schristos	| mipsisa64-* | mipsisa64el-* \
415*32b71e0eSsevan	| mipsisa64r2-* | mipsisa64r2el-* \
416*32b71e0eSsevan	| mipsisa64r6-* | mipsisa64r6el-* \
41710dd2532Schristos	| mipsisa64sb1-* | mipsisa64sb1el-* \
41810dd2532Schristos	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
419*32b71e0eSsevan	| mipsr5900-* | mipsr5900el-* \
42010dd2532Schristos	| mipstx39-* | mipstx39el-* \
421*32b71e0eSsevan	| mmix-* \
422*32b71e0eSsevan	| mt-* \
42310dd2532Schristos	| msp430-* \
424*32b71e0eSsevan	| nds32-* | nds32le-* | nds32be-* \
425*32b71e0eSsevan	| nios-* | nios2-* | nios2eb-* | nios2el-* \
426*32b71e0eSsevan	| none-* | np1-* | ns16k-* | ns32k-* \
427*32b71e0eSsevan	| open8-* \
428*32b71e0eSsevan	| or1k*-* \
42910dd2532Schristos	| orion-* \
43010dd2532Schristos	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
431*32b71e0eSsevan	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
432*32b71e0eSsevan	| pru-* \
43310dd2532Schristos	| pyramid-* \
434*32b71e0eSsevan	| riscv32-* | riscv64-* \
435*32b71e0eSsevan	| rl78-* | romp-* | rs6000-* | rx-* \
436*32b71e0eSsevan	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
43710dd2532Schristos	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
438*32b71e0eSsevan	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
439*32b71e0eSsevan	| sparclite-* \
440*32b71e0eSsevan	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
441*32b71e0eSsevan	| tahoe-* \
44210dd2532Schristos	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
443*32b71e0eSsevan	| tile*-* \
44410dd2532Schristos	| tron-* \
445*32b71e0eSsevan	| ubicom32-* \
446*32b71e0eSsevan	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
447*32b71e0eSsevan	| vax-* \
448*32b71e0eSsevan	| visium-* \
44910dd2532Schristos	| we32k-* \
450*32b71e0eSsevan	| x86-* | x86_64-* | xc16x-* | xps100-* \
451*32b71e0eSsevan	| xstormy16-* | xtensa*-* \
45210dd2532Schristos	| ymp-* \
453*32b71e0eSsevan	| z8k-* | z80-*)
454*32b71e0eSsevan		;;
455*32b71e0eSsevan	# Recognize the basic CPU types without company name, with glob match.
456*32b71e0eSsevan	xtensa*)
457*32b71e0eSsevan		basic_machine=$basic_machine-unknown
45810dd2532Schristos		;;
45910dd2532Schristos	# Recognize the various machine names and aliases which stand
46010dd2532Schristos	# for a CPU type and a company and sometimes even an OS.
46110dd2532Schristos	386bsd)
46210dd2532Schristos		basic_machine=i386-unknown
46310dd2532Schristos		os=-bsd
46410dd2532Schristos		;;
46510dd2532Schristos	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
46610dd2532Schristos		basic_machine=m68000-att
46710dd2532Schristos		;;
46810dd2532Schristos	3b*)
46910dd2532Schristos		basic_machine=we32k-att
47010dd2532Schristos		;;
47110dd2532Schristos	a29khif)
47210dd2532Schristos		basic_machine=a29k-amd
47310dd2532Schristos		os=-udi
47410dd2532Schristos		;;
475*32b71e0eSsevan	abacus)
476*32b71e0eSsevan		basic_machine=abacus-unknown
477*32b71e0eSsevan		;;
47810dd2532Schristos	adobe68k)
47910dd2532Schristos		basic_machine=m68010-adobe
48010dd2532Schristos		os=-scout
48110dd2532Schristos		;;
48210dd2532Schristos	alliant | fx80)
48310dd2532Schristos		basic_machine=fx80-alliant
48410dd2532Schristos		;;
48510dd2532Schristos	altos | altos3068)
48610dd2532Schristos		basic_machine=m68k-altos
48710dd2532Schristos		;;
48810dd2532Schristos	am29k)
48910dd2532Schristos		basic_machine=a29k-none
49010dd2532Schristos		os=-bsd
49110dd2532Schristos		;;
49210dd2532Schristos	amd64)
49310dd2532Schristos		basic_machine=x86_64-pc
49410dd2532Schristos		;;
495*32b71e0eSsevan	amd64-*)
496*32b71e0eSsevan		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
497*32b71e0eSsevan		;;
49810dd2532Schristos	amdahl)
49910dd2532Schristos		basic_machine=580-amdahl
50010dd2532Schristos		os=-sysv
50110dd2532Schristos		;;
50210dd2532Schristos	amiga | amiga-*)
50310dd2532Schristos		basic_machine=m68k-unknown
50410dd2532Schristos		;;
50510dd2532Schristos	amigaos | amigados)
50610dd2532Schristos		basic_machine=m68k-unknown
50710dd2532Schristos		os=-amigaos
50810dd2532Schristos		;;
50910dd2532Schristos	amigaunix | amix)
51010dd2532Schristos		basic_machine=m68k-unknown
51110dd2532Schristos		os=-sysv4
51210dd2532Schristos		;;
51310dd2532Schristos	apollo68)
51410dd2532Schristos		basic_machine=m68k-apollo
51510dd2532Schristos		os=-sysv
51610dd2532Schristos		;;
51710dd2532Schristos	apollo68bsd)
51810dd2532Schristos		basic_machine=m68k-apollo
51910dd2532Schristos		os=-bsd
52010dd2532Schristos		;;
521*32b71e0eSsevan	aros)
522*32b71e0eSsevan		basic_machine=i386-pc
523*32b71e0eSsevan		os=-aros
524*32b71e0eSsevan		;;
525*32b71e0eSsevan	asmjs)
526*32b71e0eSsevan		basic_machine=asmjs-unknown
527*32b71e0eSsevan		;;
52810dd2532Schristos	aux)
52910dd2532Schristos		basic_machine=m68k-apple
53010dd2532Schristos		os=-aux
53110dd2532Schristos		;;
53210dd2532Schristos	balance)
53310dd2532Schristos		basic_machine=ns32k-sequent
53410dd2532Schristos		os=-dynix
53510dd2532Schristos		;;
536*32b71e0eSsevan	blackfin)
537*32b71e0eSsevan		basic_machine=bfin-unknown
538*32b71e0eSsevan		os=-linux
539*32b71e0eSsevan		;;
540*32b71e0eSsevan	blackfin-*)
541*32b71e0eSsevan		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
542*32b71e0eSsevan		os=-linux
543*32b71e0eSsevan		;;
544*32b71e0eSsevan	bluegene*)
545*32b71e0eSsevan		basic_machine=powerpc-ibm
546*32b71e0eSsevan		os=-cnk
547*32b71e0eSsevan		;;
548*32b71e0eSsevan	c54x-*)
549*32b71e0eSsevan		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
550*32b71e0eSsevan		;;
551*32b71e0eSsevan	c55x-*)
552*32b71e0eSsevan		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
553*32b71e0eSsevan		;;
554*32b71e0eSsevan	c6x-*)
555*32b71e0eSsevan		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
556*32b71e0eSsevan		;;
55710dd2532Schristos	c90)
55810dd2532Schristos		basic_machine=c90-cray
55910dd2532Schristos		os=-unicos
56010dd2532Schristos		;;
561*32b71e0eSsevan	cegcc)
562*32b71e0eSsevan		basic_machine=arm-unknown
563*32b71e0eSsevan		os=-cegcc
564*32b71e0eSsevan		;;
56510dd2532Schristos	convex-c1)
56610dd2532Schristos		basic_machine=c1-convex
56710dd2532Schristos		os=-bsd
56810dd2532Schristos		;;
56910dd2532Schristos	convex-c2)
57010dd2532Schristos		basic_machine=c2-convex
57110dd2532Schristos		os=-bsd
57210dd2532Schristos		;;
57310dd2532Schristos	convex-c32)
57410dd2532Schristos		basic_machine=c32-convex
57510dd2532Schristos		os=-bsd
57610dd2532Schristos		;;
57710dd2532Schristos	convex-c34)
57810dd2532Schristos		basic_machine=c34-convex
57910dd2532Schristos		os=-bsd
58010dd2532Schristos		;;
58110dd2532Schristos	convex-c38)
58210dd2532Schristos		basic_machine=c38-convex
58310dd2532Schristos		os=-bsd
58410dd2532Schristos		;;
58510dd2532Schristos	cray | j90)
58610dd2532Schristos		basic_machine=j90-cray
58710dd2532Schristos		os=-unicos
58810dd2532Schristos		;;
589*32b71e0eSsevan	craynv)
590*32b71e0eSsevan		basic_machine=craynv-cray
591*32b71e0eSsevan		os=-unicosmp
592*32b71e0eSsevan		;;
593*32b71e0eSsevan	cr16 | cr16-*)
594*32b71e0eSsevan		basic_machine=cr16-unknown
595*32b71e0eSsevan		os=-elf
596*32b71e0eSsevan		;;
59710dd2532Schristos	crds | unos)
59810dd2532Schristos		basic_machine=m68k-crds
59910dd2532Schristos		;;
600*32b71e0eSsevan	crisv32 | crisv32-* | etraxfs*)
601*32b71e0eSsevan		basic_machine=crisv32-axis
602*32b71e0eSsevan		;;
60310dd2532Schristos	cris | cris-* | etrax*)
60410dd2532Schristos		basic_machine=cris-axis
60510dd2532Schristos		;;
606*32b71e0eSsevan	crx)
607*32b71e0eSsevan		basic_machine=crx-unknown
608*32b71e0eSsevan		os=-elf
609*32b71e0eSsevan		;;
61010dd2532Schristos	da30 | da30-*)
61110dd2532Schristos		basic_machine=m68k-da30
61210dd2532Schristos		;;
61310dd2532Schristos	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
61410dd2532Schristos		basic_machine=mips-dec
61510dd2532Schristos		;;
61610dd2532Schristos	decsystem10* | dec10*)
61710dd2532Schristos		basic_machine=pdp10-dec
61810dd2532Schristos		os=-tops10
61910dd2532Schristos		;;
62010dd2532Schristos	decsystem20* | dec20*)
62110dd2532Schristos		basic_machine=pdp10-dec
62210dd2532Schristos		os=-tops20
62310dd2532Schristos		;;
62410dd2532Schristos	delta | 3300 | motorola-3300 | motorola-delta \
62510dd2532Schristos	      | 3300-motorola | delta-motorola)
62610dd2532Schristos		basic_machine=m68k-motorola
62710dd2532Schristos		;;
62810dd2532Schristos	delta88)
62910dd2532Schristos		basic_machine=m88k-motorola
63010dd2532Schristos		os=-sysv3
63110dd2532Schristos		;;
632*32b71e0eSsevan	dicos)
633*32b71e0eSsevan		basic_machine=i686-pc
634*32b71e0eSsevan		os=-dicos
635*32b71e0eSsevan		;;
636*32b71e0eSsevan	djgpp)
637*32b71e0eSsevan		basic_machine=i586-pc
638*32b71e0eSsevan		os=-msdosdjgpp
639*32b71e0eSsevan		;;
64010dd2532Schristos	dpx20 | dpx20-*)
64110dd2532Schristos		basic_machine=rs6000-bull
64210dd2532Schristos		os=-bosx
64310dd2532Schristos		;;
64410dd2532Schristos	dpx2* | dpx2*-bull)
64510dd2532Schristos		basic_machine=m68k-bull
64610dd2532Schristos		os=-sysv3
64710dd2532Schristos		;;
648*32b71e0eSsevan	e500v[12])
649*32b71e0eSsevan		basic_machine=powerpc-unknown
650*32b71e0eSsevan		os=$os"spe"
651*32b71e0eSsevan		;;
652*32b71e0eSsevan	e500v[12]-*)
653*32b71e0eSsevan		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
654*32b71e0eSsevan		os=$os"spe"
655*32b71e0eSsevan		;;
65610dd2532Schristos	ebmon29k)
65710dd2532Schristos		basic_machine=a29k-amd
65810dd2532Schristos		os=-ebmon
65910dd2532Schristos		;;
66010dd2532Schristos	elxsi)
66110dd2532Schristos		basic_machine=elxsi-elxsi
66210dd2532Schristos		os=-bsd
66310dd2532Schristos		;;
66410dd2532Schristos	encore | umax | mmax)
66510dd2532Schristos		basic_machine=ns32k-encore
66610dd2532Schristos		;;
66710dd2532Schristos	es1800 | OSE68k | ose68k | ose | OSE)
66810dd2532Schristos		basic_machine=m68k-ericsson
66910dd2532Schristos		os=-ose
67010dd2532Schristos		;;
67110dd2532Schristos	fx2800)
67210dd2532Schristos		basic_machine=i860-alliant
67310dd2532Schristos		;;
67410dd2532Schristos	genix)
67510dd2532Schristos		basic_machine=ns32k-ns
67610dd2532Schristos		;;
67710dd2532Schristos	gmicro)
67810dd2532Schristos		basic_machine=tron-gmicro
67910dd2532Schristos		os=-sysv
68010dd2532Schristos		;;
68110dd2532Schristos	go32)
68210dd2532Schristos		basic_machine=i386-pc
68310dd2532Schristos		os=-go32
68410dd2532Schristos		;;
68510dd2532Schristos	h3050r* | hiux*)
68610dd2532Schristos		basic_machine=hppa1.1-hitachi
68710dd2532Schristos		os=-hiuxwe2
68810dd2532Schristos		;;
68910dd2532Schristos	h8300hms)
69010dd2532Schristos		basic_machine=h8300-hitachi
69110dd2532Schristos		os=-hms
69210dd2532Schristos		;;
69310dd2532Schristos	h8300xray)
69410dd2532Schristos		basic_machine=h8300-hitachi
69510dd2532Schristos		os=-xray
69610dd2532Schristos		;;
69710dd2532Schristos	h8500hms)
69810dd2532Schristos		basic_machine=h8500-hitachi
69910dd2532Schristos		os=-hms
70010dd2532Schristos		;;
70110dd2532Schristos	harris)
70210dd2532Schristos		basic_machine=m88k-harris
70310dd2532Schristos		os=-sysv3
70410dd2532Schristos		;;
70510dd2532Schristos	hp300-*)
70610dd2532Schristos		basic_machine=m68k-hp
70710dd2532Schristos		;;
70810dd2532Schristos	hp300bsd)
70910dd2532Schristos		basic_machine=m68k-hp
71010dd2532Schristos		os=-bsd
71110dd2532Schristos		;;
71210dd2532Schristos	hp300hpux)
71310dd2532Schristos		basic_machine=m68k-hp
71410dd2532Schristos		os=-hpux
71510dd2532Schristos		;;
71610dd2532Schristos	hp3k9[0-9][0-9] | hp9[0-9][0-9])
71710dd2532Schristos		basic_machine=hppa1.0-hp
71810dd2532Schristos		;;
71910dd2532Schristos	hp9k2[0-9][0-9] | hp9k31[0-9])
72010dd2532Schristos		basic_machine=m68000-hp
72110dd2532Schristos		;;
72210dd2532Schristos	hp9k3[2-9][0-9])
72310dd2532Schristos		basic_machine=m68k-hp
72410dd2532Schristos		;;
72510dd2532Schristos	hp9k6[0-9][0-9] | hp6[0-9][0-9])
72610dd2532Schristos		basic_machine=hppa1.0-hp
72710dd2532Schristos		;;
72810dd2532Schristos	hp9k7[0-79][0-9] | hp7[0-79][0-9])
72910dd2532Schristos		basic_machine=hppa1.1-hp
73010dd2532Schristos		;;
73110dd2532Schristos	hp9k78[0-9] | hp78[0-9])
73210dd2532Schristos		# FIXME: really hppa2.0-hp
73310dd2532Schristos		basic_machine=hppa1.1-hp
73410dd2532Schristos		;;
73510dd2532Schristos	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
73610dd2532Schristos		# FIXME: really hppa2.0-hp
73710dd2532Schristos		basic_machine=hppa1.1-hp
73810dd2532Schristos		;;
73910dd2532Schristos	hp9k8[0-9][13679] | hp8[0-9][13679])
74010dd2532Schristos		basic_machine=hppa1.1-hp
74110dd2532Schristos		;;
74210dd2532Schristos	hp9k8[0-9][0-9] | hp8[0-9][0-9])
74310dd2532Schristos		basic_machine=hppa1.0-hp
74410dd2532Schristos		;;
74510dd2532Schristos	hppa-next)
74610dd2532Schristos		os=-nextstep3
74710dd2532Schristos		;;
74810dd2532Schristos	hppaosf)
74910dd2532Schristos		basic_machine=hppa1.1-hp
75010dd2532Schristos		os=-osf
75110dd2532Schristos		;;
75210dd2532Schristos	hppro)
75310dd2532Schristos		basic_machine=hppa1.1-hp
75410dd2532Schristos		os=-proelf
75510dd2532Schristos		;;
75610dd2532Schristos	i370-ibm* | ibm*)
75710dd2532Schristos		basic_machine=i370-ibm
75810dd2532Schristos		;;
75910dd2532Schristos	i*86v32)
76010dd2532Schristos		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
76110dd2532Schristos		os=-sysv32
76210dd2532Schristos		;;
76310dd2532Schristos	i*86v4*)
76410dd2532Schristos		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
76510dd2532Schristos		os=-sysv4
76610dd2532Schristos		;;
76710dd2532Schristos	i*86v)
76810dd2532Schristos		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
76910dd2532Schristos		os=-sysv
77010dd2532Schristos		;;
77110dd2532Schristos	i*86sol2)
77210dd2532Schristos		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
77310dd2532Schristos		os=-solaris2
77410dd2532Schristos		;;
77510dd2532Schristos	i386mach)
77610dd2532Schristos		basic_machine=i386-mach
77710dd2532Schristos		os=-mach
77810dd2532Schristos		;;
77910dd2532Schristos	i386-vsta | vsta)
78010dd2532Schristos		basic_machine=i386-unknown
78110dd2532Schristos		os=-vsta
78210dd2532Schristos		;;
78310dd2532Schristos	iris | iris4d)
78410dd2532Schristos		basic_machine=mips-sgi
78510dd2532Schristos		case $os in
78610dd2532Schristos		    -irix*)
78710dd2532Schristos			;;
78810dd2532Schristos		    *)
78910dd2532Schristos			os=-irix4
79010dd2532Schristos			;;
79110dd2532Schristos		esac
79210dd2532Schristos		;;
79310dd2532Schristos	isi68 | isi)
79410dd2532Schristos		basic_machine=m68k-isi
79510dd2532Schristos		os=-sysv
79610dd2532Schristos		;;
797*32b71e0eSsevan	leon-*|leon[3-9]-*)
798*32b71e0eSsevan		basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
799*32b71e0eSsevan		;;
800*32b71e0eSsevan	m68knommu)
801*32b71e0eSsevan		basic_machine=m68k-unknown
802*32b71e0eSsevan		os=-linux
803*32b71e0eSsevan		;;
804*32b71e0eSsevan	m68knommu-*)
805*32b71e0eSsevan		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
806*32b71e0eSsevan		os=-linux
807*32b71e0eSsevan		;;
80810dd2532Schristos	m88k-omron*)
80910dd2532Schristos		basic_machine=m88k-omron
81010dd2532Schristos		;;
81110dd2532Schristos	magnum | m3230)
81210dd2532Schristos		basic_machine=mips-mips
81310dd2532Schristos		os=-sysv
81410dd2532Schristos		;;
81510dd2532Schristos	merlin)
81610dd2532Schristos		basic_machine=ns32k-utek
81710dd2532Schristos		os=-sysv
81810dd2532Schristos		;;
819*32b71e0eSsevan	microblaze*)
820*32b71e0eSsevan		basic_machine=microblaze-xilinx
821*32b71e0eSsevan		;;
822*32b71e0eSsevan	mingw64)
823*32b71e0eSsevan		basic_machine=x86_64-pc
824*32b71e0eSsevan		os=-mingw64
825*32b71e0eSsevan		;;
82610dd2532Schristos	mingw32)
827*32b71e0eSsevan		basic_machine=i686-pc
82810dd2532Schristos		os=-mingw32
82910dd2532Schristos		;;
830*32b71e0eSsevan	mingw32ce)
831*32b71e0eSsevan		basic_machine=arm-unknown
832*32b71e0eSsevan		os=-mingw32ce
833*32b71e0eSsevan		;;
83410dd2532Schristos	miniframe)
83510dd2532Schristos		basic_machine=m68000-convergent
83610dd2532Schristos		;;
83710dd2532Schristos	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
83810dd2532Schristos		basic_machine=m68k-atari
83910dd2532Schristos		os=-mint
84010dd2532Schristos		;;
84110dd2532Schristos	mips3*-*)
84210dd2532Schristos		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
84310dd2532Schristos		;;
84410dd2532Schristos	mips3*)
84510dd2532Schristos		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
84610dd2532Schristos		;;
84710dd2532Schristos	monitor)
84810dd2532Schristos		basic_machine=m68k-rom68k
84910dd2532Schristos		os=-coff
85010dd2532Schristos		;;
85110dd2532Schristos	morphos)
85210dd2532Schristos		basic_machine=powerpc-unknown
85310dd2532Schristos		os=-morphos
85410dd2532Schristos		;;
855*32b71e0eSsevan	moxiebox)
856*32b71e0eSsevan		basic_machine=moxie-unknown
857*32b71e0eSsevan		os=-moxiebox
858*32b71e0eSsevan		;;
85910dd2532Schristos	msdos)
86010dd2532Schristos		basic_machine=i386-pc
86110dd2532Schristos		os=-msdos
86210dd2532Schristos		;;
863*32b71e0eSsevan	ms1-*)
864*32b71e0eSsevan		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
865*32b71e0eSsevan		;;
866*32b71e0eSsevan	msys)
867*32b71e0eSsevan		basic_machine=i686-pc
868*32b71e0eSsevan		os=-msys
869*32b71e0eSsevan		;;
87010dd2532Schristos	mvs)
87110dd2532Schristos		basic_machine=i370-ibm
87210dd2532Schristos		os=-mvs
87310dd2532Schristos		;;
874*32b71e0eSsevan	nacl)
875*32b71e0eSsevan		basic_machine=le32-unknown
876*32b71e0eSsevan		os=-nacl
877*32b71e0eSsevan		;;
87810dd2532Schristos	ncr3000)
87910dd2532Schristos		basic_machine=i486-ncr
88010dd2532Schristos		os=-sysv4
88110dd2532Schristos		;;
88210dd2532Schristos	netbsd386)
88310dd2532Schristos		basic_machine=i386-unknown
88410dd2532Schristos		os=-netbsd
88510dd2532Schristos		;;
88610dd2532Schristos	netwinder)
88710dd2532Schristos		basic_machine=armv4l-rebel
88810dd2532Schristos		os=-linux
88910dd2532Schristos		;;
89010dd2532Schristos	news | news700 | news800 | news900)
89110dd2532Schristos		basic_machine=m68k-sony
89210dd2532Schristos		os=-newsos
89310dd2532Schristos		;;
89410dd2532Schristos	news1000)
89510dd2532Schristos		basic_machine=m68030-sony
89610dd2532Schristos		os=-newsos
89710dd2532Schristos		;;
89810dd2532Schristos	news-3600 | risc-news)
89910dd2532Schristos		basic_machine=mips-sony
90010dd2532Schristos		os=-newsos
90110dd2532Schristos		;;
90210dd2532Schristos	necv70)
90310dd2532Schristos		basic_machine=v70-nec
90410dd2532Schristos		os=-sysv
90510dd2532Schristos		;;
90610dd2532Schristos	next | m*-next )
90710dd2532Schristos		basic_machine=m68k-next
90810dd2532Schristos		case $os in
90910dd2532Schristos		    -nextstep* )
91010dd2532Schristos			;;
91110dd2532Schristos		    -ns2*)
91210dd2532Schristos		      os=-nextstep2
91310dd2532Schristos			;;
91410dd2532Schristos		    *)
91510dd2532Schristos		      os=-nextstep3
91610dd2532Schristos			;;
91710dd2532Schristos		esac
91810dd2532Schristos		;;
91910dd2532Schristos	nh3000)
92010dd2532Schristos		basic_machine=m68k-harris
92110dd2532Schristos		os=-cxux
92210dd2532Schristos		;;
92310dd2532Schristos	nh[45]000)
92410dd2532Schristos		basic_machine=m88k-harris
92510dd2532Schristos		os=-cxux
92610dd2532Schristos		;;
92710dd2532Schristos	nindy960)
92810dd2532Schristos		basic_machine=i960-intel
92910dd2532Schristos		os=-nindy
93010dd2532Schristos		;;
93110dd2532Schristos	mon960)
93210dd2532Schristos		basic_machine=i960-intel
93310dd2532Schristos		os=-mon960
93410dd2532Schristos		;;
93510dd2532Schristos	nonstopux)
93610dd2532Schristos		basic_machine=mips-compaq
93710dd2532Schristos		os=-nonstopux
93810dd2532Schristos		;;
93910dd2532Schristos	np1)
94010dd2532Schristos		basic_machine=np1-gould
94110dd2532Schristos		;;
942*32b71e0eSsevan	neo-tandem)
943*32b71e0eSsevan		basic_machine=neo-tandem
944*32b71e0eSsevan		;;
945*32b71e0eSsevan	nse-tandem)
946*32b71e0eSsevan		basic_machine=nse-tandem
94710dd2532Schristos		;;
94810dd2532Schristos	nsr-tandem)
94910dd2532Schristos		basic_machine=nsr-tandem
95010dd2532Schristos		;;
95110dd2532Schristos	op50n-* | op60c-*)
95210dd2532Schristos		basic_machine=hppa1.1-oki
95310dd2532Schristos		os=-proelf
95410dd2532Schristos		;;
955*32b71e0eSsevan	openrisc | openrisc-*)
95610dd2532Schristos		basic_machine=or32-unknown
957*32b71e0eSsevan		;;
958*32b71e0eSsevan	os400)
959*32b71e0eSsevan		basic_machine=powerpc-ibm
960*32b71e0eSsevan		os=-os400
96110dd2532Schristos		;;
96210dd2532Schristos	OSE68000 | ose68000)
96310dd2532Schristos		basic_machine=m68000-ericsson
96410dd2532Schristos		os=-ose
96510dd2532Schristos		;;
96610dd2532Schristos	os68k)
96710dd2532Schristos		basic_machine=m68k-none
96810dd2532Schristos		os=-os68k
96910dd2532Schristos		;;
97010dd2532Schristos	pa-hitachi)
97110dd2532Schristos		basic_machine=hppa1.1-hitachi
97210dd2532Schristos		os=-hiuxwe2
97310dd2532Schristos		;;
97410dd2532Schristos	paragon)
97510dd2532Schristos		basic_machine=i860-intel
97610dd2532Schristos		os=-osf
97710dd2532Schristos		;;
978*32b71e0eSsevan	parisc)
979*32b71e0eSsevan		basic_machine=hppa-unknown
980*32b71e0eSsevan		os=-linux
981*32b71e0eSsevan		;;
982*32b71e0eSsevan	parisc-*)
983*32b71e0eSsevan		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
984*32b71e0eSsevan		os=-linux
985*32b71e0eSsevan		;;
98610dd2532Schristos	pbd)
98710dd2532Schristos		basic_machine=sparc-tti
98810dd2532Schristos		;;
98910dd2532Schristos	pbb)
99010dd2532Schristos		basic_machine=m68k-tti
99110dd2532Schristos		;;
99210dd2532Schristos	pc532 | pc532-*)
99310dd2532Schristos		basic_machine=ns32k-pc532
99410dd2532Schristos		;;
995*32b71e0eSsevan	pc98)
996*32b71e0eSsevan		basic_machine=i386-pc
997*32b71e0eSsevan		;;
998*32b71e0eSsevan	pc98-*)
999*32b71e0eSsevan		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
1000*32b71e0eSsevan		;;
100110dd2532Schristos	pentium | p5 | k5 | k6 | nexgen | viac3)
100210dd2532Schristos		basic_machine=i586-pc
100310dd2532Schristos		;;
100410dd2532Schristos	pentiumpro | p6 | 6x86 | athlon | athlon_*)
100510dd2532Schristos		basic_machine=i686-pc
100610dd2532Schristos		;;
100710dd2532Schristos	pentiumii | pentium2 | pentiumiii | pentium3)
100810dd2532Schristos		basic_machine=i686-pc
100910dd2532Schristos		;;
101010dd2532Schristos	pentium4)
101110dd2532Schristos		basic_machine=i786-pc
101210dd2532Schristos		;;
101310dd2532Schristos	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
101410dd2532Schristos		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
101510dd2532Schristos		;;
101610dd2532Schristos	pentiumpro-* | p6-* | 6x86-* | athlon-*)
101710dd2532Schristos		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
101810dd2532Schristos		;;
101910dd2532Schristos	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
102010dd2532Schristos		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
102110dd2532Schristos		;;
102210dd2532Schristos	pentium4-*)
102310dd2532Schristos		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
102410dd2532Schristos		;;
102510dd2532Schristos	pn)
102610dd2532Schristos		basic_machine=pn-gould
102710dd2532Schristos		;;
102810dd2532Schristos	power)	basic_machine=power-ibm
102910dd2532Schristos		;;
1030*32b71e0eSsevan	ppc | ppcbe)	basic_machine=powerpc-unknown
103110dd2532Schristos		;;
1032*32b71e0eSsevan	ppc-* | ppcbe-*)
1033*32b71e0eSsevan		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
103410dd2532Schristos		;;
1035*32b71e0eSsevan	ppcle | powerpclittle)
103610dd2532Schristos		basic_machine=powerpcle-unknown
103710dd2532Schristos		;;
103810dd2532Schristos	ppcle-* | powerpclittle-*)
103910dd2532Schristos		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
104010dd2532Schristos		;;
104110dd2532Schristos	ppc64)	basic_machine=powerpc64-unknown
104210dd2532Schristos		;;
104310dd2532Schristos	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
104410dd2532Schristos		;;
1045*32b71e0eSsevan	ppc64le | powerpc64little)
104610dd2532Schristos		basic_machine=powerpc64le-unknown
104710dd2532Schristos		;;
104810dd2532Schristos	ppc64le-* | powerpc64little-*)
104910dd2532Schristos		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
105010dd2532Schristos		;;
105110dd2532Schristos	ps2)
105210dd2532Schristos		basic_machine=i386-ibm
105310dd2532Schristos		;;
105410dd2532Schristos	pw32)
105510dd2532Schristos		basic_machine=i586-unknown
105610dd2532Schristos		os=-pw32
105710dd2532Schristos		;;
1058*32b71e0eSsevan	rdos | rdos64)
1059*32b71e0eSsevan		basic_machine=x86_64-pc
1060*32b71e0eSsevan		os=-rdos
1061*32b71e0eSsevan		;;
1062*32b71e0eSsevan	rdos32)
1063*32b71e0eSsevan		basic_machine=i386-pc
1064*32b71e0eSsevan		os=-rdos
1065*32b71e0eSsevan		;;
106610dd2532Schristos	rom68k)
106710dd2532Schristos		basic_machine=m68k-rom68k
106810dd2532Schristos		os=-coff
106910dd2532Schristos		;;
107010dd2532Schristos	rm[46]00)
107110dd2532Schristos		basic_machine=mips-siemens
107210dd2532Schristos		;;
107310dd2532Schristos	rtpc | rtpc-*)
107410dd2532Schristos		basic_machine=romp-ibm
107510dd2532Schristos		;;
107610dd2532Schristos	s390 | s390-*)
107710dd2532Schristos		basic_machine=s390-ibm
107810dd2532Schristos		;;
107910dd2532Schristos	s390x | s390x-*)
108010dd2532Schristos		basic_machine=s390x-ibm
108110dd2532Schristos		;;
108210dd2532Schristos	sa29200)
108310dd2532Schristos		basic_machine=a29k-amd
108410dd2532Schristos		os=-udi
108510dd2532Schristos		;;
108610dd2532Schristos	sb1)
108710dd2532Schristos		basic_machine=mipsisa64sb1-unknown
108810dd2532Schristos		;;
108910dd2532Schristos	sb1el)
109010dd2532Schristos		basic_machine=mipsisa64sb1el-unknown
109110dd2532Schristos		;;
1092*32b71e0eSsevan	sde)
1093*32b71e0eSsevan		basic_machine=mipsisa32-sde
1094*32b71e0eSsevan		os=-elf
1095*32b71e0eSsevan		;;
109610dd2532Schristos	sei)
109710dd2532Schristos		basic_machine=mips-sei
109810dd2532Schristos		os=-seiux
109910dd2532Schristos		;;
110010dd2532Schristos	sequent)
110110dd2532Schristos		basic_machine=i386-sequent
110210dd2532Schristos		;;
110310dd2532Schristos	sh)
110410dd2532Schristos		basic_machine=sh-hitachi
110510dd2532Schristos		os=-hms
110610dd2532Schristos		;;
1107*32b71e0eSsevan	sh5el)
1108*32b71e0eSsevan		basic_machine=sh5le-unknown
1109*32b71e0eSsevan		;;
111010dd2532Schristos	sh64)
111110dd2532Schristos		basic_machine=sh64-unknown
111210dd2532Schristos		;;
111310dd2532Schristos	sparclite-wrs | simso-wrs)
111410dd2532Schristos		basic_machine=sparclite-wrs
111510dd2532Schristos		os=-vxworks
111610dd2532Schristos		;;
111710dd2532Schristos	sps7)
111810dd2532Schristos		basic_machine=m68k-bull
111910dd2532Schristos		os=-sysv2
112010dd2532Schristos		;;
112110dd2532Schristos	spur)
112210dd2532Schristos		basic_machine=spur-unknown
112310dd2532Schristos		;;
112410dd2532Schristos	st2000)
112510dd2532Schristos		basic_machine=m68k-tandem
112610dd2532Schristos		;;
112710dd2532Schristos	stratus)
112810dd2532Schristos		basic_machine=i860-stratus
112910dd2532Schristos		os=-sysv4
113010dd2532Schristos		;;
1131*32b71e0eSsevan	strongarm-* | thumb-*)
1132*32b71e0eSsevan		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1133*32b71e0eSsevan		;;
113410dd2532Schristos	sun2)
113510dd2532Schristos		basic_machine=m68000-sun
113610dd2532Schristos		;;
113710dd2532Schristos	sun2os3)
113810dd2532Schristos		basic_machine=m68000-sun
113910dd2532Schristos		os=-sunos3
114010dd2532Schristos		;;
114110dd2532Schristos	sun2os4)
114210dd2532Schristos		basic_machine=m68000-sun
114310dd2532Schristos		os=-sunos4
114410dd2532Schristos		;;
114510dd2532Schristos	sun3os3)
114610dd2532Schristos		basic_machine=m68k-sun
114710dd2532Schristos		os=-sunos3
114810dd2532Schristos		;;
114910dd2532Schristos	sun3os4)
115010dd2532Schristos		basic_machine=m68k-sun
115110dd2532Schristos		os=-sunos4
115210dd2532Schristos		;;
115310dd2532Schristos	sun4os3)
115410dd2532Schristos		basic_machine=sparc-sun
115510dd2532Schristos		os=-sunos3
115610dd2532Schristos		;;
115710dd2532Schristos	sun4os4)
115810dd2532Schristos		basic_machine=sparc-sun
115910dd2532Schristos		os=-sunos4
116010dd2532Schristos		;;
116110dd2532Schristos	sun4sol2)
116210dd2532Schristos		basic_machine=sparc-sun
116310dd2532Schristos		os=-solaris2
116410dd2532Schristos		;;
116510dd2532Schristos	sun3 | sun3-*)
116610dd2532Schristos		basic_machine=m68k-sun
116710dd2532Schristos		;;
116810dd2532Schristos	sun4)
116910dd2532Schristos		basic_machine=sparc-sun
117010dd2532Schristos		;;
117110dd2532Schristos	sun386 | sun386i | roadrunner)
117210dd2532Schristos		basic_machine=i386-sun
117310dd2532Schristos		;;
117410dd2532Schristos	sv1)
117510dd2532Schristos		basic_machine=sv1-cray
117610dd2532Schristos		os=-unicos
117710dd2532Schristos		;;
117810dd2532Schristos	symmetry)
117910dd2532Schristos		basic_machine=i386-sequent
118010dd2532Schristos		os=-dynix
118110dd2532Schristos		;;
118210dd2532Schristos	t3e)
118310dd2532Schristos		basic_machine=alphaev5-cray
118410dd2532Schristos		os=-unicos
118510dd2532Schristos		;;
118610dd2532Schristos	t90)
118710dd2532Schristos		basic_machine=t90-cray
118810dd2532Schristos		os=-unicos
118910dd2532Schristos		;;
1190*32b71e0eSsevan	tile*)
1191*32b71e0eSsevan		basic_machine=$basic_machine-unknown
1192*32b71e0eSsevan		os=-linux-gnu
119310dd2532Schristos		;;
119410dd2532Schristos	tx39)
119510dd2532Schristos		basic_machine=mipstx39-unknown
119610dd2532Schristos		;;
119710dd2532Schristos	tx39el)
119810dd2532Schristos		basic_machine=mipstx39el-unknown
119910dd2532Schristos		;;
120010dd2532Schristos	toad1)
120110dd2532Schristos		basic_machine=pdp10-xkl
120210dd2532Schristos		os=-tops20
120310dd2532Schristos		;;
120410dd2532Schristos	tower | tower-32)
120510dd2532Schristos		basic_machine=m68k-ncr
120610dd2532Schristos		;;
1207*32b71e0eSsevan	tpf)
1208*32b71e0eSsevan		basic_machine=s390x-ibm
1209*32b71e0eSsevan		os=-tpf
1210*32b71e0eSsevan		;;
121110dd2532Schristos	udi29k)
121210dd2532Schristos		basic_machine=a29k-amd
121310dd2532Schristos		os=-udi
121410dd2532Schristos		;;
121510dd2532Schristos	ultra3)
121610dd2532Schristos		basic_machine=a29k-nyu
121710dd2532Schristos		os=-sym1
121810dd2532Schristos		;;
121910dd2532Schristos	v810 | necv810)
122010dd2532Schristos		basic_machine=v810-nec
122110dd2532Schristos		os=-none
122210dd2532Schristos		;;
122310dd2532Schristos	vaxv)
122410dd2532Schristos		basic_machine=vax-dec
122510dd2532Schristos		os=-sysv
122610dd2532Schristos		;;
122710dd2532Schristos	vms)
122810dd2532Schristos		basic_machine=vax-dec
122910dd2532Schristos		os=-vms
123010dd2532Schristos		;;
123110dd2532Schristos	vpp*|vx|vx-*)
123210dd2532Schristos		basic_machine=f301-fujitsu
123310dd2532Schristos		;;
123410dd2532Schristos	vxworks960)
123510dd2532Schristos		basic_machine=i960-wrs
123610dd2532Schristos		os=-vxworks
123710dd2532Schristos		;;
123810dd2532Schristos	vxworks68)
123910dd2532Schristos		basic_machine=m68k-wrs
124010dd2532Schristos		os=-vxworks
124110dd2532Schristos		;;
124210dd2532Schristos	vxworks29k)
124310dd2532Schristos		basic_machine=a29k-wrs
124410dd2532Schristos		os=-vxworks
124510dd2532Schristos		;;
124610dd2532Schristos	w65*)
124710dd2532Schristos		basic_machine=w65-wdc
124810dd2532Schristos		os=-none
124910dd2532Schristos		;;
125010dd2532Schristos	w89k-*)
125110dd2532Schristos		basic_machine=hppa1.1-winbond
125210dd2532Schristos		os=-proelf
125310dd2532Schristos		;;
1254*32b71e0eSsevan	xbox)
1255*32b71e0eSsevan		basic_machine=i686-pc
1256*32b71e0eSsevan		os=-mingw32
1257*32b71e0eSsevan		;;
125810dd2532Schristos	xps | xps100)
125910dd2532Schristos		basic_machine=xps100-honeywell
126010dd2532Schristos		;;
1261*32b71e0eSsevan	xscale-* | xscalee[bl]-*)
1262*32b71e0eSsevan		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1263*32b71e0eSsevan		;;
126410dd2532Schristos	ymp)
126510dd2532Schristos		basic_machine=ymp-cray
126610dd2532Schristos		os=-unicos
126710dd2532Schristos		;;
126810dd2532Schristos	z8k-*-coff)
126910dd2532Schristos		basic_machine=z8k-unknown
127010dd2532Schristos		os=-sim
127110dd2532Schristos		;;
1272*32b71e0eSsevan	z80-*-coff)
1273*32b71e0eSsevan		basic_machine=z80-unknown
1274*32b71e0eSsevan		os=-sim
1275*32b71e0eSsevan		;;
127610dd2532Schristos	none)
127710dd2532Schristos		basic_machine=none-none
127810dd2532Schristos		os=-none
127910dd2532Schristos		;;
128010dd2532Schristos
128110dd2532Schristos# Here we handle the default manufacturer of certain CPU types.  It is in
128210dd2532Schristos# some cases the only manufacturer, in others, it is the most popular.
128310dd2532Schristos	w89k)
128410dd2532Schristos		basic_machine=hppa1.1-winbond
128510dd2532Schristos		;;
128610dd2532Schristos	op50n)
128710dd2532Schristos		basic_machine=hppa1.1-oki
128810dd2532Schristos		;;
128910dd2532Schristos	op60c)
129010dd2532Schristos		basic_machine=hppa1.1-oki
129110dd2532Schristos		;;
129210dd2532Schristos	romp)
129310dd2532Schristos		basic_machine=romp-ibm
129410dd2532Schristos		;;
1295*32b71e0eSsevan	mmix)
1296*32b71e0eSsevan		basic_machine=mmix-knuth
1297*32b71e0eSsevan		;;
129810dd2532Schristos	rs6000)
129910dd2532Schristos		basic_machine=rs6000-ibm
130010dd2532Schristos		;;
130110dd2532Schristos	vax)
130210dd2532Schristos		basic_machine=vax-dec
130310dd2532Schristos		;;
130410dd2532Schristos	pdp10)
130510dd2532Schristos		# there are many clones, so DEC is not a safe bet
130610dd2532Schristos		basic_machine=pdp10-unknown
130710dd2532Schristos		;;
130810dd2532Schristos	pdp11)
130910dd2532Schristos		basic_machine=pdp11-dec
131010dd2532Schristos		;;
131110dd2532Schristos	we32k)
131210dd2532Schristos		basic_machine=we32k-att
131310dd2532Schristos		;;
1314*32b71e0eSsevan	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
131510dd2532Schristos		basic_machine=sh-unknown
131610dd2532Schristos		;;
1317*32b71e0eSsevan	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
131810dd2532Schristos		basic_machine=sparc-sun
131910dd2532Schristos		;;
132010dd2532Schristos	cydra)
132110dd2532Schristos		basic_machine=cydra-cydrome
132210dd2532Schristos		;;
132310dd2532Schristos	orion)
132410dd2532Schristos		basic_machine=orion-highlevel
132510dd2532Schristos		;;
132610dd2532Schristos	orion105)
132710dd2532Schristos		basic_machine=clipper-highlevel
132810dd2532Schristos		;;
132910dd2532Schristos	mac | mpw | mac-mpw)
133010dd2532Schristos		basic_machine=m68k-apple
133110dd2532Schristos		;;
133210dd2532Schristos	pmac | pmac-mpw)
133310dd2532Schristos		basic_machine=powerpc-apple
133410dd2532Schristos		;;
133510dd2532Schristos	*-unknown)
133610dd2532Schristos		# Make sure to match an already-canonicalized machine name.
133710dd2532Schristos		;;
133810dd2532Schristos	*)
133910dd2532Schristos		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
134010dd2532Schristos		exit 1
134110dd2532Schristos		;;
134210dd2532Schristosesac
134310dd2532Schristos
134410dd2532Schristos# Here we canonicalize certain aliases for manufacturers.
134510dd2532Schristoscase $basic_machine in
134610dd2532Schristos	*-digital*)
134710dd2532Schristos		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
134810dd2532Schristos		;;
134910dd2532Schristos	*-commodore*)
135010dd2532Schristos		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
135110dd2532Schristos		;;
135210dd2532Schristos	*)
135310dd2532Schristos		;;
135410dd2532Schristosesac
135510dd2532Schristos
135610dd2532Schristos# Decode manufacturer-specific aliases for certain operating systems.
135710dd2532Schristos
135810dd2532Schristosif [ x"$os" != x"" ]
135910dd2532Schristosthen
136010dd2532Schristoscase $os in
136110dd2532Schristos	# First match some system type aliases
136210dd2532Schristos	# that might get confused with valid system types.
136310dd2532Schristos	# -solaris* is a basic system type, with this one exception.
1364*32b71e0eSsevan	-auroraux)
1365*32b71e0eSsevan		os=-auroraux
1366*32b71e0eSsevan		;;
136710dd2532Schristos	-solaris1 | -solaris1.*)
136810dd2532Schristos		os=`echo $os | sed -e 's|solaris1|sunos4|'`
136910dd2532Schristos		;;
137010dd2532Schristos	-solaris)
137110dd2532Schristos		os=-solaris2
137210dd2532Schristos		;;
137310dd2532Schristos	-svr4*)
137410dd2532Schristos		os=-sysv4
137510dd2532Schristos		;;
137610dd2532Schristos	-unixware*)
137710dd2532Schristos		os=-sysv4.2uw
137810dd2532Schristos		;;
137910dd2532Schristos	-gnu/linux*)
138010dd2532Schristos		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
138110dd2532Schristos		;;
138210dd2532Schristos	# First accept the basic system types.
138310dd2532Schristos	# The portable systems comes first.
138410dd2532Schristos	# Each alternative MUST END IN A *, to match a version number.
138510dd2532Schristos	# -sysv* is not here because it comes later, after sysvr4.
138610dd2532Schristos	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1387*32b71e0eSsevan	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1388*32b71e0eSsevan	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1389*32b71e0eSsevan	      | -sym* | -kopensolaris* | -plan9* \
139010dd2532Schristos	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1391*32b71e0eSsevan	      | -aos* | -aros* | -cloudabi* | -sortix* \
139210dd2532Schristos	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
139310dd2532Schristos	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1394*32b71e0eSsevan	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1395*32b71e0eSsevan	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
1396*32b71e0eSsevan	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1397*32b71e0eSsevan	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
139810dd2532Schristos	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
139910dd2532Schristos	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1400*32b71e0eSsevan	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
1401*32b71e0eSsevan	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1402*32b71e0eSsevan	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1403*32b71e0eSsevan	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
1404*32b71e0eSsevan	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
140510dd2532Schristos	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
140610dd2532Schristos	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
140710dd2532Schristos	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
140810dd2532Schristos	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
140910dd2532Schristos	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1410*32b71e0eSsevan	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1411*32b71e0eSsevan	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
1412*32b71e0eSsevan	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
141310dd2532Schristos	# Remember, each alternative MUST END IN *, to match a version number.
141410dd2532Schristos		;;
141510dd2532Schristos	-qnx*)
141610dd2532Schristos		case $basic_machine in
141710dd2532Schristos		    x86-* | i*86-*)
141810dd2532Schristos			;;
141910dd2532Schristos		    *)
142010dd2532Schristos			os=-nto$os
142110dd2532Schristos			;;
142210dd2532Schristos		esac
142310dd2532Schristos		;;
142410dd2532Schristos	-nto-qnx*)
142510dd2532Schristos		;;
142610dd2532Schristos	-nto*)
142710dd2532Schristos		os=`echo $os | sed -e 's|nto|nto-qnx|'`
142810dd2532Schristos		;;
142910dd2532Schristos	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1430*32b71e0eSsevan	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
143110dd2532Schristos	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
143210dd2532Schristos		;;
143310dd2532Schristos	-mac*)
143410dd2532Schristos		os=`echo $os | sed -e 's|mac|macos|'`
143510dd2532Schristos		;;
1436*32b71e0eSsevan	-linux-dietlibc)
1437*32b71e0eSsevan		os=-linux-dietlibc
1438*32b71e0eSsevan		;;
143910dd2532Schristos	-linux*)
144010dd2532Schristos		os=`echo $os | sed -e 's|linux|linux-gnu|'`
144110dd2532Schristos		;;
144210dd2532Schristos	-sunos5*)
144310dd2532Schristos		os=`echo $os | sed -e 's|sunos5|solaris2|'`
144410dd2532Schristos		;;
144510dd2532Schristos	-sunos6*)
144610dd2532Schristos		os=`echo $os | sed -e 's|sunos6|solaris3|'`
144710dd2532Schristos		;;
144810dd2532Schristos	-opened*)
144910dd2532Schristos		os=-openedition
145010dd2532Schristos		;;
1451*32b71e0eSsevan	-os400*)
1452*32b71e0eSsevan		os=-os400
1453*32b71e0eSsevan		;;
145410dd2532Schristos	-wince*)
145510dd2532Schristos		os=-wince
145610dd2532Schristos		;;
145710dd2532Schristos	-osfrose*)
145810dd2532Schristos		os=-osfrose
145910dd2532Schristos		;;
146010dd2532Schristos	-osf*)
146110dd2532Schristos		os=-osf
146210dd2532Schristos		;;
146310dd2532Schristos	-utek*)
146410dd2532Schristos		os=-bsd
146510dd2532Schristos		;;
146610dd2532Schristos	-dynix*)
146710dd2532Schristos		os=-bsd
146810dd2532Schristos		;;
146910dd2532Schristos	-acis*)
147010dd2532Schristos		os=-aos
147110dd2532Schristos		;;
147210dd2532Schristos	-atheos*)
147310dd2532Schristos		os=-atheos
147410dd2532Schristos		;;
1475*32b71e0eSsevan	-syllable*)
1476*32b71e0eSsevan		os=-syllable
1477*32b71e0eSsevan		;;
147810dd2532Schristos	-386bsd)
147910dd2532Schristos		os=-bsd
148010dd2532Schristos		;;
148110dd2532Schristos	-ctix* | -uts*)
148210dd2532Schristos		os=-sysv
148310dd2532Schristos		;;
148410dd2532Schristos	-nova*)
148510dd2532Schristos		os=-rtmk-nova
148610dd2532Schristos		;;
148710dd2532Schristos	-ns2 )
148810dd2532Schristos		os=-nextstep2
148910dd2532Schristos		;;
149010dd2532Schristos	-nsk*)
149110dd2532Schristos		os=-nsk
149210dd2532Schristos		;;
149310dd2532Schristos	# Preserve the version number of sinix5.
149410dd2532Schristos	-sinix5.*)
149510dd2532Schristos		os=`echo $os | sed -e 's|sinix|sysv|'`
149610dd2532Schristos		;;
149710dd2532Schristos	-sinix*)
149810dd2532Schristos		os=-sysv4
149910dd2532Schristos		;;
1500*32b71e0eSsevan	-tpf*)
1501*32b71e0eSsevan		os=-tpf
1502*32b71e0eSsevan		;;
150310dd2532Schristos	-triton*)
150410dd2532Schristos		os=-sysv3
150510dd2532Schristos		;;
150610dd2532Schristos	-oss*)
150710dd2532Schristos		os=-sysv3
150810dd2532Schristos		;;
150910dd2532Schristos	-svr4)
151010dd2532Schristos		os=-sysv4
151110dd2532Schristos		;;
151210dd2532Schristos	-svr3)
151310dd2532Schristos		os=-sysv3
151410dd2532Schristos		;;
151510dd2532Schristos	-sysvr4)
151610dd2532Schristos		os=-sysv4
151710dd2532Schristos		;;
151810dd2532Schristos	# This must come after -sysvr4.
151910dd2532Schristos	-sysv*)
152010dd2532Schristos		;;
152110dd2532Schristos	-ose*)
152210dd2532Schristos		os=-ose
152310dd2532Schristos		;;
152410dd2532Schristos	-es1800*)
152510dd2532Schristos		os=-ose
152610dd2532Schristos		;;
152710dd2532Schristos	-xenix)
152810dd2532Schristos		os=-xenix
152910dd2532Schristos		;;
153010dd2532Schristos	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
153110dd2532Schristos		os=-mint
153210dd2532Schristos		;;
153310dd2532Schristos	-aros*)
153410dd2532Schristos		os=-aros
153510dd2532Schristos		;;
1536*32b71e0eSsevan	-zvmoe)
1537*32b71e0eSsevan		os=-zvmoe
1538*32b71e0eSsevan		;;
1539*32b71e0eSsevan	-dicos*)
1540*32b71e0eSsevan		os=-dicos
1541*32b71e0eSsevan		;;
1542*32b71e0eSsevan	-nacl*)
1543*32b71e0eSsevan		;;
1544*32b71e0eSsevan	-ios)
154510dd2532Schristos		;;
154610dd2532Schristos	-none)
154710dd2532Schristos		;;
154810dd2532Schristos	*)
154910dd2532Schristos		# Get rid of the `-' at the beginning of $os.
155010dd2532Schristos		os=`echo $os | sed 's/[^-]*-//'`
155110dd2532Schristos		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
155210dd2532Schristos		exit 1
155310dd2532Schristos		;;
155410dd2532Schristosesac
155510dd2532Schristoselse
155610dd2532Schristos
155710dd2532Schristos# Here we handle the default operating systems that come with various machines.
155810dd2532Schristos# The value should be what the vendor currently ships out the door with their
155910dd2532Schristos# machine or put another way, the most popular os provided with the machine.
156010dd2532Schristos
156110dd2532Schristos# Note that if you're going to try to match "-MANUFACTURER" here (say,
156210dd2532Schristos# "-sun"), then you have to tell the case statement up towards the top
156310dd2532Schristos# that MANUFACTURER isn't an operating system.  Otherwise, code above
156410dd2532Schristos# will signal an error saying that MANUFACTURER isn't an operating
156510dd2532Schristos# system, and we'll never get to this point.
156610dd2532Schristos
156710dd2532Schristoscase $basic_machine in
1568*32b71e0eSsevan	score-*)
1569*32b71e0eSsevan		os=-elf
1570*32b71e0eSsevan		;;
1571*32b71e0eSsevan	spu-*)
1572*32b71e0eSsevan		os=-elf
1573*32b71e0eSsevan		;;
157410dd2532Schristos	*-acorn)
157510dd2532Schristos		os=-riscix1.2
157610dd2532Schristos		;;
157710dd2532Schristos	arm*-rebel)
157810dd2532Schristos		os=-linux
157910dd2532Schristos		;;
158010dd2532Schristos	arm*-semi)
158110dd2532Schristos		os=-aout
158210dd2532Schristos		;;
158310dd2532Schristos	c4x-* | tic4x-*)
158410dd2532Schristos		os=-coff
158510dd2532Schristos		;;
1586*32b71e0eSsevan	c8051-*)
1587*32b71e0eSsevan		os=-elf
1588*32b71e0eSsevan		;;
1589*32b71e0eSsevan	hexagon-*)
1590*32b71e0eSsevan		os=-elf
1591*32b71e0eSsevan		;;
1592*32b71e0eSsevan	tic54x-*)
1593*32b71e0eSsevan		os=-coff
1594*32b71e0eSsevan		;;
1595*32b71e0eSsevan	tic55x-*)
1596*32b71e0eSsevan		os=-coff
1597*32b71e0eSsevan		;;
1598*32b71e0eSsevan	tic6x-*)
1599*32b71e0eSsevan		os=-coff
1600*32b71e0eSsevan		;;
160110dd2532Schristos	# This must come before the *-dec entry.
160210dd2532Schristos	pdp10-*)
160310dd2532Schristos		os=-tops20
160410dd2532Schristos		;;
160510dd2532Schristos	pdp11-*)
160610dd2532Schristos		os=-none
160710dd2532Schristos		;;
160810dd2532Schristos	*-dec | vax-*)
160910dd2532Schristos		os=-ultrix4.2
161010dd2532Schristos		;;
161110dd2532Schristos	m68*-apollo)
161210dd2532Schristos		os=-domain
161310dd2532Schristos		;;
161410dd2532Schristos	i386-sun)
161510dd2532Schristos		os=-sunos4.0.2
161610dd2532Schristos		;;
161710dd2532Schristos	m68000-sun)
161810dd2532Schristos		os=-sunos3
161910dd2532Schristos		;;
162010dd2532Schristos	m68*-cisco)
162110dd2532Schristos		os=-aout
162210dd2532Schristos		;;
1623*32b71e0eSsevan	mep-*)
1624*32b71e0eSsevan		os=-elf
1625*32b71e0eSsevan		;;
162610dd2532Schristos	mips*-cisco)
162710dd2532Schristos		os=-elf
162810dd2532Schristos		;;
162910dd2532Schristos	mips*-*)
163010dd2532Schristos		os=-elf
163110dd2532Schristos		;;
163210dd2532Schristos	or32-*)
163310dd2532Schristos		os=-coff
163410dd2532Schristos		;;
163510dd2532Schristos	*-tti)	# must be before sparc entry or we get the wrong os.
163610dd2532Schristos		os=-sysv3
163710dd2532Schristos		;;
163810dd2532Schristos	sparc-* | *-sun)
163910dd2532Schristos		os=-sunos4.1.1
164010dd2532Schristos		;;
1641*32b71e0eSsevan	pru-*)
1642*32b71e0eSsevan		os=-elf
1643*32b71e0eSsevan		;;
164410dd2532Schristos	*-be)
164510dd2532Schristos		os=-beos
164610dd2532Schristos		;;
1647*32b71e0eSsevan	*-haiku)
1648*32b71e0eSsevan		os=-haiku
1649*32b71e0eSsevan		;;
165010dd2532Schristos	*-ibm)
165110dd2532Schristos		os=-aix
165210dd2532Schristos		;;
1653*32b71e0eSsevan	*-knuth)
1654*32b71e0eSsevan		os=-mmixware
1655*32b71e0eSsevan		;;
165610dd2532Schristos	*-wec)
165710dd2532Schristos		os=-proelf
165810dd2532Schristos		;;
165910dd2532Schristos	*-winbond)
166010dd2532Schristos		os=-proelf
166110dd2532Schristos		;;
166210dd2532Schristos	*-oki)
166310dd2532Schristos		os=-proelf
166410dd2532Schristos		;;
166510dd2532Schristos	*-hp)
166610dd2532Schristos		os=-hpux
166710dd2532Schristos		;;
166810dd2532Schristos	*-hitachi)
166910dd2532Schristos		os=-hiux
167010dd2532Schristos		;;
167110dd2532Schristos	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
167210dd2532Schristos		os=-sysv
167310dd2532Schristos		;;
167410dd2532Schristos	*-cbm)
167510dd2532Schristos		os=-amigaos
167610dd2532Schristos		;;
167710dd2532Schristos	*-dg)
167810dd2532Schristos		os=-dgux
167910dd2532Schristos		;;
168010dd2532Schristos	*-dolphin)
168110dd2532Schristos		os=-sysv3
168210dd2532Schristos		;;
168310dd2532Schristos	m68k-ccur)
168410dd2532Schristos		os=-rtu
168510dd2532Schristos		;;
168610dd2532Schristos	m88k-omron*)
168710dd2532Schristos		os=-luna
168810dd2532Schristos		;;
168910dd2532Schristos	*-next )
169010dd2532Schristos		os=-nextstep
169110dd2532Schristos		;;
169210dd2532Schristos	*-sequent)
169310dd2532Schristos		os=-ptx
169410dd2532Schristos		;;
169510dd2532Schristos	*-crds)
169610dd2532Schristos		os=-unos
169710dd2532Schristos		;;
169810dd2532Schristos	*-ns)
169910dd2532Schristos		os=-genix
170010dd2532Schristos		;;
170110dd2532Schristos	i370-*)
170210dd2532Schristos		os=-mvs
170310dd2532Schristos		;;
170410dd2532Schristos	*-next)
170510dd2532Schristos		os=-nextstep3
170610dd2532Schristos		;;
170710dd2532Schristos	*-gould)
170810dd2532Schristos		os=-sysv
170910dd2532Schristos		;;
171010dd2532Schristos	*-highlevel)
171110dd2532Schristos		os=-bsd
171210dd2532Schristos		;;
171310dd2532Schristos	*-encore)
171410dd2532Schristos		os=-bsd
171510dd2532Schristos		;;
171610dd2532Schristos	*-sgi)
171710dd2532Schristos		os=-irix
171810dd2532Schristos		;;
171910dd2532Schristos	*-siemens)
172010dd2532Schristos		os=-sysv4
172110dd2532Schristos		;;
172210dd2532Schristos	*-masscomp)
172310dd2532Schristos		os=-rtu
172410dd2532Schristos		;;
172510dd2532Schristos	f30[01]-fujitsu | f700-fujitsu)
172610dd2532Schristos		os=-uxpv
172710dd2532Schristos		;;
172810dd2532Schristos	*-rom68k)
172910dd2532Schristos		os=-coff
173010dd2532Schristos		;;
173110dd2532Schristos	*-*bug)
173210dd2532Schristos		os=-coff
173310dd2532Schristos		;;
173410dd2532Schristos	*-apple)
173510dd2532Schristos		os=-macos
173610dd2532Schristos		;;
173710dd2532Schristos	*-atari*)
173810dd2532Schristos		os=-mint
173910dd2532Schristos		;;
174010dd2532Schristos	*)
174110dd2532Schristos		os=-none
174210dd2532Schristos		;;
174310dd2532Schristosesac
174410dd2532Schristosfi
174510dd2532Schristos
174610dd2532Schristos# Here we handle the case where we know the os, and the CPU type, but not the
174710dd2532Schristos# manufacturer.  We pick the logical manufacturer.
174810dd2532Schristosvendor=unknown
174910dd2532Schristoscase $basic_machine in
175010dd2532Schristos	*-unknown)
175110dd2532Schristos		case $os in
175210dd2532Schristos			-riscix*)
175310dd2532Schristos				vendor=acorn
175410dd2532Schristos				;;
175510dd2532Schristos			-sunos*)
175610dd2532Schristos				vendor=sun
175710dd2532Schristos				;;
1758*32b71e0eSsevan			-cnk*|-aix*)
175910dd2532Schristos				vendor=ibm
176010dd2532Schristos				;;
176110dd2532Schristos			-beos*)
176210dd2532Schristos				vendor=be
176310dd2532Schristos				;;
176410dd2532Schristos			-hpux*)
176510dd2532Schristos				vendor=hp
176610dd2532Schristos				;;
176710dd2532Schristos			-mpeix*)
176810dd2532Schristos				vendor=hp
176910dd2532Schristos				;;
177010dd2532Schristos			-hiux*)
177110dd2532Schristos				vendor=hitachi
177210dd2532Schristos				;;
177310dd2532Schristos			-unos*)
177410dd2532Schristos				vendor=crds
177510dd2532Schristos				;;
177610dd2532Schristos			-dgux*)
177710dd2532Schristos				vendor=dg
177810dd2532Schristos				;;
177910dd2532Schristos			-luna*)
178010dd2532Schristos				vendor=omron
178110dd2532Schristos				;;
178210dd2532Schristos			-genix*)
178310dd2532Schristos				vendor=ns
178410dd2532Schristos				;;
178510dd2532Schristos			-mvs* | -opened*)
178610dd2532Schristos				vendor=ibm
178710dd2532Schristos				;;
1788*32b71e0eSsevan			-os400*)
1789*32b71e0eSsevan				vendor=ibm
1790*32b71e0eSsevan				;;
179110dd2532Schristos			-ptx*)
179210dd2532Schristos				vendor=sequent
179310dd2532Schristos				;;
1794*32b71e0eSsevan			-tpf*)
1795*32b71e0eSsevan				vendor=ibm
1796*32b71e0eSsevan				;;
179710dd2532Schristos			-vxsim* | -vxworks* | -windiss*)
179810dd2532Schristos				vendor=wrs
179910dd2532Schristos				;;
180010dd2532Schristos			-aux*)
180110dd2532Schristos				vendor=apple
180210dd2532Schristos				;;
180310dd2532Schristos			-hms*)
180410dd2532Schristos				vendor=hitachi
180510dd2532Schristos				;;
180610dd2532Schristos			-mpw* | -macos*)
180710dd2532Schristos				vendor=apple
180810dd2532Schristos				;;
180910dd2532Schristos			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
181010dd2532Schristos				vendor=atari
181110dd2532Schristos				;;
181210dd2532Schristos			-vos*)
181310dd2532Schristos				vendor=stratus
181410dd2532Schristos				;;
181510dd2532Schristos		esac
181610dd2532Schristos		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
181710dd2532Schristos		;;
181810dd2532Schristosesac
181910dd2532Schristos
182010dd2532Schristosecho $basic_machine$os
1821*32b71e0eSsevanexit
182210dd2532Schristos
182310dd2532Schristos# Local variables:
182410dd2532Schristos# eval: (add-hook 'write-file-hooks 'time-stamp)
182510dd2532Schristos# time-stamp-start: "timestamp='"
182610dd2532Schristos# time-stamp-format: "%:y-%02m-%02d"
182710dd2532Schristos# time-stamp-end: "'"
182810dd2532Schristos# End:
1829