12c393a42Smrg#! /bin/sh 22c393a42Smrg# Configuration validation subroutine script. 3a32e9e42Smrg# Copyright 1992-2018 Free Software Foundation, Inc. 42c393a42Smrg 5a4e54154Smrgtimestamp='2018-08-29' 62c393a42Smrg 76fc018e4Smrg# This file is free software; you can redistribute it and/or modify it 86fc018e4Smrg# under the terms of the GNU General Public License as published by 96fc018e4Smrg# the Free Software Foundation; either version 3 of the License, or 102c393a42Smrg# (at your option) any later version. 112c393a42Smrg# 126fc018e4Smrg# This program is distributed in the hope that it will be useful, but 136fc018e4Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of 146fc018e4Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 156fc018e4Smrg# General Public License for more details. 162c393a42Smrg# 172c393a42Smrg# You should have received a copy of the GNU General Public License 18a32e9e42Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>. 192c393a42Smrg# 202c393a42Smrg# As a special exception to the GNU General Public License, if you 212c393a42Smrg# distribute this file as part of a program that contains a 222c393a42Smrg# configuration script generated by Autoconf, you may include it under 236fc018e4Smrg# the same distribution terms that you use for the rest of that 246fc018e4Smrg# program. This Exception is an additional permission under section 7 256fc018e4Smrg# of the GNU General Public License, version 3 ("GPLv3"). 262c393a42Smrg 272c393a42Smrg 28953daebaSmrg# Please send patches to <config-patches@gnu.org>. 292c393a42Smrg# 302c393a42Smrg# Configuration subroutine to validate and canonicalize a configuration type. 312c393a42Smrg# Supply the specified configuration type as an argument. 322c393a42Smrg# If it is invalid, we print an error message on stderr and exit with code 1. 332c393a42Smrg# Otherwise, we print the canonical config type on stdout and succeed. 342c393a42Smrg 35ca08ab68Smrg# You can get the latest version of this script from: 36a32e9e42Smrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub 37ca08ab68Smrg 382c393a42Smrg# This file is supposed to be the same for all GNU packages 392c393a42Smrg# and recognize all the CPU types, system types and aliases 402c393a42Smrg# that are meaningful with *any* GNU software. 412c393a42Smrg# Each package is responsible for reporting which valid configurations 422c393a42Smrg# it does not support. The user should be able to distinguish 432c393a42Smrg# a failure to support a valid configuration from a meaningless 442c393a42Smrg# configuration. 452c393a42Smrg 462c393a42Smrg# The goal of this file is to map all the various variations of a given 472c393a42Smrg# machine specification into a single specification in the form: 482c393a42Smrg# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 492c393a42Smrg# or in some cases, the newer four-part form: 502c393a42Smrg# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 512c393a42Smrg# It is wrong to echo any other type of specification. 522c393a42Smrg 532c393a42Smrgme=`echo "$0" | sed -e 's,.*/,,'` 542c393a42Smrg 552c393a42Smrgusage="\ 56a32e9e42SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 572c393a42Smrg 582c393a42SmrgCanonicalize a configuration name. 592c393a42Smrg 60a32e9e42SmrgOptions: 612c393a42Smrg -h, --help print this help, then exit 622c393a42Smrg -t, --time-stamp print date of last modification, then exit 632c393a42Smrg -v, --version print version number, then exit 642c393a42Smrg 652c393a42SmrgReport bugs and patches to <config-patches@gnu.org>." 662c393a42Smrg 672c393a42Smrgversion="\ 682c393a42SmrgGNU config.sub ($timestamp) 692c393a42Smrg 70a32e9e42SmrgCopyright 1992-2018 Free Software Foundation, Inc. 712c393a42Smrg 722c393a42SmrgThis is free software; see the source for copying conditions. There is NO 732c393a42Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 742c393a42Smrg 752c393a42Smrghelp=" 762c393a42SmrgTry \`$me --help' for more information." 772c393a42Smrg 782c393a42Smrg# Parse command line 792c393a42Smrgwhile test $# -gt 0 ; do 802c393a42Smrg case $1 in 812c393a42Smrg --time-stamp | --time* | -t ) 822c393a42Smrg echo "$timestamp" ; exit ;; 832c393a42Smrg --version | -v ) 842c393a42Smrg echo "$version" ; exit ;; 852c393a42Smrg --help | --h* | -h ) 862c393a42Smrg echo "$usage"; exit ;; 872c393a42Smrg -- ) # Stop option processing 882c393a42Smrg shift; break ;; 892c393a42Smrg - ) # Use stdin as input. 902c393a42Smrg break ;; 912c393a42Smrg -* ) 922c393a42Smrg echo "$me: invalid option $1$help" 932c393a42Smrg exit 1 ;; 942c393a42Smrg 952c393a42Smrg *local*) 962c393a42Smrg # First pass through any local machine types. 97a32e9e42Smrg echo "$1" 982c393a42Smrg exit ;; 992c393a42Smrg 1002c393a42Smrg * ) 1012c393a42Smrg break ;; 1022c393a42Smrg esac 1032c393a42Smrgdone 1042c393a42Smrg 1052c393a42Smrgcase $# in 1062c393a42Smrg 0) echo "$me: missing argument$help" >&2 1072c393a42Smrg exit 1;; 1082c393a42Smrg 1) ;; 1092c393a42Smrg *) echo "$me: too many arguments$help" >&2 1102c393a42Smrg exit 1;; 1112c393a42Smrgesac 1122c393a42Smrg 113a4e54154Smrg# Split fields of configuration type 114a32e9e42SmrgIFS="-" read -r field1 field2 field3 field4 <<EOF 115a32e9e42Smrg$1 116a32e9e42SmrgEOF 117a32e9e42Smrg 118a32e9e42Smrg# Separate into logical components for further validation 119a32e9e42Smrgcase $1 in 120a4e54154Smrg *-*-*-*-*) 121a4e54154Smrg echo Invalid configuration \`"$1"\': more than four components >&2 122a4e54154Smrg exit 1 123a4e54154Smrg ;; 124a32e9e42Smrg *-*-*-*) 125a32e9e42Smrg basic_machine=$field1-$field2 126a4e54154Smrg os=$field3-$field4 127a32e9e42Smrg ;; 128a32e9e42Smrg *-*-*) 129a32e9e42Smrg # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two 130a32e9e42Smrg # parts 131a32e9e42Smrg maybe_os=$field2-$field3 132a32e9e42Smrg case $maybe_os in 133a32e9e42Smrg nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ 134a32e9e42Smrg | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ 135a32e9e42Smrg | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ 136a32e9e42Smrg | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ 137a32e9e42Smrg | storm-chaos* | os2-emx* | rtmk-nova*) 138a32e9e42Smrg basic_machine=$field1 139a4e54154Smrg os=$maybe_os 140a32e9e42Smrg ;; 141a32e9e42Smrg android-linux) 142a32e9e42Smrg basic_machine=$field1-unknown 143a4e54154Smrg os=linux-android 144a32e9e42Smrg ;; 145a32e9e42Smrg *) 146a32e9e42Smrg basic_machine=$field1-$field2 147a4e54154Smrg os=$field3 148a32e9e42Smrg ;; 149a32e9e42Smrg esac 150a32e9e42Smrg ;; 151a32e9e42Smrg *-*) 152a4e54154Smrg # A lone config we happen to match not fitting any patern 153a4e54154Smrg case $field1-$field2 in 154a4e54154Smrg decstation-3100) 155a4e54154Smrg basic_machine=mips-dec 156a4e54154Smrg os= 157a4e54154Smrg ;; 158a4e54154Smrg *-*) 159a4e54154Smrg # Second component is usually, but not always the OS 160a4e54154Smrg case $field2 in 161a4e54154Smrg # Prevent following clause from handling this valid os 162a4e54154Smrg sun*os*) 163a4e54154Smrg basic_machine=$field1 164a4e54154Smrg os=$field2 165a4e54154Smrg ;; 166a4e54154Smrg # Manufacturers 167a4e54154Smrg dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ 168a4e54154Smrg | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ 169a4e54154Smrg | unicom* | ibm* | next | hp | isi* | apollo | altos* \ 170a4e54154Smrg | convergent* | ncr* | news | 32* | 3600* | 3100* \ 171a4e54154Smrg | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ 172a4e54154Smrg | ultra | tti* | harris | dolphin | highlevel | gould \ 173a4e54154Smrg | cbm | ns | masscomp | apple | axis | knuth | cray \ 174a4e54154Smrg | microblaze* | sim | cisco \ 175a4e54154Smrg | oki | wec | wrs | winbond) 176a4e54154Smrg basic_machine=$field1-$field2 177a4e54154Smrg os= 178a4e54154Smrg ;; 179a4e54154Smrg *) 180a4e54154Smrg basic_machine=$field1 181a4e54154Smrg os=$field2 182a4e54154Smrg ;; 183a4e54154Smrg esac 184a4e54154Smrg ;; 185a4e54154Smrg esac 186a32e9e42Smrg ;; 187a32e9e42Smrg *) 188a4e54154Smrg # Convert single-component short-hands not valid as part of 189a4e54154Smrg # multi-component configurations. 190a4e54154Smrg case $field1 in 191a4e54154Smrg 386bsd) 192a4e54154Smrg basic_machine=i386-pc 193a4e54154Smrg os=bsd 194a4e54154Smrg ;; 195a4e54154Smrg a29khif) 196a4e54154Smrg basic_machine=a29k-amd 197a4e54154Smrg os=udi 198a4e54154Smrg ;; 199a4e54154Smrg adobe68k) 200a4e54154Smrg basic_machine=m68010-adobe 201a4e54154Smrg os=scout 202a4e54154Smrg ;; 203a4e54154Smrg alliant) 204a4e54154Smrg basic_machine=fx80-alliant 205a4e54154Smrg os= 206a4e54154Smrg ;; 207a4e54154Smrg altos | altos3068) 208a4e54154Smrg basic_machine=m68k-altos 209a4e54154Smrg os= 210a4e54154Smrg ;; 211a4e54154Smrg am29k) 212a4e54154Smrg basic_machine=a29k-none 213a4e54154Smrg os=bsd 214a4e54154Smrg ;; 215a4e54154Smrg amdahl) 216a4e54154Smrg basic_machine=580-amdahl 217a4e54154Smrg os=sysv 218a4e54154Smrg ;; 219a4e54154Smrg amiga) 220a4e54154Smrg basic_machine=m68k-unknown 221a4e54154Smrg os= 222a4e54154Smrg ;; 223a4e54154Smrg amigaos | amigados) 224a4e54154Smrg basic_machine=m68k-unknown 225a4e54154Smrg os=amigaos 226a4e54154Smrg ;; 227a4e54154Smrg amigaunix | amix) 228a4e54154Smrg basic_machine=m68k-unknown 229a4e54154Smrg os=sysv4 230a4e54154Smrg ;; 231a4e54154Smrg apollo68) 232a4e54154Smrg basic_machine=m68k-apollo 233a4e54154Smrg os=sysv 234a4e54154Smrg ;; 235a4e54154Smrg apollo68bsd) 236a4e54154Smrg basic_machine=m68k-apollo 237a4e54154Smrg os=bsd 238a4e54154Smrg ;; 239a4e54154Smrg aros) 240a4e54154Smrg basic_machine=i386-pc 241a4e54154Smrg os=aros 242a4e54154Smrg ;; 243a4e54154Smrg aux) 244a4e54154Smrg basic_machine=m68k-apple 245a4e54154Smrg os=aux 246a4e54154Smrg ;; 247a4e54154Smrg balance) 248a4e54154Smrg basic_machine=ns32k-sequent 249a4e54154Smrg os=dynix 250a4e54154Smrg ;; 251a4e54154Smrg blackfin) 252a4e54154Smrg basic_machine=bfin-unknown 253a4e54154Smrg os=linux 254a4e54154Smrg ;; 255a4e54154Smrg cegcc) 256a4e54154Smrg basic_machine=arm-unknown 257a4e54154Smrg os=cegcc 258a4e54154Smrg ;; 259a4e54154Smrg convex-c1) 260a4e54154Smrg basic_machine=c1-convex 261a4e54154Smrg os=bsd 262a4e54154Smrg ;; 263a4e54154Smrg convex-c2) 264a4e54154Smrg basic_machine=c2-convex 265a4e54154Smrg os=bsd 266a4e54154Smrg ;; 267a4e54154Smrg convex-c32) 268a4e54154Smrg basic_machine=c32-convex 269a4e54154Smrg os=bsd 270a4e54154Smrg ;; 271a4e54154Smrg convex-c34) 272a4e54154Smrg basic_machine=c34-convex 273a4e54154Smrg os=bsd 274a4e54154Smrg ;; 275a4e54154Smrg convex-c38) 276a4e54154Smrg basic_machine=c38-convex 277a4e54154Smrg os=bsd 278a4e54154Smrg ;; 279a4e54154Smrg cray) 280a4e54154Smrg basic_machine=j90-cray 281a4e54154Smrg os=unicos 282a4e54154Smrg ;; 283a4e54154Smrg crds | unos) 284a4e54154Smrg basic_machine=m68k-crds 285a4e54154Smrg os= 286a4e54154Smrg ;; 287a4e54154Smrg da30) 288a4e54154Smrg basic_machine=m68k-da30 289a4e54154Smrg os= 290a4e54154Smrg ;; 291a4e54154Smrg decstation | pmax | pmin | dec3100 | decstatn) 292a4e54154Smrg basic_machine=mips-dec 293a4e54154Smrg os= 294a4e54154Smrg ;; 295a4e54154Smrg delta88) 296a4e54154Smrg basic_machine=m88k-motorola 297a4e54154Smrg os=sysv3 298a4e54154Smrg ;; 299a4e54154Smrg dicos) 300a4e54154Smrg basic_machine=i686-pc 301a4e54154Smrg os=dicos 302a4e54154Smrg ;; 303a4e54154Smrg djgpp) 304a4e54154Smrg basic_machine=i586-pc 305a4e54154Smrg os=msdosdjgpp 306a4e54154Smrg ;; 307a4e54154Smrg ebmon29k) 308a4e54154Smrg basic_machine=a29k-amd 309a4e54154Smrg os=ebmon 310a4e54154Smrg ;; 311a4e54154Smrg es1800 | OSE68k | ose68k | ose | OSE) 312a4e54154Smrg basic_machine=m68k-ericsson 313a4e54154Smrg os=ose 314a4e54154Smrg ;; 315a4e54154Smrg gmicro) 316a4e54154Smrg basic_machine=tron-gmicro 317a4e54154Smrg os=sysv 318a4e54154Smrg ;; 319a4e54154Smrg go32) 320a4e54154Smrg basic_machine=i386-pc 321a4e54154Smrg os=go32 322a4e54154Smrg ;; 323a4e54154Smrg h8300hms) 324a4e54154Smrg basic_machine=h8300-hitachi 325a4e54154Smrg os=hms 326a4e54154Smrg ;; 327a4e54154Smrg h8300xray) 328a4e54154Smrg basic_machine=h8300-hitachi 329a4e54154Smrg os=xray 330a4e54154Smrg ;; 331a4e54154Smrg h8500hms) 332a4e54154Smrg basic_machine=h8500-hitachi 333a4e54154Smrg os=hms 334a4e54154Smrg ;; 335a4e54154Smrg harris) 336a4e54154Smrg basic_machine=m88k-harris 337a4e54154Smrg os=sysv3 338a4e54154Smrg ;; 339a4e54154Smrg hp300) 340a4e54154Smrg basic_machine=m68k-hp 341a4e54154Smrg ;; 342a4e54154Smrg hp300bsd) 343a4e54154Smrg basic_machine=m68k-hp 344a4e54154Smrg os=bsd 345a4e54154Smrg ;; 346a4e54154Smrg hp300hpux) 347a4e54154Smrg basic_machine=m68k-hp 348a4e54154Smrg os=hpux 349a4e54154Smrg ;; 350a4e54154Smrg hppaosf) 351a4e54154Smrg basic_machine=hppa1.1-hp 352a4e54154Smrg os=osf 353a4e54154Smrg ;; 354a4e54154Smrg hppro) 355a4e54154Smrg basic_machine=hppa1.1-hp 356a4e54154Smrg os=proelf 357a4e54154Smrg ;; 358a4e54154Smrg i386mach) 359a4e54154Smrg basic_machine=i386-mach 360a4e54154Smrg os=mach 361a4e54154Smrg ;; 362a4e54154Smrg vsta) 363a4e54154Smrg basic_machine=i386-pc 364a4e54154Smrg os=vsta 365a4e54154Smrg ;; 366a4e54154Smrg isi68 | isi) 367a4e54154Smrg basic_machine=m68k-isi 368a4e54154Smrg os=sysv 369a4e54154Smrg ;; 370a4e54154Smrg m68knommu) 371a4e54154Smrg basic_machine=m68k-unknown 372a4e54154Smrg os=linux 373a4e54154Smrg ;; 374a4e54154Smrg magnum | m3230) 375a4e54154Smrg basic_machine=mips-mips 376a4e54154Smrg os=sysv 377a4e54154Smrg ;; 378a4e54154Smrg merlin) 379a4e54154Smrg basic_machine=ns32k-utek 380a4e54154Smrg os=sysv 381a4e54154Smrg ;; 382a4e54154Smrg mingw64) 383a4e54154Smrg basic_machine=x86_64-pc 384a4e54154Smrg os=mingw64 385a4e54154Smrg ;; 386a4e54154Smrg mingw32) 387a4e54154Smrg basic_machine=i686-pc 388a4e54154Smrg os=mingw32 389a4e54154Smrg ;; 390a4e54154Smrg mingw32ce) 391a4e54154Smrg basic_machine=arm-unknown 392a4e54154Smrg os=mingw32ce 393a4e54154Smrg ;; 394a4e54154Smrg monitor) 395a4e54154Smrg basic_machine=m68k-rom68k 396a4e54154Smrg os=coff 397a4e54154Smrg ;; 398a4e54154Smrg morphos) 399a4e54154Smrg basic_machine=powerpc-unknown 400a4e54154Smrg os=morphos 401a4e54154Smrg ;; 402a4e54154Smrg moxiebox) 403a4e54154Smrg basic_machine=moxie-unknown 404a4e54154Smrg os=moxiebox 405a4e54154Smrg ;; 406a4e54154Smrg msdos) 407a4e54154Smrg basic_machine=i386-pc 408a4e54154Smrg os=msdos 409a4e54154Smrg ;; 410a4e54154Smrg msys) 411a4e54154Smrg basic_machine=i686-pc 412a4e54154Smrg os=msys 413a4e54154Smrg ;; 414a4e54154Smrg mvs) 415a4e54154Smrg basic_machine=i370-ibm 416a4e54154Smrg os=mvs 417a4e54154Smrg ;; 418a4e54154Smrg nacl) 419a4e54154Smrg basic_machine=le32-unknown 420a4e54154Smrg os=nacl 421a4e54154Smrg ;; 422a4e54154Smrg ncr3000) 423a4e54154Smrg basic_machine=i486-ncr 424a4e54154Smrg os=sysv4 425a4e54154Smrg ;; 426a4e54154Smrg netbsd386) 427a4e54154Smrg basic_machine=i386-pc 428a4e54154Smrg os=netbsd 429a4e54154Smrg ;; 430a4e54154Smrg netwinder) 431a4e54154Smrg basic_machine=armv4l-rebel 432a4e54154Smrg os=linux 433a4e54154Smrg ;; 434a4e54154Smrg news | news700 | news800 | news900) 435a4e54154Smrg basic_machine=m68k-sony 436a4e54154Smrg os=newsos 437a4e54154Smrg ;; 438a4e54154Smrg news1000) 439a4e54154Smrg basic_machine=m68030-sony 440a4e54154Smrg os=newsos 441a4e54154Smrg ;; 442a4e54154Smrg necv70) 443a4e54154Smrg basic_machine=v70-nec 444a4e54154Smrg os=sysv 445a4e54154Smrg ;; 446a4e54154Smrg nh3000) 447a4e54154Smrg basic_machine=m68k-harris 448a4e54154Smrg os=cxux 449a4e54154Smrg ;; 450a4e54154Smrg nh[45]000) 451a4e54154Smrg basic_machine=m88k-harris 452a4e54154Smrg os=cxux 453a4e54154Smrg ;; 454a4e54154Smrg nindy960) 455a4e54154Smrg basic_machine=i960-intel 456a4e54154Smrg os=nindy 457a4e54154Smrg ;; 458a4e54154Smrg mon960) 459a4e54154Smrg basic_machine=i960-intel 460a4e54154Smrg os=mon960 461a4e54154Smrg ;; 462a4e54154Smrg nonstopux) 463a4e54154Smrg basic_machine=mips-compaq 464a4e54154Smrg os=nonstopux 465a4e54154Smrg ;; 466a4e54154Smrg os400) 467a4e54154Smrg basic_machine=powerpc-ibm 468a4e54154Smrg os=os400 469a4e54154Smrg ;; 470a4e54154Smrg OSE68000 | ose68000) 471a4e54154Smrg basic_machine=m68000-ericsson 472a4e54154Smrg os=ose 473a4e54154Smrg ;; 474a4e54154Smrg os68k) 475a4e54154Smrg basic_machine=m68k-none 476a4e54154Smrg os=os68k 477a4e54154Smrg ;; 478a4e54154Smrg paragon) 479a4e54154Smrg basic_machine=i860-intel 480a4e54154Smrg os=osf 481a4e54154Smrg ;; 482a4e54154Smrg parisc) 483a4e54154Smrg basic_machine=hppa-unknown 484a4e54154Smrg os=linux 485a4e54154Smrg ;; 486a4e54154Smrg pw32) 487a4e54154Smrg basic_machine=i586-unknown 488a4e54154Smrg os=pw32 489a4e54154Smrg ;; 490a4e54154Smrg rdos | rdos64) 491a4e54154Smrg basic_machine=x86_64-pc 492a4e54154Smrg os=rdos 493a4e54154Smrg ;; 494a4e54154Smrg rdos32) 495a4e54154Smrg basic_machine=i386-pc 496a4e54154Smrg os=rdos 497a4e54154Smrg ;; 498a4e54154Smrg rom68k) 499a4e54154Smrg basic_machine=m68k-rom68k 500a4e54154Smrg os=coff 501a4e54154Smrg ;; 502a4e54154Smrg sa29200) 503a4e54154Smrg basic_machine=a29k-amd 504a4e54154Smrg os=udi 505a4e54154Smrg ;; 506a4e54154Smrg sei) 507a4e54154Smrg basic_machine=mips-sei 508a4e54154Smrg os=seiux 509a4e54154Smrg ;; 510a4e54154Smrg sequent) 511a4e54154Smrg basic_machine=i386-sequent 512a4e54154Smrg os= 513a4e54154Smrg ;; 514a4e54154Smrg sps7) 515a4e54154Smrg basic_machine=m68k-bull 516a4e54154Smrg os=sysv2 517a4e54154Smrg ;; 518a4e54154Smrg st2000) 519a4e54154Smrg basic_machine=m68k-tandem 520a4e54154Smrg os= 521a4e54154Smrg ;; 522a4e54154Smrg stratus) 523a4e54154Smrg basic_machine=i860-stratus 524a4e54154Smrg os=sysv4 525a4e54154Smrg ;; 526a4e54154Smrg sun2) 527a4e54154Smrg basic_machine=m68000-sun 528a4e54154Smrg os= 529a4e54154Smrg ;; 530a4e54154Smrg sun2os3) 531a4e54154Smrg basic_machine=m68000-sun 532a4e54154Smrg os=sunos3 533a4e54154Smrg ;; 534a4e54154Smrg sun2os4) 535a4e54154Smrg basic_machine=m68000-sun 536a4e54154Smrg os=sunos4 537a4e54154Smrg ;; 538a4e54154Smrg sun3) 539a4e54154Smrg basic_machine=m68k-sun 540a4e54154Smrg os= 541a4e54154Smrg ;; 542a4e54154Smrg sun3os3) 543a4e54154Smrg basic_machine=m68k-sun 544a4e54154Smrg os=sunos3 545a4e54154Smrg ;; 546a4e54154Smrg sun3os4) 547a4e54154Smrg basic_machine=m68k-sun 548a4e54154Smrg os=sunos4 549a4e54154Smrg ;; 550a4e54154Smrg sun4) 551a4e54154Smrg basic_machine=sparc-sun 552a4e54154Smrg os= 553a4e54154Smrg ;; 554a4e54154Smrg sun4os3) 555a4e54154Smrg basic_machine=sparc-sun 556a4e54154Smrg os=sunos3 557a4e54154Smrg ;; 558a4e54154Smrg sun4os4) 559a4e54154Smrg basic_machine=sparc-sun 560a4e54154Smrg os=sunos4 561a4e54154Smrg ;; 562a4e54154Smrg sun4sol2) 563a4e54154Smrg basic_machine=sparc-sun 564a4e54154Smrg os=solaris2 565a4e54154Smrg ;; 566a4e54154Smrg sun386 | sun386i | roadrunner) 567a4e54154Smrg basic_machine=i386-sun 568a4e54154Smrg os= 569a4e54154Smrg ;; 570a4e54154Smrg sv1) 571a4e54154Smrg basic_machine=sv1-cray 572a4e54154Smrg os=unicos 573a4e54154Smrg ;; 574a4e54154Smrg symmetry) 575a4e54154Smrg basic_machine=i386-sequent 576a4e54154Smrg os=dynix 577a4e54154Smrg ;; 578a4e54154Smrg t3e) 579a4e54154Smrg basic_machine=alphaev5-cray 580a4e54154Smrg os=unicos 581a4e54154Smrg ;; 582a4e54154Smrg t90) 583a4e54154Smrg basic_machine=t90-cray 584a4e54154Smrg os=unicos 585a4e54154Smrg ;; 586a4e54154Smrg toad1) 587a4e54154Smrg basic_machine=pdp10-xkl 588a4e54154Smrg os=tops20 589a4e54154Smrg ;; 590a4e54154Smrg tpf) 591a4e54154Smrg basic_machine=s390x-ibm 592a4e54154Smrg os=tpf 593a4e54154Smrg ;; 594a4e54154Smrg udi29k) 595a4e54154Smrg basic_machine=a29k-amd 596a4e54154Smrg os=udi 597a4e54154Smrg ;; 598a4e54154Smrg ultra3) 599a4e54154Smrg basic_machine=a29k-nyu 600a4e54154Smrg os=sym1 601a4e54154Smrg ;; 602a4e54154Smrg v810 | necv810) 603a4e54154Smrg basic_machine=v810-nec 604a4e54154Smrg os=none 605a4e54154Smrg ;; 606a4e54154Smrg vaxv) 607a4e54154Smrg basic_machine=vax-dec 608a4e54154Smrg os=sysv 609a4e54154Smrg ;; 610a4e54154Smrg vms) 611a4e54154Smrg basic_machine=vax-dec 612a4e54154Smrg os=vms 613a4e54154Smrg ;; 614a4e54154Smrg vxworks960) 615a4e54154Smrg basic_machine=i960-wrs 616a4e54154Smrg os=vxworks 617a4e54154Smrg ;; 618a4e54154Smrg vxworks68) 619a4e54154Smrg basic_machine=m68k-wrs 620a4e54154Smrg os=vxworks 621a4e54154Smrg ;; 622a4e54154Smrg vxworks29k) 623a4e54154Smrg basic_machine=a29k-wrs 624a4e54154Smrg os=vxworks 625a4e54154Smrg ;; 626a4e54154Smrg xbox) 627a4e54154Smrg basic_machine=i686-pc 628a4e54154Smrg os=mingw32 629a4e54154Smrg ;; 630a4e54154Smrg ymp) 631a4e54154Smrg basic_machine=ymp-cray 632a4e54154Smrg os=unicos 633a4e54154Smrg ;; 634a4e54154Smrg *) 635a4e54154Smrg basic_machine=$1 636a4e54154Smrg os= 637a4e54154Smrg ;; 638a4e54154Smrg esac 6392c393a42Smrg ;; 6402c393a42Smrgesac 6412c393a42Smrg 642a4e54154Smrg# Decode 1-component or ad-hoc basic machines 6432c393a42Smrgcase $basic_machine in 644a4e54154Smrg # Here we handle the default manufacturer of certain CPU types. It is in 645a4e54154Smrg # some cases the only manufacturer, in others, it is the most popular. 646a4e54154Smrg w89k) 647a4e54154Smrg cpu=hppa1.1 648a4e54154Smrg vendor=winbond 649a32e9e42Smrg ;; 650a4e54154Smrg op50n) 651a4e54154Smrg cpu=hppa1.1 652a4e54154Smrg vendor=oki 6532c393a42Smrg ;; 654a4e54154Smrg op60c) 655a4e54154Smrg cpu=hppa1.1 656a4e54154Smrg vendor=oki 6572c393a42Smrg ;; 658a4e54154Smrg ibm*) 659a4e54154Smrg cpu=i370 660a4e54154Smrg vendor=ibm 661ca08ab68Smrg ;; 662a4e54154Smrg orion105) 663a4e54154Smrg cpu=clipper 664a4e54154Smrg vendor=highlevel 665ca08ab68Smrg ;; 666a4e54154Smrg mac | mpw | mac-mpw) 667a4e54154Smrg cpu=m68k 668a4e54154Smrg vendor=apple 669ca08ab68Smrg ;; 670a4e54154Smrg pmac | pmac-mpw) 671a4e54154Smrg cpu=powerpc 672a4e54154Smrg vendor=apple 673ca08ab68Smrg ;; 674ca08ab68Smrg 6752c393a42Smrg # Recognize the various machine names and aliases which stand 6762c393a42Smrg # for a CPU type and a company and sometimes even an OS. 6772c393a42Smrg 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 678a4e54154Smrg cpu=m68000 679a4e54154Smrg vendor=att 6802c393a42Smrg ;; 6812c393a42Smrg 3b*) 682a4e54154Smrg cpu=we32k 683a4e54154Smrg vendor=att 6842c393a42Smrg ;; 685ca08ab68Smrg bluegene*) 686a4e54154Smrg cpu=powerpc 687a4e54154Smrg vendor=ibm 688a4e54154Smrg os=cnk 6892c393a42Smrg ;; 6902c393a42Smrg decsystem10* | dec10*) 691a4e54154Smrg cpu=pdp10 692a4e54154Smrg vendor=dec 693a4e54154Smrg os=tops10 6942c393a42Smrg ;; 6952c393a42Smrg decsystem20* | dec20*) 696a4e54154Smrg cpu=pdp10 697a4e54154Smrg vendor=dec 698a4e54154Smrg os=tops20 6992c393a42Smrg ;; 7002c393a42Smrg delta | 3300 | motorola-3300 | motorola-delta \ 7012c393a42Smrg | 3300-motorola | delta-motorola) 702a4e54154Smrg cpu=m68k 703a4e54154Smrg vendor=motorola 7042c393a42Smrg ;; 705a32e9e42Smrg dpx2*) 706a4e54154Smrg cpu=m68k 707a4e54154Smrg vendor=bull 708a4e54154Smrg os=sysv3 7092c393a42Smrg ;; 7102c393a42Smrg encore | umax | mmax) 711a4e54154Smrg cpu=ns32k 712a4e54154Smrg vendor=encore 7132c393a42Smrg ;; 714a4e54154Smrg elxsi) 715a4e54154Smrg cpu=elxsi 716a4e54154Smrg vendor=elxsi 717a4e54154Smrg os=${os:-bsd} 7182c393a42Smrg ;; 7192c393a42Smrg fx2800) 720a4e54154Smrg cpu=i860 721a4e54154Smrg vendor=alliant 7222c393a42Smrg ;; 7232c393a42Smrg genix) 724a4e54154Smrg cpu=ns32k 725a4e54154Smrg vendor=ns 7262c393a42Smrg ;; 7272c393a42Smrg h3050r* | hiux*) 728a4e54154Smrg cpu=hppa1.1 729a4e54154Smrg vendor=hitachi 730a4e54154Smrg os=hiuxwe2 7312c393a42Smrg ;; 7322c393a42Smrg hp3k9[0-9][0-9] | hp9[0-9][0-9]) 733a4e54154Smrg cpu=hppa1.0 734a4e54154Smrg vendor=hp 7352c393a42Smrg ;; 7362c393a42Smrg hp9k2[0-9][0-9] | hp9k31[0-9]) 737a4e54154Smrg cpu=m68000 738a4e54154Smrg vendor=hp 7392c393a42Smrg ;; 7402c393a42Smrg hp9k3[2-9][0-9]) 741a4e54154Smrg cpu=m68k 742a4e54154Smrg vendor=hp 7432c393a42Smrg ;; 7442c393a42Smrg hp9k6[0-9][0-9] | hp6[0-9][0-9]) 745a4e54154Smrg cpu=hppa1.0 746a4e54154Smrg vendor=hp 7472c393a42Smrg ;; 7482c393a42Smrg hp9k7[0-79][0-9] | hp7[0-79][0-9]) 749a4e54154Smrg cpu=hppa1.1 750a4e54154Smrg vendor=hp 7512c393a42Smrg ;; 7522c393a42Smrg hp9k78[0-9] | hp78[0-9]) 7532c393a42Smrg # FIXME: really hppa2.0-hp 754a4e54154Smrg cpu=hppa1.1 755a4e54154Smrg vendor=hp 7562c393a42Smrg ;; 7572c393a42Smrg hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 7582c393a42Smrg # FIXME: really hppa2.0-hp 759a4e54154Smrg cpu=hppa1.1 760a4e54154Smrg vendor=hp 7612c393a42Smrg ;; 7622c393a42Smrg hp9k8[0-9][13679] | hp8[0-9][13679]) 763a4e54154Smrg cpu=hppa1.1 764a4e54154Smrg vendor=hp 7652c393a42Smrg ;; 7662c393a42Smrg hp9k8[0-9][0-9] | hp8[0-9][0-9]) 767a4e54154Smrg cpu=hppa1.0 768a4e54154Smrg vendor=hp 7692c393a42Smrg ;; 7702c393a42Smrg i*86v32) 771a4e54154Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 772a4e54154Smrg vendor=pc 773a4e54154Smrg os=sysv32 7742c393a42Smrg ;; 7752c393a42Smrg i*86v4*) 776a4e54154Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 777a4e54154Smrg vendor=pc 778a4e54154Smrg os=sysv4 7792c393a42Smrg ;; 7802c393a42Smrg i*86v) 781a4e54154Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 782a4e54154Smrg vendor=pc 783a4e54154Smrg os=sysv 7842c393a42Smrg ;; 7852c393a42Smrg i*86sol2) 786a4e54154Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 787a4e54154Smrg vendor=pc 788a4e54154Smrg os=solaris2 7892c393a42Smrg ;; 790a4e54154Smrg j90 | j90-cray) 791a4e54154Smrg cpu=j90 792a4e54154Smrg vendor=cray 793a4e54154Smrg os=${os:-unicos} 7942c393a42Smrg ;; 7952c393a42Smrg iris | iris4d) 796a4e54154Smrg cpu=mips 797a4e54154Smrg vendor=sgi 7982c393a42Smrg case $os in 799a4e54154Smrg irix*) 8002c393a42Smrg ;; 8012c393a42Smrg *) 802a4e54154Smrg os=irix4 8032c393a42Smrg ;; 8042c393a42Smrg esac 8052c393a42Smrg ;; 8062c393a42Smrg miniframe) 807a4e54154Smrg cpu=m68000 808a4e54154Smrg vendor=convergent 8092c393a42Smrg ;; 810a4e54154Smrg *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) 811a4e54154Smrg cpu=m68k 812a4e54154Smrg vendor=atari 813a4e54154Smrg os=mint 8142c393a42Smrg ;; 8152c393a42Smrg news-3600 | risc-news) 816a4e54154Smrg cpu=mips 817a4e54154Smrg vendor=sony 818a4e54154Smrg os=newsos 8192c393a42Smrg ;; 820a32e9e42Smrg next | m*-next) 821a4e54154Smrg cpu=m68k 822a4e54154Smrg vendor=next 8232c393a42Smrg case $os in 824a4e54154Smrg nextstep* ) 8252c393a42Smrg ;; 826a4e54154Smrg ns2*) 827a4e54154Smrg os=nextstep2 8282c393a42Smrg ;; 8292c393a42Smrg *) 830a4e54154Smrg os=nextstep3 8312c393a42Smrg ;; 8322c393a42Smrg esac 8332c393a42Smrg ;; 8342c393a42Smrg np1) 835a4e54154Smrg cpu=np1 836a4e54154Smrg vendor=gould 837a32e9e42Smrg ;; 8382c393a42Smrg op50n-* | op60c-*) 839a4e54154Smrg cpu=hppa1.1 840a4e54154Smrg vendor=oki 841a4e54154Smrg os=proelf 8422c393a42Smrg ;; 8432c393a42Smrg pa-hitachi) 844a4e54154Smrg cpu=hppa1.1 845a4e54154Smrg vendor=hitachi 846a4e54154Smrg os=hiuxwe2 8472c393a42Smrg ;; 8482c393a42Smrg pbd) 849a4e54154Smrg cpu=sparc 850a4e54154Smrg vendor=tti 8512c393a42Smrg ;; 8522c393a42Smrg pbb) 853a4e54154Smrg cpu=m68k 854a4e54154Smrg vendor=tti 8552c393a42Smrg ;; 856a4e54154Smrg pc532) 857a4e54154Smrg cpu=ns32k 858a4e54154Smrg vendor=pc532 8592c393a42Smrg ;; 8602c393a42Smrg pn) 861a4e54154Smrg cpu=pn 862a4e54154Smrg vendor=gould 8632c393a42Smrg ;; 864a4e54154Smrg power) 865a4e54154Smrg cpu=power 866a4e54154Smrg vendor=ibm 8672c393a42Smrg ;; 868a4e54154Smrg ps2) 869a4e54154Smrg cpu=i386 870a4e54154Smrg vendor=ibm 8712c393a42Smrg ;; 872a4e54154Smrg rm[46]00) 873a4e54154Smrg cpu=mips 874a4e54154Smrg vendor=siemens 8752c393a42Smrg ;; 876a4e54154Smrg rtpc | rtpc-*) 877a4e54154Smrg cpu=romp 878a4e54154Smrg vendor=ibm 8792c393a42Smrg ;; 880a4e54154Smrg sde) 881a4e54154Smrg cpu=mipsisa32 882a4e54154Smrg vendor=sde 883a4e54154Smrg os=${os:-elf} 8842c393a42Smrg ;; 885a4e54154Smrg simso-wrs) 886a4e54154Smrg cpu=sparclite 887a4e54154Smrg vendor=wrs 888a4e54154Smrg os=vxworks 8892c393a42Smrg ;; 890a4e54154Smrg tower | tower-32) 891a4e54154Smrg cpu=m68k 892a4e54154Smrg vendor=ncr 8932c393a42Smrg ;; 894a4e54154Smrg vpp*|vx|vx-*) 895a4e54154Smrg cpu=f301 896a4e54154Smrg vendor=fujitsu 8976fc018e4Smrg ;; 898a4e54154Smrg w65) 899a4e54154Smrg cpu=w65 900a4e54154Smrg vendor=wdc 9012c393a42Smrg ;; 902a4e54154Smrg w89k-*) 903a4e54154Smrg cpu=hppa1.1 904a4e54154Smrg vendor=winbond 905a4e54154Smrg os=proelf 9062c393a42Smrg ;; 907a4e54154Smrg none) 908a4e54154Smrg cpu=none 909a4e54154Smrg vendor=none 9102c393a42Smrg ;; 911a4e54154Smrg leon|leon[3-9]) 912a4e54154Smrg cpu=sparc 913a4e54154Smrg vendor=$basic_machine 9142c393a42Smrg ;; 915a4e54154Smrg leon-*|leon[3-9]-*) 916a4e54154Smrg cpu=sparc 917a4e54154Smrg vendor=`echo "$basic_machine" | sed 's/-.*//'` 9182c393a42Smrg ;; 919a4e54154Smrg 920a4e54154Smrg *-*) 921a4e54154Smrg IFS="-" read -r cpu vendor <<EOF 922a4e54154Smrg$basic_machine 923a4e54154SmrgEOF 9242c393a42Smrg ;; 925a4e54154Smrg # We use `pc' rather than `unknown' 926a4e54154Smrg # because (1) that's what they normally are, and 927a4e54154Smrg # (2) the word "unknown" tends to confuse beginning users. 928a4e54154Smrg i*86 | x86_64) 929a4e54154Smrg cpu=$basic_machine 930a4e54154Smrg vendor=pc 9312c393a42Smrg ;; 932a4e54154Smrg # These rules are duplicated from below for sake of the special case above; 933a4e54154Smrg # i.e. things that normalized to x86 arches should also default to "pc" 934a4e54154Smrg pc98) 935a4e54154Smrg cpu=i386 936a4e54154Smrg vendor=pc 9372c393a42Smrg ;; 938a4e54154Smrg x64 | amd64) 939a4e54154Smrg cpu=x86_64 940a4e54154Smrg vendor=pc 9412c393a42Smrg ;; 942a4e54154Smrg # Recognize the basic CPU types without company name. 943a4e54154Smrg *) 944a4e54154Smrg cpu=$basic_machine 945a4e54154Smrg vendor=unknown 9462c393a42Smrg ;; 947a4e54154Smrgesac 948a4e54154Smrg 949a4e54154Smrgunset -v basic_machine 950a4e54154Smrg 951a4e54154Smrg# Decode basic machines in the full and proper CPU-Company form. 952a4e54154Smrgcase $cpu-$vendor in 953a4e54154Smrg # Here we handle the default manufacturer of certain CPU types in cannonical form. It is in 954a4e54154Smrg # some cases the only manufacturer, in others, it is the most popular. 955a4e54154Smrg craynv-unknown) 956a4e54154Smrg vendor=cray 957a4e54154Smrg os=${os:-unicosmp} 9582c393a42Smrg ;; 959a4e54154Smrg c90-unknown | c90-cray) 960a4e54154Smrg vendor=cray 961a4e54154Smrg os=${os:-unicos} 9622c393a42Smrg ;; 963a4e54154Smrg fx80-unknown) 964a4e54154Smrg vendor=alliant 9652c393a42Smrg ;; 966a4e54154Smrg romp-unknown) 967a4e54154Smrg vendor=ibm 9682c393a42Smrg ;; 969a4e54154Smrg mmix-unknown) 970a4e54154Smrg vendor=knuth 9712c393a42Smrg ;; 972a4e54154Smrg microblaze-unknown | microblazeel-unknown) 973a4e54154Smrg vendor=xilinx 9742c393a42Smrg ;; 975a4e54154Smrg rs6000-unknown) 976a4e54154Smrg vendor=ibm 9772c393a42Smrg ;; 978a4e54154Smrg vax-unknown) 979a4e54154Smrg vendor=dec 9802c393a42Smrg ;; 981a4e54154Smrg pdp11-unknown) 982a4e54154Smrg vendor=dec 983ca08ab68Smrg ;; 984a4e54154Smrg we32k-unknown) 985a4e54154Smrg vendor=att 9862c393a42Smrg ;; 987a4e54154Smrg cydra-unknown) 988a4e54154Smrg vendor=cydrome 9892c393a42Smrg ;; 990a4e54154Smrg i370-ibm*) 991a4e54154Smrg vendor=ibm 9922c393a42Smrg ;; 993a4e54154Smrg orion-unknown) 994a4e54154Smrg vendor=highlevel 9952c393a42Smrg ;; 996a4e54154Smrg xps-unknown | xps100-unknown) 997a4e54154Smrg cpu=xps100 998a4e54154Smrg vendor=honeywell 9992c393a42Smrg ;; 1000a4e54154Smrg 1001a4e54154Smrg # Here we normalize CPU types with a missing or matching vendor 1002a4e54154Smrg dpx20-unknown | dpx20-bull) 1003a4e54154Smrg cpu=rs6000 1004a4e54154Smrg vendor=bull 1005a4e54154Smrg os=${os:-bosx} 10062c393a42Smrg ;; 1007a4e54154Smrg 1008a4e54154Smrg # Here we normalize CPU types irrespective of the vendor 1009a4e54154Smrg amd64-*) 1010a4e54154Smrg cpu=x86_64 10112c393a42Smrg ;; 1012a4e54154Smrg blackfin-*) 1013a4e54154Smrg cpu=bfin 1014a4e54154Smrg os=linux 10152c393a42Smrg ;; 1016a4e54154Smrg c54x-*) 1017a4e54154Smrg cpu=tic54x 10182c393a42Smrg ;; 1019a4e54154Smrg c55x-*) 1020a4e54154Smrg cpu=tic55x 10212c393a42Smrg ;; 1022a4e54154Smrg c6x-*) 1023a4e54154Smrg cpu=tic6x 10242c393a42Smrg ;; 1025a4e54154Smrg e500v[12]-*) 1026a4e54154Smrg cpu=powerpc 1027a4e54154Smrg os=$os"spe" 10282c393a42Smrg ;; 1029a4e54154Smrg mips3*-*) 1030a4e54154Smrg cpu=mips64 10312c393a42Smrg ;; 1032a4e54154Smrg ms1-*) 1033a4e54154Smrg cpu=mt 10342c393a42Smrg ;; 1035a4e54154Smrg m68knommu-*) 1036a4e54154Smrg cpu=m68k 1037a4e54154Smrg os=linux 10382c393a42Smrg ;; 1039a4e54154Smrg m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) 1040a4e54154Smrg cpu=s12z 10412c393a42Smrg ;; 1042a4e54154Smrg openrisc-*) 1043a4e54154Smrg cpu=or32 10442c393a42Smrg ;; 1045a4e54154Smrg parisc-*) 1046a4e54154Smrg cpu=hppa 1047a4e54154Smrg os=linux 10482c393a42Smrg ;; 1049a4e54154Smrg pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 1050a4e54154Smrg cpu=i586 10512c393a42Smrg ;; 1052a4e54154Smrg pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) 1053a4e54154Smrg cpu=i686 10542c393a42Smrg ;; 1055a4e54154Smrg pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 1056a4e54154Smrg cpu=i686 10572c393a42Smrg ;; 1058a4e54154Smrg pentium4-*) 1059a4e54154Smrg cpu=i786 10602c393a42Smrg ;; 1061a4e54154Smrg pc98-*) 1062a4e54154Smrg cpu=i386 10632c393a42Smrg ;; 1064a4e54154Smrg ppc-* | ppcbe-*) 1065a4e54154Smrg cpu=powerpc 10662c393a42Smrg ;; 1067a4e54154Smrg ppcle-* | powerpclittle-*) 1068a4e54154Smrg cpu=powerpcle 10692c393a42Smrg ;; 1070a4e54154Smrg ppc64-*) 1071a4e54154Smrg cpu=powerpc64 10722c393a42Smrg ;; 1073a4e54154Smrg ppc64le-* | powerpc64little-*) 1074a4e54154Smrg cpu=powerpc64le 10752c393a42Smrg ;; 1076a4e54154Smrg sb1-*) 1077a4e54154Smrg cpu=mipsisa64sb1 10782c393a42Smrg ;; 1079a4e54154Smrg sb1el-*) 1080a4e54154Smrg cpu=mipsisa64sb1el 10812c393a42Smrg ;; 1082a4e54154Smrg sh5e[lb]-*) 1083a4e54154Smrg cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` 10842c393a42Smrg ;; 1085a4e54154Smrg spur-*) 1086a4e54154Smrg cpu=spur 10872c393a42Smrg ;; 1088a4e54154Smrg strongarm-* | thumb-*) 1089a4e54154Smrg cpu=arm 10902c393a42Smrg ;; 1091a4e54154Smrg tx39-*) 1092a4e54154Smrg cpu=mipstx39 1093a32e9e42Smrg ;; 1094a4e54154Smrg tx39el-*) 1095a4e54154Smrg cpu=mipstx39el 10962c393a42Smrg ;; 1097a4e54154Smrg x64-*) 1098a4e54154Smrg cpu=x86_64 10992c393a42Smrg ;; 1100ca08ab68Smrg xscale-* | xscalee[bl]-*) 1101a4e54154Smrg cpu=`echo "$cpu" | sed 's/^xscale/arm/'` 11022c393a42Smrg ;; 11032c393a42Smrg 1104a4e54154Smrg # Recognize the cannonical CPU Types that limit and/or modify the 1105a4e54154Smrg # company names they are paired with. 1106a4e54154Smrg cr16-*) 1107a4e54154Smrg os=${os:-elf} 11082c393a42Smrg ;; 1109a4e54154Smrg crisv32-* | etraxfs*-*) 1110a4e54154Smrg cpu=crisv32 1111a4e54154Smrg vendor=axis 11122c393a42Smrg ;; 1113a4e54154Smrg cris-* | etrax*-*) 1114a4e54154Smrg cpu=cris 1115a4e54154Smrg vendor=axis 11162c393a42Smrg ;; 1117a4e54154Smrg crx-*) 1118a4e54154Smrg os=${os:-elf} 11192c393a42Smrg ;; 1120a4e54154Smrg neo-tandem) 1121a4e54154Smrg cpu=neo 1122a4e54154Smrg vendor=tandem 11232c393a42Smrg ;; 1124a4e54154Smrg nse-tandem) 1125a4e54154Smrg cpu=nse 1126a4e54154Smrg vendor=tandem 11272c393a42Smrg ;; 1128a4e54154Smrg nsr-tandem) 1129a4e54154Smrg cpu=nsr 1130a4e54154Smrg vendor=tandem 11312c393a42Smrg ;; 1132a4e54154Smrg nsv-tandem) 1133a4e54154Smrg cpu=nsv 1134a4e54154Smrg vendor=tandem 11352c393a42Smrg ;; 1136a4e54154Smrg nsx-tandem) 1137a4e54154Smrg cpu=nsx 1138a4e54154Smrg vendor=tandem 11392c393a42Smrg ;; 1140a4e54154Smrg s390-*) 1141a4e54154Smrg cpu=s390 1142a4e54154Smrg vendor=ibm 11432c393a42Smrg ;; 1144a4e54154Smrg s390x-*) 1145a4e54154Smrg cpu=s390x 1146a4e54154Smrg vendor=ibm 11472c393a42Smrg ;; 1148a4e54154Smrg tile*-*) 1149a4e54154Smrg os=${os:-linux-gnu} 11502c393a42Smrg ;; 1151a4e54154Smrg 11522c393a42Smrg *) 1153a4e54154Smrg # Recognize the cannonical CPU types that are allowed with any 1154a4e54154Smrg # company name. 1155a4e54154Smrg case $cpu in 1156a4e54154Smrg 1750a | 580 \ 1157a4e54154Smrg | a29k \ 1158a4e54154Smrg | aarch64 | aarch64_be \ 1159a4e54154Smrg | abacus \ 1160a4e54154Smrg | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ 1161a4e54154Smrg | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ 1162a4e54154Smrg | alphapca5[67] | alpha64pca5[67] \ 1163a4e54154Smrg | am33_2.0 \ 1164a4e54154Smrg | arc | arceb \ 1165a4e54154Smrg | arm | arm[lb]e | arme[lb] | armv* \ 1166a4e54154Smrg | avr | avr32 \ 1167a4e54154Smrg | asmjs \ 1168a4e54154Smrg | ba \ 1169a4e54154Smrg | be32 | be64 \ 1170a4e54154Smrg | bfin | bs2000 \ 1171a4e54154Smrg | c[123]* | c30 | [cjt]90 | c4x \ 1172a4e54154Smrg | c8051 | clipper | craynv | csky | cydra \ 1173a4e54154Smrg | d10v | d30v | dlx | dsp16xx \ 1174a4e54154Smrg | e2k | elxsi | epiphany \ 1175a4e54154Smrg | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ 1176a4e54154Smrg | h8300 | h8500 \ 1177a4e54154Smrg | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 1178a4e54154Smrg | hexagon \ 1179a4e54154Smrg | i370 | i*86 | i860 | i960 | ia16 | ia64 \ 1180a4e54154Smrg | ip2k | iq2000 \ 1181a4e54154Smrg | k1om \ 1182a4e54154Smrg | le32 | le64 \ 1183a4e54154Smrg | lm32 \ 1184a4e54154Smrg | m32c | m32r | m32rle \ 1185a4e54154Smrg | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \ 1186a4e54154Smrg | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \ 1187a4e54154Smrg | m88110 | m88k | maxq | mb | mcore | mep | metag \ 1188a4e54154Smrg | microblaze | microblazeel \ 1189a4e54154Smrg | mips | mipsbe | mipseb | mipsel | mipsle \ 1190a4e54154Smrg | mips16 \ 1191a4e54154Smrg | mips64 | mips64el \ 1192a4e54154Smrg | mips64octeon | mips64octeonel \ 1193a4e54154Smrg | mips64orion | mips64orionel \ 1194a4e54154Smrg | mips64r5900 | mips64r5900el \ 1195a4e54154Smrg | mips64vr | mips64vrel \ 1196a4e54154Smrg | mips64vr4100 | mips64vr4100el \ 1197a4e54154Smrg | mips64vr4300 | mips64vr4300el \ 1198a4e54154Smrg | mips64vr5000 | mips64vr5000el \ 1199a4e54154Smrg | mips64vr5900 | mips64vr5900el \ 1200a4e54154Smrg | mipsisa32 | mipsisa32el \ 1201a4e54154Smrg | mipsisa32r2 | mipsisa32r2el \ 1202a4e54154Smrg | mipsisa32r6 | mipsisa32r6el \ 1203a4e54154Smrg | mipsisa64 | mipsisa64el \ 1204a4e54154Smrg | mipsisa64r2 | mipsisa64r2el \ 1205a4e54154Smrg | mipsisa64r6 | mipsisa64r6el \ 1206a4e54154Smrg | mipsisa64sb1 | mipsisa64sb1el \ 1207a4e54154Smrg | mipsisa64sr71k | mipsisa64sr71kel \ 1208a4e54154Smrg | mipsr5900 | mipsr5900el \ 1209a4e54154Smrg | mipstx39 | mipstx39el \ 1210a4e54154Smrg | mmix \ 1211a4e54154Smrg | mn10200 | mn10300 \ 1212a4e54154Smrg | moxie \ 1213a4e54154Smrg | mt \ 1214a4e54154Smrg | msp430 \ 1215a4e54154Smrg | nds32 | nds32le | nds32be \ 1216a4e54154Smrg | nfp \ 1217a4e54154Smrg | nios | nios2 | nios2eb | nios2el \ 1218a4e54154Smrg | none | np1 | ns16k | ns32k \ 1219a4e54154Smrg | open8 \ 1220a4e54154Smrg | or1k* \ 1221a4e54154Smrg | or32 \ 1222a4e54154Smrg | orion \ 1223a4e54154Smrg | pdp10 | pdp11 | pj | pjl | pn | power \ 1224a4e54154Smrg | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ 1225a4e54154Smrg | pru \ 1226a4e54154Smrg | pyramid \ 1227a4e54154Smrg | riscv | riscv32 | riscv64 \ 1228a4e54154Smrg | rl78 | romp | rs6000 | rx \ 1229a4e54154Smrg | score \ 1230a4e54154Smrg | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ 1231a4e54154Smrg | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ 1232a4e54154Smrg | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ 1233a4e54154Smrg | sparclite \ 1234a4e54154Smrg | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ 1235a4e54154Smrg | spu \ 1236a4e54154Smrg | tahoe \ 1237a4e54154Smrg | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ 1238a4e54154Smrg | tron \ 1239a4e54154Smrg | ubicom32 \ 1240a4e54154Smrg | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ 1241a4e54154Smrg | vax \ 1242a4e54154Smrg | visium \ 1243a4e54154Smrg | wasm32 \ 1244a4e54154Smrg | we32k \ 1245a4e54154Smrg | x86 | x86_64 | xc16x | xgate | xps100 \ 1246a4e54154Smrg | xstormy16 | xtensa* \ 1247a4e54154Smrg | ymp \ 1248a4e54154Smrg | z8k | z80) 1249a4e54154Smrg ;; 1250a4e54154Smrg 1251a4e54154Smrg *) 1252a4e54154Smrg echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 1253a4e54154Smrg exit 1 1254a4e54154Smrg ;; 1255a4e54154Smrg esac 12562c393a42Smrg ;; 12572c393a42Smrgesac 12582c393a42Smrg 12592c393a42Smrg# Here we canonicalize certain aliases for manufacturers. 1260a4e54154Smrgcase $vendor in 1261a4e54154Smrg digital*) 1262a4e54154Smrg vendor=dec 12632c393a42Smrg ;; 1264a4e54154Smrg commodore*) 1265a4e54154Smrg vendor=cbm 12662c393a42Smrg ;; 12672c393a42Smrg *) 12682c393a42Smrg ;; 12692c393a42Smrgesac 12702c393a42Smrg 12712c393a42Smrg# Decode manufacturer-specific aliases for certain operating systems. 12722c393a42Smrg 1273a32e9e42Smrgif [ x$os != x ] 12742c393a42Smrgthen 12752c393a42Smrgcase $os in 1276a32e9e42Smrg # First match some system type aliases that might get confused 1277a32e9e42Smrg # with valid system types. 1278a4e54154Smrg # solaris* is a basic system type, with this one exception. 1279a4e54154Smrg auroraux) 1280a4e54154Smrg os=auroraux 1281ca08ab68Smrg ;; 1282a4e54154Smrg bluegene*) 1283a4e54154Smrg os=cnk 1284a4e54154Smrg ;; 1285a4e54154Smrg solaris1 | solaris1.*) 12862c393a42Smrg os=`echo $os | sed -e 's|solaris1|sunos4|'` 12872c393a42Smrg ;; 1288a4e54154Smrg solaris) 1289a4e54154Smrg os=solaris2 12902c393a42Smrg ;; 1291a4e54154Smrg unixware*) 1292a4e54154Smrg os=sysv4.2uw 12932c393a42Smrg ;; 1294a4e54154Smrg gnu/linux*) 12952c393a42Smrg os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` 12962c393a42Smrg ;; 1297a32e9e42Smrg # es1800 is here to avoid being matched by es* (a different OS) 1298a4e54154Smrg es1800*) 1299a4e54154Smrg os=ose 1300a4e54154Smrg ;; 1301a4e54154Smrg # Some version numbers need modification 1302a4e54154Smrg chorusos*) 1303a4e54154Smrg os=chorusos 1304a4e54154Smrg ;; 1305a4e54154Smrg isc) 1306a4e54154Smrg os=isc2.2 1307a4e54154Smrg ;; 1308a4e54154Smrg sco6) 1309a4e54154Smrg os=sco5v6 1310a4e54154Smrg ;; 1311a4e54154Smrg sco5) 1312a4e54154Smrg os=sco3.2v5 1313a4e54154Smrg ;; 1314a4e54154Smrg sco4) 1315a4e54154Smrg os=sco3.2v4 1316a4e54154Smrg ;; 1317a4e54154Smrg sco3.2.[4-9]*) 1318a4e54154Smrg os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` 1319a4e54154Smrg ;; 1320a4e54154Smrg sco3.2v[4-9]* | sco5v6*) 1321a4e54154Smrg # Don't forget version if it is 3.2v4 or newer. 1322a4e54154Smrg ;; 1323a4e54154Smrg scout) 1324a4e54154Smrg # Don't match below 1325a4e54154Smrg ;; 1326a4e54154Smrg sco*) 1327a4e54154Smrg os=sco3.2v2 1328a4e54154Smrg ;; 1329a4e54154Smrg psos*) 1330a4e54154Smrg os=psos 1331a32e9e42Smrg ;; 1332a32e9e42Smrg # Now accept the basic system types. 13332c393a42Smrg # The portable systems comes first. 1334a32e9e42Smrg # Each alternative MUST end in a * to match a version number. 1335a4e54154Smrg # sysv* is not here because it comes later, after sysvr4. 1336a4e54154Smrg gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ 1337a4e54154Smrg | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ 1338a4e54154Smrg | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ 1339a4e54154Smrg | sym* | kopensolaris* | plan9* \ 1340a4e54154Smrg | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ 1341a4e54154Smrg | aos* | aros* | cloudabi* | sortix* \ 1342a4e54154Smrg | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ 1343a4e54154Smrg | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ 1344a4e54154Smrg | knetbsd* | mirbsd* | netbsd* \ 1345a4e54154Smrg | bitrig* | openbsd* | solidbsd* | libertybsd* \ 1346a4e54154Smrg | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ 1347a4e54154Smrg | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ 1348a4e54154Smrg | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ 1349a4e54154Smrg | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ 1350a4e54154Smrg | chorusrdb* | cegcc* | glidix* \ 1351a4e54154Smrg | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ 1352a4e54154Smrg | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ 1353a4e54154Smrg | linux-newlib* | linux-musl* | linux-uclibc* \ 1354a4e54154Smrg | uxpv* | beos* | mpeix* | udk* | moxiebox* \ 1355a4e54154Smrg | interix* | uwin* | mks* | rhapsody* | darwin* \ 1356a4e54154Smrg | openstep* | oskit* | conix* | pw32* | nonstopux* \ 1357a4e54154Smrg | storm-chaos* | tops10* | tenex* | tops20* | its* \ 1358a4e54154Smrg | os2* | vos* | palmos* | uclinux* | nucleus* \ 1359a4e54154Smrg | morphos* | superux* | rtmk* | windiss* \ 1360a4e54154Smrg | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ 1361a4e54154Smrg | skyos* | haiku* | rdos* | toppers* | drops* | es* \ 1362a4e54154Smrg | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ 1363a4e54154Smrg | midnightbsd*) 13642c393a42Smrg # Remember, each alternative MUST END IN *, to match a version number. 13652c393a42Smrg ;; 1366a4e54154Smrg qnx*) 1367a4e54154Smrg case $cpu in 1368a4e54154Smrg x86 | i*86) 13692c393a42Smrg ;; 13702c393a42Smrg *) 1371a4e54154Smrg os=nto-$os 13722c393a42Smrg ;; 13732c393a42Smrg esac 13742c393a42Smrg ;; 1375a4e54154Smrg hiux*) 1376a4e54154Smrg os=hiuxwe2 13772c393a42Smrg ;; 1378a4e54154Smrg nto-qnx*) 1379a4e54154Smrg ;; 1380a4e54154Smrg nto*) 13812c393a42Smrg os=`echo $os | sed -e 's|nto|nto-qnx|'` 13822c393a42Smrg ;; 1383a4e54154Smrg sim | xray | os68k* | v88r* \ 1384a4e54154Smrg | windows* | osx | abug | netware* | os9* \ 1385a4e54154Smrg | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) 1386a4e54154Smrg ;; 1387a4e54154Smrg linux-dietlibc) 1388a4e54154Smrg os=linux-dietlibc 1389a4e54154Smrg ;; 1390a4e54154Smrg linux*) 1391a4e54154Smrg os=`echo $os | sed -e 's|linux|linux-gnu|'` 1392a4e54154Smrg ;; 1393a4e54154Smrg lynx*178) 1394a4e54154Smrg os=lynxos178 1395a4e54154Smrg ;; 1396a4e54154Smrg lynx*5) 1397a4e54154Smrg os=lynxos5 1398a4e54154Smrg ;; 1399a4e54154Smrg lynx*) 1400a4e54154Smrg os=lynxos 14012c393a42Smrg ;; 1402a4e54154Smrg mac*) 1403a32e9e42Smrg os=`echo "$os" | sed -e 's|mac|macos|'` 14042c393a42Smrg ;; 1405a4e54154Smrg opened*) 1406a4e54154Smrg os=openedition 14072c393a42Smrg ;; 1408a4e54154Smrg os400*) 1409a4e54154Smrg os=os400 14102c393a42Smrg ;; 1411a4e54154Smrg sunos5*) 1412a32e9e42Smrg os=`echo "$os" | sed -e 's|sunos5|solaris2|'` 14132c393a42Smrg ;; 1414a4e54154Smrg sunos6*) 1415a32e9e42Smrg os=`echo "$os" | sed -e 's|sunos6|solaris3|'` 14162c393a42Smrg ;; 1417a4e54154Smrg wince*) 1418a4e54154Smrg os=wince 14192c393a42Smrg ;; 1420a4e54154Smrg utek*) 1421a4e54154Smrg os=bsd 14222c393a42Smrg ;; 1423a4e54154Smrg dynix*) 1424a4e54154Smrg os=bsd 14252c393a42Smrg ;; 1426a4e54154Smrg acis*) 1427a4e54154Smrg os=aos 14282c393a42Smrg ;; 1429a4e54154Smrg atheos*) 1430a4e54154Smrg os=atheos 14312c393a42Smrg ;; 1432a4e54154Smrg syllable*) 1433a4e54154Smrg os=syllable 14342c393a42Smrg ;; 1435a4e54154Smrg 386bsd) 1436a4e54154Smrg os=bsd 14372c393a42Smrg ;; 1438a4e54154Smrg ctix* | uts*) 1439a4e54154Smrg os=sysv 14402c393a42Smrg ;; 1441a4e54154Smrg nova*) 1442a4e54154Smrg os=rtmk-nova 14432c393a42Smrg ;; 1444a4e54154Smrg ns2) 1445a4e54154Smrg os=nextstep2 14462c393a42Smrg ;; 1447a4e54154Smrg nsk*) 1448a4e54154Smrg os=nsk 14492c393a42Smrg ;; 14502c393a42Smrg # Preserve the version number of sinix5. 1451a4e54154Smrg sinix5.*) 14522c393a42Smrg os=`echo $os | sed -e 's|sinix|sysv|'` 14532c393a42Smrg ;; 1454a4e54154Smrg sinix*) 1455a4e54154Smrg os=sysv4 14562c393a42Smrg ;; 1457a4e54154Smrg tpf*) 1458a4e54154Smrg os=tpf 14592c393a42Smrg ;; 1460a4e54154Smrg triton*) 1461a4e54154Smrg os=sysv3 14622c393a42Smrg ;; 1463a4e54154Smrg oss*) 1464a4e54154Smrg os=sysv3 14652c393a42Smrg ;; 1466a4e54154Smrg svr4*) 1467a4e54154Smrg os=sysv4 14682c393a42Smrg ;; 1469a4e54154Smrg svr3) 1470a4e54154Smrg os=sysv3 14712c393a42Smrg ;; 1472a4e54154Smrg sysvr4) 1473a4e54154Smrg os=sysv4 14742c393a42Smrg ;; 1475a4e54154Smrg # This must come after sysvr4. 1476a4e54154Smrg sysv*) 14772c393a42Smrg ;; 1478a4e54154Smrg ose*) 1479a4e54154Smrg os=ose 14802c393a42Smrg ;; 1481a4e54154Smrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 1482a4e54154Smrg os=mint 14832c393a42Smrg ;; 1484a4e54154Smrg zvmoe) 1485a4e54154Smrg os=zvmoe 14862c393a42Smrg ;; 1487a4e54154Smrg dicos*) 1488a4e54154Smrg os=dicos 1489ca08ab68Smrg ;; 1490a4e54154Smrg pikeos*) 1491a32e9e42Smrg # Until real need of OS specific support for 1492a32e9e42Smrg # particular features comes up, bare metal 1493a32e9e42Smrg # configurations are quite functional. 1494a4e54154Smrg case $cpu in 1495a32e9e42Smrg arm*) 1496a4e54154Smrg os=eabi 1497a32e9e42Smrg ;; 1498a32e9e42Smrg *) 1499a4e54154Smrg os=elf 1500a32e9e42Smrg ;; 1501a32e9e42Smrg esac 1502a32e9e42Smrg ;; 1503a4e54154Smrg nacl*) 1504ca08ab68Smrg ;; 1505a4e54154Smrg ios) 1506a32e9e42Smrg ;; 1507a4e54154Smrg none) 15082c393a42Smrg ;; 1509a4e54154Smrg *-eabi) 1510a32e9e42Smrg ;; 15112c393a42Smrg *) 1512a32e9e42Smrg echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 15132c393a42Smrg exit 1 15142c393a42Smrg ;; 15152c393a42Smrgesac 15162c393a42Smrgelse 15172c393a42Smrg 15182c393a42Smrg# Here we handle the default operating systems that come with various machines. 15192c393a42Smrg# The value should be what the vendor currently ships out the door with their 15202c393a42Smrg# machine or put another way, the most popular os provided with the machine. 15212c393a42Smrg 15222c393a42Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say, 15232c393a42Smrg# "-sun"), then you have to tell the case statement up towards the top 15242c393a42Smrg# that MANUFACTURER isn't an operating system. Otherwise, code above 15252c393a42Smrg# will signal an error saying that MANUFACTURER isn't an operating 15262c393a42Smrg# system, and we'll never get to this point. 15272c393a42Smrg 1528a4e54154Smrgcase $cpu-$vendor in 1529ca08ab68Smrg score-*) 1530a4e54154Smrg os=elf 15312c393a42Smrg ;; 1532ca08ab68Smrg spu-*) 1533a4e54154Smrg os=elf 15342c393a42Smrg ;; 15352c393a42Smrg *-acorn) 1536a4e54154Smrg os=riscix1.2 15372c393a42Smrg ;; 15382c393a42Smrg arm*-rebel) 1539a4e54154Smrg os=linux 15402c393a42Smrg ;; 15412c393a42Smrg arm*-semi) 1542a4e54154Smrg os=aout 15432c393a42Smrg ;; 1544ca08ab68Smrg c4x-* | tic4x-*) 1545a4e54154Smrg os=coff 1546ca08ab68Smrg ;; 1547953daebaSmrg c8051-*) 1548a4e54154Smrg os=elf 1549a4e54154Smrg ;; 1550a4e54154Smrg clipper-intergraph) 1551a4e54154Smrg os=clix 1552953daebaSmrg ;; 1553c9710b42Smrg hexagon-*) 1554a4e54154Smrg os=elf 1555c9710b42Smrg ;; 1556ca08ab68Smrg tic54x-*) 1557a4e54154Smrg os=coff 1558ca08ab68Smrg ;; 1559ca08ab68Smrg tic55x-*) 1560a4e54154Smrg os=coff 1561ca08ab68Smrg ;; 1562ca08ab68Smrg tic6x-*) 1563a4e54154Smrg os=coff 15642c393a42Smrg ;; 15652c393a42Smrg # This must come before the *-dec entry. 15662c393a42Smrg pdp10-*) 1567a4e54154Smrg os=tops20 15682c393a42Smrg ;; 15692c393a42Smrg pdp11-*) 1570a4e54154Smrg os=none 15712c393a42Smrg ;; 15722c393a42Smrg *-dec | vax-*) 1573a4e54154Smrg os=ultrix4.2 15742c393a42Smrg ;; 15752c393a42Smrg m68*-apollo) 1576a4e54154Smrg os=domain 15772c393a42Smrg ;; 15782c393a42Smrg i386-sun) 1579a4e54154Smrg os=sunos4.0.2 15802c393a42Smrg ;; 15812c393a42Smrg m68000-sun) 1582a4e54154Smrg os=sunos3 15832c393a42Smrg ;; 15842c393a42Smrg m68*-cisco) 1585a4e54154Smrg os=aout 15862c393a42Smrg ;; 1587ca08ab68Smrg mep-*) 1588a4e54154Smrg os=elf 15892c393a42Smrg ;; 15902c393a42Smrg mips*-cisco) 1591a4e54154Smrg os=elf 15922c393a42Smrg ;; 15932c393a42Smrg mips*-*) 1594a4e54154Smrg os=elf 15952c393a42Smrg ;; 15962c393a42Smrg or32-*) 1597a4e54154Smrg os=coff 15982c393a42Smrg ;; 15992c393a42Smrg *-tti) # must be before sparc entry or we get the wrong os. 1600a4e54154Smrg os=sysv3 16012c393a42Smrg ;; 16022c393a42Smrg sparc-* | *-sun) 1603a4e54154Smrg os=sunos4.1.1 16042c393a42Smrg ;; 1605a32e9e42Smrg pru-*) 1606a4e54154Smrg os=elf 1607a32e9e42Smrg ;; 16082c393a42Smrg *-be) 1609a4e54154Smrg os=beos 16102c393a42Smrg ;; 16112c393a42Smrg *-ibm) 1612a4e54154Smrg os=aix 16132c393a42Smrg ;; 1614ca08ab68Smrg *-knuth) 1615a4e54154Smrg os=mmixware 16162c393a42Smrg ;; 16172c393a42Smrg *-wec) 1618a4e54154Smrg os=proelf 16192c393a42Smrg ;; 16202c393a42Smrg *-winbond) 1621a4e54154Smrg os=proelf 16222c393a42Smrg ;; 16232c393a42Smrg *-oki) 1624a4e54154Smrg os=proelf 16252c393a42Smrg ;; 16262c393a42Smrg *-hp) 1627a4e54154Smrg os=hpux 16282c393a42Smrg ;; 16292c393a42Smrg *-hitachi) 1630a4e54154Smrg os=hiux 16312c393a42Smrg ;; 16322c393a42Smrg i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 1633a4e54154Smrg os=sysv 16342c393a42Smrg ;; 16352c393a42Smrg *-cbm) 1636a4e54154Smrg os=amigaos 16372c393a42Smrg ;; 16382c393a42Smrg *-dg) 1639a4e54154Smrg os=dgux 16402c393a42Smrg ;; 16412c393a42Smrg *-dolphin) 1642a4e54154Smrg os=sysv3 16432c393a42Smrg ;; 16442c393a42Smrg m68k-ccur) 1645a4e54154Smrg os=rtu 16462c393a42Smrg ;; 16472c393a42Smrg m88k-omron*) 1648a4e54154Smrg os=luna 16492c393a42Smrg ;; 1650a32e9e42Smrg *-next) 1651a4e54154Smrg os=nextstep 16522c393a42Smrg ;; 16532c393a42Smrg *-sequent) 1654a4e54154Smrg os=ptx 16552c393a42Smrg ;; 16562c393a42Smrg *-crds) 1657a4e54154Smrg os=unos 16582c393a42Smrg ;; 16592c393a42Smrg *-ns) 1660a4e54154Smrg os=genix 16612c393a42Smrg ;; 16622c393a42Smrg i370-*) 1663a4e54154Smrg os=mvs 16642c393a42Smrg ;; 16652c393a42Smrg *-gould) 1666a4e54154Smrg os=sysv 16672c393a42Smrg ;; 16682c393a42Smrg *-highlevel) 1669a4e54154Smrg os=bsd 16702c393a42Smrg ;; 16712c393a42Smrg *-encore) 1672a4e54154Smrg os=bsd 16732c393a42Smrg ;; 16742c393a42Smrg *-sgi) 1675a4e54154Smrg os=irix 16762c393a42Smrg ;; 16772c393a42Smrg *-siemens) 1678a4e54154Smrg os=sysv4 16792c393a42Smrg ;; 16802c393a42Smrg *-masscomp) 1681a4e54154Smrg os=rtu 16822c393a42Smrg ;; 16832c393a42Smrg f30[01]-fujitsu | f700-fujitsu) 1684a4e54154Smrg os=uxpv 16852c393a42Smrg ;; 16862c393a42Smrg *-rom68k) 1687a4e54154Smrg os=coff 16882c393a42Smrg ;; 16892c393a42Smrg *-*bug) 1690a4e54154Smrg os=coff 16912c393a42Smrg ;; 16922c393a42Smrg *-apple) 1693a4e54154Smrg os=macos 16942c393a42Smrg ;; 16952c393a42Smrg *-atari*) 1696a4e54154Smrg os=mint 1697a4e54154Smrg ;; 1698a4e54154Smrg *-wrs) 1699a4e54154Smrg os=vxworks 17002c393a42Smrg ;; 17012c393a42Smrg *) 1702a4e54154Smrg os=none 17032c393a42Smrg ;; 17042c393a42Smrgesac 17052c393a42Smrgfi 17062c393a42Smrg 17072c393a42Smrg# Here we handle the case where we know the os, and the CPU type, but not the 17082c393a42Smrg# manufacturer. We pick the logical manufacturer. 1709a4e54154Smrgcase $vendor in 1710a4e54154Smrg unknown) 17112c393a42Smrg case $os in 1712a4e54154Smrg riscix*) 17132c393a42Smrg vendor=acorn 17142c393a42Smrg ;; 1715a4e54154Smrg sunos*) 17162c393a42Smrg vendor=sun 17172c393a42Smrg ;; 1718a4e54154Smrg cnk*|-aix*) 17192c393a42Smrg vendor=ibm 17202c393a42Smrg ;; 1721a4e54154Smrg beos*) 17222c393a42Smrg vendor=be 17232c393a42Smrg ;; 1724a4e54154Smrg hpux*) 17252c393a42Smrg vendor=hp 17262c393a42Smrg ;; 1727a4e54154Smrg mpeix*) 17282c393a42Smrg vendor=hp 17292c393a42Smrg ;; 1730a4e54154Smrg hiux*) 17312c393a42Smrg vendor=hitachi 17322c393a42Smrg ;; 1733a4e54154Smrg unos*) 17342c393a42Smrg vendor=crds 17352c393a42Smrg ;; 1736a4e54154Smrg dgux*) 17372c393a42Smrg vendor=dg 17382c393a42Smrg ;; 1739a4e54154Smrg luna*) 17402c393a42Smrg vendor=omron 17412c393a42Smrg ;; 1742a4e54154Smrg genix*) 17432c393a42Smrg vendor=ns 17442c393a42Smrg ;; 1745a4e54154Smrg clix*) 1746a4e54154Smrg vendor=intergraph 1747a4e54154Smrg ;; 1748a4e54154Smrg mvs* | opened*) 17492c393a42Smrg vendor=ibm 17502c393a42Smrg ;; 1751a4e54154Smrg os400*) 17522c393a42Smrg vendor=ibm 17532c393a42Smrg ;; 1754a4e54154Smrg ptx*) 17552c393a42Smrg vendor=sequent 17562c393a42Smrg ;; 1757a4e54154Smrg tpf*) 17582c393a42Smrg vendor=ibm 17592c393a42Smrg ;; 1760a4e54154Smrg vxsim* | vxworks* | windiss*) 17612c393a42Smrg vendor=wrs 17622c393a42Smrg ;; 1763a4e54154Smrg aux*) 17642c393a42Smrg vendor=apple 17652c393a42Smrg ;; 1766a4e54154Smrg hms*) 17672c393a42Smrg vendor=hitachi 17682c393a42Smrg ;; 1769a4e54154Smrg mpw* | macos*) 17702c393a42Smrg vendor=apple 17712c393a42Smrg ;; 1772a4e54154Smrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 17732c393a42Smrg vendor=atari 17742c393a42Smrg ;; 1775a4e54154Smrg vos*) 17762c393a42Smrg vendor=stratus 17772c393a42Smrg ;; 17782c393a42Smrg esac 17792c393a42Smrg ;; 17802c393a42Smrgesac 17812c393a42Smrg 1782a4e54154Smrgecho "$cpu-$vendor-$os" 17832c393a42Smrgexit 17842c393a42Smrg 17852c393a42Smrg# Local variables: 1786a32e9e42Smrg# eval: (add-hook 'before-save-hook 'time-stamp) 17872c393a42Smrg# time-stamp-start: "timestamp='" 17882c393a42Smrg# time-stamp-format: "%:y-%02m-%02d" 17892c393a42Smrg# time-stamp-end: "'" 17902c393a42Smrg# End: 1791