1a1ba9ba4Schristos#! /bin/sh 2a1ba9ba4Schristos# Configuration validation subroutine script. 3*184b2d41Schristos# Copyright 1992-2020 Free Software Foundation, Inc. 4a1ba9ba4Schristos 5*184b2d41Schristostimestamp='2020-01-01' 6a1ba9ba4Schristos 7a1ba9ba4Schristos# This file is free software; you can redistribute it and/or modify it 8a1ba9ba4Schristos# under the terms of the GNU General Public License as published by 9a1ba9ba4Schristos# the Free Software Foundation; either version 3 of the License, or 10a1ba9ba4Schristos# (at your option) any later version. 11a1ba9ba4Schristos# 12a1ba9ba4Schristos# This program is distributed in the hope that it will be useful, but 13a1ba9ba4Schristos# WITHOUT ANY WARRANTY; without even the implied warranty of 14a1ba9ba4Schristos# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15a1ba9ba4Schristos# General Public License for more details. 16a1ba9ba4Schristos# 17a1ba9ba4Schristos# You should have received a copy of the GNU General Public License 18051580eeSchristos# along with this program; if not, see <https://www.gnu.org/licenses/>. 19a1ba9ba4Schristos# 20a1ba9ba4Schristos# As a special exception to the GNU General Public License, if you 21a1ba9ba4Schristos# distribute this file as part of a program that contains a 22a1ba9ba4Schristos# configuration script generated by Autoconf, you may include it under 23a1ba9ba4Schristos# the same distribution terms that you use for the rest of that 24a1ba9ba4Schristos# program. This Exception is an additional permission under section 7 25a1ba9ba4Schristos# of the GNU General Public License, version 3 ("GPLv3"). 26a1ba9ba4Schristos 27a1ba9ba4Schristos 28a1ba9ba4Schristos# Please send patches to <config-patches@gnu.org>. 29a1ba9ba4Schristos# 30a1ba9ba4Schristos# Configuration subroutine to validate and canonicalize a configuration type. 31a1ba9ba4Schristos# Supply the specified configuration type as an argument. 32a1ba9ba4Schristos# If it is invalid, we print an error message on stderr and exit with code 1. 33a1ba9ba4Schristos# Otherwise, we print the canonical config type on stdout and succeed. 34a1ba9ba4Schristos 35a1ba9ba4Schristos# You can get the latest version of this script from: 36051580eeSchristos# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub 37a1ba9ba4Schristos 38a1ba9ba4Schristos# This file is supposed to be the same for all GNU packages 39a1ba9ba4Schristos# and recognize all the CPU types, system types and aliases 40a1ba9ba4Schristos# that are meaningful with *any* GNU software. 41a1ba9ba4Schristos# Each package is responsible for reporting which valid configurations 42a1ba9ba4Schristos# it does not support. The user should be able to distinguish 43a1ba9ba4Schristos# a failure to support a valid configuration from a meaningless 44a1ba9ba4Schristos# configuration. 45a1ba9ba4Schristos 46a1ba9ba4Schristos# The goal of this file is to map all the various variations of a given 47a1ba9ba4Schristos# machine specification into a single specification in the form: 48a1ba9ba4Schristos# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 49a1ba9ba4Schristos# or in some cases, the newer four-part form: 50a1ba9ba4Schristos# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 51a1ba9ba4Schristos# It is wrong to echo any other type of specification. 52a1ba9ba4Schristos 53a1ba9ba4Schristosme=`echo "$0" | sed -e 's,.*/,,'` 54a1ba9ba4Schristos 55a1ba9ba4Schristosusage="\ 5632b71e0eSsevanUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 57a1ba9ba4Schristos 58a1ba9ba4SchristosCanonicalize a configuration name. 59a1ba9ba4Schristos 60051580eeSchristosOptions: 61a1ba9ba4Schristos -h, --help print this help, then exit 62a1ba9ba4Schristos -t, --time-stamp print date of last modification, then exit 63a1ba9ba4Schristos -v, --version print version number, then exit 64a1ba9ba4Schristos 65a1ba9ba4SchristosReport bugs and patches to <config-patches@gnu.org>." 66a1ba9ba4Schristos 67a1ba9ba4Schristosversion="\ 68a1ba9ba4SchristosGNU config.sub ($timestamp) 69a1ba9ba4Schristos 70*184b2d41SchristosCopyright 1992-2020 Free Software Foundation, Inc. 71a1ba9ba4Schristos 72a1ba9ba4SchristosThis is free software; see the source for copying conditions. There is NO 73a1ba9ba4Schristoswarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 74a1ba9ba4Schristos 75a1ba9ba4Schristoshelp=" 76a1ba9ba4SchristosTry \`$me --help' for more information." 77a1ba9ba4Schristos 78a1ba9ba4Schristos# Parse command line 79a1ba9ba4Schristoswhile test $# -gt 0 ; do 80a1ba9ba4Schristos case $1 in 81a1ba9ba4Schristos --time-stamp | --time* | -t ) 82a1ba9ba4Schristos echo "$timestamp" ; exit ;; 83a1ba9ba4Schristos --version | -v ) 84a1ba9ba4Schristos echo "$version" ; exit ;; 85a1ba9ba4Schristos --help | --h* | -h ) 86a1ba9ba4Schristos echo "$usage"; exit ;; 87a1ba9ba4Schristos -- ) # Stop option processing 88a1ba9ba4Schristos shift; break ;; 89a1ba9ba4Schristos - ) # Use stdin as input. 90a1ba9ba4Schristos break ;; 91a1ba9ba4Schristos -* ) 92051580eeSchristos echo "$me: invalid option $1$help" >&2 93a1ba9ba4Schristos exit 1 ;; 94a1ba9ba4Schristos 95a1ba9ba4Schristos *local*) 96a1ba9ba4Schristos # First pass through any local machine types. 97051580eeSchristos echo "$1" 98a1ba9ba4Schristos exit ;; 99a1ba9ba4Schristos 100a1ba9ba4Schristos * ) 101a1ba9ba4Schristos break ;; 102a1ba9ba4Schristos esac 103a1ba9ba4Schristosdone 104a1ba9ba4Schristos 105a1ba9ba4Schristoscase $# in 106a1ba9ba4Schristos 0) echo "$me: missing argument$help" >&2 107a1ba9ba4Schristos exit 1;; 108a1ba9ba4Schristos 1) ;; 109a1ba9ba4Schristos *) echo "$me: too many arguments$help" >&2 110a1ba9ba4Schristos exit 1;; 111a1ba9ba4Schristosesac 112a1ba9ba4Schristos 113051580eeSchristos# Split fields of configuration type 114051580eeSchristos# shellcheck disable=SC2162 115051580eeSchristosIFS="-" read field1 field2 field3 field4 <<EOF 116051580eeSchristos$1 117051580eeSchristosEOF 118051580eeSchristos 119051580eeSchristos# Separate into logical components for further validation 120051580eeSchristoscase $1 in 121051580eeSchristos *-*-*-*-*) 122051580eeSchristos echo Invalid configuration \`"$1"\': more than four components >&2 123051580eeSchristos exit 1 124051580eeSchristos ;; 125051580eeSchristos *-*-*-*) 126051580eeSchristos basic_machine=$field1-$field2 127051580eeSchristos os=$field3-$field4 128051580eeSchristos ;; 129051580eeSchristos *-*-*) 130051580eeSchristos # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two 131051580eeSchristos # parts 132051580eeSchristos maybe_os=$field2-$field3 133a1ba9ba4Schristos case $maybe_os in 134051580eeSchristos nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ 135051580eeSchristos | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ 136051580eeSchristos | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ 137051580eeSchristos | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ 138051580eeSchristos | storm-chaos* | os2-emx* | rtmk-nova*) 139051580eeSchristos basic_machine=$field1 140051580eeSchristos os=$maybe_os 141a1ba9ba4Schristos ;; 142a1ba9ba4Schristos android-linux) 143051580eeSchristos basic_machine=$field1-unknown 144051580eeSchristos os=linux-android 145a1ba9ba4Schristos ;; 146a1ba9ba4Schristos *) 147051580eeSchristos basic_machine=$field1-$field2 148051580eeSchristos os=$field3 149051580eeSchristos ;; 150051580eeSchristos esac 151051580eeSchristos ;; 152051580eeSchristos *-*) 153051580eeSchristos # A lone config we happen to match not fitting any pattern 154051580eeSchristos case $field1-$field2 in 155051580eeSchristos decstation-3100) 156051580eeSchristos basic_machine=mips-dec 157051580eeSchristos os= 158051580eeSchristos ;; 159051580eeSchristos *-*) 160051580eeSchristos # Second component is usually, but not always the OS 161051580eeSchristos case $field2 in 162051580eeSchristos # Prevent following clause from handling this valid os 163051580eeSchristos sun*os*) 164051580eeSchristos basic_machine=$field1 165051580eeSchristos os=$field2 166051580eeSchristos ;; 167051580eeSchristos # Manufacturers 168051580eeSchristos dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ 169051580eeSchristos | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ 170051580eeSchristos | unicom* | ibm* | next | hp | isi* | apollo | altos* \ 171051580eeSchristos | convergent* | ncr* | news | 32* | 3600* | 3100* \ 172051580eeSchristos | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ 173051580eeSchristos | ultra | tti* | harris | dolphin | highlevel | gould \ 174051580eeSchristos | cbm | ns | masscomp | apple | axis | knuth | cray \ 175051580eeSchristos | microblaze* | sim | cisco \ 176051580eeSchristos | oki | wec | wrs | winbond) 177051580eeSchristos basic_machine=$field1-$field2 178051580eeSchristos os= 179051580eeSchristos ;; 180051580eeSchristos *) 181051580eeSchristos basic_machine=$field1 182051580eeSchristos os=$field2 183051580eeSchristos ;; 184051580eeSchristos esac 185051580eeSchristos ;; 186051580eeSchristos esac 187051580eeSchristos ;; 188051580eeSchristos *) 189051580eeSchristos # Convert single-component short-hands not valid as part of 190051580eeSchristos # multi-component configurations. 191051580eeSchristos case $field1 in 192051580eeSchristos 386bsd) 193051580eeSchristos basic_machine=i386-pc 194051580eeSchristos os=bsd 195051580eeSchristos ;; 196051580eeSchristos a29khif) 197051580eeSchristos basic_machine=a29k-amd 198051580eeSchristos os=udi 199051580eeSchristos ;; 200051580eeSchristos adobe68k) 201051580eeSchristos basic_machine=m68010-adobe 202051580eeSchristos os=scout 203051580eeSchristos ;; 204051580eeSchristos alliant) 205051580eeSchristos basic_machine=fx80-alliant 206051580eeSchristos os= 207051580eeSchristos ;; 208051580eeSchristos altos | altos3068) 209051580eeSchristos basic_machine=m68k-altos 210051580eeSchristos os= 211051580eeSchristos ;; 212051580eeSchristos am29k) 213051580eeSchristos basic_machine=a29k-none 214051580eeSchristos os=bsd 215051580eeSchristos ;; 216051580eeSchristos amdahl) 217051580eeSchristos basic_machine=580-amdahl 218051580eeSchristos os=sysv 219051580eeSchristos ;; 220051580eeSchristos amiga) 221051580eeSchristos basic_machine=m68k-unknown 222051580eeSchristos os= 223051580eeSchristos ;; 224051580eeSchristos amigaos | amigados) 225051580eeSchristos basic_machine=m68k-unknown 226051580eeSchristos os=amigaos 227051580eeSchristos ;; 228051580eeSchristos amigaunix | amix) 229051580eeSchristos basic_machine=m68k-unknown 230051580eeSchristos os=sysv4 231051580eeSchristos ;; 232051580eeSchristos apollo68) 233051580eeSchristos basic_machine=m68k-apollo 234051580eeSchristos os=sysv 235051580eeSchristos ;; 236051580eeSchristos apollo68bsd) 237051580eeSchristos basic_machine=m68k-apollo 238051580eeSchristos os=bsd 239051580eeSchristos ;; 240051580eeSchristos aros) 241051580eeSchristos basic_machine=i386-pc 242051580eeSchristos os=aros 243051580eeSchristos ;; 244051580eeSchristos aux) 245051580eeSchristos basic_machine=m68k-apple 246051580eeSchristos os=aux 247051580eeSchristos ;; 248051580eeSchristos balance) 249051580eeSchristos basic_machine=ns32k-sequent 250051580eeSchristos os=dynix 251051580eeSchristos ;; 252051580eeSchristos blackfin) 253051580eeSchristos basic_machine=bfin-unknown 254051580eeSchristos os=linux 255051580eeSchristos ;; 256051580eeSchristos cegcc) 257051580eeSchristos basic_machine=arm-unknown 258051580eeSchristos os=cegcc 259051580eeSchristos ;; 260051580eeSchristos convex-c1) 261051580eeSchristos basic_machine=c1-convex 262051580eeSchristos os=bsd 263051580eeSchristos ;; 264051580eeSchristos convex-c2) 265051580eeSchristos basic_machine=c2-convex 266051580eeSchristos os=bsd 267051580eeSchristos ;; 268051580eeSchristos convex-c32) 269051580eeSchristos basic_machine=c32-convex 270051580eeSchristos os=bsd 271051580eeSchristos ;; 272051580eeSchristos convex-c34) 273051580eeSchristos basic_machine=c34-convex 274051580eeSchristos os=bsd 275051580eeSchristos ;; 276051580eeSchristos convex-c38) 277051580eeSchristos basic_machine=c38-convex 278051580eeSchristos os=bsd 279051580eeSchristos ;; 280051580eeSchristos cray) 281051580eeSchristos basic_machine=j90-cray 282051580eeSchristos os=unicos 283051580eeSchristos ;; 284051580eeSchristos crds | unos) 285051580eeSchristos basic_machine=m68k-crds 286051580eeSchristos os= 287051580eeSchristos ;; 288051580eeSchristos da30) 289051580eeSchristos basic_machine=m68k-da30 290051580eeSchristos os= 291051580eeSchristos ;; 292051580eeSchristos decstation | pmax | pmin | dec3100 | decstatn) 293051580eeSchristos basic_machine=mips-dec 294051580eeSchristos os= 295051580eeSchristos ;; 296051580eeSchristos delta88) 297051580eeSchristos basic_machine=m88k-motorola 298051580eeSchristos os=sysv3 299051580eeSchristos ;; 300051580eeSchristos dicos) 301051580eeSchristos basic_machine=i686-pc 302051580eeSchristos os=dicos 303051580eeSchristos ;; 304051580eeSchristos djgpp) 305051580eeSchristos basic_machine=i586-pc 306051580eeSchristos os=msdosdjgpp 307051580eeSchristos ;; 308051580eeSchristos ebmon29k) 309051580eeSchristos basic_machine=a29k-amd 310051580eeSchristos os=ebmon 311051580eeSchristos ;; 312051580eeSchristos es1800 | OSE68k | ose68k | ose | OSE) 313051580eeSchristos basic_machine=m68k-ericsson 314051580eeSchristos os=ose 315051580eeSchristos ;; 316051580eeSchristos gmicro) 317051580eeSchristos basic_machine=tron-gmicro 318051580eeSchristos os=sysv 319051580eeSchristos ;; 320051580eeSchristos go32) 321051580eeSchristos basic_machine=i386-pc 322051580eeSchristos os=go32 323051580eeSchristos ;; 324051580eeSchristos h8300hms) 325051580eeSchristos basic_machine=h8300-hitachi 326051580eeSchristos os=hms 327051580eeSchristos ;; 328051580eeSchristos h8300xray) 329051580eeSchristos basic_machine=h8300-hitachi 330051580eeSchristos os=xray 331051580eeSchristos ;; 332051580eeSchristos h8500hms) 333051580eeSchristos basic_machine=h8500-hitachi 334051580eeSchristos os=hms 335051580eeSchristos ;; 336051580eeSchristos harris) 337051580eeSchristos basic_machine=m88k-harris 338051580eeSchristos os=sysv3 339051580eeSchristos ;; 340*184b2d41Schristos hp300 | hp300hpux) 341051580eeSchristos basic_machine=m68k-hp 342*184b2d41Schristos os=hpux 343051580eeSchristos ;; 344051580eeSchristos hp300bsd) 345051580eeSchristos basic_machine=m68k-hp 346051580eeSchristos os=bsd 347051580eeSchristos ;; 348051580eeSchristos hppaosf) 349051580eeSchristos basic_machine=hppa1.1-hp 350051580eeSchristos os=osf 351051580eeSchristos ;; 352051580eeSchristos hppro) 353051580eeSchristos basic_machine=hppa1.1-hp 354051580eeSchristos os=proelf 355051580eeSchristos ;; 356051580eeSchristos i386mach) 357051580eeSchristos basic_machine=i386-mach 358051580eeSchristos os=mach 359051580eeSchristos ;; 360051580eeSchristos isi68 | isi) 361051580eeSchristos basic_machine=m68k-isi 362051580eeSchristos os=sysv 363051580eeSchristos ;; 364051580eeSchristos m68knommu) 365051580eeSchristos basic_machine=m68k-unknown 366051580eeSchristos os=linux 367051580eeSchristos ;; 368051580eeSchristos magnum | m3230) 369051580eeSchristos basic_machine=mips-mips 370051580eeSchristos os=sysv 371051580eeSchristos ;; 372051580eeSchristos merlin) 373051580eeSchristos basic_machine=ns32k-utek 374051580eeSchristos os=sysv 375051580eeSchristos ;; 376051580eeSchristos mingw64) 377051580eeSchristos basic_machine=x86_64-pc 378051580eeSchristos os=mingw64 379051580eeSchristos ;; 380051580eeSchristos mingw32) 381051580eeSchristos basic_machine=i686-pc 382051580eeSchristos os=mingw32 383051580eeSchristos ;; 384051580eeSchristos mingw32ce) 385051580eeSchristos basic_machine=arm-unknown 386051580eeSchristos os=mingw32ce 387051580eeSchristos ;; 388051580eeSchristos monitor) 389051580eeSchristos basic_machine=m68k-rom68k 390051580eeSchristos os=coff 391051580eeSchristos ;; 392051580eeSchristos morphos) 393051580eeSchristos basic_machine=powerpc-unknown 394051580eeSchristos os=morphos 395051580eeSchristos ;; 396051580eeSchristos moxiebox) 397051580eeSchristos basic_machine=moxie-unknown 398051580eeSchristos os=moxiebox 399051580eeSchristos ;; 400051580eeSchristos msdos) 401051580eeSchristos basic_machine=i386-pc 402051580eeSchristos os=msdos 403051580eeSchristos ;; 404051580eeSchristos msys) 405051580eeSchristos basic_machine=i686-pc 406051580eeSchristos os=msys 407051580eeSchristos ;; 408051580eeSchristos mvs) 409051580eeSchristos basic_machine=i370-ibm 410051580eeSchristos os=mvs 411051580eeSchristos ;; 412051580eeSchristos nacl) 413051580eeSchristos basic_machine=le32-unknown 414051580eeSchristos os=nacl 415051580eeSchristos ;; 416051580eeSchristos ncr3000) 417051580eeSchristos basic_machine=i486-ncr 418051580eeSchristos os=sysv4 419051580eeSchristos ;; 420051580eeSchristos netbsd386) 421051580eeSchristos basic_machine=i386-pc 422051580eeSchristos os=netbsd 423051580eeSchristos ;; 424051580eeSchristos netwinder) 425051580eeSchristos basic_machine=armv4l-rebel 426051580eeSchristos os=linux 427051580eeSchristos ;; 428051580eeSchristos news | news700 | news800 | news900) 429051580eeSchristos basic_machine=m68k-sony 430051580eeSchristos os=newsos 431051580eeSchristos ;; 432051580eeSchristos news1000) 433051580eeSchristos basic_machine=m68030-sony 434051580eeSchristos os=newsos 435051580eeSchristos ;; 436051580eeSchristos necv70) 437051580eeSchristos basic_machine=v70-nec 438051580eeSchristos os=sysv 439051580eeSchristos ;; 440051580eeSchristos nh3000) 441051580eeSchristos basic_machine=m68k-harris 442051580eeSchristos os=cxux 443051580eeSchristos ;; 444051580eeSchristos nh[45]000) 445051580eeSchristos basic_machine=m88k-harris 446051580eeSchristos os=cxux 447051580eeSchristos ;; 448051580eeSchristos nindy960) 449051580eeSchristos basic_machine=i960-intel 450051580eeSchristos os=nindy 451051580eeSchristos ;; 452051580eeSchristos mon960) 453051580eeSchristos basic_machine=i960-intel 454051580eeSchristos os=mon960 455051580eeSchristos ;; 456051580eeSchristos nonstopux) 457051580eeSchristos basic_machine=mips-compaq 458051580eeSchristos os=nonstopux 459051580eeSchristos ;; 460051580eeSchristos os400) 461051580eeSchristos basic_machine=powerpc-ibm 462051580eeSchristos os=os400 463051580eeSchristos ;; 464051580eeSchristos OSE68000 | ose68000) 465051580eeSchristos basic_machine=m68000-ericsson 466051580eeSchristos os=ose 467051580eeSchristos ;; 468051580eeSchristos os68k) 469051580eeSchristos basic_machine=m68k-none 470051580eeSchristos os=os68k 471051580eeSchristos ;; 472051580eeSchristos paragon) 473051580eeSchristos basic_machine=i860-intel 474051580eeSchristos os=osf 475051580eeSchristos ;; 476051580eeSchristos parisc) 477051580eeSchristos basic_machine=hppa-unknown 478051580eeSchristos os=linux 479051580eeSchristos ;; 480051580eeSchristos pw32) 481051580eeSchristos basic_machine=i586-unknown 482051580eeSchristos os=pw32 483051580eeSchristos ;; 484051580eeSchristos rdos | rdos64) 485051580eeSchristos basic_machine=x86_64-pc 486051580eeSchristos os=rdos 487051580eeSchristos ;; 488051580eeSchristos rdos32) 489051580eeSchristos basic_machine=i386-pc 490051580eeSchristos os=rdos 491051580eeSchristos ;; 492051580eeSchristos rom68k) 493051580eeSchristos basic_machine=m68k-rom68k 494051580eeSchristos os=coff 495051580eeSchristos ;; 496051580eeSchristos sa29200) 497051580eeSchristos basic_machine=a29k-amd 498051580eeSchristos os=udi 499051580eeSchristos ;; 500051580eeSchristos sei) 501051580eeSchristos basic_machine=mips-sei 502051580eeSchristos os=seiux 503051580eeSchristos ;; 504051580eeSchristos sequent) 505051580eeSchristos basic_machine=i386-sequent 506051580eeSchristos os= 507051580eeSchristos ;; 508051580eeSchristos sps7) 509051580eeSchristos basic_machine=m68k-bull 510051580eeSchristos os=sysv2 511051580eeSchristos ;; 512051580eeSchristos st2000) 513051580eeSchristos basic_machine=m68k-tandem 514051580eeSchristos os= 515051580eeSchristos ;; 516051580eeSchristos stratus) 517051580eeSchristos basic_machine=i860-stratus 518051580eeSchristos os=sysv4 519051580eeSchristos ;; 520051580eeSchristos sun2) 521051580eeSchristos basic_machine=m68000-sun 522051580eeSchristos os= 523051580eeSchristos ;; 524051580eeSchristos sun2os3) 525051580eeSchristos basic_machine=m68000-sun 526051580eeSchristos os=sunos3 527051580eeSchristos ;; 528051580eeSchristos sun2os4) 529051580eeSchristos basic_machine=m68000-sun 530051580eeSchristos os=sunos4 531051580eeSchristos ;; 532051580eeSchristos sun3) 533051580eeSchristos basic_machine=m68k-sun 534051580eeSchristos os= 535051580eeSchristos ;; 536051580eeSchristos sun3os3) 537051580eeSchristos basic_machine=m68k-sun 538051580eeSchristos os=sunos3 539051580eeSchristos ;; 540051580eeSchristos sun3os4) 541051580eeSchristos basic_machine=m68k-sun 542051580eeSchristos os=sunos4 543051580eeSchristos ;; 544051580eeSchristos sun4) 545051580eeSchristos basic_machine=sparc-sun 546051580eeSchristos os= 547051580eeSchristos ;; 548051580eeSchristos sun4os3) 549051580eeSchristos basic_machine=sparc-sun 550051580eeSchristos os=sunos3 551051580eeSchristos ;; 552051580eeSchristos sun4os4) 553051580eeSchristos basic_machine=sparc-sun 554051580eeSchristos os=sunos4 555051580eeSchristos ;; 556051580eeSchristos sun4sol2) 557051580eeSchristos basic_machine=sparc-sun 558051580eeSchristos os=solaris2 559051580eeSchristos ;; 560051580eeSchristos sun386 | sun386i | roadrunner) 561051580eeSchristos basic_machine=i386-sun 562051580eeSchristos os= 563051580eeSchristos ;; 564051580eeSchristos sv1) 565051580eeSchristos basic_machine=sv1-cray 566051580eeSchristos os=unicos 567051580eeSchristos ;; 568051580eeSchristos symmetry) 569051580eeSchristos basic_machine=i386-sequent 570051580eeSchristos os=dynix 571051580eeSchristos ;; 572051580eeSchristos t3e) 573051580eeSchristos basic_machine=alphaev5-cray 574051580eeSchristos os=unicos 575051580eeSchristos ;; 576051580eeSchristos t90) 577051580eeSchristos basic_machine=t90-cray 578051580eeSchristos os=unicos 579051580eeSchristos ;; 580051580eeSchristos toad1) 581051580eeSchristos basic_machine=pdp10-xkl 582051580eeSchristos os=tops20 583051580eeSchristos ;; 584051580eeSchristos tpf) 585051580eeSchristos basic_machine=s390x-ibm 586051580eeSchristos os=tpf 587051580eeSchristos ;; 588051580eeSchristos udi29k) 589051580eeSchristos basic_machine=a29k-amd 590051580eeSchristos os=udi 591051580eeSchristos ;; 592051580eeSchristos ultra3) 593051580eeSchristos basic_machine=a29k-nyu 594051580eeSchristos os=sym1 595051580eeSchristos ;; 596051580eeSchristos v810 | necv810) 597051580eeSchristos basic_machine=v810-nec 598051580eeSchristos os=none 599051580eeSchristos ;; 600051580eeSchristos vaxv) 601051580eeSchristos basic_machine=vax-dec 602051580eeSchristos os=sysv 603051580eeSchristos ;; 604051580eeSchristos vms) 605051580eeSchristos basic_machine=vax-dec 606051580eeSchristos os=vms 607051580eeSchristos ;; 608*184b2d41Schristos vsta) 609*184b2d41Schristos basic_machine=i386-pc 610*184b2d41Schristos os=vsta 611*184b2d41Schristos ;; 612051580eeSchristos vxworks960) 613051580eeSchristos basic_machine=i960-wrs 614051580eeSchristos os=vxworks 615051580eeSchristos ;; 616051580eeSchristos vxworks68) 617051580eeSchristos basic_machine=m68k-wrs 618051580eeSchristos os=vxworks 619051580eeSchristos ;; 620051580eeSchristos vxworks29k) 621051580eeSchristos basic_machine=a29k-wrs 622051580eeSchristos os=vxworks 623051580eeSchristos ;; 624051580eeSchristos xbox) 625051580eeSchristos basic_machine=i686-pc 626051580eeSchristos os=mingw32 627051580eeSchristos ;; 628051580eeSchristos ymp) 629051580eeSchristos basic_machine=ymp-cray 630051580eeSchristos os=unicos 631051580eeSchristos ;; 632051580eeSchristos *) 633051580eeSchristos basic_machine=$1 634051580eeSchristos os= 635051580eeSchristos ;; 636051580eeSchristos esac 637a1ba9ba4Schristos ;; 638a1ba9ba4Schristosesac 639a1ba9ba4Schristos 640051580eeSchristos# Decode 1-component or ad-hoc basic machines 641a1ba9ba4Schristoscase $basic_machine in 642051580eeSchristos # Here we handle the default manufacturer of certain CPU types. It is in 643051580eeSchristos # some cases the only manufacturer, in others, it is the most popular. 644051580eeSchristos w89k) 645051580eeSchristos cpu=hppa1.1 646051580eeSchristos vendor=winbond 647051580eeSchristos ;; 648051580eeSchristos op50n) 649051580eeSchristos cpu=hppa1.1 650051580eeSchristos vendor=oki 651051580eeSchristos ;; 652051580eeSchristos op60c) 653051580eeSchristos cpu=hppa1.1 654051580eeSchristos vendor=oki 655051580eeSchristos ;; 656051580eeSchristos ibm*) 657051580eeSchristos cpu=i370 658051580eeSchristos vendor=ibm 659051580eeSchristos ;; 660051580eeSchristos orion105) 661051580eeSchristos cpu=clipper 662051580eeSchristos vendor=highlevel 663051580eeSchristos ;; 664051580eeSchristos mac | mpw | mac-mpw) 665051580eeSchristos cpu=m68k 666051580eeSchristos vendor=apple 667051580eeSchristos ;; 668051580eeSchristos pmac | pmac-mpw) 669051580eeSchristos cpu=powerpc 670051580eeSchristos vendor=apple 671051580eeSchristos ;; 672051580eeSchristos 673051580eeSchristos # Recognize the various machine names and aliases which stand 674051580eeSchristos # for a CPU type and a company and sometimes even an OS. 675051580eeSchristos 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 676051580eeSchristos cpu=m68000 677051580eeSchristos vendor=att 678051580eeSchristos ;; 679051580eeSchristos 3b*) 680051580eeSchristos cpu=we32k 681051580eeSchristos vendor=att 682051580eeSchristos ;; 683051580eeSchristos bluegene*) 684051580eeSchristos cpu=powerpc 685051580eeSchristos vendor=ibm 686051580eeSchristos os=cnk 687051580eeSchristos ;; 688051580eeSchristos decsystem10* | dec10*) 689051580eeSchristos cpu=pdp10 690051580eeSchristos vendor=dec 691051580eeSchristos os=tops10 692051580eeSchristos ;; 693051580eeSchristos decsystem20* | dec20*) 694051580eeSchristos cpu=pdp10 695051580eeSchristos vendor=dec 696051580eeSchristos os=tops20 697051580eeSchristos ;; 698051580eeSchristos delta | 3300 | motorola-3300 | motorola-delta \ 699051580eeSchristos | 3300-motorola | delta-motorola) 700051580eeSchristos cpu=m68k 701051580eeSchristos vendor=motorola 702051580eeSchristos ;; 703051580eeSchristos dpx2*) 704051580eeSchristos cpu=m68k 705051580eeSchristos vendor=bull 706051580eeSchristos os=sysv3 707051580eeSchristos ;; 708051580eeSchristos encore | umax | mmax) 709051580eeSchristos cpu=ns32k 710051580eeSchristos vendor=encore 711051580eeSchristos ;; 712051580eeSchristos elxsi) 713051580eeSchristos cpu=elxsi 714051580eeSchristos vendor=elxsi 715051580eeSchristos os=${os:-bsd} 716051580eeSchristos ;; 717051580eeSchristos fx2800) 718051580eeSchristos cpu=i860 719051580eeSchristos vendor=alliant 720051580eeSchristos ;; 721051580eeSchristos genix) 722051580eeSchristos cpu=ns32k 723051580eeSchristos vendor=ns 724051580eeSchristos ;; 725051580eeSchristos h3050r* | hiux*) 726051580eeSchristos cpu=hppa1.1 727051580eeSchristos vendor=hitachi 728051580eeSchristos os=hiuxwe2 729051580eeSchristos ;; 730051580eeSchristos hp3k9[0-9][0-9] | hp9[0-9][0-9]) 731051580eeSchristos cpu=hppa1.0 732051580eeSchristos vendor=hp 733051580eeSchristos ;; 734051580eeSchristos hp9k2[0-9][0-9] | hp9k31[0-9]) 735051580eeSchristos cpu=m68000 736051580eeSchristos vendor=hp 737051580eeSchristos ;; 738051580eeSchristos hp9k3[2-9][0-9]) 739051580eeSchristos cpu=m68k 740051580eeSchristos vendor=hp 741051580eeSchristos ;; 742051580eeSchristos hp9k6[0-9][0-9] | hp6[0-9][0-9]) 743051580eeSchristos cpu=hppa1.0 744051580eeSchristos vendor=hp 745051580eeSchristos ;; 746051580eeSchristos hp9k7[0-79][0-9] | hp7[0-79][0-9]) 747051580eeSchristos cpu=hppa1.1 748051580eeSchristos vendor=hp 749051580eeSchristos ;; 750051580eeSchristos hp9k78[0-9] | hp78[0-9]) 751051580eeSchristos # FIXME: really hppa2.0-hp 752051580eeSchristos cpu=hppa1.1 753051580eeSchristos vendor=hp 754051580eeSchristos ;; 755051580eeSchristos hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 756051580eeSchristos # FIXME: really hppa2.0-hp 757051580eeSchristos cpu=hppa1.1 758051580eeSchristos vendor=hp 759051580eeSchristos ;; 760051580eeSchristos hp9k8[0-9][13679] | hp8[0-9][13679]) 761051580eeSchristos cpu=hppa1.1 762051580eeSchristos vendor=hp 763051580eeSchristos ;; 764051580eeSchristos hp9k8[0-9][0-9] | hp8[0-9][0-9]) 765051580eeSchristos cpu=hppa1.0 766051580eeSchristos vendor=hp 767051580eeSchristos ;; 768051580eeSchristos i*86v32) 769051580eeSchristos cpu=`echo "$1" | sed -e 's/86.*/86/'` 770051580eeSchristos vendor=pc 771051580eeSchristos os=sysv32 772051580eeSchristos ;; 773051580eeSchristos i*86v4*) 774051580eeSchristos cpu=`echo "$1" | sed -e 's/86.*/86/'` 775051580eeSchristos vendor=pc 776051580eeSchristos os=sysv4 777051580eeSchristos ;; 778051580eeSchristos i*86v) 779051580eeSchristos cpu=`echo "$1" | sed -e 's/86.*/86/'` 780051580eeSchristos vendor=pc 781051580eeSchristos os=sysv 782051580eeSchristos ;; 783051580eeSchristos i*86sol2) 784051580eeSchristos cpu=`echo "$1" | sed -e 's/86.*/86/'` 785051580eeSchristos vendor=pc 786051580eeSchristos os=solaris2 787051580eeSchristos ;; 788051580eeSchristos j90 | j90-cray) 789051580eeSchristos cpu=j90 790051580eeSchristos vendor=cray 791051580eeSchristos os=${os:-unicos} 792051580eeSchristos ;; 793051580eeSchristos iris | iris4d) 794051580eeSchristos cpu=mips 795051580eeSchristos vendor=sgi 796051580eeSchristos case $os in 797051580eeSchristos irix*) 798051580eeSchristos ;; 799051580eeSchristos *) 800051580eeSchristos os=irix4 801051580eeSchristos ;; 802051580eeSchristos esac 803051580eeSchristos ;; 804051580eeSchristos miniframe) 805051580eeSchristos cpu=m68000 806051580eeSchristos vendor=convergent 807051580eeSchristos ;; 808051580eeSchristos *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) 809051580eeSchristos cpu=m68k 810051580eeSchristos vendor=atari 811051580eeSchristos os=mint 812051580eeSchristos ;; 813051580eeSchristos news-3600 | risc-news) 814051580eeSchristos cpu=mips 815051580eeSchristos vendor=sony 816051580eeSchristos os=newsos 817051580eeSchristos ;; 818051580eeSchristos next | m*-next) 819051580eeSchristos cpu=m68k 820051580eeSchristos vendor=next 821051580eeSchristos case $os in 822*184b2d41Schristos openstep*) 823*184b2d41Schristos ;; 824051580eeSchristos nextstep*) 825051580eeSchristos ;; 826051580eeSchristos ns2*) 827051580eeSchristos os=nextstep2 828051580eeSchristos ;; 829051580eeSchristos *) 830051580eeSchristos os=nextstep3 831051580eeSchristos ;; 832051580eeSchristos esac 833051580eeSchristos ;; 834051580eeSchristos np1) 835051580eeSchristos cpu=np1 836051580eeSchristos vendor=gould 837051580eeSchristos ;; 838051580eeSchristos op50n-* | op60c-*) 839051580eeSchristos cpu=hppa1.1 840051580eeSchristos vendor=oki 841051580eeSchristos os=proelf 842051580eeSchristos ;; 843051580eeSchristos pa-hitachi) 844051580eeSchristos cpu=hppa1.1 845051580eeSchristos vendor=hitachi 846051580eeSchristos os=hiuxwe2 847051580eeSchristos ;; 848051580eeSchristos pbd) 849051580eeSchristos cpu=sparc 850051580eeSchristos vendor=tti 851051580eeSchristos ;; 852051580eeSchristos pbb) 853051580eeSchristos cpu=m68k 854051580eeSchristos vendor=tti 855051580eeSchristos ;; 856051580eeSchristos pc532) 857051580eeSchristos cpu=ns32k 858051580eeSchristos vendor=pc532 859051580eeSchristos ;; 860051580eeSchristos pn) 861051580eeSchristos cpu=pn 862051580eeSchristos vendor=gould 863051580eeSchristos ;; 864051580eeSchristos power) 865051580eeSchristos cpu=power 866051580eeSchristos vendor=ibm 867051580eeSchristos ;; 868051580eeSchristos ps2) 869051580eeSchristos cpu=i386 870051580eeSchristos vendor=ibm 871051580eeSchristos ;; 872051580eeSchristos rm[46]00) 873051580eeSchristos cpu=mips 874051580eeSchristos vendor=siemens 875051580eeSchristos ;; 876051580eeSchristos rtpc | rtpc-*) 877051580eeSchristos cpu=romp 878051580eeSchristos vendor=ibm 879051580eeSchristos ;; 880051580eeSchristos sde) 881051580eeSchristos cpu=mipsisa32 882051580eeSchristos vendor=sde 883051580eeSchristos os=${os:-elf} 884051580eeSchristos ;; 885051580eeSchristos simso-wrs) 886051580eeSchristos cpu=sparclite 887051580eeSchristos vendor=wrs 888051580eeSchristos os=vxworks 889051580eeSchristos ;; 890051580eeSchristos tower | tower-32) 891051580eeSchristos cpu=m68k 892051580eeSchristos vendor=ncr 893051580eeSchristos ;; 894051580eeSchristos vpp*|vx|vx-*) 895051580eeSchristos cpu=f301 896051580eeSchristos vendor=fujitsu 897051580eeSchristos ;; 898051580eeSchristos w65) 899051580eeSchristos cpu=w65 900051580eeSchristos vendor=wdc 901051580eeSchristos ;; 902051580eeSchristos w89k-*) 903051580eeSchristos cpu=hppa1.1 904051580eeSchristos vendor=winbond 905051580eeSchristos os=proelf 906051580eeSchristos ;; 907051580eeSchristos none) 908051580eeSchristos cpu=none 909051580eeSchristos vendor=none 910051580eeSchristos ;; 911051580eeSchristos leon|leon[3-9]) 912051580eeSchristos cpu=sparc 913051580eeSchristos vendor=$basic_machine 914051580eeSchristos ;; 915051580eeSchristos leon-*|leon[3-9]-*) 916051580eeSchristos cpu=sparc 917051580eeSchristos vendor=`echo "$basic_machine" | sed 's/-.*//'` 918051580eeSchristos ;; 919051580eeSchristos 920051580eeSchristos *-*) 921051580eeSchristos # shellcheck disable=SC2162 922051580eeSchristos IFS="-" read cpu vendor <<EOF 923051580eeSchristos$basic_machine 924051580eeSchristosEOF 925051580eeSchristos ;; 926051580eeSchristos # We use `pc' rather than `unknown' 927051580eeSchristos # because (1) that's what they normally are, and 928051580eeSchristos # (2) the word "unknown" tends to confuse beginning users. 929051580eeSchristos i*86 | x86_64) 930051580eeSchristos cpu=$basic_machine 931051580eeSchristos vendor=pc 932051580eeSchristos ;; 933051580eeSchristos # These rules are duplicated from below for sake of the special case above; 934051580eeSchristos # i.e. things that normalized to x86 arches should also default to "pc" 935051580eeSchristos pc98) 936051580eeSchristos cpu=i386 937051580eeSchristos vendor=pc 938051580eeSchristos ;; 939051580eeSchristos x64 | amd64) 940051580eeSchristos cpu=x86_64 941051580eeSchristos vendor=pc 942051580eeSchristos ;; 943a1ba9ba4Schristos # Recognize the basic CPU types without company name. 944051580eeSchristos *) 945051580eeSchristos cpu=$basic_machine 946051580eeSchristos vendor=unknown 947051580eeSchristos ;; 948051580eeSchristosesac 949051580eeSchristos 950051580eeSchristosunset -v basic_machine 951051580eeSchristos 952051580eeSchristos# Decode basic machines in the full and proper CPU-Company form. 953051580eeSchristoscase $cpu-$vendor in 954051580eeSchristos # Here we handle the default manufacturer of certain CPU types in canonical form. It is in 955051580eeSchristos # some cases the only manufacturer, in others, it is the most popular. 956051580eeSchristos craynv-unknown) 957051580eeSchristos vendor=cray 958051580eeSchristos os=${os:-unicosmp} 959051580eeSchristos ;; 960051580eeSchristos c90-unknown | c90-cray) 961051580eeSchristos vendor=cray 962051580eeSchristos os=${os:-unicos} 963051580eeSchristos ;; 964051580eeSchristos fx80-unknown) 965051580eeSchristos vendor=alliant 966051580eeSchristos ;; 967051580eeSchristos romp-unknown) 968051580eeSchristos vendor=ibm 969051580eeSchristos ;; 970051580eeSchristos mmix-unknown) 971051580eeSchristos vendor=knuth 972051580eeSchristos ;; 973051580eeSchristos microblaze-unknown | microblazeel-unknown) 974051580eeSchristos vendor=xilinx 975051580eeSchristos ;; 976051580eeSchristos rs6000-unknown) 977051580eeSchristos vendor=ibm 978051580eeSchristos ;; 979051580eeSchristos vax-unknown) 980051580eeSchristos vendor=dec 981051580eeSchristos ;; 982051580eeSchristos pdp11-unknown) 983051580eeSchristos vendor=dec 984051580eeSchristos ;; 985051580eeSchristos we32k-unknown) 986051580eeSchristos vendor=att 987051580eeSchristos ;; 988051580eeSchristos cydra-unknown) 989051580eeSchristos vendor=cydrome 990051580eeSchristos ;; 991051580eeSchristos i370-ibm*) 992051580eeSchristos vendor=ibm 993051580eeSchristos ;; 994051580eeSchristos orion-unknown) 995051580eeSchristos vendor=highlevel 996051580eeSchristos ;; 997051580eeSchristos xps-unknown | xps100-unknown) 998051580eeSchristos cpu=xps100 999051580eeSchristos vendor=honeywell 1000051580eeSchristos ;; 1001051580eeSchristos 1002051580eeSchristos # Here we normalize CPU types with a missing or matching vendor 1003051580eeSchristos dpx20-unknown | dpx20-bull) 1004051580eeSchristos cpu=rs6000 1005051580eeSchristos vendor=bull 1006051580eeSchristos os=${os:-bosx} 1007051580eeSchristos ;; 1008051580eeSchristos 1009051580eeSchristos # Here we normalize CPU types irrespective of the vendor 1010051580eeSchristos amd64-*) 1011051580eeSchristos cpu=x86_64 1012051580eeSchristos ;; 1013051580eeSchristos blackfin-*) 1014051580eeSchristos cpu=bfin 1015051580eeSchristos os=linux 1016051580eeSchristos ;; 1017051580eeSchristos c54x-*) 1018051580eeSchristos cpu=tic54x 1019051580eeSchristos ;; 1020051580eeSchristos c55x-*) 1021051580eeSchristos cpu=tic55x 1022051580eeSchristos ;; 1023051580eeSchristos c6x-*) 1024051580eeSchristos cpu=tic6x 1025051580eeSchristos ;; 1026051580eeSchristos e500v[12]-*) 1027051580eeSchristos cpu=powerpc 1028051580eeSchristos os=$os"spe" 1029051580eeSchristos ;; 1030051580eeSchristos mips3*-*) 1031051580eeSchristos cpu=mips64 1032051580eeSchristos ;; 1033051580eeSchristos ms1-*) 1034051580eeSchristos cpu=mt 1035051580eeSchristos ;; 1036051580eeSchristos m68knommu-*) 1037051580eeSchristos cpu=m68k 1038051580eeSchristos os=linux 1039051580eeSchristos ;; 1040051580eeSchristos m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) 1041051580eeSchristos cpu=s12z 1042051580eeSchristos ;; 1043051580eeSchristos openrisc-*) 1044051580eeSchristos cpu=or32 1045051580eeSchristos ;; 1046051580eeSchristos parisc-*) 1047051580eeSchristos cpu=hppa 1048051580eeSchristos os=linux 1049051580eeSchristos ;; 1050051580eeSchristos pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 1051051580eeSchristos cpu=i586 1052051580eeSchristos ;; 1053051580eeSchristos pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) 1054051580eeSchristos cpu=i686 1055051580eeSchristos ;; 1056051580eeSchristos pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 1057051580eeSchristos cpu=i686 1058051580eeSchristos ;; 1059051580eeSchristos pentium4-*) 1060051580eeSchristos cpu=i786 1061051580eeSchristos ;; 1062051580eeSchristos pc98-*) 1063051580eeSchristos cpu=i386 1064051580eeSchristos ;; 1065051580eeSchristos ppc-* | ppcbe-*) 1066051580eeSchristos cpu=powerpc 1067051580eeSchristos ;; 1068051580eeSchristos ppcle-* | powerpclittle-*) 1069051580eeSchristos cpu=powerpcle 1070051580eeSchristos ;; 1071051580eeSchristos ppc64-*) 1072051580eeSchristos cpu=powerpc64 1073051580eeSchristos ;; 1074051580eeSchristos ppc64le-* | powerpc64little-*) 1075051580eeSchristos cpu=powerpc64le 1076051580eeSchristos ;; 1077051580eeSchristos sb1-*) 1078051580eeSchristos cpu=mipsisa64sb1 1079051580eeSchristos ;; 1080051580eeSchristos sb1el-*) 1081051580eeSchristos cpu=mipsisa64sb1el 1082051580eeSchristos ;; 1083051580eeSchristos sh5e[lb]-*) 1084051580eeSchristos cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` 1085051580eeSchristos ;; 1086051580eeSchristos spur-*) 1087051580eeSchristos cpu=spur 1088051580eeSchristos ;; 1089051580eeSchristos strongarm-* | thumb-*) 1090051580eeSchristos cpu=arm 1091051580eeSchristos ;; 1092051580eeSchristos tx39-*) 1093051580eeSchristos cpu=mipstx39 1094051580eeSchristos ;; 1095051580eeSchristos tx39el-*) 1096051580eeSchristos cpu=mipstx39el 1097051580eeSchristos ;; 1098051580eeSchristos x64-*) 1099051580eeSchristos cpu=x86_64 1100051580eeSchristos ;; 1101051580eeSchristos xscale-* | xscalee[bl]-*) 1102051580eeSchristos cpu=`echo "$cpu" | sed 's/^xscale/arm/'` 1103051580eeSchristos ;; 1104051580eeSchristos 1105051580eeSchristos # Recognize the canonical CPU Types that limit and/or modify the 1106051580eeSchristos # company names they are paired with. 1107051580eeSchristos cr16-*) 1108051580eeSchristos os=${os:-elf} 1109051580eeSchristos ;; 1110051580eeSchristos crisv32-* | etraxfs*-*) 1111051580eeSchristos cpu=crisv32 1112051580eeSchristos vendor=axis 1113051580eeSchristos ;; 1114051580eeSchristos cris-* | etrax*-*) 1115051580eeSchristos cpu=cris 1116051580eeSchristos vendor=axis 1117051580eeSchristos ;; 1118051580eeSchristos crx-*) 1119051580eeSchristos os=${os:-elf} 1120051580eeSchristos ;; 1121051580eeSchristos neo-tandem) 1122051580eeSchristos cpu=neo 1123051580eeSchristos vendor=tandem 1124051580eeSchristos ;; 1125051580eeSchristos nse-tandem) 1126051580eeSchristos cpu=nse 1127051580eeSchristos vendor=tandem 1128051580eeSchristos ;; 1129051580eeSchristos nsr-tandem) 1130051580eeSchristos cpu=nsr 1131051580eeSchristos vendor=tandem 1132051580eeSchristos ;; 1133051580eeSchristos nsv-tandem) 1134051580eeSchristos cpu=nsv 1135051580eeSchristos vendor=tandem 1136051580eeSchristos ;; 1137051580eeSchristos nsx-tandem) 1138051580eeSchristos cpu=nsx 1139051580eeSchristos vendor=tandem 1140051580eeSchristos ;; 1141051580eeSchristos s390-*) 1142051580eeSchristos cpu=s390 1143051580eeSchristos vendor=ibm 1144051580eeSchristos ;; 1145051580eeSchristos s390x-*) 1146051580eeSchristos cpu=s390x 1147051580eeSchristos vendor=ibm 1148051580eeSchristos ;; 1149051580eeSchristos tile*-*) 1150051580eeSchristos os=${os:-linux-gnu} 1151051580eeSchristos ;; 1152051580eeSchristos 1153051580eeSchristos *) 1154051580eeSchristos # Recognize the canonical CPU types that are allowed with any 1155051580eeSchristos # company name. 1156051580eeSchristos case $cpu in 1157a1ba9ba4Schristos 1750a | 580 \ 1158a1ba9ba4Schristos | a29k \ 1159a1ba9ba4Schristos | aarch64 | aarch64_be \ 1160051580eeSchristos | abacus \ 1161051580eeSchristos | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ 1162051580eeSchristos | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ 1163051580eeSchristos | alphapca5[67] | alpha64pca5[67] \ 1164a1ba9ba4Schristos | am33_2.0 \ 1165051580eeSchristos | amdgcn \ 1166a1ba9ba4Schristos | arc | arceb \ 1167051580eeSchristos | arm | arm[lb]e | arme[lb] | armv* \ 1168a1ba9ba4Schristos | avr | avr32 \ 1169051580eeSchristos | asmjs \ 117032b71e0eSsevan | ba \ 1171a1ba9ba4Schristos | be32 | be64 \ 1172*184b2d41Schristos | bfin | bpf | bs2000 \ 1173051580eeSchristos | c[123]* | c30 | [cjt]90 | c4x \ 1174051580eeSchristos | c8051 | clipper | craynv | csky | cydra \ 1175a1ba9ba4Schristos | d10v | d30v | dlx | dsp16xx \ 1176051580eeSchristos | e2k | elxsi | epiphany \ 1177051580eeSchristos | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ 1178051580eeSchristos | h8300 | h8500 \ 1179051580eeSchristos | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 1180a1ba9ba4Schristos | hexagon \ 1181051580eeSchristos | i370 | i*86 | i860 | i960 | ia16 | ia64 \ 1182a1ba9ba4Schristos | ip2k | iq2000 \ 1183a1ba9ba4Schristos | k1om \ 1184a1ba9ba4Schristos | le32 | le64 \ 1185a1ba9ba4Schristos | lm32 \ 1186051580eeSchristos | m32c | m32r | m32rle \ 1187*184b2d41Schristos | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ 1188*184b2d41Schristos | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ 1189051580eeSchristos | m88110 | m88k | maxq | mb | mcore | mep | metag \ 1190051580eeSchristos | microblaze | microblazeel \ 1191a1ba9ba4Schristos | mips | mipsbe | mipseb | mipsel | mipsle \ 1192a1ba9ba4Schristos | mips16 \ 1193*184b2d41Schristos | mips64 | mips64eb | mips64el \ 1194*184b2d41Schristos | mipsn64 | mipsn64eb | mipsn64el \ 1195a1ba9ba4Schristos | mips64octeon | mips64octeonel \ 1196a1ba9ba4Schristos | mips64orion | mips64orionel \ 1197a1ba9ba4Schristos | mips64r5900 | mips64r5900el \ 1198a1ba9ba4Schristos | mips64vr | mips64vrel \ 1199a1ba9ba4Schristos | mips64vr4100 | mips64vr4100el \ 1200a1ba9ba4Schristos | mips64vr4300 | mips64vr4300el \ 1201a1ba9ba4Schristos | mips64vr5000 | mips64vr5000el \ 1202a1ba9ba4Schristos | mips64vr5900 | mips64vr5900el \ 1203a1ba9ba4Schristos | mipsisa32 | mipsisa32el \ 1204a1ba9ba4Schristos | mipsisa32r2 | mipsisa32r2el \ 1205a1ba9ba4Schristos | mipsisa32r6 | mipsisa32r6el \ 1206a1ba9ba4Schristos | mipsisa64 | mipsisa64el \ 1207a1ba9ba4Schristos | mipsisa64r2 | mipsisa64r2el \ 1208a1ba9ba4Schristos | mipsisa64r6 | mipsisa64r6el \ 1209a1ba9ba4Schristos | mipsisa64sb1 | mipsisa64sb1el \ 1210a1ba9ba4Schristos | mipsisa64sr71k | mipsisa64sr71kel \ 1211a1ba9ba4Schristos | mipsr5900 | mipsr5900el \ 1212a1ba9ba4Schristos | mipstx39 | mipstx39el \ 1213051580eeSchristos | mmix \ 1214a1ba9ba4Schristos | mn10200 | mn10300 \ 1215a1ba9ba4Schristos | moxie \ 1216a1ba9ba4Schristos | mt \ 1217a1ba9ba4Schristos | msp430 \ 1218a1ba9ba4Schristos | nds32 | nds32le | nds32be \ 1219051580eeSchristos | nfp \ 1220a1ba9ba4Schristos | nios | nios2 | nios2eb | nios2el \ 1221*184b2d41Schristos | none | np1 | ns16k | ns32k | nvptx \ 1222051580eeSchristos | open8 \ 1223051580eeSchristos | or1k* \ 1224051580eeSchristos | or32 \ 1225051580eeSchristos | orion \ 1226*184b2d41Schristos | picochip \ 1227051580eeSchristos | pdp10 | pdp11 | pj | pjl | pn | power \ 1228051580eeSchristos | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ 122932b71e0eSsevan | pru \ 1230a1ba9ba4Schristos | pyramid \ 1231051580eeSchristos | riscv | riscv32 | riscv64 \ 1232051580eeSchristos | rl78 | romp | rs6000 | rx \ 1233a1ba9ba4Schristos | score \ 1234*184b2d41Schristos | sh | shl \ 1235*184b2d41Schristos | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ 1236051580eeSchristos | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ 1237051580eeSchristos | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ 1238051580eeSchristos | sparclite \ 1239051580eeSchristos | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ 1240a1ba9ba4Schristos | spu \ 1241051580eeSchristos | tahoe \ 1242051580eeSchristos | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ 1243051580eeSchristos | tron \ 1244a1ba9ba4Schristos | ubicom32 \ 1245*184b2d41Schristos | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ 1246051580eeSchristos | vax \ 1247a1ba9ba4Schristos | visium \ 1248*184b2d41Schristos | w65 \ 1249*184b2d41Schristos | wasm32 | wasm64 \ 1250a1ba9ba4Schristos | we32k \ 1251051580eeSchristos | x86 | x86_64 | xc16x | xgate | xps100 \ 1252051580eeSchristos | xstormy16 | xtensa* \ 1253051580eeSchristos | ymp \ 1254a1ba9ba4Schristos | z8k | z80) 1255a1ba9ba4Schristos ;; 1256a1ba9ba4Schristos 1257051580eeSchristos *) 1258051580eeSchristos echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 1259a1ba9ba4Schristos exit 1 1260a1ba9ba4Schristos ;; 1261a1ba9ba4Schristos esac 1262a1ba9ba4Schristos ;; 1263a1ba9ba4Schristosesac 1264a1ba9ba4Schristos 1265a1ba9ba4Schristos# Here we canonicalize certain aliases for manufacturers. 1266051580eeSchristoscase $vendor in 1267051580eeSchristos digital*) 1268051580eeSchristos vendor=dec 1269a1ba9ba4Schristos ;; 1270051580eeSchristos commodore*) 1271051580eeSchristos vendor=cbm 1272a1ba9ba4Schristos ;; 1273a1ba9ba4Schristos *) 1274a1ba9ba4Schristos ;; 1275a1ba9ba4Schristosesac 1276a1ba9ba4Schristos 1277a1ba9ba4Schristos# Decode manufacturer-specific aliases for certain operating systems. 1278a1ba9ba4Schristos 1279051580eeSchristosif [ x$os != x ] 1280a1ba9ba4Schristosthen 1281a1ba9ba4Schristoscase $os in 1282051580eeSchristos # First match some system type aliases that might get confused 1283051580eeSchristos # with valid system types. 1284051580eeSchristos # solaris* is a basic system type, with this one exception. 1285051580eeSchristos auroraux) 1286051580eeSchristos os=auroraux 1287a1ba9ba4Schristos ;; 1288051580eeSchristos bluegene*) 1289051580eeSchristos os=cnk 1290051580eeSchristos ;; 1291051580eeSchristos solaris1 | solaris1.*) 1292a1ba9ba4Schristos os=`echo $os | sed -e 's|solaris1|sunos4|'` 1293a1ba9ba4Schristos ;; 1294051580eeSchristos solaris) 1295051580eeSchristos os=solaris2 1296a1ba9ba4Schristos ;; 1297051580eeSchristos unixware*) 1298051580eeSchristos os=sysv4.2uw 1299a1ba9ba4Schristos ;; 1300051580eeSchristos gnu/linux*) 1301a1ba9ba4Schristos os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` 1302a1ba9ba4Schristos ;; 1303051580eeSchristos # es1800 is here to avoid being matched by es* (a different OS) 1304051580eeSchristos es1800*) 1305051580eeSchristos os=ose 1306051580eeSchristos ;; 1307051580eeSchristos # Some version numbers need modification 1308051580eeSchristos chorusos*) 1309051580eeSchristos os=chorusos 1310051580eeSchristos ;; 1311051580eeSchristos isc) 1312051580eeSchristos os=isc2.2 1313051580eeSchristos ;; 1314051580eeSchristos sco6) 1315051580eeSchristos os=sco5v6 1316051580eeSchristos ;; 1317051580eeSchristos sco5) 1318051580eeSchristos os=sco3.2v5 1319051580eeSchristos ;; 1320051580eeSchristos sco4) 1321051580eeSchristos os=sco3.2v4 1322051580eeSchristos ;; 1323051580eeSchristos sco3.2.[4-9]*) 1324051580eeSchristos os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` 1325051580eeSchristos ;; 1326051580eeSchristos sco3.2v[4-9]* | sco5v6*) 1327051580eeSchristos # Don't forget version if it is 3.2v4 or newer. 1328051580eeSchristos ;; 1329051580eeSchristos scout) 1330051580eeSchristos # Don't match below 1331051580eeSchristos ;; 1332051580eeSchristos sco*) 1333051580eeSchristos os=sco3.2v2 1334051580eeSchristos ;; 1335051580eeSchristos psos*) 1336051580eeSchristos os=psos 1337051580eeSchristos ;; 1338051580eeSchristos # Now accept the basic system types. 1339a1ba9ba4Schristos # The portable systems comes first. 1340051580eeSchristos # Each alternative MUST end in a * to match a version number. 1341051580eeSchristos # sysv* is not here because it comes later, after sysvr4. 1342051580eeSchristos gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ 1343051580eeSchristos | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ 1344051580eeSchristos | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ 1345051580eeSchristos | sym* | kopensolaris* | plan9* \ 1346051580eeSchristos | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ 1347*184b2d41Schristos | aos* | aros* | cloudabi* | sortix* | twizzler* \ 1348051580eeSchristos | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ 1349051580eeSchristos | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ 1350051580eeSchristos | knetbsd* | mirbsd* | netbsd* \ 1351*184b2d41Schristos | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \ 1352051580eeSchristos | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ 1353051580eeSchristos | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ 1354051580eeSchristos | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ 1355051580eeSchristos | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ 1356051580eeSchristos | chorusrdb* | cegcc* | glidix* \ 1357051580eeSchristos | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ 1358051580eeSchristos | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ 1359051580eeSchristos | linux-newlib* | linux-musl* | linux-uclibc* \ 1360051580eeSchristos | uxpv* | beos* | mpeix* | udk* | moxiebox* \ 1361051580eeSchristos | interix* | uwin* | mks* | rhapsody* | darwin* \ 1362051580eeSchristos | openstep* | oskit* | conix* | pw32* | nonstopux* \ 1363051580eeSchristos | storm-chaos* | tops10* | tenex* | tops20* | its* \ 1364051580eeSchristos | os2* | vos* | palmos* | uclinux* | nucleus* \ 1365051580eeSchristos | morphos* | superux* | rtmk* | windiss* \ 1366051580eeSchristos | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ 1367051580eeSchristos | skyos* | haiku* | rdos* | toppers* | drops* | es* \ 1368051580eeSchristos | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ 1369*184b2d41Schristos | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ 1370*184b2d41Schristos | nsk* | powerunix) 1371a1ba9ba4Schristos # Remember, each alternative MUST END IN *, to match a version number. 1372a1ba9ba4Schristos ;; 1373051580eeSchristos qnx*) 1374051580eeSchristos case $cpu in 1375051580eeSchristos x86 | i*86) 1376a1ba9ba4Schristos ;; 1377a1ba9ba4Schristos *) 1378051580eeSchristos os=nto-$os 1379a1ba9ba4Schristos ;; 1380a1ba9ba4Schristos esac 1381a1ba9ba4Schristos ;; 1382051580eeSchristos hiux*) 1383051580eeSchristos os=hiuxwe2 1384a1ba9ba4Schristos ;; 1385051580eeSchristos nto-qnx*) 1386051580eeSchristos ;; 1387051580eeSchristos nto*) 1388a1ba9ba4Schristos os=`echo $os | sed -e 's|nto|nto-qnx|'` 1389a1ba9ba4Schristos ;; 1390051580eeSchristos sim | xray | os68k* | v88r* \ 1391051580eeSchristos | windows* | osx | abug | netware* | os9* \ 1392051580eeSchristos | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) 1393a1ba9ba4Schristos ;; 1394051580eeSchristos linux-dietlibc) 1395051580eeSchristos os=linux-dietlibc 1396a1ba9ba4Schristos ;; 1397051580eeSchristos linux*) 1398a1ba9ba4Schristos os=`echo $os | sed -e 's|linux|linux-gnu|'` 1399a1ba9ba4Schristos ;; 1400051580eeSchristos lynx*178) 1401051580eeSchristos os=lynxos178 1402a1ba9ba4Schristos ;; 1403051580eeSchristos lynx*5) 1404051580eeSchristos os=lynxos5 1405a1ba9ba4Schristos ;; 1406051580eeSchristos lynx*) 1407051580eeSchristos os=lynxos 1408a1ba9ba4Schristos ;; 1409051580eeSchristos mac*) 1410051580eeSchristos os=`echo "$os" | sed -e 's|mac|macos|'` 1411a1ba9ba4Schristos ;; 1412051580eeSchristos opened*) 1413051580eeSchristos os=openedition 1414a1ba9ba4Schristos ;; 1415051580eeSchristos os400*) 1416051580eeSchristos os=os400 1417a1ba9ba4Schristos ;; 1418051580eeSchristos sunos5*) 1419051580eeSchristos os=`echo "$os" | sed -e 's|sunos5|solaris2|'` 1420a1ba9ba4Schristos ;; 1421051580eeSchristos sunos6*) 1422051580eeSchristos os=`echo "$os" | sed -e 's|sunos6|solaris3|'` 1423a1ba9ba4Schristos ;; 1424051580eeSchristos wince*) 1425051580eeSchristos os=wince 1426a1ba9ba4Schristos ;; 1427051580eeSchristos utek*) 1428051580eeSchristos os=bsd 1429a1ba9ba4Schristos ;; 1430051580eeSchristos dynix*) 1431051580eeSchristos os=bsd 1432a1ba9ba4Schristos ;; 1433051580eeSchristos acis*) 1434051580eeSchristos os=aos 1435a1ba9ba4Schristos ;; 1436051580eeSchristos atheos*) 1437051580eeSchristos os=atheos 1438a1ba9ba4Schristos ;; 1439051580eeSchristos syllable*) 1440051580eeSchristos os=syllable 1441a1ba9ba4Schristos ;; 1442051580eeSchristos 386bsd) 1443051580eeSchristos os=bsd 1444a1ba9ba4Schristos ;; 1445051580eeSchristos ctix* | uts*) 1446051580eeSchristos os=sysv 1447a1ba9ba4Schristos ;; 1448051580eeSchristos nova*) 1449051580eeSchristos os=rtmk-nova 1450051580eeSchristos ;; 1451051580eeSchristos ns2) 1452051580eeSchristos os=nextstep2 1453051580eeSchristos ;; 1454a1ba9ba4Schristos # Preserve the version number of sinix5. 1455051580eeSchristos sinix5.*) 1456a1ba9ba4Schristos os=`echo $os | sed -e 's|sinix|sysv|'` 1457a1ba9ba4Schristos ;; 1458051580eeSchristos sinix*) 1459051580eeSchristos os=sysv4 1460a1ba9ba4Schristos ;; 1461051580eeSchristos tpf*) 1462051580eeSchristos os=tpf 1463a1ba9ba4Schristos ;; 1464051580eeSchristos triton*) 1465051580eeSchristos os=sysv3 1466a1ba9ba4Schristos ;; 1467051580eeSchristos oss*) 1468051580eeSchristos os=sysv3 1469a1ba9ba4Schristos ;; 1470051580eeSchristos svr4*) 1471051580eeSchristos os=sysv4 1472a1ba9ba4Schristos ;; 1473051580eeSchristos svr3) 1474051580eeSchristos os=sysv3 1475a1ba9ba4Schristos ;; 1476051580eeSchristos sysvr4) 1477051580eeSchristos os=sysv4 1478a1ba9ba4Schristos ;; 1479051580eeSchristos # This must come after sysvr4. 1480051580eeSchristos sysv*) 1481a1ba9ba4Schristos ;; 1482051580eeSchristos ose*) 1483051580eeSchristos os=ose 1484a1ba9ba4Schristos ;; 1485051580eeSchristos *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 1486051580eeSchristos os=mint 1487a1ba9ba4Schristos ;; 1488051580eeSchristos zvmoe) 1489051580eeSchristos os=zvmoe 1490a1ba9ba4Schristos ;; 1491051580eeSchristos dicos*) 1492051580eeSchristos os=dicos 1493a1ba9ba4Schristos ;; 1494051580eeSchristos pikeos*) 1495051580eeSchristos # Until real need of OS specific support for 1496051580eeSchristos # particular features comes up, bare metal 1497051580eeSchristos # configurations are quite functional. 1498051580eeSchristos case $cpu in 1499051580eeSchristos arm*) 1500051580eeSchristos os=eabi 1501a1ba9ba4Schristos ;; 1502a1ba9ba4Schristos *) 1503051580eeSchristos os=elf 1504051580eeSchristos ;; 1505051580eeSchristos esac 1506051580eeSchristos ;; 1507051580eeSchristos nacl*) 1508051580eeSchristos ;; 1509051580eeSchristos ios) 1510051580eeSchristos ;; 1511051580eeSchristos none) 1512051580eeSchristos ;; 1513051580eeSchristos *-eabi) 1514051580eeSchristos ;; 1515051580eeSchristos *) 1516051580eeSchristos echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 1517a1ba9ba4Schristos exit 1 1518a1ba9ba4Schristos ;; 1519a1ba9ba4Schristosesac 1520a1ba9ba4Schristoselse 1521a1ba9ba4Schristos 1522a1ba9ba4Schristos# Here we handle the default operating systems that come with various machines. 1523a1ba9ba4Schristos# The value should be what the vendor currently ships out the door with their 1524a1ba9ba4Schristos# machine or put another way, the most popular os provided with the machine. 1525a1ba9ba4Schristos 1526a1ba9ba4Schristos# Note that if you're going to try to match "-MANUFACTURER" here (say, 1527a1ba9ba4Schristos# "-sun"), then you have to tell the case statement up towards the top 1528a1ba9ba4Schristos# that MANUFACTURER isn't an operating system. Otherwise, code above 1529a1ba9ba4Schristos# will signal an error saying that MANUFACTURER isn't an operating 1530a1ba9ba4Schristos# system, and we'll never get to this point. 1531a1ba9ba4Schristos 1532051580eeSchristoscase $cpu-$vendor in 1533a1ba9ba4Schristos score-*) 1534051580eeSchristos os=elf 1535a1ba9ba4Schristos ;; 1536a1ba9ba4Schristos spu-*) 1537051580eeSchristos os=elf 1538a1ba9ba4Schristos ;; 1539a1ba9ba4Schristos *-acorn) 1540051580eeSchristos os=riscix1.2 1541a1ba9ba4Schristos ;; 1542a1ba9ba4Schristos arm*-rebel) 1543051580eeSchristos os=linux 1544a1ba9ba4Schristos ;; 1545a1ba9ba4Schristos arm*-semi) 1546051580eeSchristos os=aout 1547a1ba9ba4Schristos ;; 1548a1ba9ba4Schristos c4x-* | tic4x-*) 1549051580eeSchristos os=coff 1550a1ba9ba4Schristos ;; 1551a1ba9ba4Schristos c8051-*) 1552051580eeSchristos os=elf 1553051580eeSchristos ;; 1554051580eeSchristos clipper-intergraph) 1555051580eeSchristos os=clix 1556a1ba9ba4Schristos ;; 1557a1ba9ba4Schristos hexagon-*) 1558051580eeSchristos os=elf 1559a1ba9ba4Schristos ;; 1560a1ba9ba4Schristos tic54x-*) 1561051580eeSchristos os=coff 1562a1ba9ba4Schristos ;; 1563a1ba9ba4Schristos tic55x-*) 1564051580eeSchristos os=coff 1565a1ba9ba4Schristos ;; 1566a1ba9ba4Schristos tic6x-*) 1567051580eeSchristos os=coff 1568a1ba9ba4Schristos ;; 1569a1ba9ba4Schristos # This must come before the *-dec entry. 1570a1ba9ba4Schristos pdp10-*) 1571051580eeSchristos os=tops20 1572a1ba9ba4Schristos ;; 1573a1ba9ba4Schristos pdp11-*) 1574051580eeSchristos os=none 1575a1ba9ba4Schristos ;; 1576a1ba9ba4Schristos *-dec | vax-*) 1577051580eeSchristos os=ultrix4.2 1578a1ba9ba4Schristos ;; 1579a1ba9ba4Schristos m68*-apollo) 1580051580eeSchristos os=domain 1581a1ba9ba4Schristos ;; 1582a1ba9ba4Schristos i386-sun) 1583051580eeSchristos os=sunos4.0.2 1584a1ba9ba4Schristos ;; 1585a1ba9ba4Schristos m68000-sun) 1586051580eeSchristos os=sunos3 1587a1ba9ba4Schristos ;; 1588a1ba9ba4Schristos m68*-cisco) 1589051580eeSchristos os=aout 1590a1ba9ba4Schristos ;; 1591a1ba9ba4Schristos mep-*) 1592051580eeSchristos os=elf 1593a1ba9ba4Schristos ;; 1594a1ba9ba4Schristos mips*-cisco) 1595051580eeSchristos os=elf 1596a1ba9ba4Schristos ;; 1597a1ba9ba4Schristos mips*-*) 1598051580eeSchristos os=elf 1599a1ba9ba4Schristos ;; 1600a1ba9ba4Schristos or32-*) 1601051580eeSchristos os=coff 1602a1ba9ba4Schristos ;; 1603a1ba9ba4Schristos *-tti) # must be before sparc entry or we get the wrong os. 1604051580eeSchristos os=sysv3 1605a1ba9ba4Schristos ;; 1606a1ba9ba4Schristos sparc-* | *-sun) 1607051580eeSchristos os=sunos4.1.1 1608a1ba9ba4Schristos ;; 160932b71e0eSsevan pru-*) 1610051580eeSchristos os=elf 161132b71e0eSsevan ;; 1612a1ba9ba4Schristos *-be) 1613051580eeSchristos os=beos 1614a1ba9ba4Schristos ;; 1615a1ba9ba4Schristos *-ibm) 1616051580eeSchristos os=aix 1617a1ba9ba4Schristos ;; 1618a1ba9ba4Schristos *-knuth) 1619051580eeSchristos os=mmixware 1620a1ba9ba4Schristos ;; 1621a1ba9ba4Schristos *-wec) 1622051580eeSchristos os=proelf 1623a1ba9ba4Schristos ;; 1624a1ba9ba4Schristos *-winbond) 1625051580eeSchristos os=proelf 1626a1ba9ba4Schristos ;; 1627a1ba9ba4Schristos *-oki) 1628051580eeSchristos os=proelf 1629a1ba9ba4Schristos ;; 1630a1ba9ba4Schristos *-hp) 1631051580eeSchristos os=hpux 1632a1ba9ba4Schristos ;; 1633a1ba9ba4Schristos *-hitachi) 1634051580eeSchristos os=hiux 1635a1ba9ba4Schristos ;; 1636a1ba9ba4Schristos i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 1637051580eeSchristos os=sysv 1638a1ba9ba4Schristos ;; 1639a1ba9ba4Schristos *-cbm) 1640051580eeSchristos os=amigaos 1641a1ba9ba4Schristos ;; 1642a1ba9ba4Schristos *-dg) 1643051580eeSchristos os=dgux 1644a1ba9ba4Schristos ;; 1645a1ba9ba4Schristos *-dolphin) 1646051580eeSchristos os=sysv3 1647a1ba9ba4Schristos ;; 1648a1ba9ba4Schristos m68k-ccur) 1649051580eeSchristos os=rtu 1650a1ba9ba4Schristos ;; 1651a1ba9ba4Schristos m88k-omron*) 1652051580eeSchristos os=luna 1653a1ba9ba4Schristos ;; 1654a1ba9ba4Schristos *-next) 1655051580eeSchristos os=nextstep 1656a1ba9ba4Schristos ;; 1657a1ba9ba4Schristos *-sequent) 1658051580eeSchristos os=ptx 1659a1ba9ba4Schristos ;; 1660a1ba9ba4Schristos *-crds) 1661051580eeSchristos os=unos 1662a1ba9ba4Schristos ;; 1663a1ba9ba4Schristos *-ns) 1664051580eeSchristos os=genix 1665a1ba9ba4Schristos ;; 1666a1ba9ba4Schristos i370-*) 1667051580eeSchristos os=mvs 1668a1ba9ba4Schristos ;; 1669a1ba9ba4Schristos *-gould) 1670051580eeSchristos os=sysv 1671a1ba9ba4Schristos ;; 1672a1ba9ba4Schristos *-highlevel) 1673051580eeSchristos os=bsd 1674a1ba9ba4Schristos ;; 1675a1ba9ba4Schristos *-encore) 1676051580eeSchristos os=bsd 1677a1ba9ba4Schristos ;; 1678a1ba9ba4Schristos *-sgi) 1679051580eeSchristos os=irix 1680a1ba9ba4Schristos ;; 1681a1ba9ba4Schristos *-siemens) 1682051580eeSchristos os=sysv4 1683a1ba9ba4Schristos ;; 1684a1ba9ba4Schristos *-masscomp) 1685051580eeSchristos os=rtu 1686a1ba9ba4Schristos ;; 1687a1ba9ba4Schristos f30[01]-fujitsu | f700-fujitsu) 1688051580eeSchristos os=uxpv 1689a1ba9ba4Schristos ;; 1690a1ba9ba4Schristos *-rom68k) 1691051580eeSchristos os=coff 1692a1ba9ba4Schristos ;; 1693a1ba9ba4Schristos *-*bug) 1694051580eeSchristos os=coff 1695a1ba9ba4Schristos ;; 1696a1ba9ba4Schristos *-apple) 1697051580eeSchristos os=macos 1698a1ba9ba4Schristos ;; 1699a1ba9ba4Schristos *-atari*) 1700051580eeSchristos os=mint 1701051580eeSchristos ;; 1702051580eeSchristos *-wrs) 1703051580eeSchristos os=vxworks 1704a1ba9ba4Schristos ;; 1705a1ba9ba4Schristos *) 1706051580eeSchristos os=none 1707a1ba9ba4Schristos ;; 1708a1ba9ba4Schristosesac 1709a1ba9ba4Schristosfi 1710a1ba9ba4Schristos 1711a1ba9ba4Schristos# Here we handle the case where we know the os, and the CPU type, but not the 1712a1ba9ba4Schristos# manufacturer. We pick the logical manufacturer. 1713051580eeSchristoscase $vendor in 1714051580eeSchristos unknown) 1715a1ba9ba4Schristos case $os in 1716051580eeSchristos riscix*) 1717a1ba9ba4Schristos vendor=acorn 1718a1ba9ba4Schristos ;; 1719051580eeSchristos sunos*) 1720a1ba9ba4Schristos vendor=sun 1721a1ba9ba4Schristos ;; 1722051580eeSchristos cnk*|-aix*) 1723a1ba9ba4Schristos vendor=ibm 1724a1ba9ba4Schristos ;; 1725051580eeSchristos beos*) 1726a1ba9ba4Schristos vendor=be 1727a1ba9ba4Schristos ;; 1728051580eeSchristos hpux*) 1729a1ba9ba4Schristos vendor=hp 1730a1ba9ba4Schristos ;; 1731051580eeSchristos mpeix*) 1732a1ba9ba4Schristos vendor=hp 1733a1ba9ba4Schristos ;; 1734051580eeSchristos hiux*) 1735a1ba9ba4Schristos vendor=hitachi 1736a1ba9ba4Schristos ;; 1737051580eeSchristos unos*) 1738a1ba9ba4Schristos vendor=crds 1739a1ba9ba4Schristos ;; 1740051580eeSchristos dgux*) 1741a1ba9ba4Schristos vendor=dg 1742a1ba9ba4Schristos ;; 1743051580eeSchristos luna*) 1744a1ba9ba4Schristos vendor=omron 1745a1ba9ba4Schristos ;; 1746051580eeSchristos genix*) 1747a1ba9ba4Schristos vendor=ns 1748a1ba9ba4Schristos ;; 1749051580eeSchristos clix*) 1750051580eeSchristos vendor=intergraph 1751051580eeSchristos ;; 1752051580eeSchristos mvs* | opened*) 1753a1ba9ba4Schristos vendor=ibm 1754a1ba9ba4Schristos ;; 1755051580eeSchristos os400*) 1756a1ba9ba4Schristos vendor=ibm 1757a1ba9ba4Schristos ;; 1758051580eeSchristos ptx*) 1759a1ba9ba4Schristos vendor=sequent 1760a1ba9ba4Schristos ;; 1761051580eeSchristos tpf*) 1762a1ba9ba4Schristos vendor=ibm 1763a1ba9ba4Schristos ;; 1764051580eeSchristos vxsim* | vxworks* | windiss*) 1765a1ba9ba4Schristos vendor=wrs 1766a1ba9ba4Schristos ;; 1767051580eeSchristos aux*) 1768a1ba9ba4Schristos vendor=apple 1769a1ba9ba4Schristos ;; 1770051580eeSchristos hms*) 1771a1ba9ba4Schristos vendor=hitachi 1772a1ba9ba4Schristos ;; 1773051580eeSchristos mpw* | macos*) 1774a1ba9ba4Schristos vendor=apple 1775a1ba9ba4Schristos ;; 1776051580eeSchristos *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 1777a1ba9ba4Schristos vendor=atari 1778a1ba9ba4Schristos ;; 1779051580eeSchristos vos*) 1780a1ba9ba4Schristos vendor=stratus 1781a1ba9ba4Schristos ;; 1782a1ba9ba4Schristos esac 1783a1ba9ba4Schristos ;; 1784a1ba9ba4Schristosesac 1785a1ba9ba4Schristos 1786051580eeSchristosecho "$cpu-$vendor-$os" 1787a1ba9ba4Schristosexit 1788a1ba9ba4Schristos 1789a1ba9ba4Schristos# Local variables: 1790051580eeSchristos# eval: (add-hook 'before-save-hook 'time-stamp) 1791a1ba9ba4Schristos# time-stamp-start: "timestamp='" 1792a1ba9ba4Schristos# time-stamp-format: "%:y-%02m-%02d" 1793a1ba9ba4Schristos# time-stamp-end: "'" 1794a1ba9ba4Schristos# End: 1795