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