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