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