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