config.sub revision ea148d1d
1ea148d1dSmrg#! /bin/sh 243f32c10Smrg# Configuration validation subroutine script. 3ea148d1dSmrg# Copyright 1992-2018 Free Software Foundation, Inc. 443f32c10Smrg 5ea148d1dSmrgtimestamp='2018-08-29' 643f32c10Smrg 76ef05171Smrg# This file is free software; you can redistribute it and/or modify it 86ef05171Smrg# under the terms of the GNU General Public License as published by 96ef05171Smrg# the Free Software Foundation; either version 3 of the License, or 1043f32c10Smrg# (at your option) any later version. 1143f32c10Smrg# 126ef05171Smrg# This program is distributed in the hope that it will be useful, but 136ef05171Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of 146ef05171Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 156ef05171Smrg# General Public License for more details. 1643f32c10Smrg# 1743f32c10Smrg# You should have received a copy of the GNU General Public License 18ea148d1dSmrg# along with this program; if not, see <https://www.gnu.org/licenses/>. 1943f32c10Smrg# 2043f32c10Smrg# As a special exception to the GNU General Public License, if you 2143f32c10Smrg# distribute this file as part of a program that contains a 2243f32c10Smrg# configuration script generated by Autoconf, you may include it under 236ef05171Smrg# the same distribution terms that you use for the rest of that 246ef05171Smrg# program. This Exception is an additional permission under section 7 256ef05171Smrg# of the GNU General Public License, version 3 ("GPLv3"). 2643f32c10Smrg 2743f32c10Smrg 286ef05171Smrg# Please send patches to <config-patches@gnu.org>. 2943f32c10Smrg# 3043f32c10Smrg# Configuration subroutine to validate and canonicalize a configuration type. 3143f32c10Smrg# Supply the specified configuration type as an argument. 3243f32c10Smrg# If it is invalid, we print an error message on stderr and exit with code 1. 3343f32c10Smrg# Otherwise, we print the canonical config type on stdout and succeed. 3443f32c10Smrg 356ef05171Smrg# You can get the latest version of this script from: 36ea148d1dSmrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub 376ef05171Smrg 3843f32c10Smrg# This file is supposed to be the same for all GNU packages 3943f32c10Smrg# and recognize all the CPU types, system types and aliases 4043f32c10Smrg# that are meaningful with *any* GNU software. 4143f32c10Smrg# Each package is responsible for reporting which valid configurations 4243f32c10Smrg# it does not support. The user should be able to distinguish 4343f32c10Smrg# a failure to support a valid configuration from a meaningless 4443f32c10Smrg# configuration. 4543f32c10Smrg 4643f32c10Smrg# The goal of this file is to map all the various variations of a given 4743f32c10Smrg# machine specification into a single specification in the form: 4843f32c10Smrg# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 4943f32c10Smrg# or in some cases, the newer four-part form: 5043f32c10Smrg# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 5143f32c10Smrg# It is wrong to echo any other type of specification. 5243f32c10Smrg 5343f32c10Smrgme=`echo "$0" | sed -e 's,.*/,,'` 5443f32c10Smrg 5543f32c10Smrgusage="\ 566ef05171SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 5743f32c10Smrg 5843f32c10SmrgCanonicalize a configuration name. 5943f32c10Smrg 60ea148d1dSmrgOptions: 6143f32c10Smrg -h, --help print this help, then exit 6243f32c10Smrg -t, --time-stamp print date of last modification, then exit 6343f32c10Smrg -v, --version print version number, then exit 6443f32c10Smrg 6543f32c10SmrgReport bugs and patches to <config-patches@gnu.org>." 6643f32c10Smrg 6743f32c10Smrgversion="\ 6843f32c10SmrgGNU config.sub ($timestamp) 6943f32c10Smrg 70ea148d1dSmrgCopyright 1992-2018 Free Software Foundation, Inc. 7143f32c10Smrg 7243f32c10SmrgThis is free software; see the source for copying conditions. There is NO 7343f32c10Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 7443f32c10Smrg 7543f32c10Smrghelp=" 7643f32c10SmrgTry \`$me --help' for more information." 7743f32c10Smrg 7843f32c10Smrg# Parse command line 7943f32c10Smrgwhile test $# -gt 0 ; do 8043f32c10Smrg case $1 in 8143f32c10Smrg --time-stamp | --time* | -t ) 8243f32c10Smrg echo "$timestamp" ; exit ;; 8343f32c10Smrg --version | -v ) 8443f32c10Smrg echo "$version" ; exit ;; 8543f32c10Smrg --help | --h* | -h ) 8643f32c10Smrg echo "$usage"; exit ;; 8743f32c10Smrg -- ) # Stop option processing 8843f32c10Smrg shift; break ;; 8943f32c10Smrg - ) # Use stdin as input. 9043f32c10Smrg break ;; 9143f32c10Smrg -* ) 9243f32c10Smrg echo "$me: invalid option $1$help" 9343f32c10Smrg exit 1 ;; 9443f32c10Smrg 9543f32c10Smrg *local*) 9643f32c10Smrg # First pass through any local machine types. 97ea148d1dSmrg echo "$1" 9843f32c10Smrg exit ;; 9943f32c10Smrg 10043f32c10Smrg * ) 10143f32c10Smrg break ;; 10243f32c10Smrg esac 10343f32c10Smrgdone 10443f32c10Smrg 10543f32c10Smrgcase $# in 10643f32c10Smrg 0) echo "$me: missing argument$help" >&2 10743f32c10Smrg exit 1;; 10843f32c10Smrg 1) ;; 10943f32c10Smrg *) echo "$me: too many arguments$help" >&2 11043f32c10Smrg exit 1;; 11143f32c10Smrgesac 11243f32c10Smrg 113ea148d1dSmrg# Split fields of configuration type 114ea148d1dSmrgIFS="-" read -r field1 field2 field3 field4 <<EOF 115ea148d1dSmrg$1 116ea148d1dSmrgEOF 11743f32c10Smrg 118ea148d1dSmrg# Separate into logical components for further validation 119ea148d1dSmrgcase $1 in 120ea148d1dSmrg *-*-*-*-*) 121ea148d1dSmrg echo Invalid configuration \`"$1"\': more than four components >&2 122ea148d1dSmrg exit 1 12343f32c10Smrg ;; 124ea148d1dSmrg *-*-*-*) 125ea148d1dSmrg basic_machine=$field1-$field2 126ea148d1dSmrg os=$field3-$field4 12743f32c10Smrg ;; 128ea148d1dSmrg *-*-*) 129ea148d1dSmrg # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two 130ea148d1dSmrg # parts 131ea148d1dSmrg maybe_os=$field2-$field3 132ea148d1dSmrg case $maybe_os in 133ea148d1dSmrg nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ 134ea148d1dSmrg | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ 135ea148d1dSmrg | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ 136ea148d1dSmrg | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ 137ea148d1dSmrg | storm-chaos* | os2-emx* | rtmk-nova*) 138ea148d1dSmrg basic_machine=$field1 139ea148d1dSmrg os=$maybe_os 140ea148d1dSmrg ;; 141ea148d1dSmrg android-linux) 142ea148d1dSmrg basic_machine=$field1-unknown 143ea148d1dSmrg os=linux-android 144ea148d1dSmrg ;; 145ea148d1dSmrg *) 146ea148d1dSmrg basic_machine=$field1-$field2 147ea148d1dSmrg os=$field3 148ea148d1dSmrg ;; 149ea148d1dSmrg esac 15043f32c10Smrg ;; 151ea148d1dSmrg *-*) 152ea148d1dSmrg # A lone config we happen to match not fitting any patern 153ea148d1dSmrg case $field1-$field2 in 154ea148d1dSmrg decstation-3100) 155ea148d1dSmrg basic_machine=mips-dec 156ea148d1dSmrg os= 157ea148d1dSmrg ;; 158ea148d1dSmrg *-*) 159ea148d1dSmrg # Second component is usually, but not always the OS 160ea148d1dSmrg case $field2 in 161ea148d1dSmrg # Prevent following clause from handling this valid os 162ea148d1dSmrg sun*os*) 163ea148d1dSmrg basic_machine=$field1 164ea148d1dSmrg os=$field2 165ea148d1dSmrg ;; 166ea148d1dSmrg # Manufacturers 167ea148d1dSmrg dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ 168ea148d1dSmrg | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ 169ea148d1dSmrg | unicom* | ibm* | next | hp | isi* | apollo | altos* \ 170ea148d1dSmrg | convergent* | ncr* | news | 32* | 3600* | 3100* \ 171ea148d1dSmrg | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ 172ea148d1dSmrg | ultra | tti* | harris | dolphin | highlevel | gould \ 173ea148d1dSmrg | cbm | ns | masscomp | apple | axis | knuth | cray \ 174ea148d1dSmrg | microblaze* | sim | cisco \ 175ea148d1dSmrg | oki | wec | wrs | winbond) 176ea148d1dSmrg basic_machine=$field1-$field2 177ea148d1dSmrg os= 178ea148d1dSmrg ;; 179ea148d1dSmrg *) 180ea148d1dSmrg basic_machine=$field1 181ea148d1dSmrg os=$field2 182ea148d1dSmrg ;; 183ea148d1dSmrg esac 184ea148d1dSmrg ;; 185ea148d1dSmrg esac 18643f32c10Smrg ;; 187ea148d1dSmrg *) 188ea148d1dSmrg # Convert single-component short-hands not valid as part of 189ea148d1dSmrg # multi-component configurations. 190ea148d1dSmrg case $field1 in 191ea148d1dSmrg 386bsd) 192ea148d1dSmrg basic_machine=i386-pc 193ea148d1dSmrg os=bsd 194ea148d1dSmrg ;; 195ea148d1dSmrg a29khif) 196ea148d1dSmrg basic_machine=a29k-amd 197ea148d1dSmrg os=udi 198ea148d1dSmrg ;; 199ea148d1dSmrg adobe68k) 200ea148d1dSmrg basic_machine=m68010-adobe 201ea148d1dSmrg os=scout 202ea148d1dSmrg ;; 203ea148d1dSmrg alliant) 204ea148d1dSmrg basic_machine=fx80-alliant 205ea148d1dSmrg os= 206ea148d1dSmrg ;; 207ea148d1dSmrg altos | altos3068) 208ea148d1dSmrg basic_machine=m68k-altos 209ea148d1dSmrg os= 210ea148d1dSmrg ;; 211ea148d1dSmrg am29k) 212ea148d1dSmrg basic_machine=a29k-none 213ea148d1dSmrg os=bsd 214ea148d1dSmrg ;; 215ea148d1dSmrg amdahl) 216ea148d1dSmrg basic_machine=580-amdahl 217ea148d1dSmrg os=sysv 218ea148d1dSmrg ;; 219ea148d1dSmrg amiga) 220ea148d1dSmrg basic_machine=m68k-unknown 221ea148d1dSmrg os= 222ea148d1dSmrg ;; 223ea148d1dSmrg amigaos | amigados) 224ea148d1dSmrg basic_machine=m68k-unknown 225ea148d1dSmrg os=amigaos 226ea148d1dSmrg ;; 227ea148d1dSmrg amigaunix | amix) 228ea148d1dSmrg basic_machine=m68k-unknown 229ea148d1dSmrg os=sysv4 230ea148d1dSmrg ;; 231ea148d1dSmrg apollo68) 232ea148d1dSmrg basic_machine=m68k-apollo 233ea148d1dSmrg os=sysv 234ea148d1dSmrg ;; 235ea148d1dSmrg apollo68bsd) 236ea148d1dSmrg basic_machine=m68k-apollo 237ea148d1dSmrg os=bsd 238ea148d1dSmrg ;; 239ea148d1dSmrg aros) 240ea148d1dSmrg basic_machine=i386-pc 241ea148d1dSmrg os=aros 242ea148d1dSmrg ;; 243ea148d1dSmrg aux) 244ea148d1dSmrg basic_machine=m68k-apple 245ea148d1dSmrg os=aux 246ea148d1dSmrg ;; 247ea148d1dSmrg balance) 248ea148d1dSmrg basic_machine=ns32k-sequent 249ea148d1dSmrg os=dynix 250ea148d1dSmrg ;; 251ea148d1dSmrg blackfin) 252ea148d1dSmrg basic_machine=bfin-unknown 253ea148d1dSmrg os=linux 254ea148d1dSmrg ;; 255ea148d1dSmrg cegcc) 256ea148d1dSmrg basic_machine=arm-unknown 257ea148d1dSmrg os=cegcc 258ea148d1dSmrg ;; 259ea148d1dSmrg convex-c1) 260ea148d1dSmrg basic_machine=c1-convex 261ea148d1dSmrg os=bsd 262ea148d1dSmrg ;; 263ea148d1dSmrg convex-c2) 264ea148d1dSmrg basic_machine=c2-convex 265ea148d1dSmrg os=bsd 266ea148d1dSmrg ;; 267ea148d1dSmrg convex-c32) 268ea148d1dSmrg basic_machine=c32-convex 269ea148d1dSmrg os=bsd 270ea148d1dSmrg ;; 271ea148d1dSmrg convex-c34) 272ea148d1dSmrg basic_machine=c34-convex 273ea148d1dSmrg os=bsd 274ea148d1dSmrg ;; 275ea148d1dSmrg convex-c38) 276ea148d1dSmrg basic_machine=c38-convex 277ea148d1dSmrg os=bsd 278ea148d1dSmrg ;; 279ea148d1dSmrg cray) 280ea148d1dSmrg basic_machine=j90-cray 281ea148d1dSmrg os=unicos 282ea148d1dSmrg ;; 283ea148d1dSmrg crds | unos) 284ea148d1dSmrg basic_machine=m68k-crds 285ea148d1dSmrg os= 286ea148d1dSmrg ;; 287ea148d1dSmrg da30) 288ea148d1dSmrg basic_machine=m68k-da30 289ea148d1dSmrg os= 290ea148d1dSmrg ;; 291ea148d1dSmrg decstation | pmax | pmin | dec3100 | decstatn) 292ea148d1dSmrg basic_machine=mips-dec 293ea148d1dSmrg os= 294ea148d1dSmrg ;; 295ea148d1dSmrg delta88) 296ea148d1dSmrg basic_machine=m88k-motorola 297ea148d1dSmrg os=sysv3 298ea148d1dSmrg ;; 299ea148d1dSmrg dicos) 300ea148d1dSmrg basic_machine=i686-pc 301ea148d1dSmrg os=dicos 302ea148d1dSmrg ;; 303ea148d1dSmrg djgpp) 304ea148d1dSmrg basic_machine=i586-pc 305ea148d1dSmrg os=msdosdjgpp 306ea148d1dSmrg ;; 307ea148d1dSmrg ebmon29k) 308ea148d1dSmrg basic_machine=a29k-amd 309ea148d1dSmrg os=ebmon 310ea148d1dSmrg ;; 311ea148d1dSmrg es1800 | OSE68k | ose68k | ose | OSE) 312ea148d1dSmrg basic_machine=m68k-ericsson 313ea148d1dSmrg os=ose 314ea148d1dSmrg ;; 315ea148d1dSmrg gmicro) 316ea148d1dSmrg basic_machine=tron-gmicro 317ea148d1dSmrg os=sysv 318ea148d1dSmrg ;; 319ea148d1dSmrg go32) 320ea148d1dSmrg basic_machine=i386-pc 321ea148d1dSmrg os=go32 322ea148d1dSmrg ;; 323ea148d1dSmrg h8300hms) 324ea148d1dSmrg basic_machine=h8300-hitachi 325ea148d1dSmrg os=hms 326ea148d1dSmrg ;; 327ea148d1dSmrg h8300xray) 328ea148d1dSmrg basic_machine=h8300-hitachi 329ea148d1dSmrg os=xray 330ea148d1dSmrg ;; 331ea148d1dSmrg h8500hms) 332ea148d1dSmrg basic_machine=h8500-hitachi 333ea148d1dSmrg os=hms 334ea148d1dSmrg ;; 335ea148d1dSmrg harris) 336ea148d1dSmrg basic_machine=m88k-harris 337ea148d1dSmrg os=sysv3 338ea148d1dSmrg ;; 339ea148d1dSmrg hp300) 340ea148d1dSmrg basic_machine=m68k-hp 341ea148d1dSmrg ;; 342ea148d1dSmrg hp300bsd) 343ea148d1dSmrg basic_machine=m68k-hp 344ea148d1dSmrg os=bsd 345ea148d1dSmrg ;; 346ea148d1dSmrg hp300hpux) 347ea148d1dSmrg basic_machine=m68k-hp 348ea148d1dSmrg os=hpux 349ea148d1dSmrg ;; 350ea148d1dSmrg hppaosf) 351ea148d1dSmrg basic_machine=hppa1.1-hp 352ea148d1dSmrg os=osf 353ea148d1dSmrg ;; 354ea148d1dSmrg hppro) 355ea148d1dSmrg basic_machine=hppa1.1-hp 356ea148d1dSmrg os=proelf 357ea148d1dSmrg ;; 358ea148d1dSmrg i386mach) 359ea148d1dSmrg basic_machine=i386-mach 360ea148d1dSmrg os=mach 361ea148d1dSmrg ;; 362ea148d1dSmrg vsta) 363ea148d1dSmrg basic_machine=i386-pc 364ea148d1dSmrg os=vsta 365ea148d1dSmrg ;; 366ea148d1dSmrg isi68 | isi) 367ea148d1dSmrg basic_machine=m68k-isi 368ea148d1dSmrg os=sysv 369ea148d1dSmrg ;; 370ea148d1dSmrg m68knommu) 371ea148d1dSmrg basic_machine=m68k-unknown 372ea148d1dSmrg os=linux 373ea148d1dSmrg ;; 374ea148d1dSmrg magnum | m3230) 375ea148d1dSmrg basic_machine=mips-mips 376ea148d1dSmrg os=sysv 377ea148d1dSmrg ;; 378ea148d1dSmrg merlin) 379ea148d1dSmrg basic_machine=ns32k-utek 380ea148d1dSmrg os=sysv 381ea148d1dSmrg ;; 382ea148d1dSmrg mingw64) 383ea148d1dSmrg basic_machine=x86_64-pc 384ea148d1dSmrg os=mingw64 385ea148d1dSmrg ;; 386ea148d1dSmrg mingw32) 387ea148d1dSmrg basic_machine=i686-pc 388ea148d1dSmrg os=mingw32 389ea148d1dSmrg ;; 390ea148d1dSmrg mingw32ce) 391ea148d1dSmrg basic_machine=arm-unknown 392ea148d1dSmrg os=mingw32ce 393ea148d1dSmrg ;; 394ea148d1dSmrg monitor) 395ea148d1dSmrg basic_machine=m68k-rom68k 396ea148d1dSmrg os=coff 397ea148d1dSmrg ;; 398ea148d1dSmrg morphos) 399ea148d1dSmrg basic_machine=powerpc-unknown 400ea148d1dSmrg os=morphos 401ea148d1dSmrg ;; 402ea148d1dSmrg moxiebox) 403ea148d1dSmrg basic_machine=moxie-unknown 404ea148d1dSmrg os=moxiebox 405ea148d1dSmrg ;; 406ea148d1dSmrg msdos) 407ea148d1dSmrg basic_machine=i386-pc 408ea148d1dSmrg os=msdos 409ea148d1dSmrg ;; 410ea148d1dSmrg msys) 411ea148d1dSmrg basic_machine=i686-pc 412ea148d1dSmrg os=msys 413ea148d1dSmrg ;; 414ea148d1dSmrg mvs) 415ea148d1dSmrg basic_machine=i370-ibm 416ea148d1dSmrg os=mvs 417ea148d1dSmrg ;; 418ea148d1dSmrg nacl) 419ea148d1dSmrg basic_machine=le32-unknown 420ea148d1dSmrg os=nacl 421ea148d1dSmrg ;; 422ea148d1dSmrg ncr3000) 423ea148d1dSmrg basic_machine=i486-ncr 424ea148d1dSmrg os=sysv4 425ea148d1dSmrg ;; 426ea148d1dSmrg netbsd386) 427ea148d1dSmrg basic_machine=i386-pc 428ea148d1dSmrg os=netbsd 429ea148d1dSmrg ;; 430ea148d1dSmrg netwinder) 431ea148d1dSmrg basic_machine=armv4l-rebel 432ea148d1dSmrg os=linux 433ea148d1dSmrg ;; 434ea148d1dSmrg news | news700 | news800 | news900) 435ea148d1dSmrg basic_machine=m68k-sony 436ea148d1dSmrg os=newsos 437ea148d1dSmrg ;; 438ea148d1dSmrg news1000) 439ea148d1dSmrg basic_machine=m68030-sony 440ea148d1dSmrg os=newsos 441ea148d1dSmrg ;; 442ea148d1dSmrg necv70) 443ea148d1dSmrg basic_machine=v70-nec 444ea148d1dSmrg os=sysv 445ea148d1dSmrg ;; 446ea148d1dSmrg nh3000) 447ea148d1dSmrg basic_machine=m68k-harris 448ea148d1dSmrg os=cxux 449ea148d1dSmrg ;; 450ea148d1dSmrg nh[45]000) 451ea148d1dSmrg basic_machine=m88k-harris 452ea148d1dSmrg os=cxux 453ea148d1dSmrg ;; 454ea148d1dSmrg nindy960) 455ea148d1dSmrg basic_machine=i960-intel 456ea148d1dSmrg os=nindy 457ea148d1dSmrg ;; 458ea148d1dSmrg mon960) 459ea148d1dSmrg basic_machine=i960-intel 460ea148d1dSmrg os=mon960 461ea148d1dSmrg ;; 462ea148d1dSmrg nonstopux) 463ea148d1dSmrg basic_machine=mips-compaq 464ea148d1dSmrg os=nonstopux 465ea148d1dSmrg ;; 466ea148d1dSmrg os400) 467ea148d1dSmrg basic_machine=powerpc-ibm 468ea148d1dSmrg os=os400 469ea148d1dSmrg ;; 470ea148d1dSmrg OSE68000 | ose68000) 471ea148d1dSmrg basic_machine=m68000-ericsson 472ea148d1dSmrg os=ose 473ea148d1dSmrg ;; 474ea148d1dSmrg os68k) 475ea148d1dSmrg basic_machine=m68k-none 476ea148d1dSmrg os=os68k 477ea148d1dSmrg ;; 478ea148d1dSmrg paragon) 479ea148d1dSmrg basic_machine=i860-intel 480ea148d1dSmrg os=osf 481ea148d1dSmrg ;; 482ea148d1dSmrg parisc) 483ea148d1dSmrg basic_machine=hppa-unknown 484ea148d1dSmrg os=linux 485ea148d1dSmrg ;; 486ea148d1dSmrg pw32) 487ea148d1dSmrg basic_machine=i586-unknown 488ea148d1dSmrg os=pw32 489ea148d1dSmrg ;; 490ea148d1dSmrg rdos | rdos64) 491ea148d1dSmrg basic_machine=x86_64-pc 492ea148d1dSmrg os=rdos 493ea148d1dSmrg ;; 494ea148d1dSmrg rdos32) 495ea148d1dSmrg basic_machine=i386-pc 496ea148d1dSmrg os=rdos 497ea148d1dSmrg ;; 498ea148d1dSmrg rom68k) 499ea148d1dSmrg basic_machine=m68k-rom68k 500ea148d1dSmrg os=coff 501ea148d1dSmrg ;; 502ea148d1dSmrg sa29200) 503ea148d1dSmrg basic_machine=a29k-amd 504ea148d1dSmrg os=udi 505ea148d1dSmrg ;; 506ea148d1dSmrg sei) 507ea148d1dSmrg basic_machine=mips-sei 508ea148d1dSmrg os=seiux 509ea148d1dSmrg ;; 510ea148d1dSmrg sequent) 511ea148d1dSmrg basic_machine=i386-sequent 512ea148d1dSmrg os= 513ea148d1dSmrg ;; 514ea148d1dSmrg sps7) 515ea148d1dSmrg basic_machine=m68k-bull 516ea148d1dSmrg os=sysv2 517ea148d1dSmrg ;; 518ea148d1dSmrg st2000) 519ea148d1dSmrg basic_machine=m68k-tandem 520ea148d1dSmrg os= 521ea148d1dSmrg ;; 522ea148d1dSmrg stratus) 523ea148d1dSmrg basic_machine=i860-stratus 524ea148d1dSmrg os=sysv4 525ea148d1dSmrg ;; 526ea148d1dSmrg sun2) 527ea148d1dSmrg basic_machine=m68000-sun 528ea148d1dSmrg os= 529ea148d1dSmrg ;; 530ea148d1dSmrg sun2os3) 531ea148d1dSmrg basic_machine=m68000-sun 532ea148d1dSmrg os=sunos3 533ea148d1dSmrg ;; 534ea148d1dSmrg sun2os4) 535ea148d1dSmrg basic_machine=m68000-sun 536ea148d1dSmrg os=sunos4 537ea148d1dSmrg ;; 538ea148d1dSmrg sun3) 539ea148d1dSmrg basic_machine=m68k-sun 540ea148d1dSmrg os= 541ea148d1dSmrg ;; 542ea148d1dSmrg sun3os3) 543ea148d1dSmrg basic_machine=m68k-sun 544ea148d1dSmrg os=sunos3 545ea148d1dSmrg ;; 546ea148d1dSmrg sun3os4) 547ea148d1dSmrg basic_machine=m68k-sun 548ea148d1dSmrg os=sunos4 549ea148d1dSmrg ;; 550ea148d1dSmrg sun4) 551ea148d1dSmrg basic_machine=sparc-sun 552ea148d1dSmrg os= 553ea148d1dSmrg ;; 554ea148d1dSmrg sun4os3) 555ea148d1dSmrg basic_machine=sparc-sun 556ea148d1dSmrg os=sunos3 557ea148d1dSmrg ;; 558ea148d1dSmrg sun4os4) 559ea148d1dSmrg basic_machine=sparc-sun 560ea148d1dSmrg os=sunos4 561ea148d1dSmrg ;; 562ea148d1dSmrg sun4sol2) 563ea148d1dSmrg basic_machine=sparc-sun 564ea148d1dSmrg os=solaris2 565ea148d1dSmrg ;; 566ea148d1dSmrg sun386 | sun386i | roadrunner) 567ea148d1dSmrg basic_machine=i386-sun 568ea148d1dSmrg os= 569ea148d1dSmrg ;; 570ea148d1dSmrg sv1) 571ea148d1dSmrg basic_machine=sv1-cray 572ea148d1dSmrg os=unicos 573ea148d1dSmrg ;; 574ea148d1dSmrg symmetry) 575ea148d1dSmrg basic_machine=i386-sequent 576ea148d1dSmrg os=dynix 577ea148d1dSmrg ;; 578ea148d1dSmrg t3e) 579ea148d1dSmrg basic_machine=alphaev5-cray 580ea148d1dSmrg os=unicos 581ea148d1dSmrg ;; 582ea148d1dSmrg t90) 583ea148d1dSmrg basic_machine=t90-cray 584ea148d1dSmrg os=unicos 585ea148d1dSmrg ;; 586ea148d1dSmrg toad1) 587ea148d1dSmrg basic_machine=pdp10-xkl 588ea148d1dSmrg os=tops20 589ea148d1dSmrg ;; 590ea148d1dSmrg tpf) 591ea148d1dSmrg basic_machine=s390x-ibm 592ea148d1dSmrg os=tpf 593ea148d1dSmrg ;; 594ea148d1dSmrg udi29k) 595ea148d1dSmrg basic_machine=a29k-amd 596ea148d1dSmrg os=udi 597ea148d1dSmrg ;; 598ea148d1dSmrg ultra3) 599ea148d1dSmrg basic_machine=a29k-nyu 600ea148d1dSmrg os=sym1 601ea148d1dSmrg ;; 602ea148d1dSmrg v810 | necv810) 603ea148d1dSmrg basic_machine=v810-nec 604ea148d1dSmrg os=none 605ea148d1dSmrg ;; 606ea148d1dSmrg vaxv) 607ea148d1dSmrg basic_machine=vax-dec 608ea148d1dSmrg os=sysv 609ea148d1dSmrg ;; 610ea148d1dSmrg vms) 611ea148d1dSmrg basic_machine=vax-dec 612ea148d1dSmrg os=vms 613ea148d1dSmrg ;; 614ea148d1dSmrg vxworks960) 615ea148d1dSmrg basic_machine=i960-wrs 616ea148d1dSmrg os=vxworks 617ea148d1dSmrg ;; 618ea148d1dSmrg vxworks68) 619ea148d1dSmrg basic_machine=m68k-wrs 620ea148d1dSmrg os=vxworks 621ea148d1dSmrg ;; 622ea148d1dSmrg vxworks29k) 623ea148d1dSmrg basic_machine=a29k-wrs 624ea148d1dSmrg os=vxworks 625ea148d1dSmrg ;; 626ea148d1dSmrg xbox) 627ea148d1dSmrg basic_machine=i686-pc 628ea148d1dSmrg os=mingw32 629ea148d1dSmrg ;; 630ea148d1dSmrg ymp) 631ea148d1dSmrg basic_machine=ymp-cray 632ea148d1dSmrg os=unicos 633ea148d1dSmrg ;; 634ea148d1dSmrg *) 635ea148d1dSmrg basic_machine=$1 636ea148d1dSmrg os= 637ea148d1dSmrg ;; 638ea148d1dSmrg esac 63943f32c10Smrg ;; 64043f32c10Smrgesac 64143f32c10Smrg 642ea148d1dSmrg# Decode 1-component or ad-hoc basic machines 64343f32c10Smrgcase $basic_machine in 644ea148d1dSmrg # Here we handle the default manufacturer of certain CPU types. It is in 645ea148d1dSmrg # some cases the only manufacturer, in others, it is the most popular. 646ea148d1dSmrg w89k) 647ea148d1dSmrg cpu=hppa1.1 648ea148d1dSmrg vendor=winbond 64943f32c10Smrg ;; 650ea148d1dSmrg op50n) 651ea148d1dSmrg cpu=hppa1.1 652ea148d1dSmrg vendor=oki 65343f32c10Smrg ;; 654ea148d1dSmrg op60c) 655ea148d1dSmrg cpu=hppa1.1 656ea148d1dSmrg vendor=oki 65743f32c10Smrg ;; 658ea148d1dSmrg ibm*) 659ea148d1dSmrg cpu=i370 660ea148d1dSmrg vendor=ibm 6616ef05171Smrg ;; 662ea148d1dSmrg orion105) 663ea148d1dSmrg cpu=clipper 664ea148d1dSmrg vendor=highlevel 6656ef05171Smrg ;; 666ea148d1dSmrg mac | mpw | mac-mpw) 667ea148d1dSmrg cpu=m68k 668ea148d1dSmrg vendor=apple 6696ef05171Smrg ;; 670ea148d1dSmrg pmac | pmac-mpw) 671ea148d1dSmrg cpu=powerpc 672ea148d1dSmrg vendor=apple 6736ef05171Smrg ;; 6746ef05171Smrg 67543f32c10Smrg # Recognize the various machine names and aliases which stand 67643f32c10Smrg # for a CPU type and a company and sometimes even an OS. 67743f32c10Smrg 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 678ea148d1dSmrg cpu=m68000 679ea148d1dSmrg vendor=att 68043f32c10Smrg ;; 68143f32c10Smrg 3b*) 682ea148d1dSmrg cpu=we32k 683ea148d1dSmrg vendor=att 68443f32c10Smrg ;; 6856ef05171Smrg bluegene*) 686ea148d1dSmrg cpu=powerpc 687ea148d1dSmrg vendor=ibm 688ea148d1dSmrg os=cnk 68943f32c10Smrg ;; 69043f32c10Smrg decsystem10* | dec10*) 691ea148d1dSmrg cpu=pdp10 692ea148d1dSmrg vendor=dec 693ea148d1dSmrg os=tops10 69443f32c10Smrg ;; 69543f32c10Smrg decsystem20* | dec20*) 696ea148d1dSmrg cpu=pdp10 697ea148d1dSmrg vendor=dec 698ea148d1dSmrg os=tops20 69943f32c10Smrg ;; 70043f32c10Smrg delta | 3300 | motorola-3300 | motorola-delta \ 70143f32c10Smrg | 3300-motorola | delta-motorola) 702ea148d1dSmrg cpu=m68k 703ea148d1dSmrg vendor=motorola 70443f32c10Smrg ;; 705ea148d1dSmrg dpx2*) 706ea148d1dSmrg cpu=m68k 707ea148d1dSmrg vendor=bull 708ea148d1dSmrg os=sysv3 70943f32c10Smrg ;; 71043f32c10Smrg encore | umax | mmax) 711ea148d1dSmrg cpu=ns32k 712ea148d1dSmrg vendor=encore 71343f32c10Smrg ;; 714ea148d1dSmrg elxsi) 715ea148d1dSmrg cpu=elxsi 716ea148d1dSmrg vendor=elxsi 717ea148d1dSmrg os=${os:-bsd} 71843f32c10Smrg ;; 71943f32c10Smrg fx2800) 720ea148d1dSmrg cpu=i860 721ea148d1dSmrg vendor=alliant 72243f32c10Smrg ;; 72343f32c10Smrg genix) 724ea148d1dSmrg cpu=ns32k 725ea148d1dSmrg vendor=ns 72643f32c10Smrg ;; 72743f32c10Smrg h3050r* | hiux*) 728ea148d1dSmrg cpu=hppa1.1 729ea148d1dSmrg vendor=hitachi 730ea148d1dSmrg os=hiuxwe2 73143f32c10Smrg ;; 73243f32c10Smrg hp3k9[0-9][0-9] | hp9[0-9][0-9]) 733ea148d1dSmrg cpu=hppa1.0 734ea148d1dSmrg vendor=hp 73543f32c10Smrg ;; 73643f32c10Smrg hp9k2[0-9][0-9] | hp9k31[0-9]) 737ea148d1dSmrg cpu=m68000 738ea148d1dSmrg vendor=hp 73943f32c10Smrg ;; 74043f32c10Smrg hp9k3[2-9][0-9]) 741ea148d1dSmrg cpu=m68k 742ea148d1dSmrg vendor=hp 74343f32c10Smrg ;; 74443f32c10Smrg hp9k6[0-9][0-9] | hp6[0-9][0-9]) 745ea148d1dSmrg cpu=hppa1.0 746ea148d1dSmrg vendor=hp 74743f32c10Smrg ;; 74843f32c10Smrg hp9k7[0-79][0-9] | hp7[0-79][0-9]) 749ea148d1dSmrg cpu=hppa1.1 750ea148d1dSmrg vendor=hp 75143f32c10Smrg ;; 75243f32c10Smrg hp9k78[0-9] | hp78[0-9]) 75343f32c10Smrg # FIXME: really hppa2.0-hp 754ea148d1dSmrg cpu=hppa1.1 755ea148d1dSmrg vendor=hp 75643f32c10Smrg ;; 75743f32c10Smrg hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 75843f32c10Smrg # FIXME: really hppa2.0-hp 759ea148d1dSmrg cpu=hppa1.1 760ea148d1dSmrg vendor=hp 76143f32c10Smrg ;; 76243f32c10Smrg hp9k8[0-9][13679] | hp8[0-9][13679]) 763ea148d1dSmrg cpu=hppa1.1 764ea148d1dSmrg vendor=hp 76543f32c10Smrg ;; 76643f32c10Smrg hp9k8[0-9][0-9] | hp8[0-9][0-9]) 767ea148d1dSmrg cpu=hppa1.0 768ea148d1dSmrg vendor=hp 76943f32c10Smrg ;; 77043f32c10Smrg i*86v32) 771ea148d1dSmrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 772ea148d1dSmrg vendor=pc 773ea148d1dSmrg os=sysv32 77443f32c10Smrg ;; 77543f32c10Smrg i*86v4*) 776ea148d1dSmrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 777ea148d1dSmrg vendor=pc 778ea148d1dSmrg os=sysv4 77943f32c10Smrg ;; 78043f32c10Smrg i*86v) 781ea148d1dSmrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 782ea148d1dSmrg vendor=pc 783ea148d1dSmrg os=sysv 78443f32c10Smrg ;; 78543f32c10Smrg i*86sol2) 786ea148d1dSmrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 787ea148d1dSmrg vendor=pc 788ea148d1dSmrg os=solaris2 78943f32c10Smrg ;; 790ea148d1dSmrg j90 | j90-cray) 791ea148d1dSmrg cpu=j90 792ea148d1dSmrg vendor=cray 793ea148d1dSmrg os=${os:-unicos} 79443f32c10Smrg ;; 79543f32c10Smrg iris | iris4d) 796ea148d1dSmrg cpu=mips 797ea148d1dSmrg vendor=sgi 79843f32c10Smrg case $os in 799ea148d1dSmrg irix*) 80043f32c10Smrg ;; 80143f32c10Smrg *) 802ea148d1dSmrg os=irix4 80343f32c10Smrg ;; 80443f32c10Smrg esac 80543f32c10Smrg ;; 80643f32c10Smrg miniframe) 807ea148d1dSmrg cpu=m68000 808ea148d1dSmrg vendor=convergent 8096ef05171Smrg ;; 810ea148d1dSmrg *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) 811ea148d1dSmrg cpu=m68k 812ea148d1dSmrg vendor=atari 813ea148d1dSmrg os=mint 81443f32c10Smrg ;; 81543f32c10Smrg news-3600 | risc-news) 816ea148d1dSmrg cpu=mips 817ea148d1dSmrg vendor=sony 818ea148d1dSmrg os=newsos 81943f32c10Smrg ;; 820ea148d1dSmrg next | m*-next) 821ea148d1dSmrg cpu=m68k 822ea148d1dSmrg vendor=next 82343f32c10Smrg case $os in 824ea148d1dSmrg nextstep* ) 82543f32c10Smrg ;; 826ea148d1dSmrg ns2*) 827ea148d1dSmrg os=nextstep2 82843f32c10Smrg ;; 82943f32c10Smrg *) 830ea148d1dSmrg os=nextstep3 83143f32c10Smrg ;; 83243f32c10Smrg esac 83343f32c10Smrg ;; 83443f32c10Smrg np1) 835ea148d1dSmrg cpu=np1 836ea148d1dSmrg vendor=gould 8376ef05171Smrg ;; 83843f32c10Smrg op50n-* | op60c-*) 839ea148d1dSmrg cpu=hppa1.1 840ea148d1dSmrg vendor=oki 841ea148d1dSmrg os=proelf 84243f32c10Smrg ;; 84343f32c10Smrg pa-hitachi) 844ea148d1dSmrg cpu=hppa1.1 845ea148d1dSmrg vendor=hitachi 846ea148d1dSmrg os=hiuxwe2 84743f32c10Smrg ;; 84843f32c10Smrg pbd) 849ea148d1dSmrg cpu=sparc 850ea148d1dSmrg vendor=tti 85143f32c10Smrg ;; 85243f32c10Smrg pbb) 853ea148d1dSmrg cpu=m68k 854ea148d1dSmrg vendor=tti 85543f32c10Smrg ;; 856ea148d1dSmrg pc532) 857ea148d1dSmrg cpu=ns32k 858ea148d1dSmrg vendor=pc532 85943f32c10Smrg ;; 86043f32c10Smrg pn) 861ea148d1dSmrg cpu=pn 862ea148d1dSmrg vendor=gould 86343f32c10Smrg ;; 864ea148d1dSmrg power) 865ea148d1dSmrg cpu=power 866ea148d1dSmrg vendor=ibm 86743f32c10Smrg ;; 86843f32c10Smrg ps2) 869ea148d1dSmrg cpu=i386 870ea148d1dSmrg vendor=ibm 87143f32c10Smrg ;; 87243f32c10Smrg rm[46]00) 873ea148d1dSmrg cpu=mips 874ea148d1dSmrg vendor=siemens 87543f32c10Smrg ;; 87643f32c10Smrg rtpc | rtpc-*) 877ea148d1dSmrg cpu=romp 878ea148d1dSmrg vendor=ibm 87943f32c10Smrg ;; 88043f32c10Smrg sde) 881ea148d1dSmrg cpu=mipsisa32 882ea148d1dSmrg vendor=sde 883ea148d1dSmrg os=${os:-elf} 88443f32c10Smrg ;; 885ea148d1dSmrg simso-wrs) 886ea148d1dSmrg cpu=sparclite 887ea148d1dSmrg vendor=wrs 888ea148d1dSmrg os=vxworks 88943f32c10Smrg ;; 890ea148d1dSmrg tower | tower-32) 891ea148d1dSmrg cpu=m68k 892ea148d1dSmrg vendor=ncr 89343f32c10Smrg ;; 894ea148d1dSmrg vpp*|vx|vx-*) 895ea148d1dSmrg cpu=f301 896ea148d1dSmrg vendor=fujitsu 89743f32c10Smrg ;; 898ea148d1dSmrg w65) 899ea148d1dSmrg cpu=w65 900ea148d1dSmrg vendor=wdc 90143f32c10Smrg ;; 902ea148d1dSmrg w89k-*) 903ea148d1dSmrg cpu=hppa1.1 904ea148d1dSmrg vendor=winbond 905ea148d1dSmrg os=proelf 90643f32c10Smrg ;; 907ea148d1dSmrg none) 908ea148d1dSmrg cpu=none 909ea148d1dSmrg vendor=none 91043f32c10Smrg ;; 911ea148d1dSmrg leon|leon[3-9]) 912ea148d1dSmrg cpu=sparc 913ea148d1dSmrg vendor=$basic_machine 91443f32c10Smrg ;; 915ea148d1dSmrg leon-*|leon[3-9]-*) 916ea148d1dSmrg cpu=sparc 917ea148d1dSmrg vendor=`echo "$basic_machine" | sed 's/-.*//'` 91843f32c10Smrg ;; 919ea148d1dSmrg 920ea148d1dSmrg *-*) 921ea148d1dSmrg IFS="-" read -r cpu vendor <<EOF 922ea148d1dSmrg$basic_machine 923ea148d1dSmrgEOF 92443f32c10Smrg ;; 925ea148d1dSmrg # We use `pc' rather than `unknown' 926ea148d1dSmrg # because (1) that's what they normally are, and 927ea148d1dSmrg # (2) the word "unknown" tends to confuse beginning users. 928ea148d1dSmrg i*86 | x86_64) 929ea148d1dSmrg cpu=$basic_machine 930ea148d1dSmrg vendor=pc 93143f32c10Smrg ;; 932ea148d1dSmrg # These rules are duplicated from below for sake of the special case above; 933ea148d1dSmrg # i.e. things that normalized to x86 arches should also default to "pc" 934ea148d1dSmrg pc98) 935ea148d1dSmrg cpu=i386 936ea148d1dSmrg vendor=pc 9376ef05171Smrg ;; 938ea148d1dSmrg x64 | amd64) 939ea148d1dSmrg cpu=x86_64 940ea148d1dSmrg vendor=pc 94143f32c10Smrg ;; 942ea148d1dSmrg # Recognize the basic CPU types without company name. 943ea148d1dSmrg *) 944ea148d1dSmrg cpu=$basic_machine 945ea148d1dSmrg vendor=unknown 94643f32c10Smrg ;; 947ea148d1dSmrgesac 948ea148d1dSmrg 949ea148d1dSmrgunset -v basic_machine 950ea148d1dSmrg 951ea148d1dSmrg# Decode basic machines in the full and proper CPU-Company form. 952ea148d1dSmrgcase $cpu-$vendor in 953ea148d1dSmrg # Here we handle the default manufacturer of certain CPU types in cannonical form. It is in 954ea148d1dSmrg # some cases the only manufacturer, in others, it is the most popular. 955ea148d1dSmrg craynv-unknown) 956ea148d1dSmrg vendor=cray 957ea148d1dSmrg os=${os:-unicosmp} 95843f32c10Smrg ;; 959ea148d1dSmrg c90-unknown | c90-cray) 960ea148d1dSmrg vendor=cray 961ea148d1dSmrg os=${os:-unicos} 96243f32c10Smrg ;; 963ea148d1dSmrg fx80-unknown) 964ea148d1dSmrg vendor=alliant 96543f32c10Smrg ;; 966ea148d1dSmrg romp-unknown) 967ea148d1dSmrg vendor=ibm 96843f32c10Smrg ;; 969ea148d1dSmrg mmix-unknown) 970ea148d1dSmrg vendor=knuth 97143f32c10Smrg ;; 972ea148d1dSmrg microblaze-unknown | microblazeel-unknown) 973ea148d1dSmrg vendor=xilinx 97443f32c10Smrg ;; 975ea148d1dSmrg rs6000-unknown) 976ea148d1dSmrg vendor=ibm 97743f32c10Smrg ;; 978ea148d1dSmrg vax-unknown) 979ea148d1dSmrg vendor=dec 98043f32c10Smrg ;; 981ea148d1dSmrg pdp11-unknown) 982ea148d1dSmrg vendor=dec 98343f32c10Smrg ;; 984ea148d1dSmrg we32k-unknown) 985ea148d1dSmrg vendor=att 98643f32c10Smrg ;; 987ea148d1dSmrg cydra-unknown) 988ea148d1dSmrg vendor=cydrome 98943f32c10Smrg ;; 990ea148d1dSmrg i370-ibm*) 991ea148d1dSmrg vendor=ibm 99243f32c10Smrg ;; 993ea148d1dSmrg orion-unknown) 994ea148d1dSmrg vendor=highlevel 99543f32c10Smrg ;; 996ea148d1dSmrg xps-unknown | xps100-unknown) 997ea148d1dSmrg cpu=xps100 998ea148d1dSmrg vendor=honeywell 99943f32c10Smrg ;; 1000ea148d1dSmrg 1001ea148d1dSmrg # Here we normalize CPU types with a missing or matching vendor 1002ea148d1dSmrg dpx20-unknown | dpx20-bull) 1003ea148d1dSmrg cpu=rs6000 1004ea148d1dSmrg vendor=bull 1005ea148d1dSmrg os=${os:-bosx} 100643f32c10Smrg ;; 1007ea148d1dSmrg 1008ea148d1dSmrg # Here we normalize CPU types irrespective of the vendor 1009ea148d1dSmrg amd64-*) 1010ea148d1dSmrg cpu=x86_64 101143f32c10Smrg ;; 1012ea148d1dSmrg blackfin-*) 1013ea148d1dSmrg cpu=bfin 1014ea148d1dSmrg os=linux 101543f32c10Smrg ;; 1016ea148d1dSmrg c54x-*) 1017ea148d1dSmrg cpu=tic54x 101843f32c10Smrg ;; 1019ea148d1dSmrg c55x-*) 1020ea148d1dSmrg cpu=tic55x 102143f32c10Smrg ;; 1022ea148d1dSmrg c6x-*) 1023ea148d1dSmrg cpu=tic6x 102443f32c10Smrg ;; 1025ea148d1dSmrg e500v[12]-*) 1026ea148d1dSmrg cpu=powerpc 1027ea148d1dSmrg os=$os"spe" 102843f32c10Smrg ;; 1029ea148d1dSmrg mips3*-*) 1030ea148d1dSmrg cpu=mips64 103143f32c10Smrg ;; 1032ea148d1dSmrg ms1-*) 1033ea148d1dSmrg cpu=mt 103443f32c10Smrg ;; 1035ea148d1dSmrg m68knommu-*) 1036ea148d1dSmrg cpu=m68k 1037ea148d1dSmrg os=linux 103843f32c10Smrg ;; 1039ea148d1dSmrg m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) 1040ea148d1dSmrg cpu=s12z 104143f32c10Smrg ;; 1042ea148d1dSmrg openrisc-*) 1043ea148d1dSmrg cpu=or32 104443f32c10Smrg ;; 1045ea148d1dSmrg parisc-*) 1046ea148d1dSmrg cpu=hppa 1047ea148d1dSmrg os=linux 104843f32c10Smrg ;; 1049ea148d1dSmrg pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 1050ea148d1dSmrg cpu=i586 105143f32c10Smrg ;; 1052ea148d1dSmrg pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) 1053ea148d1dSmrg cpu=i686 10546ef05171Smrg ;; 1055ea148d1dSmrg pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 1056ea148d1dSmrg cpu=i686 105743f32c10Smrg ;; 1058ea148d1dSmrg pentium4-*) 1059ea148d1dSmrg cpu=i786 106043f32c10Smrg ;; 1061ea148d1dSmrg pc98-*) 1062ea148d1dSmrg cpu=i386 106343f32c10Smrg ;; 1064ea148d1dSmrg ppc-* | ppcbe-*) 1065ea148d1dSmrg cpu=powerpc 106643f32c10Smrg ;; 1067ea148d1dSmrg ppcle-* | powerpclittle-*) 1068ea148d1dSmrg cpu=powerpcle 10696ef05171Smrg ;; 1070ea148d1dSmrg ppc64-*) 1071ea148d1dSmrg cpu=powerpc64 107243f32c10Smrg ;; 1073ea148d1dSmrg ppc64le-* | powerpc64little-*) 1074ea148d1dSmrg cpu=powerpc64le 107543f32c10Smrg ;; 1076ea148d1dSmrg sb1-*) 1077ea148d1dSmrg cpu=mipsisa64sb1 10786ef05171Smrg ;; 1079ea148d1dSmrg sb1el-*) 1080ea148d1dSmrg cpu=mipsisa64sb1el 108143f32c10Smrg ;; 1082ea148d1dSmrg sh5e[lb]-*) 1083ea148d1dSmrg cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` 108443f32c10Smrg ;; 1085ea148d1dSmrg spur-*) 1086ea148d1dSmrg cpu=spur 108743f32c10Smrg ;; 1088ea148d1dSmrg strongarm-* | thumb-*) 1089ea148d1dSmrg cpu=arm 109043f32c10Smrg ;; 1091ea148d1dSmrg tx39-*) 1092ea148d1dSmrg cpu=mipstx39 109343f32c10Smrg ;; 1094ea148d1dSmrg tx39el-*) 1095ea148d1dSmrg cpu=mipstx39el 109643f32c10Smrg ;; 1097ea148d1dSmrg x64-*) 1098ea148d1dSmrg cpu=x86_64 109943f32c10Smrg ;; 1100ea148d1dSmrg xscale-* | xscalee[bl]-*) 1101ea148d1dSmrg cpu=`echo "$cpu" | sed 's/^xscale/arm/'` 110243f32c10Smrg ;; 1103ea148d1dSmrg 1104ea148d1dSmrg # Recognize the cannonical CPU Types that limit and/or modify the 1105ea148d1dSmrg # company names they are paired with. 1106ea148d1dSmrg cr16-*) 1107ea148d1dSmrg os=${os:-elf} 110843f32c10Smrg ;; 1109ea148d1dSmrg crisv32-* | etraxfs*-*) 1110ea148d1dSmrg cpu=crisv32 1111ea148d1dSmrg vendor=axis 111243f32c10Smrg ;; 1113ea148d1dSmrg cris-* | etrax*-*) 1114ea148d1dSmrg cpu=cris 1115ea148d1dSmrg vendor=axis 111643f32c10Smrg ;; 1117ea148d1dSmrg crx-*) 1118ea148d1dSmrg os=${os:-elf} 111943f32c10Smrg ;; 1120ea148d1dSmrg neo-tandem) 1121ea148d1dSmrg cpu=neo 1122ea148d1dSmrg vendor=tandem 112343f32c10Smrg ;; 1124ea148d1dSmrg nse-tandem) 1125ea148d1dSmrg cpu=nse 1126ea148d1dSmrg vendor=tandem 112743f32c10Smrg ;; 1128ea148d1dSmrg nsr-tandem) 1129ea148d1dSmrg cpu=nsr 1130ea148d1dSmrg vendor=tandem 113143f32c10Smrg ;; 1132ea148d1dSmrg nsv-tandem) 1133ea148d1dSmrg cpu=nsv 1134ea148d1dSmrg vendor=tandem 113543f32c10Smrg ;; 1136ea148d1dSmrg nsx-tandem) 1137ea148d1dSmrg cpu=nsx 1138ea148d1dSmrg vendor=tandem 113943f32c10Smrg ;; 1140ea148d1dSmrg s390-*) 1141ea148d1dSmrg cpu=s390 1142ea148d1dSmrg vendor=ibm 1143ea148d1dSmrg ;; 1144ea148d1dSmrg s390x-*) 1145ea148d1dSmrg cpu=s390x 1146ea148d1dSmrg vendor=ibm 114743f32c10Smrg ;; 1148ea148d1dSmrg tile*-*) 1149ea148d1dSmrg os=${os:-linux-gnu} 115043f32c10Smrg ;; 1151ea148d1dSmrg 115243f32c10Smrg *) 1153ea148d1dSmrg # Recognize the cannonical CPU types that are allowed with any 1154ea148d1dSmrg # company name. 1155ea148d1dSmrg case $cpu in 1156ea148d1dSmrg 1750a | 580 \ 1157ea148d1dSmrg | a29k \ 1158ea148d1dSmrg | aarch64 | aarch64_be \ 1159ea148d1dSmrg | abacus \ 1160ea148d1dSmrg | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ 1161ea148d1dSmrg | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ 1162ea148d1dSmrg | alphapca5[67] | alpha64pca5[67] \ 1163ea148d1dSmrg | am33_2.0 \ 1164ea148d1dSmrg | arc | arceb \ 1165ea148d1dSmrg | arm | arm[lb]e | arme[lb] | armv* \ 1166ea148d1dSmrg | avr | avr32 \ 1167ea148d1dSmrg | asmjs \ 1168ea148d1dSmrg | ba \ 1169ea148d1dSmrg | be32 | be64 \ 1170ea148d1dSmrg | bfin | bs2000 \ 1171ea148d1dSmrg | c[123]* | c30 | [cjt]90 | c4x \ 1172ea148d1dSmrg | c8051 | clipper | craynv | csky | cydra \ 1173ea148d1dSmrg | d10v | d30v | dlx | dsp16xx \ 1174ea148d1dSmrg | e2k | elxsi | epiphany \ 1175ea148d1dSmrg | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ 1176ea148d1dSmrg | h8300 | h8500 \ 1177ea148d1dSmrg | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 1178ea148d1dSmrg | hexagon \ 1179ea148d1dSmrg | i370 | i*86 | i860 | i960 | ia16 | ia64 \ 1180ea148d1dSmrg | ip2k | iq2000 \ 1181ea148d1dSmrg | k1om \ 1182ea148d1dSmrg | le32 | le64 \ 1183ea148d1dSmrg | lm32 \ 1184ea148d1dSmrg | m32c | m32r | m32rle \ 1185ea148d1dSmrg | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \ 1186ea148d1dSmrg | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \ 1187ea148d1dSmrg | m88110 | m88k | maxq | mb | mcore | mep | metag \ 1188ea148d1dSmrg | microblaze | microblazeel \ 1189ea148d1dSmrg | mips | mipsbe | mipseb | mipsel | mipsle \ 1190ea148d1dSmrg | mips16 \ 1191ea148d1dSmrg | mips64 | mips64el \ 1192ea148d1dSmrg | mips64octeon | mips64octeonel \ 1193ea148d1dSmrg | mips64orion | mips64orionel \ 1194ea148d1dSmrg | mips64r5900 | mips64r5900el \ 1195ea148d1dSmrg | mips64vr | mips64vrel \ 1196ea148d1dSmrg | mips64vr4100 | mips64vr4100el \ 1197ea148d1dSmrg | mips64vr4300 | mips64vr4300el \ 1198ea148d1dSmrg | mips64vr5000 | mips64vr5000el \ 1199ea148d1dSmrg | mips64vr5900 | mips64vr5900el \ 1200ea148d1dSmrg | mipsisa32 | mipsisa32el \ 1201ea148d1dSmrg | mipsisa32r2 | mipsisa32r2el \ 1202ea148d1dSmrg | mipsisa32r6 | mipsisa32r6el \ 1203ea148d1dSmrg | mipsisa64 | mipsisa64el \ 1204ea148d1dSmrg | mipsisa64r2 | mipsisa64r2el \ 1205ea148d1dSmrg | mipsisa64r6 | mipsisa64r6el \ 1206ea148d1dSmrg | mipsisa64sb1 | mipsisa64sb1el \ 1207ea148d1dSmrg | mipsisa64sr71k | mipsisa64sr71kel \ 1208ea148d1dSmrg | mipsr5900 | mipsr5900el \ 1209ea148d1dSmrg | mipstx39 | mipstx39el \ 1210ea148d1dSmrg | mmix \ 1211ea148d1dSmrg | mn10200 | mn10300 \ 1212ea148d1dSmrg | moxie \ 1213ea148d1dSmrg | mt \ 1214ea148d1dSmrg | msp430 \ 1215ea148d1dSmrg | nds32 | nds32le | nds32be \ 1216ea148d1dSmrg | nfp \ 1217ea148d1dSmrg | nios | nios2 | nios2eb | nios2el \ 1218ea148d1dSmrg | none | np1 | ns16k | ns32k \ 1219ea148d1dSmrg | open8 \ 1220ea148d1dSmrg | or1k* \ 1221ea148d1dSmrg | or32 \ 1222ea148d1dSmrg | orion \ 1223ea148d1dSmrg | pdp10 | pdp11 | pj | pjl | pn | power \ 1224ea148d1dSmrg | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ 1225ea148d1dSmrg | pru \ 1226ea148d1dSmrg | pyramid \ 1227ea148d1dSmrg | riscv | riscv32 | riscv64 \ 1228ea148d1dSmrg | rl78 | romp | rs6000 | rx \ 1229ea148d1dSmrg | score \ 1230ea148d1dSmrg | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ 1231ea148d1dSmrg | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ 1232ea148d1dSmrg | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ 1233ea148d1dSmrg | sparclite \ 1234ea148d1dSmrg | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ 1235ea148d1dSmrg | spu \ 1236ea148d1dSmrg | tahoe \ 1237ea148d1dSmrg | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ 1238ea148d1dSmrg | tron \ 1239ea148d1dSmrg | ubicom32 \ 1240ea148d1dSmrg | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ 1241ea148d1dSmrg | vax \ 1242ea148d1dSmrg | visium \ 1243ea148d1dSmrg | wasm32 \ 1244ea148d1dSmrg | we32k \ 1245ea148d1dSmrg | x86 | x86_64 | xc16x | xgate | xps100 \ 1246ea148d1dSmrg | xstormy16 | xtensa* \ 1247ea148d1dSmrg | ymp \ 1248ea148d1dSmrg | z8k | z80) 1249ea148d1dSmrg ;; 1250ea148d1dSmrg 1251ea148d1dSmrg *) 1252ea148d1dSmrg echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 1253ea148d1dSmrg exit 1 1254ea148d1dSmrg ;; 1255ea148d1dSmrg esac 125643f32c10Smrg ;; 125743f32c10Smrgesac 125843f32c10Smrg 125943f32c10Smrg# Here we canonicalize certain aliases for manufacturers. 1260ea148d1dSmrgcase $vendor in 1261ea148d1dSmrg digital*) 1262ea148d1dSmrg vendor=dec 126343f32c10Smrg ;; 1264ea148d1dSmrg commodore*) 1265ea148d1dSmrg vendor=cbm 126643f32c10Smrg ;; 126743f32c10Smrg *) 126843f32c10Smrg ;; 126943f32c10Smrgesac 127043f32c10Smrg 127143f32c10Smrg# Decode manufacturer-specific aliases for certain operating systems. 127243f32c10Smrg 1273ea148d1dSmrgif [ x$os != x ] 127443f32c10Smrgthen 127543f32c10Smrgcase $os in 1276ea148d1dSmrg # First match some system type aliases that might get confused 1277ea148d1dSmrg # with valid system types. 1278ea148d1dSmrg # solaris* is a basic system type, with this one exception. 1279ea148d1dSmrg auroraux) 1280ea148d1dSmrg os=auroraux 12816ef05171Smrg ;; 1282ea148d1dSmrg bluegene*) 1283ea148d1dSmrg os=cnk 128443f32c10Smrg ;; 1285ea148d1dSmrg solaris1 | solaris1.*) 1286ea148d1dSmrg os=`echo $os | sed -e 's|solaris1|sunos4|'` 128743f32c10Smrg ;; 1288ea148d1dSmrg solaris) 1289ea148d1dSmrg os=solaris2 129043f32c10Smrg ;; 1291ea148d1dSmrg unixware*) 1292ea148d1dSmrg os=sysv4.2uw 129343f32c10Smrg ;; 1294ea148d1dSmrg gnu/linux*) 129543f32c10Smrg os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` 129643f32c10Smrg ;; 1297ea148d1dSmrg # es1800 is here to avoid being matched by es* (a different OS) 1298ea148d1dSmrg es1800*) 1299ea148d1dSmrg os=ose 1300ea148d1dSmrg ;; 1301ea148d1dSmrg # Some version numbers need modification 1302ea148d1dSmrg chorusos*) 1303ea148d1dSmrg os=chorusos 1304ea148d1dSmrg ;; 1305ea148d1dSmrg isc) 1306ea148d1dSmrg os=isc2.2 1307ea148d1dSmrg ;; 1308ea148d1dSmrg sco6) 1309ea148d1dSmrg os=sco5v6 1310ea148d1dSmrg ;; 1311ea148d1dSmrg sco5) 1312ea148d1dSmrg os=sco3.2v5 1313ea148d1dSmrg ;; 1314ea148d1dSmrg sco4) 1315ea148d1dSmrg os=sco3.2v4 1316ea148d1dSmrg ;; 1317ea148d1dSmrg sco3.2.[4-9]*) 1318ea148d1dSmrg os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` 1319ea148d1dSmrg ;; 1320ea148d1dSmrg sco3.2v[4-9]* | sco5v6*) 1321ea148d1dSmrg # Don't forget version if it is 3.2v4 or newer. 1322ea148d1dSmrg ;; 1323ea148d1dSmrg scout) 1324ea148d1dSmrg # Don't match below 1325ea148d1dSmrg ;; 1326ea148d1dSmrg sco*) 1327ea148d1dSmrg os=sco3.2v2 1328ea148d1dSmrg ;; 1329ea148d1dSmrg psos*) 1330ea148d1dSmrg os=psos 1331ea148d1dSmrg ;; 1332ea148d1dSmrg # Now accept the basic system types. 133343f32c10Smrg # The portable systems comes first. 1334ea148d1dSmrg # Each alternative MUST end in a * to match a version number. 1335ea148d1dSmrg # sysv* is not here because it comes later, after sysvr4. 1336ea148d1dSmrg gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ 1337ea148d1dSmrg | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ 1338ea148d1dSmrg | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ 1339ea148d1dSmrg | sym* | kopensolaris* | plan9* \ 1340ea148d1dSmrg | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ 1341ea148d1dSmrg | aos* | aros* | cloudabi* | sortix* \ 1342ea148d1dSmrg | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ 1343ea148d1dSmrg | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ 1344ea148d1dSmrg | knetbsd* | mirbsd* | netbsd* \ 1345ea148d1dSmrg | bitrig* | openbsd* | solidbsd* | libertybsd* \ 1346ea148d1dSmrg | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ 1347ea148d1dSmrg | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ 1348ea148d1dSmrg | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ 1349ea148d1dSmrg | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ 1350ea148d1dSmrg | chorusrdb* | cegcc* | glidix* \ 1351ea148d1dSmrg | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ 1352ea148d1dSmrg | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ 1353ea148d1dSmrg | linux-newlib* | linux-musl* | linux-uclibc* \ 1354ea148d1dSmrg | uxpv* | beos* | mpeix* | udk* | moxiebox* \ 1355ea148d1dSmrg | interix* | uwin* | mks* | rhapsody* | darwin* \ 1356ea148d1dSmrg | openstep* | oskit* | conix* | pw32* | nonstopux* \ 1357ea148d1dSmrg | storm-chaos* | tops10* | tenex* | tops20* | its* \ 1358ea148d1dSmrg | os2* | vos* | palmos* | uclinux* | nucleus* \ 1359ea148d1dSmrg | morphos* | superux* | rtmk* | windiss* \ 1360ea148d1dSmrg | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ 1361ea148d1dSmrg | skyos* | haiku* | rdos* | toppers* | drops* | es* \ 1362ea148d1dSmrg | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ 1363ea148d1dSmrg | midnightbsd*) 136443f32c10Smrg # Remember, each alternative MUST END IN *, to match a version number. 136543f32c10Smrg ;; 1366ea148d1dSmrg qnx*) 1367ea148d1dSmrg case $cpu in 1368ea148d1dSmrg x86 | i*86) 136943f32c10Smrg ;; 137043f32c10Smrg *) 1371ea148d1dSmrg os=nto-$os 137243f32c10Smrg ;; 137343f32c10Smrg esac 137443f32c10Smrg ;; 1375ea148d1dSmrg hiux*) 1376ea148d1dSmrg os=hiuxwe2 137743f32c10Smrg ;; 1378ea148d1dSmrg nto-qnx*) 137943f32c10Smrg ;; 1380ea148d1dSmrg nto*) 1381ea148d1dSmrg os=`echo $os | sed -e 's|nto|nto-qnx|'` 138243f32c10Smrg ;; 1383ea148d1dSmrg sim | xray | os68k* | v88r* \ 1384ea148d1dSmrg | windows* | osx | abug | netware* | os9* \ 1385ea148d1dSmrg | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) 138643f32c10Smrg ;; 1387ea148d1dSmrg linux-dietlibc) 1388ea148d1dSmrg os=linux-dietlibc 138943f32c10Smrg ;; 1390ea148d1dSmrg linux*) 139143f32c10Smrg os=`echo $os | sed -e 's|linux|linux-gnu|'` 139243f32c10Smrg ;; 1393ea148d1dSmrg lynx*178) 1394ea148d1dSmrg os=lynxos178 139543f32c10Smrg ;; 1396ea148d1dSmrg lynx*5) 1397ea148d1dSmrg os=lynxos5 139843f32c10Smrg ;; 1399ea148d1dSmrg lynx*) 1400ea148d1dSmrg os=lynxos 140143f32c10Smrg ;; 1402ea148d1dSmrg mac*) 1403ea148d1dSmrg os=`echo "$os" | sed -e 's|mac|macos|'` 140443f32c10Smrg ;; 1405ea148d1dSmrg opened*) 1406ea148d1dSmrg os=openedition 140743f32c10Smrg ;; 1408ea148d1dSmrg os400*) 1409ea148d1dSmrg os=os400 141043f32c10Smrg ;; 1411ea148d1dSmrg sunos5*) 1412ea148d1dSmrg os=`echo "$os" | sed -e 's|sunos5|solaris2|'` 141343f32c10Smrg ;; 1414ea148d1dSmrg sunos6*) 1415ea148d1dSmrg os=`echo "$os" | sed -e 's|sunos6|solaris3|'` 141643f32c10Smrg ;; 1417ea148d1dSmrg wince*) 1418ea148d1dSmrg os=wince 141943f32c10Smrg ;; 1420ea148d1dSmrg utek*) 1421ea148d1dSmrg os=bsd 142243f32c10Smrg ;; 1423ea148d1dSmrg dynix*) 1424ea148d1dSmrg os=bsd 142543f32c10Smrg ;; 1426ea148d1dSmrg acis*) 1427ea148d1dSmrg os=aos 142843f32c10Smrg ;; 1429ea148d1dSmrg atheos*) 1430ea148d1dSmrg os=atheos 143143f32c10Smrg ;; 1432ea148d1dSmrg syllable*) 1433ea148d1dSmrg os=syllable 1434ea148d1dSmrg ;; 1435ea148d1dSmrg 386bsd) 1436ea148d1dSmrg os=bsd 143743f32c10Smrg ;; 1438ea148d1dSmrg ctix* | uts*) 1439ea148d1dSmrg os=sysv 144043f32c10Smrg ;; 1441ea148d1dSmrg nova*) 1442ea148d1dSmrg os=rtmk-nova 144343f32c10Smrg ;; 1444ea148d1dSmrg ns2) 1445ea148d1dSmrg os=nextstep2 1446ea148d1dSmrg ;; 1447ea148d1dSmrg nsk*) 1448ea148d1dSmrg os=nsk 144943f32c10Smrg ;; 145043f32c10Smrg # Preserve the version number of sinix5. 1451ea148d1dSmrg sinix5.*) 145243f32c10Smrg os=`echo $os | sed -e 's|sinix|sysv|'` 145343f32c10Smrg ;; 1454ea148d1dSmrg sinix*) 1455ea148d1dSmrg os=sysv4 145643f32c10Smrg ;; 1457ea148d1dSmrg tpf*) 1458ea148d1dSmrg os=tpf 145943f32c10Smrg ;; 1460ea148d1dSmrg triton*) 1461ea148d1dSmrg os=sysv3 146243f32c10Smrg ;; 1463ea148d1dSmrg oss*) 1464ea148d1dSmrg os=sysv3 146543f32c10Smrg ;; 1466ea148d1dSmrg svr4*) 1467ea148d1dSmrg os=sysv4 146843f32c10Smrg ;; 1469ea148d1dSmrg svr3) 1470ea148d1dSmrg os=sysv3 147143f32c10Smrg ;; 1472ea148d1dSmrg sysvr4) 1473ea148d1dSmrg os=sysv4 147443f32c10Smrg ;; 1475ea148d1dSmrg # This must come after sysvr4. 1476ea148d1dSmrg sysv*) 147743f32c10Smrg ;; 1478ea148d1dSmrg ose*) 1479ea148d1dSmrg os=ose 148043f32c10Smrg ;; 1481ea148d1dSmrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 1482ea148d1dSmrg os=mint 148343f32c10Smrg ;; 1484ea148d1dSmrg zvmoe) 1485ea148d1dSmrg os=zvmoe 148643f32c10Smrg ;; 1487ea148d1dSmrg dicos*) 1488ea148d1dSmrg os=dicos 148943f32c10Smrg ;; 1490ea148d1dSmrg pikeos*) 1491ea148d1dSmrg # Until real need of OS specific support for 1492ea148d1dSmrg # particular features comes up, bare metal 1493ea148d1dSmrg # configurations are quite functional. 1494ea148d1dSmrg case $cpu in 1495ea148d1dSmrg arm*) 1496ea148d1dSmrg os=eabi 1497ea148d1dSmrg ;; 1498ea148d1dSmrg *) 1499ea148d1dSmrg os=elf 1500ea148d1dSmrg ;; 1501ea148d1dSmrg esac 150243f32c10Smrg ;; 1503ea148d1dSmrg nacl*) 15046ef05171Smrg ;; 1505ea148d1dSmrg ios) 15066ef05171Smrg ;; 1507ea148d1dSmrg none) 15086ef05171Smrg ;; 1509ea148d1dSmrg *-eabi) 151043f32c10Smrg ;; 151143f32c10Smrg *) 1512ea148d1dSmrg echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 151343f32c10Smrg exit 1 151443f32c10Smrg ;; 151543f32c10Smrgesac 151643f32c10Smrgelse 151743f32c10Smrg 151843f32c10Smrg# Here we handle the default operating systems that come with various machines. 151943f32c10Smrg# The value should be what the vendor currently ships out the door with their 152043f32c10Smrg# machine or put another way, the most popular os provided with the machine. 152143f32c10Smrg 152243f32c10Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say, 152343f32c10Smrg# "-sun"), then you have to tell the case statement up towards the top 152443f32c10Smrg# that MANUFACTURER isn't an operating system. Otherwise, code above 152543f32c10Smrg# will signal an error saying that MANUFACTURER isn't an operating 152643f32c10Smrg# system, and we'll never get to this point. 152743f32c10Smrg 1528ea148d1dSmrgcase $cpu-$vendor in 15296ef05171Smrg score-*) 1530ea148d1dSmrg os=elf 153143f32c10Smrg ;; 15326ef05171Smrg spu-*) 1533ea148d1dSmrg os=elf 153443f32c10Smrg ;; 153543f32c10Smrg *-acorn) 1536ea148d1dSmrg os=riscix1.2 153743f32c10Smrg ;; 153843f32c10Smrg arm*-rebel) 1539ea148d1dSmrg os=linux 154043f32c10Smrg ;; 154143f32c10Smrg arm*-semi) 1542ea148d1dSmrg os=aout 154343f32c10Smrg ;; 15446ef05171Smrg c4x-* | tic4x-*) 1545ea148d1dSmrg os=coff 15466ef05171Smrg ;; 15476ef05171Smrg c8051-*) 1548ea148d1dSmrg os=elf 1549ea148d1dSmrg ;; 1550ea148d1dSmrg clipper-intergraph) 1551ea148d1dSmrg os=clix 15526ef05171Smrg ;; 15536ef05171Smrg hexagon-*) 1554ea148d1dSmrg os=elf 15556ef05171Smrg ;; 15566ef05171Smrg tic54x-*) 1557ea148d1dSmrg os=coff 15586ef05171Smrg ;; 15596ef05171Smrg tic55x-*) 1560ea148d1dSmrg os=coff 15616ef05171Smrg ;; 15626ef05171Smrg tic6x-*) 1563ea148d1dSmrg os=coff 156443f32c10Smrg ;; 156543f32c10Smrg # This must come before the *-dec entry. 156643f32c10Smrg pdp10-*) 1567ea148d1dSmrg os=tops20 156843f32c10Smrg ;; 156943f32c10Smrg pdp11-*) 1570ea148d1dSmrg os=none 157143f32c10Smrg ;; 157243f32c10Smrg *-dec | vax-*) 1573ea148d1dSmrg os=ultrix4.2 157443f32c10Smrg ;; 157543f32c10Smrg m68*-apollo) 1576ea148d1dSmrg os=domain 157743f32c10Smrg ;; 157843f32c10Smrg i386-sun) 1579ea148d1dSmrg os=sunos4.0.2 158043f32c10Smrg ;; 158143f32c10Smrg m68000-sun) 1582ea148d1dSmrg os=sunos3 158343f32c10Smrg ;; 158443f32c10Smrg m68*-cisco) 1585ea148d1dSmrg os=aout 158643f32c10Smrg ;; 15876ef05171Smrg mep-*) 1588ea148d1dSmrg os=elf 158943f32c10Smrg ;; 159043f32c10Smrg mips*-cisco) 1591ea148d1dSmrg os=elf 159243f32c10Smrg ;; 159343f32c10Smrg mips*-*) 1594ea148d1dSmrg os=elf 159543f32c10Smrg ;; 159643f32c10Smrg or32-*) 1597ea148d1dSmrg os=coff 159843f32c10Smrg ;; 159943f32c10Smrg *-tti) # must be before sparc entry or we get the wrong os. 1600ea148d1dSmrg os=sysv3 160143f32c10Smrg ;; 160243f32c10Smrg sparc-* | *-sun) 1603ea148d1dSmrg os=sunos4.1.1 160443f32c10Smrg ;; 16056ef05171Smrg pru-*) 1606ea148d1dSmrg os=elf 16076ef05171Smrg ;; 160843f32c10Smrg *-be) 1609ea148d1dSmrg os=beos 161043f32c10Smrg ;; 161143f32c10Smrg *-ibm) 1612ea148d1dSmrg os=aix 161343f32c10Smrg ;; 16146ef05171Smrg *-knuth) 1615ea148d1dSmrg os=mmixware 161643f32c10Smrg ;; 161743f32c10Smrg *-wec) 1618ea148d1dSmrg os=proelf 161943f32c10Smrg ;; 162043f32c10Smrg *-winbond) 1621ea148d1dSmrg os=proelf 162243f32c10Smrg ;; 162343f32c10Smrg *-oki) 1624ea148d1dSmrg os=proelf 162543f32c10Smrg ;; 162643f32c10Smrg *-hp) 1627ea148d1dSmrg os=hpux 162843f32c10Smrg ;; 162943f32c10Smrg *-hitachi) 1630ea148d1dSmrg os=hiux 163143f32c10Smrg ;; 163243f32c10Smrg i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 1633ea148d1dSmrg os=sysv 163443f32c10Smrg ;; 163543f32c10Smrg *-cbm) 1636ea148d1dSmrg os=amigaos 163743f32c10Smrg ;; 163843f32c10Smrg *-dg) 1639ea148d1dSmrg os=dgux 164043f32c10Smrg ;; 164143f32c10Smrg *-dolphin) 1642ea148d1dSmrg os=sysv3 164343f32c10Smrg ;; 164443f32c10Smrg m68k-ccur) 1645ea148d1dSmrg os=rtu 164643f32c10Smrg ;; 164743f32c10Smrg m88k-omron*) 1648ea148d1dSmrg os=luna 164943f32c10Smrg ;; 1650ea148d1dSmrg *-next) 1651ea148d1dSmrg os=nextstep 165243f32c10Smrg ;; 165343f32c10Smrg *-sequent) 1654ea148d1dSmrg os=ptx 165543f32c10Smrg ;; 165643f32c10Smrg *-crds) 1657ea148d1dSmrg os=unos 165843f32c10Smrg ;; 165943f32c10Smrg *-ns) 1660ea148d1dSmrg os=genix 166143f32c10Smrg ;; 166243f32c10Smrg i370-*) 1663ea148d1dSmrg os=mvs 166443f32c10Smrg ;; 166543f32c10Smrg *-gould) 1666ea148d1dSmrg os=sysv 166743f32c10Smrg ;; 166843f32c10Smrg *-highlevel) 1669ea148d1dSmrg os=bsd 167043f32c10Smrg ;; 167143f32c10Smrg *-encore) 1672ea148d1dSmrg os=bsd 167343f32c10Smrg ;; 167443f32c10Smrg *-sgi) 1675ea148d1dSmrg os=irix 167643f32c10Smrg ;; 167743f32c10Smrg *-siemens) 1678ea148d1dSmrg os=sysv4 167943f32c10Smrg ;; 168043f32c10Smrg *-masscomp) 1681ea148d1dSmrg os=rtu 168243f32c10Smrg ;; 168343f32c10Smrg f30[01]-fujitsu | f700-fujitsu) 1684ea148d1dSmrg os=uxpv 168543f32c10Smrg ;; 168643f32c10Smrg *-rom68k) 1687ea148d1dSmrg os=coff 168843f32c10Smrg ;; 168943f32c10Smrg *-*bug) 1690ea148d1dSmrg os=coff 169143f32c10Smrg ;; 169243f32c10Smrg *-apple) 1693ea148d1dSmrg os=macos 169443f32c10Smrg ;; 169543f32c10Smrg *-atari*) 1696ea148d1dSmrg os=mint 1697ea148d1dSmrg ;; 1698ea148d1dSmrg *-wrs) 1699ea148d1dSmrg os=vxworks 170043f32c10Smrg ;; 170143f32c10Smrg *) 1702ea148d1dSmrg os=none 170343f32c10Smrg ;; 170443f32c10Smrgesac 170543f32c10Smrgfi 170643f32c10Smrg 170743f32c10Smrg# Here we handle the case where we know the os, and the CPU type, but not the 170843f32c10Smrg# manufacturer. We pick the logical manufacturer. 1709ea148d1dSmrgcase $vendor in 1710ea148d1dSmrg unknown) 171143f32c10Smrg case $os in 1712ea148d1dSmrg riscix*) 171343f32c10Smrg vendor=acorn 171443f32c10Smrg ;; 1715ea148d1dSmrg sunos*) 171643f32c10Smrg vendor=sun 171743f32c10Smrg ;; 1718ea148d1dSmrg cnk*|-aix*) 171943f32c10Smrg vendor=ibm 172043f32c10Smrg ;; 1721ea148d1dSmrg beos*) 172243f32c10Smrg vendor=be 172343f32c10Smrg ;; 1724ea148d1dSmrg hpux*) 172543f32c10Smrg vendor=hp 172643f32c10Smrg ;; 1727ea148d1dSmrg mpeix*) 172843f32c10Smrg vendor=hp 172943f32c10Smrg ;; 1730ea148d1dSmrg hiux*) 173143f32c10Smrg vendor=hitachi 173243f32c10Smrg ;; 1733ea148d1dSmrg unos*) 173443f32c10Smrg vendor=crds 173543f32c10Smrg ;; 1736ea148d1dSmrg dgux*) 173743f32c10Smrg vendor=dg 173843f32c10Smrg ;; 1739ea148d1dSmrg luna*) 174043f32c10Smrg vendor=omron 174143f32c10Smrg ;; 1742ea148d1dSmrg genix*) 174343f32c10Smrg vendor=ns 174443f32c10Smrg ;; 1745ea148d1dSmrg clix*) 1746ea148d1dSmrg vendor=intergraph 1747ea148d1dSmrg ;; 1748ea148d1dSmrg mvs* | opened*) 174943f32c10Smrg vendor=ibm 175043f32c10Smrg ;; 1751ea148d1dSmrg os400*) 175243f32c10Smrg vendor=ibm 175343f32c10Smrg ;; 1754ea148d1dSmrg ptx*) 175543f32c10Smrg vendor=sequent 175643f32c10Smrg ;; 1757ea148d1dSmrg tpf*) 175843f32c10Smrg vendor=ibm 175943f32c10Smrg ;; 1760ea148d1dSmrg vxsim* | vxworks* | windiss*) 176143f32c10Smrg vendor=wrs 176243f32c10Smrg ;; 1763ea148d1dSmrg aux*) 176443f32c10Smrg vendor=apple 176543f32c10Smrg ;; 1766ea148d1dSmrg hms*) 176743f32c10Smrg vendor=hitachi 176843f32c10Smrg ;; 1769ea148d1dSmrg mpw* | macos*) 177043f32c10Smrg vendor=apple 177143f32c10Smrg ;; 1772ea148d1dSmrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 177343f32c10Smrg vendor=atari 177443f32c10Smrg ;; 1775ea148d1dSmrg vos*) 177643f32c10Smrg vendor=stratus 177743f32c10Smrg ;; 177843f32c10Smrg esac 177943f32c10Smrg ;; 178043f32c10Smrgesac 178143f32c10Smrg 1782ea148d1dSmrgecho "$cpu-$vendor-$os" 178343f32c10Smrgexit 178443f32c10Smrg 178543f32c10Smrg# Local variables: 1786ea148d1dSmrg# eval: (add-hook 'before-save-hook 'time-stamp) 178743f32c10Smrg# time-stamp-start: "timestamp='" 178843f32c10Smrg# time-stamp-format: "%:y-%02m-%02d" 178943f32c10Smrg# time-stamp-end: "'" 179043f32c10Smrg# End: 1791