1ab47cfaaSmrg#! /bin/sh 2ab47cfaaSmrg# Configuration validation subroutine script. 32b2b4fcbSmrg# Copyright 1992-2023 Free Software Foundation, Inc. 4ab47cfaaSmrg 52b2b4fcbSmrg# shellcheck disable=SC2006,SC2268 # see below for rationale 62b2b4fcbSmrg 72b2b4fcbSmrgtimestamp='2023-01-21' 8ab47cfaaSmrg 91e449e82Smrg# This file is free software; you can redistribute it and/or modify it 101e449e82Smrg# under the terms of the GNU General Public License as published by 112b2b4fcbSmrg# the Free Software Foundation, either version 3 of the License, or 12ab47cfaaSmrg# (at your option) any later version. 13ab47cfaaSmrg# 141e449e82Smrg# This program is distributed in the hope that it will be useful, but 151e449e82Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of 161e449e82Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 171e449e82Smrg# General Public License for more details. 18ab47cfaaSmrg# 19ab47cfaaSmrg# You should have received a copy of the GNU General Public License 202b2b4fcbSmrg# along with this program; if not, see <https://www.gnu.org/licenses/>. 21ab47cfaaSmrg# 22ab47cfaaSmrg# As a special exception to the GNU General Public License, if you 23ab47cfaaSmrg# distribute this file as part of a program that contains a 24ab47cfaaSmrg# configuration script generated by Autoconf, you may include it under 251e449e82Smrg# the same distribution terms that you use for the rest of that 261e449e82Smrg# program. This Exception is an additional permission under section 7 271e449e82Smrg# of the GNU General Public License, version 3 ("GPLv3"). 28ab47cfaaSmrg 29ab47cfaaSmrg 30300bf1aeSmrg# Please send patches to <config-patches@gnu.org>. 31ab47cfaaSmrg# 32ab47cfaaSmrg# Configuration subroutine to validate and canonicalize a configuration type. 33ab47cfaaSmrg# Supply the specified configuration type as an argument. 34ab47cfaaSmrg# If it is invalid, we print an error message on stderr and exit with code 1. 35ab47cfaaSmrg# Otherwise, we print the canonical config type on stdout and succeed. 36ab47cfaaSmrg 376aec45a7Smrg# You can get the latest version of this script from: 382b2b4fcbSmrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub 396aec45a7Smrg 40ab47cfaaSmrg# This file is supposed to be the same for all GNU packages 41ab47cfaaSmrg# and recognize all the CPU types, system types and aliases 42ab47cfaaSmrg# that are meaningful with *any* GNU software. 43ab47cfaaSmrg# Each package is responsible for reporting which valid configurations 44ab47cfaaSmrg# it does not support. The user should be able to distinguish 45ab47cfaaSmrg# a failure to support a valid configuration from a meaningless 46ab47cfaaSmrg# configuration. 47ab47cfaaSmrg 48ab47cfaaSmrg# The goal of this file is to map all the various variations of a given 49ab47cfaaSmrg# machine specification into a single specification in the form: 50ab47cfaaSmrg# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 51ab47cfaaSmrg# or in some cases, the newer four-part form: 52ab47cfaaSmrg# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 53ab47cfaaSmrg# It is wrong to echo any other type of specification. 54ab47cfaaSmrg 552b2b4fcbSmrg# The "shellcheck disable" line above the timestamp inhibits complaints 562b2b4fcbSmrg# about features and limitations of the classic Bourne shell that were 572b2b4fcbSmrg# superseded or lifted in POSIX. However, this script identifies a wide 582b2b4fcbSmrg# variety of pre-POSIX systems that do not have POSIX shells at all, and 592b2b4fcbSmrg# even some reasonably current systems (Solaris 10 as case-in-point) still 602b2b4fcbSmrg# have a pre-POSIX /bin/sh. 612b2b4fcbSmrg 62ab47cfaaSmrgme=`echo "$0" | sed -e 's,.*/,,'` 63ab47cfaaSmrg 64ab47cfaaSmrgusage="\ 65300bf1aeSmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 66ab47cfaaSmrg 67ab47cfaaSmrgCanonicalize a configuration name. 68ab47cfaaSmrg 692b2b4fcbSmrgOptions: 70ab47cfaaSmrg -h, --help print this help, then exit 71ab47cfaaSmrg -t, --time-stamp print date of last modification, then exit 72ab47cfaaSmrg -v, --version print version number, then exit 73ab47cfaaSmrg 74ab47cfaaSmrgReport bugs and patches to <config-patches@gnu.org>." 75ab47cfaaSmrg 76ab47cfaaSmrgversion="\ 77ab47cfaaSmrgGNU config.sub ($timestamp) 78ab47cfaaSmrg 792b2b4fcbSmrgCopyright 1992-2023 Free Software Foundation, Inc. 80ab47cfaaSmrg 81ab47cfaaSmrgThis is free software; see the source for copying conditions. There is NO 82ab47cfaaSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 83ab47cfaaSmrg 84ab47cfaaSmrghelp=" 85ab47cfaaSmrgTry \`$me --help' for more information." 86ab47cfaaSmrg 87ab47cfaaSmrg# Parse command line 88ab47cfaaSmrgwhile test $# -gt 0 ; do 89ab47cfaaSmrg case $1 in 90ab47cfaaSmrg --time-stamp | --time* | -t ) 91ab47cfaaSmrg echo "$timestamp" ; exit ;; 92ab47cfaaSmrg --version | -v ) 93ab47cfaaSmrg echo "$version" ; exit ;; 94ab47cfaaSmrg --help | --h* | -h ) 95ab47cfaaSmrg echo "$usage"; exit ;; 96ab47cfaaSmrg -- ) # Stop option processing 97ab47cfaaSmrg shift; break ;; 98ab47cfaaSmrg - ) # Use stdin as input. 99ab47cfaaSmrg break ;; 100ab47cfaaSmrg -* ) 1012b2b4fcbSmrg echo "$me: invalid option $1$help" >&2 102ab47cfaaSmrg exit 1 ;; 103ab47cfaaSmrg 104ab47cfaaSmrg *local*) 105ab47cfaaSmrg # First pass through any local machine types. 1062b2b4fcbSmrg echo "$1" 107ab47cfaaSmrg exit ;; 108ab47cfaaSmrg 109ab47cfaaSmrg * ) 110ab47cfaaSmrg break ;; 111ab47cfaaSmrg esac 112ab47cfaaSmrgdone 113ab47cfaaSmrg 114ab47cfaaSmrgcase $# in 115ab47cfaaSmrg 0) echo "$me: missing argument$help" >&2 116ab47cfaaSmrg exit 1;; 117ab47cfaaSmrg 1) ;; 118ab47cfaaSmrg *) echo "$me: too many arguments$help" >&2 119ab47cfaaSmrg exit 1;; 120ab47cfaaSmrgesac 121ab47cfaaSmrg 1222b2b4fcbSmrg# Split fields of configuration type 1232b2b4fcbSmrg# shellcheck disable=SC2162 1242b2b4fcbSmrgsaved_IFS=$IFS 1252b2b4fcbSmrgIFS="-" read field1 field2 field3 field4 <<EOF 1262b2b4fcbSmrg$1 1272b2b4fcbSmrgEOF 1282b2b4fcbSmrgIFS=$saved_IFS 129ab47cfaaSmrg 1302b2b4fcbSmrg# Separate into logical components for further validation 1312b2b4fcbSmrgcase $1 in 1322b2b4fcbSmrg *-*-*-*-*) 1332b2b4fcbSmrg echo Invalid configuration \`"$1"\': more than four components >&2 1342b2b4fcbSmrg exit 1 135ab47cfaaSmrg ;; 1362b2b4fcbSmrg *-*-*-*) 1372b2b4fcbSmrg basic_machine=$field1-$field2 1382b2b4fcbSmrg basic_os=$field3-$field4 139ab47cfaaSmrg ;; 1402b2b4fcbSmrg *-*-*) 1412b2b4fcbSmrg # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two 1422b2b4fcbSmrg # parts 1432b2b4fcbSmrg maybe_os=$field2-$field3 1442b2b4fcbSmrg case $maybe_os in 1452b2b4fcbSmrg nto-qnx* | linux-* | uclinux-uclibc* \ 1462b2b4fcbSmrg | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ 1472b2b4fcbSmrg | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ 1482b2b4fcbSmrg | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*) 1492b2b4fcbSmrg basic_machine=$field1 1502b2b4fcbSmrg basic_os=$maybe_os 1512b2b4fcbSmrg ;; 1522b2b4fcbSmrg android-linux) 1532b2b4fcbSmrg basic_machine=$field1-unknown 1542b2b4fcbSmrg basic_os=linux-android 1552b2b4fcbSmrg ;; 1562b2b4fcbSmrg *) 1572b2b4fcbSmrg basic_machine=$field1-$field2 1582b2b4fcbSmrg basic_os=$field3 1592b2b4fcbSmrg ;; 1602b2b4fcbSmrg esac 161ab47cfaaSmrg ;; 1622b2b4fcbSmrg *-*) 1632b2b4fcbSmrg # A lone config we happen to match not fitting any pattern 1642b2b4fcbSmrg case $field1-$field2 in 1652b2b4fcbSmrg decstation-3100) 1662b2b4fcbSmrg basic_machine=mips-dec 1672b2b4fcbSmrg basic_os= 1682b2b4fcbSmrg ;; 1692b2b4fcbSmrg *-*) 1702b2b4fcbSmrg # Second component is usually, but not always the OS 1712b2b4fcbSmrg case $field2 in 1722b2b4fcbSmrg # Prevent following clause from handling this valid os 1732b2b4fcbSmrg sun*os*) 1742b2b4fcbSmrg basic_machine=$field1 1752b2b4fcbSmrg basic_os=$field2 1762b2b4fcbSmrg ;; 1772b2b4fcbSmrg zephyr*) 1782b2b4fcbSmrg basic_machine=$field1-unknown 1792b2b4fcbSmrg basic_os=$field2 1802b2b4fcbSmrg ;; 1812b2b4fcbSmrg # Manufacturers 1822b2b4fcbSmrg dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ 1832b2b4fcbSmrg | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ 1842b2b4fcbSmrg | unicom* | ibm* | next | hp | isi* | apollo | altos* \ 1852b2b4fcbSmrg | convergent* | ncr* | news | 32* | 3600* | 3100* \ 1862b2b4fcbSmrg | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ 1872b2b4fcbSmrg | ultra | tti* | harris | dolphin | highlevel | gould \ 1882b2b4fcbSmrg | cbm | ns | masscomp | apple | axis | knuth | cray \ 1892b2b4fcbSmrg | microblaze* | sim | cisco \ 1902b2b4fcbSmrg | oki | wec | wrs | winbond) 1912b2b4fcbSmrg basic_machine=$field1-$field2 1922b2b4fcbSmrg basic_os= 1932b2b4fcbSmrg ;; 1942b2b4fcbSmrg *) 1952b2b4fcbSmrg basic_machine=$field1 1962b2b4fcbSmrg basic_os=$field2 1972b2b4fcbSmrg ;; 1982b2b4fcbSmrg esac 1992b2b4fcbSmrg ;; 2002b2b4fcbSmrg esac 201ab47cfaaSmrg ;; 2022b2b4fcbSmrg *) 2032b2b4fcbSmrg # Convert single-component short-hands not valid as part of 2042b2b4fcbSmrg # multi-component configurations. 2052b2b4fcbSmrg case $field1 in 2062b2b4fcbSmrg 386bsd) 2072b2b4fcbSmrg basic_machine=i386-pc 2082b2b4fcbSmrg basic_os=bsd 2092b2b4fcbSmrg ;; 2102b2b4fcbSmrg a29khif) 2112b2b4fcbSmrg basic_machine=a29k-amd 2122b2b4fcbSmrg basic_os=udi 2132b2b4fcbSmrg ;; 2142b2b4fcbSmrg adobe68k) 2152b2b4fcbSmrg basic_machine=m68010-adobe 2162b2b4fcbSmrg basic_os=scout 2172b2b4fcbSmrg ;; 2182b2b4fcbSmrg alliant) 2192b2b4fcbSmrg basic_machine=fx80-alliant 2202b2b4fcbSmrg basic_os= 2212b2b4fcbSmrg ;; 2222b2b4fcbSmrg altos | altos3068) 2232b2b4fcbSmrg basic_machine=m68k-altos 2242b2b4fcbSmrg basic_os= 2252b2b4fcbSmrg ;; 2262b2b4fcbSmrg am29k) 2272b2b4fcbSmrg basic_machine=a29k-none 2282b2b4fcbSmrg basic_os=bsd 2292b2b4fcbSmrg ;; 2302b2b4fcbSmrg amdahl) 2312b2b4fcbSmrg basic_machine=580-amdahl 2322b2b4fcbSmrg basic_os=sysv 2332b2b4fcbSmrg ;; 2342b2b4fcbSmrg amiga) 2352b2b4fcbSmrg basic_machine=m68k-unknown 2362b2b4fcbSmrg basic_os= 2372b2b4fcbSmrg ;; 2382b2b4fcbSmrg amigaos | amigados) 2392b2b4fcbSmrg basic_machine=m68k-unknown 2402b2b4fcbSmrg basic_os=amigaos 2412b2b4fcbSmrg ;; 2422b2b4fcbSmrg amigaunix | amix) 2432b2b4fcbSmrg basic_machine=m68k-unknown 2442b2b4fcbSmrg basic_os=sysv4 2452b2b4fcbSmrg ;; 2462b2b4fcbSmrg apollo68) 2472b2b4fcbSmrg basic_machine=m68k-apollo 2482b2b4fcbSmrg basic_os=sysv 2492b2b4fcbSmrg ;; 2502b2b4fcbSmrg apollo68bsd) 2512b2b4fcbSmrg basic_machine=m68k-apollo 2522b2b4fcbSmrg basic_os=bsd 2532b2b4fcbSmrg ;; 2542b2b4fcbSmrg aros) 2552b2b4fcbSmrg basic_machine=i386-pc 2562b2b4fcbSmrg basic_os=aros 2572b2b4fcbSmrg ;; 2582b2b4fcbSmrg aux) 2592b2b4fcbSmrg basic_machine=m68k-apple 2602b2b4fcbSmrg basic_os=aux 2612b2b4fcbSmrg ;; 2622b2b4fcbSmrg balance) 2632b2b4fcbSmrg basic_machine=ns32k-sequent 2642b2b4fcbSmrg basic_os=dynix 2652b2b4fcbSmrg ;; 2662b2b4fcbSmrg blackfin) 2672b2b4fcbSmrg basic_machine=bfin-unknown 2682b2b4fcbSmrg basic_os=linux 2692b2b4fcbSmrg ;; 2702b2b4fcbSmrg cegcc) 2712b2b4fcbSmrg basic_machine=arm-unknown 2722b2b4fcbSmrg basic_os=cegcc 2732b2b4fcbSmrg ;; 2742b2b4fcbSmrg convex-c1) 2752b2b4fcbSmrg basic_machine=c1-convex 2762b2b4fcbSmrg basic_os=bsd 2772b2b4fcbSmrg ;; 2782b2b4fcbSmrg convex-c2) 2792b2b4fcbSmrg basic_machine=c2-convex 2802b2b4fcbSmrg basic_os=bsd 2812b2b4fcbSmrg ;; 2822b2b4fcbSmrg convex-c32) 2832b2b4fcbSmrg basic_machine=c32-convex 2842b2b4fcbSmrg basic_os=bsd 2852b2b4fcbSmrg ;; 2862b2b4fcbSmrg convex-c34) 2872b2b4fcbSmrg basic_machine=c34-convex 2882b2b4fcbSmrg basic_os=bsd 2892b2b4fcbSmrg ;; 2902b2b4fcbSmrg convex-c38) 2912b2b4fcbSmrg basic_machine=c38-convex 2922b2b4fcbSmrg basic_os=bsd 2932b2b4fcbSmrg ;; 2942b2b4fcbSmrg cray) 2952b2b4fcbSmrg basic_machine=j90-cray 2962b2b4fcbSmrg basic_os=unicos 2972b2b4fcbSmrg ;; 2982b2b4fcbSmrg crds | unos) 2992b2b4fcbSmrg basic_machine=m68k-crds 3002b2b4fcbSmrg basic_os= 3012b2b4fcbSmrg ;; 3022b2b4fcbSmrg da30) 3032b2b4fcbSmrg basic_machine=m68k-da30 3042b2b4fcbSmrg basic_os= 3052b2b4fcbSmrg ;; 3062b2b4fcbSmrg decstation | pmax | pmin | dec3100 | decstatn) 3072b2b4fcbSmrg basic_machine=mips-dec 3082b2b4fcbSmrg basic_os= 3092b2b4fcbSmrg ;; 3102b2b4fcbSmrg delta88) 3112b2b4fcbSmrg basic_machine=m88k-motorola 3122b2b4fcbSmrg basic_os=sysv3 3132b2b4fcbSmrg ;; 3142b2b4fcbSmrg dicos) 3152b2b4fcbSmrg basic_machine=i686-pc 3162b2b4fcbSmrg basic_os=dicos 3172b2b4fcbSmrg ;; 3182b2b4fcbSmrg djgpp) 3192b2b4fcbSmrg basic_machine=i586-pc 3202b2b4fcbSmrg basic_os=msdosdjgpp 3212b2b4fcbSmrg ;; 3222b2b4fcbSmrg ebmon29k) 3232b2b4fcbSmrg basic_machine=a29k-amd 3242b2b4fcbSmrg basic_os=ebmon 3252b2b4fcbSmrg ;; 3262b2b4fcbSmrg es1800 | OSE68k | ose68k | ose | OSE) 3272b2b4fcbSmrg basic_machine=m68k-ericsson 3282b2b4fcbSmrg basic_os=ose 3292b2b4fcbSmrg ;; 3302b2b4fcbSmrg gmicro) 3312b2b4fcbSmrg basic_machine=tron-gmicro 3322b2b4fcbSmrg basic_os=sysv 3332b2b4fcbSmrg ;; 3342b2b4fcbSmrg go32) 3352b2b4fcbSmrg basic_machine=i386-pc 3362b2b4fcbSmrg basic_os=go32 3372b2b4fcbSmrg ;; 3382b2b4fcbSmrg h8300hms) 3392b2b4fcbSmrg basic_machine=h8300-hitachi 3402b2b4fcbSmrg basic_os=hms 3412b2b4fcbSmrg ;; 3422b2b4fcbSmrg h8300xray) 3432b2b4fcbSmrg basic_machine=h8300-hitachi 3442b2b4fcbSmrg basic_os=xray 3452b2b4fcbSmrg ;; 3462b2b4fcbSmrg h8500hms) 3472b2b4fcbSmrg basic_machine=h8500-hitachi 3482b2b4fcbSmrg basic_os=hms 3492b2b4fcbSmrg ;; 3502b2b4fcbSmrg harris) 3512b2b4fcbSmrg basic_machine=m88k-harris 3522b2b4fcbSmrg basic_os=sysv3 3532b2b4fcbSmrg ;; 3542b2b4fcbSmrg hp300 | hp300hpux) 3552b2b4fcbSmrg basic_machine=m68k-hp 3562b2b4fcbSmrg basic_os=hpux 3572b2b4fcbSmrg ;; 3582b2b4fcbSmrg hp300bsd) 3592b2b4fcbSmrg basic_machine=m68k-hp 3602b2b4fcbSmrg basic_os=bsd 3612b2b4fcbSmrg ;; 3622b2b4fcbSmrg hppaosf) 3632b2b4fcbSmrg basic_machine=hppa1.1-hp 3642b2b4fcbSmrg basic_os=osf 3652b2b4fcbSmrg ;; 3662b2b4fcbSmrg hppro) 3672b2b4fcbSmrg basic_machine=hppa1.1-hp 3682b2b4fcbSmrg basic_os=proelf 3692b2b4fcbSmrg ;; 3702b2b4fcbSmrg i386mach) 3712b2b4fcbSmrg basic_machine=i386-mach 3722b2b4fcbSmrg basic_os=mach 3732b2b4fcbSmrg ;; 3742b2b4fcbSmrg isi68 | isi) 3752b2b4fcbSmrg basic_machine=m68k-isi 3762b2b4fcbSmrg basic_os=sysv 3772b2b4fcbSmrg ;; 3782b2b4fcbSmrg m68knommu) 3792b2b4fcbSmrg basic_machine=m68k-unknown 3802b2b4fcbSmrg basic_os=linux 3812b2b4fcbSmrg ;; 3822b2b4fcbSmrg magnum | m3230) 3832b2b4fcbSmrg basic_machine=mips-mips 3842b2b4fcbSmrg basic_os=sysv 3852b2b4fcbSmrg ;; 3862b2b4fcbSmrg merlin) 3872b2b4fcbSmrg basic_machine=ns32k-utek 3882b2b4fcbSmrg basic_os=sysv 3892b2b4fcbSmrg ;; 3902b2b4fcbSmrg mingw64) 3912b2b4fcbSmrg basic_machine=x86_64-pc 3922b2b4fcbSmrg basic_os=mingw64 3932b2b4fcbSmrg ;; 3942b2b4fcbSmrg mingw32) 3952b2b4fcbSmrg basic_machine=i686-pc 3962b2b4fcbSmrg basic_os=mingw32 3972b2b4fcbSmrg ;; 3982b2b4fcbSmrg mingw32ce) 3992b2b4fcbSmrg basic_machine=arm-unknown 4002b2b4fcbSmrg basic_os=mingw32ce 4012b2b4fcbSmrg ;; 4022b2b4fcbSmrg monitor) 4032b2b4fcbSmrg basic_machine=m68k-rom68k 4042b2b4fcbSmrg basic_os=coff 4052b2b4fcbSmrg ;; 4062b2b4fcbSmrg morphos) 4072b2b4fcbSmrg basic_machine=powerpc-unknown 4082b2b4fcbSmrg basic_os=morphos 4092b2b4fcbSmrg ;; 4102b2b4fcbSmrg moxiebox) 4112b2b4fcbSmrg basic_machine=moxie-unknown 4122b2b4fcbSmrg basic_os=moxiebox 4132b2b4fcbSmrg ;; 4142b2b4fcbSmrg msdos) 4152b2b4fcbSmrg basic_machine=i386-pc 4162b2b4fcbSmrg basic_os=msdos 4172b2b4fcbSmrg ;; 4182b2b4fcbSmrg msys) 4192b2b4fcbSmrg basic_machine=i686-pc 4202b2b4fcbSmrg basic_os=msys 4212b2b4fcbSmrg ;; 4222b2b4fcbSmrg mvs) 4232b2b4fcbSmrg basic_machine=i370-ibm 4242b2b4fcbSmrg basic_os=mvs 4252b2b4fcbSmrg ;; 4262b2b4fcbSmrg nacl) 4272b2b4fcbSmrg basic_machine=le32-unknown 4282b2b4fcbSmrg basic_os=nacl 4292b2b4fcbSmrg ;; 4302b2b4fcbSmrg ncr3000) 4312b2b4fcbSmrg basic_machine=i486-ncr 4322b2b4fcbSmrg basic_os=sysv4 4332b2b4fcbSmrg ;; 4342b2b4fcbSmrg netbsd386) 4352b2b4fcbSmrg basic_machine=i386-pc 4362b2b4fcbSmrg basic_os=netbsd 4372b2b4fcbSmrg ;; 4382b2b4fcbSmrg netwinder) 4392b2b4fcbSmrg basic_machine=armv4l-rebel 4402b2b4fcbSmrg basic_os=linux 4412b2b4fcbSmrg ;; 4422b2b4fcbSmrg news | news700 | news800 | news900) 4432b2b4fcbSmrg basic_machine=m68k-sony 4442b2b4fcbSmrg basic_os=newsos 4452b2b4fcbSmrg ;; 4462b2b4fcbSmrg news1000) 4472b2b4fcbSmrg basic_machine=m68030-sony 4482b2b4fcbSmrg basic_os=newsos 4492b2b4fcbSmrg ;; 4502b2b4fcbSmrg necv70) 4512b2b4fcbSmrg basic_machine=v70-nec 4522b2b4fcbSmrg basic_os=sysv 4532b2b4fcbSmrg ;; 4542b2b4fcbSmrg nh3000) 4552b2b4fcbSmrg basic_machine=m68k-harris 4562b2b4fcbSmrg basic_os=cxux 4572b2b4fcbSmrg ;; 4582b2b4fcbSmrg nh[45]000) 4592b2b4fcbSmrg basic_machine=m88k-harris 4602b2b4fcbSmrg basic_os=cxux 4612b2b4fcbSmrg ;; 4622b2b4fcbSmrg nindy960) 4632b2b4fcbSmrg basic_machine=i960-intel 4642b2b4fcbSmrg basic_os=nindy 4652b2b4fcbSmrg ;; 4662b2b4fcbSmrg mon960) 4672b2b4fcbSmrg basic_machine=i960-intel 4682b2b4fcbSmrg basic_os=mon960 4692b2b4fcbSmrg ;; 4702b2b4fcbSmrg nonstopux) 4712b2b4fcbSmrg basic_machine=mips-compaq 4722b2b4fcbSmrg basic_os=nonstopux 4732b2b4fcbSmrg ;; 4742b2b4fcbSmrg os400) 4752b2b4fcbSmrg basic_machine=powerpc-ibm 4762b2b4fcbSmrg basic_os=os400 4772b2b4fcbSmrg ;; 4782b2b4fcbSmrg OSE68000 | ose68000) 4792b2b4fcbSmrg basic_machine=m68000-ericsson 4802b2b4fcbSmrg basic_os=ose 4812b2b4fcbSmrg ;; 4822b2b4fcbSmrg os68k) 4832b2b4fcbSmrg basic_machine=m68k-none 4842b2b4fcbSmrg basic_os=os68k 4852b2b4fcbSmrg ;; 4862b2b4fcbSmrg paragon) 4872b2b4fcbSmrg basic_machine=i860-intel 4882b2b4fcbSmrg basic_os=osf 4892b2b4fcbSmrg ;; 4902b2b4fcbSmrg parisc) 4912b2b4fcbSmrg basic_machine=hppa-unknown 4922b2b4fcbSmrg basic_os=linux 4932b2b4fcbSmrg ;; 4942b2b4fcbSmrg psp) 4952b2b4fcbSmrg basic_machine=mipsallegrexel-sony 4962b2b4fcbSmrg basic_os=psp 4972b2b4fcbSmrg ;; 4982b2b4fcbSmrg pw32) 4992b2b4fcbSmrg basic_machine=i586-unknown 5002b2b4fcbSmrg basic_os=pw32 5012b2b4fcbSmrg ;; 5022b2b4fcbSmrg rdos | rdos64) 5032b2b4fcbSmrg basic_machine=x86_64-pc 5042b2b4fcbSmrg basic_os=rdos 5052b2b4fcbSmrg ;; 5062b2b4fcbSmrg rdos32) 5072b2b4fcbSmrg basic_machine=i386-pc 5082b2b4fcbSmrg basic_os=rdos 5092b2b4fcbSmrg ;; 5102b2b4fcbSmrg rom68k) 5112b2b4fcbSmrg basic_machine=m68k-rom68k 5122b2b4fcbSmrg basic_os=coff 5132b2b4fcbSmrg ;; 5142b2b4fcbSmrg sa29200) 5152b2b4fcbSmrg basic_machine=a29k-amd 5162b2b4fcbSmrg basic_os=udi 5172b2b4fcbSmrg ;; 5182b2b4fcbSmrg sei) 5192b2b4fcbSmrg basic_machine=mips-sei 5202b2b4fcbSmrg basic_os=seiux 5212b2b4fcbSmrg ;; 5222b2b4fcbSmrg sequent) 5232b2b4fcbSmrg basic_machine=i386-sequent 5242b2b4fcbSmrg basic_os= 5252b2b4fcbSmrg ;; 5262b2b4fcbSmrg sps7) 5272b2b4fcbSmrg basic_machine=m68k-bull 5282b2b4fcbSmrg basic_os=sysv2 5292b2b4fcbSmrg ;; 5302b2b4fcbSmrg st2000) 5312b2b4fcbSmrg basic_machine=m68k-tandem 5322b2b4fcbSmrg basic_os= 5332b2b4fcbSmrg ;; 5342b2b4fcbSmrg stratus) 5352b2b4fcbSmrg basic_machine=i860-stratus 5362b2b4fcbSmrg basic_os=sysv4 5372b2b4fcbSmrg ;; 5382b2b4fcbSmrg sun2) 5392b2b4fcbSmrg basic_machine=m68000-sun 5402b2b4fcbSmrg basic_os= 5412b2b4fcbSmrg ;; 5422b2b4fcbSmrg sun2os3) 5432b2b4fcbSmrg basic_machine=m68000-sun 5442b2b4fcbSmrg basic_os=sunos3 5452b2b4fcbSmrg ;; 5462b2b4fcbSmrg sun2os4) 5472b2b4fcbSmrg basic_machine=m68000-sun 5482b2b4fcbSmrg basic_os=sunos4 5492b2b4fcbSmrg ;; 5502b2b4fcbSmrg sun3) 5512b2b4fcbSmrg basic_machine=m68k-sun 5522b2b4fcbSmrg basic_os= 5532b2b4fcbSmrg ;; 5542b2b4fcbSmrg sun3os3) 5552b2b4fcbSmrg basic_machine=m68k-sun 5562b2b4fcbSmrg basic_os=sunos3 5572b2b4fcbSmrg ;; 5582b2b4fcbSmrg sun3os4) 5592b2b4fcbSmrg basic_machine=m68k-sun 5602b2b4fcbSmrg basic_os=sunos4 5612b2b4fcbSmrg ;; 5622b2b4fcbSmrg sun4) 5632b2b4fcbSmrg basic_machine=sparc-sun 5642b2b4fcbSmrg basic_os= 5652b2b4fcbSmrg ;; 5662b2b4fcbSmrg sun4os3) 5672b2b4fcbSmrg basic_machine=sparc-sun 5682b2b4fcbSmrg basic_os=sunos3 5692b2b4fcbSmrg ;; 5702b2b4fcbSmrg sun4os4) 5712b2b4fcbSmrg basic_machine=sparc-sun 5722b2b4fcbSmrg basic_os=sunos4 5732b2b4fcbSmrg ;; 5742b2b4fcbSmrg sun4sol2) 5752b2b4fcbSmrg basic_machine=sparc-sun 5762b2b4fcbSmrg basic_os=solaris2 5772b2b4fcbSmrg ;; 5782b2b4fcbSmrg sun386 | sun386i | roadrunner) 5792b2b4fcbSmrg basic_machine=i386-sun 5802b2b4fcbSmrg basic_os= 5812b2b4fcbSmrg ;; 5822b2b4fcbSmrg sv1) 5832b2b4fcbSmrg basic_machine=sv1-cray 5842b2b4fcbSmrg basic_os=unicos 5852b2b4fcbSmrg ;; 5862b2b4fcbSmrg symmetry) 5872b2b4fcbSmrg basic_machine=i386-sequent 5882b2b4fcbSmrg basic_os=dynix 5892b2b4fcbSmrg ;; 5902b2b4fcbSmrg t3e) 5912b2b4fcbSmrg basic_machine=alphaev5-cray 5922b2b4fcbSmrg basic_os=unicos 5932b2b4fcbSmrg ;; 5942b2b4fcbSmrg t90) 5952b2b4fcbSmrg basic_machine=t90-cray 5962b2b4fcbSmrg basic_os=unicos 5972b2b4fcbSmrg ;; 5982b2b4fcbSmrg toad1) 5992b2b4fcbSmrg basic_machine=pdp10-xkl 6002b2b4fcbSmrg basic_os=tops20 6012b2b4fcbSmrg ;; 6022b2b4fcbSmrg tpf) 6032b2b4fcbSmrg basic_machine=s390x-ibm 6042b2b4fcbSmrg basic_os=tpf 6052b2b4fcbSmrg ;; 6062b2b4fcbSmrg udi29k) 6072b2b4fcbSmrg basic_machine=a29k-amd 6082b2b4fcbSmrg basic_os=udi 6092b2b4fcbSmrg ;; 6102b2b4fcbSmrg ultra3) 6112b2b4fcbSmrg basic_machine=a29k-nyu 6122b2b4fcbSmrg basic_os=sym1 6132b2b4fcbSmrg ;; 6142b2b4fcbSmrg v810 | necv810) 6152b2b4fcbSmrg basic_machine=v810-nec 6162b2b4fcbSmrg basic_os=none 6172b2b4fcbSmrg ;; 6182b2b4fcbSmrg vaxv) 6192b2b4fcbSmrg basic_machine=vax-dec 6202b2b4fcbSmrg basic_os=sysv 6212b2b4fcbSmrg ;; 6222b2b4fcbSmrg vms) 6232b2b4fcbSmrg basic_machine=vax-dec 6242b2b4fcbSmrg basic_os=vms 6252b2b4fcbSmrg ;; 6262b2b4fcbSmrg vsta) 6272b2b4fcbSmrg basic_machine=i386-pc 6282b2b4fcbSmrg basic_os=vsta 6292b2b4fcbSmrg ;; 6302b2b4fcbSmrg vxworks960) 6312b2b4fcbSmrg basic_machine=i960-wrs 6322b2b4fcbSmrg basic_os=vxworks 6332b2b4fcbSmrg ;; 6342b2b4fcbSmrg vxworks68) 6352b2b4fcbSmrg basic_machine=m68k-wrs 6362b2b4fcbSmrg basic_os=vxworks 6372b2b4fcbSmrg ;; 6382b2b4fcbSmrg vxworks29k) 6392b2b4fcbSmrg basic_machine=a29k-wrs 6402b2b4fcbSmrg basic_os=vxworks 6412b2b4fcbSmrg ;; 6422b2b4fcbSmrg xbox) 6432b2b4fcbSmrg basic_machine=i686-pc 6442b2b4fcbSmrg basic_os=mingw32 6452b2b4fcbSmrg ;; 6462b2b4fcbSmrg ymp) 6472b2b4fcbSmrg basic_machine=ymp-cray 6482b2b4fcbSmrg basic_os=unicos 6492b2b4fcbSmrg ;; 6502b2b4fcbSmrg *) 6512b2b4fcbSmrg basic_machine=$1 6522b2b4fcbSmrg basic_os= 6532b2b4fcbSmrg ;; 6542b2b4fcbSmrg esac 655ab47cfaaSmrg ;; 656ab47cfaaSmrgesac 657ab47cfaaSmrg 6582b2b4fcbSmrg# Decode 1-component or ad-hoc basic machines 659ab47cfaaSmrgcase $basic_machine in 6602b2b4fcbSmrg # Here we handle the default manufacturer of certain CPU types. It is in 6612b2b4fcbSmrg # some cases the only manufacturer, in others, it is the most popular. 6622b2b4fcbSmrg w89k) 6632b2b4fcbSmrg cpu=hppa1.1 6642b2b4fcbSmrg vendor=winbond 665ab47cfaaSmrg ;; 6662b2b4fcbSmrg op50n) 6672b2b4fcbSmrg cpu=hppa1.1 6682b2b4fcbSmrg vendor=oki 669ab47cfaaSmrg ;; 6702b2b4fcbSmrg op60c) 6712b2b4fcbSmrg cpu=hppa1.1 6722b2b4fcbSmrg vendor=oki 673ab47cfaaSmrg ;; 6742b2b4fcbSmrg ibm*) 6752b2b4fcbSmrg cpu=i370 6762b2b4fcbSmrg vendor=ibm 677aa9e3350Smrg ;; 6782b2b4fcbSmrg orion105) 6792b2b4fcbSmrg cpu=clipper 6802b2b4fcbSmrg vendor=highlevel 68138770048Smrg ;; 6822b2b4fcbSmrg mac | mpw | mac-mpw) 6832b2b4fcbSmrg cpu=m68k 6842b2b4fcbSmrg vendor=apple 685aa9e3350Smrg ;; 6862b2b4fcbSmrg pmac | pmac-mpw) 6872b2b4fcbSmrg cpu=powerpc 6882b2b4fcbSmrg vendor=apple 689aa9e3350Smrg ;; 690aa9e3350Smrg 691ab47cfaaSmrg # Recognize the various machine names and aliases which stand 692ab47cfaaSmrg # for a CPU type and a company and sometimes even an OS. 693ab47cfaaSmrg 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 6942b2b4fcbSmrg cpu=m68000 6952b2b4fcbSmrg vendor=att 696ab47cfaaSmrg ;; 697ab47cfaaSmrg 3b*) 6982b2b4fcbSmrg cpu=we32k 6992b2b4fcbSmrg vendor=att 7001473d951Smrg ;; 7016aec45a7Smrg bluegene*) 7022b2b4fcbSmrg cpu=powerpc 7032b2b4fcbSmrg vendor=ibm 7042b2b4fcbSmrg basic_os=cnk 705ab47cfaaSmrg ;; 706ab47cfaaSmrg decsystem10* | dec10*) 7072b2b4fcbSmrg cpu=pdp10 7082b2b4fcbSmrg vendor=dec 7092b2b4fcbSmrg basic_os=tops10 710ab47cfaaSmrg ;; 711ab47cfaaSmrg decsystem20* | dec20*) 7122b2b4fcbSmrg cpu=pdp10 7132b2b4fcbSmrg vendor=dec 7142b2b4fcbSmrg basic_os=tops20 715ab47cfaaSmrg ;; 716ab47cfaaSmrg delta | 3300 | motorola-3300 | motorola-delta \ 717ab47cfaaSmrg | 3300-motorola | delta-motorola) 7182b2b4fcbSmrg cpu=m68k 7192b2b4fcbSmrg vendor=motorola 720ab47cfaaSmrg ;; 7212b2b4fcbSmrg dpx2*) 7222b2b4fcbSmrg cpu=m68k 7232b2b4fcbSmrg vendor=bull 7242b2b4fcbSmrg basic_os=sysv3 725ab47cfaaSmrg ;; 726ab47cfaaSmrg encore | umax | mmax) 7272b2b4fcbSmrg cpu=ns32k 7282b2b4fcbSmrg vendor=encore 729ab47cfaaSmrg ;; 7302b2b4fcbSmrg elxsi) 7312b2b4fcbSmrg cpu=elxsi 7322b2b4fcbSmrg vendor=elxsi 7332b2b4fcbSmrg basic_os=${basic_os:-bsd} 734ab47cfaaSmrg ;; 735ab47cfaaSmrg fx2800) 7362b2b4fcbSmrg cpu=i860 7372b2b4fcbSmrg vendor=alliant 738ab47cfaaSmrg ;; 739ab47cfaaSmrg genix) 7402b2b4fcbSmrg cpu=ns32k 7412b2b4fcbSmrg vendor=ns 742ab47cfaaSmrg ;; 743ab47cfaaSmrg h3050r* | hiux*) 7442b2b4fcbSmrg cpu=hppa1.1 7452b2b4fcbSmrg vendor=hitachi 7462b2b4fcbSmrg basic_os=hiuxwe2 747ab47cfaaSmrg ;; 748ab47cfaaSmrg hp3k9[0-9][0-9] | hp9[0-9][0-9]) 7492b2b4fcbSmrg cpu=hppa1.0 7502b2b4fcbSmrg vendor=hp 751ab47cfaaSmrg ;; 752ab47cfaaSmrg hp9k2[0-9][0-9] | hp9k31[0-9]) 7532b2b4fcbSmrg cpu=m68000 7542b2b4fcbSmrg vendor=hp 755ab47cfaaSmrg ;; 756ab47cfaaSmrg hp9k3[2-9][0-9]) 7572b2b4fcbSmrg cpu=m68k 7582b2b4fcbSmrg vendor=hp 759ab47cfaaSmrg ;; 760ab47cfaaSmrg hp9k6[0-9][0-9] | hp6[0-9][0-9]) 7612b2b4fcbSmrg cpu=hppa1.0 7622b2b4fcbSmrg vendor=hp 763ab47cfaaSmrg ;; 764ab47cfaaSmrg hp9k7[0-79][0-9] | hp7[0-79][0-9]) 7652b2b4fcbSmrg cpu=hppa1.1 7662b2b4fcbSmrg vendor=hp 767ab47cfaaSmrg ;; 768ab47cfaaSmrg hp9k78[0-9] | hp78[0-9]) 769ab47cfaaSmrg # FIXME: really hppa2.0-hp 7702b2b4fcbSmrg cpu=hppa1.1 7712b2b4fcbSmrg vendor=hp 772ab47cfaaSmrg ;; 773ab47cfaaSmrg hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 774ab47cfaaSmrg # FIXME: really hppa2.0-hp 7752b2b4fcbSmrg cpu=hppa1.1 7762b2b4fcbSmrg vendor=hp 777ab47cfaaSmrg ;; 778ab47cfaaSmrg hp9k8[0-9][13679] | hp8[0-9][13679]) 7792b2b4fcbSmrg cpu=hppa1.1 7802b2b4fcbSmrg vendor=hp 781ab47cfaaSmrg ;; 782ab47cfaaSmrg hp9k8[0-9][0-9] | hp8[0-9][0-9]) 7832b2b4fcbSmrg cpu=hppa1.0 7842b2b4fcbSmrg vendor=hp 785ab47cfaaSmrg ;; 786ab47cfaaSmrg i*86v32) 7872b2b4fcbSmrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7882b2b4fcbSmrg vendor=pc 7892b2b4fcbSmrg basic_os=sysv32 790ab47cfaaSmrg ;; 791ab47cfaaSmrg i*86v4*) 7922b2b4fcbSmrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7932b2b4fcbSmrg vendor=pc 7942b2b4fcbSmrg basic_os=sysv4 795ab47cfaaSmrg ;; 796ab47cfaaSmrg i*86v) 7972b2b4fcbSmrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7982b2b4fcbSmrg vendor=pc 7992b2b4fcbSmrg basic_os=sysv 800ab47cfaaSmrg ;; 801ab47cfaaSmrg i*86sol2) 8022b2b4fcbSmrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 8032b2b4fcbSmrg vendor=pc 8042b2b4fcbSmrg basic_os=solaris2 805ab47cfaaSmrg ;; 8062b2b4fcbSmrg j90 | j90-cray) 8072b2b4fcbSmrg cpu=j90 8082b2b4fcbSmrg vendor=cray 8092b2b4fcbSmrg basic_os=${basic_os:-unicos} 810ab47cfaaSmrg ;; 811ab47cfaaSmrg iris | iris4d) 8122b2b4fcbSmrg cpu=mips 8132b2b4fcbSmrg vendor=sgi 8142b2b4fcbSmrg case $basic_os in 8152b2b4fcbSmrg irix*) 816ab47cfaaSmrg ;; 817ab47cfaaSmrg *) 8182b2b4fcbSmrg basic_os=irix4 819ab47cfaaSmrg ;; 820ab47cfaaSmrg esac 821ab47cfaaSmrg ;; 822ab47cfaaSmrg miniframe) 8232b2b4fcbSmrg cpu=m68000 8242b2b4fcbSmrg vendor=convergent 825300bf1aeSmrg ;; 8262b2b4fcbSmrg *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) 8272b2b4fcbSmrg cpu=m68k 8282b2b4fcbSmrg vendor=atari 8292b2b4fcbSmrg basic_os=mint 830ab47cfaaSmrg ;; 831ab47cfaaSmrg news-3600 | risc-news) 8322b2b4fcbSmrg cpu=mips 8332b2b4fcbSmrg vendor=sony 8342b2b4fcbSmrg basic_os=newsos 8352b2b4fcbSmrg ;; 8362b2b4fcbSmrg next | m*-next) 8372b2b4fcbSmrg cpu=m68k 8382b2b4fcbSmrg vendor=next 8392b2b4fcbSmrg case $basic_os in 8402b2b4fcbSmrg openstep*) 8412b2b4fcbSmrg ;; 8422b2b4fcbSmrg nextstep*) 843ab47cfaaSmrg ;; 8442b2b4fcbSmrg ns2*) 8452b2b4fcbSmrg basic_os=nextstep2 846ab47cfaaSmrg ;; 847ab47cfaaSmrg *) 8482b2b4fcbSmrg basic_os=nextstep3 849ab47cfaaSmrg ;; 850ab47cfaaSmrg esac 851ab47cfaaSmrg ;; 852ab47cfaaSmrg np1) 8532b2b4fcbSmrg cpu=np1 8542b2b4fcbSmrg vendor=gould 855ab47cfaaSmrg ;; 856ab47cfaaSmrg op50n-* | op60c-*) 8572b2b4fcbSmrg cpu=hppa1.1 8582b2b4fcbSmrg vendor=oki 8592b2b4fcbSmrg basic_os=proelf 860ab47cfaaSmrg ;; 861ab47cfaaSmrg pa-hitachi) 8622b2b4fcbSmrg cpu=hppa1.1 8632b2b4fcbSmrg vendor=hitachi 8642b2b4fcbSmrg basic_os=hiuxwe2 8651473d951Smrg ;; 866ab47cfaaSmrg pbd) 8672b2b4fcbSmrg cpu=sparc 8682b2b4fcbSmrg vendor=tti 869ab47cfaaSmrg ;; 870ab47cfaaSmrg pbb) 8712b2b4fcbSmrg cpu=m68k 8722b2b4fcbSmrg vendor=tti 873ab47cfaaSmrg ;; 8742b2b4fcbSmrg pc532) 8752b2b4fcbSmrg cpu=ns32k 8762b2b4fcbSmrg vendor=pc532 877ab47cfaaSmrg ;; 878ab47cfaaSmrg pn) 8792b2b4fcbSmrg cpu=pn 8802b2b4fcbSmrg vendor=gould 881ab47cfaaSmrg ;; 8822b2b4fcbSmrg power) 8832b2b4fcbSmrg cpu=power 8842b2b4fcbSmrg vendor=ibm 885ab47cfaaSmrg ;; 886ab47cfaaSmrg ps2) 8872b2b4fcbSmrg cpu=i386 8882b2b4fcbSmrg vendor=ibm 889ab47cfaaSmrg ;; 890ab47cfaaSmrg rm[46]00) 8912b2b4fcbSmrg cpu=mips 8922b2b4fcbSmrg vendor=siemens 893ab47cfaaSmrg ;; 894ab47cfaaSmrg rtpc | rtpc-*) 8952b2b4fcbSmrg cpu=romp 8962b2b4fcbSmrg vendor=ibm 897ab47cfaaSmrg ;; 8982b2b4fcbSmrg sde) 8992b2b4fcbSmrg cpu=mipsisa32 9002b2b4fcbSmrg vendor=sde 9012b2b4fcbSmrg basic_os=${basic_os:-elf} 902ab47cfaaSmrg ;; 9032b2b4fcbSmrg simso-wrs) 9042b2b4fcbSmrg cpu=sparclite 9052b2b4fcbSmrg vendor=wrs 9062b2b4fcbSmrg basic_os=vxworks 907ab47cfaaSmrg ;; 9082b2b4fcbSmrg tower | tower-32) 9092b2b4fcbSmrg cpu=m68k 9102b2b4fcbSmrg vendor=ncr 911ab47cfaaSmrg ;; 9122b2b4fcbSmrg vpp*|vx|vx-*) 9132b2b4fcbSmrg cpu=f301 9142b2b4fcbSmrg vendor=fujitsu 915ab47cfaaSmrg ;; 9162b2b4fcbSmrg w65) 9172b2b4fcbSmrg cpu=w65 9182b2b4fcbSmrg vendor=wdc 919ab47cfaaSmrg ;; 9202b2b4fcbSmrg w89k-*) 9212b2b4fcbSmrg cpu=hppa1.1 9222b2b4fcbSmrg vendor=winbond 9232b2b4fcbSmrg basic_os=proelf 924ab47cfaaSmrg ;; 9252b2b4fcbSmrg none) 9262b2b4fcbSmrg cpu=none 9272b2b4fcbSmrg vendor=none 928ab47cfaaSmrg ;; 9292b2b4fcbSmrg leon|leon[3-9]) 9302b2b4fcbSmrg cpu=sparc 9312b2b4fcbSmrg vendor=$basic_machine 9328697ee19Smrg ;; 9332b2b4fcbSmrg leon-*|leon[3-9]-*) 9342b2b4fcbSmrg cpu=sparc 9352b2b4fcbSmrg vendor=`echo "$basic_machine" | sed 's/-.*//'` 936ab47cfaaSmrg ;; 9372b2b4fcbSmrg 9382b2b4fcbSmrg *-*) 9392b2b4fcbSmrg # shellcheck disable=SC2162 9402b2b4fcbSmrg saved_IFS=$IFS 9412b2b4fcbSmrg IFS="-" read cpu vendor <<EOF 9422b2b4fcbSmrg$basic_machine 9432b2b4fcbSmrgEOF 9442b2b4fcbSmrg IFS=$saved_IFS 945ab47cfaaSmrg ;; 9462b2b4fcbSmrg # We use `pc' rather than `unknown' 9472b2b4fcbSmrg # because (1) that's what they normally are, and 9482b2b4fcbSmrg # (2) the word "unknown" tends to confuse beginning users. 9492b2b4fcbSmrg i*86 | x86_64) 9502b2b4fcbSmrg cpu=$basic_machine 9512b2b4fcbSmrg vendor=pc 952ab47cfaaSmrg ;; 9532b2b4fcbSmrg # These rules are duplicated from below for sake of the special case above; 9542b2b4fcbSmrg # i.e. things that normalized to x86 arches should also default to "pc" 9552b2b4fcbSmrg pc98) 9562b2b4fcbSmrg cpu=i386 9572b2b4fcbSmrg vendor=pc 958ab47cfaaSmrg ;; 9592b2b4fcbSmrg x64 | amd64) 9602b2b4fcbSmrg cpu=x86_64 9612b2b4fcbSmrg vendor=pc 962ab47cfaaSmrg ;; 9632b2b4fcbSmrg # Recognize the basic CPU types without company name. 9642b2b4fcbSmrg *) 9652b2b4fcbSmrg cpu=$basic_machine 9662b2b4fcbSmrg vendor=unknown 967ab47cfaaSmrg ;; 9682b2b4fcbSmrgesac 9692b2b4fcbSmrg 9702b2b4fcbSmrgunset -v basic_machine 9712b2b4fcbSmrg 9722b2b4fcbSmrg# Decode basic machines in the full and proper CPU-Company form. 9732b2b4fcbSmrgcase $cpu-$vendor in 9742b2b4fcbSmrg # Here we handle the default manufacturer of certain CPU types in canonical form. It is in 9752b2b4fcbSmrg # some cases the only manufacturer, in others, it is the most popular. 9762b2b4fcbSmrg craynv-unknown) 9772b2b4fcbSmrg vendor=cray 9782b2b4fcbSmrg basic_os=${basic_os:-unicosmp} 979aa9e3350Smrg ;; 9802b2b4fcbSmrg c90-unknown | c90-cray) 9812b2b4fcbSmrg vendor=cray 9822b2b4fcbSmrg basic_os=${Basic_os:-unicos} 983ab47cfaaSmrg ;; 9842b2b4fcbSmrg fx80-unknown) 9852b2b4fcbSmrg vendor=alliant 986ab47cfaaSmrg ;; 9872b2b4fcbSmrg romp-unknown) 9882b2b4fcbSmrg vendor=ibm 989ab47cfaaSmrg ;; 9902b2b4fcbSmrg mmix-unknown) 9912b2b4fcbSmrg vendor=knuth 992ab47cfaaSmrg ;; 9932b2b4fcbSmrg microblaze-unknown | microblazeel-unknown) 9942b2b4fcbSmrg vendor=xilinx 995ab47cfaaSmrg ;; 9962b2b4fcbSmrg rs6000-unknown) 9972b2b4fcbSmrg vendor=ibm 998ab47cfaaSmrg ;; 9992b2b4fcbSmrg vax-unknown) 10002b2b4fcbSmrg vendor=dec 1001ab47cfaaSmrg ;; 10022b2b4fcbSmrg pdp11-unknown) 10032b2b4fcbSmrg vendor=dec 1004ab47cfaaSmrg ;; 10052b2b4fcbSmrg we32k-unknown) 10062b2b4fcbSmrg vendor=att 1007ab47cfaaSmrg ;; 10082b2b4fcbSmrg cydra-unknown) 10092b2b4fcbSmrg vendor=cydrome 1010ab47cfaaSmrg ;; 10112b2b4fcbSmrg i370-ibm*) 10122b2b4fcbSmrg vendor=ibm 1013ab47cfaaSmrg ;; 10142b2b4fcbSmrg orion-unknown) 10152b2b4fcbSmrg vendor=highlevel 1016ab47cfaaSmrg ;; 10172b2b4fcbSmrg xps-unknown | xps100-unknown) 10182b2b4fcbSmrg cpu=xps100 10192b2b4fcbSmrg vendor=honeywell 1020ab47cfaaSmrg ;; 10212b2b4fcbSmrg 10222b2b4fcbSmrg # Here we normalize CPU types with a missing or matching vendor 10232b2b4fcbSmrg armh-unknown | armh-alt) 10242b2b4fcbSmrg cpu=armv7l 10252b2b4fcbSmrg vendor=alt 10262b2b4fcbSmrg basic_os=${basic_os:-linux-gnueabihf} 1027ab47cfaaSmrg ;; 10282b2b4fcbSmrg dpx20-unknown | dpx20-bull) 10292b2b4fcbSmrg cpu=rs6000 10302b2b4fcbSmrg vendor=bull 10312b2b4fcbSmrg basic_os=${basic_os:-bosx} 1032ab47cfaaSmrg ;; 10332b2b4fcbSmrg 10342b2b4fcbSmrg # Here we normalize CPU types irrespective of the vendor 10352b2b4fcbSmrg amd64-*) 10362b2b4fcbSmrg cpu=x86_64 10371473d951Smrg ;; 10382b2b4fcbSmrg blackfin-*) 10392b2b4fcbSmrg cpu=bfin 10402b2b4fcbSmrg basic_os=linux 1041ab47cfaaSmrg ;; 10422b2b4fcbSmrg c54x-*) 10432b2b4fcbSmrg cpu=tic54x 1044ab47cfaaSmrg ;; 10452b2b4fcbSmrg c55x-*) 10462b2b4fcbSmrg cpu=tic55x 1047ab47cfaaSmrg ;; 10482b2b4fcbSmrg c6x-*) 10492b2b4fcbSmrg cpu=tic6x 1050ab47cfaaSmrg ;; 10512b2b4fcbSmrg e500v[12]-*) 10522b2b4fcbSmrg cpu=powerpc 10532b2b4fcbSmrg basic_os=${basic_os}"spe" 1054ab47cfaaSmrg ;; 10552b2b4fcbSmrg mips3*-*) 10562b2b4fcbSmrg cpu=mips64 1057ab47cfaaSmrg ;; 10582b2b4fcbSmrg ms1-*) 10592b2b4fcbSmrg cpu=mt 1060ab47cfaaSmrg ;; 10612b2b4fcbSmrg m68knommu-*) 10622b2b4fcbSmrg cpu=m68k 10632b2b4fcbSmrg basic_os=linux 1064ab47cfaaSmrg ;; 10652b2b4fcbSmrg m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) 10662b2b4fcbSmrg cpu=s12z 1067ab47cfaaSmrg ;; 10682b2b4fcbSmrg openrisc-*) 10692b2b4fcbSmrg cpu=or32 1070ab47cfaaSmrg ;; 10712b2b4fcbSmrg parisc-*) 10722b2b4fcbSmrg cpu=hppa 10732b2b4fcbSmrg basic_os=linux 1074ab47cfaaSmrg ;; 10752b2b4fcbSmrg pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 10762b2b4fcbSmrg cpu=i586 1077ab47cfaaSmrg ;; 10782b2b4fcbSmrg pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*) 10792b2b4fcbSmrg cpu=i686 1080ab47cfaaSmrg ;; 10812b2b4fcbSmrg pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 10822b2b4fcbSmrg cpu=i686 1083ab47cfaaSmrg ;; 10842b2b4fcbSmrg pentium4-*) 10852b2b4fcbSmrg cpu=i786 1086ab47cfaaSmrg ;; 10872b2b4fcbSmrg pc98-*) 10882b2b4fcbSmrg cpu=i386 1089ab47cfaaSmrg ;; 10902b2b4fcbSmrg ppc-* | ppcbe-*) 10912b2b4fcbSmrg cpu=powerpc 1092ab47cfaaSmrg ;; 10932b2b4fcbSmrg ppcle-* | powerpclittle-*) 10942b2b4fcbSmrg cpu=powerpcle 1095ab47cfaaSmrg ;; 10962b2b4fcbSmrg ppc64-*) 10972b2b4fcbSmrg cpu=powerpc64 1098aa9e3350Smrg ;; 10992b2b4fcbSmrg ppc64le-* | powerpc64little-*) 11002b2b4fcbSmrg cpu=powerpc64le 1101ab47cfaaSmrg ;; 11022b2b4fcbSmrg sb1-*) 11032b2b4fcbSmrg cpu=mipsisa64sb1 1104ab47cfaaSmrg ;; 11052b2b4fcbSmrg sb1el-*) 11062b2b4fcbSmrg cpu=mipsisa64sb1el 11076aec45a7Smrg ;; 11082b2b4fcbSmrg sh5e[lb]-*) 11092b2b4fcbSmrg cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` 1110ab47cfaaSmrg ;; 11112b2b4fcbSmrg spur-*) 11122b2b4fcbSmrg cpu=spur 1113ab47cfaaSmrg ;; 11142b2b4fcbSmrg strongarm-* | thumb-*) 11152b2b4fcbSmrg cpu=arm 1116ab47cfaaSmrg ;; 11172b2b4fcbSmrg tx39-*) 11182b2b4fcbSmrg cpu=mipstx39 1119ab47cfaaSmrg ;; 11202b2b4fcbSmrg tx39el-*) 11212b2b4fcbSmrg cpu=mipstx39el 1122ab47cfaaSmrg ;; 11232b2b4fcbSmrg x64-*) 11242b2b4fcbSmrg cpu=x86_64 1125ab47cfaaSmrg ;; 11262b2b4fcbSmrg xscale-* | xscalee[bl]-*) 11272b2b4fcbSmrg cpu=`echo "$cpu" | sed 's/^xscale/arm/'` 1128ab47cfaaSmrg ;; 11292b2b4fcbSmrg arm64-* | aarch64le-*) 11302b2b4fcbSmrg cpu=aarch64 1131ab47cfaaSmrg ;; 11322b2b4fcbSmrg 11332b2b4fcbSmrg # Recognize the canonical CPU Types that limit and/or modify the 11342b2b4fcbSmrg # company names they are paired with. 11352b2b4fcbSmrg cr16-*) 11362b2b4fcbSmrg basic_os=${basic_os:-elf} 1137ab47cfaaSmrg ;; 11382b2b4fcbSmrg crisv32-* | etraxfs*-*) 11392b2b4fcbSmrg cpu=crisv32 11402b2b4fcbSmrg vendor=axis 1141ab47cfaaSmrg ;; 11422b2b4fcbSmrg cris-* | etrax*-*) 11432b2b4fcbSmrg cpu=cris 11442b2b4fcbSmrg vendor=axis 1145ab47cfaaSmrg ;; 11462b2b4fcbSmrg crx-*) 11472b2b4fcbSmrg basic_os=${basic_os:-elf} 1148ab47cfaaSmrg ;; 11492b2b4fcbSmrg neo-tandem) 11502b2b4fcbSmrg cpu=neo 11512b2b4fcbSmrg vendor=tandem 1152ab47cfaaSmrg ;; 11532b2b4fcbSmrg nse-tandem) 11542b2b4fcbSmrg cpu=nse 11552b2b4fcbSmrg vendor=tandem 1156ab47cfaaSmrg ;; 11572b2b4fcbSmrg nsr-tandem) 11582b2b4fcbSmrg cpu=nsr 11592b2b4fcbSmrg vendor=tandem 1160ab47cfaaSmrg ;; 11612b2b4fcbSmrg nsv-tandem) 11622b2b4fcbSmrg cpu=nsv 11632b2b4fcbSmrg vendor=tandem 1164ab47cfaaSmrg ;; 11652b2b4fcbSmrg nsx-tandem) 11662b2b4fcbSmrg cpu=nsx 11672b2b4fcbSmrg vendor=tandem 1168ab47cfaaSmrg ;; 11692b2b4fcbSmrg mipsallegrexel-sony) 11702b2b4fcbSmrg cpu=mipsallegrexel 11712b2b4fcbSmrg vendor=sony 1172ab47cfaaSmrg ;; 11732b2b4fcbSmrg tile*-*) 11742b2b4fcbSmrg basic_os=${basic_os:-linux-gnu} 1175ab47cfaaSmrg ;; 11762b2b4fcbSmrg 1177ab47cfaaSmrg *) 11782b2b4fcbSmrg # Recognize the canonical CPU types that are allowed with any 11792b2b4fcbSmrg # company name. 11802b2b4fcbSmrg case $cpu in 11812b2b4fcbSmrg 1750a | 580 \ 11822b2b4fcbSmrg | a29k \ 11832b2b4fcbSmrg | aarch64 | aarch64_be \ 11842b2b4fcbSmrg | abacus \ 11852b2b4fcbSmrg | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ 11862b2b4fcbSmrg | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ 11872b2b4fcbSmrg | alphapca5[67] | alpha64pca5[67] \ 11882b2b4fcbSmrg | am33_2.0 \ 11892b2b4fcbSmrg | amdgcn \ 11902b2b4fcbSmrg | arc | arceb | arc32 | arc64 \ 11912b2b4fcbSmrg | arm | arm[lb]e | arme[lb] | armv* \ 11922b2b4fcbSmrg | avr | avr32 \ 11932b2b4fcbSmrg | asmjs \ 11942b2b4fcbSmrg | ba \ 11952b2b4fcbSmrg | be32 | be64 \ 11962b2b4fcbSmrg | bfin | bpf | bs2000 \ 11972b2b4fcbSmrg | c[123]* | c30 | [cjt]90 | c4x \ 11982b2b4fcbSmrg | c8051 | clipper | craynv | csky | cydra \ 11992b2b4fcbSmrg | d10v | d30v | dlx | dsp16xx \ 12002b2b4fcbSmrg | e2k | elxsi | epiphany \ 12012b2b4fcbSmrg | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ 12022b2b4fcbSmrg | h8300 | h8500 \ 12032b2b4fcbSmrg | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 12042b2b4fcbSmrg | hexagon \ 12052b2b4fcbSmrg | i370 | i*86 | i860 | i960 | ia16 | ia64 \ 12062b2b4fcbSmrg | ip2k | iq2000 \ 12072b2b4fcbSmrg | k1om \ 12082b2b4fcbSmrg | le32 | le64 \ 12092b2b4fcbSmrg | lm32 \ 12102b2b4fcbSmrg | loongarch32 | loongarch64 \ 12112b2b4fcbSmrg | m32c | m32r | m32rle \ 12122b2b4fcbSmrg | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ 12132b2b4fcbSmrg | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ 12142b2b4fcbSmrg | m88110 | m88k | maxq | mb | mcore | mep | metag \ 12152b2b4fcbSmrg | microblaze | microblazeel \ 12162b2b4fcbSmrg | mips | mipsbe | mipseb | mipsel | mipsle \ 12172b2b4fcbSmrg | mips16 \ 12182b2b4fcbSmrg | mips64 | mips64eb | mips64el \ 12192b2b4fcbSmrg | mips64octeon | mips64octeonel \ 12202b2b4fcbSmrg | mips64orion | mips64orionel \ 12212b2b4fcbSmrg | mips64r5900 | mips64r5900el \ 12222b2b4fcbSmrg | mips64vr | mips64vrel \ 12232b2b4fcbSmrg | mips64vr4100 | mips64vr4100el \ 12242b2b4fcbSmrg | mips64vr4300 | mips64vr4300el \ 12252b2b4fcbSmrg | mips64vr5000 | mips64vr5000el \ 12262b2b4fcbSmrg | mips64vr5900 | mips64vr5900el \ 12272b2b4fcbSmrg | mipsisa32 | mipsisa32el \ 12282b2b4fcbSmrg | mipsisa32r2 | mipsisa32r2el \ 12292b2b4fcbSmrg | mipsisa32r3 | mipsisa32r3el \ 12302b2b4fcbSmrg | mipsisa32r5 | mipsisa32r5el \ 12312b2b4fcbSmrg | mipsisa32r6 | mipsisa32r6el \ 12322b2b4fcbSmrg | mipsisa64 | mipsisa64el \ 12332b2b4fcbSmrg | mipsisa64r2 | mipsisa64r2el \ 12342b2b4fcbSmrg | mipsisa64r3 | mipsisa64r3el \ 12352b2b4fcbSmrg | mipsisa64r5 | mipsisa64r5el \ 12362b2b4fcbSmrg | mipsisa64r6 | mipsisa64r6el \ 12372b2b4fcbSmrg | mipsisa64sb1 | mipsisa64sb1el \ 12382b2b4fcbSmrg | mipsisa64sr71k | mipsisa64sr71kel \ 12392b2b4fcbSmrg | mipsr5900 | mipsr5900el \ 12402b2b4fcbSmrg | mipstx39 | mipstx39el \ 12412b2b4fcbSmrg | mmix \ 12422b2b4fcbSmrg | mn10200 | mn10300 \ 12432b2b4fcbSmrg | moxie \ 12442b2b4fcbSmrg | mt \ 12452b2b4fcbSmrg | msp430 \ 12462b2b4fcbSmrg | nds32 | nds32le | nds32be \ 12472b2b4fcbSmrg | nfp \ 12482b2b4fcbSmrg | nios | nios2 | nios2eb | nios2el \ 12492b2b4fcbSmrg | none | np1 | ns16k | ns32k | nvptx \ 12502b2b4fcbSmrg | open8 \ 12512b2b4fcbSmrg | or1k* \ 12522b2b4fcbSmrg | or32 \ 12532b2b4fcbSmrg | orion \ 12542b2b4fcbSmrg | picochip \ 12552b2b4fcbSmrg | pdp10 | pdp11 | pj | pjl | pn | power \ 12562b2b4fcbSmrg | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ 12572b2b4fcbSmrg | pru \ 12582b2b4fcbSmrg | pyramid \ 12592b2b4fcbSmrg | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ 12602b2b4fcbSmrg | rl78 | romp | rs6000 | rx \ 12612b2b4fcbSmrg | s390 | s390x \ 12622b2b4fcbSmrg | score \ 12632b2b4fcbSmrg | sh | shl \ 12642b2b4fcbSmrg | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ 12652b2b4fcbSmrg | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ 12662b2b4fcbSmrg | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ 12672b2b4fcbSmrg | sparclite \ 12682b2b4fcbSmrg | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ 12692b2b4fcbSmrg | spu \ 12702b2b4fcbSmrg | tahoe \ 12712b2b4fcbSmrg | thumbv7* \ 12722b2b4fcbSmrg | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ 12732b2b4fcbSmrg | tron \ 12742b2b4fcbSmrg | ubicom32 \ 12752b2b4fcbSmrg | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ 12762b2b4fcbSmrg | vax \ 12772b2b4fcbSmrg | visium \ 12782b2b4fcbSmrg | w65 \ 12792b2b4fcbSmrg | wasm32 | wasm64 \ 12802b2b4fcbSmrg | we32k \ 12812b2b4fcbSmrg | x86 | x86_64 | xc16x | xgate | xps100 \ 12822b2b4fcbSmrg | xstormy16 | xtensa* \ 12832b2b4fcbSmrg | ymp \ 12842b2b4fcbSmrg | z8k | z80) 12852b2b4fcbSmrg ;; 12862b2b4fcbSmrg 12872b2b4fcbSmrg *) 12882b2b4fcbSmrg echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 12892b2b4fcbSmrg exit 1 12902b2b4fcbSmrg ;; 12912b2b4fcbSmrg esac 1292ab47cfaaSmrg ;; 1293ab47cfaaSmrgesac 1294ab47cfaaSmrg 1295ab47cfaaSmrg# Here we canonicalize certain aliases for manufacturers. 12962b2b4fcbSmrgcase $vendor in 12972b2b4fcbSmrg digital*) 12982b2b4fcbSmrg vendor=dec 1299ab47cfaaSmrg ;; 13002b2b4fcbSmrg commodore*) 13012b2b4fcbSmrg vendor=cbm 1302ab47cfaaSmrg ;; 1303ab47cfaaSmrg *) 1304ab47cfaaSmrg ;; 1305ab47cfaaSmrgesac 1306ab47cfaaSmrg 1307ab47cfaaSmrg# Decode manufacturer-specific aliases for certain operating systems. 1308ab47cfaaSmrg 13092b2b4fcbSmrgif test x$basic_os != x 1310ab47cfaaSmrgthen 13112b2b4fcbSmrg 13122b2b4fcbSmrg# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just 13132b2b4fcbSmrg# set os. 13142b2b4fcbSmrgcase $basic_os in 13152b2b4fcbSmrg gnu/linux*) 13162b2b4fcbSmrg kernel=linux 13172b2b4fcbSmrg os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` 13182b2b4fcbSmrg ;; 13192b2b4fcbSmrg os2-emx) 13202b2b4fcbSmrg kernel=os2 13212b2b4fcbSmrg os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` 13222b2b4fcbSmrg ;; 13232b2b4fcbSmrg nto-qnx*) 13242b2b4fcbSmrg kernel=nto 13252b2b4fcbSmrg os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` 13262b2b4fcbSmrg ;; 13272b2b4fcbSmrg *-*) 13282b2b4fcbSmrg # shellcheck disable=SC2162 13292b2b4fcbSmrg saved_IFS=$IFS 13302b2b4fcbSmrg IFS="-" read kernel os <<EOF 13312b2b4fcbSmrg$basic_os 13322b2b4fcbSmrgEOF 13332b2b4fcbSmrg IFS=$saved_IFS 13342b2b4fcbSmrg ;; 13352b2b4fcbSmrg # Default OS when just kernel was specified 13362b2b4fcbSmrg nto*) 13372b2b4fcbSmrg kernel=nto 13382b2b4fcbSmrg os=`echo "$basic_os" | sed -e 's|nto|qnx|'` 13392b2b4fcbSmrg ;; 13402b2b4fcbSmrg linux*) 13412b2b4fcbSmrg kernel=linux 13422b2b4fcbSmrg os=`echo "$basic_os" | sed -e 's|linux|gnu|'` 13432b2b4fcbSmrg ;; 13442b2b4fcbSmrg managarm*) 13452b2b4fcbSmrg kernel=managarm 13462b2b4fcbSmrg os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'` 13476aec45a7Smrg ;; 13482b2b4fcbSmrg *) 13492b2b4fcbSmrg kernel= 13502b2b4fcbSmrg os=$basic_os 1351ab47cfaaSmrg ;; 13522b2b4fcbSmrgesac 13532b2b4fcbSmrg 13542b2b4fcbSmrg# Now, normalize the OS (knowing we just have one component, it's not a kernel, 13552b2b4fcbSmrg# etc.) 13562b2b4fcbSmrgcase $os in 13572b2b4fcbSmrg # First match some system type aliases that might get confused 13582b2b4fcbSmrg # with valid system types. 13592b2b4fcbSmrg # solaris* is a basic system type, with this one exception. 13602b2b4fcbSmrg auroraux) 13612b2b4fcbSmrg os=auroraux 1362ab47cfaaSmrg ;; 13632b2b4fcbSmrg bluegene*) 13642b2b4fcbSmrg os=cnk 1365ab47cfaaSmrg ;; 13662b2b4fcbSmrg solaris1 | solaris1.*) 13672b2b4fcbSmrg os=`echo "$os" | sed -e 's|solaris1|sunos4|'` 1368ab47cfaaSmrg ;; 13692b2b4fcbSmrg solaris) 13702b2b4fcbSmrg os=solaris2 1371ab47cfaaSmrg ;; 13722b2b4fcbSmrg unixware*) 13732b2b4fcbSmrg os=sysv4.2uw 1374ab47cfaaSmrg ;; 13752b2b4fcbSmrg # es1800 is here to avoid being matched by es* (a different OS) 13762b2b4fcbSmrg es1800*) 13772b2b4fcbSmrg os=ose 1378ab47cfaaSmrg ;; 13792b2b4fcbSmrg # Some version numbers need modification 13802b2b4fcbSmrg chorusos*) 13812b2b4fcbSmrg os=chorusos 1382ab47cfaaSmrg ;; 13832b2b4fcbSmrg isc) 13842b2b4fcbSmrg os=isc2.2 1385ab47cfaaSmrg ;; 13862b2b4fcbSmrg sco6) 13872b2b4fcbSmrg os=sco5v6 1388ab47cfaaSmrg ;; 13892b2b4fcbSmrg sco5) 13902b2b4fcbSmrg os=sco3.2v5 1391ab47cfaaSmrg ;; 13922b2b4fcbSmrg sco4) 13932b2b4fcbSmrg os=sco3.2v4 1394ab47cfaaSmrg ;; 13952b2b4fcbSmrg sco3.2.[4-9]*) 13962b2b4fcbSmrg os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'` 1397ab47cfaaSmrg ;; 13982b2b4fcbSmrg sco*v* | scout) 13992b2b4fcbSmrg # Don't match below 1400ab47cfaaSmrg ;; 14012b2b4fcbSmrg sco*) 14022b2b4fcbSmrg os=sco3.2v2 1403ab47cfaaSmrg ;; 14042b2b4fcbSmrg psos*) 14052b2b4fcbSmrg os=psos 1406ab47cfaaSmrg ;; 14072b2b4fcbSmrg qnx*) 14082b2b4fcbSmrg os=qnx 1409ab47cfaaSmrg ;; 14102b2b4fcbSmrg hiux*) 14112b2b4fcbSmrg os=hiuxwe2 1412ab47cfaaSmrg ;; 14132b2b4fcbSmrg lynx*178) 14142b2b4fcbSmrg os=lynxos178 1415ab47cfaaSmrg ;; 14162b2b4fcbSmrg lynx*5) 14172b2b4fcbSmrg os=lynxos5 1418ab47cfaaSmrg ;; 14192b2b4fcbSmrg lynxos*) 14202b2b4fcbSmrg # don't get caught up in next wildcard 1421ab47cfaaSmrg ;; 14222b2b4fcbSmrg lynx*) 14232b2b4fcbSmrg os=lynxos 1424ab47cfaaSmrg ;; 14252b2b4fcbSmrg mac[0-9]*) 14262b2b4fcbSmrg os=`echo "$os" | sed -e 's|mac|macos|'` 1427ab47cfaaSmrg ;; 14282b2b4fcbSmrg opened*) 14292b2b4fcbSmrg os=openedition 1430ab47cfaaSmrg ;; 14312b2b4fcbSmrg os400*) 14322b2b4fcbSmrg os=os400 1433ab47cfaaSmrg ;; 14342b2b4fcbSmrg sunos5*) 14352b2b4fcbSmrg os=`echo "$os" | sed -e 's|sunos5|solaris2|'` 1436ab47cfaaSmrg ;; 14372b2b4fcbSmrg sunos6*) 14382b2b4fcbSmrg os=`echo "$os" | sed -e 's|sunos6|solaris3|'` 1439ab47cfaaSmrg ;; 14402b2b4fcbSmrg wince*) 14412b2b4fcbSmrg os=wince 1442ab47cfaaSmrg ;; 14432b2b4fcbSmrg utek*) 14442b2b4fcbSmrg os=bsd 1445ab47cfaaSmrg ;; 14462b2b4fcbSmrg dynix*) 14472b2b4fcbSmrg os=bsd 14482b2b4fcbSmrg ;; 14492b2b4fcbSmrg acis*) 14502b2b4fcbSmrg os=aos 1451ab47cfaaSmrg ;; 14522b2b4fcbSmrg atheos*) 14532b2b4fcbSmrg os=atheos 1454ab47cfaaSmrg ;; 14552b2b4fcbSmrg syllable*) 14562b2b4fcbSmrg os=syllable 1457ab47cfaaSmrg ;; 14582b2b4fcbSmrg 386bsd) 14592b2b4fcbSmrg os=bsd 1460ab47cfaaSmrg ;; 14612b2b4fcbSmrg ctix* | uts*) 14622b2b4fcbSmrg os=sysv 1463ab47cfaaSmrg ;; 14642b2b4fcbSmrg nova*) 14652b2b4fcbSmrg os=rtmk-nova 1466ab47cfaaSmrg ;; 14672b2b4fcbSmrg ns2) 14682b2b4fcbSmrg os=nextstep2 1469ab47cfaaSmrg ;; 14702b2b4fcbSmrg # Preserve the version number of sinix5. 14712b2b4fcbSmrg sinix5.*) 14722b2b4fcbSmrg os=`echo "$os" | sed -e 's|sinix|sysv|'` 1473ab47cfaaSmrg ;; 14742b2b4fcbSmrg sinix*) 14752b2b4fcbSmrg os=sysv4 1476ab47cfaaSmrg ;; 14772b2b4fcbSmrg tpf*) 14782b2b4fcbSmrg os=tpf 1479ab47cfaaSmrg ;; 14802b2b4fcbSmrg triton*) 14812b2b4fcbSmrg os=sysv3 1482ab47cfaaSmrg ;; 14832b2b4fcbSmrg oss*) 14842b2b4fcbSmrg os=sysv3 1485ab47cfaaSmrg ;; 14862b2b4fcbSmrg svr4*) 14872b2b4fcbSmrg os=sysv4 1488ab47cfaaSmrg ;; 14892b2b4fcbSmrg svr3) 14902b2b4fcbSmrg os=sysv3 1491ab47cfaaSmrg ;; 14922b2b4fcbSmrg sysvr4) 14932b2b4fcbSmrg os=sysv4 1494ab47cfaaSmrg ;; 14952b2b4fcbSmrg ose*) 14962b2b4fcbSmrg os=ose 14976aec45a7Smrg ;; 14982b2b4fcbSmrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 14992b2b4fcbSmrg os=mint 1500aa9e3350Smrg ;; 15012b2b4fcbSmrg dicos*) 15022b2b4fcbSmrg os=dicos 1503300bf1aeSmrg ;; 15042b2b4fcbSmrg pikeos*) 15052b2b4fcbSmrg # Until real need of OS specific support for 15062b2b4fcbSmrg # particular features comes up, bare metal 15072b2b4fcbSmrg # configurations are quite functional. 15082b2b4fcbSmrg case $cpu in 15092b2b4fcbSmrg arm*) 15102b2b4fcbSmrg os=eabi 15112b2b4fcbSmrg ;; 15122b2b4fcbSmrg *) 15132b2b4fcbSmrg os=elf 15142b2b4fcbSmrg ;; 15152b2b4fcbSmrg esac 1516ab47cfaaSmrg ;; 1517ab47cfaaSmrg *) 15182b2b4fcbSmrg # No normalization, but not necessarily accepted, that comes below. 1519ab47cfaaSmrg ;; 1520ab47cfaaSmrgesac 15212b2b4fcbSmrg 1522ab47cfaaSmrgelse 1523ab47cfaaSmrg 1524ab47cfaaSmrg# Here we handle the default operating systems that come with various machines. 1525ab47cfaaSmrg# The value should be what the vendor currently ships out the door with their 1526ab47cfaaSmrg# machine or put another way, the most popular os provided with the machine. 1527ab47cfaaSmrg 1528ab47cfaaSmrg# Note that if you're going to try to match "-MANUFACTURER" here (say, 1529ab47cfaaSmrg# "-sun"), then you have to tell the case statement up towards the top 1530ab47cfaaSmrg# that MANUFACTURER isn't an operating system. Otherwise, code above 1531ab47cfaaSmrg# will signal an error saying that MANUFACTURER isn't an operating 1532ab47cfaaSmrg# system, and we'll never get to this point. 1533ab47cfaaSmrg 15342b2b4fcbSmrgkernel= 15352b2b4fcbSmrgcase $cpu-$vendor in 1536aa9e3350Smrg score-*) 15372b2b4fcbSmrg os=elf 1538ab47cfaaSmrg ;; 1539aa9e3350Smrg spu-*) 15402b2b4fcbSmrg os=elf 1541ab47cfaaSmrg ;; 1542ab47cfaaSmrg *-acorn) 15432b2b4fcbSmrg os=riscix1.2 1544ab47cfaaSmrg ;; 1545ab47cfaaSmrg arm*-rebel) 15462b2b4fcbSmrg kernel=linux 15472b2b4fcbSmrg os=gnu 1548ab47cfaaSmrg ;; 1549ab47cfaaSmrg arm*-semi) 15502b2b4fcbSmrg os=aout 1551ab47cfaaSmrg ;; 1552aa9e3350Smrg c4x-* | tic4x-*) 15532b2b4fcbSmrg os=coff 1554aa9e3350Smrg ;; 15551e449e82Smrg c8051-*) 15562b2b4fcbSmrg os=elf 15572b2b4fcbSmrg ;; 15582b2b4fcbSmrg clipper-intergraph) 15592b2b4fcbSmrg os=clix 15601e449e82Smrg ;; 15611e449e82Smrg hexagon-*) 15622b2b4fcbSmrg os=elf 15631e449e82Smrg ;; 1564aa9e3350Smrg tic54x-*) 15652b2b4fcbSmrg os=coff 1566aa9e3350Smrg ;; 1567aa9e3350Smrg tic55x-*) 15682b2b4fcbSmrg os=coff 1569aa9e3350Smrg ;; 1570aa9e3350Smrg tic6x-*) 15712b2b4fcbSmrg os=coff 1572ab47cfaaSmrg ;; 1573ab47cfaaSmrg # This must come before the *-dec entry. 1574ab47cfaaSmrg pdp10-*) 15752b2b4fcbSmrg os=tops20 1576ab47cfaaSmrg ;; 1577ab47cfaaSmrg pdp11-*) 15782b2b4fcbSmrg os=none 1579ab47cfaaSmrg ;; 1580ab47cfaaSmrg *-dec | vax-*) 15812b2b4fcbSmrg os=ultrix4.2 1582ab47cfaaSmrg ;; 1583ab47cfaaSmrg m68*-apollo) 15842b2b4fcbSmrg os=domain 1585ab47cfaaSmrg ;; 1586ab47cfaaSmrg i386-sun) 15872b2b4fcbSmrg os=sunos4.0.2 1588ab47cfaaSmrg ;; 1589ab47cfaaSmrg m68000-sun) 15902b2b4fcbSmrg os=sunos3 1591ab47cfaaSmrg ;; 1592ab47cfaaSmrg m68*-cisco) 15932b2b4fcbSmrg os=aout 1594ab47cfaaSmrg ;; 1595aa9e3350Smrg mep-*) 15962b2b4fcbSmrg os=elf 15978697ee19Smrg ;; 1598ab47cfaaSmrg mips*-cisco) 15992b2b4fcbSmrg os=elf 1600ab47cfaaSmrg ;; 1601ab47cfaaSmrg mips*-*) 16022b2b4fcbSmrg os=elf 1603ab47cfaaSmrg ;; 1604ab47cfaaSmrg or32-*) 16052b2b4fcbSmrg os=coff 1606ab47cfaaSmrg ;; 1607ab47cfaaSmrg *-tti) # must be before sparc entry or we get the wrong os. 16082b2b4fcbSmrg os=sysv3 1609ab47cfaaSmrg ;; 1610ab47cfaaSmrg sparc-* | *-sun) 16112b2b4fcbSmrg os=sunos4.1.1 1612ab47cfaaSmrg ;; 16132b2b4fcbSmrg pru-*) 16142b2b4fcbSmrg os=elf 1615ab47cfaaSmrg ;; 16162b2b4fcbSmrg *-be) 16172b2b4fcbSmrg os=beos 1618ab47cfaaSmrg ;; 1619ab47cfaaSmrg *-ibm) 16202b2b4fcbSmrg os=aix 1621ab47cfaaSmrg ;; 1622aa9e3350Smrg *-knuth) 16232b2b4fcbSmrg os=mmixware 1624ab47cfaaSmrg ;; 1625ab47cfaaSmrg *-wec) 16262b2b4fcbSmrg os=proelf 1627ab47cfaaSmrg ;; 1628ab47cfaaSmrg *-winbond) 16292b2b4fcbSmrg os=proelf 1630ab47cfaaSmrg ;; 1631ab47cfaaSmrg *-oki) 16322b2b4fcbSmrg os=proelf 1633ab47cfaaSmrg ;; 1634ab47cfaaSmrg *-hp) 16352b2b4fcbSmrg os=hpux 1636ab47cfaaSmrg ;; 1637ab47cfaaSmrg *-hitachi) 16382b2b4fcbSmrg os=hiux 1639ab47cfaaSmrg ;; 1640ab47cfaaSmrg i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 16412b2b4fcbSmrg os=sysv 1642ab47cfaaSmrg ;; 1643ab47cfaaSmrg *-cbm) 16442b2b4fcbSmrg os=amigaos 1645ab47cfaaSmrg ;; 1646ab47cfaaSmrg *-dg) 16472b2b4fcbSmrg os=dgux 1648ab47cfaaSmrg ;; 1649ab47cfaaSmrg *-dolphin) 16502b2b4fcbSmrg os=sysv3 1651ab47cfaaSmrg ;; 1652ab47cfaaSmrg m68k-ccur) 16532b2b4fcbSmrg os=rtu 1654ab47cfaaSmrg ;; 1655ab47cfaaSmrg m88k-omron*) 16562b2b4fcbSmrg os=luna 1657ab47cfaaSmrg ;; 16582b2b4fcbSmrg *-next) 16592b2b4fcbSmrg os=nextstep 1660ab47cfaaSmrg ;; 1661ab47cfaaSmrg *-sequent) 16622b2b4fcbSmrg os=ptx 1663ab47cfaaSmrg ;; 1664ab47cfaaSmrg *-crds) 16652b2b4fcbSmrg os=unos 1666ab47cfaaSmrg ;; 1667ab47cfaaSmrg *-ns) 16682b2b4fcbSmrg os=genix 1669ab47cfaaSmrg ;; 1670ab47cfaaSmrg i370-*) 16712b2b4fcbSmrg os=mvs 1672ab47cfaaSmrg ;; 1673ab47cfaaSmrg *-gould) 16742b2b4fcbSmrg os=sysv 1675ab47cfaaSmrg ;; 1676ab47cfaaSmrg *-highlevel) 16772b2b4fcbSmrg os=bsd 1678ab47cfaaSmrg ;; 1679ab47cfaaSmrg *-encore) 16802b2b4fcbSmrg os=bsd 1681ab47cfaaSmrg ;; 1682ab47cfaaSmrg *-sgi) 16832b2b4fcbSmrg os=irix 1684ab47cfaaSmrg ;; 1685ab47cfaaSmrg *-siemens) 16862b2b4fcbSmrg os=sysv4 1687ab47cfaaSmrg ;; 1688ab47cfaaSmrg *-masscomp) 16892b2b4fcbSmrg os=rtu 1690ab47cfaaSmrg ;; 1691ab47cfaaSmrg f30[01]-fujitsu | f700-fujitsu) 16922b2b4fcbSmrg os=uxpv 1693ab47cfaaSmrg ;; 1694ab47cfaaSmrg *-rom68k) 16952b2b4fcbSmrg os=coff 1696ab47cfaaSmrg ;; 1697ab47cfaaSmrg *-*bug) 16982b2b4fcbSmrg os=coff 1699ab47cfaaSmrg ;; 1700ab47cfaaSmrg *-apple) 17012b2b4fcbSmrg os=macos 1702ab47cfaaSmrg ;; 1703ab47cfaaSmrg *-atari*) 17042b2b4fcbSmrg os=mint 17052b2b4fcbSmrg ;; 17062b2b4fcbSmrg *-wrs) 17072b2b4fcbSmrg os=vxworks 1708ab47cfaaSmrg ;; 1709ab47cfaaSmrg *) 17102b2b4fcbSmrg os=none 1711ab47cfaaSmrg ;; 1712ab47cfaaSmrgesac 17132b2b4fcbSmrg 1714ab47cfaaSmrgfi 1715ab47cfaaSmrg 17162b2b4fcbSmrg# Now, validate our (potentially fixed-up) OS. 17172b2b4fcbSmrgcase $os in 17182b2b4fcbSmrg # Sometimes we do "kernel-libc", so those need to count as OSes. 17192b2b4fcbSmrg musl* | newlib* | relibc* | uclibc*) 17202b2b4fcbSmrg ;; 17212b2b4fcbSmrg # Likewise for "kernel-abi" 17222b2b4fcbSmrg eabi* | gnueabi*) 17232b2b4fcbSmrg ;; 17242b2b4fcbSmrg # VxWorks passes extra cpu info in the 4th filed. 17252b2b4fcbSmrg simlinux | simwindows | spe) 17262b2b4fcbSmrg ;; 17272b2b4fcbSmrg # Now accept the basic system types. 17282b2b4fcbSmrg # The portable systems comes first. 17292b2b4fcbSmrg # Each alternative MUST end in a * to match a version number. 17302b2b4fcbSmrg gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ 17312b2b4fcbSmrg | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ 17322b2b4fcbSmrg | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ 17332b2b4fcbSmrg | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ 17342b2b4fcbSmrg | hiux* | abug | nacl* | netware* | windows* \ 17352b2b4fcbSmrg | os9* | macos* | osx* | ios* \ 17362b2b4fcbSmrg | mpw* | magic* | mmixware* | mon960* | lnews* \ 17372b2b4fcbSmrg | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ 17382b2b4fcbSmrg | aos* | aros* | cloudabi* | sortix* | twizzler* \ 17392b2b4fcbSmrg | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ 17402b2b4fcbSmrg | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ 17412b2b4fcbSmrg | mirbsd* | netbsd* | dicos* | openedition* | ose* \ 17422b2b4fcbSmrg | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ 17432b2b4fcbSmrg | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ 17442b2b4fcbSmrg | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ 17452b2b4fcbSmrg | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ 17462b2b4fcbSmrg | udi* | lites* | ieee* | go32* | aux* | hcos* \ 17472b2b4fcbSmrg | chorusrdb* | cegcc* | glidix* | serenity* \ 17482b2b4fcbSmrg | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ 17492b2b4fcbSmrg | midipix* | mingw32* | mingw64* | mint* \ 17502b2b4fcbSmrg | uxpv* | beos* | mpeix* | udk* | moxiebox* \ 17512b2b4fcbSmrg | interix* | uwin* | mks* | rhapsody* | darwin* \ 17522b2b4fcbSmrg | openstep* | oskit* | conix* | pw32* | nonstopux* \ 17532b2b4fcbSmrg | storm-chaos* | tops10* | tenex* | tops20* | its* \ 17542b2b4fcbSmrg | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ 17552b2b4fcbSmrg | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ 17562b2b4fcbSmrg | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ 17572b2b4fcbSmrg | skyos* | haiku* | rdos* | toppers* | drops* | es* \ 17582b2b4fcbSmrg | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ 17592b2b4fcbSmrg | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ 17602b2b4fcbSmrg | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ 17612b2b4fcbSmrg | fiwix* | mlibc* ) 17622b2b4fcbSmrg ;; 17632b2b4fcbSmrg # This one is extra strict with allowed versions 17642b2b4fcbSmrg sco3.2v2 | sco3.2v[4-9]* | sco5v6*) 17652b2b4fcbSmrg # Don't forget version if it is 3.2v4 or newer. 17662b2b4fcbSmrg ;; 17672b2b4fcbSmrg none) 17682b2b4fcbSmrg ;; 17692b2b4fcbSmrg kernel* ) 17702b2b4fcbSmrg # Restricted further below 17712b2b4fcbSmrg ;; 17722b2b4fcbSmrg *) 17732b2b4fcbSmrg echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 17742b2b4fcbSmrg exit 1 17752b2b4fcbSmrg ;; 17762b2b4fcbSmrgesac 17772b2b4fcbSmrg 17782b2b4fcbSmrg# As a final step for OS-related things, validate the OS-kernel combination 17792b2b4fcbSmrg# (given a valid OS), if there is a kernel. 17802b2b4fcbSmrgcase $kernel-$os in 17812b2b4fcbSmrg linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ 17822b2b4fcbSmrg | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* ) 17832b2b4fcbSmrg ;; 17842b2b4fcbSmrg uclinux-uclibc* ) 17852b2b4fcbSmrg ;; 17862b2b4fcbSmrg managarm-mlibc* | managarm-kernel* ) 17872b2b4fcbSmrg ;; 17882b2b4fcbSmrg -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* ) 17892b2b4fcbSmrg # These are just libc implementations, not actual OSes, and thus 17902b2b4fcbSmrg # require a kernel. 17912b2b4fcbSmrg echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 17922b2b4fcbSmrg exit 1 17932b2b4fcbSmrg ;; 17942b2b4fcbSmrg -kernel* ) 17952b2b4fcbSmrg echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2 17962b2b4fcbSmrg exit 1 17972b2b4fcbSmrg ;; 17982b2b4fcbSmrg *-kernel* ) 17992b2b4fcbSmrg echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2 18002b2b4fcbSmrg exit 1 18012b2b4fcbSmrg ;; 18022b2b4fcbSmrg kfreebsd*-gnu* | kopensolaris*-gnu*) 18032b2b4fcbSmrg ;; 18042b2b4fcbSmrg vxworks-simlinux | vxworks-simwindows | vxworks-spe) 18052b2b4fcbSmrg ;; 18062b2b4fcbSmrg nto-qnx*) 18072b2b4fcbSmrg ;; 18082b2b4fcbSmrg os2-emx) 18092b2b4fcbSmrg ;; 18102b2b4fcbSmrg *-eabi* | *-gnueabi*) 18112b2b4fcbSmrg ;; 18122b2b4fcbSmrg -*) 18132b2b4fcbSmrg # Blank kernel with real OS is always fine. 18142b2b4fcbSmrg ;; 18152b2b4fcbSmrg *-*) 18162b2b4fcbSmrg echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 18172b2b4fcbSmrg exit 1 18182b2b4fcbSmrg ;; 18192b2b4fcbSmrgesac 18202b2b4fcbSmrg 1821ab47cfaaSmrg# Here we handle the case where we know the os, and the CPU type, but not the 1822ab47cfaaSmrg# manufacturer. We pick the logical manufacturer. 18232b2b4fcbSmrgcase $vendor in 18242b2b4fcbSmrg unknown) 18252b2b4fcbSmrg case $cpu-$os in 18262b2b4fcbSmrg *-riscix*) 1827ab47cfaaSmrg vendor=acorn 1828ab47cfaaSmrg ;; 18292b2b4fcbSmrg *-sunos*) 1830ab47cfaaSmrg vendor=sun 1831ab47cfaaSmrg ;; 18322b2b4fcbSmrg *-cnk* | *-aix*) 1833ab47cfaaSmrg vendor=ibm 1834ab47cfaaSmrg ;; 18352b2b4fcbSmrg *-beos*) 1836ab47cfaaSmrg vendor=be 1837ab47cfaaSmrg ;; 18382b2b4fcbSmrg *-hpux*) 1839ab47cfaaSmrg vendor=hp 1840ab47cfaaSmrg ;; 18412b2b4fcbSmrg *-mpeix*) 1842ab47cfaaSmrg vendor=hp 1843ab47cfaaSmrg ;; 18442b2b4fcbSmrg *-hiux*) 1845ab47cfaaSmrg vendor=hitachi 1846ab47cfaaSmrg ;; 18472b2b4fcbSmrg *-unos*) 1848ab47cfaaSmrg vendor=crds 1849ab47cfaaSmrg ;; 18502b2b4fcbSmrg *-dgux*) 1851ab47cfaaSmrg vendor=dg 1852ab47cfaaSmrg ;; 18532b2b4fcbSmrg *-luna*) 1854ab47cfaaSmrg vendor=omron 1855ab47cfaaSmrg ;; 18562b2b4fcbSmrg *-genix*) 1857ab47cfaaSmrg vendor=ns 1858ab47cfaaSmrg ;; 18592b2b4fcbSmrg *-clix*) 18602b2b4fcbSmrg vendor=intergraph 18612b2b4fcbSmrg ;; 18622b2b4fcbSmrg *-mvs* | *-opened*) 18632b2b4fcbSmrg vendor=ibm 18642b2b4fcbSmrg ;; 18652b2b4fcbSmrg *-os400*) 1866ab47cfaaSmrg vendor=ibm 1867ab47cfaaSmrg ;; 18682b2b4fcbSmrg s390-* | s390x-*) 1869ab47cfaaSmrg vendor=ibm 1870ab47cfaaSmrg ;; 18712b2b4fcbSmrg *-ptx*) 1872ab47cfaaSmrg vendor=sequent 1873ab47cfaaSmrg ;; 18742b2b4fcbSmrg *-tpf*) 1875ab47cfaaSmrg vendor=ibm 1876ab47cfaaSmrg ;; 18772b2b4fcbSmrg *-vxsim* | *-vxworks* | *-windiss*) 1878ab47cfaaSmrg vendor=wrs 1879ab47cfaaSmrg ;; 18802b2b4fcbSmrg *-aux*) 1881ab47cfaaSmrg vendor=apple 1882ab47cfaaSmrg ;; 18832b2b4fcbSmrg *-hms*) 1884ab47cfaaSmrg vendor=hitachi 1885ab47cfaaSmrg ;; 18862b2b4fcbSmrg *-mpw* | *-macos*) 1887ab47cfaaSmrg vendor=apple 1888ab47cfaaSmrg ;; 18892b2b4fcbSmrg *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) 1890ab47cfaaSmrg vendor=atari 1891ab47cfaaSmrg ;; 18922b2b4fcbSmrg *-vos*) 1893ab47cfaaSmrg vendor=stratus 1894ab47cfaaSmrg ;; 1895ab47cfaaSmrg esac 1896ab47cfaaSmrg ;; 1897ab47cfaaSmrgesac 1898ab47cfaaSmrg 18992b2b4fcbSmrgecho "$cpu-$vendor-${kernel:+$kernel-}$os" 1900ab47cfaaSmrgexit 1901ab47cfaaSmrg 1902ab47cfaaSmrg# Local variables: 19032b2b4fcbSmrg# eval: (add-hook 'before-save-hook 'time-stamp) 1904ab47cfaaSmrg# time-stamp-start: "timestamp='" 1905ab47cfaaSmrg# time-stamp-format: "%:y-%02m-%02d" 1906ab47cfaaSmrg# time-stamp-end: "'" 1907ab47cfaaSmrg# End: 1908