config.sub revision 4901b09e
1145b7b3cSmrg#! /bin/sh 2145b7b3cSmrg# Configuration validation subroutine script. 34901b09eSmrg# Copyright 1992-2023 Free Software Foundation, Inc. 4145b7b3cSmrg 5da2e2ef6Smrg# shellcheck disable=SC2006,SC2268 # see below for rationale 6da2e2ef6Smrg 74901b09eSmrgtimestamp='2023-01-21' 8145b7b3cSmrg 9b7d26471Smrg# This file is free software; you can redistribute it and/or modify it 10b7d26471Smrg# under the terms of the GNU General Public License as published by 114901b09eSmrg# the Free Software Foundation, either version 3 of the License, or 12145b7b3cSmrg# (at your option) any later version. 13145b7b3cSmrg# 14b7d26471Smrg# This program is distributed in the hope that it will be useful, but 15b7d26471Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of 16b7d26471Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17b7d26471Smrg# General Public License for more details. 18145b7b3cSmrg# 19145b7b3cSmrg# You should have received a copy of the GNU General Public License 20b7d26471Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>. 21145b7b3cSmrg# 22145b7b3cSmrg# As a special exception to the GNU General Public License, if you 23145b7b3cSmrg# distribute this file as part of a program that contains a 24145b7b3cSmrg# configuration script generated by Autoconf, you may include it under 25b7d26471Smrg# the same distribution terms that you use for the rest of that 26b7d26471Smrg# program. This Exception is an additional permission under section 7 27b7d26471Smrg# of the GNU General Public License, version 3 ("GPLv3"). 28145b7b3cSmrg 29145b7b3cSmrg 30b7d26471Smrg# Please send patches to <config-patches@gnu.org>. 31145b7b3cSmrg# 32145b7b3cSmrg# Configuration subroutine to validate and canonicalize a configuration type. 33145b7b3cSmrg# Supply the specified configuration type as an argument. 34145b7b3cSmrg# If it is invalid, we print an error message on stderr and exit with code 1. 35145b7b3cSmrg# Otherwise, we print the canonical config type on stdout and succeed. 36145b7b3cSmrg 375ffd6003Smrg# You can get the latest version of this script from: 38da2e2ef6Smrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub 395ffd6003Smrg 40145b7b3cSmrg# This file is supposed to be the same for all GNU packages 41145b7b3cSmrg# and recognize all the CPU types, system types and aliases 42145b7b3cSmrg# that are meaningful with *any* GNU software. 43145b7b3cSmrg# Each package is responsible for reporting which valid configurations 44145b7b3cSmrg# it does not support. The user should be able to distinguish 45145b7b3cSmrg# a failure to support a valid configuration from a meaningless 46145b7b3cSmrg# configuration. 47145b7b3cSmrg 48145b7b3cSmrg# The goal of this file is to map all the various variations of a given 49145b7b3cSmrg# machine specification into a single specification in the form: 50145b7b3cSmrg# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 51145b7b3cSmrg# or in some cases, the newer four-part form: 52145b7b3cSmrg# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 53145b7b3cSmrg# It is wrong to echo any other type of specification. 54145b7b3cSmrg 55da2e2ef6Smrg# The "shellcheck disable" line above the timestamp inhibits complaints 56da2e2ef6Smrg# about features and limitations of the classic Bourne shell that were 57da2e2ef6Smrg# superseded or lifted in POSIX. However, this script identifies a wide 58da2e2ef6Smrg# variety of pre-POSIX systems that do not have POSIX shells at all, and 59da2e2ef6Smrg# even some reasonably current systems (Solaris 10 as case-in-point) still 60da2e2ef6Smrg# have a pre-POSIX /bin/sh. 61da2e2ef6Smrg 62145b7b3cSmrgme=`echo "$0" | sed -e 's,.*/,,'` 63145b7b3cSmrg 64145b7b3cSmrgusage="\ 65b7d26471SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 66145b7b3cSmrg 67145b7b3cSmrgCanonicalize a configuration name. 68145b7b3cSmrg 69b7d26471SmrgOptions: 70145b7b3cSmrg -h, --help print this help, then exit 71145b7b3cSmrg -t, --time-stamp print date of last modification, then exit 72145b7b3cSmrg -v, --version print version number, then exit 73145b7b3cSmrg 74145b7b3cSmrgReport bugs and patches to <config-patches@gnu.org>." 75145b7b3cSmrg 76145b7b3cSmrgversion="\ 77145b7b3cSmrgGNU config.sub ($timestamp) 78145b7b3cSmrg 794901b09eSmrgCopyright 1992-2023 Free Software Foundation, Inc. 80145b7b3cSmrg 81145b7b3cSmrgThis is free software; see the source for copying conditions. There is NO 82145b7b3cSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 83145b7b3cSmrg 84145b7b3cSmrghelp=" 85145b7b3cSmrgTry \`$me --help' for more information." 86145b7b3cSmrg 87145b7b3cSmrg# Parse command line 88145b7b3cSmrgwhile test $# -gt 0 ; do 89145b7b3cSmrg case $1 in 90145b7b3cSmrg --time-stamp | --time* | -t ) 91145b7b3cSmrg echo "$timestamp" ; exit ;; 92145b7b3cSmrg --version | -v ) 93145b7b3cSmrg echo "$version" ; exit ;; 94145b7b3cSmrg --help | --h* | -h ) 95145b7b3cSmrg echo "$usage"; exit ;; 96145b7b3cSmrg -- ) # Stop option processing 97145b7b3cSmrg shift; break ;; 98145b7b3cSmrg - ) # Use stdin as input. 99145b7b3cSmrg break ;; 100145b7b3cSmrg -* ) 101da2e2ef6Smrg echo "$me: invalid option $1$help" >&2 102145b7b3cSmrg exit 1 ;; 103145b7b3cSmrg 104145b7b3cSmrg *local*) 105145b7b3cSmrg # First pass through any local machine types. 106b7d26471Smrg echo "$1" 107145b7b3cSmrg exit ;; 108145b7b3cSmrg 109145b7b3cSmrg * ) 110145b7b3cSmrg break ;; 111145b7b3cSmrg esac 112145b7b3cSmrgdone 113145b7b3cSmrg 114145b7b3cSmrgcase $# in 115145b7b3cSmrg 0) echo "$me: missing argument$help" >&2 116145b7b3cSmrg exit 1;; 117145b7b3cSmrg 1) ;; 118145b7b3cSmrg *) echo "$me: too many arguments$help" >&2 119145b7b3cSmrg exit 1;; 120145b7b3cSmrgesac 121145b7b3cSmrg 122da2e2ef6Smrg# Split fields of configuration type 123da2e2ef6Smrg# shellcheck disable=SC2162 124da2e2ef6Smrgsaved_IFS=$IFS 125da2e2ef6SmrgIFS="-" read field1 field2 field3 field4 <<EOF 126da2e2ef6Smrg$1 127da2e2ef6SmrgEOF 128da2e2ef6SmrgIFS=$saved_IFS 129145b7b3cSmrg 130da2e2ef6Smrg# Separate into logical components for further validation 131da2e2ef6Smrgcase $1 in 132da2e2ef6Smrg *-*-*-*-*) 133da2e2ef6Smrg echo Invalid configuration \`"$1"\': more than four components >&2 134da2e2ef6Smrg exit 1 135145b7b3cSmrg ;; 136da2e2ef6Smrg *-*-*-*) 137da2e2ef6Smrg basic_machine=$field1-$field2 138da2e2ef6Smrg basic_os=$field3-$field4 139145b7b3cSmrg ;; 140da2e2ef6Smrg *-*-*) 141da2e2ef6Smrg # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two 142da2e2ef6Smrg # parts 143da2e2ef6Smrg maybe_os=$field2-$field3 144da2e2ef6Smrg case $maybe_os in 145da2e2ef6Smrg nto-qnx* | linux-* | uclinux-uclibc* \ 146da2e2ef6Smrg | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ 147da2e2ef6Smrg | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ 1484901b09eSmrg | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*) 149da2e2ef6Smrg basic_machine=$field1 150da2e2ef6Smrg basic_os=$maybe_os 151da2e2ef6Smrg ;; 152da2e2ef6Smrg android-linux) 153da2e2ef6Smrg basic_machine=$field1-unknown 154da2e2ef6Smrg basic_os=linux-android 155da2e2ef6Smrg ;; 156da2e2ef6Smrg *) 157da2e2ef6Smrg basic_machine=$field1-$field2 158da2e2ef6Smrg basic_os=$field3 159da2e2ef6Smrg ;; 160da2e2ef6Smrg esac 161145b7b3cSmrg ;; 162da2e2ef6Smrg *-*) 163da2e2ef6Smrg # A lone config we happen to match not fitting any pattern 164da2e2ef6Smrg case $field1-$field2 in 165da2e2ef6Smrg decstation-3100) 166da2e2ef6Smrg basic_machine=mips-dec 167da2e2ef6Smrg basic_os= 168da2e2ef6Smrg ;; 169da2e2ef6Smrg *-*) 170da2e2ef6Smrg # Second component is usually, but not always the OS 171da2e2ef6Smrg case $field2 in 172da2e2ef6Smrg # Prevent following clause from handling this valid os 173da2e2ef6Smrg sun*os*) 174da2e2ef6Smrg basic_machine=$field1 175da2e2ef6Smrg basic_os=$field2 176da2e2ef6Smrg ;; 177da2e2ef6Smrg zephyr*) 178da2e2ef6Smrg basic_machine=$field1-unknown 179da2e2ef6Smrg basic_os=$field2 180da2e2ef6Smrg ;; 181da2e2ef6Smrg # Manufacturers 182da2e2ef6Smrg dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ 183da2e2ef6Smrg | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ 184da2e2ef6Smrg | unicom* | ibm* | next | hp | isi* | apollo | altos* \ 185da2e2ef6Smrg | convergent* | ncr* | news | 32* | 3600* | 3100* \ 186da2e2ef6Smrg | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ 187da2e2ef6Smrg | ultra | tti* | harris | dolphin | highlevel | gould \ 188da2e2ef6Smrg | cbm | ns | masscomp | apple | axis | knuth | cray \ 189da2e2ef6Smrg | microblaze* | sim | cisco \ 190da2e2ef6Smrg | oki | wec | wrs | winbond) 191da2e2ef6Smrg basic_machine=$field1-$field2 192da2e2ef6Smrg basic_os= 193da2e2ef6Smrg ;; 194da2e2ef6Smrg *) 195da2e2ef6Smrg basic_machine=$field1 196da2e2ef6Smrg basic_os=$field2 197da2e2ef6Smrg ;; 198da2e2ef6Smrg esac 199da2e2ef6Smrg ;; 200da2e2ef6Smrg esac 201145b7b3cSmrg ;; 202da2e2ef6Smrg *) 203da2e2ef6Smrg # Convert single-component short-hands not valid as part of 204da2e2ef6Smrg # multi-component configurations. 205da2e2ef6Smrg case $field1 in 206da2e2ef6Smrg 386bsd) 207da2e2ef6Smrg basic_machine=i386-pc 208da2e2ef6Smrg basic_os=bsd 209da2e2ef6Smrg ;; 210da2e2ef6Smrg a29khif) 211da2e2ef6Smrg basic_machine=a29k-amd 212da2e2ef6Smrg basic_os=udi 213da2e2ef6Smrg ;; 214da2e2ef6Smrg adobe68k) 215da2e2ef6Smrg basic_machine=m68010-adobe 216da2e2ef6Smrg basic_os=scout 217da2e2ef6Smrg ;; 218da2e2ef6Smrg alliant) 219da2e2ef6Smrg basic_machine=fx80-alliant 220da2e2ef6Smrg basic_os= 221da2e2ef6Smrg ;; 222da2e2ef6Smrg altos | altos3068) 223da2e2ef6Smrg basic_machine=m68k-altos 224da2e2ef6Smrg basic_os= 225da2e2ef6Smrg ;; 226da2e2ef6Smrg am29k) 227da2e2ef6Smrg basic_machine=a29k-none 228da2e2ef6Smrg basic_os=bsd 229da2e2ef6Smrg ;; 230da2e2ef6Smrg amdahl) 231da2e2ef6Smrg basic_machine=580-amdahl 232da2e2ef6Smrg basic_os=sysv 233da2e2ef6Smrg ;; 234da2e2ef6Smrg amiga) 235da2e2ef6Smrg basic_machine=m68k-unknown 236da2e2ef6Smrg basic_os= 237da2e2ef6Smrg ;; 238da2e2ef6Smrg amigaos | amigados) 239da2e2ef6Smrg basic_machine=m68k-unknown 240da2e2ef6Smrg basic_os=amigaos 241da2e2ef6Smrg ;; 242da2e2ef6Smrg amigaunix | amix) 243da2e2ef6Smrg basic_machine=m68k-unknown 244da2e2ef6Smrg basic_os=sysv4 245da2e2ef6Smrg ;; 246da2e2ef6Smrg apollo68) 247da2e2ef6Smrg basic_machine=m68k-apollo 248da2e2ef6Smrg basic_os=sysv 249da2e2ef6Smrg ;; 250da2e2ef6Smrg apollo68bsd) 251da2e2ef6Smrg basic_machine=m68k-apollo 252da2e2ef6Smrg basic_os=bsd 253da2e2ef6Smrg ;; 254da2e2ef6Smrg aros) 255da2e2ef6Smrg basic_machine=i386-pc 256da2e2ef6Smrg basic_os=aros 257da2e2ef6Smrg ;; 258da2e2ef6Smrg aux) 259da2e2ef6Smrg basic_machine=m68k-apple 260da2e2ef6Smrg basic_os=aux 261da2e2ef6Smrg ;; 262da2e2ef6Smrg balance) 263da2e2ef6Smrg basic_machine=ns32k-sequent 264da2e2ef6Smrg basic_os=dynix 265da2e2ef6Smrg ;; 266da2e2ef6Smrg blackfin) 267da2e2ef6Smrg basic_machine=bfin-unknown 268da2e2ef6Smrg basic_os=linux 269da2e2ef6Smrg ;; 270da2e2ef6Smrg cegcc) 271da2e2ef6Smrg basic_machine=arm-unknown 272da2e2ef6Smrg basic_os=cegcc 273da2e2ef6Smrg ;; 274da2e2ef6Smrg convex-c1) 275da2e2ef6Smrg basic_machine=c1-convex 276da2e2ef6Smrg basic_os=bsd 277da2e2ef6Smrg ;; 278da2e2ef6Smrg convex-c2) 279da2e2ef6Smrg basic_machine=c2-convex 280da2e2ef6Smrg basic_os=bsd 281da2e2ef6Smrg ;; 282da2e2ef6Smrg convex-c32) 283da2e2ef6Smrg basic_machine=c32-convex 284da2e2ef6Smrg basic_os=bsd 285da2e2ef6Smrg ;; 286da2e2ef6Smrg convex-c34) 287da2e2ef6Smrg basic_machine=c34-convex 288da2e2ef6Smrg basic_os=bsd 289da2e2ef6Smrg ;; 290da2e2ef6Smrg convex-c38) 291da2e2ef6Smrg basic_machine=c38-convex 292da2e2ef6Smrg basic_os=bsd 293da2e2ef6Smrg ;; 294da2e2ef6Smrg cray) 295da2e2ef6Smrg basic_machine=j90-cray 296da2e2ef6Smrg basic_os=unicos 297da2e2ef6Smrg ;; 298da2e2ef6Smrg crds | unos) 299da2e2ef6Smrg basic_machine=m68k-crds 300da2e2ef6Smrg basic_os= 301da2e2ef6Smrg ;; 302da2e2ef6Smrg da30) 303da2e2ef6Smrg basic_machine=m68k-da30 304da2e2ef6Smrg basic_os= 305da2e2ef6Smrg ;; 306da2e2ef6Smrg decstation | pmax | pmin | dec3100 | decstatn) 307da2e2ef6Smrg basic_machine=mips-dec 308da2e2ef6Smrg basic_os= 309da2e2ef6Smrg ;; 310da2e2ef6Smrg delta88) 311da2e2ef6Smrg basic_machine=m88k-motorola 312da2e2ef6Smrg basic_os=sysv3 313da2e2ef6Smrg ;; 314da2e2ef6Smrg dicos) 315da2e2ef6Smrg basic_machine=i686-pc 316da2e2ef6Smrg basic_os=dicos 317da2e2ef6Smrg ;; 318da2e2ef6Smrg djgpp) 319da2e2ef6Smrg basic_machine=i586-pc 320da2e2ef6Smrg basic_os=msdosdjgpp 321da2e2ef6Smrg ;; 322da2e2ef6Smrg ebmon29k) 323da2e2ef6Smrg basic_machine=a29k-amd 324da2e2ef6Smrg basic_os=ebmon 325da2e2ef6Smrg ;; 326da2e2ef6Smrg es1800 | OSE68k | ose68k | ose | OSE) 327da2e2ef6Smrg basic_machine=m68k-ericsson 328da2e2ef6Smrg basic_os=ose 329da2e2ef6Smrg ;; 330da2e2ef6Smrg gmicro) 331da2e2ef6Smrg basic_machine=tron-gmicro 332da2e2ef6Smrg basic_os=sysv 333da2e2ef6Smrg ;; 334da2e2ef6Smrg go32) 335da2e2ef6Smrg basic_machine=i386-pc 336da2e2ef6Smrg basic_os=go32 337da2e2ef6Smrg ;; 338da2e2ef6Smrg h8300hms) 339da2e2ef6Smrg basic_machine=h8300-hitachi 340da2e2ef6Smrg basic_os=hms 341da2e2ef6Smrg ;; 342da2e2ef6Smrg h8300xray) 343da2e2ef6Smrg basic_machine=h8300-hitachi 344da2e2ef6Smrg basic_os=xray 345da2e2ef6Smrg ;; 346da2e2ef6Smrg h8500hms) 347da2e2ef6Smrg basic_machine=h8500-hitachi 348da2e2ef6Smrg basic_os=hms 349da2e2ef6Smrg ;; 350da2e2ef6Smrg harris) 351da2e2ef6Smrg basic_machine=m88k-harris 352da2e2ef6Smrg basic_os=sysv3 353da2e2ef6Smrg ;; 354da2e2ef6Smrg hp300 | hp300hpux) 355da2e2ef6Smrg basic_machine=m68k-hp 356da2e2ef6Smrg basic_os=hpux 357da2e2ef6Smrg ;; 358da2e2ef6Smrg hp300bsd) 359da2e2ef6Smrg basic_machine=m68k-hp 360da2e2ef6Smrg basic_os=bsd 361da2e2ef6Smrg ;; 362da2e2ef6Smrg hppaosf) 363da2e2ef6Smrg basic_machine=hppa1.1-hp 364da2e2ef6Smrg basic_os=osf 365da2e2ef6Smrg ;; 366da2e2ef6Smrg hppro) 367da2e2ef6Smrg basic_machine=hppa1.1-hp 368da2e2ef6Smrg basic_os=proelf 369da2e2ef6Smrg ;; 370da2e2ef6Smrg i386mach) 371da2e2ef6Smrg basic_machine=i386-mach 372da2e2ef6Smrg basic_os=mach 373da2e2ef6Smrg ;; 374da2e2ef6Smrg isi68 | isi) 375da2e2ef6Smrg basic_machine=m68k-isi 376da2e2ef6Smrg basic_os=sysv 377da2e2ef6Smrg ;; 378da2e2ef6Smrg m68knommu) 379da2e2ef6Smrg basic_machine=m68k-unknown 380da2e2ef6Smrg basic_os=linux 381da2e2ef6Smrg ;; 382da2e2ef6Smrg magnum | m3230) 383da2e2ef6Smrg basic_machine=mips-mips 384da2e2ef6Smrg basic_os=sysv 385da2e2ef6Smrg ;; 386da2e2ef6Smrg merlin) 387da2e2ef6Smrg basic_machine=ns32k-utek 388da2e2ef6Smrg basic_os=sysv 389da2e2ef6Smrg ;; 390da2e2ef6Smrg mingw64) 391da2e2ef6Smrg basic_machine=x86_64-pc 392da2e2ef6Smrg basic_os=mingw64 393da2e2ef6Smrg ;; 394da2e2ef6Smrg mingw32) 395da2e2ef6Smrg basic_machine=i686-pc 396da2e2ef6Smrg basic_os=mingw32 397da2e2ef6Smrg ;; 398da2e2ef6Smrg mingw32ce) 399da2e2ef6Smrg basic_machine=arm-unknown 400da2e2ef6Smrg basic_os=mingw32ce 401da2e2ef6Smrg ;; 402da2e2ef6Smrg monitor) 403da2e2ef6Smrg basic_machine=m68k-rom68k 404da2e2ef6Smrg basic_os=coff 405da2e2ef6Smrg ;; 406da2e2ef6Smrg morphos) 407da2e2ef6Smrg basic_machine=powerpc-unknown 408da2e2ef6Smrg basic_os=morphos 409da2e2ef6Smrg ;; 410da2e2ef6Smrg moxiebox) 411da2e2ef6Smrg basic_machine=moxie-unknown 412da2e2ef6Smrg basic_os=moxiebox 413da2e2ef6Smrg ;; 414da2e2ef6Smrg msdos) 415da2e2ef6Smrg basic_machine=i386-pc 416da2e2ef6Smrg basic_os=msdos 417da2e2ef6Smrg ;; 418da2e2ef6Smrg msys) 419da2e2ef6Smrg basic_machine=i686-pc 420da2e2ef6Smrg basic_os=msys 421da2e2ef6Smrg ;; 422da2e2ef6Smrg mvs) 423da2e2ef6Smrg basic_machine=i370-ibm 424da2e2ef6Smrg basic_os=mvs 425da2e2ef6Smrg ;; 426da2e2ef6Smrg nacl) 427da2e2ef6Smrg basic_machine=le32-unknown 428da2e2ef6Smrg basic_os=nacl 429da2e2ef6Smrg ;; 430da2e2ef6Smrg ncr3000) 431da2e2ef6Smrg basic_machine=i486-ncr 432da2e2ef6Smrg basic_os=sysv4 433da2e2ef6Smrg ;; 434da2e2ef6Smrg netbsd386) 435da2e2ef6Smrg basic_machine=i386-pc 436da2e2ef6Smrg basic_os=netbsd 437da2e2ef6Smrg ;; 438da2e2ef6Smrg netwinder) 439da2e2ef6Smrg basic_machine=armv4l-rebel 440da2e2ef6Smrg basic_os=linux 441da2e2ef6Smrg ;; 442da2e2ef6Smrg news | news700 | news800 | news900) 443da2e2ef6Smrg basic_machine=m68k-sony 444da2e2ef6Smrg basic_os=newsos 445da2e2ef6Smrg ;; 446da2e2ef6Smrg news1000) 447da2e2ef6Smrg basic_machine=m68030-sony 448da2e2ef6Smrg basic_os=newsos 449da2e2ef6Smrg ;; 450da2e2ef6Smrg necv70) 451da2e2ef6Smrg basic_machine=v70-nec 452da2e2ef6Smrg basic_os=sysv 453da2e2ef6Smrg ;; 454da2e2ef6Smrg nh3000) 455da2e2ef6Smrg basic_machine=m68k-harris 456da2e2ef6Smrg basic_os=cxux 457da2e2ef6Smrg ;; 458da2e2ef6Smrg nh[45]000) 459da2e2ef6Smrg basic_machine=m88k-harris 460da2e2ef6Smrg basic_os=cxux 461da2e2ef6Smrg ;; 462da2e2ef6Smrg nindy960) 463da2e2ef6Smrg basic_machine=i960-intel 464da2e2ef6Smrg basic_os=nindy 465da2e2ef6Smrg ;; 466da2e2ef6Smrg mon960) 467da2e2ef6Smrg basic_machine=i960-intel 468da2e2ef6Smrg basic_os=mon960 469da2e2ef6Smrg ;; 470da2e2ef6Smrg nonstopux) 471da2e2ef6Smrg basic_machine=mips-compaq 472da2e2ef6Smrg basic_os=nonstopux 473da2e2ef6Smrg ;; 474da2e2ef6Smrg os400) 475da2e2ef6Smrg basic_machine=powerpc-ibm 476da2e2ef6Smrg basic_os=os400 477da2e2ef6Smrg ;; 478da2e2ef6Smrg OSE68000 | ose68000) 479da2e2ef6Smrg basic_machine=m68000-ericsson 480da2e2ef6Smrg basic_os=ose 481da2e2ef6Smrg ;; 482da2e2ef6Smrg os68k) 483da2e2ef6Smrg basic_machine=m68k-none 484da2e2ef6Smrg basic_os=os68k 485da2e2ef6Smrg ;; 486da2e2ef6Smrg paragon) 487da2e2ef6Smrg basic_machine=i860-intel 488da2e2ef6Smrg basic_os=osf 489da2e2ef6Smrg ;; 490da2e2ef6Smrg parisc) 491da2e2ef6Smrg basic_machine=hppa-unknown 492da2e2ef6Smrg basic_os=linux 493da2e2ef6Smrg ;; 494da2e2ef6Smrg psp) 495da2e2ef6Smrg basic_machine=mipsallegrexel-sony 496da2e2ef6Smrg basic_os=psp 497da2e2ef6Smrg ;; 498da2e2ef6Smrg pw32) 499da2e2ef6Smrg basic_machine=i586-unknown 500da2e2ef6Smrg basic_os=pw32 501da2e2ef6Smrg ;; 502da2e2ef6Smrg rdos | rdos64) 503da2e2ef6Smrg basic_machine=x86_64-pc 504da2e2ef6Smrg basic_os=rdos 505da2e2ef6Smrg ;; 506da2e2ef6Smrg rdos32) 507da2e2ef6Smrg basic_machine=i386-pc 508da2e2ef6Smrg basic_os=rdos 509da2e2ef6Smrg ;; 510da2e2ef6Smrg rom68k) 511da2e2ef6Smrg basic_machine=m68k-rom68k 512da2e2ef6Smrg basic_os=coff 513da2e2ef6Smrg ;; 514da2e2ef6Smrg sa29200) 515da2e2ef6Smrg basic_machine=a29k-amd 516da2e2ef6Smrg basic_os=udi 517da2e2ef6Smrg ;; 518da2e2ef6Smrg sei) 519da2e2ef6Smrg basic_machine=mips-sei 520da2e2ef6Smrg basic_os=seiux 521da2e2ef6Smrg ;; 522da2e2ef6Smrg sequent) 523da2e2ef6Smrg basic_machine=i386-sequent 524da2e2ef6Smrg basic_os= 525da2e2ef6Smrg ;; 526da2e2ef6Smrg sps7) 527da2e2ef6Smrg basic_machine=m68k-bull 528da2e2ef6Smrg basic_os=sysv2 529da2e2ef6Smrg ;; 530da2e2ef6Smrg st2000) 531da2e2ef6Smrg basic_machine=m68k-tandem 532da2e2ef6Smrg basic_os= 533da2e2ef6Smrg ;; 534da2e2ef6Smrg stratus) 535da2e2ef6Smrg basic_machine=i860-stratus 536da2e2ef6Smrg basic_os=sysv4 537da2e2ef6Smrg ;; 538da2e2ef6Smrg sun2) 539da2e2ef6Smrg basic_machine=m68000-sun 540da2e2ef6Smrg basic_os= 541da2e2ef6Smrg ;; 542da2e2ef6Smrg sun2os3) 543da2e2ef6Smrg basic_machine=m68000-sun 544da2e2ef6Smrg basic_os=sunos3 545da2e2ef6Smrg ;; 546da2e2ef6Smrg sun2os4) 547da2e2ef6Smrg basic_machine=m68000-sun 548da2e2ef6Smrg basic_os=sunos4 549da2e2ef6Smrg ;; 550da2e2ef6Smrg sun3) 551da2e2ef6Smrg basic_machine=m68k-sun 552da2e2ef6Smrg basic_os= 553da2e2ef6Smrg ;; 554da2e2ef6Smrg sun3os3) 555da2e2ef6Smrg basic_machine=m68k-sun 556da2e2ef6Smrg basic_os=sunos3 557da2e2ef6Smrg ;; 558da2e2ef6Smrg sun3os4) 559da2e2ef6Smrg basic_machine=m68k-sun 560da2e2ef6Smrg basic_os=sunos4 561da2e2ef6Smrg ;; 562da2e2ef6Smrg sun4) 563da2e2ef6Smrg basic_machine=sparc-sun 564da2e2ef6Smrg basic_os= 565da2e2ef6Smrg ;; 566da2e2ef6Smrg sun4os3) 567da2e2ef6Smrg basic_machine=sparc-sun 568da2e2ef6Smrg basic_os=sunos3 569da2e2ef6Smrg ;; 570da2e2ef6Smrg sun4os4) 571da2e2ef6Smrg basic_machine=sparc-sun 572da2e2ef6Smrg basic_os=sunos4 573da2e2ef6Smrg ;; 574da2e2ef6Smrg sun4sol2) 575da2e2ef6Smrg basic_machine=sparc-sun 576da2e2ef6Smrg basic_os=solaris2 577da2e2ef6Smrg ;; 578da2e2ef6Smrg sun386 | sun386i | roadrunner) 579da2e2ef6Smrg basic_machine=i386-sun 580da2e2ef6Smrg basic_os= 581da2e2ef6Smrg ;; 582da2e2ef6Smrg sv1) 583da2e2ef6Smrg basic_machine=sv1-cray 584da2e2ef6Smrg basic_os=unicos 585da2e2ef6Smrg ;; 586da2e2ef6Smrg symmetry) 587da2e2ef6Smrg basic_machine=i386-sequent 588da2e2ef6Smrg basic_os=dynix 589da2e2ef6Smrg ;; 590da2e2ef6Smrg t3e) 591da2e2ef6Smrg basic_machine=alphaev5-cray 592da2e2ef6Smrg basic_os=unicos 593da2e2ef6Smrg ;; 594da2e2ef6Smrg t90) 595da2e2ef6Smrg basic_machine=t90-cray 596da2e2ef6Smrg basic_os=unicos 597da2e2ef6Smrg ;; 598da2e2ef6Smrg toad1) 599da2e2ef6Smrg basic_machine=pdp10-xkl 600da2e2ef6Smrg basic_os=tops20 601da2e2ef6Smrg ;; 602da2e2ef6Smrg tpf) 603da2e2ef6Smrg basic_machine=s390x-ibm 604da2e2ef6Smrg basic_os=tpf 605da2e2ef6Smrg ;; 606da2e2ef6Smrg udi29k) 607da2e2ef6Smrg basic_machine=a29k-amd 608da2e2ef6Smrg basic_os=udi 609da2e2ef6Smrg ;; 610da2e2ef6Smrg ultra3) 611da2e2ef6Smrg basic_machine=a29k-nyu 612da2e2ef6Smrg basic_os=sym1 613da2e2ef6Smrg ;; 614da2e2ef6Smrg v810 | necv810) 615da2e2ef6Smrg basic_machine=v810-nec 616da2e2ef6Smrg basic_os=none 617da2e2ef6Smrg ;; 618da2e2ef6Smrg vaxv) 619da2e2ef6Smrg basic_machine=vax-dec 620da2e2ef6Smrg basic_os=sysv 621da2e2ef6Smrg ;; 622da2e2ef6Smrg vms) 623da2e2ef6Smrg basic_machine=vax-dec 624da2e2ef6Smrg basic_os=vms 625da2e2ef6Smrg ;; 626da2e2ef6Smrg vsta) 627da2e2ef6Smrg basic_machine=i386-pc 628da2e2ef6Smrg basic_os=vsta 629da2e2ef6Smrg ;; 630da2e2ef6Smrg vxworks960) 631da2e2ef6Smrg basic_machine=i960-wrs 632da2e2ef6Smrg basic_os=vxworks 633da2e2ef6Smrg ;; 634da2e2ef6Smrg vxworks68) 635da2e2ef6Smrg basic_machine=m68k-wrs 636da2e2ef6Smrg basic_os=vxworks 637da2e2ef6Smrg ;; 638da2e2ef6Smrg vxworks29k) 639da2e2ef6Smrg basic_machine=a29k-wrs 640da2e2ef6Smrg basic_os=vxworks 641da2e2ef6Smrg ;; 642da2e2ef6Smrg xbox) 643da2e2ef6Smrg basic_machine=i686-pc 644da2e2ef6Smrg basic_os=mingw32 645da2e2ef6Smrg ;; 646da2e2ef6Smrg ymp) 647da2e2ef6Smrg basic_machine=ymp-cray 648da2e2ef6Smrg basic_os=unicos 649da2e2ef6Smrg ;; 650da2e2ef6Smrg *) 651da2e2ef6Smrg basic_machine=$1 652da2e2ef6Smrg basic_os= 653da2e2ef6Smrg ;; 654da2e2ef6Smrg esac 655145b7b3cSmrg ;; 656145b7b3cSmrgesac 657145b7b3cSmrg 658da2e2ef6Smrg# Decode 1-component or ad-hoc basic machines 659145b7b3cSmrgcase $basic_machine in 660da2e2ef6Smrg # Here we handle the default manufacturer of certain CPU types. It is in 661da2e2ef6Smrg # some cases the only manufacturer, in others, it is the most popular. 662da2e2ef6Smrg w89k) 663da2e2ef6Smrg cpu=hppa1.1 664da2e2ef6Smrg vendor=winbond 665b7d26471Smrg ;; 666da2e2ef6Smrg op50n) 667da2e2ef6Smrg cpu=hppa1.1 668da2e2ef6Smrg vendor=oki 669145b7b3cSmrg ;; 670da2e2ef6Smrg op60c) 671da2e2ef6Smrg cpu=hppa1.1 672da2e2ef6Smrg vendor=oki 673145b7b3cSmrg ;; 674da2e2ef6Smrg ibm*) 675da2e2ef6Smrg cpu=i370 676da2e2ef6Smrg vendor=ibm 677145b7b3cSmrg ;; 678da2e2ef6Smrg orion105) 679da2e2ef6Smrg cpu=clipper 680da2e2ef6Smrg vendor=highlevel 681b7d26471Smrg ;; 682da2e2ef6Smrg mac | mpw | mac-mpw) 683da2e2ef6Smrg cpu=m68k 684da2e2ef6Smrg vendor=apple 685b7d26471Smrg ;; 686da2e2ef6Smrg pmac | pmac-mpw) 687da2e2ef6Smrg cpu=powerpc 688da2e2ef6Smrg vendor=apple 689b7d26471Smrg ;; 690b7d26471Smrg 691145b7b3cSmrg # Recognize the various machine names and aliases which stand 692145b7b3cSmrg # for a CPU type and a company and sometimes even an OS. 693145b7b3cSmrg 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 694da2e2ef6Smrg cpu=m68000 695da2e2ef6Smrg vendor=att 696145b7b3cSmrg ;; 697145b7b3cSmrg 3b*) 698da2e2ef6Smrg cpu=we32k 699da2e2ef6Smrg vendor=att 700578741aaSmrg ;; 7015ffd6003Smrg bluegene*) 702da2e2ef6Smrg cpu=powerpc 703da2e2ef6Smrg vendor=ibm 704da2e2ef6Smrg basic_os=cnk 705145b7b3cSmrg ;; 706145b7b3cSmrg decsystem10* | dec10*) 707da2e2ef6Smrg cpu=pdp10 708da2e2ef6Smrg vendor=dec 709da2e2ef6Smrg basic_os=tops10 710145b7b3cSmrg ;; 711145b7b3cSmrg decsystem20* | dec20*) 712da2e2ef6Smrg cpu=pdp10 713da2e2ef6Smrg vendor=dec 714da2e2ef6Smrg basic_os=tops20 715145b7b3cSmrg ;; 716145b7b3cSmrg delta | 3300 | motorola-3300 | motorola-delta \ 717145b7b3cSmrg | 3300-motorola | delta-motorola) 718da2e2ef6Smrg cpu=m68k 719da2e2ef6Smrg vendor=motorola 720145b7b3cSmrg ;; 721b7d26471Smrg dpx2*) 722da2e2ef6Smrg cpu=m68k 723da2e2ef6Smrg vendor=bull 724da2e2ef6Smrg basic_os=sysv3 725145b7b3cSmrg ;; 726145b7b3cSmrg encore | umax | mmax) 727da2e2ef6Smrg cpu=ns32k 728da2e2ef6Smrg vendor=encore 729145b7b3cSmrg ;; 730da2e2ef6Smrg elxsi) 731da2e2ef6Smrg cpu=elxsi 732da2e2ef6Smrg vendor=elxsi 733da2e2ef6Smrg basic_os=${basic_os:-bsd} 734145b7b3cSmrg ;; 735145b7b3cSmrg fx2800) 736da2e2ef6Smrg cpu=i860 737da2e2ef6Smrg vendor=alliant 738145b7b3cSmrg ;; 739145b7b3cSmrg genix) 740da2e2ef6Smrg cpu=ns32k 741da2e2ef6Smrg vendor=ns 742145b7b3cSmrg ;; 743145b7b3cSmrg h3050r* | hiux*) 744da2e2ef6Smrg cpu=hppa1.1 745da2e2ef6Smrg vendor=hitachi 746da2e2ef6Smrg basic_os=hiuxwe2 747145b7b3cSmrg ;; 748145b7b3cSmrg hp3k9[0-9][0-9] | hp9[0-9][0-9]) 749da2e2ef6Smrg cpu=hppa1.0 750da2e2ef6Smrg vendor=hp 751145b7b3cSmrg ;; 752145b7b3cSmrg hp9k2[0-9][0-9] | hp9k31[0-9]) 753da2e2ef6Smrg cpu=m68000 754da2e2ef6Smrg vendor=hp 755145b7b3cSmrg ;; 756145b7b3cSmrg hp9k3[2-9][0-9]) 757da2e2ef6Smrg cpu=m68k 758da2e2ef6Smrg vendor=hp 759145b7b3cSmrg ;; 760145b7b3cSmrg hp9k6[0-9][0-9] | hp6[0-9][0-9]) 761da2e2ef6Smrg cpu=hppa1.0 762da2e2ef6Smrg vendor=hp 763145b7b3cSmrg ;; 764145b7b3cSmrg hp9k7[0-79][0-9] | hp7[0-79][0-9]) 765da2e2ef6Smrg cpu=hppa1.1 766da2e2ef6Smrg vendor=hp 767145b7b3cSmrg ;; 768145b7b3cSmrg hp9k78[0-9] | hp78[0-9]) 769145b7b3cSmrg # FIXME: really hppa2.0-hp 770da2e2ef6Smrg cpu=hppa1.1 771da2e2ef6Smrg vendor=hp 772145b7b3cSmrg ;; 773145b7b3cSmrg hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 774145b7b3cSmrg # FIXME: really hppa2.0-hp 775da2e2ef6Smrg cpu=hppa1.1 776da2e2ef6Smrg vendor=hp 777145b7b3cSmrg ;; 778145b7b3cSmrg hp9k8[0-9][13679] | hp8[0-9][13679]) 779da2e2ef6Smrg cpu=hppa1.1 780da2e2ef6Smrg vendor=hp 781145b7b3cSmrg ;; 782145b7b3cSmrg hp9k8[0-9][0-9] | hp8[0-9][0-9]) 783da2e2ef6Smrg cpu=hppa1.0 784da2e2ef6Smrg vendor=hp 785145b7b3cSmrg ;; 786145b7b3cSmrg i*86v32) 787da2e2ef6Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 788da2e2ef6Smrg vendor=pc 789da2e2ef6Smrg basic_os=sysv32 790145b7b3cSmrg ;; 791145b7b3cSmrg i*86v4*) 792da2e2ef6Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 793da2e2ef6Smrg vendor=pc 794da2e2ef6Smrg basic_os=sysv4 795145b7b3cSmrg ;; 796145b7b3cSmrg i*86v) 797da2e2ef6Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 798da2e2ef6Smrg vendor=pc 799da2e2ef6Smrg basic_os=sysv 800145b7b3cSmrg ;; 801145b7b3cSmrg i*86sol2) 802da2e2ef6Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 803da2e2ef6Smrg vendor=pc 804da2e2ef6Smrg basic_os=solaris2 805145b7b3cSmrg ;; 806da2e2ef6Smrg j90 | j90-cray) 807da2e2ef6Smrg cpu=j90 808da2e2ef6Smrg vendor=cray 809da2e2ef6Smrg basic_os=${basic_os:-unicos} 810145b7b3cSmrg ;; 811145b7b3cSmrg iris | iris4d) 812da2e2ef6Smrg cpu=mips 813da2e2ef6Smrg vendor=sgi 814da2e2ef6Smrg case $basic_os in 815da2e2ef6Smrg irix*) 816145b7b3cSmrg ;; 817145b7b3cSmrg *) 818da2e2ef6Smrg basic_os=irix4 819145b7b3cSmrg ;; 820145b7b3cSmrg esac 821145b7b3cSmrg ;; 822145b7b3cSmrg miniframe) 823da2e2ef6Smrg cpu=m68000 824da2e2ef6Smrg vendor=convergent 825145b7b3cSmrg ;; 826da2e2ef6Smrg *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) 827da2e2ef6Smrg cpu=m68k 828da2e2ef6Smrg vendor=atari 829da2e2ef6Smrg basic_os=mint 830145b7b3cSmrg ;; 831145b7b3cSmrg news-3600 | risc-news) 832da2e2ef6Smrg cpu=mips 833da2e2ef6Smrg vendor=sony 834da2e2ef6Smrg basic_os=newsos 835145b7b3cSmrg ;; 836b7d26471Smrg next | m*-next) 837da2e2ef6Smrg cpu=m68k 838da2e2ef6Smrg vendor=next 839da2e2ef6Smrg case $basic_os in 840da2e2ef6Smrg openstep*) 841da2e2ef6Smrg ;; 842da2e2ef6Smrg nextstep*) 843145b7b3cSmrg ;; 844da2e2ef6Smrg ns2*) 845da2e2ef6Smrg basic_os=nextstep2 846145b7b3cSmrg ;; 847145b7b3cSmrg *) 848da2e2ef6Smrg basic_os=nextstep3 849145b7b3cSmrg ;; 850145b7b3cSmrg esac 851145b7b3cSmrg ;; 852145b7b3cSmrg np1) 853da2e2ef6Smrg cpu=np1 854da2e2ef6Smrg vendor=gould 855b7d26471Smrg ;; 856145b7b3cSmrg op50n-* | op60c-*) 857da2e2ef6Smrg cpu=hppa1.1 858da2e2ef6Smrg vendor=oki 859da2e2ef6Smrg basic_os=proelf 860145b7b3cSmrg ;; 861145b7b3cSmrg pa-hitachi) 862da2e2ef6Smrg cpu=hppa1.1 863da2e2ef6Smrg vendor=hitachi 864da2e2ef6Smrg basic_os=hiuxwe2 865578741aaSmrg ;; 866145b7b3cSmrg pbd) 867da2e2ef6Smrg cpu=sparc 868da2e2ef6Smrg vendor=tti 869145b7b3cSmrg ;; 870145b7b3cSmrg pbb) 871da2e2ef6Smrg cpu=m68k 872da2e2ef6Smrg vendor=tti 873145b7b3cSmrg ;; 874da2e2ef6Smrg pc532) 875da2e2ef6Smrg cpu=ns32k 876da2e2ef6Smrg vendor=pc532 877145b7b3cSmrg ;; 878145b7b3cSmrg pn) 879da2e2ef6Smrg cpu=pn 880da2e2ef6Smrg vendor=gould 881145b7b3cSmrg ;; 882da2e2ef6Smrg power) 883da2e2ef6Smrg cpu=power 884da2e2ef6Smrg vendor=ibm 885145b7b3cSmrg ;; 886da2e2ef6Smrg ps2) 887da2e2ef6Smrg cpu=i386 888da2e2ef6Smrg vendor=ibm 889145b7b3cSmrg ;; 890da2e2ef6Smrg rm[46]00) 891da2e2ef6Smrg cpu=mips 892da2e2ef6Smrg vendor=siemens 893145b7b3cSmrg ;; 894da2e2ef6Smrg rtpc | rtpc-*) 895da2e2ef6Smrg cpu=romp 896da2e2ef6Smrg vendor=ibm 897145b7b3cSmrg ;; 898da2e2ef6Smrg sde) 899da2e2ef6Smrg cpu=mipsisa32 900da2e2ef6Smrg vendor=sde 901da2e2ef6Smrg basic_os=${basic_os:-elf} 902145b7b3cSmrg ;; 903da2e2ef6Smrg simso-wrs) 904da2e2ef6Smrg cpu=sparclite 905da2e2ef6Smrg vendor=wrs 906da2e2ef6Smrg basic_os=vxworks 907145b7b3cSmrg ;; 908da2e2ef6Smrg tower | tower-32) 909da2e2ef6Smrg cpu=m68k 910da2e2ef6Smrg vendor=ncr 911145b7b3cSmrg ;; 912da2e2ef6Smrg vpp*|vx|vx-*) 913da2e2ef6Smrg cpu=f301 914da2e2ef6Smrg vendor=fujitsu 915b7d26471Smrg ;; 916da2e2ef6Smrg w65) 917da2e2ef6Smrg cpu=w65 918da2e2ef6Smrg vendor=wdc 919145b7b3cSmrg ;; 920da2e2ef6Smrg w89k-*) 921da2e2ef6Smrg cpu=hppa1.1 922da2e2ef6Smrg vendor=winbond 923da2e2ef6Smrg basic_os=proelf 924145b7b3cSmrg ;; 925da2e2ef6Smrg none) 926da2e2ef6Smrg cpu=none 927da2e2ef6Smrg vendor=none 928145b7b3cSmrg ;; 929da2e2ef6Smrg leon|leon[3-9]) 930da2e2ef6Smrg cpu=sparc 931da2e2ef6Smrg vendor=$basic_machine 932145b7b3cSmrg ;; 933da2e2ef6Smrg leon-*|leon[3-9]-*) 934da2e2ef6Smrg cpu=sparc 935da2e2ef6Smrg vendor=`echo "$basic_machine" | sed 's/-.*//'` 936145b7b3cSmrg ;; 937da2e2ef6Smrg 938da2e2ef6Smrg *-*) 939da2e2ef6Smrg # shellcheck disable=SC2162 940da2e2ef6Smrg saved_IFS=$IFS 941da2e2ef6Smrg IFS="-" read cpu vendor <<EOF 942da2e2ef6Smrg$basic_machine 943da2e2ef6SmrgEOF 944da2e2ef6Smrg IFS=$saved_IFS 945145b7b3cSmrg ;; 946da2e2ef6Smrg # We use `pc' rather than `unknown' 947da2e2ef6Smrg # because (1) that's what they normally are, and 948da2e2ef6Smrg # (2) the word "unknown" tends to confuse beginning users. 949da2e2ef6Smrg i*86 | x86_64) 950da2e2ef6Smrg cpu=$basic_machine 951da2e2ef6Smrg vendor=pc 952145b7b3cSmrg ;; 953da2e2ef6Smrg # These rules are duplicated from below for sake of the special case above; 954da2e2ef6Smrg # i.e. things that normalized to x86 arches should also default to "pc" 955da2e2ef6Smrg pc98) 956da2e2ef6Smrg cpu=i386 957da2e2ef6Smrg vendor=pc 958145b7b3cSmrg ;; 959da2e2ef6Smrg x64 | amd64) 960da2e2ef6Smrg cpu=x86_64 961da2e2ef6Smrg vendor=pc 962145b7b3cSmrg ;; 963da2e2ef6Smrg # Recognize the basic CPU types without company name. 964da2e2ef6Smrg *) 965da2e2ef6Smrg cpu=$basic_machine 966da2e2ef6Smrg vendor=unknown 967578741aaSmrg ;; 968da2e2ef6Smrgesac 969da2e2ef6Smrg 970da2e2ef6Smrgunset -v basic_machine 971da2e2ef6Smrg 972da2e2ef6Smrg# Decode basic machines in the full and proper CPU-Company form. 973da2e2ef6Smrgcase $cpu-$vendor in 974da2e2ef6Smrg # Here we handle the default manufacturer of certain CPU types in canonical form. It is in 975da2e2ef6Smrg # some cases the only manufacturer, in others, it is the most popular. 976da2e2ef6Smrg craynv-unknown) 977da2e2ef6Smrg vendor=cray 978da2e2ef6Smrg basic_os=${basic_os:-unicosmp} 979145b7b3cSmrg ;; 980da2e2ef6Smrg c90-unknown | c90-cray) 981da2e2ef6Smrg vendor=cray 982da2e2ef6Smrg basic_os=${Basic_os:-unicos} 983145b7b3cSmrg ;; 984da2e2ef6Smrg fx80-unknown) 985da2e2ef6Smrg vendor=alliant 986578741aaSmrg ;; 987da2e2ef6Smrg romp-unknown) 988da2e2ef6Smrg vendor=ibm 989145b7b3cSmrg ;; 990da2e2ef6Smrg mmix-unknown) 991da2e2ef6Smrg vendor=knuth 992145b7b3cSmrg ;; 993da2e2ef6Smrg microblaze-unknown | microblazeel-unknown) 994da2e2ef6Smrg vendor=xilinx 995145b7b3cSmrg ;; 996da2e2ef6Smrg rs6000-unknown) 997da2e2ef6Smrg vendor=ibm 998145b7b3cSmrg ;; 999da2e2ef6Smrg vax-unknown) 1000da2e2ef6Smrg vendor=dec 1001145b7b3cSmrg ;; 1002da2e2ef6Smrg pdp11-unknown) 1003da2e2ef6Smrg vendor=dec 1004b7d26471Smrg ;; 1005da2e2ef6Smrg we32k-unknown) 1006da2e2ef6Smrg vendor=att 1007145b7b3cSmrg ;; 1008da2e2ef6Smrg cydra-unknown) 1009da2e2ef6Smrg vendor=cydrome 1010145b7b3cSmrg ;; 1011da2e2ef6Smrg i370-ibm*) 1012da2e2ef6Smrg vendor=ibm 1013145b7b3cSmrg ;; 1014da2e2ef6Smrg orion-unknown) 1015da2e2ef6Smrg vendor=highlevel 1016145b7b3cSmrg ;; 1017da2e2ef6Smrg xps-unknown | xps100-unknown) 1018da2e2ef6Smrg cpu=xps100 1019da2e2ef6Smrg vendor=honeywell 1020145b7b3cSmrg ;; 1021da2e2ef6Smrg 1022da2e2ef6Smrg # Here we normalize CPU types with a missing or matching vendor 10234901b09eSmrg armh-unknown | armh-alt) 10244901b09eSmrg cpu=armv7l 10254901b09eSmrg vendor=alt 10264901b09eSmrg basic_os=${basic_os:-linux-gnueabihf} 10274901b09eSmrg ;; 1028da2e2ef6Smrg dpx20-unknown | dpx20-bull) 1029da2e2ef6Smrg cpu=rs6000 1030da2e2ef6Smrg vendor=bull 1031da2e2ef6Smrg basic_os=${basic_os:-bosx} 1032145b7b3cSmrg ;; 1033da2e2ef6Smrg 1034da2e2ef6Smrg # Here we normalize CPU types irrespective of the vendor 1035da2e2ef6Smrg amd64-*) 1036da2e2ef6Smrg cpu=x86_64 1037145b7b3cSmrg ;; 1038da2e2ef6Smrg blackfin-*) 1039da2e2ef6Smrg cpu=bfin 1040da2e2ef6Smrg basic_os=linux 1041145b7b3cSmrg ;; 1042da2e2ef6Smrg c54x-*) 1043da2e2ef6Smrg cpu=tic54x 1044145b7b3cSmrg ;; 1045da2e2ef6Smrg c55x-*) 1046da2e2ef6Smrg cpu=tic55x 1047145b7b3cSmrg ;; 1048da2e2ef6Smrg c6x-*) 1049da2e2ef6Smrg cpu=tic6x 1050145b7b3cSmrg ;; 1051da2e2ef6Smrg e500v[12]-*) 1052da2e2ef6Smrg cpu=powerpc 1053da2e2ef6Smrg basic_os=${basic_os}"spe" 1054145b7b3cSmrg ;; 1055da2e2ef6Smrg mips3*-*) 1056da2e2ef6Smrg cpu=mips64 1057145b7b3cSmrg ;; 1058da2e2ef6Smrg ms1-*) 1059da2e2ef6Smrg cpu=mt 1060145b7b3cSmrg ;; 1061da2e2ef6Smrg m68knommu-*) 1062da2e2ef6Smrg cpu=m68k 1063da2e2ef6Smrg basic_os=linux 1064145b7b3cSmrg ;; 1065da2e2ef6Smrg m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) 1066da2e2ef6Smrg cpu=s12z 1067578741aaSmrg ;; 1068da2e2ef6Smrg openrisc-*) 1069da2e2ef6Smrg cpu=or32 1070145b7b3cSmrg ;; 1071da2e2ef6Smrg parisc-*) 1072da2e2ef6Smrg cpu=hppa 1073da2e2ef6Smrg basic_os=linux 1074145b7b3cSmrg ;; 1075da2e2ef6Smrg pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 1076da2e2ef6Smrg cpu=i586 1077145b7b3cSmrg ;; 10784901b09eSmrg pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*) 1079da2e2ef6Smrg cpu=i686 1080145b7b3cSmrg ;; 1081da2e2ef6Smrg pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 1082da2e2ef6Smrg cpu=i686 1083145b7b3cSmrg ;; 1084da2e2ef6Smrg pentium4-*) 1085da2e2ef6Smrg cpu=i786 1086145b7b3cSmrg ;; 1087da2e2ef6Smrg pc98-*) 1088da2e2ef6Smrg cpu=i386 1089145b7b3cSmrg ;; 1090da2e2ef6Smrg ppc-* | ppcbe-*) 1091da2e2ef6Smrg cpu=powerpc 1092145b7b3cSmrg ;; 1093da2e2ef6Smrg ppcle-* | powerpclittle-*) 1094da2e2ef6Smrg cpu=powerpcle 1095145b7b3cSmrg ;; 1096da2e2ef6Smrg ppc64-*) 1097da2e2ef6Smrg cpu=powerpc64 1098145b7b3cSmrg ;; 1099da2e2ef6Smrg ppc64le-* | powerpc64little-*) 1100da2e2ef6Smrg cpu=powerpc64le 1101145b7b3cSmrg ;; 1102da2e2ef6Smrg sb1-*) 1103da2e2ef6Smrg cpu=mipsisa64sb1 1104145b7b3cSmrg ;; 1105da2e2ef6Smrg sb1el-*) 1106da2e2ef6Smrg cpu=mipsisa64sb1el 1107145b7b3cSmrg ;; 1108da2e2ef6Smrg sh5e[lb]-*) 1109da2e2ef6Smrg cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` 1110145b7b3cSmrg ;; 1111da2e2ef6Smrg spur-*) 1112da2e2ef6Smrg cpu=spur 1113145b7b3cSmrg ;; 1114da2e2ef6Smrg strongarm-* | thumb-*) 1115da2e2ef6Smrg cpu=arm 1116145b7b3cSmrg ;; 1117da2e2ef6Smrg tx39-*) 1118da2e2ef6Smrg cpu=mipstx39 1119b7d26471Smrg ;; 1120da2e2ef6Smrg tx39el-*) 1121da2e2ef6Smrg cpu=mipstx39el 1122145b7b3cSmrg ;; 1123da2e2ef6Smrg x64-*) 1124da2e2ef6Smrg cpu=x86_64 1125145b7b3cSmrg ;; 1126b7d26471Smrg xscale-* | xscalee[bl]-*) 1127da2e2ef6Smrg cpu=`echo "$cpu" | sed 's/^xscale/arm/'` 1128145b7b3cSmrg ;; 11294901b09eSmrg arm64-* | aarch64le-*) 1130da2e2ef6Smrg cpu=aarch64 1131145b7b3cSmrg ;; 1132145b7b3cSmrg 1133da2e2ef6Smrg # Recognize the canonical CPU Types that limit and/or modify the 1134da2e2ef6Smrg # company names they are paired with. 1135da2e2ef6Smrg cr16-*) 1136da2e2ef6Smrg basic_os=${basic_os:-elf} 1137145b7b3cSmrg ;; 1138da2e2ef6Smrg crisv32-* | etraxfs*-*) 1139da2e2ef6Smrg cpu=crisv32 1140da2e2ef6Smrg vendor=axis 1141145b7b3cSmrg ;; 1142da2e2ef6Smrg cris-* | etrax*-*) 1143da2e2ef6Smrg cpu=cris 1144da2e2ef6Smrg vendor=axis 1145145b7b3cSmrg ;; 1146da2e2ef6Smrg crx-*) 1147da2e2ef6Smrg basic_os=${basic_os:-elf} 1148145b7b3cSmrg ;; 1149da2e2ef6Smrg neo-tandem) 1150da2e2ef6Smrg cpu=neo 1151da2e2ef6Smrg vendor=tandem 1152145b7b3cSmrg ;; 1153da2e2ef6Smrg nse-tandem) 1154da2e2ef6Smrg cpu=nse 1155da2e2ef6Smrg vendor=tandem 1156145b7b3cSmrg ;; 1157da2e2ef6Smrg nsr-tandem) 1158da2e2ef6Smrg cpu=nsr 1159da2e2ef6Smrg vendor=tandem 1160145b7b3cSmrg ;; 1161da2e2ef6Smrg nsv-tandem) 1162da2e2ef6Smrg cpu=nsv 1163da2e2ef6Smrg vendor=tandem 1164145b7b3cSmrg ;; 1165da2e2ef6Smrg nsx-tandem) 1166da2e2ef6Smrg cpu=nsx 1167da2e2ef6Smrg vendor=tandem 1168145b7b3cSmrg ;; 1169da2e2ef6Smrg mipsallegrexel-sony) 1170da2e2ef6Smrg cpu=mipsallegrexel 1171da2e2ef6Smrg vendor=sony 1172145b7b3cSmrg ;; 1173da2e2ef6Smrg tile*-*) 1174da2e2ef6Smrg basic_os=${basic_os:-linux-gnu} 1175145b7b3cSmrg ;; 1176da2e2ef6Smrg 1177145b7b3cSmrg *) 1178da2e2ef6Smrg # Recognize the canonical CPU types that are allowed with any 1179da2e2ef6Smrg # company name. 1180da2e2ef6Smrg case $cpu in 1181da2e2ef6Smrg 1750a | 580 \ 1182da2e2ef6Smrg | a29k \ 1183da2e2ef6Smrg | aarch64 | aarch64_be \ 1184da2e2ef6Smrg | abacus \ 1185da2e2ef6Smrg | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ 1186da2e2ef6Smrg | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ 1187da2e2ef6Smrg | alphapca5[67] | alpha64pca5[67] \ 1188da2e2ef6Smrg | am33_2.0 \ 1189da2e2ef6Smrg | amdgcn \ 1190da2e2ef6Smrg | arc | arceb | arc32 | arc64 \ 1191da2e2ef6Smrg | arm | arm[lb]e | arme[lb] | armv* \ 1192da2e2ef6Smrg | avr | avr32 \ 1193da2e2ef6Smrg | asmjs \ 1194da2e2ef6Smrg | ba \ 1195da2e2ef6Smrg | be32 | be64 \ 1196da2e2ef6Smrg | bfin | bpf | bs2000 \ 1197da2e2ef6Smrg | c[123]* | c30 | [cjt]90 | c4x \ 1198da2e2ef6Smrg | c8051 | clipper | craynv | csky | cydra \ 1199da2e2ef6Smrg | d10v | d30v | dlx | dsp16xx \ 1200da2e2ef6Smrg | e2k | elxsi | epiphany \ 1201da2e2ef6Smrg | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ 1202da2e2ef6Smrg | h8300 | h8500 \ 1203da2e2ef6Smrg | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 1204da2e2ef6Smrg | hexagon \ 1205da2e2ef6Smrg | i370 | i*86 | i860 | i960 | ia16 | ia64 \ 1206da2e2ef6Smrg | ip2k | iq2000 \ 1207da2e2ef6Smrg | k1om \ 1208da2e2ef6Smrg | le32 | le64 \ 1209da2e2ef6Smrg | lm32 \ 12104901b09eSmrg | loongarch32 | loongarch64 \ 1211da2e2ef6Smrg | m32c | m32r | m32rle \ 1212da2e2ef6Smrg | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ 1213da2e2ef6Smrg | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ 1214da2e2ef6Smrg | m88110 | m88k | maxq | mb | mcore | mep | metag \ 1215da2e2ef6Smrg | microblaze | microblazeel \ 1216da2e2ef6Smrg | mips | mipsbe | mipseb | mipsel | mipsle \ 1217da2e2ef6Smrg | mips16 \ 1218da2e2ef6Smrg | mips64 | mips64eb | mips64el \ 1219da2e2ef6Smrg | mips64octeon | mips64octeonel \ 1220da2e2ef6Smrg | mips64orion | mips64orionel \ 1221da2e2ef6Smrg | mips64r5900 | mips64r5900el \ 1222da2e2ef6Smrg | mips64vr | mips64vrel \ 1223da2e2ef6Smrg | mips64vr4100 | mips64vr4100el \ 1224da2e2ef6Smrg | mips64vr4300 | mips64vr4300el \ 1225da2e2ef6Smrg | mips64vr5000 | mips64vr5000el \ 1226da2e2ef6Smrg | mips64vr5900 | mips64vr5900el \ 1227da2e2ef6Smrg | mipsisa32 | mipsisa32el \ 1228da2e2ef6Smrg | mipsisa32r2 | mipsisa32r2el \ 1229da2e2ef6Smrg | mipsisa32r3 | mipsisa32r3el \ 1230da2e2ef6Smrg | mipsisa32r5 | mipsisa32r5el \ 1231da2e2ef6Smrg | mipsisa32r6 | mipsisa32r6el \ 1232da2e2ef6Smrg | mipsisa64 | mipsisa64el \ 1233da2e2ef6Smrg | mipsisa64r2 | mipsisa64r2el \ 1234da2e2ef6Smrg | mipsisa64r3 | mipsisa64r3el \ 1235da2e2ef6Smrg | mipsisa64r5 | mipsisa64r5el \ 1236da2e2ef6Smrg | mipsisa64r6 | mipsisa64r6el \ 1237da2e2ef6Smrg | mipsisa64sb1 | mipsisa64sb1el \ 1238da2e2ef6Smrg | mipsisa64sr71k | mipsisa64sr71kel \ 1239da2e2ef6Smrg | mipsr5900 | mipsr5900el \ 1240da2e2ef6Smrg | mipstx39 | mipstx39el \ 1241da2e2ef6Smrg | mmix \ 1242da2e2ef6Smrg | mn10200 | mn10300 \ 1243da2e2ef6Smrg | moxie \ 1244da2e2ef6Smrg | mt \ 1245da2e2ef6Smrg | msp430 \ 1246da2e2ef6Smrg | nds32 | nds32le | nds32be \ 1247da2e2ef6Smrg | nfp \ 1248da2e2ef6Smrg | nios | nios2 | nios2eb | nios2el \ 1249da2e2ef6Smrg | none | np1 | ns16k | ns32k | nvptx \ 1250da2e2ef6Smrg | open8 \ 1251da2e2ef6Smrg | or1k* \ 1252da2e2ef6Smrg | or32 \ 1253da2e2ef6Smrg | orion \ 1254da2e2ef6Smrg | picochip \ 1255da2e2ef6Smrg | pdp10 | pdp11 | pj | pjl | pn | power \ 1256da2e2ef6Smrg | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ 1257da2e2ef6Smrg | pru \ 1258da2e2ef6Smrg | pyramid \ 1259da2e2ef6Smrg | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ 1260da2e2ef6Smrg | rl78 | romp | rs6000 | rx \ 1261da2e2ef6Smrg | s390 | s390x \ 1262da2e2ef6Smrg | score \ 1263da2e2ef6Smrg | sh | shl \ 1264da2e2ef6Smrg | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ 1265da2e2ef6Smrg | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ 1266da2e2ef6Smrg | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ 1267da2e2ef6Smrg | sparclite \ 1268da2e2ef6Smrg | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ 1269da2e2ef6Smrg | spu \ 1270da2e2ef6Smrg | tahoe \ 1271da2e2ef6Smrg | thumbv7* \ 1272da2e2ef6Smrg | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ 1273da2e2ef6Smrg | tron \ 1274da2e2ef6Smrg | ubicom32 \ 1275da2e2ef6Smrg | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ 1276da2e2ef6Smrg | vax \ 1277da2e2ef6Smrg | visium \ 1278da2e2ef6Smrg | w65 \ 1279da2e2ef6Smrg | wasm32 | wasm64 \ 1280da2e2ef6Smrg | we32k \ 1281da2e2ef6Smrg | x86 | x86_64 | xc16x | xgate | xps100 \ 1282da2e2ef6Smrg | xstormy16 | xtensa* \ 1283da2e2ef6Smrg | ymp \ 1284da2e2ef6Smrg | z8k | z80) 1285da2e2ef6Smrg ;; 1286da2e2ef6Smrg 1287da2e2ef6Smrg *) 1288da2e2ef6Smrg echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 1289da2e2ef6Smrg exit 1 1290da2e2ef6Smrg ;; 1291da2e2ef6Smrg esac 1292145b7b3cSmrg ;; 1293145b7b3cSmrgesac 1294145b7b3cSmrg 1295145b7b3cSmrg# Here we canonicalize certain aliases for manufacturers. 1296da2e2ef6Smrgcase $vendor in 1297da2e2ef6Smrg digital*) 1298da2e2ef6Smrg vendor=dec 1299145b7b3cSmrg ;; 1300da2e2ef6Smrg commodore*) 1301da2e2ef6Smrg vendor=cbm 1302145b7b3cSmrg ;; 1303145b7b3cSmrg *) 1304145b7b3cSmrg ;; 1305145b7b3cSmrgesac 1306145b7b3cSmrg 1307145b7b3cSmrg# Decode manufacturer-specific aliases for certain operating systems. 1308145b7b3cSmrg 1309da2e2ef6Smrgif test x$basic_os != x 1310145b7b3cSmrgthen 1311da2e2ef6Smrg 13124901b09eSmrg# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just 1313da2e2ef6Smrg# set os. 1314da2e2ef6Smrgcase $basic_os in 1315da2e2ef6Smrg gnu/linux*) 1316da2e2ef6Smrg kernel=linux 1317da2e2ef6Smrg os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` 1318da2e2ef6Smrg ;; 1319da2e2ef6Smrg os2-emx) 1320da2e2ef6Smrg kernel=os2 1321da2e2ef6Smrg os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` 1322da2e2ef6Smrg ;; 1323da2e2ef6Smrg nto-qnx*) 1324da2e2ef6Smrg kernel=nto 1325da2e2ef6Smrg os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` 1326da2e2ef6Smrg ;; 1327da2e2ef6Smrg *-*) 1328da2e2ef6Smrg # shellcheck disable=SC2162 1329da2e2ef6Smrg saved_IFS=$IFS 1330da2e2ef6Smrg IFS="-" read kernel os <<EOF 1331da2e2ef6Smrg$basic_os 1332da2e2ef6SmrgEOF 1333da2e2ef6Smrg IFS=$saved_IFS 1334da2e2ef6Smrg ;; 1335da2e2ef6Smrg # Default OS when just kernel was specified 1336da2e2ef6Smrg nto*) 1337da2e2ef6Smrg kernel=nto 1338da2e2ef6Smrg os=`echo "$basic_os" | sed -e 's|nto|qnx|'` 1339da2e2ef6Smrg ;; 1340da2e2ef6Smrg linux*) 1341da2e2ef6Smrg kernel=linux 1342da2e2ef6Smrg os=`echo "$basic_os" | sed -e 's|linux|gnu|'` 1343da2e2ef6Smrg ;; 13444901b09eSmrg managarm*) 13454901b09eSmrg kernel=managarm 13464901b09eSmrg os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'` 13474901b09eSmrg ;; 1348da2e2ef6Smrg *) 1349da2e2ef6Smrg kernel= 1350da2e2ef6Smrg os=$basic_os 1351da2e2ef6Smrg ;; 1352da2e2ef6Smrgesac 1353da2e2ef6Smrg 1354da2e2ef6Smrg# Now, normalize the OS (knowing we just have one component, it's not a kernel, 1355da2e2ef6Smrg# etc.) 1356145b7b3cSmrgcase $os in 1357b7d26471Smrg # First match some system type aliases that might get confused 1358b7d26471Smrg # with valid system types. 1359da2e2ef6Smrg # solaris* is a basic system type, with this one exception. 1360da2e2ef6Smrg auroraux) 1361da2e2ef6Smrg os=auroraux 13625ffd6003Smrg ;; 1363da2e2ef6Smrg bluegene*) 1364da2e2ef6Smrg os=cnk 1365145b7b3cSmrg ;; 1366da2e2ef6Smrg solaris1 | solaris1.*) 1367da2e2ef6Smrg os=`echo "$os" | sed -e 's|solaris1|sunos4|'` 1368145b7b3cSmrg ;; 1369da2e2ef6Smrg solaris) 1370da2e2ef6Smrg os=solaris2 1371145b7b3cSmrg ;; 1372da2e2ef6Smrg unixware*) 1373da2e2ef6Smrg os=sysv4.2uw 1374145b7b3cSmrg ;; 1375b7d26471Smrg # es1800 is here to avoid being matched by es* (a different OS) 1376da2e2ef6Smrg es1800*) 1377da2e2ef6Smrg os=ose 1378b7d26471Smrg ;; 1379da2e2ef6Smrg # Some version numbers need modification 1380da2e2ef6Smrg chorusos*) 1381da2e2ef6Smrg os=chorusos 1382145b7b3cSmrg ;; 1383da2e2ef6Smrg isc) 1384da2e2ef6Smrg os=isc2.2 1385145b7b3cSmrg ;; 1386da2e2ef6Smrg sco6) 1387da2e2ef6Smrg os=sco5v6 1388145b7b3cSmrg ;; 1389da2e2ef6Smrg sco5) 1390da2e2ef6Smrg os=sco3.2v5 1391145b7b3cSmrg ;; 1392da2e2ef6Smrg sco4) 1393da2e2ef6Smrg os=sco3.2v4 1394145b7b3cSmrg ;; 1395da2e2ef6Smrg sco3.2.[4-9]*) 1396da2e2ef6Smrg os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'` 1397145b7b3cSmrg ;; 1398da2e2ef6Smrg sco*v* | scout) 1399da2e2ef6Smrg # Don't match below 1400145b7b3cSmrg ;; 1401da2e2ef6Smrg sco*) 1402da2e2ef6Smrg os=sco3.2v2 1403145b7b3cSmrg ;; 1404da2e2ef6Smrg psos*) 1405da2e2ef6Smrg os=psos 1406145b7b3cSmrg ;; 1407da2e2ef6Smrg qnx*) 1408da2e2ef6Smrg os=qnx 1409145b7b3cSmrg ;; 1410da2e2ef6Smrg hiux*) 1411da2e2ef6Smrg os=hiuxwe2 1412145b7b3cSmrg ;; 1413da2e2ef6Smrg lynx*178) 1414da2e2ef6Smrg os=lynxos178 1415145b7b3cSmrg ;; 1416da2e2ef6Smrg lynx*5) 1417da2e2ef6Smrg os=lynxos5 1418145b7b3cSmrg ;; 1419da2e2ef6Smrg lynxos*) 1420da2e2ef6Smrg # don't get caught up in next wildcard 1421145b7b3cSmrg ;; 1422da2e2ef6Smrg lynx*) 1423da2e2ef6Smrg os=lynxos 1424145b7b3cSmrg ;; 1425da2e2ef6Smrg mac[0-9]*) 1426da2e2ef6Smrg os=`echo "$os" | sed -e 's|mac|macos|'` 1427145b7b3cSmrg ;; 1428da2e2ef6Smrg opened*) 1429da2e2ef6Smrg os=openedition 1430145b7b3cSmrg ;; 1431da2e2ef6Smrg os400*) 1432da2e2ef6Smrg os=os400 1433145b7b3cSmrg ;; 1434da2e2ef6Smrg sunos5*) 1435da2e2ef6Smrg os=`echo "$os" | sed -e 's|sunos5|solaris2|'` 1436145b7b3cSmrg ;; 1437da2e2ef6Smrg sunos6*) 1438da2e2ef6Smrg os=`echo "$os" | sed -e 's|sunos6|solaris3|'` 1439145b7b3cSmrg ;; 1440da2e2ef6Smrg wince*) 1441da2e2ef6Smrg os=wince 1442145b7b3cSmrg ;; 1443da2e2ef6Smrg utek*) 1444da2e2ef6Smrg os=bsd 1445145b7b3cSmrg ;; 1446da2e2ef6Smrg dynix*) 1447da2e2ef6Smrg os=bsd 1448145b7b3cSmrg ;; 1449da2e2ef6Smrg acis*) 1450da2e2ef6Smrg os=aos 1451145b7b3cSmrg ;; 1452da2e2ef6Smrg atheos*) 1453da2e2ef6Smrg os=atheos 1454145b7b3cSmrg ;; 1455da2e2ef6Smrg syllable*) 1456da2e2ef6Smrg os=syllable 1457da2e2ef6Smrg ;; 1458da2e2ef6Smrg 386bsd) 1459da2e2ef6Smrg os=bsd 1460da2e2ef6Smrg ;; 1461da2e2ef6Smrg ctix* | uts*) 1462da2e2ef6Smrg os=sysv 1463da2e2ef6Smrg ;; 1464da2e2ef6Smrg nova*) 1465da2e2ef6Smrg os=rtmk-nova 1466da2e2ef6Smrg ;; 1467da2e2ef6Smrg ns2) 1468da2e2ef6Smrg os=nextstep2 1469da2e2ef6Smrg ;; 1470da2e2ef6Smrg # Preserve the version number of sinix5. 1471da2e2ef6Smrg sinix5.*) 1472da2e2ef6Smrg os=`echo "$os" | sed -e 's|sinix|sysv|'` 1473145b7b3cSmrg ;; 1474da2e2ef6Smrg sinix*) 1475da2e2ef6Smrg os=sysv4 1476145b7b3cSmrg ;; 1477da2e2ef6Smrg tpf*) 1478da2e2ef6Smrg os=tpf 1479145b7b3cSmrg ;; 1480da2e2ef6Smrg triton*) 1481da2e2ef6Smrg os=sysv3 1482145b7b3cSmrg ;; 1483da2e2ef6Smrg oss*) 1484da2e2ef6Smrg os=sysv3 1485145b7b3cSmrg ;; 1486da2e2ef6Smrg svr4*) 1487da2e2ef6Smrg os=sysv4 1488145b7b3cSmrg ;; 1489da2e2ef6Smrg svr3) 1490da2e2ef6Smrg os=sysv3 1491145b7b3cSmrg ;; 1492da2e2ef6Smrg sysvr4) 1493da2e2ef6Smrg os=sysv4 1494145b7b3cSmrg ;; 1495da2e2ef6Smrg ose*) 1496da2e2ef6Smrg os=ose 1497145b7b3cSmrg ;; 1498da2e2ef6Smrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 1499da2e2ef6Smrg os=mint 15005ffd6003Smrg ;; 1501da2e2ef6Smrg dicos*) 1502da2e2ef6Smrg os=dicos 1503da2e2ef6Smrg ;; 1504da2e2ef6Smrg pikeos*) 1505b7d26471Smrg # Until real need of OS specific support for 1506b7d26471Smrg # particular features comes up, bare metal 1507b7d26471Smrg # configurations are quite functional. 1508da2e2ef6Smrg case $cpu in 1509b7d26471Smrg arm*) 1510da2e2ef6Smrg os=eabi 1511b7d26471Smrg ;; 1512b7d26471Smrg *) 1513da2e2ef6Smrg os=elf 1514b7d26471Smrg ;; 1515b7d26471Smrg esac 1516b7d26471Smrg ;; 1517145b7b3cSmrg *) 1518da2e2ef6Smrg # No normalization, but not necessarily accepted, that comes below. 1519145b7b3cSmrg ;; 1520145b7b3cSmrgesac 1521da2e2ef6Smrg 1522145b7b3cSmrgelse 1523145b7b3cSmrg 1524145b7b3cSmrg# Here we handle the default operating systems that come with various machines. 1525145b7b3cSmrg# The value should be what the vendor currently ships out the door with their 1526145b7b3cSmrg# machine or put another way, the most popular os provided with the machine. 1527145b7b3cSmrg 1528145b7b3cSmrg# Note that if you're going to try to match "-MANUFACTURER" here (say, 1529145b7b3cSmrg# "-sun"), then you have to tell the case statement up towards the top 1530145b7b3cSmrg# that MANUFACTURER isn't an operating system. Otherwise, code above 1531145b7b3cSmrg# will signal an error saying that MANUFACTURER isn't an operating 1532145b7b3cSmrg# system, and we'll never get to this point. 1533145b7b3cSmrg 1534da2e2ef6Smrgkernel= 1535da2e2ef6Smrgcase $cpu-$vendor in 1536b7d26471Smrg score-*) 1537da2e2ef6Smrg os=elf 1538578741aaSmrg ;; 1539b7d26471Smrg spu-*) 1540da2e2ef6Smrg os=elf 1541578741aaSmrg ;; 1542145b7b3cSmrg *-acorn) 1543da2e2ef6Smrg os=riscix1.2 1544145b7b3cSmrg ;; 1545145b7b3cSmrg arm*-rebel) 1546da2e2ef6Smrg kernel=linux 1547da2e2ef6Smrg os=gnu 1548145b7b3cSmrg ;; 1549145b7b3cSmrg arm*-semi) 1550da2e2ef6Smrg os=aout 1551145b7b3cSmrg ;; 1552b7d26471Smrg c4x-* | tic4x-*) 1553da2e2ef6Smrg os=coff 1554b7d26471Smrg ;; 1555b7d26471Smrg c8051-*) 1556da2e2ef6Smrg os=elf 1557da2e2ef6Smrg ;; 1558da2e2ef6Smrg clipper-intergraph) 1559da2e2ef6Smrg os=clix 1560b7d26471Smrg ;; 1561b7d26471Smrg hexagon-*) 1562da2e2ef6Smrg os=elf 1563b7d26471Smrg ;; 1564b7d26471Smrg tic54x-*) 1565da2e2ef6Smrg os=coff 1566b7d26471Smrg ;; 1567b7d26471Smrg tic55x-*) 1568da2e2ef6Smrg os=coff 1569b7d26471Smrg ;; 1570b7d26471Smrg tic6x-*) 1571da2e2ef6Smrg os=coff 1572578741aaSmrg ;; 1573145b7b3cSmrg # This must come before the *-dec entry. 1574145b7b3cSmrg pdp10-*) 1575da2e2ef6Smrg os=tops20 1576145b7b3cSmrg ;; 1577145b7b3cSmrg pdp11-*) 1578da2e2ef6Smrg os=none 1579145b7b3cSmrg ;; 1580145b7b3cSmrg *-dec | vax-*) 1581da2e2ef6Smrg os=ultrix4.2 1582145b7b3cSmrg ;; 1583145b7b3cSmrg m68*-apollo) 1584da2e2ef6Smrg os=domain 1585145b7b3cSmrg ;; 1586145b7b3cSmrg i386-sun) 1587da2e2ef6Smrg os=sunos4.0.2 1588145b7b3cSmrg ;; 1589145b7b3cSmrg m68000-sun) 1590da2e2ef6Smrg os=sunos3 1591145b7b3cSmrg ;; 1592145b7b3cSmrg m68*-cisco) 1593da2e2ef6Smrg os=aout 1594145b7b3cSmrg ;; 1595b7d26471Smrg mep-*) 1596da2e2ef6Smrg os=elf 1597578741aaSmrg ;; 1598145b7b3cSmrg mips*-cisco) 1599da2e2ef6Smrg os=elf 1600145b7b3cSmrg ;; 1601145b7b3cSmrg mips*-*) 1602da2e2ef6Smrg os=elf 1603145b7b3cSmrg ;; 1604145b7b3cSmrg or32-*) 1605da2e2ef6Smrg os=coff 1606145b7b3cSmrg ;; 1607145b7b3cSmrg *-tti) # must be before sparc entry or we get the wrong os. 1608da2e2ef6Smrg os=sysv3 1609145b7b3cSmrg ;; 1610145b7b3cSmrg sparc-* | *-sun) 1611da2e2ef6Smrg os=sunos4.1.1 1612145b7b3cSmrg ;; 1613b7d26471Smrg pru-*) 1614da2e2ef6Smrg os=elf 1615b7d26471Smrg ;; 1616145b7b3cSmrg *-be) 1617da2e2ef6Smrg os=beos 1618145b7b3cSmrg ;; 1619145b7b3cSmrg *-ibm) 1620da2e2ef6Smrg os=aix 1621145b7b3cSmrg ;; 1622b7d26471Smrg *-knuth) 1623da2e2ef6Smrg os=mmixware 1624145b7b3cSmrg ;; 1625145b7b3cSmrg *-wec) 1626da2e2ef6Smrg os=proelf 1627145b7b3cSmrg ;; 1628145b7b3cSmrg *-winbond) 1629da2e2ef6Smrg os=proelf 1630145b7b3cSmrg ;; 1631145b7b3cSmrg *-oki) 1632da2e2ef6Smrg os=proelf 1633145b7b3cSmrg ;; 1634145b7b3cSmrg *-hp) 1635da2e2ef6Smrg os=hpux 1636145b7b3cSmrg ;; 1637145b7b3cSmrg *-hitachi) 1638da2e2ef6Smrg os=hiux 1639145b7b3cSmrg ;; 1640145b7b3cSmrg i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 1641da2e2ef6Smrg os=sysv 1642145b7b3cSmrg ;; 1643145b7b3cSmrg *-cbm) 1644da2e2ef6Smrg os=amigaos 1645145b7b3cSmrg ;; 1646145b7b3cSmrg *-dg) 1647da2e2ef6Smrg os=dgux 1648145b7b3cSmrg ;; 1649145b7b3cSmrg *-dolphin) 1650da2e2ef6Smrg os=sysv3 1651145b7b3cSmrg ;; 1652145b7b3cSmrg m68k-ccur) 1653da2e2ef6Smrg os=rtu 1654145b7b3cSmrg ;; 1655145b7b3cSmrg m88k-omron*) 1656da2e2ef6Smrg os=luna 1657145b7b3cSmrg ;; 1658b7d26471Smrg *-next) 1659da2e2ef6Smrg os=nextstep 1660145b7b3cSmrg ;; 1661145b7b3cSmrg *-sequent) 1662da2e2ef6Smrg os=ptx 1663145b7b3cSmrg ;; 1664145b7b3cSmrg *-crds) 1665da2e2ef6Smrg os=unos 1666145b7b3cSmrg ;; 1667145b7b3cSmrg *-ns) 1668da2e2ef6Smrg os=genix 1669145b7b3cSmrg ;; 1670145b7b3cSmrg i370-*) 1671da2e2ef6Smrg os=mvs 1672145b7b3cSmrg ;; 1673145b7b3cSmrg *-gould) 1674da2e2ef6Smrg os=sysv 1675145b7b3cSmrg ;; 1676145b7b3cSmrg *-highlevel) 1677da2e2ef6Smrg os=bsd 1678145b7b3cSmrg ;; 1679145b7b3cSmrg *-encore) 1680da2e2ef6Smrg os=bsd 1681145b7b3cSmrg ;; 1682145b7b3cSmrg *-sgi) 1683da2e2ef6Smrg os=irix 1684145b7b3cSmrg ;; 1685145b7b3cSmrg *-siemens) 1686da2e2ef6Smrg os=sysv4 1687145b7b3cSmrg ;; 1688145b7b3cSmrg *-masscomp) 1689da2e2ef6Smrg os=rtu 1690145b7b3cSmrg ;; 1691145b7b3cSmrg f30[01]-fujitsu | f700-fujitsu) 1692da2e2ef6Smrg os=uxpv 1693145b7b3cSmrg ;; 1694145b7b3cSmrg *-rom68k) 1695da2e2ef6Smrg os=coff 1696145b7b3cSmrg ;; 1697145b7b3cSmrg *-*bug) 1698da2e2ef6Smrg os=coff 1699145b7b3cSmrg ;; 1700145b7b3cSmrg *-apple) 1701da2e2ef6Smrg os=macos 1702145b7b3cSmrg ;; 1703145b7b3cSmrg *-atari*) 1704da2e2ef6Smrg os=mint 1705da2e2ef6Smrg ;; 1706da2e2ef6Smrg *-wrs) 1707da2e2ef6Smrg os=vxworks 1708145b7b3cSmrg ;; 1709145b7b3cSmrg *) 1710da2e2ef6Smrg os=none 1711145b7b3cSmrg ;; 1712145b7b3cSmrgesac 1713da2e2ef6Smrg 1714145b7b3cSmrgfi 1715145b7b3cSmrg 1716da2e2ef6Smrg# Now, validate our (potentially fixed-up) OS. 1717da2e2ef6Smrgcase $os in 1718da2e2ef6Smrg # Sometimes we do "kernel-libc", so those need to count as OSes. 1719da2e2ef6Smrg musl* | newlib* | relibc* | uclibc*) 1720da2e2ef6Smrg ;; 1721da2e2ef6Smrg # Likewise for "kernel-abi" 1722da2e2ef6Smrg eabi* | gnueabi*) 1723da2e2ef6Smrg ;; 1724da2e2ef6Smrg # VxWorks passes extra cpu info in the 4th filed. 1725da2e2ef6Smrg simlinux | simwindows | spe) 1726da2e2ef6Smrg ;; 1727da2e2ef6Smrg # Now accept the basic system types. 1728da2e2ef6Smrg # The portable systems comes first. 1729da2e2ef6Smrg # Each alternative MUST end in a * to match a version number. 1730da2e2ef6Smrg gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ 1731da2e2ef6Smrg | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ 1732da2e2ef6Smrg | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ 1733da2e2ef6Smrg | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ 1734da2e2ef6Smrg | hiux* | abug | nacl* | netware* | windows* \ 1735da2e2ef6Smrg | os9* | macos* | osx* | ios* \ 1736da2e2ef6Smrg | mpw* | magic* | mmixware* | mon960* | lnews* \ 1737da2e2ef6Smrg | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ 1738da2e2ef6Smrg | aos* | aros* | cloudabi* | sortix* | twizzler* \ 1739da2e2ef6Smrg | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ 1740da2e2ef6Smrg | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ 1741da2e2ef6Smrg | mirbsd* | netbsd* | dicos* | openedition* | ose* \ 1742da2e2ef6Smrg | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ 1743da2e2ef6Smrg | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ 1744da2e2ef6Smrg | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ 1745da2e2ef6Smrg | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ 1746da2e2ef6Smrg | udi* | lites* | ieee* | go32* | aux* | hcos* \ 1747da2e2ef6Smrg | chorusrdb* | cegcc* | glidix* | serenity* \ 1748da2e2ef6Smrg | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ 1749da2e2ef6Smrg | midipix* | mingw32* | mingw64* | mint* \ 1750da2e2ef6Smrg | uxpv* | beos* | mpeix* | udk* | moxiebox* \ 1751da2e2ef6Smrg | interix* | uwin* | mks* | rhapsody* | darwin* \ 1752da2e2ef6Smrg | openstep* | oskit* | conix* | pw32* | nonstopux* \ 1753da2e2ef6Smrg | storm-chaos* | tops10* | tenex* | tops20* | its* \ 1754da2e2ef6Smrg | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ 1755da2e2ef6Smrg | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ 1756da2e2ef6Smrg | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ 1757da2e2ef6Smrg | skyos* | haiku* | rdos* | toppers* | drops* | es* \ 1758da2e2ef6Smrg | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ 1759da2e2ef6Smrg | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ 17604901b09eSmrg | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ 17614901b09eSmrg | fiwix* | mlibc* ) 1762da2e2ef6Smrg ;; 1763da2e2ef6Smrg # This one is extra strict with allowed versions 1764da2e2ef6Smrg sco3.2v2 | sco3.2v[4-9]* | sco5v6*) 1765da2e2ef6Smrg # Don't forget version if it is 3.2v4 or newer. 1766da2e2ef6Smrg ;; 1767da2e2ef6Smrg none) 1768da2e2ef6Smrg ;; 17694901b09eSmrg kernel* ) 17704901b09eSmrg # Restricted further below 17714901b09eSmrg ;; 1772da2e2ef6Smrg *) 1773da2e2ef6Smrg echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 1774da2e2ef6Smrg exit 1 1775da2e2ef6Smrg ;; 1776da2e2ef6Smrgesac 1777da2e2ef6Smrg 1778da2e2ef6Smrg# As a final step for OS-related things, validate the OS-kernel combination 1779da2e2ef6Smrg# (given a valid OS), if there is a kernel. 1780da2e2ef6Smrgcase $kernel-$os in 1781da2e2ef6Smrg linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ 17824901b09eSmrg | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* ) 1783da2e2ef6Smrg ;; 1784da2e2ef6Smrg uclinux-uclibc* ) 1785da2e2ef6Smrg ;; 17864901b09eSmrg managarm-mlibc* | managarm-kernel* ) 17874901b09eSmrg ;; 17884901b09eSmrg -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* ) 1789da2e2ef6Smrg # These are just libc implementations, not actual OSes, and thus 1790da2e2ef6Smrg # require a kernel. 1791da2e2ef6Smrg echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 1792da2e2ef6Smrg exit 1 1793da2e2ef6Smrg ;; 17944901b09eSmrg -kernel* ) 17954901b09eSmrg echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2 17964901b09eSmrg exit 1 17974901b09eSmrg ;; 17984901b09eSmrg *-kernel* ) 17994901b09eSmrg echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2 18004901b09eSmrg exit 1 18014901b09eSmrg ;; 1802da2e2ef6Smrg kfreebsd*-gnu* | kopensolaris*-gnu*) 1803da2e2ef6Smrg ;; 1804da2e2ef6Smrg vxworks-simlinux | vxworks-simwindows | vxworks-spe) 1805da2e2ef6Smrg ;; 1806da2e2ef6Smrg nto-qnx*) 1807da2e2ef6Smrg ;; 1808da2e2ef6Smrg os2-emx) 1809da2e2ef6Smrg ;; 1810da2e2ef6Smrg *-eabi* | *-gnueabi*) 1811da2e2ef6Smrg ;; 1812da2e2ef6Smrg -*) 1813da2e2ef6Smrg # Blank kernel with real OS is always fine. 1814da2e2ef6Smrg ;; 1815da2e2ef6Smrg *-*) 1816da2e2ef6Smrg echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 1817da2e2ef6Smrg exit 1 1818da2e2ef6Smrg ;; 1819da2e2ef6Smrgesac 1820da2e2ef6Smrg 1821145b7b3cSmrg# Here we handle the case where we know the os, and the CPU type, but not the 1822145b7b3cSmrg# manufacturer. We pick the logical manufacturer. 1823da2e2ef6Smrgcase $vendor in 1824da2e2ef6Smrg unknown) 1825da2e2ef6Smrg case $cpu-$os in 1826da2e2ef6Smrg *-riscix*) 1827145b7b3cSmrg vendor=acorn 1828145b7b3cSmrg ;; 1829da2e2ef6Smrg *-sunos*) 1830145b7b3cSmrg vendor=sun 1831145b7b3cSmrg ;; 1832da2e2ef6Smrg *-cnk* | *-aix*) 1833145b7b3cSmrg vendor=ibm 1834145b7b3cSmrg ;; 1835da2e2ef6Smrg *-beos*) 1836145b7b3cSmrg vendor=be 1837145b7b3cSmrg ;; 1838da2e2ef6Smrg *-hpux*) 1839145b7b3cSmrg vendor=hp 1840145b7b3cSmrg ;; 1841da2e2ef6Smrg *-mpeix*) 1842145b7b3cSmrg vendor=hp 1843145b7b3cSmrg ;; 1844da2e2ef6Smrg *-hiux*) 1845145b7b3cSmrg vendor=hitachi 1846145b7b3cSmrg ;; 1847da2e2ef6Smrg *-unos*) 1848145b7b3cSmrg vendor=crds 1849145b7b3cSmrg ;; 1850da2e2ef6Smrg *-dgux*) 1851145b7b3cSmrg vendor=dg 1852145b7b3cSmrg ;; 1853da2e2ef6Smrg *-luna*) 1854145b7b3cSmrg vendor=omron 1855145b7b3cSmrg ;; 1856da2e2ef6Smrg *-genix*) 1857145b7b3cSmrg vendor=ns 1858145b7b3cSmrg ;; 1859da2e2ef6Smrg *-clix*) 1860da2e2ef6Smrg vendor=intergraph 1861da2e2ef6Smrg ;; 1862da2e2ef6Smrg *-mvs* | *-opened*) 1863da2e2ef6Smrg vendor=ibm 1864da2e2ef6Smrg ;; 1865da2e2ef6Smrg *-os400*) 1866145b7b3cSmrg vendor=ibm 1867145b7b3cSmrg ;; 1868da2e2ef6Smrg s390-* | s390x-*) 1869145b7b3cSmrg vendor=ibm 1870145b7b3cSmrg ;; 1871da2e2ef6Smrg *-ptx*) 1872145b7b3cSmrg vendor=sequent 1873145b7b3cSmrg ;; 1874da2e2ef6Smrg *-tpf*) 1875145b7b3cSmrg vendor=ibm 1876145b7b3cSmrg ;; 1877da2e2ef6Smrg *-vxsim* | *-vxworks* | *-windiss*) 1878145b7b3cSmrg vendor=wrs 1879145b7b3cSmrg ;; 1880da2e2ef6Smrg *-aux*) 1881145b7b3cSmrg vendor=apple 1882145b7b3cSmrg ;; 1883da2e2ef6Smrg *-hms*) 1884145b7b3cSmrg vendor=hitachi 1885145b7b3cSmrg ;; 1886da2e2ef6Smrg *-mpw* | *-macos*) 1887145b7b3cSmrg vendor=apple 1888145b7b3cSmrg ;; 1889da2e2ef6Smrg *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) 1890145b7b3cSmrg vendor=atari 1891145b7b3cSmrg ;; 1892da2e2ef6Smrg *-vos*) 1893145b7b3cSmrg vendor=stratus 1894145b7b3cSmrg ;; 1895145b7b3cSmrg esac 1896145b7b3cSmrg ;; 1897145b7b3cSmrgesac 1898145b7b3cSmrg 1899da2e2ef6Smrgecho "$cpu-$vendor-${kernel:+$kernel-}$os" 1900145b7b3cSmrgexit 1901145b7b3cSmrg 1902145b7b3cSmrg# Local variables: 1903da2e2ef6Smrg# eval: (add-hook 'before-save-hook 'time-stamp) 1904145b7b3cSmrg# time-stamp-start: "timestamp='" 1905145b7b3cSmrg# time-stamp-format: "%:y-%02m-%02d" 1906145b7b3cSmrg# time-stamp-end: "'" 1907145b7b3cSmrg# End: 1908