config.sub revision ea1d6981
1ea1d6981Smrg#! /bin/sh 217ca54c3Smrg# Configuration validation subroutine script. 3ea1d6981Smrg# Copyright 1992-2018 Free Software Foundation, Inc. 417ca54c3Smrg 5ea1d6981Smrgtimestamp='2018-08-29' 617ca54c3Smrg 717ca54c3Smrg# This file is free software; you can redistribute it and/or modify it 817ca54c3Smrg# under the terms of the GNU General Public License as published by 917ca54c3Smrg# the Free Software Foundation; either version 3 of the License, or 1017ca54c3Smrg# (at your option) any later version. 1117ca54c3Smrg# 1217ca54c3Smrg# This program is distributed in the hope that it will be useful, but 1317ca54c3Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of 1417ca54c3Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1517ca54c3Smrg# General Public License for more details. 1617ca54c3Smrg# 1717ca54c3Smrg# You should have received a copy of the GNU General Public License 18ea1d6981Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>. 1917ca54c3Smrg# 2017ca54c3Smrg# As a special exception to the GNU General Public License, if you 2117ca54c3Smrg# distribute this file as part of a program that contains a 2217ca54c3Smrg# configuration script generated by Autoconf, you may include it under 2317ca54c3Smrg# the same distribution terms that you use for the rest of that 2417ca54c3Smrg# program. This Exception is an additional permission under section 7 2517ca54c3Smrg# of the GNU General Public License, version 3 ("GPLv3"). 2617ca54c3Smrg 2717ca54c3Smrg 2817ca54c3Smrg# Please send patches to <config-patches@gnu.org>. 2917ca54c3Smrg# 3017ca54c3Smrg# Configuration subroutine to validate and canonicalize a configuration type. 3117ca54c3Smrg# Supply the specified configuration type as an argument. 3217ca54c3Smrg# If it is invalid, we print an error message on stderr and exit with code 1. 3317ca54c3Smrg# Otherwise, we print the canonical config type on stdout and succeed. 3417ca54c3Smrg 3517ca54c3Smrg# You can get the latest version of this script from: 36ea1d6981Smrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub 3717ca54c3Smrg 3817ca54c3Smrg# This file is supposed to be the same for all GNU packages 3917ca54c3Smrg# and recognize all the CPU types, system types and aliases 4017ca54c3Smrg# that are meaningful with *any* GNU software. 4117ca54c3Smrg# Each package is responsible for reporting which valid configurations 4217ca54c3Smrg# it does not support. The user should be able to distinguish 4317ca54c3Smrg# a failure to support a valid configuration from a meaningless 4417ca54c3Smrg# configuration. 4517ca54c3Smrg 4617ca54c3Smrg# The goal of this file is to map all the various variations of a given 4717ca54c3Smrg# machine specification into a single specification in the form: 4817ca54c3Smrg# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 4917ca54c3Smrg# or in some cases, the newer four-part form: 5017ca54c3Smrg# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 5117ca54c3Smrg# It is wrong to echo any other type of specification. 5217ca54c3Smrg 5317ca54c3Smrgme=`echo "$0" | sed -e 's,.*/,,'` 5417ca54c3Smrg 5517ca54c3Smrgusage="\ 5617ca54c3SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 5717ca54c3Smrg 5817ca54c3SmrgCanonicalize a configuration name. 5917ca54c3Smrg 60ea1d6981SmrgOptions: 6117ca54c3Smrg -h, --help print this help, then exit 6217ca54c3Smrg -t, --time-stamp print date of last modification, then exit 6317ca54c3Smrg -v, --version print version number, then exit 6417ca54c3Smrg 6517ca54c3SmrgReport bugs and patches to <config-patches@gnu.org>." 6617ca54c3Smrg 6717ca54c3Smrgversion="\ 6817ca54c3SmrgGNU config.sub ($timestamp) 6917ca54c3Smrg 70ea1d6981SmrgCopyright 1992-2018 Free Software Foundation, Inc. 7117ca54c3Smrg 7217ca54c3SmrgThis is free software; see the source for copying conditions. There is NO 7317ca54c3Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 7417ca54c3Smrg 7517ca54c3Smrghelp=" 7617ca54c3SmrgTry \`$me --help' for more information." 7717ca54c3Smrg 7817ca54c3Smrg# Parse command line 7917ca54c3Smrgwhile test $# -gt 0 ; do 8017ca54c3Smrg case $1 in 8117ca54c3Smrg --time-stamp | --time* | -t ) 8217ca54c3Smrg echo "$timestamp" ; exit ;; 8317ca54c3Smrg --version | -v ) 8417ca54c3Smrg echo "$version" ; exit ;; 8517ca54c3Smrg --help | --h* | -h ) 8617ca54c3Smrg echo "$usage"; exit ;; 8717ca54c3Smrg -- ) # Stop option processing 8817ca54c3Smrg shift; break ;; 8917ca54c3Smrg - ) # Use stdin as input. 9017ca54c3Smrg break ;; 9117ca54c3Smrg -* ) 9217ca54c3Smrg echo "$me: invalid option $1$help" 9317ca54c3Smrg exit 1 ;; 9417ca54c3Smrg 9517ca54c3Smrg *local*) 9617ca54c3Smrg # First pass through any local machine types. 97ea1d6981Smrg echo "$1" 9817ca54c3Smrg exit ;; 9917ca54c3Smrg 10017ca54c3Smrg * ) 10117ca54c3Smrg break ;; 10217ca54c3Smrg esac 10317ca54c3Smrgdone 10417ca54c3Smrg 10517ca54c3Smrgcase $# in 10617ca54c3Smrg 0) echo "$me: missing argument$help" >&2 10717ca54c3Smrg exit 1;; 10817ca54c3Smrg 1) ;; 10917ca54c3Smrg *) echo "$me: too many arguments$help" >&2 11017ca54c3Smrg exit 1;; 11117ca54c3Smrgesac 11217ca54c3Smrg 113ea1d6981Smrg# Split fields of configuration type 114ea1d6981SmrgIFS="-" read -r field1 field2 field3 field4 <<EOF 115ea1d6981Smrg$1 116ea1d6981SmrgEOF 11717ca54c3Smrg 118ea1d6981Smrg# Separate into logical components for further validation 119ea1d6981Smrgcase $1 in 120ea1d6981Smrg *-*-*-*-*) 121ea1d6981Smrg echo Invalid configuration \`"$1"\': more than four components >&2 122ea1d6981Smrg exit 1 12317ca54c3Smrg ;; 124ea1d6981Smrg *-*-*-*) 125ea1d6981Smrg basic_machine=$field1-$field2 126ea1d6981Smrg os=$field3-$field4 12717ca54c3Smrg ;; 128ea1d6981Smrg *-*-*) 129ea1d6981Smrg # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two 130ea1d6981Smrg # parts 131ea1d6981Smrg maybe_os=$field2-$field3 132ea1d6981Smrg case $maybe_os in 133ea1d6981Smrg nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ 134ea1d6981Smrg | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ 135ea1d6981Smrg | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ 136ea1d6981Smrg | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ 137ea1d6981Smrg | storm-chaos* | os2-emx* | rtmk-nova*) 138ea1d6981Smrg basic_machine=$field1 139ea1d6981Smrg os=$maybe_os 140ea1d6981Smrg ;; 141ea1d6981Smrg android-linux) 142ea1d6981Smrg basic_machine=$field1-unknown 143ea1d6981Smrg os=linux-android 144ea1d6981Smrg ;; 145ea1d6981Smrg *) 146ea1d6981Smrg basic_machine=$field1-$field2 147ea1d6981Smrg os=$field3 148ea1d6981Smrg ;; 149ea1d6981Smrg esac 15017ca54c3Smrg ;; 151ea1d6981Smrg *-*) 152ea1d6981Smrg # A lone config we happen to match not fitting any patern 153ea1d6981Smrg case $field1-$field2 in 154ea1d6981Smrg decstation-3100) 155ea1d6981Smrg basic_machine=mips-dec 156ea1d6981Smrg os= 157ea1d6981Smrg ;; 158ea1d6981Smrg *-*) 159ea1d6981Smrg # Second component is usually, but not always the OS 160ea1d6981Smrg case $field2 in 161ea1d6981Smrg # Prevent following clause from handling this valid os 162ea1d6981Smrg sun*os*) 163ea1d6981Smrg basic_machine=$field1 164ea1d6981Smrg os=$field2 165ea1d6981Smrg ;; 166ea1d6981Smrg # Manufacturers 167ea1d6981Smrg dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ 168ea1d6981Smrg | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ 169ea1d6981Smrg | unicom* | ibm* | next | hp | isi* | apollo | altos* \ 170ea1d6981Smrg | convergent* | ncr* | news | 32* | 3600* | 3100* \ 171ea1d6981Smrg | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ 172ea1d6981Smrg | ultra | tti* | harris | dolphin | highlevel | gould \ 173ea1d6981Smrg | cbm | ns | masscomp | apple | axis | knuth | cray \ 174ea1d6981Smrg | microblaze* | sim | cisco \ 175ea1d6981Smrg | oki | wec | wrs | winbond) 176ea1d6981Smrg basic_machine=$field1-$field2 177ea1d6981Smrg os= 178ea1d6981Smrg ;; 179ea1d6981Smrg *) 180ea1d6981Smrg basic_machine=$field1 181ea1d6981Smrg os=$field2 182ea1d6981Smrg ;; 183ea1d6981Smrg esac 184ea1d6981Smrg ;; 185ea1d6981Smrg esac 18617ca54c3Smrg ;; 187ea1d6981Smrg *) 188ea1d6981Smrg # Convert single-component short-hands not valid as part of 189ea1d6981Smrg # multi-component configurations. 190ea1d6981Smrg case $field1 in 191ea1d6981Smrg 386bsd) 192ea1d6981Smrg basic_machine=i386-pc 193ea1d6981Smrg os=bsd 194ea1d6981Smrg ;; 195ea1d6981Smrg a29khif) 196ea1d6981Smrg basic_machine=a29k-amd 197ea1d6981Smrg os=udi 198ea1d6981Smrg ;; 199ea1d6981Smrg adobe68k) 200ea1d6981Smrg basic_machine=m68010-adobe 201ea1d6981Smrg os=scout 202ea1d6981Smrg ;; 203ea1d6981Smrg alliant) 204ea1d6981Smrg basic_machine=fx80-alliant 205ea1d6981Smrg os= 206ea1d6981Smrg ;; 207ea1d6981Smrg altos | altos3068) 208ea1d6981Smrg basic_machine=m68k-altos 209ea1d6981Smrg os= 210ea1d6981Smrg ;; 211ea1d6981Smrg am29k) 212ea1d6981Smrg basic_machine=a29k-none 213ea1d6981Smrg os=bsd 214ea1d6981Smrg ;; 215ea1d6981Smrg amdahl) 216ea1d6981Smrg basic_machine=580-amdahl 217ea1d6981Smrg os=sysv 218ea1d6981Smrg ;; 219ea1d6981Smrg amiga) 220ea1d6981Smrg basic_machine=m68k-unknown 221ea1d6981Smrg os= 222ea1d6981Smrg ;; 223ea1d6981Smrg amigaos | amigados) 224ea1d6981Smrg basic_machine=m68k-unknown 225ea1d6981Smrg os=amigaos 226ea1d6981Smrg ;; 227ea1d6981Smrg amigaunix | amix) 228ea1d6981Smrg basic_machine=m68k-unknown 229ea1d6981Smrg os=sysv4 230ea1d6981Smrg ;; 231ea1d6981Smrg apollo68) 232ea1d6981Smrg basic_machine=m68k-apollo 233ea1d6981Smrg os=sysv 234ea1d6981Smrg ;; 235ea1d6981Smrg apollo68bsd) 236ea1d6981Smrg basic_machine=m68k-apollo 237ea1d6981Smrg os=bsd 238ea1d6981Smrg ;; 239ea1d6981Smrg aros) 240ea1d6981Smrg basic_machine=i386-pc 241ea1d6981Smrg os=aros 242ea1d6981Smrg ;; 243ea1d6981Smrg aux) 244ea1d6981Smrg basic_machine=m68k-apple 245ea1d6981Smrg os=aux 246ea1d6981Smrg ;; 247ea1d6981Smrg balance) 248ea1d6981Smrg basic_machine=ns32k-sequent 249ea1d6981Smrg os=dynix 250ea1d6981Smrg ;; 251ea1d6981Smrg blackfin) 252ea1d6981Smrg basic_machine=bfin-unknown 253ea1d6981Smrg os=linux 254ea1d6981Smrg ;; 255ea1d6981Smrg cegcc) 256ea1d6981Smrg basic_machine=arm-unknown 257ea1d6981Smrg os=cegcc 258ea1d6981Smrg ;; 259ea1d6981Smrg convex-c1) 260ea1d6981Smrg basic_machine=c1-convex 261ea1d6981Smrg os=bsd 262ea1d6981Smrg ;; 263ea1d6981Smrg convex-c2) 264ea1d6981Smrg basic_machine=c2-convex 265ea1d6981Smrg os=bsd 266ea1d6981Smrg ;; 267ea1d6981Smrg convex-c32) 268ea1d6981Smrg basic_machine=c32-convex 269ea1d6981Smrg os=bsd 270ea1d6981Smrg ;; 271ea1d6981Smrg convex-c34) 272ea1d6981Smrg basic_machine=c34-convex 273ea1d6981Smrg os=bsd 274ea1d6981Smrg ;; 275ea1d6981Smrg convex-c38) 276ea1d6981Smrg basic_machine=c38-convex 277ea1d6981Smrg os=bsd 278ea1d6981Smrg ;; 279ea1d6981Smrg cray) 280ea1d6981Smrg basic_machine=j90-cray 281ea1d6981Smrg os=unicos 282ea1d6981Smrg ;; 283ea1d6981Smrg crds | unos) 284ea1d6981Smrg basic_machine=m68k-crds 285ea1d6981Smrg os= 286ea1d6981Smrg ;; 287ea1d6981Smrg da30) 288ea1d6981Smrg basic_machine=m68k-da30 289ea1d6981Smrg os= 290ea1d6981Smrg ;; 291ea1d6981Smrg decstation | pmax | pmin | dec3100 | decstatn) 292ea1d6981Smrg basic_machine=mips-dec 293ea1d6981Smrg os= 294ea1d6981Smrg ;; 295ea1d6981Smrg delta88) 296ea1d6981Smrg basic_machine=m88k-motorola 297ea1d6981Smrg os=sysv3 298ea1d6981Smrg ;; 299ea1d6981Smrg dicos) 300ea1d6981Smrg basic_machine=i686-pc 301ea1d6981Smrg os=dicos 302ea1d6981Smrg ;; 303ea1d6981Smrg djgpp) 304ea1d6981Smrg basic_machine=i586-pc 305ea1d6981Smrg os=msdosdjgpp 306ea1d6981Smrg ;; 307ea1d6981Smrg ebmon29k) 308ea1d6981Smrg basic_machine=a29k-amd 309ea1d6981Smrg os=ebmon 310ea1d6981Smrg ;; 311ea1d6981Smrg es1800 | OSE68k | ose68k | ose | OSE) 312ea1d6981Smrg basic_machine=m68k-ericsson 313ea1d6981Smrg os=ose 314ea1d6981Smrg ;; 315ea1d6981Smrg gmicro) 316ea1d6981Smrg basic_machine=tron-gmicro 317ea1d6981Smrg os=sysv 318ea1d6981Smrg ;; 319ea1d6981Smrg go32) 320ea1d6981Smrg basic_machine=i386-pc 321ea1d6981Smrg os=go32 322ea1d6981Smrg ;; 323ea1d6981Smrg h8300hms) 324ea1d6981Smrg basic_machine=h8300-hitachi 325ea1d6981Smrg os=hms 326ea1d6981Smrg ;; 327ea1d6981Smrg h8300xray) 328ea1d6981Smrg basic_machine=h8300-hitachi 329ea1d6981Smrg os=xray 330ea1d6981Smrg ;; 331ea1d6981Smrg h8500hms) 332ea1d6981Smrg basic_machine=h8500-hitachi 333ea1d6981Smrg os=hms 334ea1d6981Smrg ;; 335ea1d6981Smrg harris) 336ea1d6981Smrg basic_machine=m88k-harris 337ea1d6981Smrg os=sysv3 338ea1d6981Smrg ;; 339ea1d6981Smrg hp300) 340ea1d6981Smrg basic_machine=m68k-hp 341ea1d6981Smrg ;; 342ea1d6981Smrg hp300bsd) 343ea1d6981Smrg basic_machine=m68k-hp 344ea1d6981Smrg os=bsd 345ea1d6981Smrg ;; 346ea1d6981Smrg hp300hpux) 347ea1d6981Smrg basic_machine=m68k-hp 348ea1d6981Smrg os=hpux 349ea1d6981Smrg ;; 350ea1d6981Smrg hppaosf) 351ea1d6981Smrg basic_machine=hppa1.1-hp 352ea1d6981Smrg os=osf 353ea1d6981Smrg ;; 354ea1d6981Smrg hppro) 355ea1d6981Smrg basic_machine=hppa1.1-hp 356ea1d6981Smrg os=proelf 357ea1d6981Smrg ;; 358ea1d6981Smrg i386mach) 359ea1d6981Smrg basic_machine=i386-mach 360ea1d6981Smrg os=mach 361ea1d6981Smrg ;; 362ea1d6981Smrg vsta) 363ea1d6981Smrg basic_machine=i386-pc 364ea1d6981Smrg os=vsta 365ea1d6981Smrg ;; 366ea1d6981Smrg isi68 | isi) 367ea1d6981Smrg basic_machine=m68k-isi 368ea1d6981Smrg os=sysv 369ea1d6981Smrg ;; 370ea1d6981Smrg m68knommu) 371ea1d6981Smrg basic_machine=m68k-unknown 372ea1d6981Smrg os=linux 373ea1d6981Smrg ;; 374ea1d6981Smrg magnum | m3230) 375ea1d6981Smrg basic_machine=mips-mips 376ea1d6981Smrg os=sysv 377ea1d6981Smrg ;; 378ea1d6981Smrg merlin) 379ea1d6981Smrg basic_machine=ns32k-utek 380ea1d6981Smrg os=sysv 381ea1d6981Smrg ;; 382ea1d6981Smrg mingw64) 383ea1d6981Smrg basic_machine=x86_64-pc 384ea1d6981Smrg os=mingw64 385ea1d6981Smrg ;; 386ea1d6981Smrg mingw32) 387ea1d6981Smrg basic_machine=i686-pc 388ea1d6981Smrg os=mingw32 389ea1d6981Smrg ;; 390ea1d6981Smrg mingw32ce) 391ea1d6981Smrg basic_machine=arm-unknown 392ea1d6981Smrg os=mingw32ce 393ea1d6981Smrg ;; 394ea1d6981Smrg monitor) 395ea1d6981Smrg basic_machine=m68k-rom68k 396ea1d6981Smrg os=coff 397ea1d6981Smrg ;; 398ea1d6981Smrg morphos) 399ea1d6981Smrg basic_machine=powerpc-unknown 400ea1d6981Smrg os=morphos 401ea1d6981Smrg ;; 402ea1d6981Smrg moxiebox) 403ea1d6981Smrg basic_machine=moxie-unknown 404ea1d6981Smrg os=moxiebox 405ea1d6981Smrg ;; 406ea1d6981Smrg msdos) 407ea1d6981Smrg basic_machine=i386-pc 408ea1d6981Smrg os=msdos 409ea1d6981Smrg ;; 410ea1d6981Smrg msys) 411ea1d6981Smrg basic_machine=i686-pc 412ea1d6981Smrg os=msys 413ea1d6981Smrg ;; 414ea1d6981Smrg mvs) 415ea1d6981Smrg basic_machine=i370-ibm 416ea1d6981Smrg os=mvs 417ea1d6981Smrg ;; 418ea1d6981Smrg nacl) 419ea1d6981Smrg basic_machine=le32-unknown 420ea1d6981Smrg os=nacl 421ea1d6981Smrg ;; 422ea1d6981Smrg ncr3000) 423ea1d6981Smrg basic_machine=i486-ncr 424ea1d6981Smrg os=sysv4 425ea1d6981Smrg ;; 426ea1d6981Smrg netbsd386) 427ea1d6981Smrg basic_machine=i386-pc 428ea1d6981Smrg os=netbsd 429ea1d6981Smrg ;; 430ea1d6981Smrg netwinder) 431ea1d6981Smrg basic_machine=armv4l-rebel 432ea1d6981Smrg os=linux 433ea1d6981Smrg ;; 434ea1d6981Smrg news | news700 | news800 | news900) 435ea1d6981Smrg basic_machine=m68k-sony 436ea1d6981Smrg os=newsos 437ea1d6981Smrg ;; 438ea1d6981Smrg news1000) 439ea1d6981Smrg basic_machine=m68030-sony 440ea1d6981Smrg os=newsos 441ea1d6981Smrg ;; 442ea1d6981Smrg necv70) 443ea1d6981Smrg basic_machine=v70-nec 444ea1d6981Smrg os=sysv 445ea1d6981Smrg ;; 446ea1d6981Smrg nh3000) 447ea1d6981Smrg basic_machine=m68k-harris 448ea1d6981Smrg os=cxux 449ea1d6981Smrg ;; 450ea1d6981Smrg nh[45]000) 451ea1d6981Smrg basic_machine=m88k-harris 452ea1d6981Smrg os=cxux 453ea1d6981Smrg ;; 454ea1d6981Smrg nindy960) 455ea1d6981Smrg basic_machine=i960-intel 456ea1d6981Smrg os=nindy 457ea1d6981Smrg ;; 458ea1d6981Smrg mon960) 459ea1d6981Smrg basic_machine=i960-intel 460ea1d6981Smrg os=mon960 461ea1d6981Smrg ;; 462ea1d6981Smrg nonstopux) 463ea1d6981Smrg basic_machine=mips-compaq 464ea1d6981Smrg os=nonstopux 465ea1d6981Smrg ;; 466ea1d6981Smrg os400) 467ea1d6981Smrg basic_machine=powerpc-ibm 468ea1d6981Smrg os=os400 469ea1d6981Smrg ;; 470ea1d6981Smrg OSE68000 | ose68000) 471ea1d6981Smrg basic_machine=m68000-ericsson 472ea1d6981Smrg os=ose 473ea1d6981Smrg ;; 474ea1d6981Smrg os68k) 475ea1d6981Smrg basic_machine=m68k-none 476ea1d6981Smrg os=os68k 477ea1d6981Smrg ;; 478ea1d6981Smrg paragon) 479ea1d6981Smrg basic_machine=i860-intel 480ea1d6981Smrg os=osf 481ea1d6981Smrg ;; 482ea1d6981Smrg parisc) 483ea1d6981Smrg basic_machine=hppa-unknown 484ea1d6981Smrg os=linux 485ea1d6981Smrg ;; 486ea1d6981Smrg pw32) 487ea1d6981Smrg basic_machine=i586-unknown 488ea1d6981Smrg os=pw32 489ea1d6981Smrg ;; 490ea1d6981Smrg rdos | rdos64) 491ea1d6981Smrg basic_machine=x86_64-pc 492ea1d6981Smrg os=rdos 493ea1d6981Smrg ;; 494ea1d6981Smrg rdos32) 495ea1d6981Smrg basic_machine=i386-pc 496ea1d6981Smrg os=rdos 497ea1d6981Smrg ;; 498ea1d6981Smrg rom68k) 499ea1d6981Smrg basic_machine=m68k-rom68k 500ea1d6981Smrg os=coff 501ea1d6981Smrg ;; 502ea1d6981Smrg sa29200) 503ea1d6981Smrg basic_machine=a29k-amd 504ea1d6981Smrg os=udi 505ea1d6981Smrg ;; 506ea1d6981Smrg sei) 507ea1d6981Smrg basic_machine=mips-sei 508ea1d6981Smrg os=seiux 509ea1d6981Smrg ;; 510ea1d6981Smrg sequent) 511ea1d6981Smrg basic_machine=i386-sequent 512ea1d6981Smrg os= 513ea1d6981Smrg ;; 514ea1d6981Smrg sps7) 515ea1d6981Smrg basic_machine=m68k-bull 516ea1d6981Smrg os=sysv2 517ea1d6981Smrg ;; 518ea1d6981Smrg st2000) 519ea1d6981Smrg basic_machine=m68k-tandem 520ea1d6981Smrg os= 521ea1d6981Smrg ;; 522ea1d6981Smrg stratus) 523ea1d6981Smrg basic_machine=i860-stratus 524ea1d6981Smrg os=sysv4 525ea1d6981Smrg ;; 526ea1d6981Smrg sun2) 527ea1d6981Smrg basic_machine=m68000-sun 528ea1d6981Smrg os= 529ea1d6981Smrg ;; 530ea1d6981Smrg sun2os3) 531ea1d6981Smrg basic_machine=m68000-sun 532ea1d6981Smrg os=sunos3 533ea1d6981Smrg ;; 534ea1d6981Smrg sun2os4) 535ea1d6981Smrg basic_machine=m68000-sun 536ea1d6981Smrg os=sunos4 537ea1d6981Smrg ;; 538ea1d6981Smrg sun3) 539ea1d6981Smrg basic_machine=m68k-sun 540ea1d6981Smrg os= 541ea1d6981Smrg ;; 542ea1d6981Smrg sun3os3) 543ea1d6981Smrg basic_machine=m68k-sun 544ea1d6981Smrg os=sunos3 545ea1d6981Smrg ;; 546ea1d6981Smrg sun3os4) 547ea1d6981Smrg basic_machine=m68k-sun 548ea1d6981Smrg os=sunos4 549ea1d6981Smrg ;; 550ea1d6981Smrg sun4) 551ea1d6981Smrg basic_machine=sparc-sun 552ea1d6981Smrg os= 553ea1d6981Smrg ;; 554ea1d6981Smrg sun4os3) 555ea1d6981Smrg basic_machine=sparc-sun 556ea1d6981Smrg os=sunos3 557ea1d6981Smrg ;; 558ea1d6981Smrg sun4os4) 559ea1d6981Smrg basic_machine=sparc-sun 560ea1d6981Smrg os=sunos4 561ea1d6981Smrg ;; 562ea1d6981Smrg sun4sol2) 563ea1d6981Smrg basic_machine=sparc-sun 564ea1d6981Smrg os=solaris2 565ea1d6981Smrg ;; 566ea1d6981Smrg sun386 | sun386i | roadrunner) 567ea1d6981Smrg basic_machine=i386-sun 568ea1d6981Smrg os= 569ea1d6981Smrg ;; 570ea1d6981Smrg sv1) 571ea1d6981Smrg basic_machine=sv1-cray 572ea1d6981Smrg os=unicos 573ea1d6981Smrg ;; 574ea1d6981Smrg symmetry) 575ea1d6981Smrg basic_machine=i386-sequent 576ea1d6981Smrg os=dynix 577ea1d6981Smrg ;; 578ea1d6981Smrg t3e) 579ea1d6981Smrg basic_machine=alphaev5-cray 580ea1d6981Smrg os=unicos 581ea1d6981Smrg ;; 582ea1d6981Smrg t90) 583ea1d6981Smrg basic_machine=t90-cray 584ea1d6981Smrg os=unicos 585ea1d6981Smrg ;; 586ea1d6981Smrg toad1) 587ea1d6981Smrg basic_machine=pdp10-xkl 588ea1d6981Smrg os=tops20 589ea1d6981Smrg ;; 590ea1d6981Smrg tpf) 591ea1d6981Smrg basic_machine=s390x-ibm 592ea1d6981Smrg os=tpf 593ea1d6981Smrg ;; 594ea1d6981Smrg udi29k) 595ea1d6981Smrg basic_machine=a29k-amd 596ea1d6981Smrg os=udi 597ea1d6981Smrg ;; 598ea1d6981Smrg ultra3) 599ea1d6981Smrg basic_machine=a29k-nyu 600ea1d6981Smrg os=sym1 601ea1d6981Smrg ;; 602ea1d6981Smrg v810 | necv810) 603ea1d6981Smrg basic_machine=v810-nec 604ea1d6981Smrg os=none 605ea1d6981Smrg ;; 606ea1d6981Smrg vaxv) 607ea1d6981Smrg basic_machine=vax-dec 608ea1d6981Smrg os=sysv 609ea1d6981Smrg ;; 610ea1d6981Smrg vms) 611ea1d6981Smrg basic_machine=vax-dec 612ea1d6981Smrg os=vms 613ea1d6981Smrg ;; 614ea1d6981Smrg vxworks960) 615ea1d6981Smrg basic_machine=i960-wrs 616ea1d6981Smrg os=vxworks 617ea1d6981Smrg ;; 618ea1d6981Smrg vxworks68) 619ea1d6981Smrg basic_machine=m68k-wrs 620ea1d6981Smrg os=vxworks 621ea1d6981Smrg ;; 622ea1d6981Smrg vxworks29k) 623ea1d6981Smrg basic_machine=a29k-wrs 624ea1d6981Smrg os=vxworks 625ea1d6981Smrg ;; 626ea1d6981Smrg xbox) 627ea1d6981Smrg basic_machine=i686-pc 628ea1d6981Smrg os=mingw32 629ea1d6981Smrg ;; 630ea1d6981Smrg ymp) 631ea1d6981Smrg basic_machine=ymp-cray 632ea1d6981Smrg os=unicos 633ea1d6981Smrg ;; 634ea1d6981Smrg *) 635ea1d6981Smrg basic_machine=$1 636ea1d6981Smrg os= 637ea1d6981Smrg ;; 638ea1d6981Smrg esac 63917ca54c3Smrg ;; 64017ca54c3Smrgesac 64117ca54c3Smrg 642ea1d6981Smrg# Decode 1-component or ad-hoc basic machines 64317ca54c3Smrgcase $basic_machine in 644ea1d6981Smrg # Here we handle the default manufacturer of certain CPU types. It is in 645ea1d6981Smrg # some cases the only manufacturer, in others, it is the most popular. 646ea1d6981Smrg w89k) 647ea1d6981Smrg cpu=hppa1.1 648ea1d6981Smrg vendor=winbond 64917ca54c3Smrg ;; 650ea1d6981Smrg op50n) 651ea1d6981Smrg cpu=hppa1.1 652ea1d6981Smrg vendor=oki 65317ca54c3Smrg ;; 654ea1d6981Smrg op60c) 655ea1d6981Smrg cpu=hppa1.1 656ea1d6981Smrg vendor=oki 65717ca54c3Smrg ;; 658ea1d6981Smrg ibm*) 659ea1d6981Smrg cpu=i370 660ea1d6981Smrg vendor=ibm 66117ca54c3Smrg ;; 662ea1d6981Smrg orion105) 663ea1d6981Smrg cpu=clipper 664ea1d6981Smrg vendor=highlevel 66517ca54c3Smrg ;; 666ea1d6981Smrg mac | mpw | mac-mpw) 667ea1d6981Smrg cpu=m68k 668ea1d6981Smrg vendor=apple 66917ca54c3Smrg ;; 670ea1d6981Smrg pmac | pmac-mpw) 671ea1d6981Smrg cpu=powerpc 672ea1d6981Smrg vendor=apple 67317ca54c3Smrg ;; 67417ca54c3Smrg 67517ca54c3Smrg # Recognize the various machine names and aliases which stand 67617ca54c3Smrg # for a CPU type and a company and sometimes even an OS. 67717ca54c3Smrg 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 678ea1d6981Smrg cpu=m68000 679ea1d6981Smrg vendor=att 68017ca54c3Smrg ;; 68117ca54c3Smrg 3b*) 682ea1d6981Smrg cpu=we32k 683ea1d6981Smrg vendor=att 68417ca54c3Smrg ;; 68517ca54c3Smrg bluegene*) 686ea1d6981Smrg cpu=powerpc 687ea1d6981Smrg vendor=ibm 688ea1d6981Smrg os=cnk 68917ca54c3Smrg ;; 69017ca54c3Smrg decsystem10* | dec10*) 691ea1d6981Smrg cpu=pdp10 692ea1d6981Smrg vendor=dec 693ea1d6981Smrg os=tops10 69417ca54c3Smrg ;; 69517ca54c3Smrg decsystem20* | dec20*) 696ea1d6981Smrg cpu=pdp10 697ea1d6981Smrg vendor=dec 698ea1d6981Smrg os=tops20 69917ca54c3Smrg ;; 70017ca54c3Smrg delta | 3300 | motorola-3300 | motorola-delta \ 70117ca54c3Smrg | 3300-motorola | delta-motorola) 702ea1d6981Smrg cpu=m68k 703ea1d6981Smrg vendor=motorola 70417ca54c3Smrg ;; 705ea1d6981Smrg dpx2*) 706ea1d6981Smrg cpu=m68k 707ea1d6981Smrg vendor=bull 708ea1d6981Smrg os=sysv3 70917ca54c3Smrg ;; 71017ca54c3Smrg encore | umax | mmax) 711ea1d6981Smrg cpu=ns32k 712ea1d6981Smrg vendor=encore 71317ca54c3Smrg ;; 714ea1d6981Smrg elxsi) 715ea1d6981Smrg cpu=elxsi 716ea1d6981Smrg vendor=elxsi 717ea1d6981Smrg os=${os:-bsd} 71817ca54c3Smrg ;; 71917ca54c3Smrg fx2800) 720ea1d6981Smrg cpu=i860 721ea1d6981Smrg vendor=alliant 72217ca54c3Smrg ;; 72317ca54c3Smrg genix) 724ea1d6981Smrg cpu=ns32k 725ea1d6981Smrg vendor=ns 72617ca54c3Smrg ;; 72717ca54c3Smrg h3050r* | hiux*) 728ea1d6981Smrg cpu=hppa1.1 729ea1d6981Smrg vendor=hitachi 730ea1d6981Smrg os=hiuxwe2 73117ca54c3Smrg ;; 73217ca54c3Smrg hp3k9[0-9][0-9] | hp9[0-9][0-9]) 733ea1d6981Smrg cpu=hppa1.0 734ea1d6981Smrg vendor=hp 73517ca54c3Smrg ;; 73617ca54c3Smrg hp9k2[0-9][0-9] | hp9k31[0-9]) 737ea1d6981Smrg cpu=m68000 738ea1d6981Smrg vendor=hp 73917ca54c3Smrg ;; 74017ca54c3Smrg hp9k3[2-9][0-9]) 741ea1d6981Smrg cpu=m68k 742ea1d6981Smrg vendor=hp 74317ca54c3Smrg ;; 74417ca54c3Smrg hp9k6[0-9][0-9] | hp6[0-9][0-9]) 745ea1d6981Smrg cpu=hppa1.0 746ea1d6981Smrg vendor=hp 74717ca54c3Smrg ;; 74817ca54c3Smrg hp9k7[0-79][0-9] | hp7[0-79][0-9]) 749ea1d6981Smrg cpu=hppa1.1 750ea1d6981Smrg vendor=hp 75117ca54c3Smrg ;; 75217ca54c3Smrg hp9k78[0-9] | hp78[0-9]) 75317ca54c3Smrg # FIXME: really hppa2.0-hp 754ea1d6981Smrg cpu=hppa1.1 755ea1d6981Smrg vendor=hp 75617ca54c3Smrg ;; 75717ca54c3Smrg hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 75817ca54c3Smrg # FIXME: really hppa2.0-hp 759ea1d6981Smrg cpu=hppa1.1 760ea1d6981Smrg vendor=hp 76117ca54c3Smrg ;; 76217ca54c3Smrg hp9k8[0-9][13679] | hp8[0-9][13679]) 763ea1d6981Smrg cpu=hppa1.1 764ea1d6981Smrg vendor=hp 76517ca54c3Smrg ;; 76617ca54c3Smrg hp9k8[0-9][0-9] | hp8[0-9][0-9]) 767ea1d6981Smrg cpu=hppa1.0 768ea1d6981Smrg vendor=hp 76917ca54c3Smrg ;; 77017ca54c3Smrg i*86v32) 771ea1d6981Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 772ea1d6981Smrg vendor=pc 773ea1d6981Smrg os=sysv32 77417ca54c3Smrg ;; 77517ca54c3Smrg i*86v4*) 776ea1d6981Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 777ea1d6981Smrg vendor=pc 778ea1d6981Smrg os=sysv4 77917ca54c3Smrg ;; 78017ca54c3Smrg i*86v) 781ea1d6981Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 782ea1d6981Smrg vendor=pc 783ea1d6981Smrg os=sysv 78417ca54c3Smrg ;; 78517ca54c3Smrg i*86sol2) 786ea1d6981Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 787ea1d6981Smrg vendor=pc 788ea1d6981Smrg os=solaris2 78917ca54c3Smrg ;; 790ea1d6981Smrg j90 | j90-cray) 791ea1d6981Smrg cpu=j90 792ea1d6981Smrg vendor=cray 793ea1d6981Smrg os=${os:-unicos} 79417ca54c3Smrg ;; 79517ca54c3Smrg iris | iris4d) 796ea1d6981Smrg cpu=mips 797ea1d6981Smrg vendor=sgi 79817ca54c3Smrg case $os in 799ea1d6981Smrg irix*) 80017ca54c3Smrg ;; 80117ca54c3Smrg *) 802ea1d6981Smrg os=irix4 80317ca54c3Smrg ;; 80417ca54c3Smrg esac 80517ca54c3Smrg ;; 80617ca54c3Smrg miniframe) 807ea1d6981Smrg cpu=m68000 808ea1d6981Smrg vendor=convergent 80917ca54c3Smrg ;; 810ea1d6981Smrg *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) 811ea1d6981Smrg cpu=m68k 812ea1d6981Smrg vendor=atari 813ea1d6981Smrg os=mint 81417ca54c3Smrg ;; 81517ca54c3Smrg news-3600 | risc-news) 816ea1d6981Smrg cpu=mips 817ea1d6981Smrg vendor=sony 818ea1d6981Smrg os=newsos 81917ca54c3Smrg ;; 820ea1d6981Smrg next | m*-next) 821ea1d6981Smrg cpu=m68k 822ea1d6981Smrg vendor=next 82317ca54c3Smrg case $os in 824ea1d6981Smrg nextstep* ) 82517ca54c3Smrg ;; 826ea1d6981Smrg ns2*) 827ea1d6981Smrg os=nextstep2 82817ca54c3Smrg ;; 82917ca54c3Smrg *) 830ea1d6981Smrg os=nextstep3 83117ca54c3Smrg ;; 83217ca54c3Smrg esac 83317ca54c3Smrg ;; 83417ca54c3Smrg np1) 835ea1d6981Smrg cpu=np1 836ea1d6981Smrg vendor=gould 83717ca54c3Smrg ;; 83817ca54c3Smrg op50n-* | op60c-*) 839ea1d6981Smrg cpu=hppa1.1 840ea1d6981Smrg vendor=oki 841ea1d6981Smrg os=proelf 84217ca54c3Smrg ;; 84317ca54c3Smrg pa-hitachi) 844ea1d6981Smrg cpu=hppa1.1 845ea1d6981Smrg vendor=hitachi 846ea1d6981Smrg os=hiuxwe2 84717ca54c3Smrg ;; 84817ca54c3Smrg pbd) 849ea1d6981Smrg cpu=sparc 850ea1d6981Smrg vendor=tti 85117ca54c3Smrg ;; 85217ca54c3Smrg pbb) 853ea1d6981Smrg cpu=m68k 854ea1d6981Smrg vendor=tti 85517ca54c3Smrg ;; 856ea1d6981Smrg pc532) 857ea1d6981Smrg cpu=ns32k 858ea1d6981Smrg vendor=pc532 85917ca54c3Smrg ;; 86017ca54c3Smrg pn) 861ea1d6981Smrg cpu=pn 862ea1d6981Smrg vendor=gould 86317ca54c3Smrg ;; 864ea1d6981Smrg power) 865ea1d6981Smrg cpu=power 866ea1d6981Smrg vendor=ibm 86717ca54c3Smrg ;; 86817ca54c3Smrg ps2) 869ea1d6981Smrg cpu=i386 870ea1d6981Smrg vendor=ibm 87117ca54c3Smrg ;; 87217ca54c3Smrg rm[46]00) 873ea1d6981Smrg cpu=mips 874ea1d6981Smrg vendor=siemens 87517ca54c3Smrg ;; 87617ca54c3Smrg rtpc | rtpc-*) 877ea1d6981Smrg cpu=romp 878ea1d6981Smrg vendor=ibm 87917ca54c3Smrg ;; 88017ca54c3Smrg sde) 881ea1d6981Smrg cpu=mipsisa32 882ea1d6981Smrg vendor=sde 883ea1d6981Smrg os=${os:-elf} 88417ca54c3Smrg ;; 885ea1d6981Smrg simso-wrs) 886ea1d6981Smrg cpu=sparclite 887ea1d6981Smrg vendor=wrs 888ea1d6981Smrg os=vxworks 88917ca54c3Smrg ;; 890ea1d6981Smrg tower | tower-32) 891ea1d6981Smrg cpu=m68k 892ea1d6981Smrg vendor=ncr 89317ca54c3Smrg ;; 894ea1d6981Smrg vpp*|vx|vx-*) 895ea1d6981Smrg cpu=f301 896ea1d6981Smrg vendor=fujitsu 89717ca54c3Smrg ;; 898ea1d6981Smrg w65) 899ea1d6981Smrg cpu=w65 900ea1d6981Smrg vendor=wdc 90117ca54c3Smrg ;; 902ea1d6981Smrg w89k-*) 903ea1d6981Smrg cpu=hppa1.1 904ea1d6981Smrg vendor=winbond 905ea1d6981Smrg os=proelf 90617ca54c3Smrg ;; 907ea1d6981Smrg none) 908ea1d6981Smrg cpu=none 909ea1d6981Smrg vendor=none 91017ca54c3Smrg ;; 911ea1d6981Smrg leon|leon[3-9]) 912ea1d6981Smrg cpu=sparc 913ea1d6981Smrg vendor=$basic_machine 91417ca54c3Smrg ;; 915ea1d6981Smrg leon-*|leon[3-9]-*) 916ea1d6981Smrg cpu=sparc 917ea1d6981Smrg vendor=`echo "$basic_machine" | sed 's/-.*//'` 91817ca54c3Smrg ;; 919ea1d6981Smrg 920ea1d6981Smrg *-*) 921ea1d6981Smrg IFS="-" read -r cpu vendor <<EOF 922ea1d6981Smrg$basic_machine 923ea1d6981SmrgEOF 92417ca54c3Smrg ;; 925ea1d6981Smrg # We use `pc' rather than `unknown' 926ea1d6981Smrg # because (1) that's what they normally are, and 927ea1d6981Smrg # (2) the word "unknown" tends to confuse beginning users. 928ea1d6981Smrg i*86 | x86_64) 929ea1d6981Smrg cpu=$basic_machine 930ea1d6981Smrg vendor=pc 93117ca54c3Smrg ;; 932ea1d6981Smrg # These rules are duplicated from below for sake of the special case above; 933ea1d6981Smrg # i.e. things that normalized to x86 arches should also default to "pc" 934ea1d6981Smrg pc98) 935ea1d6981Smrg cpu=i386 936ea1d6981Smrg vendor=pc 93717ca54c3Smrg ;; 938ea1d6981Smrg x64 | amd64) 939ea1d6981Smrg cpu=x86_64 940ea1d6981Smrg vendor=pc 94117ca54c3Smrg ;; 942ea1d6981Smrg # Recognize the basic CPU types without company name. 943ea1d6981Smrg *) 944ea1d6981Smrg cpu=$basic_machine 945ea1d6981Smrg vendor=unknown 94617ca54c3Smrg ;; 947ea1d6981Smrgesac 948ea1d6981Smrg 949ea1d6981Smrgunset -v basic_machine 950ea1d6981Smrg 951ea1d6981Smrg# Decode basic machines in the full and proper CPU-Company form. 952ea1d6981Smrgcase $cpu-$vendor in 953ea1d6981Smrg # Here we handle the default manufacturer of certain CPU types in cannonical form. It is in 954ea1d6981Smrg # some cases the only manufacturer, in others, it is the most popular. 955ea1d6981Smrg craynv-unknown) 956ea1d6981Smrg vendor=cray 957ea1d6981Smrg os=${os:-unicosmp} 95817ca54c3Smrg ;; 959ea1d6981Smrg c90-unknown | c90-cray) 960ea1d6981Smrg vendor=cray 961ea1d6981Smrg os=${os:-unicos} 96217ca54c3Smrg ;; 963ea1d6981Smrg fx80-unknown) 964ea1d6981Smrg vendor=alliant 96517ca54c3Smrg ;; 966ea1d6981Smrg romp-unknown) 967ea1d6981Smrg vendor=ibm 96817ca54c3Smrg ;; 969ea1d6981Smrg mmix-unknown) 970ea1d6981Smrg vendor=knuth 97117ca54c3Smrg ;; 972ea1d6981Smrg microblaze-unknown | microblazeel-unknown) 973ea1d6981Smrg vendor=xilinx 97417ca54c3Smrg ;; 975ea1d6981Smrg rs6000-unknown) 976ea1d6981Smrg vendor=ibm 97717ca54c3Smrg ;; 978ea1d6981Smrg vax-unknown) 979ea1d6981Smrg vendor=dec 98017ca54c3Smrg ;; 981ea1d6981Smrg pdp11-unknown) 982ea1d6981Smrg vendor=dec 98317ca54c3Smrg ;; 984ea1d6981Smrg we32k-unknown) 985ea1d6981Smrg vendor=att 98617ca54c3Smrg ;; 987ea1d6981Smrg cydra-unknown) 988ea1d6981Smrg vendor=cydrome 98917ca54c3Smrg ;; 990ea1d6981Smrg i370-ibm*) 991ea1d6981Smrg vendor=ibm 99217ca54c3Smrg ;; 993ea1d6981Smrg orion-unknown) 994ea1d6981Smrg vendor=highlevel 99517ca54c3Smrg ;; 996ea1d6981Smrg xps-unknown | xps100-unknown) 997ea1d6981Smrg cpu=xps100 998ea1d6981Smrg vendor=honeywell 99917ca54c3Smrg ;; 1000ea1d6981Smrg 1001ea1d6981Smrg # Here we normalize CPU types with a missing or matching vendor 1002ea1d6981Smrg dpx20-unknown | dpx20-bull) 1003ea1d6981Smrg cpu=rs6000 1004ea1d6981Smrg vendor=bull 1005ea1d6981Smrg os=${os:-bosx} 100617ca54c3Smrg ;; 1007ea1d6981Smrg 1008ea1d6981Smrg # Here we normalize CPU types irrespective of the vendor 1009ea1d6981Smrg amd64-*) 1010ea1d6981Smrg cpu=x86_64 101117ca54c3Smrg ;; 1012ea1d6981Smrg blackfin-*) 1013ea1d6981Smrg cpu=bfin 1014ea1d6981Smrg os=linux 101517ca54c3Smrg ;; 1016ea1d6981Smrg c54x-*) 1017ea1d6981Smrg cpu=tic54x 101817ca54c3Smrg ;; 1019ea1d6981Smrg c55x-*) 1020ea1d6981Smrg cpu=tic55x 102117ca54c3Smrg ;; 1022ea1d6981Smrg c6x-*) 1023ea1d6981Smrg cpu=tic6x 102417ca54c3Smrg ;; 1025ea1d6981Smrg e500v[12]-*) 1026ea1d6981Smrg cpu=powerpc 1027ea1d6981Smrg os=$os"spe" 102817ca54c3Smrg ;; 1029ea1d6981Smrg mips3*-*) 1030ea1d6981Smrg cpu=mips64 103117ca54c3Smrg ;; 1032ea1d6981Smrg ms1-*) 1033ea1d6981Smrg cpu=mt 103417ca54c3Smrg ;; 1035ea1d6981Smrg m68knommu-*) 1036ea1d6981Smrg cpu=m68k 1037ea1d6981Smrg os=linux 103817ca54c3Smrg ;; 1039ea1d6981Smrg m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) 1040ea1d6981Smrg cpu=s12z 104117ca54c3Smrg ;; 1042ea1d6981Smrg openrisc-*) 1043ea1d6981Smrg cpu=or32 104417ca54c3Smrg ;; 1045ea1d6981Smrg parisc-*) 1046ea1d6981Smrg cpu=hppa 1047ea1d6981Smrg os=linux 104817ca54c3Smrg ;; 1049ea1d6981Smrg pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 1050ea1d6981Smrg cpu=i586 105117ca54c3Smrg ;; 1052ea1d6981Smrg pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) 1053ea1d6981Smrg cpu=i686 105417ca54c3Smrg ;; 1055ea1d6981Smrg pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 1056ea1d6981Smrg cpu=i686 105717ca54c3Smrg ;; 1058ea1d6981Smrg pentium4-*) 1059ea1d6981Smrg cpu=i786 106017ca54c3Smrg ;; 1061ea1d6981Smrg pc98-*) 1062ea1d6981Smrg cpu=i386 106317ca54c3Smrg ;; 1064ea1d6981Smrg ppc-* | ppcbe-*) 1065ea1d6981Smrg cpu=powerpc 106617ca54c3Smrg ;; 1067ea1d6981Smrg ppcle-* | powerpclittle-*) 1068ea1d6981Smrg cpu=powerpcle 106917ca54c3Smrg ;; 1070ea1d6981Smrg ppc64-*) 1071ea1d6981Smrg cpu=powerpc64 107217ca54c3Smrg ;; 1073ea1d6981Smrg ppc64le-* | powerpc64little-*) 1074ea1d6981Smrg cpu=powerpc64le 107517ca54c3Smrg ;; 1076ea1d6981Smrg sb1-*) 1077ea1d6981Smrg cpu=mipsisa64sb1 107817ca54c3Smrg ;; 1079ea1d6981Smrg sb1el-*) 1080ea1d6981Smrg cpu=mipsisa64sb1el 108117ca54c3Smrg ;; 1082ea1d6981Smrg sh5e[lb]-*) 1083ea1d6981Smrg cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` 108417ca54c3Smrg ;; 1085ea1d6981Smrg spur-*) 1086ea1d6981Smrg cpu=spur 108717ca54c3Smrg ;; 1088ea1d6981Smrg strongarm-* | thumb-*) 1089ea1d6981Smrg cpu=arm 109017ca54c3Smrg ;; 1091ea1d6981Smrg tx39-*) 1092ea1d6981Smrg cpu=mipstx39 109317ca54c3Smrg ;; 1094ea1d6981Smrg tx39el-*) 1095ea1d6981Smrg cpu=mipstx39el 109617ca54c3Smrg ;; 1097ea1d6981Smrg x64-*) 1098ea1d6981Smrg cpu=x86_64 109917ca54c3Smrg ;; 1100ea1d6981Smrg xscale-* | xscalee[bl]-*) 1101ea1d6981Smrg cpu=`echo "$cpu" | sed 's/^xscale/arm/'` 110217ca54c3Smrg ;; 1103ea1d6981Smrg 1104ea1d6981Smrg # Recognize the cannonical CPU Types that limit and/or modify the 1105ea1d6981Smrg # company names they are paired with. 1106ea1d6981Smrg cr16-*) 1107ea1d6981Smrg os=${os:-elf} 110817ca54c3Smrg ;; 1109ea1d6981Smrg crisv32-* | etraxfs*-*) 1110ea1d6981Smrg cpu=crisv32 1111ea1d6981Smrg vendor=axis 111217ca54c3Smrg ;; 1113ea1d6981Smrg cris-* | etrax*-*) 1114ea1d6981Smrg cpu=cris 1115ea1d6981Smrg vendor=axis 111617ca54c3Smrg ;; 1117ea1d6981Smrg crx-*) 1118ea1d6981Smrg os=${os:-elf} 111917ca54c3Smrg ;; 1120ea1d6981Smrg neo-tandem) 1121ea1d6981Smrg cpu=neo 1122ea1d6981Smrg vendor=tandem 112317ca54c3Smrg ;; 1124ea1d6981Smrg nse-tandem) 1125ea1d6981Smrg cpu=nse 1126ea1d6981Smrg vendor=tandem 112717ca54c3Smrg ;; 1128ea1d6981Smrg nsr-tandem) 1129ea1d6981Smrg cpu=nsr 1130ea1d6981Smrg vendor=tandem 113117ca54c3Smrg ;; 1132ea1d6981Smrg nsv-tandem) 1133ea1d6981Smrg cpu=nsv 1134ea1d6981Smrg vendor=tandem 113517ca54c3Smrg ;; 1136ea1d6981Smrg nsx-tandem) 1137ea1d6981Smrg cpu=nsx 1138ea1d6981Smrg vendor=tandem 113917ca54c3Smrg ;; 1140ea1d6981Smrg s390-*) 1141ea1d6981Smrg cpu=s390 1142ea1d6981Smrg vendor=ibm 1143ea1d6981Smrg ;; 1144ea1d6981Smrg s390x-*) 1145ea1d6981Smrg cpu=s390x 1146ea1d6981Smrg vendor=ibm 114717ca54c3Smrg ;; 1148ea1d6981Smrg tile*-*) 1149ea1d6981Smrg os=${os:-linux-gnu} 115017ca54c3Smrg ;; 1151ea1d6981Smrg 115217ca54c3Smrg *) 1153ea1d6981Smrg # Recognize the cannonical CPU types that are allowed with any 1154ea1d6981Smrg # company name. 1155ea1d6981Smrg case $cpu in 1156ea1d6981Smrg 1750a | 580 \ 1157ea1d6981Smrg | a29k \ 1158ea1d6981Smrg | aarch64 | aarch64_be \ 1159ea1d6981Smrg | abacus \ 1160ea1d6981Smrg | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ 1161ea1d6981Smrg | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ 1162ea1d6981Smrg | alphapca5[67] | alpha64pca5[67] \ 1163ea1d6981Smrg | am33_2.0 \ 1164ea1d6981Smrg | arc | arceb \ 1165ea1d6981Smrg | arm | arm[lb]e | arme[lb] | armv* \ 1166ea1d6981Smrg | avr | avr32 \ 1167ea1d6981Smrg | asmjs \ 1168ea1d6981Smrg | ba \ 1169ea1d6981Smrg | be32 | be64 \ 1170ea1d6981Smrg | bfin | bs2000 \ 1171ea1d6981Smrg | c[123]* | c30 | [cjt]90 | c4x \ 1172ea1d6981Smrg | c8051 | clipper | craynv | csky | cydra \ 1173ea1d6981Smrg | d10v | d30v | dlx | dsp16xx \ 1174ea1d6981Smrg | e2k | elxsi | epiphany \ 1175ea1d6981Smrg | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ 1176ea1d6981Smrg | h8300 | h8500 \ 1177ea1d6981Smrg | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 1178ea1d6981Smrg | hexagon \ 1179ea1d6981Smrg | i370 | i*86 | i860 | i960 | ia16 | ia64 \ 1180ea1d6981Smrg | ip2k | iq2000 \ 1181ea1d6981Smrg | k1om \ 1182ea1d6981Smrg | le32 | le64 \ 1183ea1d6981Smrg | lm32 \ 1184ea1d6981Smrg | m32c | m32r | m32rle \ 1185ea1d6981Smrg | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \ 1186ea1d6981Smrg | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \ 1187ea1d6981Smrg | m88110 | m88k | maxq | mb | mcore | mep | metag \ 1188ea1d6981Smrg | microblaze | microblazeel \ 1189ea1d6981Smrg | mips | mipsbe | mipseb | mipsel | mipsle \ 1190ea1d6981Smrg | mips16 \ 1191ea1d6981Smrg | mips64 | mips64el \ 1192ea1d6981Smrg | mips64octeon | mips64octeonel \ 1193ea1d6981Smrg | mips64orion | mips64orionel \ 1194ea1d6981Smrg | mips64r5900 | mips64r5900el \ 1195ea1d6981Smrg | mips64vr | mips64vrel \ 1196ea1d6981Smrg | mips64vr4100 | mips64vr4100el \ 1197ea1d6981Smrg | mips64vr4300 | mips64vr4300el \ 1198ea1d6981Smrg | mips64vr5000 | mips64vr5000el \ 1199ea1d6981Smrg | mips64vr5900 | mips64vr5900el \ 1200ea1d6981Smrg | mipsisa32 | mipsisa32el \ 1201ea1d6981Smrg | mipsisa32r2 | mipsisa32r2el \ 1202ea1d6981Smrg | mipsisa32r6 | mipsisa32r6el \ 1203ea1d6981Smrg | mipsisa64 | mipsisa64el \ 1204ea1d6981Smrg | mipsisa64r2 | mipsisa64r2el \ 1205ea1d6981Smrg | mipsisa64r6 | mipsisa64r6el \ 1206ea1d6981Smrg | mipsisa64sb1 | mipsisa64sb1el \ 1207ea1d6981Smrg | mipsisa64sr71k | mipsisa64sr71kel \ 1208ea1d6981Smrg | mipsr5900 | mipsr5900el \ 1209ea1d6981Smrg | mipstx39 | mipstx39el \ 1210ea1d6981Smrg | mmix \ 1211ea1d6981Smrg | mn10200 | mn10300 \ 1212ea1d6981Smrg | moxie \ 1213ea1d6981Smrg | mt \ 1214ea1d6981Smrg | msp430 \ 1215ea1d6981Smrg | nds32 | nds32le | nds32be \ 1216ea1d6981Smrg | nfp \ 1217ea1d6981Smrg | nios | nios2 | nios2eb | nios2el \ 1218ea1d6981Smrg | none | np1 | ns16k | ns32k \ 1219ea1d6981Smrg | open8 \ 1220ea1d6981Smrg | or1k* \ 1221ea1d6981Smrg | or32 \ 1222ea1d6981Smrg | orion \ 1223ea1d6981Smrg | pdp10 | pdp11 | pj | pjl | pn | power \ 1224ea1d6981Smrg | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ 1225ea1d6981Smrg | pru \ 1226ea1d6981Smrg | pyramid \ 1227ea1d6981Smrg | riscv | riscv32 | riscv64 \ 1228ea1d6981Smrg | rl78 | romp | rs6000 | rx \ 1229ea1d6981Smrg | score \ 1230ea1d6981Smrg | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ 1231ea1d6981Smrg | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ 1232ea1d6981Smrg | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ 1233ea1d6981Smrg | sparclite \ 1234ea1d6981Smrg | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ 1235ea1d6981Smrg | spu \ 1236ea1d6981Smrg | tahoe \ 1237ea1d6981Smrg | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ 1238ea1d6981Smrg | tron \ 1239ea1d6981Smrg | ubicom32 \ 1240ea1d6981Smrg | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ 1241ea1d6981Smrg | vax \ 1242ea1d6981Smrg | visium \ 1243ea1d6981Smrg | wasm32 \ 1244ea1d6981Smrg | we32k \ 1245ea1d6981Smrg | x86 | x86_64 | xc16x | xgate | xps100 \ 1246ea1d6981Smrg | xstormy16 | xtensa* \ 1247ea1d6981Smrg | ymp \ 1248ea1d6981Smrg | z8k | z80) 1249ea1d6981Smrg ;; 1250ea1d6981Smrg 1251ea1d6981Smrg *) 1252ea1d6981Smrg echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 1253ea1d6981Smrg exit 1 1254ea1d6981Smrg ;; 1255ea1d6981Smrg esac 125617ca54c3Smrg ;; 125717ca54c3Smrgesac 125817ca54c3Smrg 125917ca54c3Smrg# Here we canonicalize certain aliases for manufacturers. 1260ea1d6981Smrgcase $vendor in 1261ea1d6981Smrg digital*) 1262ea1d6981Smrg vendor=dec 126317ca54c3Smrg ;; 1264ea1d6981Smrg commodore*) 1265ea1d6981Smrg vendor=cbm 126617ca54c3Smrg ;; 126717ca54c3Smrg *) 126817ca54c3Smrg ;; 126917ca54c3Smrgesac 127017ca54c3Smrg 127117ca54c3Smrg# Decode manufacturer-specific aliases for certain operating systems. 127217ca54c3Smrg 1273ea1d6981Smrgif [ x$os != x ] 127417ca54c3Smrgthen 127517ca54c3Smrgcase $os in 1276ea1d6981Smrg # First match some system type aliases that might get confused 1277ea1d6981Smrg # with valid system types. 1278ea1d6981Smrg # solaris* is a basic system type, with this one exception. 1279ea1d6981Smrg auroraux) 1280ea1d6981Smrg os=auroraux 128117ca54c3Smrg ;; 1282ea1d6981Smrg bluegene*) 1283ea1d6981Smrg os=cnk 128417ca54c3Smrg ;; 1285ea1d6981Smrg solaris1 | solaris1.*) 1286ea1d6981Smrg os=`echo $os | sed -e 's|solaris1|sunos4|'` 128717ca54c3Smrg ;; 1288ea1d6981Smrg solaris) 1289ea1d6981Smrg os=solaris2 129017ca54c3Smrg ;; 1291ea1d6981Smrg unixware*) 1292ea1d6981Smrg os=sysv4.2uw 129317ca54c3Smrg ;; 1294ea1d6981Smrg gnu/linux*) 129517ca54c3Smrg os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` 129617ca54c3Smrg ;; 1297ea1d6981Smrg # es1800 is here to avoid being matched by es* (a different OS) 1298ea1d6981Smrg es1800*) 1299ea1d6981Smrg os=ose 1300ea1d6981Smrg ;; 1301ea1d6981Smrg # Some version numbers need modification 1302ea1d6981Smrg chorusos*) 1303ea1d6981Smrg os=chorusos 1304ea1d6981Smrg ;; 1305ea1d6981Smrg isc) 1306ea1d6981Smrg os=isc2.2 1307ea1d6981Smrg ;; 1308ea1d6981Smrg sco6) 1309ea1d6981Smrg os=sco5v6 1310ea1d6981Smrg ;; 1311ea1d6981Smrg sco5) 1312ea1d6981Smrg os=sco3.2v5 1313ea1d6981Smrg ;; 1314ea1d6981Smrg sco4) 1315ea1d6981Smrg os=sco3.2v4 1316ea1d6981Smrg ;; 1317ea1d6981Smrg sco3.2.[4-9]*) 1318ea1d6981Smrg os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` 1319ea1d6981Smrg ;; 1320ea1d6981Smrg sco3.2v[4-9]* | sco5v6*) 1321ea1d6981Smrg # Don't forget version if it is 3.2v4 or newer. 1322ea1d6981Smrg ;; 1323ea1d6981Smrg scout) 1324ea1d6981Smrg # Don't match below 1325ea1d6981Smrg ;; 1326ea1d6981Smrg sco*) 1327ea1d6981Smrg os=sco3.2v2 1328ea1d6981Smrg ;; 1329ea1d6981Smrg psos*) 1330ea1d6981Smrg os=psos 1331ea1d6981Smrg ;; 1332ea1d6981Smrg # Now accept the basic system types. 133317ca54c3Smrg # The portable systems comes first. 1334ea1d6981Smrg # Each alternative MUST end in a * to match a version number. 1335ea1d6981Smrg # sysv* is not here because it comes later, after sysvr4. 1336ea1d6981Smrg gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ 1337ea1d6981Smrg | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ 1338ea1d6981Smrg | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ 1339ea1d6981Smrg | sym* | kopensolaris* | plan9* \ 1340ea1d6981Smrg | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ 1341ea1d6981Smrg | aos* | aros* | cloudabi* | sortix* \ 1342ea1d6981Smrg | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ 1343ea1d6981Smrg | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ 1344ea1d6981Smrg | knetbsd* | mirbsd* | netbsd* \ 1345ea1d6981Smrg | bitrig* | openbsd* | solidbsd* | libertybsd* \ 1346ea1d6981Smrg | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ 1347ea1d6981Smrg | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ 1348ea1d6981Smrg | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ 1349ea1d6981Smrg | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ 1350ea1d6981Smrg | chorusrdb* | cegcc* | glidix* \ 1351ea1d6981Smrg | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ 1352ea1d6981Smrg | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ 1353ea1d6981Smrg | linux-newlib* | linux-musl* | linux-uclibc* \ 1354ea1d6981Smrg | uxpv* | beos* | mpeix* | udk* | moxiebox* \ 1355ea1d6981Smrg | interix* | uwin* | mks* | rhapsody* | darwin* \ 1356ea1d6981Smrg | openstep* | oskit* | conix* | pw32* | nonstopux* \ 1357ea1d6981Smrg | storm-chaos* | tops10* | tenex* | tops20* | its* \ 1358ea1d6981Smrg | os2* | vos* | palmos* | uclinux* | nucleus* \ 1359ea1d6981Smrg | morphos* | superux* | rtmk* | windiss* \ 1360ea1d6981Smrg | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ 1361ea1d6981Smrg | skyos* | haiku* | rdos* | toppers* | drops* | es* \ 1362ea1d6981Smrg | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ 1363ea1d6981Smrg | midnightbsd*) 136417ca54c3Smrg # Remember, each alternative MUST END IN *, to match a version number. 136517ca54c3Smrg ;; 1366ea1d6981Smrg qnx*) 1367ea1d6981Smrg case $cpu in 1368ea1d6981Smrg x86 | i*86) 136917ca54c3Smrg ;; 137017ca54c3Smrg *) 1371ea1d6981Smrg os=nto-$os 137217ca54c3Smrg ;; 137317ca54c3Smrg esac 137417ca54c3Smrg ;; 1375ea1d6981Smrg hiux*) 1376ea1d6981Smrg os=hiuxwe2 137717ca54c3Smrg ;; 1378ea1d6981Smrg nto-qnx*) 137917ca54c3Smrg ;; 1380ea1d6981Smrg nto*) 1381ea1d6981Smrg os=`echo $os | sed -e 's|nto|nto-qnx|'` 138217ca54c3Smrg ;; 1383ea1d6981Smrg sim | xray | os68k* | v88r* \ 1384ea1d6981Smrg | windows* | osx | abug | netware* | os9* \ 1385ea1d6981Smrg | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) 138617ca54c3Smrg ;; 1387ea1d6981Smrg linux-dietlibc) 1388ea1d6981Smrg os=linux-dietlibc 138917ca54c3Smrg ;; 1390ea1d6981Smrg linux*) 139117ca54c3Smrg os=`echo $os | sed -e 's|linux|linux-gnu|'` 139217ca54c3Smrg ;; 1393ea1d6981Smrg lynx*178) 1394ea1d6981Smrg os=lynxos178 139517ca54c3Smrg ;; 1396ea1d6981Smrg lynx*5) 1397ea1d6981Smrg os=lynxos5 139817ca54c3Smrg ;; 1399ea1d6981Smrg lynx*) 1400ea1d6981Smrg os=lynxos 140117ca54c3Smrg ;; 1402ea1d6981Smrg mac*) 1403ea1d6981Smrg os=`echo "$os" | sed -e 's|mac|macos|'` 140417ca54c3Smrg ;; 1405ea1d6981Smrg opened*) 1406ea1d6981Smrg os=openedition 140717ca54c3Smrg ;; 1408ea1d6981Smrg os400*) 1409ea1d6981Smrg os=os400 141017ca54c3Smrg ;; 1411ea1d6981Smrg sunos5*) 1412ea1d6981Smrg os=`echo "$os" | sed -e 's|sunos5|solaris2|'` 141317ca54c3Smrg ;; 1414ea1d6981Smrg sunos6*) 1415ea1d6981Smrg os=`echo "$os" | sed -e 's|sunos6|solaris3|'` 141617ca54c3Smrg ;; 1417ea1d6981Smrg wince*) 1418ea1d6981Smrg os=wince 141917ca54c3Smrg ;; 1420ea1d6981Smrg utek*) 1421ea1d6981Smrg os=bsd 142217ca54c3Smrg ;; 1423ea1d6981Smrg dynix*) 1424ea1d6981Smrg os=bsd 142517ca54c3Smrg ;; 1426ea1d6981Smrg acis*) 1427ea1d6981Smrg os=aos 142817ca54c3Smrg ;; 1429ea1d6981Smrg atheos*) 1430ea1d6981Smrg os=atheos 143117ca54c3Smrg ;; 1432ea1d6981Smrg syllable*) 1433ea1d6981Smrg os=syllable 1434ea1d6981Smrg ;; 1435ea1d6981Smrg 386bsd) 1436ea1d6981Smrg os=bsd 143717ca54c3Smrg ;; 1438ea1d6981Smrg ctix* | uts*) 1439ea1d6981Smrg os=sysv 144017ca54c3Smrg ;; 1441ea1d6981Smrg nova*) 1442ea1d6981Smrg os=rtmk-nova 144317ca54c3Smrg ;; 1444ea1d6981Smrg ns2) 1445ea1d6981Smrg os=nextstep2 1446ea1d6981Smrg ;; 1447ea1d6981Smrg nsk*) 1448ea1d6981Smrg os=nsk 144917ca54c3Smrg ;; 145017ca54c3Smrg # Preserve the version number of sinix5. 1451ea1d6981Smrg sinix5.*) 145217ca54c3Smrg os=`echo $os | sed -e 's|sinix|sysv|'` 145317ca54c3Smrg ;; 1454ea1d6981Smrg sinix*) 1455ea1d6981Smrg os=sysv4 145617ca54c3Smrg ;; 1457ea1d6981Smrg tpf*) 1458ea1d6981Smrg os=tpf 145917ca54c3Smrg ;; 1460ea1d6981Smrg triton*) 1461ea1d6981Smrg os=sysv3 146217ca54c3Smrg ;; 1463ea1d6981Smrg oss*) 1464ea1d6981Smrg os=sysv3 146517ca54c3Smrg ;; 1466ea1d6981Smrg svr4*) 1467ea1d6981Smrg os=sysv4 146817ca54c3Smrg ;; 1469ea1d6981Smrg svr3) 1470ea1d6981Smrg os=sysv3 147117ca54c3Smrg ;; 1472ea1d6981Smrg sysvr4) 1473ea1d6981Smrg os=sysv4 147417ca54c3Smrg ;; 1475ea1d6981Smrg # This must come after sysvr4. 1476ea1d6981Smrg sysv*) 147717ca54c3Smrg ;; 1478ea1d6981Smrg ose*) 1479ea1d6981Smrg os=ose 148017ca54c3Smrg ;; 1481ea1d6981Smrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 1482ea1d6981Smrg os=mint 148317ca54c3Smrg ;; 1484ea1d6981Smrg zvmoe) 1485ea1d6981Smrg os=zvmoe 148617ca54c3Smrg ;; 1487ea1d6981Smrg dicos*) 1488ea1d6981Smrg os=dicos 148917ca54c3Smrg ;; 1490ea1d6981Smrg pikeos*) 1491ea1d6981Smrg # Until real need of OS specific support for 1492ea1d6981Smrg # particular features comes up, bare metal 1493ea1d6981Smrg # configurations are quite functional. 1494ea1d6981Smrg case $cpu in 1495ea1d6981Smrg arm*) 1496ea1d6981Smrg os=eabi 1497ea1d6981Smrg ;; 1498ea1d6981Smrg *) 1499ea1d6981Smrg os=elf 1500ea1d6981Smrg ;; 1501ea1d6981Smrg esac 150217ca54c3Smrg ;; 1503ea1d6981Smrg nacl*) 150417ca54c3Smrg ;; 1505ea1d6981Smrg ios) 150617ca54c3Smrg ;; 1507ea1d6981Smrg none) 150817ca54c3Smrg ;; 1509ea1d6981Smrg *-eabi) 151017ca54c3Smrg ;; 151117ca54c3Smrg *) 1512ea1d6981Smrg echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 151317ca54c3Smrg exit 1 151417ca54c3Smrg ;; 151517ca54c3Smrgesac 151617ca54c3Smrgelse 151717ca54c3Smrg 151817ca54c3Smrg# Here we handle the default operating systems that come with various machines. 151917ca54c3Smrg# The value should be what the vendor currently ships out the door with their 152017ca54c3Smrg# machine or put another way, the most popular os provided with the machine. 152117ca54c3Smrg 152217ca54c3Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say, 152317ca54c3Smrg# "-sun"), then you have to tell the case statement up towards the top 152417ca54c3Smrg# that MANUFACTURER isn't an operating system. Otherwise, code above 152517ca54c3Smrg# will signal an error saying that MANUFACTURER isn't an operating 152617ca54c3Smrg# system, and we'll never get to this point. 152717ca54c3Smrg 1528ea1d6981Smrgcase $cpu-$vendor in 152917ca54c3Smrg score-*) 1530ea1d6981Smrg os=elf 153117ca54c3Smrg ;; 153217ca54c3Smrg spu-*) 1533ea1d6981Smrg os=elf 153417ca54c3Smrg ;; 153517ca54c3Smrg *-acorn) 1536ea1d6981Smrg os=riscix1.2 153717ca54c3Smrg ;; 153817ca54c3Smrg arm*-rebel) 1539ea1d6981Smrg os=linux 154017ca54c3Smrg ;; 154117ca54c3Smrg arm*-semi) 1542ea1d6981Smrg os=aout 154317ca54c3Smrg ;; 154417ca54c3Smrg c4x-* | tic4x-*) 1545ea1d6981Smrg os=coff 154617ca54c3Smrg ;; 154717ca54c3Smrg c8051-*) 1548ea1d6981Smrg os=elf 1549ea1d6981Smrg ;; 1550ea1d6981Smrg clipper-intergraph) 1551ea1d6981Smrg os=clix 155217ca54c3Smrg ;; 155317ca54c3Smrg hexagon-*) 1554ea1d6981Smrg os=elf 155517ca54c3Smrg ;; 155617ca54c3Smrg tic54x-*) 1557ea1d6981Smrg os=coff 155817ca54c3Smrg ;; 155917ca54c3Smrg tic55x-*) 1560ea1d6981Smrg os=coff 156117ca54c3Smrg ;; 156217ca54c3Smrg tic6x-*) 1563ea1d6981Smrg os=coff 156417ca54c3Smrg ;; 156517ca54c3Smrg # This must come before the *-dec entry. 156617ca54c3Smrg pdp10-*) 1567ea1d6981Smrg os=tops20 156817ca54c3Smrg ;; 156917ca54c3Smrg pdp11-*) 1570ea1d6981Smrg os=none 157117ca54c3Smrg ;; 157217ca54c3Smrg *-dec | vax-*) 1573ea1d6981Smrg os=ultrix4.2 157417ca54c3Smrg ;; 157517ca54c3Smrg m68*-apollo) 1576ea1d6981Smrg os=domain 157717ca54c3Smrg ;; 157817ca54c3Smrg i386-sun) 1579ea1d6981Smrg os=sunos4.0.2 158017ca54c3Smrg ;; 158117ca54c3Smrg m68000-sun) 1582ea1d6981Smrg os=sunos3 158317ca54c3Smrg ;; 158417ca54c3Smrg m68*-cisco) 1585ea1d6981Smrg os=aout 158617ca54c3Smrg ;; 158717ca54c3Smrg mep-*) 1588ea1d6981Smrg os=elf 158917ca54c3Smrg ;; 159017ca54c3Smrg mips*-cisco) 1591ea1d6981Smrg os=elf 159217ca54c3Smrg ;; 159317ca54c3Smrg mips*-*) 1594ea1d6981Smrg os=elf 159517ca54c3Smrg ;; 159617ca54c3Smrg or32-*) 1597ea1d6981Smrg os=coff 159817ca54c3Smrg ;; 159917ca54c3Smrg *-tti) # must be before sparc entry or we get the wrong os. 1600ea1d6981Smrg os=sysv3 160117ca54c3Smrg ;; 160217ca54c3Smrg sparc-* | *-sun) 1603ea1d6981Smrg os=sunos4.1.1 160417ca54c3Smrg ;; 160517ca54c3Smrg pru-*) 1606ea1d6981Smrg os=elf 160717ca54c3Smrg ;; 160817ca54c3Smrg *-be) 1609ea1d6981Smrg os=beos 161017ca54c3Smrg ;; 161117ca54c3Smrg *-ibm) 1612ea1d6981Smrg os=aix 161317ca54c3Smrg ;; 161417ca54c3Smrg *-knuth) 1615ea1d6981Smrg os=mmixware 161617ca54c3Smrg ;; 161717ca54c3Smrg *-wec) 1618ea1d6981Smrg os=proelf 161917ca54c3Smrg ;; 162017ca54c3Smrg *-winbond) 1621ea1d6981Smrg os=proelf 162217ca54c3Smrg ;; 162317ca54c3Smrg *-oki) 1624ea1d6981Smrg os=proelf 162517ca54c3Smrg ;; 162617ca54c3Smrg *-hp) 1627ea1d6981Smrg os=hpux 162817ca54c3Smrg ;; 162917ca54c3Smrg *-hitachi) 1630ea1d6981Smrg os=hiux 163117ca54c3Smrg ;; 163217ca54c3Smrg i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 1633ea1d6981Smrg os=sysv 163417ca54c3Smrg ;; 163517ca54c3Smrg *-cbm) 1636ea1d6981Smrg os=amigaos 163717ca54c3Smrg ;; 163817ca54c3Smrg *-dg) 1639ea1d6981Smrg os=dgux 164017ca54c3Smrg ;; 164117ca54c3Smrg *-dolphin) 1642ea1d6981Smrg os=sysv3 164317ca54c3Smrg ;; 164417ca54c3Smrg m68k-ccur) 1645ea1d6981Smrg os=rtu 164617ca54c3Smrg ;; 164717ca54c3Smrg m88k-omron*) 1648ea1d6981Smrg os=luna 164917ca54c3Smrg ;; 1650ea1d6981Smrg *-next) 1651ea1d6981Smrg os=nextstep 165217ca54c3Smrg ;; 165317ca54c3Smrg *-sequent) 1654ea1d6981Smrg os=ptx 165517ca54c3Smrg ;; 165617ca54c3Smrg *-crds) 1657ea1d6981Smrg os=unos 165817ca54c3Smrg ;; 165917ca54c3Smrg *-ns) 1660ea1d6981Smrg os=genix 166117ca54c3Smrg ;; 166217ca54c3Smrg i370-*) 1663ea1d6981Smrg os=mvs 166417ca54c3Smrg ;; 166517ca54c3Smrg *-gould) 1666ea1d6981Smrg os=sysv 166717ca54c3Smrg ;; 166817ca54c3Smrg *-highlevel) 1669ea1d6981Smrg os=bsd 167017ca54c3Smrg ;; 167117ca54c3Smrg *-encore) 1672ea1d6981Smrg os=bsd 167317ca54c3Smrg ;; 167417ca54c3Smrg *-sgi) 1675ea1d6981Smrg os=irix 167617ca54c3Smrg ;; 167717ca54c3Smrg *-siemens) 1678ea1d6981Smrg os=sysv4 167917ca54c3Smrg ;; 168017ca54c3Smrg *-masscomp) 1681ea1d6981Smrg os=rtu 168217ca54c3Smrg ;; 168317ca54c3Smrg f30[01]-fujitsu | f700-fujitsu) 1684ea1d6981Smrg os=uxpv 168517ca54c3Smrg ;; 168617ca54c3Smrg *-rom68k) 1687ea1d6981Smrg os=coff 168817ca54c3Smrg ;; 168917ca54c3Smrg *-*bug) 1690ea1d6981Smrg os=coff 169117ca54c3Smrg ;; 169217ca54c3Smrg *-apple) 1693ea1d6981Smrg os=macos 169417ca54c3Smrg ;; 169517ca54c3Smrg *-atari*) 1696ea1d6981Smrg os=mint 1697ea1d6981Smrg ;; 1698ea1d6981Smrg *-wrs) 1699ea1d6981Smrg os=vxworks 170017ca54c3Smrg ;; 170117ca54c3Smrg *) 1702ea1d6981Smrg os=none 170317ca54c3Smrg ;; 170417ca54c3Smrgesac 170517ca54c3Smrgfi 170617ca54c3Smrg 170717ca54c3Smrg# Here we handle the case where we know the os, and the CPU type, but not the 170817ca54c3Smrg# manufacturer. We pick the logical manufacturer. 1709ea1d6981Smrgcase $vendor in 1710ea1d6981Smrg unknown) 171117ca54c3Smrg case $os in 1712ea1d6981Smrg riscix*) 171317ca54c3Smrg vendor=acorn 171417ca54c3Smrg ;; 1715ea1d6981Smrg sunos*) 171617ca54c3Smrg vendor=sun 171717ca54c3Smrg ;; 1718ea1d6981Smrg cnk*|-aix*) 171917ca54c3Smrg vendor=ibm 172017ca54c3Smrg ;; 1721ea1d6981Smrg beos*) 172217ca54c3Smrg vendor=be 172317ca54c3Smrg ;; 1724ea1d6981Smrg hpux*) 172517ca54c3Smrg vendor=hp 172617ca54c3Smrg ;; 1727ea1d6981Smrg mpeix*) 172817ca54c3Smrg vendor=hp 172917ca54c3Smrg ;; 1730ea1d6981Smrg hiux*) 173117ca54c3Smrg vendor=hitachi 173217ca54c3Smrg ;; 1733ea1d6981Smrg unos*) 173417ca54c3Smrg vendor=crds 173517ca54c3Smrg ;; 1736ea1d6981Smrg dgux*) 173717ca54c3Smrg vendor=dg 173817ca54c3Smrg ;; 1739ea1d6981Smrg luna*) 174017ca54c3Smrg vendor=omron 174117ca54c3Smrg ;; 1742ea1d6981Smrg genix*) 174317ca54c3Smrg vendor=ns 174417ca54c3Smrg ;; 1745ea1d6981Smrg clix*) 1746ea1d6981Smrg vendor=intergraph 1747ea1d6981Smrg ;; 1748ea1d6981Smrg mvs* | opened*) 174917ca54c3Smrg vendor=ibm 175017ca54c3Smrg ;; 1751ea1d6981Smrg os400*) 175217ca54c3Smrg vendor=ibm 175317ca54c3Smrg ;; 1754ea1d6981Smrg ptx*) 175517ca54c3Smrg vendor=sequent 175617ca54c3Smrg ;; 1757ea1d6981Smrg tpf*) 175817ca54c3Smrg vendor=ibm 175917ca54c3Smrg ;; 1760ea1d6981Smrg vxsim* | vxworks* | windiss*) 176117ca54c3Smrg vendor=wrs 176217ca54c3Smrg ;; 1763ea1d6981Smrg aux*) 176417ca54c3Smrg vendor=apple 176517ca54c3Smrg ;; 1766ea1d6981Smrg hms*) 176717ca54c3Smrg vendor=hitachi 176817ca54c3Smrg ;; 1769ea1d6981Smrg mpw* | macos*) 177017ca54c3Smrg vendor=apple 177117ca54c3Smrg ;; 1772ea1d6981Smrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 177317ca54c3Smrg vendor=atari 177417ca54c3Smrg ;; 1775ea1d6981Smrg vos*) 177617ca54c3Smrg vendor=stratus 177717ca54c3Smrg ;; 177817ca54c3Smrg esac 177917ca54c3Smrg ;; 178017ca54c3Smrgesac 178117ca54c3Smrg 1782ea1d6981Smrgecho "$cpu-$vendor-$os" 178317ca54c3Smrgexit 178417ca54c3Smrg 178517ca54c3Smrg# Local variables: 1786ea1d6981Smrg# eval: (add-hook 'before-save-hook 'time-stamp) 178717ca54c3Smrg# time-stamp-start: "timestamp='" 178817ca54c3Smrg# time-stamp-format: "%:y-%02m-%02d" 178917ca54c3Smrg# time-stamp-end: "'" 179017ca54c3Smrg# End: 1791