xref: /AOO42X/main/config.sub (revision aa9f3106d5ec1b1e444bf125dfc10090b925c964)
1cdf0e10cSrcweir#! /bin/sh
2cdf0e10cSrcweir# Configuration validation subroutine script.
3*aa9f3106Smseidel#   Copyright 1992-2020 Free Software Foundation, Inc.
4cdf0e10cSrcweir
5*aa9f3106Smseideltimestamp='2020-01-01'
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
70*aa9f3106SmseidelCopyright 1992-2020 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    -* )
9282437902SMatthias Seidel       echo "$me: invalid option $1$help" >&2
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
1131aeda8abSMatthias Seidel# Split fields of configuration type
11482437902SMatthias Seidel# shellcheck disable=SC2162
11582437902SMatthias SeidelIFS="-" read field1 field2 field3 field4 <<EOF
1161aeda8abSMatthias Seidel$1
1171aeda8abSMatthias SeidelEOF
1181aeda8abSMatthias Seidel
1191aeda8abSMatthias Seidel# Separate into logical components for further validation
1201aeda8abSMatthias Seidelcase $1 in
1211aeda8abSMatthias Seidel    *-*-*-*-*)
1221aeda8abSMatthias Seidel        echo Invalid configuration \`"$1"\': more than four components >&2
1231aeda8abSMatthias Seidel        exit 1
1241aeda8abSMatthias Seidel        ;;
1251aeda8abSMatthias Seidel    *-*-*-*)
1261aeda8abSMatthias Seidel        basic_machine=$field1-$field2
1271aeda8abSMatthias Seidel        os=$field3-$field4
1281aeda8abSMatthias Seidel        ;;
1291aeda8abSMatthias Seidel    *-*-*)
1301aeda8abSMatthias Seidel        # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
1311aeda8abSMatthias Seidel        # parts
1321aeda8abSMatthias Seidel        maybe_os=$field2-$field3
133cdf0e10cSrcweir        case $maybe_os in
1341aeda8abSMatthias Seidel            nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
1351aeda8abSMatthias Seidel            | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
1361aeda8abSMatthias Seidel            | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
1371aeda8abSMatthias Seidel            | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
1381aeda8abSMatthias Seidel            | storm-chaos* | os2-emx* | rtmk-nova*)
1391aeda8abSMatthias Seidel                basic_machine=$field1
1401aeda8abSMatthias Seidel                os=$maybe_os
141cdf0e10cSrcweir                ;;
142ee1eb700SMatthias Seidel            android-linux)
1431aeda8abSMatthias Seidel                basic_machine=$field1-unknown
1441aeda8abSMatthias Seidel                os=linux-android
145ee1eb700SMatthias Seidel                ;;
146cdf0e10cSrcweir            *)
1471aeda8abSMatthias Seidel                basic_machine=$field1-$field2
1481aeda8abSMatthias Seidel                os=$field3
1491aeda8abSMatthias Seidel                ;;
1501aeda8abSMatthias Seidel        esac
1511aeda8abSMatthias Seidel        ;;
1521aeda8abSMatthias Seidel    *-*)
15382437902SMatthias Seidel        # A lone config we happen to match not fitting any pattern
1541aeda8abSMatthias Seidel        case $field1-$field2 in
1551aeda8abSMatthias Seidel            decstation-3100)
1561aeda8abSMatthias Seidel                basic_machine=mips-dec
1571aeda8abSMatthias Seidel                os=
1581aeda8abSMatthias Seidel                ;;
1591aeda8abSMatthias Seidel            *-*)
1601aeda8abSMatthias Seidel                # Second component is usually, but not always the OS
1611aeda8abSMatthias Seidel                case $field2 in
1621aeda8abSMatthias Seidel                    # Prevent following clause from handling this valid os
1631aeda8abSMatthias Seidel                    sun*os*)
1641aeda8abSMatthias Seidel                        basic_machine=$field1
1651aeda8abSMatthias Seidel                        os=$field2
1661aeda8abSMatthias Seidel                        ;;
1671aeda8abSMatthias Seidel                    # Manufacturers
1681aeda8abSMatthias Seidel                    dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
1691aeda8abSMatthias Seidel                    | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
1701aeda8abSMatthias Seidel                    | unicom* | ibm* | next | hp | isi* | apollo | altos* \
1711aeda8abSMatthias Seidel                    | convergent* | ncr* | news | 32* | 3600* | 3100* \
1721aeda8abSMatthias Seidel                    | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
1731aeda8abSMatthias Seidel                    | ultra | tti* | harris | dolphin | highlevel | gould \
1741aeda8abSMatthias Seidel                    | cbm | ns | masscomp | apple | axis | knuth | cray \
1751aeda8abSMatthias Seidel                    | microblaze* | sim | cisco \
1761aeda8abSMatthias Seidel                    | oki | wec | wrs | winbond)
1771aeda8abSMatthias Seidel                        basic_machine=$field1-$field2
1781aeda8abSMatthias Seidel                        os=
1791aeda8abSMatthias Seidel                        ;;
1801aeda8abSMatthias Seidel                    *)
1811aeda8abSMatthias Seidel                        basic_machine=$field1
1821aeda8abSMatthias Seidel                        os=$field2
1831aeda8abSMatthias Seidel                        ;;
1841aeda8abSMatthias Seidel                esac
1851aeda8abSMatthias Seidel            ;;
1861aeda8abSMatthias Seidel        esac
1871aeda8abSMatthias Seidel        ;;
1881aeda8abSMatthias Seidel    *)
1891aeda8abSMatthias Seidel        # Convert single-component short-hands not valid as part of
1901aeda8abSMatthias Seidel        # multi-component configurations.
1911aeda8abSMatthias Seidel        case $field1 in
1921aeda8abSMatthias Seidel            386bsd)
1931aeda8abSMatthias Seidel                basic_machine=i386-pc
1941aeda8abSMatthias Seidel                os=bsd
1951aeda8abSMatthias Seidel                ;;
1961aeda8abSMatthias Seidel            a29khif)
1971aeda8abSMatthias Seidel                basic_machine=a29k-amd
1981aeda8abSMatthias Seidel                os=udi
1991aeda8abSMatthias Seidel                ;;
2001aeda8abSMatthias Seidel            adobe68k)
2011aeda8abSMatthias Seidel                basic_machine=m68010-adobe
2021aeda8abSMatthias Seidel                os=scout
2031aeda8abSMatthias Seidel                ;;
2041aeda8abSMatthias Seidel            alliant)
2051aeda8abSMatthias Seidel                basic_machine=fx80-alliant
2061aeda8abSMatthias Seidel                os=
2071aeda8abSMatthias Seidel                ;;
2081aeda8abSMatthias Seidel            altos | altos3068)
2091aeda8abSMatthias Seidel                basic_machine=m68k-altos
2101aeda8abSMatthias Seidel                os=
2111aeda8abSMatthias Seidel                ;;
2121aeda8abSMatthias Seidel            am29k)
2131aeda8abSMatthias Seidel                basic_machine=a29k-none
2141aeda8abSMatthias Seidel                os=bsd
2151aeda8abSMatthias Seidel                ;;
2161aeda8abSMatthias Seidel            amdahl)
2171aeda8abSMatthias Seidel                basic_machine=580-amdahl
2181aeda8abSMatthias Seidel                os=sysv
2191aeda8abSMatthias Seidel                ;;
2201aeda8abSMatthias Seidel            amiga)
2211aeda8abSMatthias Seidel                basic_machine=m68k-unknown
2221aeda8abSMatthias Seidel                os=
2231aeda8abSMatthias Seidel                ;;
2241aeda8abSMatthias Seidel            amigaos | amigados)
2251aeda8abSMatthias Seidel                basic_machine=m68k-unknown
2261aeda8abSMatthias Seidel                os=amigaos
2271aeda8abSMatthias Seidel                ;;
2281aeda8abSMatthias Seidel            amigaunix | amix)
2291aeda8abSMatthias Seidel                basic_machine=m68k-unknown
2301aeda8abSMatthias Seidel                os=sysv4
2311aeda8abSMatthias Seidel                ;;
2321aeda8abSMatthias Seidel            apollo68)
2331aeda8abSMatthias Seidel                basic_machine=m68k-apollo
2341aeda8abSMatthias Seidel                os=sysv
2351aeda8abSMatthias Seidel                ;;
2361aeda8abSMatthias Seidel            apollo68bsd)
2371aeda8abSMatthias Seidel                basic_machine=m68k-apollo
2381aeda8abSMatthias Seidel                os=bsd
2391aeda8abSMatthias Seidel                ;;
2401aeda8abSMatthias Seidel            aros)
2411aeda8abSMatthias Seidel                basic_machine=i386-pc
2421aeda8abSMatthias Seidel                os=aros
2431aeda8abSMatthias Seidel                ;;
2441aeda8abSMatthias Seidel            aux)
2451aeda8abSMatthias Seidel                basic_machine=m68k-apple
2461aeda8abSMatthias Seidel                os=aux
2471aeda8abSMatthias Seidel                ;;
2481aeda8abSMatthias Seidel            balance)
2491aeda8abSMatthias Seidel                basic_machine=ns32k-sequent
2501aeda8abSMatthias Seidel                os=dynix
2511aeda8abSMatthias Seidel                ;;
2521aeda8abSMatthias Seidel            blackfin)
2531aeda8abSMatthias Seidel                basic_machine=bfin-unknown
2541aeda8abSMatthias Seidel                os=linux
2551aeda8abSMatthias Seidel                ;;
2561aeda8abSMatthias Seidel            cegcc)
2571aeda8abSMatthias Seidel                basic_machine=arm-unknown
2581aeda8abSMatthias Seidel                os=cegcc
2591aeda8abSMatthias Seidel                ;;
2601aeda8abSMatthias Seidel            convex-c1)
2611aeda8abSMatthias Seidel                basic_machine=c1-convex
2621aeda8abSMatthias Seidel                os=bsd
2631aeda8abSMatthias Seidel                ;;
2641aeda8abSMatthias Seidel            convex-c2)
2651aeda8abSMatthias Seidel                basic_machine=c2-convex
2661aeda8abSMatthias Seidel                os=bsd
2671aeda8abSMatthias Seidel                ;;
2681aeda8abSMatthias Seidel            convex-c32)
2691aeda8abSMatthias Seidel                basic_machine=c32-convex
2701aeda8abSMatthias Seidel                os=bsd
2711aeda8abSMatthias Seidel                ;;
2721aeda8abSMatthias Seidel            convex-c34)
2731aeda8abSMatthias Seidel                basic_machine=c34-convex
2741aeda8abSMatthias Seidel                os=bsd
2751aeda8abSMatthias Seidel                ;;
2761aeda8abSMatthias Seidel            convex-c38)
2771aeda8abSMatthias Seidel                basic_machine=c38-convex
2781aeda8abSMatthias Seidel                os=bsd
2791aeda8abSMatthias Seidel                ;;
2801aeda8abSMatthias Seidel            cray)
2811aeda8abSMatthias Seidel                basic_machine=j90-cray
2821aeda8abSMatthias Seidel                os=unicos
2831aeda8abSMatthias Seidel                ;;
2841aeda8abSMatthias Seidel            crds | unos)
2851aeda8abSMatthias Seidel                basic_machine=m68k-crds
2861aeda8abSMatthias Seidel                os=
2871aeda8abSMatthias Seidel                ;;
2881aeda8abSMatthias Seidel            da30)
2891aeda8abSMatthias Seidel                basic_machine=m68k-da30
2901aeda8abSMatthias Seidel                os=
2911aeda8abSMatthias Seidel                ;;
2921aeda8abSMatthias Seidel            decstation | pmax | pmin | dec3100 | decstatn)
2931aeda8abSMatthias Seidel                basic_machine=mips-dec
2941aeda8abSMatthias Seidel                os=
2951aeda8abSMatthias Seidel                ;;
2961aeda8abSMatthias Seidel            delta88)
2971aeda8abSMatthias Seidel                basic_machine=m88k-motorola
2981aeda8abSMatthias Seidel                os=sysv3
2991aeda8abSMatthias Seidel                ;;
3001aeda8abSMatthias Seidel            dicos)
3011aeda8abSMatthias Seidel                basic_machine=i686-pc
3021aeda8abSMatthias Seidel                os=dicos
3031aeda8abSMatthias Seidel                ;;
3041aeda8abSMatthias Seidel            djgpp)
3051aeda8abSMatthias Seidel                basic_machine=i586-pc
3061aeda8abSMatthias Seidel                os=msdosdjgpp
3071aeda8abSMatthias Seidel                ;;
3081aeda8abSMatthias Seidel            ebmon29k)
3091aeda8abSMatthias Seidel                basic_machine=a29k-amd
3101aeda8abSMatthias Seidel                os=ebmon
3111aeda8abSMatthias Seidel                ;;
3121aeda8abSMatthias Seidel            es1800 | OSE68k | ose68k | ose | OSE)
3131aeda8abSMatthias Seidel                basic_machine=m68k-ericsson
3141aeda8abSMatthias Seidel                os=ose
3151aeda8abSMatthias Seidel                ;;
3161aeda8abSMatthias Seidel            gmicro)
3171aeda8abSMatthias Seidel                basic_machine=tron-gmicro
3181aeda8abSMatthias Seidel                os=sysv
3191aeda8abSMatthias Seidel                ;;
3201aeda8abSMatthias Seidel            go32)
3211aeda8abSMatthias Seidel                basic_machine=i386-pc
3221aeda8abSMatthias Seidel                os=go32
3231aeda8abSMatthias Seidel                ;;
3241aeda8abSMatthias Seidel            h8300hms)
3251aeda8abSMatthias Seidel                basic_machine=h8300-hitachi
3261aeda8abSMatthias Seidel                os=hms
3271aeda8abSMatthias Seidel                ;;
3281aeda8abSMatthias Seidel            h8300xray)
3291aeda8abSMatthias Seidel                basic_machine=h8300-hitachi
3301aeda8abSMatthias Seidel                os=xray
3311aeda8abSMatthias Seidel                ;;
3321aeda8abSMatthias Seidel            h8500hms)
3331aeda8abSMatthias Seidel                basic_machine=h8500-hitachi
3341aeda8abSMatthias Seidel                os=hms
3351aeda8abSMatthias Seidel                ;;
3361aeda8abSMatthias Seidel            harris)
3371aeda8abSMatthias Seidel                basic_machine=m88k-harris
3381aeda8abSMatthias Seidel                os=sysv3
3391aeda8abSMatthias Seidel                ;;
340*aa9f3106Smseidel            hp300 | hp300hpux)
3411aeda8abSMatthias Seidel                basic_machine=m68k-hp
342*aa9f3106Smseidel                os=hpux
3431aeda8abSMatthias Seidel                ;;
3441aeda8abSMatthias Seidel            hp300bsd)
3451aeda8abSMatthias Seidel                basic_machine=m68k-hp
3461aeda8abSMatthias Seidel                os=bsd
3471aeda8abSMatthias Seidel                ;;
3481aeda8abSMatthias Seidel            hppaosf)
3491aeda8abSMatthias Seidel                basic_machine=hppa1.1-hp
3501aeda8abSMatthias Seidel                os=osf
3511aeda8abSMatthias Seidel                ;;
3521aeda8abSMatthias Seidel            hppro)
3531aeda8abSMatthias Seidel                basic_machine=hppa1.1-hp
3541aeda8abSMatthias Seidel                os=proelf
3551aeda8abSMatthias Seidel                ;;
3561aeda8abSMatthias Seidel            i386mach)
3571aeda8abSMatthias Seidel                basic_machine=i386-mach
3581aeda8abSMatthias Seidel                os=mach
3591aeda8abSMatthias Seidel                ;;
3601aeda8abSMatthias Seidel            isi68 | isi)
3611aeda8abSMatthias Seidel                basic_machine=m68k-isi
3621aeda8abSMatthias Seidel                os=sysv
3631aeda8abSMatthias Seidel                ;;
3641aeda8abSMatthias Seidel            m68knommu)
3651aeda8abSMatthias Seidel                basic_machine=m68k-unknown
3661aeda8abSMatthias Seidel                os=linux
3671aeda8abSMatthias Seidel                ;;
3681aeda8abSMatthias Seidel            magnum | m3230)
3691aeda8abSMatthias Seidel                basic_machine=mips-mips
3701aeda8abSMatthias Seidel                os=sysv
3711aeda8abSMatthias Seidel                ;;
3721aeda8abSMatthias Seidel            merlin)
3731aeda8abSMatthias Seidel                basic_machine=ns32k-utek
3741aeda8abSMatthias Seidel                os=sysv
3751aeda8abSMatthias Seidel                ;;
3761aeda8abSMatthias Seidel            mingw64)
3771aeda8abSMatthias Seidel                basic_machine=x86_64-pc
3781aeda8abSMatthias Seidel                os=mingw64
3791aeda8abSMatthias Seidel                ;;
3801aeda8abSMatthias Seidel            mingw32)
3811aeda8abSMatthias Seidel                basic_machine=i686-pc
3821aeda8abSMatthias Seidel                os=mingw32
3831aeda8abSMatthias Seidel                ;;
3841aeda8abSMatthias Seidel            mingw32ce)
3851aeda8abSMatthias Seidel                basic_machine=arm-unknown
3861aeda8abSMatthias Seidel                os=mingw32ce
3871aeda8abSMatthias Seidel                ;;
3881aeda8abSMatthias Seidel            monitor)
3891aeda8abSMatthias Seidel                basic_machine=m68k-rom68k
3901aeda8abSMatthias Seidel                os=coff
3911aeda8abSMatthias Seidel                ;;
3921aeda8abSMatthias Seidel            morphos)
3931aeda8abSMatthias Seidel                basic_machine=powerpc-unknown
3941aeda8abSMatthias Seidel                os=morphos
3951aeda8abSMatthias Seidel                ;;
3961aeda8abSMatthias Seidel            moxiebox)
3971aeda8abSMatthias Seidel                basic_machine=moxie-unknown
3981aeda8abSMatthias Seidel                os=moxiebox
3991aeda8abSMatthias Seidel                ;;
4001aeda8abSMatthias Seidel            msdos)
4011aeda8abSMatthias Seidel                basic_machine=i386-pc
4021aeda8abSMatthias Seidel                os=msdos
4031aeda8abSMatthias Seidel                ;;
4041aeda8abSMatthias Seidel            msys)
4051aeda8abSMatthias Seidel                basic_machine=i686-pc
4061aeda8abSMatthias Seidel                os=msys
4071aeda8abSMatthias Seidel                ;;
4081aeda8abSMatthias Seidel            mvs)
4091aeda8abSMatthias Seidel                basic_machine=i370-ibm
4101aeda8abSMatthias Seidel                os=mvs
4111aeda8abSMatthias Seidel                ;;
4121aeda8abSMatthias Seidel            nacl)
4131aeda8abSMatthias Seidel                basic_machine=le32-unknown
4141aeda8abSMatthias Seidel                os=nacl
4151aeda8abSMatthias Seidel                ;;
4161aeda8abSMatthias Seidel            ncr3000)
4171aeda8abSMatthias Seidel                basic_machine=i486-ncr
4181aeda8abSMatthias Seidel                os=sysv4
4191aeda8abSMatthias Seidel                ;;
4201aeda8abSMatthias Seidel            netbsd386)
4211aeda8abSMatthias Seidel                basic_machine=i386-pc
4221aeda8abSMatthias Seidel                os=netbsd
4231aeda8abSMatthias Seidel                ;;
4241aeda8abSMatthias Seidel            netwinder)
4251aeda8abSMatthias Seidel                basic_machine=armv4l-rebel
4261aeda8abSMatthias Seidel                os=linux
4271aeda8abSMatthias Seidel                ;;
4281aeda8abSMatthias Seidel            news | news700 | news800 | news900)
4291aeda8abSMatthias Seidel                basic_machine=m68k-sony
4301aeda8abSMatthias Seidel                os=newsos
4311aeda8abSMatthias Seidel                ;;
4321aeda8abSMatthias Seidel            news1000)
4331aeda8abSMatthias Seidel                basic_machine=m68030-sony
4341aeda8abSMatthias Seidel                os=newsos
4351aeda8abSMatthias Seidel                ;;
4361aeda8abSMatthias Seidel            necv70)
4371aeda8abSMatthias Seidel                basic_machine=v70-nec
4381aeda8abSMatthias Seidel                os=sysv
4391aeda8abSMatthias Seidel                ;;
4401aeda8abSMatthias Seidel            nh3000)
4411aeda8abSMatthias Seidel                basic_machine=m68k-harris
4421aeda8abSMatthias Seidel                os=cxux
4431aeda8abSMatthias Seidel                ;;
4441aeda8abSMatthias Seidel            nh[45]000)
4451aeda8abSMatthias Seidel                basic_machine=m88k-harris
4461aeda8abSMatthias Seidel                os=cxux
4471aeda8abSMatthias Seidel                ;;
4481aeda8abSMatthias Seidel            nindy960)
4491aeda8abSMatthias Seidel                basic_machine=i960-intel
4501aeda8abSMatthias Seidel                os=nindy
4511aeda8abSMatthias Seidel                ;;
4521aeda8abSMatthias Seidel            mon960)
4531aeda8abSMatthias Seidel                basic_machine=i960-intel
4541aeda8abSMatthias Seidel                os=mon960
4551aeda8abSMatthias Seidel                ;;
4561aeda8abSMatthias Seidel            nonstopux)
4571aeda8abSMatthias Seidel                basic_machine=mips-compaq
4581aeda8abSMatthias Seidel                os=nonstopux
4591aeda8abSMatthias Seidel                ;;
4601aeda8abSMatthias Seidel            os400)
4611aeda8abSMatthias Seidel                basic_machine=powerpc-ibm
4621aeda8abSMatthias Seidel                os=os400
4631aeda8abSMatthias Seidel                ;;
4641aeda8abSMatthias Seidel            OSE68000 | ose68000)
4651aeda8abSMatthias Seidel                basic_machine=m68000-ericsson
4661aeda8abSMatthias Seidel                os=ose
4671aeda8abSMatthias Seidel                ;;
4681aeda8abSMatthias Seidel            os68k)
4691aeda8abSMatthias Seidel                basic_machine=m68k-none
4701aeda8abSMatthias Seidel                os=os68k
4711aeda8abSMatthias Seidel                ;;
4721aeda8abSMatthias Seidel            paragon)
4731aeda8abSMatthias Seidel                basic_machine=i860-intel
4741aeda8abSMatthias Seidel                os=osf
4751aeda8abSMatthias Seidel                ;;
4761aeda8abSMatthias Seidel            parisc)
4771aeda8abSMatthias Seidel                basic_machine=hppa-unknown
4781aeda8abSMatthias Seidel                os=linux
4791aeda8abSMatthias Seidel                ;;
4801aeda8abSMatthias Seidel            pw32)
4811aeda8abSMatthias Seidel                basic_machine=i586-unknown
4821aeda8abSMatthias Seidel                os=pw32
4831aeda8abSMatthias Seidel                ;;
4841aeda8abSMatthias Seidel            rdos | rdos64)
4851aeda8abSMatthias Seidel                basic_machine=x86_64-pc
4861aeda8abSMatthias Seidel                os=rdos
4871aeda8abSMatthias Seidel                ;;
4881aeda8abSMatthias Seidel            rdos32)
4891aeda8abSMatthias Seidel                basic_machine=i386-pc
4901aeda8abSMatthias Seidel                os=rdos
4911aeda8abSMatthias Seidel                ;;
4921aeda8abSMatthias Seidel            rom68k)
4931aeda8abSMatthias Seidel                basic_machine=m68k-rom68k
4941aeda8abSMatthias Seidel                os=coff
4951aeda8abSMatthias Seidel                ;;
4961aeda8abSMatthias Seidel            sa29200)
4971aeda8abSMatthias Seidel                basic_machine=a29k-amd
4981aeda8abSMatthias Seidel                os=udi
4991aeda8abSMatthias Seidel                ;;
5001aeda8abSMatthias Seidel            sei)
5011aeda8abSMatthias Seidel                basic_machine=mips-sei
5021aeda8abSMatthias Seidel                os=seiux
5031aeda8abSMatthias Seidel                ;;
5041aeda8abSMatthias Seidel            sequent)
5051aeda8abSMatthias Seidel                basic_machine=i386-sequent
5061aeda8abSMatthias Seidel                os=
5071aeda8abSMatthias Seidel                ;;
5081aeda8abSMatthias Seidel            sps7)
5091aeda8abSMatthias Seidel                basic_machine=m68k-bull
5101aeda8abSMatthias Seidel                os=sysv2
5111aeda8abSMatthias Seidel                ;;
5121aeda8abSMatthias Seidel            st2000)
5131aeda8abSMatthias Seidel                basic_machine=m68k-tandem
5141aeda8abSMatthias Seidel                os=
5151aeda8abSMatthias Seidel                ;;
5161aeda8abSMatthias Seidel            stratus)
5171aeda8abSMatthias Seidel                basic_machine=i860-stratus
5181aeda8abSMatthias Seidel                os=sysv4
5191aeda8abSMatthias Seidel                ;;
5201aeda8abSMatthias Seidel            sun2)
5211aeda8abSMatthias Seidel                basic_machine=m68000-sun
5221aeda8abSMatthias Seidel                os=
5231aeda8abSMatthias Seidel                ;;
5241aeda8abSMatthias Seidel            sun2os3)
5251aeda8abSMatthias Seidel                basic_machine=m68000-sun
5261aeda8abSMatthias Seidel                os=sunos3
5271aeda8abSMatthias Seidel                ;;
5281aeda8abSMatthias Seidel            sun2os4)
5291aeda8abSMatthias Seidel                basic_machine=m68000-sun
5301aeda8abSMatthias Seidel                os=sunos4
5311aeda8abSMatthias Seidel                ;;
5321aeda8abSMatthias Seidel            sun3)
5331aeda8abSMatthias Seidel                basic_machine=m68k-sun
5341aeda8abSMatthias Seidel                os=
5351aeda8abSMatthias Seidel                ;;
5361aeda8abSMatthias Seidel            sun3os3)
5371aeda8abSMatthias Seidel                basic_machine=m68k-sun
5381aeda8abSMatthias Seidel                os=sunos3
5391aeda8abSMatthias Seidel                ;;
5401aeda8abSMatthias Seidel            sun3os4)
5411aeda8abSMatthias Seidel                basic_machine=m68k-sun
5421aeda8abSMatthias Seidel                os=sunos4
5431aeda8abSMatthias Seidel                ;;
5441aeda8abSMatthias Seidel            sun4)
5451aeda8abSMatthias Seidel                basic_machine=sparc-sun
5461aeda8abSMatthias Seidel                os=
5471aeda8abSMatthias Seidel                ;;
5481aeda8abSMatthias Seidel            sun4os3)
5491aeda8abSMatthias Seidel                basic_machine=sparc-sun
5501aeda8abSMatthias Seidel                os=sunos3
5511aeda8abSMatthias Seidel                ;;
5521aeda8abSMatthias Seidel            sun4os4)
5531aeda8abSMatthias Seidel                basic_machine=sparc-sun
5541aeda8abSMatthias Seidel                os=sunos4
5551aeda8abSMatthias Seidel                ;;
5561aeda8abSMatthias Seidel            sun4sol2)
5571aeda8abSMatthias Seidel                basic_machine=sparc-sun
5581aeda8abSMatthias Seidel                os=solaris2
5591aeda8abSMatthias Seidel                ;;
5601aeda8abSMatthias Seidel            sun386 | sun386i | roadrunner)
5611aeda8abSMatthias Seidel                basic_machine=i386-sun
5621aeda8abSMatthias Seidel                os=
5631aeda8abSMatthias Seidel                ;;
5641aeda8abSMatthias Seidel            sv1)
5651aeda8abSMatthias Seidel                basic_machine=sv1-cray
5661aeda8abSMatthias Seidel                os=unicos
5671aeda8abSMatthias Seidel                ;;
5681aeda8abSMatthias Seidel            symmetry)
5691aeda8abSMatthias Seidel                basic_machine=i386-sequent
5701aeda8abSMatthias Seidel                os=dynix
5711aeda8abSMatthias Seidel                ;;
5721aeda8abSMatthias Seidel            t3e)
5731aeda8abSMatthias Seidel                basic_machine=alphaev5-cray
5741aeda8abSMatthias Seidel                os=unicos
5751aeda8abSMatthias Seidel                ;;
5761aeda8abSMatthias Seidel            t90)
5771aeda8abSMatthias Seidel                basic_machine=t90-cray
5781aeda8abSMatthias Seidel                os=unicos
5791aeda8abSMatthias Seidel                ;;
5801aeda8abSMatthias Seidel            toad1)
5811aeda8abSMatthias Seidel                basic_machine=pdp10-xkl
5821aeda8abSMatthias Seidel                os=tops20
5831aeda8abSMatthias Seidel                ;;
5841aeda8abSMatthias Seidel            tpf)
5851aeda8abSMatthias Seidel                basic_machine=s390x-ibm
5861aeda8abSMatthias Seidel                os=tpf
5871aeda8abSMatthias Seidel                ;;
5881aeda8abSMatthias Seidel            udi29k)
5891aeda8abSMatthias Seidel                basic_machine=a29k-amd
5901aeda8abSMatthias Seidel                os=udi
5911aeda8abSMatthias Seidel                ;;
5921aeda8abSMatthias Seidel            ultra3)
5931aeda8abSMatthias Seidel                basic_machine=a29k-nyu
5941aeda8abSMatthias Seidel                os=sym1
5951aeda8abSMatthias Seidel                ;;
5961aeda8abSMatthias Seidel            v810 | necv810)
5971aeda8abSMatthias Seidel                basic_machine=v810-nec
5981aeda8abSMatthias Seidel                os=none
5991aeda8abSMatthias Seidel                ;;
6001aeda8abSMatthias Seidel            vaxv)
6011aeda8abSMatthias Seidel                basic_machine=vax-dec
6021aeda8abSMatthias Seidel                os=sysv
6031aeda8abSMatthias Seidel                ;;
6041aeda8abSMatthias Seidel            vms)
6051aeda8abSMatthias Seidel                basic_machine=vax-dec
6061aeda8abSMatthias Seidel                os=vms
6071aeda8abSMatthias Seidel                ;;
608*aa9f3106Smseidel            vsta)
609*aa9f3106Smseidel                basic_machine=i386-pc
610*aa9f3106Smseidel                os=vsta
611*aa9f3106Smseidel                ;;
6121aeda8abSMatthias Seidel            vxworks960)
6131aeda8abSMatthias Seidel                basic_machine=i960-wrs
6141aeda8abSMatthias Seidel                os=vxworks
6151aeda8abSMatthias Seidel                ;;
6161aeda8abSMatthias Seidel            vxworks68)
6171aeda8abSMatthias Seidel                basic_machine=m68k-wrs
6181aeda8abSMatthias Seidel                os=vxworks
6191aeda8abSMatthias Seidel                ;;
6201aeda8abSMatthias Seidel            vxworks29k)
6211aeda8abSMatthias Seidel                basic_machine=a29k-wrs
6221aeda8abSMatthias Seidel                os=vxworks
6231aeda8abSMatthias Seidel                ;;
6241aeda8abSMatthias Seidel            xbox)
6251aeda8abSMatthias Seidel                basic_machine=i686-pc
6261aeda8abSMatthias Seidel                os=mingw32
6271aeda8abSMatthias Seidel                ;;
6281aeda8abSMatthias Seidel            ymp)
6291aeda8abSMatthias Seidel                basic_machine=ymp-cray
6301aeda8abSMatthias Seidel                os=unicos
6311aeda8abSMatthias Seidel                ;;
6321aeda8abSMatthias Seidel            *)
6331aeda8abSMatthias Seidel                basic_machine=$1
6341aeda8abSMatthias Seidel                os=
6351aeda8abSMatthias Seidel                ;;
6361aeda8abSMatthias Seidel        esac
637cdf0e10cSrcweir        ;;
638cdf0e10cSrcweiresac
639cdf0e10cSrcweir
6401aeda8abSMatthias Seidel# Decode 1-component or ad-hoc basic machines
641cdf0e10cSrcweircase $basic_machine in
6421aeda8abSMatthias Seidel    # Here we handle the default manufacturer of certain CPU types.  It is in
6431aeda8abSMatthias Seidel    # some cases the only manufacturer, in others, it is the most popular.
6441aeda8abSMatthias Seidel    w89k)
6451aeda8abSMatthias Seidel        cpu=hppa1.1
6461aeda8abSMatthias Seidel        vendor=winbond
6471aeda8abSMatthias Seidel        ;;
6481aeda8abSMatthias Seidel    op50n)
6491aeda8abSMatthias Seidel        cpu=hppa1.1
6501aeda8abSMatthias Seidel        vendor=oki
6511aeda8abSMatthias Seidel        ;;
6521aeda8abSMatthias Seidel    op60c)
6531aeda8abSMatthias Seidel        cpu=hppa1.1
6541aeda8abSMatthias Seidel        vendor=oki
6551aeda8abSMatthias Seidel        ;;
6561aeda8abSMatthias Seidel    ibm*)
6571aeda8abSMatthias Seidel        cpu=i370
6581aeda8abSMatthias Seidel        vendor=ibm
6591aeda8abSMatthias Seidel        ;;
6601aeda8abSMatthias Seidel    orion105)
6611aeda8abSMatthias Seidel        cpu=clipper
6621aeda8abSMatthias Seidel        vendor=highlevel
6631aeda8abSMatthias Seidel        ;;
6641aeda8abSMatthias Seidel    mac | mpw | mac-mpw)
6651aeda8abSMatthias Seidel        cpu=m68k
6661aeda8abSMatthias Seidel        vendor=apple
6671aeda8abSMatthias Seidel        ;;
6681aeda8abSMatthias Seidel    pmac | pmac-mpw)
6691aeda8abSMatthias Seidel        cpu=powerpc
6701aeda8abSMatthias Seidel        vendor=apple
6711aeda8abSMatthias Seidel        ;;
6721aeda8abSMatthias Seidel
6731aeda8abSMatthias Seidel    # Recognize the various machine names and aliases which stand
6741aeda8abSMatthias Seidel    # for a CPU type and a company and sometimes even an OS.
6751aeda8abSMatthias Seidel    3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
6761aeda8abSMatthias Seidel        cpu=m68000
6771aeda8abSMatthias Seidel        vendor=att
6781aeda8abSMatthias Seidel        ;;
6791aeda8abSMatthias Seidel    3b*)
6801aeda8abSMatthias Seidel        cpu=we32k
6811aeda8abSMatthias Seidel        vendor=att
6821aeda8abSMatthias Seidel        ;;
6831aeda8abSMatthias Seidel    bluegene*)
6841aeda8abSMatthias Seidel        cpu=powerpc
6851aeda8abSMatthias Seidel        vendor=ibm
6861aeda8abSMatthias Seidel        os=cnk
6871aeda8abSMatthias Seidel        ;;
6881aeda8abSMatthias Seidel    decsystem10* | dec10*)
6891aeda8abSMatthias Seidel        cpu=pdp10
6901aeda8abSMatthias Seidel        vendor=dec
6911aeda8abSMatthias Seidel        os=tops10
6921aeda8abSMatthias Seidel        ;;
6931aeda8abSMatthias Seidel    decsystem20* | dec20*)
6941aeda8abSMatthias Seidel        cpu=pdp10
6951aeda8abSMatthias Seidel        vendor=dec
6961aeda8abSMatthias Seidel        os=tops20
6971aeda8abSMatthias Seidel        ;;
6981aeda8abSMatthias Seidel    delta | 3300 | motorola-3300 | motorola-delta \
6991aeda8abSMatthias Seidel          | 3300-motorola | delta-motorola)
7001aeda8abSMatthias Seidel        cpu=m68k
7011aeda8abSMatthias Seidel        vendor=motorola
7021aeda8abSMatthias Seidel        ;;
7031aeda8abSMatthias Seidel    dpx2*)
7041aeda8abSMatthias Seidel        cpu=m68k
7051aeda8abSMatthias Seidel        vendor=bull
7061aeda8abSMatthias Seidel        os=sysv3
7071aeda8abSMatthias Seidel        ;;
7081aeda8abSMatthias Seidel    encore | umax | mmax)
7091aeda8abSMatthias Seidel        cpu=ns32k
7101aeda8abSMatthias Seidel        vendor=encore
7111aeda8abSMatthias Seidel        ;;
7121aeda8abSMatthias Seidel    elxsi)
7131aeda8abSMatthias Seidel        cpu=elxsi
7141aeda8abSMatthias Seidel        vendor=elxsi
7151aeda8abSMatthias Seidel        os=${os:-bsd}
7161aeda8abSMatthias Seidel        ;;
7171aeda8abSMatthias Seidel    fx2800)
7181aeda8abSMatthias Seidel        cpu=i860
7191aeda8abSMatthias Seidel        vendor=alliant
7201aeda8abSMatthias Seidel        ;;
7211aeda8abSMatthias Seidel    genix)
7221aeda8abSMatthias Seidel        cpu=ns32k
7231aeda8abSMatthias Seidel        vendor=ns
7241aeda8abSMatthias Seidel        ;;
7251aeda8abSMatthias Seidel    h3050r* | hiux*)
7261aeda8abSMatthias Seidel        cpu=hppa1.1
7271aeda8abSMatthias Seidel        vendor=hitachi
7281aeda8abSMatthias Seidel        os=hiuxwe2
7291aeda8abSMatthias Seidel        ;;
7301aeda8abSMatthias Seidel    hp3k9[0-9][0-9] | hp9[0-9][0-9])
7311aeda8abSMatthias Seidel        cpu=hppa1.0
7321aeda8abSMatthias Seidel        vendor=hp
7331aeda8abSMatthias Seidel        ;;
7341aeda8abSMatthias Seidel    hp9k2[0-9][0-9] | hp9k31[0-9])
7351aeda8abSMatthias Seidel        cpu=m68000
7361aeda8abSMatthias Seidel        vendor=hp
7371aeda8abSMatthias Seidel        ;;
7381aeda8abSMatthias Seidel    hp9k3[2-9][0-9])
7391aeda8abSMatthias Seidel        cpu=m68k
7401aeda8abSMatthias Seidel        vendor=hp
7411aeda8abSMatthias Seidel        ;;
7421aeda8abSMatthias Seidel    hp9k6[0-9][0-9] | hp6[0-9][0-9])
7431aeda8abSMatthias Seidel        cpu=hppa1.0
7441aeda8abSMatthias Seidel        vendor=hp
7451aeda8abSMatthias Seidel        ;;
7461aeda8abSMatthias Seidel    hp9k7[0-79][0-9] | hp7[0-79][0-9])
7471aeda8abSMatthias Seidel        cpu=hppa1.1
7481aeda8abSMatthias Seidel        vendor=hp
7491aeda8abSMatthias Seidel        ;;
7501aeda8abSMatthias Seidel    hp9k78[0-9] | hp78[0-9])
7511aeda8abSMatthias Seidel        # FIXME: really hppa2.0-hp
7521aeda8abSMatthias Seidel        cpu=hppa1.1
7531aeda8abSMatthias Seidel        vendor=hp
7541aeda8abSMatthias Seidel        ;;
7551aeda8abSMatthias Seidel    hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
7561aeda8abSMatthias Seidel        # FIXME: really hppa2.0-hp
7571aeda8abSMatthias Seidel        cpu=hppa1.1
7581aeda8abSMatthias Seidel        vendor=hp
7591aeda8abSMatthias Seidel        ;;
7601aeda8abSMatthias Seidel    hp9k8[0-9][13679] | hp8[0-9][13679])
7611aeda8abSMatthias Seidel        cpu=hppa1.1
7621aeda8abSMatthias Seidel        vendor=hp
7631aeda8abSMatthias Seidel        ;;
7641aeda8abSMatthias Seidel    hp9k8[0-9][0-9] | hp8[0-9][0-9])
7651aeda8abSMatthias Seidel        cpu=hppa1.0
7661aeda8abSMatthias Seidel        vendor=hp
7671aeda8abSMatthias Seidel        ;;
7681aeda8abSMatthias Seidel    i*86v32)
7691aeda8abSMatthias Seidel        cpu=`echo "$1" | sed -e 's/86.*/86/'`
7701aeda8abSMatthias Seidel        vendor=pc
7711aeda8abSMatthias Seidel        os=sysv32
7721aeda8abSMatthias Seidel        ;;
7731aeda8abSMatthias Seidel    i*86v4*)
7741aeda8abSMatthias Seidel        cpu=`echo "$1" | sed -e 's/86.*/86/'`
7751aeda8abSMatthias Seidel        vendor=pc
7761aeda8abSMatthias Seidel        os=sysv4
7771aeda8abSMatthias Seidel        ;;
7781aeda8abSMatthias Seidel    i*86v)
7791aeda8abSMatthias Seidel        cpu=`echo "$1" | sed -e 's/86.*/86/'`
7801aeda8abSMatthias Seidel        vendor=pc
7811aeda8abSMatthias Seidel        os=sysv
7821aeda8abSMatthias Seidel        ;;
7831aeda8abSMatthias Seidel    i*86sol2)
7841aeda8abSMatthias Seidel        cpu=`echo "$1" | sed -e 's/86.*/86/'`
7851aeda8abSMatthias Seidel        vendor=pc
7861aeda8abSMatthias Seidel        os=solaris2
7871aeda8abSMatthias Seidel        ;;
7881aeda8abSMatthias Seidel    j90 | j90-cray)
7891aeda8abSMatthias Seidel        cpu=j90
7901aeda8abSMatthias Seidel        vendor=cray
7911aeda8abSMatthias Seidel        os=${os:-unicos}
7921aeda8abSMatthias Seidel        ;;
7931aeda8abSMatthias Seidel    iris | iris4d)
7941aeda8abSMatthias Seidel        cpu=mips
7951aeda8abSMatthias Seidel        vendor=sgi
7961aeda8abSMatthias Seidel        case $os in
7971aeda8abSMatthias Seidel            irix*)
7981aeda8abSMatthias Seidel            ;;
7991aeda8abSMatthias Seidel            *)
8001aeda8abSMatthias Seidel            os=irix4
8011aeda8abSMatthias Seidel            ;;
8021aeda8abSMatthias Seidel        esac
8031aeda8abSMatthias Seidel        ;;
8041aeda8abSMatthias Seidel    miniframe)
8051aeda8abSMatthias Seidel        cpu=m68000
8061aeda8abSMatthias Seidel        vendor=convergent
8071aeda8abSMatthias Seidel        ;;
8081aeda8abSMatthias Seidel    *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
8091aeda8abSMatthias Seidel        cpu=m68k
8101aeda8abSMatthias Seidel        vendor=atari
8111aeda8abSMatthias Seidel        os=mint
8121aeda8abSMatthias Seidel        ;;
8131aeda8abSMatthias Seidel    news-3600 | risc-news)
8141aeda8abSMatthias Seidel        cpu=mips
8151aeda8abSMatthias Seidel        vendor=sony
8161aeda8abSMatthias Seidel        os=newsos
8171aeda8abSMatthias Seidel        ;;
8181aeda8abSMatthias Seidel    next | m*-next)
8191aeda8abSMatthias Seidel        cpu=m68k
8201aeda8abSMatthias Seidel        vendor=next
8211aeda8abSMatthias Seidel        case $os in
82282437902SMatthias Seidel            openstep*)
82382437902SMatthias Seidel                ;;
8241aeda8abSMatthias Seidel            nextstep*)
8251aeda8abSMatthias Seidel            ;;
8261aeda8abSMatthias Seidel            ns2*)
8271aeda8abSMatthias Seidel              os=nextstep2
8281aeda8abSMatthias Seidel            ;;
8291aeda8abSMatthias Seidel            *)
8301aeda8abSMatthias Seidel              os=nextstep3
8311aeda8abSMatthias Seidel            ;;
8321aeda8abSMatthias Seidel        esac
8331aeda8abSMatthias Seidel        ;;
8341aeda8abSMatthias Seidel    np1)
8351aeda8abSMatthias Seidel        cpu=np1
8361aeda8abSMatthias Seidel        vendor=gould
8371aeda8abSMatthias Seidel        ;;
8381aeda8abSMatthias Seidel    op50n-* | op60c-*)
8391aeda8abSMatthias Seidel        cpu=hppa1.1
8401aeda8abSMatthias Seidel        vendor=oki
8411aeda8abSMatthias Seidel        os=proelf
8421aeda8abSMatthias Seidel        ;;
8431aeda8abSMatthias Seidel    pa-hitachi)
8441aeda8abSMatthias Seidel        cpu=hppa1.1
8451aeda8abSMatthias Seidel        vendor=hitachi
8461aeda8abSMatthias Seidel        os=hiuxwe2
8471aeda8abSMatthias Seidel        ;;
8481aeda8abSMatthias Seidel    pbd)
8491aeda8abSMatthias Seidel        cpu=sparc
8501aeda8abSMatthias Seidel        vendor=tti
8511aeda8abSMatthias Seidel        ;;
8521aeda8abSMatthias Seidel    pbb)
8531aeda8abSMatthias Seidel        cpu=m68k
8541aeda8abSMatthias Seidel        vendor=tti
8551aeda8abSMatthias Seidel        ;;
8561aeda8abSMatthias Seidel    pc532)
8571aeda8abSMatthias Seidel        cpu=ns32k
8581aeda8abSMatthias Seidel        vendor=pc532
8591aeda8abSMatthias Seidel        ;;
8601aeda8abSMatthias Seidel    pn)
8611aeda8abSMatthias Seidel        cpu=pn
8621aeda8abSMatthias Seidel        vendor=gould
8631aeda8abSMatthias Seidel        ;;
8641aeda8abSMatthias Seidel    power)
8651aeda8abSMatthias Seidel        cpu=power
8661aeda8abSMatthias Seidel        vendor=ibm
8671aeda8abSMatthias Seidel        ;;
8681aeda8abSMatthias Seidel    ps2)
8691aeda8abSMatthias Seidel        cpu=i386
8701aeda8abSMatthias Seidel        vendor=ibm
8711aeda8abSMatthias Seidel        ;;
8721aeda8abSMatthias Seidel    rm[46]00)
8731aeda8abSMatthias Seidel        cpu=mips
8741aeda8abSMatthias Seidel        vendor=siemens
8751aeda8abSMatthias Seidel        ;;
8761aeda8abSMatthias Seidel    rtpc | rtpc-*)
8771aeda8abSMatthias Seidel        cpu=romp
8781aeda8abSMatthias Seidel        vendor=ibm
8791aeda8abSMatthias Seidel        ;;
8801aeda8abSMatthias Seidel    sde)
8811aeda8abSMatthias Seidel        cpu=mipsisa32
8821aeda8abSMatthias Seidel        vendor=sde
8831aeda8abSMatthias Seidel        os=${os:-elf}
8841aeda8abSMatthias Seidel        ;;
8851aeda8abSMatthias Seidel    simso-wrs)
8861aeda8abSMatthias Seidel        cpu=sparclite
8871aeda8abSMatthias Seidel        vendor=wrs
8881aeda8abSMatthias Seidel        os=vxworks
8891aeda8abSMatthias Seidel        ;;
8901aeda8abSMatthias Seidel    tower | tower-32)
8911aeda8abSMatthias Seidel        cpu=m68k
8921aeda8abSMatthias Seidel        vendor=ncr
8931aeda8abSMatthias Seidel        ;;
8941aeda8abSMatthias Seidel    vpp*|vx|vx-*)
8951aeda8abSMatthias Seidel        cpu=f301
8961aeda8abSMatthias Seidel        vendor=fujitsu
8971aeda8abSMatthias Seidel        ;;
8981aeda8abSMatthias Seidel    w65)
8991aeda8abSMatthias Seidel        cpu=w65
9001aeda8abSMatthias Seidel        vendor=wdc
9011aeda8abSMatthias Seidel        ;;
9021aeda8abSMatthias Seidel    w89k-*)
9031aeda8abSMatthias Seidel        cpu=hppa1.1
9041aeda8abSMatthias Seidel        vendor=winbond
9051aeda8abSMatthias Seidel        os=proelf
9061aeda8abSMatthias Seidel        ;;
9071aeda8abSMatthias Seidel    none)
9081aeda8abSMatthias Seidel        cpu=none
9091aeda8abSMatthias Seidel        vendor=none
9101aeda8abSMatthias Seidel        ;;
9111aeda8abSMatthias Seidel    leon|leon[3-9])
9121aeda8abSMatthias Seidel        cpu=sparc
9131aeda8abSMatthias Seidel        vendor=$basic_machine
9141aeda8abSMatthias Seidel        ;;
9151aeda8abSMatthias Seidel    leon-*|leon[3-9]-*)
9161aeda8abSMatthias Seidel        cpu=sparc
9171aeda8abSMatthias Seidel        vendor=`echo "$basic_machine" | sed 's/-.*//'`
9181aeda8abSMatthias Seidel        ;;
9191aeda8abSMatthias Seidel
9201aeda8abSMatthias Seidel    *-*)
92182437902SMatthias Seidel        # shellcheck disable=SC2162
92282437902SMatthias Seidel        IFS="-" read cpu vendor <<EOF
9231aeda8abSMatthias Seidel$basic_machine
9241aeda8abSMatthias SeidelEOF
9251aeda8abSMatthias Seidel        ;;
9261aeda8abSMatthias Seidel    # We use `pc' rather than `unknown'
9271aeda8abSMatthias Seidel    # because (1) that's what they normally are, and
9281aeda8abSMatthias Seidel    # (2) the word "unknown" tends to confuse beginning users.
9291aeda8abSMatthias Seidel    i*86 | x86_64)
9301aeda8abSMatthias Seidel        cpu=$basic_machine
9311aeda8abSMatthias Seidel        vendor=pc
9321aeda8abSMatthias Seidel        ;;
9331aeda8abSMatthias Seidel    # These rules are duplicated from below for sake of the special case above;
9341aeda8abSMatthias Seidel    # i.e. things that normalized to x86 arches should also default to "pc"
9351aeda8abSMatthias Seidel    pc98)
9361aeda8abSMatthias Seidel        cpu=i386
9371aeda8abSMatthias Seidel        vendor=pc
9381aeda8abSMatthias Seidel        ;;
9391aeda8abSMatthias Seidel    x64 | amd64)
9401aeda8abSMatthias Seidel        cpu=x86_64
9411aeda8abSMatthias Seidel        vendor=pc
9421aeda8abSMatthias Seidel        ;;
943cdf0e10cSrcweir    # Recognize the basic CPU types without company name.
9441aeda8abSMatthias Seidel    *)
9451aeda8abSMatthias Seidel        cpu=$basic_machine
9461aeda8abSMatthias Seidel        vendor=unknown
9471aeda8abSMatthias Seidel        ;;
9481aeda8abSMatthias Seidelesac
9491aeda8abSMatthias Seidel
9501aeda8abSMatthias Seidelunset -v basic_machine
9511aeda8abSMatthias Seidel
9521aeda8abSMatthias Seidel# Decode basic machines in the full and proper CPU-Company form.
9531aeda8abSMatthias Seidelcase $cpu-$vendor in
95482437902SMatthias Seidel    # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
9551aeda8abSMatthias Seidel    # some cases the only manufacturer, in others, it is the most popular.
9561aeda8abSMatthias Seidel    craynv-unknown)
9571aeda8abSMatthias Seidel        vendor=cray
9581aeda8abSMatthias Seidel        os=${os:-unicosmp}
9591aeda8abSMatthias Seidel        ;;
9601aeda8abSMatthias Seidel    c90-unknown | c90-cray)
9611aeda8abSMatthias Seidel        vendor=cray
9621aeda8abSMatthias Seidel        os=${os:-unicos}
9631aeda8abSMatthias Seidel        ;;
9641aeda8abSMatthias Seidel    fx80-unknown)
9651aeda8abSMatthias Seidel        vendor=alliant
9661aeda8abSMatthias Seidel        ;;
9671aeda8abSMatthias Seidel    romp-unknown)
9681aeda8abSMatthias Seidel        vendor=ibm
9691aeda8abSMatthias Seidel        ;;
9701aeda8abSMatthias Seidel    mmix-unknown)
9711aeda8abSMatthias Seidel        vendor=knuth
9721aeda8abSMatthias Seidel        ;;
9731aeda8abSMatthias Seidel    microblaze-unknown | microblazeel-unknown)
9741aeda8abSMatthias Seidel        vendor=xilinx
9751aeda8abSMatthias Seidel        ;;
9761aeda8abSMatthias Seidel    rs6000-unknown)
9771aeda8abSMatthias Seidel        vendor=ibm
9781aeda8abSMatthias Seidel        ;;
9791aeda8abSMatthias Seidel    vax-unknown)
9801aeda8abSMatthias Seidel        vendor=dec
9811aeda8abSMatthias Seidel        ;;
9821aeda8abSMatthias Seidel    pdp11-unknown)
9831aeda8abSMatthias Seidel        vendor=dec
9841aeda8abSMatthias Seidel        ;;
9851aeda8abSMatthias Seidel    we32k-unknown)
9861aeda8abSMatthias Seidel        vendor=att
9871aeda8abSMatthias Seidel        ;;
9881aeda8abSMatthias Seidel    cydra-unknown)
9891aeda8abSMatthias Seidel        vendor=cydrome
9901aeda8abSMatthias Seidel        ;;
9911aeda8abSMatthias Seidel    i370-ibm*)
9921aeda8abSMatthias Seidel        vendor=ibm
9931aeda8abSMatthias Seidel        ;;
9941aeda8abSMatthias Seidel    orion-unknown)
9951aeda8abSMatthias Seidel        vendor=highlevel
9961aeda8abSMatthias Seidel        ;;
9971aeda8abSMatthias Seidel    xps-unknown | xps100-unknown)
9981aeda8abSMatthias Seidel        cpu=xps100
9991aeda8abSMatthias Seidel        vendor=honeywell
10001aeda8abSMatthias Seidel        ;;
10011aeda8abSMatthias Seidel
10021aeda8abSMatthias Seidel    # Here we normalize CPU types with a missing or matching vendor
10031aeda8abSMatthias Seidel    dpx20-unknown | dpx20-bull)
10041aeda8abSMatthias Seidel        cpu=rs6000
10051aeda8abSMatthias Seidel        vendor=bull
10061aeda8abSMatthias Seidel        os=${os:-bosx}
10071aeda8abSMatthias Seidel        ;;
10081aeda8abSMatthias Seidel
10091aeda8abSMatthias Seidel    # Here we normalize CPU types irrespective of the vendor
10101aeda8abSMatthias Seidel    amd64-*)
10111aeda8abSMatthias Seidel        cpu=x86_64
10121aeda8abSMatthias Seidel        ;;
10131aeda8abSMatthias Seidel    blackfin-*)
10141aeda8abSMatthias Seidel        cpu=bfin
10151aeda8abSMatthias Seidel        os=linux
10161aeda8abSMatthias Seidel        ;;
10171aeda8abSMatthias Seidel    c54x-*)
10181aeda8abSMatthias Seidel        cpu=tic54x
10191aeda8abSMatthias Seidel        ;;
10201aeda8abSMatthias Seidel    c55x-*)
10211aeda8abSMatthias Seidel        cpu=tic55x
10221aeda8abSMatthias Seidel        ;;
10231aeda8abSMatthias Seidel    c6x-*)
10241aeda8abSMatthias Seidel        cpu=tic6x
10251aeda8abSMatthias Seidel        ;;
10261aeda8abSMatthias Seidel    e500v[12]-*)
10271aeda8abSMatthias Seidel        cpu=powerpc
10281aeda8abSMatthias Seidel        os=$os"spe"
10291aeda8abSMatthias Seidel        ;;
10301aeda8abSMatthias Seidel    mips3*-*)
10311aeda8abSMatthias Seidel        cpu=mips64
10321aeda8abSMatthias Seidel        ;;
10331aeda8abSMatthias Seidel    ms1-*)
10341aeda8abSMatthias Seidel        cpu=mt
10351aeda8abSMatthias Seidel        ;;
10361aeda8abSMatthias Seidel    m68knommu-*)
10371aeda8abSMatthias Seidel        cpu=m68k
10381aeda8abSMatthias Seidel        os=linux
10391aeda8abSMatthias Seidel        ;;
10401aeda8abSMatthias Seidel    m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
10411aeda8abSMatthias Seidel        cpu=s12z
10421aeda8abSMatthias Seidel        ;;
10431aeda8abSMatthias Seidel    openrisc-*)
10441aeda8abSMatthias Seidel        cpu=or32
10451aeda8abSMatthias Seidel        ;;
10461aeda8abSMatthias Seidel    parisc-*)
10471aeda8abSMatthias Seidel        cpu=hppa
10481aeda8abSMatthias Seidel        os=linux
10491aeda8abSMatthias Seidel        ;;
10501aeda8abSMatthias Seidel    pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
10511aeda8abSMatthias Seidel        cpu=i586
10521aeda8abSMatthias Seidel        ;;
10531aeda8abSMatthias Seidel    pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
10541aeda8abSMatthias Seidel        cpu=i686
10551aeda8abSMatthias Seidel        ;;
10561aeda8abSMatthias Seidel    pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
10571aeda8abSMatthias Seidel        cpu=i686
10581aeda8abSMatthias Seidel        ;;
10591aeda8abSMatthias Seidel    pentium4-*)
10601aeda8abSMatthias Seidel        cpu=i786
10611aeda8abSMatthias Seidel        ;;
10621aeda8abSMatthias Seidel    pc98-*)
10631aeda8abSMatthias Seidel        cpu=i386
10641aeda8abSMatthias Seidel        ;;
10651aeda8abSMatthias Seidel    ppc-* | ppcbe-*)
10661aeda8abSMatthias Seidel        cpu=powerpc
10671aeda8abSMatthias Seidel        ;;
10681aeda8abSMatthias Seidel    ppcle-* | powerpclittle-*)
10691aeda8abSMatthias Seidel        cpu=powerpcle
10701aeda8abSMatthias Seidel        ;;
10711aeda8abSMatthias Seidel    ppc64-*)
10721aeda8abSMatthias Seidel        cpu=powerpc64
10731aeda8abSMatthias Seidel        ;;
10741aeda8abSMatthias Seidel    ppc64le-* | powerpc64little-*)
10751aeda8abSMatthias Seidel        cpu=powerpc64le
10761aeda8abSMatthias Seidel        ;;
10771aeda8abSMatthias Seidel    sb1-*)
10781aeda8abSMatthias Seidel        cpu=mipsisa64sb1
10791aeda8abSMatthias Seidel        ;;
10801aeda8abSMatthias Seidel    sb1el-*)
10811aeda8abSMatthias Seidel        cpu=mipsisa64sb1el
10821aeda8abSMatthias Seidel        ;;
10831aeda8abSMatthias Seidel    sh5e[lb]-*)
10841aeda8abSMatthias Seidel        cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
10851aeda8abSMatthias Seidel        ;;
10861aeda8abSMatthias Seidel    spur-*)
10871aeda8abSMatthias Seidel        cpu=spur
10881aeda8abSMatthias Seidel        ;;
10891aeda8abSMatthias Seidel    strongarm-* | thumb-*)
10901aeda8abSMatthias Seidel        cpu=arm
10911aeda8abSMatthias Seidel        ;;
10921aeda8abSMatthias Seidel    tx39-*)
10931aeda8abSMatthias Seidel        cpu=mipstx39
10941aeda8abSMatthias Seidel        ;;
10951aeda8abSMatthias Seidel    tx39el-*)
10961aeda8abSMatthias Seidel        cpu=mipstx39el
10971aeda8abSMatthias Seidel        ;;
10981aeda8abSMatthias Seidel    x64-*)
10991aeda8abSMatthias Seidel        cpu=x86_64
11001aeda8abSMatthias Seidel        ;;
11011aeda8abSMatthias Seidel    xscale-* | xscalee[bl]-*)
11021aeda8abSMatthias Seidel        cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
11031aeda8abSMatthias Seidel        ;;
11041aeda8abSMatthias Seidel
110582437902SMatthias Seidel    # Recognize the canonical CPU Types that limit and/or modify the
11061aeda8abSMatthias Seidel    # company names they are paired with.
11071aeda8abSMatthias Seidel    cr16-*)
11081aeda8abSMatthias Seidel        os=${os:-elf}
11091aeda8abSMatthias Seidel        ;;
11101aeda8abSMatthias Seidel    crisv32-* | etraxfs*-*)
11111aeda8abSMatthias Seidel        cpu=crisv32
11121aeda8abSMatthias Seidel        vendor=axis
11131aeda8abSMatthias Seidel        ;;
11141aeda8abSMatthias Seidel    cris-* | etrax*-*)
11151aeda8abSMatthias Seidel        cpu=cris
11161aeda8abSMatthias Seidel        vendor=axis
11171aeda8abSMatthias Seidel        ;;
11181aeda8abSMatthias Seidel    crx-*)
11191aeda8abSMatthias Seidel        os=${os:-elf}
11201aeda8abSMatthias Seidel        ;;
11211aeda8abSMatthias Seidel    neo-tandem)
11221aeda8abSMatthias Seidel        cpu=neo
11231aeda8abSMatthias Seidel        vendor=tandem
11241aeda8abSMatthias Seidel        ;;
11251aeda8abSMatthias Seidel    nse-tandem)
11261aeda8abSMatthias Seidel        cpu=nse
11271aeda8abSMatthias Seidel        vendor=tandem
11281aeda8abSMatthias Seidel        ;;
11291aeda8abSMatthias Seidel    nsr-tandem)
11301aeda8abSMatthias Seidel        cpu=nsr
11311aeda8abSMatthias Seidel        vendor=tandem
11321aeda8abSMatthias Seidel        ;;
11331aeda8abSMatthias Seidel    nsv-tandem)
11341aeda8abSMatthias Seidel        cpu=nsv
11351aeda8abSMatthias Seidel        vendor=tandem
11361aeda8abSMatthias Seidel        ;;
11371aeda8abSMatthias Seidel    nsx-tandem)
11381aeda8abSMatthias Seidel        cpu=nsx
11391aeda8abSMatthias Seidel        vendor=tandem
11401aeda8abSMatthias Seidel        ;;
11411aeda8abSMatthias Seidel    s390-*)
11421aeda8abSMatthias Seidel        cpu=s390
11431aeda8abSMatthias Seidel        vendor=ibm
11441aeda8abSMatthias Seidel        ;;
11451aeda8abSMatthias Seidel    s390x-*)
11461aeda8abSMatthias Seidel        cpu=s390x
11471aeda8abSMatthias Seidel        vendor=ibm
11481aeda8abSMatthias Seidel        ;;
11491aeda8abSMatthias Seidel    tile*-*)
11501aeda8abSMatthias Seidel        os=${os:-linux-gnu}
11511aeda8abSMatthias Seidel        ;;
11521aeda8abSMatthias Seidel
11531aeda8abSMatthias Seidel    *)
115482437902SMatthias Seidel        # Recognize the canonical CPU types that are allowed with any
11551aeda8abSMatthias Seidel        # company name.
11561aeda8abSMatthias Seidel        case $cpu in
1157cdf0e10cSrcweir            1750a | 580 \
1158cdf0e10cSrcweir            | a29k \
1159ee1eb700SMatthias Seidel            | aarch64 | aarch64_be \
11601aeda8abSMatthias Seidel            | abacus \
11611aeda8abSMatthias Seidel            | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
11621aeda8abSMatthias Seidel            | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
11631aeda8abSMatthias Seidel            | alphapca5[67] | alpha64pca5[67] \
1164187b4248SPedro Giffuni            | am33_2.0 \
116582437902SMatthias Seidel            | amdgcn \
1166ee1eb700SMatthias Seidel            | arc | arceb \
11671aeda8abSMatthias Seidel            | arm  | arm[lb]e | arme[lb] | armv* \
1168ee1eb700SMatthias Seidel            | avr | avr32 \
11691aeda8abSMatthias Seidel            | asmjs \
1170ee1eb700SMatthias Seidel            | ba \
1171ee1eb700SMatthias Seidel            | be32 | be64 \
1172*aa9f3106Smseidel            | bfin | bpf | bs2000 \
11731aeda8abSMatthias Seidel            | c[123]* | c30 | [cjt]90 | c4x \
11741aeda8abSMatthias Seidel            | c8051 | clipper | craynv | csky | cydra \
1175cdf0e10cSrcweir            | d10v | d30v | dlx | dsp16xx \
11761aeda8abSMatthias Seidel            | e2k | elxsi | epiphany \
11771aeda8abSMatthias Seidel            | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
11781aeda8abSMatthias Seidel            | h8300 | h8500 \
11791aeda8abSMatthias Seidel            | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
1180ee1eb700SMatthias Seidel            | hexagon \
11811aeda8abSMatthias Seidel            | i370 | i*86 | i860 | i960 | ia16 | ia64 \
1182187b4248SPedro Giffuni            | ip2k | iq2000 \
1183ee1eb700SMatthias Seidel            | k1om \
1184ee1eb700SMatthias Seidel            | le32 | le64 \
1185187b4248SPedro Giffuni            | lm32 \
11861aeda8abSMatthias Seidel            | m32c | m32r | m32rle \
118782437902SMatthias Seidel            | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
118882437902SMatthias Seidel            | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
11891aeda8abSMatthias Seidel            | m88110 | m88k | maxq | mb | mcore | mep | metag \
11901aeda8abSMatthias Seidel            | microblaze | microblazeel \
1191cdf0e10cSrcweir            | mips | mipsbe | mipseb | mipsel | mipsle \
1192cdf0e10cSrcweir            | mips16 \
119382437902SMatthias Seidel            | mips64 | mips64eb | mips64el \
1194187b4248SPedro Giffuni            | mips64octeon | mips64octeonel \
119551df27a2SPedro Giffuni            | mips64orion | mips64orionel \
1196187b4248SPedro Giffuni            | mips64r5900 | mips64r5900el \
1197187b4248SPedro Giffuni            | mips64vr | mips64vrel \
1198cdf0e10cSrcweir            | mips64vr4100 | mips64vr4100el \
1199cdf0e10cSrcweir            | mips64vr4300 | mips64vr4300el \
1200cdf0e10cSrcweir            | mips64vr5000 | mips64vr5000el \
1201187b4248SPedro Giffuni            | mips64vr5900 | mips64vr5900el \
1202cdf0e10cSrcweir            | mipsisa32 | mipsisa32el \
1203cdf0e10cSrcweir            | mipsisa32r2 | mipsisa32r2el \
1204ee1eb700SMatthias Seidel            | mipsisa32r6 | mipsisa32r6el \
1205cdf0e10cSrcweir            | mipsisa64 | mipsisa64el \
1206187b4248SPedro Giffuni            | mipsisa64r2 | mipsisa64r2el \
1207ee1eb700SMatthias Seidel            | mipsisa64r6 | mipsisa64r6el \
1208cdf0e10cSrcweir            | mipsisa64sb1 | mipsisa64sb1el \
1209cdf0e10cSrcweir            | mipsisa64sr71k | mipsisa64sr71kel \
1210ee1eb700SMatthias Seidel            | mipsr5900 | mipsr5900el \
1211cdf0e10cSrcweir            | mipstx39 | mipstx39el \
12121aeda8abSMatthias Seidel            | mmix \
1213cdf0e10cSrcweir            | mn10200 | mn10300 \
1214187b4248SPedro Giffuni            | moxie \
1215187b4248SPedro Giffuni            | mt \
1216cdf0e10cSrcweir            | msp430 \
1217ee1eb700SMatthias Seidel            | nds32 | nds32le | nds32be \
12181aeda8abSMatthias Seidel            | nfp \
1219ee1eb700SMatthias Seidel            | nios | nios2 | nios2eb | nios2el \
122082437902SMatthias Seidel            | none | np1 | ns16k | ns32k | nvptx \
12211aeda8abSMatthias Seidel            | open8 \
12221aeda8abSMatthias Seidel            | or1k* \
12231aeda8abSMatthias Seidel            | or32 \
12241aeda8abSMatthias Seidel            | orion \
122582437902SMatthias Seidel            | picochip \
12261aeda8abSMatthias Seidel            | pdp10 | pdp11 | pj | pjl | pn | power \
12271aeda8abSMatthias Seidel            | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
1228ee1eb700SMatthias Seidel            | pru \
1229cdf0e10cSrcweir            | pyramid \
12301aeda8abSMatthias Seidel            | riscv | riscv32 | riscv64 \
12311aeda8abSMatthias Seidel            | rl78 | romp | rs6000 | rx \
1232187b4248SPedro Giffuni            | score \
123382437902SMatthias Seidel            | sh | shl \
123482437902SMatthias Seidel            | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
12351aeda8abSMatthias Seidel            | sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
12361aeda8abSMatthias Seidel            | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
12371aeda8abSMatthias Seidel            | sparclite \
12381aeda8abSMatthias Seidel            | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
1239ee1eb700SMatthias Seidel            | spu \
12401aeda8abSMatthias Seidel            | tahoe \
12411aeda8abSMatthias Seidel            | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
12421aeda8abSMatthias Seidel            | tron \
1243187b4248SPedro Giffuni            | ubicom32 \
124482437902SMatthias Seidel            | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
12451aeda8abSMatthias Seidel            | vax \
1246ee1eb700SMatthias Seidel            | visium \
124782437902SMatthias Seidel            | w65 \
124882437902SMatthias Seidel            | wasm32 | wasm64 \
12491aeda8abSMatthias Seidel            | we32k \
12501aeda8abSMatthias Seidel            | x86 | x86_64 | xc16x | xgate | xps100 \
12511aeda8abSMatthias Seidel            | xstormy16 | xtensa* \
12521aeda8abSMatthias Seidel            | ymp \
1253187b4248SPedro Giffuni            | z8k | z80)
1254187b4248SPedro Giffuni                ;;
1255cdf0e10cSrcweir
12561aeda8abSMatthias Seidel            *)
12571aeda8abSMatthias Seidel                echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
1258cdf0e10cSrcweir                exit 1
1259cdf0e10cSrcweir                ;;
1260cdf0e10cSrcweir        esac
1261cdf0e10cSrcweir        ;;
1262cdf0e10cSrcweiresac
1263cdf0e10cSrcweir
1264cdf0e10cSrcweir# Here we canonicalize certain aliases for manufacturers.
12651aeda8abSMatthias Seidelcase $vendor in
12661aeda8abSMatthias Seidel    digital*)
12671aeda8abSMatthias Seidel        vendor=dec
1268cdf0e10cSrcweir        ;;
12691aeda8abSMatthias Seidel    commodore*)
12701aeda8abSMatthias Seidel        vendor=cbm
1271cdf0e10cSrcweir        ;;
1272cdf0e10cSrcweir    *)
1273cdf0e10cSrcweir        ;;
1274cdf0e10cSrcweiresac
1275cdf0e10cSrcweir
1276cdf0e10cSrcweir# Decode manufacturer-specific aliases for certain operating systems.
1277cdf0e10cSrcweir
12781aeda8abSMatthias Seidelif [ x$os != x ]
1279cdf0e10cSrcweirthen
1280cdf0e10cSrcweircase $os in
1281ee1eb700SMatthias Seidel    # First match some system type aliases that might get confused
1282ee1eb700SMatthias Seidel    # with valid system types.
12831aeda8abSMatthias Seidel    # solaris* is a basic system type, with this one exception.
12841aeda8abSMatthias Seidel    auroraux)
12851aeda8abSMatthias Seidel        os=auroraux
1286187b4248SPedro Giffuni        ;;
12871aeda8abSMatthias Seidel    bluegene*)
12881aeda8abSMatthias Seidel        os=cnk
12891aeda8abSMatthias Seidel        ;;
12901aeda8abSMatthias Seidel    solaris1 | solaris1.*)
1291cdf0e10cSrcweir        os=`echo $os | sed -e 's|solaris1|sunos4|'`
1292cdf0e10cSrcweir        ;;
12931aeda8abSMatthias Seidel    solaris)
12941aeda8abSMatthias Seidel        os=solaris2
1295cdf0e10cSrcweir        ;;
12961aeda8abSMatthias Seidel    unixware*)
12971aeda8abSMatthias Seidel        os=sysv4.2uw
1298cdf0e10cSrcweir        ;;
12991aeda8abSMatthias Seidel    gnu/linux*)
1300cdf0e10cSrcweir        os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1301cdf0e10cSrcweir        ;;
13021a5d95c5SMatthias Seidel    # es1800 is here to avoid being matched by es* (a different OS)
13031aeda8abSMatthias Seidel    es1800*)
13041aeda8abSMatthias Seidel        os=ose
13051aeda8abSMatthias Seidel        ;;
13061aeda8abSMatthias Seidel    # Some version numbers need modification
13071aeda8abSMatthias Seidel    chorusos*)
13081aeda8abSMatthias Seidel        os=chorusos
13091aeda8abSMatthias Seidel        ;;
13101aeda8abSMatthias Seidel    isc)
13111aeda8abSMatthias Seidel        os=isc2.2
13121aeda8abSMatthias Seidel        ;;
13131aeda8abSMatthias Seidel    sco6)
13141aeda8abSMatthias Seidel        os=sco5v6
13151aeda8abSMatthias Seidel        ;;
13161aeda8abSMatthias Seidel    sco5)
13171aeda8abSMatthias Seidel        os=sco3.2v5
13181aeda8abSMatthias Seidel        ;;
13191aeda8abSMatthias Seidel    sco4)
13201aeda8abSMatthias Seidel        os=sco3.2v4
13211aeda8abSMatthias Seidel        ;;
13221aeda8abSMatthias Seidel    sco3.2.[4-9]*)
13231aeda8abSMatthias Seidel        os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
13241aeda8abSMatthias Seidel        ;;
13251aeda8abSMatthias Seidel    sco3.2v[4-9]* | sco5v6*)
13261aeda8abSMatthias Seidel        # Don't forget version if it is 3.2v4 or newer.
13271aeda8abSMatthias Seidel        ;;
13281aeda8abSMatthias Seidel    scout)
13291aeda8abSMatthias Seidel        # Don't match below
13301aeda8abSMatthias Seidel        ;;
13311aeda8abSMatthias Seidel    sco*)
13321aeda8abSMatthias Seidel        os=sco3.2v2
13331aeda8abSMatthias Seidel        ;;
13341aeda8abSMatthias Seidel    psos*)
13351aeda8abSMatthias Seidel        os=psos
13361a5d95c5SMatthias Seidel        ;;
1337ee1eb700SMatthias Seidel    # Now accept the basic system types.
1338cdf0e10cSrcweir    # The portable systems comes first.
1339ee1eb700SMatthias Seidel    # Each alternative MUST end in a * to match a version number.
13401aeda8abSMatthias Seidel    # sysv* is not here because it comes later, after sysvr4.
13411aeda8abSMatthias Seidel    gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
13421aeda8abSMatthias Seidel         | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
13431aeda8abSMatthias Seidel         | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
13441aeda8abSMatthias Seidel         | sym* | kopensolaris* | plan9* \
13451aeda8abSMatthias Seidel         | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
1346*aa9f3106Smseidel         | aos* | aros* | cloudabi* | sortix* | twizzler* \
13471aeda8abSMatthias Seidel         | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
13481aeda8abSMatthias Seidel         | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
13491aeda8abSMatthias Seidel         | knetbsd* | mirbsd* | netbsd* \
1350*aa9f3106Smseidel         | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
13511aeda8abSMatthias Seidel         | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
13521aeda8abSMatthias Seidel         | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
13531aeda8abSMatthias Seidel         | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
13541aeda8abSMatthias Seidel         | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
13551aeda8abSMatthias Seidel         | chorusrdb* | cegcc* | glidix* \
13561aeda8abSMatthias Seidel         | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
13571aeda8abSMatthias Seidel         | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
13581aeda8abSMatthias Seidel         | linux-newlib* | linux-musl* | linux-uclibc* \
13591aeda8abSMatthias Seidel         | uxpv* | beos* | mpeix* | udk* | moxiebox* \
13601aeda8abSMatthias Seidel         | interix* | uwin* | mks* | rhapsody* | darwin* \
13611aeda8abSMatthias Seidel         | openstep* | oskit* | conix* | pw32* | nonstopux* \
13621aeda8abSMatthias Seidel         | storm-chaos* | tops10* | tenex* | tops20* | its* \
13631aeda8abSMatthias Seidel         | os2* | vos* | palmos* | uclinux* | nucleus* \
13641aeda8abSMatthias Seidel         | morphos* | superux* | rtmk* | windiss* \
13651aeda8abSMatthias Seidel         | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
13661aeda8abSMatthias Seidel         | skyos* | haiku* | rdos* | toppers* | drops* | es* \
13671aeda8abSMatthias Seidel         | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
1368*aa9f3106Smseidel         | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
1369*aa9f3106Smseidel         | nsk* | powerunix)
1370cdf0e10cSrcweir    # Remember, each alternative MUST END IN *, to match a version number.
1371cdf0e10cSrcweir        ;;
13721aeda8abSMatthias Seidel    qnx*)
13731aeda8abSMatthias Seidel        case $cpu in
13741aeda8abSMatthias Seidel            x86 | i*86)
1375cdf0e10cSrcweir            ;;
1376cdf0e10cSrcweir            *)
13771aeda8abSMatthias Seidel            os=nto-$os
1378cdf0e10cSrcweir            ;;
1379cdf0e10cSrcweir        esac
1380cdf0e10cSrcweir        ;;
13811aeda8abSMatthias Seidel    hiux*)
13821aeda8abSMatthias Seidel        os=hiuxwe2
1383cdf0e10cSrcweir        ;;
13841aeda8abSMatthias Seidel    nto-qnx*)
13851aeda8abSMatthias Seidel        ;;
13861aeda8abSMatthias Seidel    nto*)
1387cdf0e10cSrcweir        os=`echo $os | sed -e 's|nto|nto-qnx|'`
1388cdf0e10cSrcweir        ;;
13891aeda8abSMatthias Seidel    sim | xray | os68k* | v88r* \
13901aeda8abSMatthias Seidel        | windows* | osx | abug | netware* | os9* \
13911aeda8abSMatthias Seidel        | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
1392cdf0e10cSrcweir        ;;
13931aeda8abSMatthias Seidel    linux-dietlibc)
13941aeda8abSMatthias Seidel        os=linux-dietlibc
1395cdf0e10cSrcweir        ;;
13961aeda8abSMatthias Seidel    linux*)
1397cdf0e10cSrcweir        os=`echo $os | sed -e 's|linux|linux-gnu|'`
1398cdf0e10cSrcweir        ;;
13991aeda8abSMatthias Seidel    lynx*178)
14001aeda8abSMatthias Seidel        os=lynxos178
14011aeda8abSMatthias Seidel        ;;
14021aeda8abSMatthias Seidel    lynx*5)
14031aeda8abSMatthias Seidel        os=lynxos5
14041aeda8abSMatthias Seidel        ;;
14051aeda8abSMatthias Seidel    lynx*)
14061aeda8abSMatthias Seidel        os=lynxos
14071aeda8abSMatthias Seidel        ;;
14081aeda8abSMatthias Seidel    mac*)
14091aeda8abSMatthias Seidel        os=`echo "$os" | sed -e 's|mac|macos|'`
14101aeda8abSMatthias Seidel        ;;
14111aeda8abSMatthias Seidel    opened*)
14121aeda8abSMatthias Seidel        os=openedition
14131aeda8abSMatthias Seidel        ;;
14141aeda8abSMatthias Seidel    os400*)
14151aeda8abSMatthias Seidel        os=os400
14161aeda8abSMatthias Seidel        ;;
14171aeda8abSMatthias Seidel    sunos5*)
14181a5d95c5SMatthias Seidel        os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
1419cdf0e10cSrcweir        ;;
14201aeda8abSMatthias Seidel    sunos6*)
14211a5d95c5SMatthias Seidel        os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
1422cdf0e10cSrcweir        ;;
14231aeda8abSMatthias Seidel    wince*)
14241aeda8abSMatthias Seidel        os=wince
1425cdf0e10cSrcweir        ;;
14261aeda8abSMatthias Seidel    utek*)
14271aeda8abSMatthias Seidel        os=bsd
1428187b4248SPedro Giffuni        ;;
14291aeda8abSMatthias Seidel    dynix*)
14301aeda8abSMatthias Seidel        os=bsd
1431cdf0e10cSrcweir        ;;
14321aeda8abSMatthias Seidel    acis*)
14331aeda8abSMatthias Seidel        os=aos
1434cdf0e10cSrcweir        ;;
14351aeda8abSMatthias Seidel    atheos*)
14361aeda8abSMatthias Seidel        os=atheos
1437cdf0e10cSrcweir        ;;
14381aeda8abSMatthias Seidel    syllable*)
14391aeda8abSMatthias Seidel        os=syllable
1440cdf0e10cSrcweir        ;;
14411aeda8abSMatthias Seidel    386bsd)
14421aeda8abSMatthias Seidel        os=bsd
1443cdf0e10cSrcweir        ;;
14441aeda8abSMatthias Seidel    ctix* | uts*)
14451aeda8abSMatthias Seidel        os=sysv
1446187b4248SPedro Giffuni        ;;
14471aeda8abSMatthias Seidel    nova*)
14481aeda8abSMatthias Seidel        os=rtmk-nova
1449cdf0e10cSrcweir        ;;
14501aeda8abSMatthias Seidel    ns2)
14511aeda8abSMatthias Seidel        os=nextstep2
1452cdf0e10cSrcweir        ;;
1453cdf0e10cSrcweir    # Preserve the version number of sinix5.
14541aeda8abSMatthias Seidel    sinix5.*)
1455cdf0e10cSrcweir        os=`echo $os | sed -e 's|sinix|sysv|'`
1456cdf0e10cSrcweir        ;;
14571aeda8abSMatthias Seidel    sinix*)
14581aeda8abSMatthias Seidel        os=sysv4
1459cdf0e10cSrcweir        ;;
14601aeda8abSMatthias Seidel    tpf*)
14611aeda8abSMatthias Seidel        os=tpf
1462187b4248SPedro Giffuni        ;;
14631aeda8abSMatthias Seidel    triton*)
14641aeda8abSMatthias Seidel        os=sysv3
1465cdf0e10cSrcweir        ;;
14661aeda8abSMatthias Seidel    oss*)
14671aeda8abSMatthias Seidel        os=sysv3
1468cdf0e10cSrcweir        ;;
14691aeda8abSMatthias Seidel    svr4*)
14701aeda8abSMatthias Seidel        os=sysv4
1471cdf0e10cSrcweir        ;;
14721aeda8abSMatthias Seidel    svr3)
14731aeda8abSMatthias Seidel        os=sysv3
1474cdf0e10cSrcweir        ;;
14751aeda8abSMatthias Seidel    sysvr4)
14761aeda8abSMatthias Seidel        os=sysv4
1477cdf0e10cSrcweir        ;;
14781aeda8abSMatthias Seidel    # This must come after sysvr4.
14791aeda8abSMatthias Seidel    sysv*)
1480cdf0e10cSrcweir        ;;
14811aeda8abSMatthias Seidel    ose*)
14821aeda8abSMatthias Seidel        os=ose
1483cdf0e10cSrcweir        ;;
14841aeda8abSMatthias Seidel    *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
14851aeda8abSMatthias Seidel        os=mint
1486cdf0e10cSrcweir        ;;
14871aeda8abSMatthias Seidel    zvmoe)
14881aeda8abSMatthias Seidel        os=zvmoe
1489187b4248SPedro Giffuni        ;;
14901aeda8abSMatthias Seidel    dicos*)
14911aeda8abSMatthias Seidel        os=dicos
1492187b4248SPedro Giffuni        ;;
14931aeda8abSMatthias Seidel    pikeos*)
149486278b1cSMatthias Seidel        # Until real need of OS specific support for
149586278b1cSMatthias Seidel        # particular features comes up, bare metal
149686278b1cSMatthias Seidel        # configurations are quite functional.
14971aeda8abSMatthias Seidel        case $cpu in
149886278b1cSMatthias Seidel            arm*)
14991aeda8abSMatthias Seidel            os=eabi
150086278b1cSMatthias Seidel            ;;
150186278b1cSMatthias Seidel            *)
15021aeda8abSMatthias Seidel            os=elf
150386278b1cSMatthias Seidel            ;;
150486278b1cSMatthias Seidel        esac
150586278b1cSMatthias Seidel        ;;
15061aeda8abSMatthias Seidel    nacl*)
1507187b4248SPedro Giffuni        ;;
15081aeda8abSMatthias Seidel    ios)
1509ee1eb700SMatthias Seidel        ;;
15101aeda8abSMatthias Seidel    none)
15111aeda8abSMatthias Seidel        ;;
15121aeda8abSMatthias Seidel    *-eabi)
1513cdf0e10cSrcweir        ;;
1514cdf0e10cSrcweir    *)
15151a5d95c5SMatthias Seidel        echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
1516cdf0e10cSrcweir        exit 1
1517cdf0e10cSrcweir        ;;
1518cdf0e10cSrcweiresac
1519cdf0e10cSrcweirelse
1520cdf0e10cSrcweir
1521cdf0e10cSrcweir# Here we handle the default operating systems that come with various machines.
1522cdf0e10cSrcweir# The value should be what the vendor currently ships out the door with their
1523cdf0e10cSrcweir# machine or put another way, the most popular os provided with the machine.
1524cdf0e10cSrcweir
1525cdf0e10cSrcweir# Note that if you're going to try to match "-MANUFACTURER" here (say,
1526cdf0e10cSrcweir# "-sun"), then you have to tell the case statement up towards the top
1527cdf0e10cSrcweir# that MANUFACTURER isn't an operating system.  Otherwise, code above
1528cdf0e10cSrcweir# will signal an error saying that MANUFACTURER isn't an operating
1529cdf0e10cSrcweir# system, and we'll never get to this point.
1530cdf0e10cSrcweir
15311aeda8abSMatthias Seidelcase $cpu-$vendor in
1532187b4248SPedro Giffuni    score-*)
15331aeda8abSMatthias Seidel        os=elf
1534187b4248SPedro Giffuni        ;;
1535187b4248SPedro Giffuni    spu-*)
15361aeda8abSMatthias Seidel        os=elf
1537187b4248SPedro Giffuni        ;;
1538cdf0e10cSrcweir    *-acorn)
15391aeda8abSMatthias Seidel        os=riscix1.2
1540cdf0e10cSrcweir        ;;
1541cdf0e10cSrcweir    arm*-rebel)
15421aeda8abSMatthias Seidel        os=linux
1543cdf0e10cSrcweir        ;;
1544cdf0e10cSrcweir    arm*-semi)
15451aeda8abSMatthias Seidel        os=aout
1546cdf0e10cSrcweir        ;;
1547cdf0e10cSrcweir    c4x-* | tic4x-*)
15481aeda8abSMatthias Seidel        os=coff
1549cdf0e10cSrcweir        ;;
1550ee1eb700SMatthias Seidel    c8051-*)
15511aeda8abSMatthias Seidel        os=elf
15521aeda8abSMatthias Seidel        ;;
15531aeda8abSMatthias Seidel    clipper-intergraph)
15541aeda8abSMatthias Seidel        os=clix
1555ee1eb700SMatthias Seidel        ;;
1556ee1eb700SMatthias Seidel    hexagon-*)
15571aeda8abSMatthias Seidel        os=elf
1558ee1eb700SMatthias Seidel        ;;
1559ee1eb700SMatthias Seidel    tic54x-*)
15601aeda8abSMatthias Seidel        os=coff
1561ee1eb700SMatthias Seidel        ;;
1562ee1eb700SMatthias Seidel    tic55x-*)
15631aeda8abSMatthias Seidel        os=coff
1564ee1eb700SMatthias Seidel        ;;
1565ee1eb700SMatthias Seidel    tic6x-*)
15661aeda8abSMatthias Seidel        os=coff
1567ee1eb700SMatthias Seidel        ;;
1568cdf0e10cSrcweir    # This must come before the *-dec entry.
1569cdf0e10cSrcweir    pdp10-*)
15701aeda8abSMatthias Seidel        os=tops20
1571cdf0e10cSrcweir        ;;
1572cdf0e10cSrcweir    pdp11-*)
15731aeda8abSMatthias Seidel        os=none
1574cdf0e10cSrcweir        ;;
1575cdf0e10cSrcweir    *-dec | vax-*)
15761aeda8abSMatthias Seidel        os=ultrix4.2
1577cdf0e10cSrcweir        ;;
1578cdf0e10cSrcweir    m68*-apollo)
15791aeda8abSMatthias Seidel        os=domain
1580cdf0e10cSrcweir        ;;
1581cdf0e10cSrcweir    i386-sun)
15821aeda8abSMatthias Seidel        os=sunos4.0.2
1583cdf0e10cSrcweir        ;;
1584cdf0e10cSrcweir    m68000-sun)
15851aeda8abSMatthias Seidel        os=sunos3
1586cdf0e10cSrcweir        ;;
1587cdf0e10cSrcweir    m68*-cisco)
15881aeda8abSMatthias Seidel        os=aout
1589cdf0e10cSrcweir        ;;
1590187b4248SPedro Giffuni    mep-*)
15911aeda8abSMatthias Seidel        os=elf
1592187b4248SPedro Giffuni        ;;
1593cdf0e10cSrcweir    mips*-cisco)
15941aeda8abSMatthias Seidel        os=elf
1595cdf0e10cSrcweir        ;;
1596cdf0e10cSrcweir    mips*-*)
15971aeda8abSMatthias Seidel        os=elf
1598cdf0e10cSrcweir        ;;
1599cdf0e10cSrcweir    or32-*)
16001aeda8abSMatthias Seidel        os=coff
1601cdf0e10cSrcweir        ;;
1602cdf0e10cSrcweir    *-tti)  # must be before sparc entry or we get the wrong os.
16031aeda8abSMatthias Seidel        os=sysv3
1604cdf0e10cSrcweir        ;;
1605cdf0e10cSrcweir    sparc-* | *-sun)
16061aeda8abSMatthias Seidel        os=sunos4.1.1
1607cdf0e10cSrcweir        ;;
1608ee1eb700SMatthias Seidel    pru-*)
16091aeda8abSMatthias Seidel        os=elf
1610ee1eb700SMatthias Seidel        ;;
1611cdf0e10cSrcweir    *-be)
16121aeda8abSMatthias Seidel        os=beos
1613cdf0e10cSrcweir        ;;
1614cdf0e10cSrcweir    *-ibm)
16151aeda8abSMatthias Seidel        os=aix
1616cdf0e10cSrcweir        ;;
1617187b4248SPedro Giffuni    *-knuth)
16181aeda8abSMatthias Seidel        os=mmixware
1619187b4248SPedro Giffuni        ;;
1620cdf0e10cSrcweir    *-wec)
16211aeda8abSMatthias Seidel        os=proelf
1622cdf0e10cSrcweir        ;;
1623cdf0e10cSrcweir    *-winbond)
16241aeda8abSMatthias Seidel        os=proelf
1625cdf0e10cSrcweir        ;;
1626cdf0e10cSrcweir    *-oki)
16271aeda8abSMatthias Seidel        os=proelf
1628cdf0e10cSrcweir        ;;
1629cdf0e10cSrcweir    *-hp)
16301aeda8abSMatthias Seidel        os=hpux
1631cdf0e10cSrcweir        ;;
1632cdf0e10cSrcweir    *-hitachi)
16331aeda8abSMatthias Seidel        os=hiux
1634cdf0e10cSrcweir        ;;
1635cdf0e10cSrcweir    i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
16361aeda8abSMatthias Seidel        os=sysv
1637cdf0e10cSrcweir        ;;
1638cdf0e10cSrcweir    *-cbm)
16391aeda8abSMatthias Seidel        os=amigaos
1640cdf0e10cSrcweir        ;;
1641cdf0e10cSrcweir    *-dg)
16421aeda8abSMatthias Seidel        os=dgux
1643cdf0e10cSrcweir        ;;
1644cdf0e10cSrcweir    *-dolphin)
16451aeda8abSMatthias Seidel        os=sysv3
1646cdf0e10cSrcweir        ;;
1647cdf0e10cSrcweir    m68k-ccur)
16481aeda8abSMatthias Seidel        os=rtu
1649cdf0e10cSrcweir        ;;
1650cdf0e10cSrcweir    m88k-omron*)
16511aeda8abSMatthias Seidel        os=luna
1652cdf0e10cSrcweir        ;;
1653cdf0e10cSrcweir    *-next)
16541aeda8abSMatthias Seidel        os=nextstep
1655cdf0e10cSrcweir        ;;
1656cdf0e10cSrcweir    *-sequent)
16571aeda8abSMatthias Seidel        os=ptx
1658cdf0e10cSrcweir        ;;
1659cdf0e10cSrcweir    *-crds)
16601aeda8abSMatthias Seidel        os=unos
1661cdf0e10cSrcweir        ;;
1662cdf0e10cSrcweir    *-ns)
16631aeda8abSMatthias Seidel        os=genix
1664cdf0e10cSrcweir        ;;
1665cdf0e10cSrcweir    i370-*)
16661aeda8abSMatthias Seidel        os=mvs
1667cdf0e10cSrcweir        ;;
1668cdf0e10cSrcweir    *-gould)
16691aeda8abSMatthias Seidel        os=sysv
1670cdf0e10cSrcweir        ;;
1671cdf0e10cSrcweir    *-highlevel)
16721aeda8abSMatthias Seidel        os=bsd
1673cdf0e10cSrcweir        ;;
1674cdf0e10cSrcweir    *-encore)
16751aeda8abSMatthias Seidel        os=bsd
1676cdf0e10cSrcweir        ;;
1677cdf0e10cSrcweir    *-sgi)
16781aeda8abSMatthias Seidel        os=irix
1679cdf0e10cSrcweir        ;;
1680cdf0e10cSrcweir    *-siemens)
16811aeda8abSMatthias Seidel        os=sysv4
1682cdf0e10cSrcweir        ;;
1683cdf0e10cSrcweir    *-masscomp)
16841aeda8abSMatthias Seidel        os=rtu
1685cdf0e10cSrcweir        ;;
1686cdf0e10cSrcweir    f30[01]-fujitsu | f700-fujitsu)
16871aeda8abSMatthias Seidel        os=uxpv
1688cdf0e10cSrcweir        ;;
1689cdf0e10cSrcweir    *-rom68k)
16901aeda8abSMatthias Seidel        os=coff
1691cdf0e10cSrcweir        ;;
1692cdf0e10cSrcweir    *-*bug)
16931aeda8abSMatthias Seidel        os=coff
1694cdf0e10cSrcweir        ;;
1695cdf0e10cSrcweir    *-apple)
16961aeda8abSMatthias Seidel        os=macos
1697cdf0e10cSrcweir        ;;
1698cdf0e10cSrcweir    *-atari*)
16991aeda8abSMatthias Seidel        os=mint
17001aeda8abSMatthias Seidel        ;;
17011aeda8abSMatthias Seidel    *-wrs)
17021aeda8abSMatthias Seidel        os=vxworks
1703cdf0e10cSrcweir        ;;
1704cdf0e10cSrcweir    *)
17051aeda8abSMatthias Seidel        os=none
1706cdf0e10cSrcweir        ;;
1707cdf0e10cSrcweiresac
1708cdf0e10cSrcweirfi
1709cdf0e10cSrcweir
1710cdf0e10cSrcweir# Here we handle the case where we know the os, and the CPU type, but not the
1711cdf0e10cSrcweir# manufacturer.  We pick the logical manufacturer.
17121aeda8abSMatthias Seidelcase $vendor in
17131aeda8abSMatthias Seidel    unknown)
1714cdf0e10cSrcweir        case $os in
17151aeda8abSMatthias Seidel            riscix*)
1716cdf0e10cSrcweir                vendor=acorn
1717cdf0e10cSrcweir                ;;
17181aeda8abSMatthias Seidel            sunos*)
1719cdf0e10cSrcweir                vendor=sun
1720cdf0e10cSrcweir                ;;
17211aeda8abSMatthias Seidel            cnk*|-aix*)
1722cdf0e10cSrcweir                vendor=ibm
1723cdf0e10cSrcweir                ;;
17241aeda8abSMatthias Seidel            beos*)
1725cdf0e10cSrcweir                vendor=be
1726cdf0e10cSrcweir                ;;
17271aeda8abSMatthias Seidel            hpux*)
1728cdf0e10cSrcweir                vendor=hp
1729cdf0e10cSrcweir                ;;
17301aeda8abSMatthias Seidel            mpeix*)
1731cdf0e10cSrcweir                vendor=hp
1732cdf0e10cSrcweir                ;;
17331aeda8abSMatthias Seidel            hiux*)
1734cdf0e10cSrcweir                vendor=hitachi
1735cdf0e10cSrcweir                ;;
17361aeda8abSMatthias Seidel            unos*)
1737cdf0e10cSrcweir                vendor=crds
1738cdf0e10cSrcweir                ;;
17391aeda8abSMatthias Seidel            dgux*)
1740cdf0e10cSrcweir                vendor=dg
1741cdf0e10cSrcweir                ;;
17421aeda8abSMatthias Seidel            luna*)
1743cdf0e10cSrcweir                vendor=omron
1744cdf0e10cSrcweir                ;;
17451aeda8abSMatthias Seidel            genix*)
1746cdf0e10cSrcweir                vendor=ns
1747cdf0e10cSrcweir                ;;
17481aeda8abSMatthias Seidel            clix*)
17491aeda8abSMatthias Seidel                vendor=intergraph
17501aeda8abSMatthias Seidel                ;;
17511aeda8abSMatthias Seidel            mvs* | opened*)
1752cdf0e10cSrcweir                vendor=ibm
1753cdf0e10cSrcweir                ;;
17541aeda8abSMatthias Seidel            os400*)
1755187b4248SPedro Giffuni                vendor=ibm
1756187b4248SPedro Giffuni                ;;
17571aeda8abSMatthias Seidel            ptx*)
1758cdf0e10cSrcweir                vendor=sequent
1759cdf0e10cSrcweir                ;;
17601aeda8abSMatthias Seidel            tpf*)
1761187b4248SPedro Giffuni                vendor=ibm
1762187b4248SPedro Giffuni                ;;
17631aeda8abSMatthias Seidel            vxsim* | vxworks* | windiss*)
1764cdf0e10cSrcweir                vendor=wrs
1765cdf0e10cSrcweir                ;;
17661aeda8abSMatthias Seidel            aux*)
1767cdf0e10cSrcweir                vendor=apple
1768cdf0e10cSrcweir                ;;
17691aeda8abSMatthias Seidel            hms*)
1770cdf0e10cSrcweir                vendor=hitachi
1771cdf0e10cSrcweir                ;;
17721aeda8abSMatthias Seidel            mpw* | macos*)
1773cdf0e10cSrcweir                vendor=apple
1774cdf0e10cSrcweir                ;;
17751aeda8abSMatthias Seidel            *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1776cdf0e10cSrcweir                vendor=atari
1777cdf0e10cSrcweir                ;;
17781aeda8abSMatthias Seidel            vos*)
1779cdf0e10cSrcweir                vendor=stratus
1780cdf0e10cSrcweir                ;;
1781cdf0e10cSrcweir        esac
1782cdf0e10cSrcweir        ;;
1783cdf0e10cSrcweiresac
1784cdf0e10cSrcweir
17851aeda8abSMatthias Seidelecho "$cpu-$vendor-$os"
1786187b4248SPedro Giffuniexit
1787cdf0e10cSrcweir
1788cdf0e10cSrcweir# Local variables:
17891a5d95c5SMatthias Seidel# eval: (add-hook 'before-save-hook 'time-stamp)
1790cdf0e10cSrcweir# time-stamp-start: "timestamp='"
1791cdf0e10cSrcweir# time-stamp-format: "%:y-%02m-%02d"
1792cdf0e10cSrcweir# time-stamp-end: "'"
1793cdf0e10cSrcweir# End:
1794