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