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