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