12c7c4e3dSmrg#! /bin/sh 22c7c4e3dSmrg# Configuration validation subroutine script. 3c1e8faa6Smrg# Copyright 1992-2024 Free Software Foundation, Inc. 42c7c4e3dSmrg 53458e6c2Smrg# shellcheck disable=SC2006,SC2268 # see below for rationale 63458e6c2Smrg 7c1e8faa6Smrgtimestamp='2024-01-01' 82c7c4e3dSmrg 92becc446Smrg# This file is free software; you can redistribute it and/or modify it 102becc446Smrg# under the terms of the GNU General Public License as published by 11c1e8faa6Smrg# the Free Software Foundation, either version 3 of the License, or 122c7c4e3dSmrg# (at your option) any later version. 132c7c4e3dSmrg# 142becc446Smrg# This program is distributed in the hope that it will be useful, but 152becc446Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of 162becc446Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 172becc446Smrg# General Public License for more details. 182c7c4e3dSmrg# 192c7c4e3dSmrg# You should have received a copy of the GNU General Public License 203458e6c2Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>. 218650bb69Smrg# 222c7c4e3dSmrg# As a special exception to the GNU General Public License, if you 232c7c4e3dSmrg# distribute this file as part of a program that contains a 242c7c4e3dSmrg# configuration script generated by Autoconf, you may include it under 252becc446Smrg# the same distribution terms that you use for the rest of that 262becc446Smrg# program. This Exception is an additional permission under section 7 272becc446Smrg# of the GNU General Public License, version 3 ("GPLv3"). 282c7c4e3dSmrg 298650bb69Smrg 302becc446Smrg# Please send patches to <config-patches@gnu.org>. 312c7c4e3dSmrg# 322c7c4e3dSmrg# Configuration subroutine to validate and canonicalize a configuration type. 332c7c4e3dSmrg# Supply the specified configuration type as an argument. 342c7c4e3dSmrg# If it is invalid, we print an error message on stderr and exit with code 1. 352c7c4e3dSmrg# Otherwise, we print the canonical config type on stdout and succeed. 362c7c4e3dSmrg 3716d7e2f1Smrg# You can get the latest version of this script from: 383458e6c2Smrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub 3916d7e2f1Smrg 402c7c4e3dSmrg# This file is supposed to be the same for all GNU packages 412c7c4e3dSmrg# and recognize all the CPU types, system types and aliases 422c7c4e3dSmrg# that are meaningful with *any* GNU software. 432c7c4e3dSmrg# Each package is responsible for reporting which valid configurations 442c7c4e3dSmrg# it does not support. The user should be able to distinguish 452c7c4e3dSmrg# a failure to support a valid configuration from a meaningless 462c7c4e3dSmrg# configuration. 472c7c4e3dSmrg 482c7c4e3dSmrg# The goal of this file is to map all the various variations of a given 492c7c4e3dSmrg# machine specification into a single specification in the form: 502c7c4e3dSmrg# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 512c7c4e3dSmrg# or in some cases, the newer four-part form: 522c7c4e3dSmrg# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 532c7c4e3dSmrg# It is wrong to echo any other type of specification. 542c7c4e3dSmrg 553458e6c2Smrg# The "shellcheck disable" line above the timestamp inhibits complaints 563458e6c2Smrg# about features and limitations of the classic Bourne shell that were 573458e6c2Smrg# superseded or lifted in POSIX. However, this script identifies a wide 583458e6c2Smrg# variety of pre-POSIX systems that do not have POSIX shells at all, and 593458e6c2Smrg# even some reasonably current systems (Solaris 10 as case-in-point) still 603458e6c2Smrg# have a pre-POSIX /bin/sh. 613458e6c2Smrg 622c7c4e3dSmrgme=`echo "$0" | sed -e 's,.*/,,'` 632c7c4e3dSmrg 642c7c4e3dSmrgusage="\ 653458e6c2SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 662c7c4e3dSmrg 672c7c4e3dSmrgCanonicalize a configuration name. 682c7c4e3dSmrg 693458e6c2SmrgOptions: 702c7c4e3dSmrg -h, --help print this help, then exit 712c7c4e3dSmrg -t, --time-stamp print date of last modification, then exit 722c7c4e3dSmrg -v, --version print version number, then exit 732c7c4e3dSmrg 742c7c4e3dSmrgReport bugs and patches to <config-patches@gnu.org>." 752c7c4e3dSmrg 762c7c4e3dSmrgversion="\ 772c7c4e3dSmrgGNU config.sub ($timestamp) 782c7c4e3dSmrg 79c1e8faa6SmrgCopyright 1992-2024 Free Software Foundation, Inc. 802c7c4e3dSmrg 812c7c4e3dSmrgThis is free software; see the source for copying conditions. There is NO 822c7c4e3dSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 832c7c4e3dSmrg 842c7c4e3dSmrghelp=" 85c1e8faa6SmrgTry '$me --help' for more information." 862c7c4e3dSmrg 872c7c4e3dSmrg# Parse command line 882c7c4e3dSmrgwhile test $# -gt 0 ; do 892c7c4e3dSmrg case $1 in 902c7c4e3dSmrg --time-stamp | --time* | -t ) 918650bb69Smrg echo "$timestamp" ; exit ;; 922c7c4e3dSmrg --version | -v ) 938650bb69Smrg echo "$version" ; exit ;; 942c7c4e3dSmrg --help | --h* | -h ) 958650bb69Smrg echo "$usage"; exit ;; 962c7c4e3dSmrg -- ) # Stop option processing 972c7c4e3dSmrg shift; break ;; 982c7c4e3dSmrg - ) # Use stdin as input. 992c7c4e3dSmrg break ;; 1002c7c4e3dSmrg -* ) 1013458e6c2Smrg echo "$me: invalid option $1$help" >&2 1022c7c4e3dSmrg exit 1 ;; 1032c7c4e3dSmrg 1042c7c4e3dSmrg *local*) 1052c7c4e3dSmrg # First pass through any local machine types. 1063458e6c2Smrg echo "$1" 1078650bb69Smrg exit ;; 1082c7c4e3dSmrg 1092c7c4e3dSmrg * ) 1102c7c4e3dSmrg break ;; 1112c7c4e3dSmrg esac 1122c7c4e3dSmrgdone 1132c7c4e3dSmrg 1142c7c4e3dSmrgcase $# in 1152c7c4e3dSmrg 0) echo "$me: missing argument$help" >&2 1162c7c4e3dSmrg exit 1;; 1172c7c4e3dSmrg 1) ;; 1182c7c4e3dSmrg *) echo "$me: too many arguments$help" >&2 1192c7c4e3dSmrg exit 1;; 1202c7c4e3dSmrgesac 1212c7c4e3dSmrg 1223458e6c2Smrg# Split fields of configuration type 1233458e6c2Smrg# shellcheck disable=SC2162 1243458e6c2Smrgsaved_IFS=$IFS 1253458e6c2SmrgIFS="-" read field1 field2 field3 field4 <<EOF 1263458e6c2Smrg$1 1273458e6c2SmrgEOF 1283458e6c2SmrgIFS=$saved_IFS 1292c7c4e3dSmrg 1303458e6c2Smrg# Separate into logical components for further validation 1313458e6c2Smrgcase $1 in 1323458e6c2Smrg *-*-*-*-*) 133c1e8faa6Smrg echo "Invalid configuration '$1': more than four components" >&2 1343458e6c2Smrg exit 1 1352c7c4e3dSmrg ;; 1363458e6c2Smrg *-*-*-*) 1373458e6c2Smrg basic_machine=$field1-$field2 1383458e6c2Smrg basic_os=$field3-$field4 1392c7c4e3dSmrg ;; 1403458e6c2Smrg *-*-*) 1413458e6c2Smrg # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two 1423458e6c2Smrg # parts 1433458e6c2Smrg maybe_os=$field2-$field3 1443458e6c2Smrg case $maybe_os in 1453458e6c2Smrg nto-qnx* | linux-* | uclinux-uclibc* \ 1463458e6c2Smrg | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ 1473458e6c2Smrg | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ 148c1e8faa6Smrg | storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \ 149c1e8faa6Smrg | windows-* ) 1503458e6c2Smrg basic_machine=$field1 1513458e6c2Smrg basic_os=$maybe_os 1523458e6c2Smrg ;; 1533458e6c2Smrg android-linux) 1543458e6c2Smrg basic_machine=$field1-unknown 1553458e6c2Smrg basic_os=linux-android 1563458e6c2Smrg ;; 1573458e6c2Smrg *) 1583458e6c2Smrg basic_machine=$field1-$field2 1593458e6c2Smrg basic_os=$field3 1603458e6c2Smrg ;; 1613458e6c2Smrg esac 1622c7c4e3dSmrg ;; 1633458e6c2Smrg *-*) 1643458e6c2Smrg # A lone config we happen to match not fitting any pattern 1653458e6c2Smrg case $field1-$field2 in 1663458e6c2Smrg decstation-3100) 1673458e6c2Smrg basic_machine=mips-dec 1683458e6c2Smrg basic_os= 1693458e6c2Smrg ;; 1703458e6c2Smrg *-*) 1713458e6c2Smrg # Second component is usually, but not always the OS 1723458e6c2Smrg case $field2 in 1733458e6c2Smrg # Prevent following clause from handling this valid os 1743458e6c2Smrg sun*os*) 1753458e6c2Smrg basic_machine=$field1 1763458e6c2Smrg basic_os=$field2 1773458e6c2Smrg ;; 1783458e6c2Smrg zephyr*) 1793458e6c2Smrg basic_machine=$field1-unknown 1803458e6c2Smrg basic_os=$field2 1813458e6c2Smrg ;; 1823458e6c2Smrg # Manufacturers 1833458e6c2Smrg dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ 1843458e6c2Smrg | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ 1853458e6c2Smrg | unicom* | ibm* | next | hp | isi* | apollo | altos* \ 1863458e6c2Smrg | convergent* | ncr* | news | 32* | 3600* | 3100* \ 1873458e6c2Smrg | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ 1883458e6c2Smrg | ultra | tti* | harris | dolphin | highlevel | gould \ 1893458e6c2Smrg | cbm | ns | masscomp | apple | axis | knuth | cray \ 1903458e6c2Smrg | microblaze* | sim | cisco \ 1913458e6c2Smrg | oki | wec | wrs | winbond) 1923458e6c2Smrg basic_machine=$field1-$field2 1933458e6c2Smrg basic_os= 1943458e6c2Smrg ;; 1953458e6c2Smrg *) 1963458e6c2Smrg basic_machine=$field1 1973458e6c2Smrg basic_os=$field2 1983458e6c2Smrg ;; 1993458e6c2Smrg esac 2003458e6c2Smrg ;; 2013458e6c2Smrg esac 2022c7c4e3dSmrg ;; 2033458e6c2Smrg *) 2043458e6c2Smrg # Convert single-component short-hands not valid as part of 2053458e6c2Smrg # multi-component configurations. 2063458e6c2Smrg case $field1 in 2073458e6c2Smrg 386bsd) 2083458e6c2Smrg basic_machine=i386-pc 2093458e6c2Smrg basic_os=bsd 2103458e6c2Smrg ;; 2113458e6c2Smrg a29khif) 2123458e6c2Smrg basic_machine=a29k-amd 2133458e6c2Smrg basic_os=udi 2143458e6c2Smrg ;; 2153458e6c2Smrg adobe68k) 2163458e6c2Smrg basic_machine=m68010-adobe 2173458e6c2Smrg basic_os=scout 2183458e6c2Smrg ;; 2193458e6c2Smrg alliant) 2203458e6c2Smrg basic_machine=fx80-alliant 2213458e6c2Smrg basic_os= 2223458e6c2Smrg ;; 2233458e6c2Smrg altos | altos3068) 2243458e6c2Smrg basic_machine=m68k-altos 2253458e6c2Smrg basic_os= 2263458e6c2Smrg ;; 2273458e6c2Smrg am29k) 2283458e6c2Smrg basic_machine=a29k-none 2293458e6c2Smrg basic_os=bsd 2303458e6c2Smrg ;; 2313458e6c2Smrg amdahl) 2323458e6c2Smrg basic_machine=580-amdahl 2333458e6c2Smrg basic_os=sysv 2343458e6c2Smrg ;; 2353458e6c2Smrg amiga) 2363458e6c2Smrg basic_machine=m68k-unknown 2373458e6c2Smrg basic_os= 2383458e6c2Smrg ;; 2393458e6c2Smrg amigaos | amigados) 2403458e6c2Smrg basic_machine=m68k-unknown 2413458e6c2Smrg basic_os=amigaos 2423458e6c2Smrg ;; 2433458e6c2Smrg amigaunix | amix) 2443458e6c2Smrg basic_machine=m68k-unknown 2453458e6c2Smrg basic_os=sysv4 2463458e6c2Smrg ;; 2473458e6c2Smrg apollo68) 2483458e6c2Smrg basic_machine=m68k-apollo 2493458e6c2Smrg basic_os=sysv 2503458e6c2Smrg ;; 2513458e6c2Smrg apollo68bsd) 2523458e6c2Smrg basic_machine=m68k-apollo 2533458e6c2Smrg basic_os=bsd 2543458e6c2Smrg ;; 2553458e6c2Smrg aros) 2563458e6c2Smrg basic_machine=i386-pc 2573458e6c2Smrg basic_os=aros 2583458e6c2Smrg ;; 2593458e6c2Smrg aux) 2603458e6c2Smrg basic_machine=m68k-apple 2613458e6c2Smrg basic_os=aux 2623458e6c2Smrg ;; 2633458e6c2Smrg balance) 2643458e6c2Smrg basic_machine=ns32k-sequent 2653458e6c2Smrg basic_os=dynix 2663458e6c2Smrg ;; 2673458e6c2Smrg blackfin) 2683458e6c2Smrg basic_machine=bfin-unknown 2693458e6c2Smrg basic_os=linux 2703458e6c2Smrg ;; 2713458e6c2Smrg cegcc) 2723458e6c2Smrg basic_machine=arm-unknown 2733458e6c2Smrg basic_os=cegcc 2743458e6c2Smrg ;; 2753458e6c2Smrg convex-c1) 2763458e6c2Smrg basic_machine=c1-convex 2773458e6c2Smrg basic_os=bsd 2783458e6c2Smrg ;; 2793458e6c2Smrg convex-c2) 2803458e6c2Smrg basic_machine=c2-convex 2813458e6c2Smrg basic_os=bsd 2823458e6c2Smrg ;; 2833458e6c2Smrg convex-c32) 2843458e6c2Smrg basic_machine=c32-convex 2853458e6c2Smrg basic_os=bsd 2863458e6c2Smrg ;; 2873458e6c2Smrg convex-c34) 2883458e6c2Smrg basic_machine=c34-convex 2893458e6c2Smrg basic_os=bsd 2903458e6c2Smrg ;; 2913458e6c2Smrg convex-c38) 2923458e6c2Smrg basic_machine=c38-convex 2933458e6c2Smrg basic_os=bsd 2943458e6c2Smrg ;; 2953458e6c2Smrg cray) 2963458e6c2Smrg basic_machine=j90-cray 2973458e6c2Smrg basic_os=unicos 2983458e6c2Smrg ;; 2993458e6c2Smrg crds | unos) 3003458e6c2Smrg basic_machine=m68k-crds 3013458e6c2Smrg basic_os= 3023458e6c2Smrg ;; 3033458e6c2Smrg da30) 3043458e6c2Smrg basic_machine=m68k-da30 3053458e6c2Smrg basic_os= 3063458e6c2Smrg ;; 3073458e6c2Smrg decstation | pmax | pmin | dec3100 | decstatn) 3083458e6c2Smrg basic_machine=mips-dec 3093458e6c2Smrg basic_os= 3103458e6c2Smrg ;; 3113458e6c2Smrg delta88) 3123458e6c2Smrg basic_machine=m88k-motorola 3133458e6c2Smrg basic_os=sysv3 3143458e6c2Smrg ;; 3153458e6c2Smrg dicos) 3163458e6c2Smrg basic_machine=i686-pc 3173458e6c2Smrg basic_os=dicos 3183458e6c2Smrg ;; 3193458e6c2Smrg djgpp) 3203458e6c2Smrg basic_machine=i586-pc 3213458e6c2Smrg basic_os=msdosdjgpp 3223458e6c2Smrg ;; 3233458e6c2Smrg ebmon29k) 3243458e6c2Smrg basic_machine=a29k-amd 3253458e6c2Smrg basic_os=ebmon 3263458e6c2Smrg ;; 3273458e6c2Smrg es1800 | OSE68k | ose68k | ose | OSE) 3283458e6c2Smrg basic_machine=m68k-ericsson 3293458e6c2Smrg basic_os=ose 3303458e6c2Smrg ;; 3313458e6c2Smrg gmicro) 3323458e6c2Smrg basic_machine=tron-gmicro 3333458e6c2Smrg basic_os=sysv 3343458e6c2Smrg ;; 3353458e6c2Smrg go32) 3363458e6c2Smrg basic_machine=i386-pc 3373458e6c2Smrg basic_os=go32 3383458e6c2Smrg ;; 3393458e6c2Smrg h8300hms) 3403458e6c2Smrg basic_machine=h8300-hitachi 3413458e6c2Smrg basic_os=hms 3423458e6c2Smrg ;; 3433458e6c2Smrg h8300xray) 3443458e6c2Smrg basic_machine=h8300-hitachi 3453458e6c2Smrg basic_os=xray 3463458e6c2Smrg ;; 3473458e6c2Smrg h8500hms) 3483458e6c2Smrg basic_machine=h8500-hitachi 3493458e6c2Smrg basic_os=hms 3503458e6c2Smrg ;; 3513458e6c2Smrg harris) 3523458e6c2Smrg basic_machine=m88k-harris 3533458e6c2Smrg basic_os=sysv3 3543458e6c2Smrg ;; 3553458e6c2Smrg hp300 | hp300hpux) 3563458e6c2Smrg basic_machine=m68k-hp 3573458e6c2Smrg basic_os=hpux 3583458e6c2Smrg ;; 3593458e6c2Smrg hp300bsd) 3603458e6c2Smrg basic_machine=m68k-hp 3613458e6c2Smrg basic_os=bsd 3623458e6c2Smrg ;; 3633458e6c2Smrg hppaosf) 3643458e6c2Smrg basic_machine=hppa1.1-hp 3653458e6c2Smrg basic_os=osf 3663458e6c2Smrg ;; 3673458e6c2Smrg hppro) 3683458e6c2Smrg basic_machine=hppa1.1-hp 3693458e6c2Smrg basic_os=proelf 3703458e6c2Smrg ;; 3713458e6c2Smrg i386mach) 3723458e6c2Smrg basic_machine=i386-mach 3733458e6c2Smrg basic_os=mach 3743458e6c2Smrg ;; 3753458e6c2Smrg isi68 | isi) 3763458e6c2Smrg basic_machine=m68k-isi 3773458e6c2Smrg basic_os=sysv 3783458e6c2Smrg ;; 3793458e6c2Smrg m68knommu) 3803458e6c2Smrg basic_machine=m68k-unknown 3813458e6c2Smrg basic_os=linux 3823458e6c2Smrg ;; 3833458e6c2Smrg magnum | m3230) 3843458e6c2Smrg basic_machine=mips-mips 3853458e6c2Smrg basic_os=sysv 3863458e6c2Smrg ;; 3873458e6c2Smrg merlin) 3883458e6c2Smrg basic_machine=ns32k-utek 3893458e6c2Smrg basic_os=sysv 3903458e6c2Smrg ;; 3913458e6c2Smrg mingw64) 3923458e6c2Smrg basic_machine=x86_64-pc 3933458e6c2Smrg basic_os=mingw64 3943458e6c2Smrg ;; 3953458e6c2Smrg mingw32) 3963458e6c2Smrg basic_machine=i686-pc 3973458e6c2Smrg basic_os=mingw32 3983458e6c2Smrg ;; 3993458e6c2Smrg mingw32ce) 4003458e6c2Smrg basic_machine=arm-unknown 4013458e6c2Smrg basic_os=mingw32ce 4023458e6c2Smrg ;; 4033458e6c2Smrg monitor) 4043458e6c2Smrg basic_machine=m68k-rom68k 4053458e6c2Smrg basic_os=coff 4063458e6c2Smrg ;; 4073458e6c2Smrg morphos) 4083458e6c2Smrg basic_machine=powerpc-unknown 4093458e6c2Smrg basic_os=morphos 4103458e6c2Smrg ;; 4113458e6c2Smrg moxiebox) 4123458e6c2Smrg basic_machine=moxie-unknown 4133458e6c2Smrg basic_os=moxiebox 4143458e6c2Smrg ;; 4153458e6c2Smrg msdos) 4163458e6c2Smrg basic_machine=i386-pc 4173458e6c2Smrg basic_os=msdos 4183458e6c2Smrg ;; 4193458e6c2Smrg msys) 4203458e6c2Smrg basic_machine=i686-pc 4213458e6c2Smrg basic_os=msys 4223458e6c2Smrg ;; 4233458e6c2Smrg mvs) 4243458e6c2Smrg basic_machine=i370-ibm 4253458e6c2Smrg basic_os=mvs 4263458e6c2Smrg ;; 4273458e6c2Smrg nacl) 4283458e6c2Smrg basic_machine=le32-unknown 4293458e6c2Smrg basic_os=nacl 4303458e6c2Smrg ;; 4313458e6c2Smrg ncr3000) 4323458e6c2Smrg basic_machine=i486-ncr 4333458e6c2Smrg basic_os=sysv4 4343458e6c2Smrg ;; 4353458e6c2Smrg netbsd386) 4363458e6c2Smrg basic_machine=i386-pc 4373458e6c2Smrg basic_os=netbsd 4383458e6c2Smrg ;; 4393458e6c2Smrg netwinder) 4403458e6c2Smrg basic_machine=armv4l-rebel 4413458e6c2Smrg basic_os=linux 4423458e6c2Smrg ;; 4433458e6c2Smrg news | news700 | news800 | news900) 4443458e6c2Smrg basic_machine=m68k-sony 4453458e6c2Smrg basic_os=newsos 4463458e6c2Smrg ;; 4473458e6c2Smrg news1000) 4483458e6c2Smrg basic_machine=m68030-sony 4493458e6c2Smrg basic_os=newsos 4503458e6c2Smrg ;; 4513458e6c2Smrg necv70) 4523458e6c2Smrg basic_machine=v70-nec 4533458e6c2Smrg basic_os=sysv 4543458e6c2Smrg ;; 4553458e6c2Smrg nh3000) 4563458e6c2Smrg basic_machine=m68k-harris 4573458e6c2Smrg basic_os=cxux 4583458e6c2Smrg ;; 4593458e6c2Smrg nh[45]000) 4603458e6c2Smrg basic_machine=m88k-harris 4613458e6c2Smrg basic_os=cxux 4623458e6c2Smrg ;; 4633458e6c2Smrg nindy960) 4643458e6c2Smrg basic_machine=i960-intel 4653458e6c2Smrg basic_os=nindy 4663458e6c2Smrg ;; 4673458e6c2Smrg mon960) 4683458e6c2Smrg basic_machine=i960-intel 4693458e6c2Smrg basic_os=mon960 4703458e6c2Smrg ;; 4713458e6c2Smrg nonstopux) 4723458e6c2Smrg basic_machine=mips-compaq 4733458e6c2Smrg basic_os=nonstopux 4743458e6c2Smrg ;; 4753458e6c2Smrg os400) 4763458e6c2Smrg basic_machine=powerpc-ibm 4773458e6c2Smrg basic_os=os400 4783458e6c2Smrg ;; 4793458e6c2Smrg OSE68000 | ose68000) 4803458e6c2Smrg basic_machine=m68000-ericsson 4813458e6c2Smrg basic_os=ose 4823458e6c2Smrg ;; 4833458e6c2Smrg os68k) 4843458e6c2Smrg basic_machine=m68k-none 4853458e6c2Smrg basic_os=os68k 4863458e6c2Smrg ;; 4873458e6c2Smrg paragon) 4883458e6c2Smrg basic_machine=i860-intel 4893458e6c2Smrg basic_os=osf 4903458e6c2Smrg ;; 4913458e6c2Smrg parisc) 4923458e6c2Smrg basic_machine=hppa-unknown 4933458e6c2Smrg basic_os=linux 4943458e6c2Smrg ;; 4953458e6c2Smrg psp) 4963458e6c2Smrg basic_machine=mipsallegrexel-sony 4973458e6c2Smrg basic_os=psp 4983458e6c2Smrg ;; 4993458e6c2Smrg pw32) 5003458e6c2Smrg basic_machine=i586-unknown 5013458e6c2Smrg basic_os=pw32 5023458e6c2Smrg ;; 5033458e6c2Smrg rdos | rdos64) 5043458e6c2Smrg basic_machine=x86_64-pc 5053458e6c2Smrg basic_os=rdos 5063458e6c2Smrg ;; 5073458e6c2Smrg rdos32) 5083458e6c2Smrg basic_machine=i386-pc 5093458e6c2Smrg basic_os=rdos 5103458e6c2Smrg ;; 5113458e6c2Smrg rom68k) 5123458e6c2Smrg basic_machine=m68k-rom68k 5133458e6c2Smrg basic_os=coff 5143458e6c2Smrg ;; 5153458e6c2Smrg sa29200) 5163458e6c2Smrg basic_machine=a29k-amd 5173458e6c2Smrg basic_os=udi 5183458e6c2Smrg ;; 5193458e6c2Smrg sei) 5203458e6c2Smrg basic_machine=mips-sei 5213458e6c2Smrg basic_os=seiux 5223458e6c2Smrg ;; 5233458e6c2Smrg sequent) 5243458e6c2Smrg basic_machine=i386-sequent 5253458e6c2Smrg basic_os= 5263458e6c2Smrg ;; 5273458e6c2Smrg sps7) 5283458e6c2Smrg basic_machine=m68k-bull 5293458e6c2Smrg basic_os=sysv2 5303458e6c2Smrg ;; 5313458e6c2Smrg st2000) 5323458e6c2Smrg basic_machine=m68k-tandem 5333458e6c2Smrg basic_os= 5343458e6c2Smrg ;; 5353458e6c2Smrg stratus) 5363458e6c2Smrg basic_machine=i860-stratus 5373458e6c2Smrg basic_os=sysv4 5383458e6c2Smrg ;; 5393458e6c2Smrg sun2) 5403458e6c2Smrg basic_machine=m68000-sun 5413458e6c2Smrg basic_os= 5423458e6c2Smrg ;; 5433458e6c2Smrg sun2os3) 5443458e6c2Smrg basic_machine=m68000-sun 5453458e6c2Smrg basic_os=sunos3 5463458e6c2Smrg ;; 5473458e6c2Smrg sun2os4) 5483458e6c2Smrg basic_machine=m68000-sun 5493458e6c2Smrg basic_os=sunos4 5503458e6c2Smrg ;; 5513458e6c2Smrg sun3) 5523458e6c2Smrg basic_machine=m68k-sun 5533458e6c2Smrg basic_os= 5543458e6c2Smrg ;; 5553458e6c2Smrg sun3os3) 5563458e6c2Smrg basic_machine=m68k-sun 5573458e6c2Smrg basic_os=sunos3 5583458e6c2Smrg ;; 5593458e6c2Smrg sun3os4) 5603458e6c2Smrg basic_machine=m68k-sun 5613458e6c2Smrg basic_os=sunos4 5623458e6c2Smrg ;; 5633458e6c2Smrg sun4) 5643458e6c2Smrg basic_machine=sparc-sun 5653458e6c2Smrg basic_os= 5663458e6c2Smrg ;; 5673458e6c2Smrg sun4os3) 5683458e6c2Smrg basic_machine=sparc-sun 5693458e6c2Smrg basic_os=sunos3 5703458e6c2Smrg ;; 5713458e6c2Smrg sun4os4) 5723458e6c2Smrg basic_machine=sparc-sun 5733458e6c2Smrg basic_os=sunos4 5743458e6c2Smrg ;; 5753458e6c2Smrg sun4sol2) 5763458e6c2Smrg basic_machine=sparc-sun 5773458e6c2Smrg basic_os=solaris2 5783458e6c2Smrg ;; 5793458e6c2Smrg sun386 | sun386i | roadrunner) 5803458e6c2Smrg basic_machine=i386-sun 5813458e6c2Smrg basic_os= 5823458e6c2Smrg ;; 5833458e6c2Smrg sv1) 5843458e6c2Smrg basic_machine=sv1-cray 5853458e6c2Smrg basic_os=unicos 5863458e6c2Smrg ;; 5873458e6c2Smrg symmetry) 5883458e6c2Smrg basic_machine=i386-sequent 5893458e6c2Smrg basic_os=dynix 5903458e6c2Smrg ;; 5913458e6c2Smrg t3e) 5923458e6c2Smrg basic_machine=alphaev5-cray 5933458e6c2Smrg basic_os=unicos 5943458e6c2Smrg ;; 5953458e6c2Smrg t90) 5963458e6c2Smrg basic_machine=t90-cray 5973458e6c2Smrg basic_os=unicos 5983458e6c2Smrg ;; 5993458e6c2Smrg toad1) 6003458e6c2Smrg basic_machine=pdp10-xkl 6013458e6c2Smrg basic_os=tops20 6023458e6c2Smrg ;; 6033458e6c2Smrg tpf) 6043458e6c2Smrg basic_machine=s390x-ibm 6053458e6c2Smrg basic_os=tpf 6063458e6c2Smrg ;; 6073458e6c2Smrg udi29k) 6083458e6c2Smrg basic_machine=a29k-amd 6093458e6c2Smrg basic_os=udi 6103458e6c2Smrg ;; 6113458e6c2Smrg ultra3) 6123458e6c2Smrg basic_machine=a29k-nyu 6133458e6c2Smrg basic_os=sym1 6143458e6c2Smrg ;; 6153458e6c2Smrg v810 | necv810) 6163458e6c2Smrg basic_machine=v810-nec 6173458e6c2Smrg basic_os=none 6183458e6c2Smrg ;; 6193458e6c2Smrg vaxv) 6203458e6c2Smrg basic_machine=vax-dec 6213458e6c2Smrg basic_os=sysv 6223458e6c2Smrg ;; 6233458e6c2Smrg vms) 6243458e6c2Smrg basic_machine=vax-dec 6253458e6c2Smrg basic_os=vms 6263458e6c2Smrg ;; 6273458e6c2Smrg vsta) 6283458e6c2Smrg basic_machine=i386-pc 6293458e6c2Smrg basic_os=vsta 6303458e6c2Smrg ;; 6313458e6c2Smrg vxworks960) 6323458e6c2Smrg basic_machine=i960-wrs 6333458e6c2Smrg basic_os=vxworks 6343458e6c2Smrg ;; 6353458e6c2Smrg vxworks68) 6363458e6c2Smrg basic_machine=m68k-wrs 6373458e6c2Smrg basic_os=vxworks 6383458e6c2Smrg ;; 6393458e6c2Smrg vxworks29k) 6403458e6c2Smrg basic_machine=a29k-wrs 6413458e6c2Smrg basic_os=vxworks 6423458e6c2Smrg ;; 6433458e6c2Smrg xbox) 6443458e6c2Smrg basic_machine=i686-pc 6453458e6c2Smrg basic_os=mingw32 6463458e6c2Smrg ;; 6473458e6c2Smrg ymp) 6483458e6c2Smrg basic_machine=ymp-cray 6493458e6c2Smrg basic_os=unicos 6503458e6c2Smrg ;; 6513458e6c2Smrg *) 6523458e6c2Smrg basic_machine=$1 6533458e6c2Smrg basic_os= 6543458e6c2Smrg ;; 6553458e6c2Smrg esac 6562c7c4e3dSmrg ;; 6572c7c4e3dSmrgesac 6582c7c4e3dSmrg 6593458e6c2Smrg# Decode 1-component or ad-hoc basic machines 6602c7c4e3dSmrgcase $basic_machine in 6613458e6c2Smrg # Here we handle the default manufacturer of certain CPU types. It is in 6623458e6c2Smrg # some cases the only manufacturer, in others, it is the most popular. 6633458e6c2Smrg w89k) 6643458e6c2Smrg cpu=hppa1.1 6653458e6c2Smrg vendor=winbond 6662becc446Smrg ;; 6673458e6c2Smrg op50n) 6683458e6c2Smrg cpu=hppa1.1 6693458e6c2Smrg vendor=oki 6702c7c4e3dSmrg ;; 6713458e6c2Smrg op60c) 6723458e6c2Smrg cpu=hppa1.1 6733458e6c2Smrg vendor=oki 6742c7c4e3dSmrg ;; 6753458e6c2Smrg ibm*) 6763458e6c2Smrg cpu=i370 6773458e6c2Smrg vendor=ibm 6788650bb69Smrg ;; 6793458e6c2Smrg orion105) 6803458e6c2Smrg cpu=clipper 6813458e6c2Smrg vendor=highlevel 6822becc446Smrg ;; 6833458e6c2Smrg mac | mpw | mac-mpw) 6843458e6c2Smrg cpu=m68k 6853458e6c2Smrg vendor=apple 6862becc446Smrg ;; 6873458e6c2Smrg pmac | pmac-mpw) 6883458e6c2Smrg cpu=powerpc 6893458e6c2Smrg vendor=apple 6902becc446Smrg ;; 6912becc446Smrg 6922c7c4e3dSmrg # Recognize the various machine names and aliases which stand 6932c7c4e3dSmrg # for a CPU type and a company and sometimes even an OS. 6942c7c4e3dSmrg 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 6953458e6c2Smrg cpu=m68000 6963458e6c2Smrg vendor=att 6972c7c4e3dSmrg ;; 6982c7c4e3dSmrg 3b*) 6993458e6c2Smrg cpu=we32k 7003458e6c2Smrg vendor=att 7018650bb69Smrg ;; 70216d7e2f1Smrg bluegene*) 7033458e6c2Smrg cpu=powerpc 7043458e6c2Smrg vendor=ibm 7053458e6c2Smrg basic_os=cnk 7062c7c4e3dSmrg ;; 7072c7c4e3dSmrg decsystem10* | dec10*) 7083458e6c2Smrg cpu=pdp10 7093458e6c2Smrg vendor=dec 7103458e6c2Smrg basic_os=tops10 7112c7c4e3dSmrg ;; 7122c7c4e3dSmrg decsystem20* | dec20*) 7133458e6c2Smrg cpu=pdp10 7143458e6c2Smrg vendor=dec 7153458e6c2Smrg basic_os=tops20 7162c7c4e3dSmrg ;; 7172c7c4e3dSmrg delta | 3300 | motorola-3300 | motorola-delta \ 7182c7c4e3dSmrg | 3300-motorola | delta-motorola) 7193458e6c2Smrg cpu=m68k 7203458e6c2Smrg vendor=motorola 7212c7c4e3dSmrg ;; 7223458e6c2Smrg dpx2*) 7233458e6c2Smrg cpu=m68k 7243458e6c2Smrg vendor=bull 7253458e6c2Smrg basic_os=sysv3 7262c7c4e3dSmrg ;; 7272c7c4e3dSmrg encore | umax | mmax) 7283458e6c2Smrg cpu=ns32k 7293458e6c2Smrg vendor=encore 7302c7c4e3dSmrg ;; 7313458e6c2Smrg elxsi) 7323458e6c2Smrg cpu=elxsi 7333458e6c2Smrg vendor=elxsi 7343458e6c2Smrg basic_os=${basic_os:-bsd} 7352c7c4e3dSmrg ;; 7362c7c4e3dSmrg fx2800) 7373458e6c2Smrg cpu=i860 7383458e6c2Smrg vendor=alliant 7392c7c4e3dSmrg ;; 7402c7c4e3dSmrg genix) 7413458e6c2Smrg cpu=ns32k 7423458e6c2Smrg vendor=ns 7432c7c4e3dSmrg ;; 7442c7c4e3dSmrg h3050r* | hiux*) 7453458e6c2Smrg cpu=hppa1.1 7463458e6c2Smrg vendor=hitachi 7473458e6c2Smrg basic_os=hiuxwe2 7482c7c4e3dSmrg ;; 7492c7c4e3dSmrg hp3k9[0-9][0-9] | hp9[0-9][0-9]) 7503458e6c2Smrg cpu=hppa1.0 7513458e6c2Smrg vendor=hp 7522c7c4e3dSmrg ;; 7532c7c4e3dSmrg hp9k2[0-9][0-9] | hp9k31[0-9]) 7543458e6c2Smrg cpu=m68000 7553458e6c2Smrg vendor=hp 7562c7c4e3dSmrg ;; 7572c7c4e3dSmrg hp9k3[2-9][0-9]) 7583458e6c2Smrg cpu=m68k 7593458e6c2Smrg vendor=hp 7602c7c4e3dSmrg ;; 7612c7c4e3dSmrg hp9k6[0-9][0-9] | hp6[0-9][0-9]) 7623458e6c2Smrg cpu=hppa1.0 7633458e6c2Smrg vendor=hp 7642c7c4e3dSmrg ;; 7652c7c4e3dSmrg hp9k7[0-79][0-9] | hp7[0-79][0-9]) 7663458e6c2Smrg cpu=hppa1.1 7673458e6c2Smrg vendor=hp 7682c7c4e3dSmrg ;; 7692c7c4e3dSmrg hp9k78[0-9] | hp78[0-9]) 7702c7c4e3dSmrg # FIXME: really hppa2.0-hp 7713458e6c2Smrg cpu=hppa1.1 7723458e6c2Smrg vendor=hp 7732c7c4e3dSmrg ;; 7742c7c4e3dSmrg hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 7752c7c4e3dSmrg # FIXME: really hppa2.0-hp 7763458e6c2Smrg cpu=hppa1.1 7773458e6c2Smrg vendor=hp 7782c7c4e3dSmrg ;; 7792c7c4e3dSmrg hp9k8[0-9][13679] | hp8[0-9][13679]) 7803458e6c2Smrg cpu=hppa1.1 7813458e6c2Smrg vendor=hp 7822c7c4e3dSmrg ;; 7832c7c4e3dSmrg hp9k8[0-9][0-9] | hp8[0-9][0-9]) 7843458e6c2Smrg cpu=hppa1.0 7853458e6c2Smrg vendor=hp 7862c7c4e3dSmrg ;; 7872c7c4e3dSmrg i*86v32) 7883458e6c2Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7893458e6c2Smrg vendor=pc 7903458e6c2Smrg basic_os=sysv32 7912c7c4e3dSmrg ;; 7922c7c4e3dSmrg i*86v4*) 7933458e6c2Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7943458e6c2Smrg vendor=pc 7953458e6c2Smrg basic_os=sysv4 7962c7c4e3dSmrg ;; 7972c7c4e3dSmrg i*86v) 7983458e6c2Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7993458e6c2Smrg vendor=pc 8003458e6c2Smrg basic_os=sysv 8012c7c4e3dSmrg ;; 8022c7c4e3dSmrg i*86sol2) 8033458e6c2Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 8043458e6c2Smrg vendor=pc 8053458e6c2Smrg basic_os=solaris2 8062c7c4e3dSmrg ;; 8073458e6c2Smrg j90 | j90-cray) 8083458e6c2Smrg cpu=j90 8093458e6c2Smrg vendor=cray 8103458e6c2Smrg basic_os=${basic_os:-unicos} 8112c7c4e3dSmrg ;; 8122c7c4e3dSmrg iris | iris4d) 8133458e6c2Smrg cpu=mips 8143458e6c2Smrg vendor=sgi 8153458e6c2Smrg case $basic_os in 8163458e6c2Smrg irix*) 8172c7c4e3dSmrg ;; 8182c7c4e3dSmrg *) 8193458e6c2Smrg basic_os=irix4 8202c7c4e3dSmrg ;; 8212c7c4e3dSmrg esac 8222c7c4e3dSmrg ;; 8232c7c4e3dSmrg miniframe) 8243458e6c2Smrg cpu=m68000 8253458e6c2Smrg vendor=convergent 8262becc446Smrg ;; 8273458e6c2Smrg *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) 8283458e6c2Smrg cpu=m68k 8293458e6c2Smrg vendor=atari 8303458e6c2Smrg basic_os=mint 8312c7c4e3dSmrg ;; 8322c7c4e3dSmrg news-3600 | risc-news) 8333458e6c2Smrg cpu=mips 8343458e6c2Smrg vendor=sony 8353458e6c2Smrg basic_os=newsos 8363458e6c2Smrg ;; 8373458e6c2Smrg next | m*-next) 8383458e6c2Smrg cpu=m68k 8393458e6c2Smrg vendor=next 8403458e6c2Smrg case $basic_os in 8413458e6c2Smrg openstep*) 8423458e6c2Smrg ;; 8433458e6c2Smrg nextstep*) 8442c7c4e3dSmrg ;; 8453458e6c2Smrg ns2*) 8463458e6c2Smrg basic_os=nextstep2 8472c7c4e3dSmrg ;; 8482c7c4e3dSmrg *) 8493458e6c2Smrg basic_os=nextstep3 8502c7c4e3dSmrg ;; 8512c7c4e3dSmrg esac 8522c7c4e3dSmrg ;; 8532c7c4e3dSmrg np1) 8543458e6c2Smrg cpu=np1 8553458e6c2Smrg vendor=gould 8562c7c4e3dSmrg ;; 8572c7c4e3dSmrg op50n-* | op60c-*) 8583458e6c2Smrg cpu=hppa1.1 8593458e6c2Smrg vendor=oki 8603458e6c2Smrg basic_os=proelf 8612c7c4e3dSmrg ;; 8622c7c4e3dSmrg pa-hitachi) 8633458e6c2Smrg cpu=hppa1.1 8643458e6c2Smrg vendor=hitachi 8653458e6c2Smrg basic_os=hiuxwe2 8668650bb69Smrg ;; 8672c7c4e3dSmrg pbd) 8683458e6c2Smrg cpu=sparc 8693458e6c2Smrg vendor=tti 8702c7c4e3dSmrg ;; 8712c7c4e3dSmrg pbb) 8723458e6c2Smrg cpu=m68k 8733458e6c2Smrg vendor=tti 8748650bb69Smrg ;; 8753458e6c2Smrg pc532) 8763458e6c2Smrg cpu=ns32k 8773458e6c2Smrg vendor=pc532 8782c7c4e3dSmrg ;; 8792c7c4e3dSmrg pn) 8803458e6c2Smrg cpu=pn 8813458e6c2Smrg vendor=gould 8822c7c4e3dSmrg ;; 8833458e6c2Smrg power) 8843458e6c2Smrg cpu=power 8853458e6c2Smrg vendor=ibm 8862c7c4e3dSmrg ;; 8872c7c4e3dSmrg ps2) 8883458e6c2Smrg cpu=i386 8893458e6c2Smrg vendor=ibm 8902c7c4e3dSmrg ;; 8912c7c4e3dSmrg rm[46]00) 8923458e6c2Smrg cpu=mips 8933458e6c2Smrg vendor=siemens 8942c7c4e3dSmrg ;; 8952c7c4e3dSmrg rtpc | rtpc-*) 8963458e6c2Smrg cpu=romp 8973458e6c2Smrg vendor=ibm 8988650bb69Smrg ;; 8993458e6c2Smrg sde) 9003458e6c2Smrg cpu=mipsisa32 9013458e6c2Smrg vendor=sde 9023458e6c2Smrg basic_os=${basic_os:-elf} 9032c7c4e3dSmrg ;; 9043458e6c2Smrg simso-wrs) 9053458e6c2Smrg cpu=sparclite 9063458e6c2Smrg vendor=wrs 9073458e6c2Smrg basic_os=vxworks 9082c7c4e3dSmrg ;; 9093458e6c2Smrg tower | tower-32) 9103458e6c2Smrg cpu=m68k 9113458e6c2Smrg vendor=ncr 9128650bb69Smrg ;; 9133458e6c2Smrg vpp*|vx|vx-*) 9143458e6c2Smrg cpu=f301 9153458e6c2Smrg vendor=fujitsu 9162c7c4e3dSmrg ;; 9173458e6c2Smrg w65) 9183458e6c2Smrg cpu=w65 9193458e6c2Smrg vendor=wdc 9202c7c4e3dSmrg ;; 9213458e6c2Smrg w89k-*) 9223458e6c2Smrg cpu=hppa1.1 9233458e6c2Smrg vendor=winbond 9243458e6c2Smrg basic_os=proelf 9252c7c4e3dSmrg ;; 9263458e6c2Smrg none) 9273458e6c2Smrg cpu=none 9283458e6c2Smrg vendor=none 9298650bb69Smrg ;; 9303458e6c2Smrg leon|leon[3-9]) 9313458e6c2Smrg cpu=sparc 9323458e6c2Smrg vendor=$basic_machine 9332c7c4e3dSmrg ;; 9343458e6c2Smrg leon-*|leon[3-9]-*) 9353458e6c2Smrg cpu=sparc 9363458e6c2Smrg vendor=`echo "$basic_machine" | sed 's/-.*//'` 9372c7c4e3dSmrg ;; 9383458e6c2Smrg 9393458e6c2Smrg *-*) 9403458e6c2Smrg # shellcheck disable=SC2162 9413458e6c2Smrg saved_IFS=$IFS 9423458e6c2Smrg IFS="-" read cpu vendor <<EOF 9433458e6c2Smrg$basic_machine 9443458e6c2SmrgEOF 9453458e6c2Smrg IFS=$saved_IFS 9462c7c4e3dSmrg ;; 947c1e8faa6Smrg # We use 'pc' rather than 'unknown' 9483458e6c2Smrg # because (1) that's what they normally are, and 9493458e6c2Smrg # (2) the word "unknown" tends to confuse beginning users. 9503458e6c2Smrg i*86 | x86_64) 9513458e6c2Smrg cpu=$basic_machine 9523458e6c2Smrg vendor=pc 9532c7c4e3dSmrg ;; 9543458e6c2Smrg # These rules are duplicated from below for sake of the special case above; 9553458e6c2Smrg # i.e. things that normalized to x86 arches should also default to "pc" 9563458e6c2Smrg pc98) 9573458e6c2Smrg cpu=i386 9583458e6c2Smrg vendor=pc 9592c7c4e3dSmrg ;; 9603458e6c2Smrg x64 | amd64) 9613458e6c2Smrg cpu=x86_64 9623458e6c2Smrg vendor=pc 9632c7c4e3dSmrg ;; 9643458e6c2Smrg # Recognize the basic CPU types without company name. 9653458e6c2Smrg *) 9663458e6c2Smrg cpu=$basic_machine 9673458e6c2Smrg vendor=unknown 9682becc446Smrg ;; 9693458e6c2Smrgesac 9703458e6c2Smrg 9713458e6c2Smrgunset -v basic_machine 9723458e6c2Smrg 9733458e6c2Smrg# Decode basic machines in the full and proper CPU-Company form. 9743458e6c2Smrgcase $cpu-$vendor in 9753458e6c2Smrg # Here we handle the default manufacturer of certain CPU types in canonical form. It is in 9763458e6c2Smrg # some cases the only manufacturer, in others, it is the most popular. 9773458e6c2Smrg craynv-unknown) 9783458e6c2Smrg vendor=cray 9793458e6c2Smrg basic_os=${basic_os:-unicosmp} 9802c7c4e3dSmrg ;; 9813458e6c2Smrg c90-unknown | c90-cray) 9823458e6c2Smrg vendor=cray 9833458e6c2Smrg basic_os=${Basic_os:-unicos} 9842c7c4e3dSmrg ;; 9853458e6c2Smrg fx80-unknown) 9863458e6c2Smrg vendor=alliant 9872c7c4e3dSmrg ;; 9883458e6c2Smrg romp-unknown) 9893458e6c2Smrg vendor=ibm 9902c7c4e3dSmrg ;; 9913458e6c2Smrg mmix-unknown) 9923458e6c2Smrg vendor=knuth 9932c7c4e3dSmrg ;; 9943458e6c2Smrg microblaze-unknown | microblazeel-unknown) 9953458e6c2Smrg vendor=xilinx 9962c7c4e3dSmrg ;; 9973458e6c2Smrg rs6000-unknown) 9983458e6c2Smrg vendor=ibm 9992c7c4e3dSmrg ;; 10003458e6c2Smrg vax-unknown) 10013458e6c2Smrg vendor=dec 10022c7c4e3dSmrg ;; 10033458e6c2Smrg pdp11-unknown) 10043458e6c2Smrg vendor=dec 10052c7c4e3dSmrg ;; 10063458e6c2Smrg we32k-unknown) 10073458e6c2Smrg vendor=att 10082c7c4e3dSmrg ;; 10093458e6c2Smrg cydra-unknown) 10103458e6c2Smrg vendor=cydrome 10112c7c4e3dSmrg ;; 10123458e6c2Smrg i370-ibm*) 10133458e6c2Smrg vendor=ibm 10142c7c4e3dSmrg ;; 10153458e6c2Smrg orion-unknown) 10163458e6c2Smrg vendor=highlevel 10172c7c4e3dSmrg ;; 10183458e6c2Smrg xps-unknown | xps100-unknown) 10193458e6c2Smrg cpu=xps100 10203458e6c2Smrg vendor=honeywell 10212c7c4e3dSmrg ;; 10223458e6c2Smrg 10233458e6c2Smrg # Here we normalize CPU types with a missing or matching vendor 1024c1e8faa6Smrg armh-unknown | armh-alt) 1025c1e8faa6Smrg cpu=armv7l 1026c1e8faa6Smrg vendor=alt 1027c1e8faa6Smrg basic_os=${basic_os:-linux-gnueabihf} 1028c1e8faa6Smrg ;; 10293458e6c2Smrg dpx20-unknown | dpx20-bull) 10303458e6c2Smrg cpu=rs6000 10313458e6c2Smrg vendor=bull 10323458e6c2Smrg basic_os=${basic_os:-bosx} 10332c7c4e3dSmrg ;; 10343458e6c2Smrg 10353458e6c2Smrg # Here we normalize CPU types irrespective of the vendor 10363458e6c2Smrg amd64-*) 10373458e6c2Smrg cpu=x86_64 10388650bb69Smrg ;; 10393458e6c2Smrg blackfin-*) 10403458e6c2Smrg cpu=bfin 10413458e6c2Smrg basic_os=linux 10422c7c4e3dSmrg ;; 10433458e6c2Smrg c54x-*) 10443458e6c2Smrg cpu=tic54x 10452c7c4e3dSmrg ;; 10463458e6c2Smrg c55x-*) 10473458e6c2Smrg cpu=tic55x 10482c7c4e3dSmrg ;; 10493458e6c2Smrg c6x-*) 10503458e6c2Smrg cpu=tic6x 10512c7c4e3dSmrg ;; 10523458e6c2Smrg e500v[12]-*) 10533458e6c2Smrg cpu=powerpc 10543458e6c2Smrg basic_os=${basic_os}"spe" 10558650bb69Smrg ;; 10563458e6c2Smrg mips3*-*) 10573458e6c2Smrg cpu=mips64 10582c7c4e3dSmrg ;; 10593458e6c2Smrg ms1-*) 10603458e6c2Smrg cpu=mt 10612c7c4e3dSmrg ;; 10623458e6c2Smrg m68knommu-*) 10633458e6c2Smrg cpu=m68k 10643458e6c2Smrg basic_os=linux 10652c7c4e3dSmrg ;; 10663458e6c2Smrg m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) 10673458e6c2Smrg cpu=s12z 10682c7c4e3dSmrg ;; 10693458e6c2Smrg openrisc-*) 10703458e6c2Smrg cpu=or32 10712c7c4e3dSmrg ;; 10723458e6c2Smrg parisc-*) 10733458e6c2Smrg cpu=hppa 10743458e6c2Smrg basic_os=linux 10752c7c4e3dSmrg ;; 10763458e6c2Smrg pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 10773458e6c2Smrg cpu=i586 10782c7c4e3dSmrg ;; 1079c1e8faa6Smrg pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*) 10803458e6c2Smrg cpu=i686 10812c7c4e3dSmrg ;; 10823458e6c2Smrg pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 10833458e6c2Smrg cpu=i686 10842c7c4e3dSmrg ;; 10853458e6c2Smrg pentium4-*) 10863458e6c2Smrg cpu=i786 10872c7c4e3dSmrg ;; 10883458e6c2Smrg pc98-*) 10893458e6c2Smrg cpu=i386 10902c7c4e3dSmrg ;; 10913458e6c2Smrg ppc-* | ppcbe-*) 10923458e6c2Smrg cpu=powerpc 10938650bb69Smrg ;; 10943458e6c2Smrg ppcle-* | powerpclittle-*) 10953458e6c2Smrg cpu=powerpcle 10962c7c4e3dSmrg ;; 10973458e6c2Smrg ppc64-*) 10983458e6c2Smrg cpu=powerpc64 10992becc446Smrg ;; 11003458e6c2Smrg ppc64le-* | powerpc64little-*) 11013458e6c2Smrg cpu=powerpc64le 11022c7c4e3dSmrg ;; 11033458e6c2Smrg sb1-*) 11043458e6c2Smrg cpu=mipsisa64sb1 11052c7c4e3dSmrg ;; 11063458e6c2Smrg sb1el-*) 11073458e6c2Smrg cpu=mipsisa64sb1el 11088650bb69Smrg ;; 11093458e6c2Smrg sh5e[lb]-*) 11103458e6c2Smrg cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` 11112c7c4e3dSmrg ;; 11123458e6c2Smrg spur-*) 11133458e6c2Smrg cpu=spur 11142c7c4e3dSmrg ;; 11153458e6c2Smrg strongarm-* | thumb-*) 11163458e6c2Smrg cpu=arm 11172c7c4e3dSmrg ;; 11183458e6c2Smrg tx39-*) 11193458e6c2Smrg cpu=mipstx39 11202c7c4e3dSmrg ;; 11213458e6c2Smrg tx39el-*) 11223458e6c2Smrg cpu=mipstx39el 11232c7c4e3dSmrg ;; 11243458e6c2Smrg x64-*) 11253458e6c2Smrg cpu=x86_64 11268650bb69Smrg ;; 11273458e6c2Smrg xscale-* | xscalee[bl]-*) 11283458e6c2Smrg cpu=`echo "$cpu" | sed 's/^xscale/arm/'` 11292c7c4e3dSmrg ;; 1130c1e8faa6Smrg arm64-* | aarch64le-*) 11313458e6c2Smrg cpu=aarch64 11322c7c4e3dSmrg ;; 11333458e6c2Smrg 11343458e6c2Smrg # Recognize the canonical CPU Types that limit and/or modify the 11353458e6c2Smrg # company names they are paired with. 11363458e6c2Smrg cr16-*) 11373458e6c2Smrg basic_os=${basic_os:-elf} 11382c7c4e3dSmrg ;; 11393458e6c2Smrg crisv32-* | etraxfs*-*) 11403458e6c2Smrg cpu=crisv32 11413458e6c2Smrg vendor=axis 11422c7c4e3dSmrg ;; 11433458e6c2Smrg cris-* | etrax*-*) 11443458e6c2Smrg cpu=cris 11453458e6c2Smrg vendor=axis 11462c7c4e3dSmrg ;; 11473458e6c2Smrg crx-*) 11483458e6c2Smrg basic_os=${basic_os:-elf} 11492c7c4e3dSmrg ;; 11503458e6c2Smrg neo-tandem) 11513458e6c2Smrg cpu=neo 11523458e6c2Smrg vendor=tandem 11532c7c4e3dSmrg ;; 11543458e6c2Smrg nse-tandem) 11553458e6c2Smrg cpu=nse 11563458e6c2Smrg vendor=tandem 11572c7c4e3dSmrg ;; 11583458e6c2Smrg nsr-tandem) 11593458e6c2Smrg cpu=nsr 11603458e6c2Smrg vendor=tandem 11612c7c4e3dSmrg ;; 11623458e6c2Smrg nsv-tandem) 11633458e6c2Smrg cpu=nsv 11643458e6c2Smrg vendor=tandem 11652c7c4e3dSmrg ;; 11663458e6c2Smrg nsx-tandem) 11673458e6c2Smrg cpu=nsx 11683458e6c2Smrg vendor=tandem 11692c7c4e3dSmrg ;; 11703458e6c2Smrg mipsallegrexel-sony) 11713458e6c2Smrg cpu=mipsallegrexel 11723458e6c2Smrg vendor=sony 11732c7c4e3dSmrg ;; 11743458e6c2Smrg tile*-*) 11753458e6c2Smrg basic_os=${basic_os:-linux-gnu} 11762c7c4e3dSmrg ;; 11773458e6c2Smrg 11782c7c4e3dSmrg *) 11793458e6c2Smrg # Recognize the canonical CPU types that are allowed with any 11803458e6c2Smrg # company name. 11813458e6c2Smrg case $cpu in 11823458e6c2Smrg 1750a | 580 \ 11833458e6c2Smrg | a29k \ 1184c1e8faa6Smrg | aarch64 | aarch64_be | aarch64c | arm64ec \ 11853458e6c2Smrg | abacus \ 11863458e6c2Smrg | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ 11873458e6c2Smrg | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ 11883458e6c2Smrg | alphapca5[67] | alpha64pca5[67] \ 11893458e6c2Smrg | am33_2.0 \ 11903458e6c2Smrg | amdgcn \ 11913458e6c2Smrg | arc | arceb | arc32 | arc64 \ 11923458e6c2Smrg | arm | arm[lb]e | arme[lb] | armv* \ 11933458e6c2Smrg | avr | avr32 \ 11943458e6c2Smrg | asmjs \ 11953458e6c2Smrg | ba \ 11963458e6c2Smrg | be32 | be64 \ 11973458e6c2Smrg | bfin | bpf | bs2000 \ 11983458e6c2Smrg | c[123]* | c30 | [cjt]90 | c4x \ 11993458e6c2Smrg | c8051 | clipper | craynv | csky | cydra \ 12003458e6c2Smrg | d10v | d30v | dlx | dsp16xx \ 12013458e6c2Smrg | e2k | elxsi | epiphany \ 12023458e6c2Smrg | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ 1203c1e8faa6Smrg | javascript \ 12043458e6c2Smrg | h8300 | h8500 \ 12053458e6c2Smrg | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 12063458e6c2Smrg | hexagon \ 12073458e6c2Smrg | i370 | i*86 | i860 | i960 | ia16 | ia64 \ 12083458e6c2Smrg | ip2k | iq2000 \ 12093458e6c2Smrg | k1om \ 1210c1e8faa6Smrg | kvx \ 12113458e6c2Smrg | le32 | le64 \ 12123458e6c2Smrg | lm32 \ 1213c1e8faa6Smrg | loongarch32 | loongarch64 \ 12143458e6c2Smrg | m32c | m32r | m32rle \ 12153458e6c2Smrg | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ 12163458e6c2Smrg | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ 12173458e6c2Smrg | m88110 | m88k | maxq | mb | mcore | mep | metag \ 12183458e6c2Smrg | microblaze | microblazeel \ 1219c1e8faa6Smrg | mips* \ 12203458e6c2Smrg | mmix \ 12213458e6c2Smrg | mn10200 | mn10300 \ 12223458e6c2Smrg | moxie \ 12233458e6c2Smrg | mt \ 12243458e6c2Smrg | msp430 \ 1225c1e8faa6Smrg | nanomips* \ 12263458e6c2Smrg | nds32 | nds32le | nds32be \ 12273458e6c2Smrg | nfp \ 12283458e6c2Smrg | nios | nios2 | nios2eb | nios2el \ 12293458e6c2Smrg | none | np1 | ns16k | ns32k | nvptx \ 12303458e6c2Smrg | open8 \ 12313458e6c2Smrg | or1k* \ 12323458e6c2Smrg | or32 \ 12333458e6c2Smrg | orion \ 12343458e6c2Smrg | picochip \ 12353458e6c2Smrg | pdp10 | pdp11 | pj | pjl | pn | power \ 12363458e6c2Smrg | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ 12373458e6c2Smrg | pru \ 12383458e6c2Smrg | pyramid \ 12393458e6c2Smrg | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ 12403458e6c2Smrg | rl78 | romp | rs6000 | rx \ 12413458e6c2Smrg | s390 | s390x \ 12423458e6c2Smrg | score \ 12433458e6c2Smrg | sh | shl \ 12443458e6c2Smrg | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ 12453458e6c2Smrg | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ 12463458e6c2Smrg | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ 12473458e6c2Smrg | sparclite \ 12483458e6c2Smrg | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ 12493458e6c2Smrg | spu \ 12503458e6c2Smrg | tahoe \ 12513458e6c2Smrg | thumbv7* \ 12523458e6c2Smrg | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ 12533458e6c2Smrg | tron \ 12543458e6c2Smrg | ubicom32 \ 12553458e6c2Smrg | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ 12563458e6c2Smrg | vax \ 1257c1e8faa6Smrg | vc4 \ 12583458e6c2Smrg | visium \ 12593458e6c2Smrg | w65 \ 12603458e6c2Smrg | wasm32 | wasm64 \ 12613458e6c2Smrg | we32k \ 12623458e6c2Smrg | x86 | x86_64 | xc16x | xgate | xps100 \ 12633458e6c2Smrg | xstormy16 | xtensa* \ 12643458e6c2Smrg | ymp \ 12653458e6c2Smrg | z8k | z80) 12663458e6c2Smrg ;; 12673458e6c2Smrg 12683458e6c2Smrg *) 1269c1e8faa6Smrg echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2 12703458e6c2Smrg exit 1 12713458e6c2Smrg ;; 12723458e6c2Smrg esac 12732c7c4e3dSmrg ;; 12742c7c4e3dSmrgesac 12752c7c4e3dSmrg 12762c7c4e3dSmrg# Here we canonicalize certain aliases for manufacturers. 12773458e6c2Smrgcase $vendor in 12783458e6c2Smrg digital*) 12793458e6c2Smrg vendor=dec 12802c7c4e3dSmrg ;; 12813458e6c2Smrg commodore*) 12823458e6c2Smrg vendor=cbm 12832c7c4e3dSmrg ;; 12842c7c4e3dSmrg *) 12852c7c4e3dSmrg ;; 12862c7c4e3dSmrgesac 12872c7c4e3dSmrg 12882c7c4e3dSmrg# Decode manufacturer-specific aliases for certain operating systems. 12892c7c4e3dSmrg 1290c1e8faa6Smrgif test x"$basic_os" != x 12912c7c4e3dSmrgthen 12923458e6c2Smrg 1293c1e8faa6Smrg# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just 12943458e6c2Smrg# set os. 1295c1e8faa6Smrgobj= 12963458e6c2Smrgcase $basic_os in 12973458e6c2Smrg gnu/linux*) 12983458e6c2Smrg kernel=linux 12993458e6c2Smrg os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` 13003458e6c2Smrg ;; 13013458e6c2Smrg os2-emx) 13023458e6c2Smrg kernel=os2 13033458e6c2Smrg os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` 13043458e6c2Smrg ;; 13053458e6c2Smrg nto-qnx*) 13063458e6c2Smrg kernel=nto 13073458e6c2Smrg os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` 13083458e6c2Smrg ;; 13093458e6c2Smrg *-*) 13103458e6c2Smrg # shellcheck disable=SC2162 13113458e6c2Smrg saved_IFS=$IFS 13123458e6c2Smrg IFS="-" read kernel os <<EOF 13133458e6c2Smrg$basic_os 13143458e6c2SmrgEOF 13153458e6c2Smrg IFS=$saved_IFS 13163458e6c2Smrg ;; 13173458e6c2Smrg # Default OS when just kernel was specified 13183458e6c2Smrg nto*) 13193458e6c2Smrg kernel=nto 13203458e6c2Smrg os=`echo "$basic_os" | sed -e 's|nto|qnx|'` 13213458e6c2Smrg ;; 13223458e6c2Smrg linux*) 13233458e6c2Smrg kernel=linux 13243458e6c2Smrg os=`echo "$basic_os" | sed -e 's|linux|gnu|'` 13253458e6c2Smrg ;; 1326c1e8faa6Smrg managarm*) 1327c1e8faa6Smrg kernel=managarm 1328c1e8faa6Smrg os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'` 1329c1e8faa6Smrg ;; 13303458e6c2Smrg *) 13313458e6c2Smrg kernel= 13323458e6c2Smrg os=$basic_os 13333458e6c2Smrg ;; 13343458e6c2Smrgesac 13353458e6c2Smrg 13363458e6c2Smrg# Now, normalize the OS (knowing we just have one component, it's not a kernel, 13373458e6c2Smrg# etc.) 13382c7c4e3dSmrgcase $os in 13393458e6c2Smrg # First match some system type aliases that might get confused 13403458e6c2Smrg # with valid system types. 13413458e6c2Smrg # solaris* is a basic system type, with this one exception. 13423458e6c2Smrg auroraux) 13433458e6c2Smrg os=auroraux 134416d7e2f1Smrg ;; 13453458e6c2Smrg bluegene*) 13463458e6c2Smrg os=cnk 13472c7c4e3dSmrg ;; 13483458e6c2Smrg solaris1 | solaris1.*) 13493458e6c2Smrg os=`echo "$os" | sed -e 's|solaris1|sunos4|'` 13502c7c4e3dSmrg ;; 13513458e6c2Smrg solaris) 13523458e6c2Smrg os=solaris2 13532c7c4e3dSmrg ;; 13543458e6c2Smrg unixware*) 13553458e6c2Smrg os=sysv4.2uw 13562c7c4e3dSmrg ;; 13573458e6c2Smrg # es1800 is here to avoid being matched by es* (a different OS) 13583458e6c2Smrg es1800*) 13593458e6c2Smrg os=ose 13602c7c4e3dSmrg ;; 13613458e6c2Smrg # Some version numbers need modification 13623458e6c2Smrg chorusos*) 13633458e6c2Smrg os=chorusos 13642c7c4e3dSmrg ;; 13653458e6c2Smrg isc) 13663458e6c2Smrg os=isc2.2 13672c7c4e3dSmrg ;; 13683458e6c2Smrg sco6) 13693458e6c2Smrg os=sco5v6 13702c7c4e3dSmrg ;; 13713458e6c2Smrg sco5) 13723458e6c2Smrg os=sco3.2v5 13732c7c4e3dSmrg ;; 13743458e6c2Smrg sco4) 13753458e6c2Smrg os=sco3.2v4 13762c7c4e3dSmrg ;; 13773458e6c2Smrg sco3.2.[4-9]*) 13783458e6c2Smrg os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'` 13798650bb69Smrg ;; 13803458e6c2Smrg sco*v* | scout) 13813458e6c2Smrg # Don't match below 13822c7c4e3dSmrg ;; 13833458e6c2Smrg sco*) 13843458e6c2Smrg os=sco3.2v2 13852c7c4e3dSmrg ;; 13863458e6c2Smrg psos*) 13873458e6c2Smrg os=psos 13882c7c4e3dSmrg ;; 13893458e6c2Smrg qnx*) 13903458e6c2Smrg os=qnx 13912c7c4e3dSmrg ;; 13923458e6c2Smrg hiux*) 13933458e6c2Smrg os=hiuxwe2 13948650bb69Smrg ;; 13953458e6c2Smrg lynx*178) 13963458e6c2Smrg os=lynxos178 13972c7c4e3dSmrg ;; 13983458e6c2Smrg lynx*5) 13993458e6c2Smrg os=lynxos5 14002c7c4e3dSmrg ;; 14013458e6c2Smrg lynxos*) 14023458e6c2Smrg # don't get caught up in next wildcard 14032c7c4e3dSmrg ;; 14043458e6c2Smrg lynx*) 14053458e6c2Smrg os=lynxos 14062c7c4e3dSmrg ;; 14073458e6c2Smrg mac[0-9]*) 14083458e6c2Smrg os=`echo "$os" | sed -e 's|mac|macos|'` 14092c7c4e3dSmrg ;; 14103458e6c2Smrg opened*) 14113458e6c2Smrg os=openedition 14122c7c4e3dSmrg ;; 14133458e6c2Smrg os400*) 14143458e6c2Smrg os=os400 14152c7c4e3dSmrg ;; 14163458e6c2Smrg sunos5*) 14173458e6c2Smrg os=`echo "$os" | sed -e 's|sunos5|solaris2|'` 14188650bb69Smrg ;; 14193458e6c2Smrg sunos6*) 14203458e6c2Smrg os=`echo "$os" | sed -e 's|sunos6|solaris3|'` 14212c7c4e3dSmrg ;; 14223458e6c2Smrg wince*) 14233458e6c2Smrg os=wince 14242c7c4e3dSmrg ;; 14253458e6c2Smrg utek*) 14263458e6c2Smrg os=bsd 14272c7c4e3dSmrg ;; 14283458e6c2Smrg dynix*) 14293458e6c2Smrg os=bsd 14302c7c4e3dSmrg ;; 14313458e6c2Smrg acis*) 14323458e6c2Smrg os=aos 14332c7c4e3dSmrg ;; 14343458e6c2Smrg atheos*) 14353458e6c2Smrg os=atheos 14362c7c4e3dSmrg ;; 14373458e6c2Smrg syllable*) 14383458e6c2Smrg os=syllable 14392c7c4e3dSmrg ;; 14403458e6c2Smrg 386bsd) 14413458e6c2Smrg os=bsd 14428650bb69Smrg ;; 14433458e6c2Smrg ctix* | uts*) 14443458e6c2Smrg os=sysv 14452c7c4e3dSmrg ;; 14463458e6c2Smrg nova*) 14473458e6c2Smrg os=rtmk-nova 14482c7c4e3dSmrg ;; 14493458e6c2Smrg ns2) 14503458e6c2Smrg os=nextstep2 14512c7c4e3dSmrg ;; 14523458e6c2Smrg # Preserve the version number of sinix5. 14533458e6c2Smrg sinix5.*) 14543458e6c2Smrg os=`echo "$os" | sed -e 's|sinix|sysv|'` 14552c7c4e3dSmrg ;; 14563458e6c2Smrg sinix*) 14573458e6c2Smrg os=sysv4 14582c7c4e3dSmrg ;; 14593458e6c2Smrg tpf*) 14603458e6c2Smrg os=tpf 14612c7c4e3dSmrg ;; 14623458e6c2Smrg triton*) 14633458e6c2Smrg os=sysv3 14642c7c4e3dSmrg ;; 14653458e6c2Smrg oss*) 14663458e6c2Smrg os=sysv3 14672c7c4e3dSmrg ;; 14683458e6c2Smrg svr4*) 14693458e6c2Smrg os=sysv4 14702c7c4e3dSmrg ;; 14713458e6c2Smrg svr3) 14723458e6c2Smrg os=sysv3 14732c7c4e3dSmrg ;; 14743458e6c2Smrg sysvr4) 14753458e6c2Smrg os=sysv4 14762c7c4e3dSmrg ;; 14773458e6c2Smrg ose*) 14783458e6c2Smrg os=ose 14798650bb69Smrg ;; 14803458e6c2Smrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 14813458e6c2Smrg os=mint 14828650bb69Smrg ;; 14833458e6c2Smrg dicos*) 14843458e6c2Smrg os=dicos 14852becc446Smrg ;; 14863458e6c2Smrg pikeos*) 14873458e6c2Smrg # Until real need of OS specific support for 14883458e6c2Smrg # particular features comes up, bare metal 14893458e6c2Smrg # configurations are quite functional. 14903458e6c2Smrg case $cpu in 14913458e6c2Smrg arm*) 14923458e6c2Smrg os=eabi 14933458e6c2Smrg ;; 14943458e6c2Smrg *) 1495c1e8faa6Smrg os= 1496c1e8faa6Smrg obj=elf 14973458e6c2Smrg ;; 14983458e6c2Smrg esac 14992c7c4e3dSmrg ;; 1500c1e8faa6Smrg aout* | coff* | elf* | pe*) 1501c1e8faa6Smrg # These are machine code file formats, not OSes 1502c1e8faa6Smrg obj=$os 1503c1e8faa6Smrg os= 1504c1e8faa6Smrg ;; 15052c7c4e3dSmrg *) 15063458e6c2Smrg # No normalization, but not necessarily accepted, that comes below. 15072c7c4e3dSmrg ;; 15082c7c4e3dSmrgesac 15093458e6c2Smrg 15102c7c4e3dSmrgelse 15112c7c4e3dSmrg 15122c7c4e3dSmrg# Here we handle the default operating systems that come with various machines. 15132c7c4e3dSmrg# The value should be what the vendor currently ships out the door with their 15142c7c4e3dSmrg# machine or put another way, the most popular os provided with the machine. 15152c7c4e3dSmrg 15162c7c4e3dSmrg# Note that if you're going to try to match "-MANUFACTURER" here (say, 15172c7c4e3dSmrg# "-sun"), then you have to tell the case statement up towards the top 15182c7c4e3dSmrg# that MANUFACTURER isn't an operating system. Otherwise, code above 15192c7c4e3dSmrg# will signal an error saying that MANUFACTURER isn't an operating 15202c7c4e3dSmrg# system, and we'll never get to this point. 15212c7c4e3dSmrg 15223458e6c2Smrgkernel= 1523c1e8faa6Smrgobj= 15243458e6c2Smrgcase $cpu-$vendor in 15252becc446Smrg score-*) 1526c1e8faa6Smrg os= 1527c1e8faa6Smrg obj=elf 15288650bb69Smrg ;; 15292becc446Smrg spu-*) 1530c1e8faa6Smrg os= 1531c1e8faa6Smrg obj=elf 15328650bb69Smrg ;; 15332c7c4e3dSmrg *-acorn) 15343458e6c2Smrg os=riscix1.2 15352c7c4e3dSmrg ;; 15362c7c4e3dSmrg arm*-rebel) 15373458e6c2Smrg kernel=linux 15383458e6c2Smrg os=gnu 15392c7c4e3dSmrg ;; 15402c7c4e3dSmrg arm*-semi) 1541c1e8faa6Smrg os= 1542c1e8faa6Smrg obj=aout 15432c7c4e3dSmrg ;; 15442becc446Smrg c4x-* | tic4x-*) 1545c1e8faa6Smrg os= 1546c1e8faa6Smrg obj=coff 15472becc446Smrg ;; 15482becc446Smrg c8051-*) 1549c1e8faa6Smrg os= 1550c1e8faa6Smrg obj=elf 15513458e6c2Smrg ;; 15523458e6c2Smrg clipper-intergraph) 15533458e6c2Smrg os=clix 15542becc446Smrg ;; 15552becc446Smrg hexagon-*) 1556c1e8faa6Smrg os= 1557c1e8faa6Smrg obj=elf 15582c7c4e3dSmrg ;; 155916d7e2f1Smrg tic54x-*) 1560c1e8faa6Smrg os= 1561c1e8faa6Smrg obj=coff 156216d7e2f1Smrg ;; 156316d7e2f1Smrg tic55x-*) 1564c1e8faa6Smrg os= 1565c1e8faa6Smrg obj=coff 156616d7e2f1Smrg ;; 156716d7e2f1Smrg tic6x-*) 1568c1e8faa6Smrg os= 1569c1e8faa6Smrg obj=coff 157016d7e2f1Smrg ;; 15712c7c4e3dSmrg # This must come before the *-dec entry. 15722c7c4e3dSmrg pdp10-*) 15733458e6c2Smrg os=tops20 15742c7c4e3dSmrg ;; 15752c7c4e3dSmrg pdp11-*) 15763458e6c2Smrg os=none 15772c7c4e3dSmrg ;; 15782c7c4e3dSmrg *-dec | vax-*) 15793458e6c2Smrg os=ultrix4.2 15802c7c4e3dSmrg ;; 15812c7c4e3dSmrg m68*-apollo) 15823458e6c2Smrg os=domain 15832c7c4e3dSmrg ;; 15842c7c4e3dSmrg i386-sun) 15853458e6c2Smrg os=sunos4.0.2 15862c7c4e3dSmrg ;; 15872c7c4e3dSmrg m68000-sun) 15883458e6c2Smrg os=sunos3 15892c7c4e3dSmrg ;; 15902c7c4e3dSmrg m68*-cisco) 1591c1e8faa6Smrg os= 1592c1e8faa6Smrg obj=aout 15932c7c4e3dSmrg ;; 15942becc446Smrg mep-*) 1595c1e8faa6Smrg os= 1596c1e8faa6Smrg obj=elf 15978650bb69Smrg ;; 15982c7c4e3dSmrg mips*-cisco) 1599c1e8faa6Smrg os= 1600c1e8faa6Smrg obj=elf 16012c7c4e3dSmrg ;; 1602c1e8faa6Smrg mips*-*|nanomips*-*) 1603c1e8faa6Smrg os= 1604c1e8faa6Smrg obj=elf 16052c7c4e3dSmrg ;; 16062c7c4e3dSmrg or32-*) 1607c1e8faa6Smrg os= 1608c1e8faa6Smrg obj=coff 16092c7c4e3dSmrg ;; 16102c7c4e3dSmrg *-tti) # must be before sparc entry or we get the wrong os. 16113458e6c2Smrg os=sysv3 16122c7c4e3dSmrg ;; 16132c7c4e3dSmrg sparc-* | *-sun) 16143458e6c2Smrg os=sunos4.1.1 16152c7c4e3dSmrg ;; 16163458e6c2Smrg pru-*) 1617c1e8faa6Smrg os= 1618c1e8faa6Smrg obj=elf 16192c7c4e3dSmrg ;; 16203458e6c2Smrg *-be) 16213458e6c2Smrg os=beos 16228650bb69Smrg ;; 16232c7c4e3dSmrg *-ibm) 16243458e6c2Smrg os=aix 16252c7c4e3dSmrg ;; 16262becc446Smrg *-knuth) 16273458e6c2Smrg os=mmixware 16288650bb69Smrg ;; 16292c7c4e3dSmrg *-wec) 16303458e6c2Smrg os=proelf 16312c7c4e3dSmrg ;; 16322c7c4e3dSmrg *-winbond) 16333458e6c2Smrg os=proelf 16342c7c4e3dSmrg ;; 16352c7c4e3dSmrg *-oki) 16363458e6c2Smrg os=proelf 16372c7c4e3dSmrg ;; 16382c7c4e3dSmrg *-hp) 16393458e6c2Smrg os=hpux 16402c7c4e3dSmrg ;; 16412c7c4e3dSmrg *-hitachi) 16423458e6c2Smrg os=hiux 16432c7c4e3dSmrg ;; 16442c7c4e3dSmrg i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 16453458e6c2Smrg os=sysv 16462c7c4e3dSmrg ;; 16472c7c4e3dSmrg *-cbm) 16483458e6c2Smrg os=amigaos 16492c7c4e3dSmrg ;; 16502c7c4e3dSmrg *-dg) 16513458e6c2Smrg os=dgux 16522c7c4e3dSmrg ;; 16532c7c4e3dSmrg *-dolphin) 16543458e6c2Smrg os=sysv3 16552c7c4e3dSmrg ;; 16562c7c4e3dSmrg m68k-ccur) 16573458e6c2Smrg os=rtu 16582c7c4e3dSmrg ;; 16592c7c4e3dSmrg m88k-omron*) 16603458e6c2Smrg os=luna 16612c7c4e3dSmrg ;; 16623458e6c2Smrg *-next) 16633458e6c2Smrg os=nextstep 16642c7c4e3dSmrg ;; 16652c7c4e3dSmrg *-sequent) 16663458e6c2Smrg os=ptx 16672c7c4e3dSmrg ;; 16682c7c4e3dSmrg *-crds) 16693458e6c2Smrg os=unos 16702c7c4e3dSmrg ;; 16712c7c4e3dSmrg *-ns) 16723458e6c2Smrg os=genix 16732c7c4e3dSmrg ;; 16742c7c4e3dSmrg i370-*) 16753458e6c2Smrg os=mvs 16762c7c4e3dSmrg ;; 16772c7c4e3dSmrg *-gould) 16783458e6c2Smrg os=sysv 16792c7c4e3dSmrg ;; 16802c7c4e3dSmrg *-highlevel) 16813458e6c2Smrg os=bsd 16822c7c4e3dSmrg ;; 16832c7c4e3dSmrg *-encore) 16843458e6c2Smrg os=bsd 16852c7c4e3dSmrg ;; 16862c7c4e3dSmrg *-sgi) 16873458e6c2Smrg os=irix 16882c7c4e3dSmrg ;; 16892c7c4e3dSmrg *-siemens) 16903458e6c2Smrg os=sysv4 16912c7c4e3dSmrg ;; 16922c7c4e3dSmrg *-masscomp) 16933458e6c2Smrg os=rtu 16942c7c4e3dSmrg ;; 16952c7c4e3dSmrg f30[01]-fujitsu | f700-fujitsu) 16963458e6c2Smrg os=uxpv 16972c7c4e3dSmrg ;; 16982c7c4e3dSmrg *-rom68k) 1699c1e8faa6Smrg os= 1700c1e8faa6Smrg obj=coff 17012c7c4e3dSmrg ;; 17022c7c4e3dSmrg *-*bug) 1703c1e8faa6Smrg os= 1704c1e8faa6Smrg obj=coff 17052c7c4e3dSmrg ;; 17062c7c4e3dSmrg *-apple) 17073458e6c2Smrg os=macos 17082c7c4e3dSmrg ;; 17092c7c4e3dSmrg *-atari*) 17103458e6c2Smrg os=mint 17113458e6c2Smrg ;; 17123458e6c2Smrg *-wrs) 17133458e6c2Smrg os=vxworks 17142c7c4e3dSmrg ;; 17152c7c4e3dSmrg *) 17163458e6c2Smrg os=none 17172c7c4e3dSmrg ;; 17182c7c4e3dSmrgesac 17193458e6c2Smrg 17202c7c4e3dSmrgfi 17212c7c4e3dSmrg 1722c1e8faa6Smrg# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ). 1723c1e8faa6Smrg 17243458e6c2Smrgcase $os in 17253458e6c2Smrg # Sometimes we do "kernel-libc", so those need to count as OSes. 1726c1e8faa6Smrg llvm* | musl* | newlib* | relibc* | uclibc*) 17273458e6c2Smrg ;; 17283458e6c2Smrg # Likewise for "kernel-abi" 17293458e6c2Smrg eabi* | gnueabi*) 17303458e6c2Smrg ;; 17313458e6c2Smrg # VxWorks passes extra cpu info in the 4th filed. 17323458e6c2Smrg simlinux | simwindows | spe) 17333458e6c2Smrg ;; 1734c1e8faa6Smrg # See `case $cpu-$os` validation below 1735c1e8faa6Smrg ghcjs) 1736c1e8faa6Smrg ;; 17373458e6c2Smrg # Now accept the basic system types. 17383458e6c2Smrg # The portable systems comes first. 17393458e6c2Smrg # Each alternative MUST end in a * to match a version number. 17403458e6c2Smrg gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ 17413458e6c2Smrg | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ 17423458e6c2Smrg | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ 17433458e6c2Smrg | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ 17443458e6c2Smrg | hiux* | abug | nacl* | netware* | windows* \ 1745c1e8faa6Smrg | os9* | macos* | osx* | ios* | tvos* | watchos* \ 17463458e6c2Smrg | mpw* | magic* | mmixware* | mon960* | lnews* \ 17473458e6c2Smrg | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ 17483458e6c2Smrg | aos* | aros* | cloudabi* | sortix* | twizzler* \ 17493458e6c2Smrg | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ 17503458e6c2Smrg | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ 17513458e6c2Smrg | mirbsd* | netbsd* | dicos* | openedition* | ose* \ 17523458e6c2Smrg | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ 17533458e6c2Smrg | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ 1754c1e8faa6Smrg | bosx* | nextstep* | cxux* | oabi* \ 1755c1e8faa6Smrg | ptx* | ecoff* | winnt* | domain* | vsta* \ 17563458e6c2Smrg | udi* | lites* | ieee* | go32* | aux* | hcos* \ 17573458e6c2Smrg | chorusrdb* | cegcc* | glidix* | serenity* \ 1758c1e8faa6Smrg | cygwin* | msys* | moss* | proelf* | rtems* \ 17593458e6c2Smrg | midipix* | mingw32* | mingw64* | mint* \ 17603458e6c2Smrg | uxpv* | beos* | mpeix* | udk* | moxiebox* \ 17613458e6c2Smrg | interix* | uwin* | mks* | rhapsody* | darwin* \ 17623458e6c2Smrg | openstep* | oskit* | conix* | pw32* | nonstopux* \ 17633458e6c2Smrg | storm-chaos* | tops10* | tenex* | tops20* | its* \ 17643458e6c2Smrg | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ 17653458e6c2Smrg | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ 17663458e6c2Smrg | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ 17673458e6c2Smrg | skyos* | haiku* | rdos* | toppers* | drops* | es* \ 17683458e6c2Smrg | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ 17693458e6c2Smrg | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ 1770c1e8faa6Smrg | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ 1771c1e8faa6Smrg | fiwix* | mlibc* | cos* | mbr* | ironclad* ) 17723458e6c2Smrg ;; 17733458e6c2Smrg # This one is extra strict with allowed versions 17743458e6c2Smrg sco3.2v2 | sco3.2v[4-9]* | sco5v6*) 17753458e6c2Smrg # Don't forget version if it is 3.2v4 or newer. 17763458e6c2Smrg ;; 1777c1e8faa6Smrg # This refers to builds using the UEFI calling convention 1778c1e8faa6Smrg # (which depends on the architecture) and PE file format. 1779c1e8faa6Smrg # Note that this is both a different calling convention and 1780c1e8faa6Smrg # different file format than that of GNU-EFI 1781c1e8faa6Smrg # (x86_64-w64-mingw32). 1782c1e8faa6Smrg uefi) 1783c1e8faa6Smrg ;; 17843458e6c2Smrg none) 17853458e6c2Smrg ;; 1786c1e8faa6Smrg kernel* | msvc* ) 1787c1e8faa6Smrg # Restricted further below 1788c1e8faa6Smrg ;; 1789c1e8faa6Smrg '') 1790c1e8faa6Smrg if test x"$obj" = x 1791c1e8faa6Smrg then 1792c1e8faa6Smrg echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2 1793c1e8faa6Smrg fi 1794c1e8faa6Smrg ;; 17953458e6c2Smrg *) 1796c1e8faa6Smrg echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2 1797c1e8faa6Smrg exit 1 1798c1e8faa6Smrg ;; 1799c1e8faa6Smrgesac 1800c1e8faa6Smrg 1801c1e8faa6Smrgcase $obj in 1802c1e8faa6Smrg aout* | coff* | elf* | pe*) 1803c1e8faa6Smrg ;; 1804c1e8faa6Smrg '') 1805c1e8faa6Smrg # empty is fine 1806c1e8faa6Smrg ;; 1807c1e8faa6Smrg *) 1808c1e8faa6Smrg echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2 1809c1e8faa6Smrg exit 1 1810c1e8faa6Smrg ;; 1811c1e8faa6Smrgesac 1812c1e8faa6Smrg 1813c1e8faa6Smrg# Here we handle the constraint that a (synthetic) cpu and os are 1814c1e8faa6Smrg# valid only in combination with each other and nowhere else. 1815c1e8faa6Smrgcase $cpu-$os in 1816c1e8faa6Smrg # The "javascript-unknown-ghcjs" triple is used by GHC; we 1817c1e8faa6Smrg # accept it here in order to tolerate that, but reject any 1818c1e8faa6Smrg # variations. 1819c1e8faa6Smrg javascript-ghcjs) 1820c1e8faa6Smrg ;; 1821c1e8faa6Smrg javascript-* | *-ghcjs) 1822c1e8faa6Smrg echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2 18233458e6c2Smrg exit 1 18243458e6c2Smrg ;; 18253458e6c2Smrgesac 18263458e6c2Smrg 18273458e6c2Smrg# As a final step for OS-related things, validate the OS-kernel combination 18283458e6c2Smrg# (given a valid OS), if there is a kernel. 1829c1e8faa6Smrgcase $kernel-$os-$obj in 1830c1e8faa6Smrg linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \ 1831c1e8faa6Smrg | linux-mlibc*- | linux-musl*- | linux-newlib*- \ 1832c1e8faa6Smrg | linux-relibc*- | linux-uclibc*- ) 1833c1e8faa6Smrg ;; 1834c1e8faa6Smrg uclinux-uclibc*- ) 1835c1e8faa6Smrg ;; 1836c1e8faa6Smrg managarm-mlibc*- | managarm-kernel*- ) 18373458e6c2Smrg ;; 1838c1e8faa6Smrg windows*-msvc*-) 18393458e6c2Smrg ;; 1840c1e8faa6Smrg -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \ 1841c1e8faa6Smrg | -uclibc*- ) 18423458e6c2Smrg # These are just libc implementations, not actual OSes, and thus 18433458e6c2Smrg # require a kernel. 1844c1e8faa6Smrg echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 18453458e6c2Smrg exit 1 18463458e6c2Smrg ;; 1847c1e8faa6Smrg -kernel*- ) 1848c1e8faa6Smrg echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 1849c1e8faa6Smrg exit 1 18503458e6c2Smrg ;; 1851c1e8faa6Smrg *-kernel*- ) 1852c1e8faa6Smrg echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 1853c1e8faa6Smrg exit 1 18543458e6c2Smrg ;; 1855c1e8faa6Smrg *-msvc*- ) 1856c1e8faa6Smrg echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2 1857c1e8faa6Smrg exit 1 18583458e6c2Smrg ;; 1859c1e8faa6Smrg kfreebsd*-gnu*- | kopensolaris*-gnu*-) 1860c1e8faa6Smrg ;; 1861c1e8faa6Smrg vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) 1862c1e8faa6Smrg ;; 1863c1e8faa6Smrg nto-qnx*-) 1864c1e8faa6Smrg ;; 1865c1e8faa6Smrg os2-emx-) 18663458e6c2Smrg ;; 1867c1e8faa6Smrg *-eabi*- | *-gnueabi*-) 18683458e6c2Smrg ;; 1869c1e8faa6Smrg none--*) 1870c1e8faa6Smrg # None (no kernel, i.e. freestanding / bare metal), 1871c1e8faa6Smrg # can be paired with an machine code file format 1872c1e8faa6Smrg ;; 1873c1e8faa6Smrg -*-) 18743458e6c2Smrg # Blank kernel with real OS is always fine. 18753458e6c2Smrg ;; 1876c1e8faa6Smrg --*) 1877c1e8faa6Smrg # Blank kernel and OS with real machine code file format is always fine. 1878c1e8faa6Smrg ;; 1879c1e8faa6Smrg *-*-*) 1880c1e8faa6Smrg echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 18813458e6c2Smrg exit 1 18823458e6c2Smrg ;; 18833458e6c2Smrgesac 18843458e6c2Smrg 18852c7c4e3dSmrg# Here we handle the case where we know the os, and the CPU type, but not the 18862c7c4e3dSmrg# manufacturer. We pick the logical manufacturer. 18873458e6c2Smrgcase $vendor in 18883458e6c2Smrg unknown) 18893458e6c2Smrg case $cpu-$os in 18903458e6c2Smrg *-riscix*) 18912c7c4e3dSmrg vendor=acorn 18922c7c4e3dSmrg ;; 18933458e6c2Smrg *-sunos*) 18942c7c4e3dSmrg vendor=sun 18952c7c4e3dSmrg ;; 18963458e6c2Smrg *-cnk* | *-aix*) 18972c7c4e3dSmrg vendor=ibm 18982c7c4e3dSmrg ;; 18993458e6c2Smrg *-beos*) 19002c7c4e3dSmrg vendor=be 19012c7c4e3dSmrg ;; 19023458e6c2Smrg *-hpux*) 19032c7c4e3dSmrg vendor=hp 19042c7c4e3dSmrg ;; 19053458e6c2Smrg *-mpeix*) 19062c7c4e3dSmrg vendor=hp 19072c7c4e3dSmrg ;; 19083458e6c2Smrg *-hiux*) 19092c7c4e3dSmrg vendor=hitachi 19102c7c4e3dSmrg ;; 19113458e6c2Smrg *-unos*) 19122c7c4e3dSmrg vendor=crds 19132c7c4e3dSmrg ;; 19143458e6c2Smrg *-dgux*) 19152c7c4e3dSmrg vendor=dg 19162c7c4e3dSmrg ;; 19173458e6c2Smrg *-luna*) 19182c7c4e3dSmrg vendor=omron 19192c7c4e3dSmrg ;; 19203458e6c2Smrg *-genix*) 19212c7c4e3dSmrg vendor=ns 19222c7c4e3dSmrg ;; 19233458e6c2Smrg *-clix*) 19243458e6c2Smrg vendor=intergraph 19253458e6c2Smrg ;; 19263458e6c2Smrg *-mvs* | *-opened*) 19273458e6c2Smrg vendor=ibm 19283458e6c2Smrg ;; 19293458e6c2Smrg *-os400*) 19302c7c4e3dSmrg vendor=ibm 19312c7c4e3dSmrg ;; 19323458e6c2Smrg s390-* | s390x-*) 19338650bb69Smrg vendor=ibm 19348650bb69Smrg ;; 19353458e6c2Smrg *-ptx*) 19362c7c4e3dSmrg vendor=sequent 19372c7c4e3dSmrg ;; 19383458e6c2Smrg *-tpf*) 19398650bb69Smrg vendor=ibm 19408650bb69Smrg ;; 19413458e6c2Smrg *-vxsim* | *-vxworks* | *-windiss*) 19422c7c4e3dSmrg vendor=wrs 19432c7c4e3dSmrg ;; 19443458e6c2Smrg *-aux*) 19452c7c4e3dSmrg vendor=apple 19462c7c4e3dSmrg ;; 19473458e6c2Smrg *-hms*) 19482c7c4e3dSmrg vendor=hitachi 19492c7c4e3dSmrg ;; 19503458e6c2Smrg *-mpw* | *-macos*) 19512c7c4e3dSmrg vendor=apple 19522c7c4e3dSmrg ;; 19533458e6c2Smrg *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) 19542c7c4e3dSmrg vendor=atari 19552c7c4e3dSmrg ;; 19563458e6c2Smrg *-vos*) 19572c7c4e3dSmrg vendor=stratus 19582c7c4e3dSmrg ;; 19592c7c4e3dSmrg esac 19602c7c4e3dSmrg ;; 19612c7c4e3dSmrgesac 19622c7c4e3dSmrg 1963c1e8faa6Smrgecho "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}" 19648650bb69Smrgexit 19652c7c4e3dSmrg 19662c7c4e3dSmrg# Local variables: 19673458e6c2Smrg# eval: (add-hook 'before-save-hook 'time-stamp) 19682c7c4e3dSmrg# time-stamp-start: "timestamp='" 19692c7c4e3dSmrg# time-stamp-format: "%:y-%02m-%02d" 19702c7c4e3dSmrg# time-stamp-end: "'" 19712c7c4e3dSmrg# End: 1972