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