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