1145b7b3cSmrg#! /bin/sh 2145b7b3cSmrg# Configuration validation subroutine script. 31d778f8eSmrg# Copyright 1992-2024 Free Software Foundation, Inc. 4145b7b3cSmrg 5da2e2ef6Smrg# shellcheck disable=SC2006,SC2268 # see below for rationale 6da2e2ef6Smrg 71d778f8eSmrgtimestamp='2024-01-01' 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 791d778f8eSmrgCopyright 1992-2024 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=" 851d778f8eSmrgTry '$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 *-*-*-*-*) 1331d778f8eSmrg 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* \ 1481d778f8eSmrg | storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \ 1491d778f8eSmrg | windows-* ) 150da2e2ef6Smrg basic_machine=$field1 151da2e2ef6Smrg basic_os=$maybe_os 152da2e2ef6Smrg ;; 153da2e2ef6Smrg android-linux) 154da2e2ef6Smrg basic_machine=$field1-unknown 155da2e2ef6Smrg basic_os=linux-android 156da2e2ef6Smrg ;; 157da2e2ef6Smrg *) 158da2e2ef6Smrg basic_machine=$field1-$field2 159da2e2ef6Smrg basic_os=$field3 160da2e2ef6Smrg ;; 161da2e2ef6Smrg esac 162145b7b3cSmrg ;; 163da2e2ef6Smrg *-*) 164da2e2ef6Smrg # A lone config we happen to match not fitting any pattern 165da2e2ef6Smrg case $field1-$field2 in 166da2e2ef6Smrg decstation-3100) 167da2e2ef6Smrg basic_machine=mips-dec 168da2e2ef6Smrg basic_os= 169da2e2ef6Smrg ;; 170da2e2ef6Smrg *-*) 171da2e2ef6Smrg # Second component is usually, but not always the OS 172da2e2ef6Smrg case $field2 in 173da2e2ef6Smrg # Prevent following clause from handling this valid os 174da2e2ef6Smrg sun*os*) 175da2e2ef6Smrg basic_machine=$field1 176da2e2ef6Smrg basic_os=$field2 177da2e2ef6Smrg ;; 178da2e2ef6Smrg zephyr*) 179da2e2ef6Smrg basic_machine=$field1-unknown 180da2e2ef6Smrg basic_os=$field2 181da2e2ef6Smrg ;; 182da2e2ef6Smrg # Manufacturers 183da2e2ef6Smrg dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ 184da2e2ef6Smrg | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ 185da2e2ef6Smrg | unicom* | ibm* | next | hp | isi* | apollo | altos* \ 186da2e2ef6Smrg | convergent* | ncr* | news | 32* | 3600* | 3100* \ 187da2e2ef6Smrg | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ 188da2e2ef6Smrg | ultra | tti* | harris | dolphin | highlevel | gould \ 189da2e2ef6Smrg | cbm | ns | masscomp | apple | axis | knuth | cray \ 190da2e2ef6Smrg | microblaze* | sim | cisco \ 191da2e2ef6Smrg | oki | wec | wrs | winbond) 192da2e2ef6Smrg basic_machine=$field1-$field2 193da2e2ef6Smrg basic_os= 194da2e2ef6Smrg ;; 195da2e2ef6Smrg *) 196da2e2ef6Smrg basic_machine=$field1 197da2e2ef6Smrg basic_os=$field2 198da2e2ef6Smrg ;; 199da2e2ef6Smrg esac 200da2e2ef6Smrg ;; 201da2e2ef6Smrg esac 202145b7b3cSmrg ;; 203da2e2ef6Smrg *) 204da2e2ef6Smrg # Convert single-component short-hands not valid as part of 205da2e2ef6Smrg # multi-component configurations. 206da2e2ef6Smrg case $field1 in 207da2e2ef6Smrg 386bsd) 208da2e2ef6Smrg basic_machine=i386-pc 209da2e2ef6Smrg basic_os=bsd 210da2e2ef6Smrg ;; 211da2e2ef6Smrg a29khif) 212da2e2ef6Smrg basic_machine=a29k-amd 213da2e2ef6Smrg basic_os=udi 214da2e2ef6Smrg ;; 215da2e2ef6Smrg adobe68k) 216da2e2ef6Smrg basic_machine=m68010-adobe 217da2e2ef6Smrg basic_os=scout 218da2e2ef6Smrg ;; 219da2e2ef6Smrg alliant) 220da2e2ef6Smrg basic_machine=fx80-alliant 221da2e2ef6Smrg basic_os= 222da2e2ef6Smrg ;; 223da2e2ef6Smrg altos | altos3068) 224da2e2ef6Smrg basic_machine=m68k-altos 225da2e2ef6Smrg basic_os= 226da2e2ef6Smrg ;; 227da2e2ef6Smrg am29k) 228da2e2ef6Smrg basic_machine=a29k-none 229da2e2ef6Smrg basic_os=bsd 230da2e2ef6Smrg ;; 231da2e2ef6Smrg amdahl) 232da2e2ef6Smrg basic_machine=580-amdahl 233da2e2ef6Smrg basic_os=sysv 234da2e2ef6Smrg ;; 235da2e2ef6Smrg amiga) 236da2e2ef6Smrg basic_machine=m68k-unknown 237da2e2ef6Smrg basic_os= 238da2e2ef6Smrg ;; 239da2e2ef6Smrg amigaos | amigados) 240da2e2ef6Smrg basic_machine=m68k-unknown 241da2e2ef6Smrg basic_os=amigaos 242da2e2ef6Smrg ;; 243da2e2ef6Smrg amigaunix | amix) 244da2e2ef6Smrg basic_machine=m68k-unknown 245da2e2ef6Smrg basic_os=sysv4 246da2e2ef6Smrg ;; 247da2e2ef6Smrg apollo68) 248da2e2ef6Smrg basic_machine=m68k-apollo 249da2e2ef6Smrg basic_os=sysv 250da2e2ef6Smrg ;; 251da2e2ef6Smrg apollo68bsd) 252da2e2ef6Smrg basic_machine=m68k-apollo 253da2e2ef6Smrg basic_os=bsd 254da2e2ef6Smrg ;; 255da2e2ef6Smrg aros) 256da2e2ef6Smrg basic_machine=i386-pc 257da2e2ef6Smrg basic_os=aros 258da2e2ef6Smrg ;; 259da2e2ef6Smrg aux) 260da2e2ef6Smrg basic_machine=m68k-apple 261da2e2ef6Smrg basic_os=aux 262da2e2ef6Smrg ;; 263da2e2ef6Smrg balance) 264da2e2ef6Smrg basic_machine=ns32k-sequent 265da2e2ef6Smrg basic_os=dynix 266da2e2ef6Smrg ;; 267da2e2ef6Smrg blackfin) 268da2e2ef6Smrg basic_machine=bfin-unknown 269da2e2ef6Smrg basic_os=linux 270da2e2ef6Smrg ;; 271da2e2ef6Smrg cegcc) 272da2e2ef6Smrg basic_machine=arm-unknown 273da2e2ef6Smrg basic_os=cegcc 274da2e2ef6Smrg ;; 275da2e2ef6Smrg convex-c1) 276da2e2ef6Smrg basic_machine=c1-convex 277da2e2ef6Smrg basic_os=bsd 278da2e2ef6Smrg ;; 279da2e2ef6Smrg convex-c2) 280da2e2ef6Smrg basic_machine=c2-convex 281da2e2ef6Smrg basic_os=bsd 282da2e2ef6Smrg ;; 283da2e2ef6Smrg convex-c32) 284da2e2ef6Smrg basic_machine=c32-convex 285da2e2ef6Smrg basic_os=bsd 286da2e2ef6Smrg ;; 287da2e2ef6Smrg convex-c34) 288da2e2ef6Smrg basic_machine=c34-convex 289da2e2ef6Smrg basic_os=bsd 290da2e2ef6Smrg ;; 291da2e2ef6Smrg convex-c38) 292da2e2ef6Smrg basic_machine=c38-convex 293da2e2ef6Smrg basic_os=bsd 294da2e2ef6Smrg ;; 295da2e2ef6Smrg cray) 296da2e2ef6Smrg basic_machine=j90-cray 297da2e2ef6Smrg basic_os=unicos 298da2e2ef6Smrg ;; 299da2e2ef6Smrg crds | unos) 300da2e2ef6Smrg basic_machine=m68k-crds 301da2e2ef6Smrg basic_os= 302da2e2ef6Smrg ;; 303da2e2ef6Smrg da30) 304da2e2ef6Smrg basic_machine=m68k-da30 305da2e2ef6Smrg basic_os= 306da2e2ef6Smrg ;; 307da2e2ef6Smrg decstation | pmax | pmin | dec3100 | decstatn) 308da2e2ef6Smrg basic_machine=mips-dec 309da2e2ef6Smrg basic_os= 310da2e2ef6Smrg ;; 311da2e2ef6Smrg delta88) 312da2e2ef6Smrg basic_machine=m88k-motorola 313da2e2ef6Smrg basic_os=sysv3 314da2e2ef6Smrg ;; 315da2e2ef6Smrg dicos) 316da2e2ef6Smrg basic_machine=i686-pc 317da2e2ef6Smrg basic_os=dicos 318da2e2ef6Smrg ;; 319da2e2ef6Smrg djgpp) 320da2e2ef6Smrg basic_machine=i586-pc 321da2e2ef6Smrg basic_os=msdosdjgpp 322da2e2ef6Smrg ;; 323da2e2ef6Smrg ebmon29k) 324da2e2ef6Smrg basic_machine=a29k-amd 325da2e2ef6Smrg basic_os=ebmon 326da2e2ef6Smrg ;; 327da2e2ef6Smrg es1800 | OSE68k | ose68k | ose | OSE) 328da2e2ef6Smrg basic_machine=m68k-ericsson 329da2e2ef6Smrg basic_os=ose 330da2e2ef6Smrg ;; 331da2e2ef6Smrg gmicro) 332da2e2ef6Smrg basic_machine=tron-gmicro 333da2e2ef6Smrg basic_os=sysv 334da2e2ef6Smrg ;; 335da2e2ef6Smrg go32) 336da2e2ef6Smrg basic_machine=i386-pc 337da2e2ef6Smrg basic_os=go32 338da2e2ef6Smrg ;; 339da2e2ef6Smrg h8300hms) 340da2e2ef6Smrg basic_machine=h8300-hitachi 341da2e2ef6Smrg basic_os=hms 342da2e2ef6Smrg ;; 343da2e2ef6Smrg h8300xray) 344da2e2ef6Smrg basic_machine=h8300-hitachi 345da2e2ef6Smrg basic_os=xray 346da2e2ef6Smrg ;; 347da2e2ef6Smrg h8500hms) 348da2e2ef6Smrg basic_machine=h8500-hitachi 349da2e2ef6Smrg basic_os=hms 350da2e2ef6Smrg ;; 351da2e2ef6Smrg harris) 352da2e2ef6Smrg basic_machine=m88k-harris 353da2e2ef6Smrg basic_os=sysv3 354da2e2ef6Smrg ;; 355da2e2ef6Smrg hp300 | hp300hpux) 356da2e2ef6Smrg basic_machine=m68k-hp 357da2e2ef6Smrg basic_os=hpux 358da2e2ef6Smrg ;; 359da2e2ef6Smrg hp300bsd) 360da2e2ef6Smrg basic_machine=m68k-hp 361da2e2ef6Smrg basic_os=bsd 362da2e2ef6Smrg ;; 363da2e2ef6Smrg hppaosf) 364da2e2ef6Smrg basic_machine=hppa1.1-hp 365da2e2ef6Smrg basic_os=osf 366da2e2ef6Smrg ;; 367da2e2ef6Smrg hppro) 368da2e2ef6Smrg basic_machine=hppa1.1-hp 369da2e2ef6Smrg basic_os=proelf 370da2e2ef6Smrg ;; 371da2e2ef6Smrg i386mach) 372da2e2ef6Smrg basic_machine=i386-mach 373da2e2ef6Smrg basic_os=mach 374da2e2ef6Smrg ;; 375da2e2ef6Smrg isi68 | isi) 376da2e2ef6Smrg basic_machine=m68k-isi 377da2e2ef6Smrg basic_os=sysv 378da2e2ef6Smrg ;; 379da2e2ef6Smrg m68knommu) 380da2e2ef6Smrg basic_machine=m68k-unknown 381da2e2ef6Smrg basic_os=linux 382da2e2ef6Smrg ;; 383da2e2ef6Smrg magnum | m3230) 384da2e2ef6Smrg basic_machine=mips-mips 385da2e2ef6Smrg basic_os=sysv 386da2e2ef6Smrg ;; 387da2e2ef6Smrg merlin) 388da2e2ef6Smrg basic_machine=ns32k-utek 389da2e2ef6Smrg basic_os=sysv 390da2e2ef6Smrg ;; 391da2e2ef6Smrg mingw64) 392da2e2ef6Smrg basic_machine=x86_64-pc 393da2e2ef6Smrg basic_os=mingw64 394da2e2ef6Smrg ;; 395da2e2ef6Smrg mingw32) 396da2e2ef6Smrg basic_machine=i686-pc 397da2e2ef6Smrg basic_os=mingw32 398da2e2ef6Smrg ;; 399da2e2ef6Smrg mingw32ce) 400da2e2ef6Smrg basic_machine=arm-unknown 401da2e2ef6Smrg basic_os=mingw32ce 402da2e2ef6Smrg ;; 403da2e2ef6Smrg monitor) 404da2e2ef6Smrg basic_machine=m68k-rom68k 405da2e2ef6Smrg basic_os=coff 406da2e2ef6Smrg ;; 407da2e2ef6Smrg morphos) 408da2e2ef6Smrg basic_machine=powerpc-unknown 409da2e2ef6Smrg basic_os=morphos 410da2e2ef6Smrg ;; 411da2e2ef6Smrg moxiebox) 412da2e2ef6Smrg basic_machine=moxie-unknown 413da2e2ef6Smrg basic_os=moxiebox 414da2e2ef6Smrg ;; 415da2e2ef6Smrg msdos) 416da2e2ef6Smrg basic_machine=i386-pc 417da2e2ef6Smrg basic_os=msdos 418da2e2ef6Smrg ;; 419da2e2ef6Smrg msys) 420da2e2ef6Smrg basic_machine=i686-pc 421da2e2ef6Smrg basic_os=msys 422da2e2ef6Smrg ;; 423da2e2ef6Smrg mvs) 424da2e2ef6Smrg basic_machine=i370-ibm 425da2e2ef6Smrg basic_os=mvs 426da2e2ef6Smrg ;; 427da2e2ef6Smrg nacl) 428da2e2ef6Smrg basic_machine=le32-unknown 429da2e2ef6Smrg basic_os=nacl 430da2e2ef6Smrg ;; 431da2e2ef6Smrg ncr3000) 432da2e2ef6Smrg basic_machine=i486-ncr 433da2e2ef6Smrg basic_os=sysv4 434da2e2ef6Smrg ;; 435da2e2ef6Smrg netbsd386) 436da2e2ef6Smrg basic_machine=i386-pc 437da2e2ef6Smrg basic_os=netbsd 438da2e2ef6Smrg ;; 439da2e2ef6Smrg netwinder) 440da2e2ef6Smrg basic_machine=armv4l-rebel 441da2e2ef6Smrg basic_os=linux 442da2e2ef6Smrg ;; 443da2e2ef6Smrg news | news700 | news800 | news900) 444da2e2ef6Smrg basic_machine=m68k-sony 445da2e2ef6Smrg basic_os=newsos 446da2e2ef6Smrg ;; 447da2e2ef6Smrg news1000) 448da2e2ef6Smrg basic_machine=m68030-sony 449da2e2ef6Smrg basic_os=newsos 450da2e2ef6Smrg ;; 451da2e2ef6Smrg necv70) 452da2e2ef6Smrg basic_machine=v70-nec 453da2e2ef6Smrg basic_os=sysv 454da2e2ef6Smrg ;; 455da2e2ef6Smrg nh3000) 456da2e2ef6Smrg basic_machine=m68k-harris 457da2e2ef6Smrg basic_os=cxux 458da2e2ef6Smrg ;; 459da2e2ef6Smrg nh[45]000) 460da2e2ef6Smrg basic_machine=m88k-harris 461da2e2ef6Smrg basic_os=cxux 462da2e2ef6Smrg ;; 463da2e2ef6Smrg nindy960) 464da2e2ef6Smrg basic_machine=i960-intel 465da2e2ef6Smrg basic_os=nindy 466da2e2ef6Smrg ;; 467da2e2ef6Smrg mon960) 468da2e2ef6Smrg basic_machine=i960-intel 469da2e2ef6Smrg basic_os=mon960 470da2e2ef6Smrg ;; 471da2e2ef6Smrg nonstopux) 472da2e2ef6Smrg basic_machine=mips-compaq 473da2e2ef6Smrg basic_os=nonstopux 474da2e2ef6Smrg ;; 475da2e2ef6Smrg os400) 476da2e2ef6Smrg basic_machine=powerpc-ibm 477da2e2ef6Smrg basic_os=os400 478da2e2ef6Smrg ;; 479da2e2ef6Smrg OSE68000 | ose68000) 480da2e2ef6Smrg basic_machine=m68000-ericsson 481da2e2ef6Smrg basic_os=ose 482da2e2ef6Smrg ;; 483da2e2ef6Smrg os68k) 484da2e2ef6Smrg basic_machine=m68k-none 485da2e2ef6Smrg basic_os=os68k 486da2e2ef6Smrg ;; 487da2e2ef6Smrg paragon) 488da2e2ef6Smrg basic_machine=i860-intel 489da2e2ef6Smrg basic_os=osf 490da2e2ef6Smrg ;; 491da2e2ef6Smrg parisc) 492da2e2ef6Smrg basic_machine=hppa-unknown 493da2e2ef6Smrg basic_os=linux 494da2e2ef6Smrg ;; 495da2e2ef6Smrg psp) 496da2e2ef6Smrg basic_machine=mipsallegrexel-sony 497da2e2ef6Smrg basic_os=psp 498da2e2ef6Smrg ;; 499da2e2ef6Smrg pw32) 500da2e2ef6Smrg basic_machine=i586-unknown 501da2e2ef6Smrg basic_os=pw32 502da2e2ef6Smrg ;; 503da2e2ef6Smrg rdos | rdos64) 504da2e2ef6Smrg basic_machine=x86_64-pc 505da2e2ef6Smrg basic_os=rdos 506da2e2ef6Smrg ;; 507da2e2ef6Smrg rdos32) 508da2e2ef6Smrg basic_machine=i386-pc 509da2e2ef6Smrg basic_os=rdos 510da2e2ef6Smrg ;; 511da2e2ef6Smrg rom68k) 512da2e2ef6Smrg basic_machine=m68k-rom68k 513da2e2ef6Smrg basic_os=coff 514da2e2ef6Smrg ;; 515da2e2ef6Smrg sa29200) 516da2e2ef6Smrg basic_machine=a29k-amd 517da2e2ef6Smrg basic_os=udi 518da2e2ef6Smrg ;; 519da2e2ef6Smrg sei) 520da2e2ef6Smrg basic_machine=mips-sei 521da2e2ef6Smrg basic_os=seiux 522da2e2ef6Smrg ;; 523da2e2ef6Smrg sequent) 524da2e2ef6Smrg basic_machine=i386-sequent 525da2e2ef6Smrg basic_os= 526da2e2ef6Smrg ;; 527da2e2ef6Smrg sps7) 528da2e2ef6Smrg basic_machine=m68k-bull 529da2e2ef6Smrg basic_os=sysv2 530da2e2ef6Smrg ;; 531da2e2ef6Smrg st2000) 532da2e2ef6Smrg basic_machine=m68k-tandem 533da2e2ef6Smrg basic_os= 534da2e2ef6Smrg ;; 535da2e2ef6Smrg stratus) 536da2e2ef6Smrg basic_machine=i860-stratus 537da2e2ef6Smrg basic_os=sysv4 538da2e2ef6Smrg ;; 539da2e2ef6Smrg sun2) 540da2e2ef6Smrg basic_machine=m68000-sun 541da2e2ef6Smrg basic_os= 542da2e2ef6Smrg ;; 543da2e2ef6Smrg sun2os3) 544da2e2ef6Smrg basic_machine=m68000-sun 545da2e2ef6Smrg basic_os=sunos3 546da2e2ef6Smrg ;; 547da2e2ef6Smrg sun2os4) 548da2e2ef6Smrg basic_machine=m68000-sun 549da2e2ef6Smrg basic_os=sunos4 550da2e2ef6Smrg ;; 551da2e2ef6Smrg sun3) 552da2e2ef6Smrg basic_machine=m68k-sun 553da2e2ef6Smrg basic_os= 554da2e2ef6Smrg ;; 555da2e2ef6Smrg sun3os3) 556da2e2ef6Smrg basic_machine=m68k-sun 557da2e2ef6Smrg basic_os=sunos3 558da2e2ef6Smrg ;; 559da2e2ef6Smrg sun3os4) 560da2e2ef6Smrg basic_machine=m68k-sun 561da2e2ef6Smrg basic_os=sunos4 562da2e2ef6Smrg ;; 563da2e2ef6Smrg sun4) 564da2e2ef6Smrg basic_machine=sparc-sun 565da2e2ef6Smrg basic_os= 566da2e2ef6Smrg ;; 567da2e2ef6Smrg sun4os3) 568da2e2ef6Smrg basic_machine=sparc-sun 569da2e2ef6Smrg basic_os=sunos3 570da2e2ef6Smrg ;; 571da2e2ef6Smrg sun4os4) 572da2e2ef6Smrg basic_machine=sparc-sun 573da2e2ef6Smrg basic_os=sunos4 574da2e2ef6Smrg ;; 575da2e2ef6Smrg sun4sol2) 576da2e2ef6Smrg basic_machine=sparc-sun 577da2e2ef6Smrg basic_os=solaris2 578da2e2ef6Smrg ;; 579da2e2ef6Smrg sun386 | sun386i | roadrunner) 580da2e2ef6Smrg basic_machine=i386-sun 581da2e2ef6Smrg basic_os= 582da2e2ef6Smrg ;; 583da2e2ef6Smrg sv1) 584da2e2ef6Smrg basic_machine=sv1-cray 585da2e2ef6Smrg basic_os=unicos 586da2e2ef6Smrg ;; 587da2e2ef6Smrg symmetry) 588da2e2ef6Smrg basic_machine=i386-sequent 589da2e2ef6Smrg basic_os=dynix 590da2e2ef6Smrg ;; 591da2e2ef6Smrg t3e) 592da2e2ef6Smrg basic_machine=alphaev5-cray 593da2e2ef6Smrg basic_os=unicos 594da2e2ef6Smrg ;; 595da2e2ef6Smrg t90) 596da2e2ef6Smrg basic_machine=t90-cray 597da2e2ef6Smrg basic_os=unicos 598da2e2ef6Smrg ;; 599da2e2ef6Smrg toad1) 600da2e2ef6Smrg basic_machine=pdp10-xkl 601da2e2ef6Smrg basic_os=tops20 602da2e2ef6Smrg ;; 603da2e2ef6Smrg tpf) 604da2e2ef6Smrg basic_machine=s390x-ibm 605da2e2ef6Smrg basic_os=tpf 606da2e2ef6Smrg ;; 607da2e2ef6Smrg udi29k) 608da2e2ef6Smrg basic_machine=a29k-amd 609da2e2ef6Smrg basic_os=udi 610da2e2ef6Smrg ;; 611da2e2ef6Smrg ultra3) 612da2e2ef6Smrg basic_machine=a29k-nyu 613da2e2ef6Smrg basic_os=sym1 614da2e2ef6Smrg ;; 615da2e2ef6Smrg v810 | necv810) 616da2e2ef6Smrg basic_machine=v810-nec 617da2e2ef6Smrg basic_os=none 618da2e2ef6Smrg ;; 619da2e2ef6Smrg vaxv) 620da2e2ef6Smrg basic_machine=vax-dec 621da2e2ef6Smrg basic_os=sysv 622da2e2ef6Smrg ;; 623da2e2ef6Smrg vms) 624da2e2ef6Smrg basic_machine=vax-dec 625da2e2ef6Smrg basic_os=vms 626da2e2ef6Smrg ;; 627da2e2ef6Smrg vsta) 628da2e2ef6Smrg basic_machine=i386-pc 629da2e2ef6Smrg basic_os=vsta 630da2e2ef6Smrg ;; 631da2e2ef6Smrg vxworks960) 632da2e2ef6Smrg basic_machine=i960-wrs 633da2e2ef6Smrg basic_os=vxworks 634da2e2ef6Smrg ;; 635da2e2ef6Smrg vxworks68) 636da2e2ef6Smrg basic_machine=m68k-wrs 637da2e2ef6Smrg basic_os=vxworks 638da2e2ef6Smrg ;; 639da2e2ef6Smrg vxworks29k) 640da2e2ef6Smrg basic_machine=a29k-wrs 641da2e2ef6Smrg basic_os=vxworks 642da2e2ef6Smrg ;; 643da2e2ef6Smrg xbox) 644da2e2ef6Smrg basic_machine=i686-pc 645da2e2ef6Smrg basic_os=mingw32 646da2e2ef6Smrg ;; 647da2e2ef6Smrg ymp) 648da2e2ef6Smrg basic_machine=ymp-cray 649da2e2ef6Smrg basic_os=unicos 650da2e2ef6Smrg ;; 651da2e2ef6Smrg *) 652da2e2ef6Smrg basic_machine=$1 653da2e2ef6Smrg basic_os= 654da2e2ef6Smrg ;; 655da2e2ef6Smrg esac 656145b7b3cSmrg ;; 657145b7b3cSmrgesac 658145b7b3cSmrg 659da2e2ef6Smrg# Decode 1-component or ad-hoc basic machines 660145b7b3cSmrgcase $basic_machine in 661da2e2ef6Smrg # Here we handle the default manufacturer of certain CPU types. It is in 662da2e2ef6Smrg # some cases the only manufacturer, in others, it is the most popular. 663da2e2ef6Smrg w89k) 664da2e2ef6Smrg cpu=hppa1.1 665da2e2ef6Smrg vendor=winbond 666b7d26471Smrg ;; 667da2e2ef6Smrg op50n) 668da2e2ef6Smrg cpu=hppa1.1 669da2e2ef6Smrg vendor=oki 670145b7b3cSmrg ;; 671da2e2ef6Smrg op60c) 672da2e2ef6Smrg cpu=hppa1.1 673da2e2ef6Smrg vendor=oki 674145b7b3cSmrg ;; 675da2e2ef6Smrg ibm*) 676da2e2ef6Smrg cpu=i370 677da2e2ef6Smrg vendor=ibm 678145b7b3cSmrg ;; 679da2e2ef6Smrg orion105) 680da2e2ef6Smrg cpu=clipper 681da2e2ef6Smrg vendor=highlevel 682b7d26471Smrg ;; 683da2e2ef6Smrg mac | mpw | mac-mpw) 684da2e2ef6Smrg cpu=m68k 685da2e2ef6Smrg vendor=apple 686b7d26471Smrg ;; 687da2e2ef6Smrg pmac | pmac-mpw) 688da2e2ef6Smrg cpu=powerpc 689da2e2ef6Smrg vendor=apple 690b7d26471Smrg ;; 691b7d26471Smrg 692145b7b3cSmrg # Recognize the various machine names and aliases which stand 693145b7b3cSmrg # for a CPU type and a company and sometimes even an OS. 694145b7b3cSmrg 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 695da2e2ef6Smrg cpu=m68000 696da2e2ef6Smrg vendor=att 697145b7b3cSmrg ;; 698145b7b3cSmrg 3b*) 699da2e2ef6Smrg cpu=we32k 700da2e2ef6Smrg vendor=att 701578741aaSmrg ;; 7025ffd6003Smrg bluegene*) 703da2e2ef6Smrg cpu=powerpc 704da2e2ef6Smrg vendor=ibm 705da2e2ef6Smrg basic_os=cnk 706145b7b3cSmrg ;; 707145b7b3cSmrg decsystem10* | dec10*) 708da2e2ef6Smrg cpu=pdp10 709da2e2ef6Smrg vendor=dec 710da2e2ef6Smrg basic_os=tops10 711145b7b3cSmrg ;; 712145b7b3cSmrg decsystem20* | dec20*) 713da2e2ef6Smrg cpu=pdp10 714da2e2ef6Smrg vendor=dec 715da2e2ef6Smrg basic_os=tops20 716145b7b3cSmrg ;; 717145b7b3cSmrg delta | 3300 | motorola-3300 | motorola-delta \ 718145b7b3cSmrg | 3300-motorola | delta-motorola) 719da2e2ef6Smrg cpu=m68k 720da2e2ef6Smrg vendor=motorola 721145b7b3cSmrg ;; 722b7d26471Smrg dpx2*) 723da2e2ef6Smrg cpu=m68k 724da2e2ef6Smrg vendor=bull 725da2e2ef6Smrg basic_os=sysv3 726145b7b3cSmrg ;; 727145b7b3cSmrg encore | umax | mmax) 728da2e2ef6Smrg cpu=ns32k 729da2e2ef6Smrg vendor=encore 730145b7b3cSmrg ;; 731da2e2ef6Smrg elxsi) 732da2e2ef6Smrg cpu=elxsi 733da2e2ef6Smrg vendor=elxsi 734da2e2ef6Smrg basic_os=${basic_os:-bsd} 735145b7b3cSmrg ;; 736145b7b3cSmrg fx2800) 737da2e2ef6Smrg cpu=i860 738da2e2ef6Smrg vendor=alliant 739145b7b3cSmrg ;; 740145b7b3cSmrg genix) 741da2e2ef6Smrg cpu=ns32k 742da2e2ef6Smrg vendor=ns 743145b7b3cSmrg ;; 744145b7b3cSmrg h3050r* | hiux*) 745da2e2ef6Smrg cpu=hppa1.1 746da2e2ef6Smrg vendor=hitachi 747da2e2ef6Smrg basic_os=hiuxwe2 748145b7b3cSmrg ;; 749145b7b3cSmrg hp3k9[0-9][0-9] | hp9[0-9][0-9]) 750da2e2ef6Smrg cpu=hppa1.0 751da2e2ef6Smrg vendor=hp 752145b7b3cSmrg ;; 753145b7b3cSmrg hp9k2[0-9][0-9] | hp9k31[0-9]) 754da2e2ef6Smrg cpu=m68000 755da2e2ef6Smrg vendor=hp 756145b7b3cSmrg ;; 757145b7b3cSmrg hp9k3[2-9][0-9]) 758da2e2ef6Smrg cpu=m68k 759da2e2ef6Smrg vendor=hp 760145b7b3cSmrg ;; 761145b7b3cSmrg hp9k6[0-9][0-9] | hp6[0-9][0-9]) 762da2e2ef6Smrg cpu=hppa1.0 763da2e2ef6Smrg vendor=hp 764145b7b3cSmrg ;; 765145b7b3cSmrg hp9k7[0-79][0-9] | hp7[0-79][0-9]) 766da2e2ef6Smrg cpu=hppa1.1 767da2e2ef6Smrg vendor=hp 768145b7b3cSmrg ;; 769145b7b3cSmrg hp9k78[0-9] | hp78[0-9]) 770145b7b3cSmrg # FIXME: really hppa2.0-hp 771da2e2ef6Smrg cpu=hppa1.1 772da2e2ef6Smrg vendor=hp 773145b7b3cSmrg ;; 774145b7b3cSmrg hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 775145b7b3cSmrg # FIXME: really hppa2.0-hp 776da2e2ef6Smrg cpu=hppa1.1 777da2e2ef6Smrg vendor=hp 778145b7b3cSmrg ;; 779145b7b3cSmrg hp9k8[0-9][13679] | hp8[0-9][13679]) 780da2e2ef6Smrg cpu=hppa1.1 781da2e2ef6Smrg vendor=hp 782145b7b3cSmrg ;; 783145b7b3cSmrg hp9k8[0-9][0-9] | hp8[0-9][0-9]) 784da2e2ef6Smrg cpu=hppa1.0 785da2e2ef6Smrg vendor=hp 786145b7b3cSmrg ;; 787145b7b3cSmrg i*86v32) 788da2e2ef6Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 789da2e2ef6Smrg vendor=pc 790da2e2ef6Smrg basic_os=sysv32 791145b7b3cSmrg ;; 792145b7b3cSmrg i*86v4*) 793da2e2ef6Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 794da2e2ef6Smrg vendor=pc 795da2e2ef6Smrg basic_os=sysv4 796145b7b3cSmrg ;; 797145b7b3cSmrg i*86v) 798da2e2ef6Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 799da2e2ef6Smrg vendor=pc 800da2e2ef6Smrg basic_os=sysv 801145b7b3cSmrg ;; 802145b7b3cSmrg i*86sol2) 803da2e2ef6Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 804da2e2ef6Smrg vendor=pc 805da2e2ef6Smrg basic_os=solaris2 806145b7b3cSmrg ;; 807da2e2ef6Smrg j90 | j90-cray) 808da2e2ef6Smrg cpu=j90 809da2e2ef6Smrg vendor=cray 810da2e2ef6Smrg basic_os=${basic_os:-unicos} 811145b7b3cSmrg ;; 812145b7b3cSmrg iris | iris4d) 813da2e2ef6Smrg cpu=mips 814da2e2ef6Smrg vendor=sgi 815da2e2ef6Smrg case $basic_os in 816da2e2ef6Smrg irix*) 817145b7b3cSmrg ;; 818145b7b3cSmrg *) 819da2e2ef6Smrg basic_os=irix4 820145b7b3cSmrg ;; 821145b7b3cSmrg esac 822145b7b3cSmrg ;; 823145b7b3cSmrg miniframe) 824da2e2ef6Smrg cpu=m68000 825da2e2ef6Smrg vendor=convergent 826145b7b3cSmrg ;; 827da2e2ef6Smrg *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) 828da2e2ef6Smrg cpu=m68k 829da2e2ef6Smrg vendor=atari 830da2e2ef6Smrg basic_os=mint 831145b7b3cSmrg ;; 832145b7b3cSmrg news-3600 | risc-news) 833da2e2ef6Smrg cpu=mips 834da2e2ef6Smrg vendor=sony 835da2e2ef6Smrg basic_os=newsos 836145b7b3cSmrg ;; 837b7d26471Smrg next | m*-next) 838da2e2ef6Smrg cpu=m68k 839da2e2ef6Smrg vendor=next 840da2e2ef6Smrg case $basic_os in 841da2e2ef6Smrg openstep*) 842da2e2ef6Smrg ;; 843da2e2ef6Smrg nextstep*) 844145b7b3cSmrg ;; 845da2e2ef6Smrg ns2*) 846da2e2ef6Smrg basic_os=nextstep2 847145b7b3cSmrg ;; 848145b7b3cSmrg *) 849da2e2ef6Smrg basic_os=nextstep3 850145b7b3cSmrg ;; 851145b7b3cSmrg esac 852145b7b3cSmrg ;; 853145b7b3cSmrg np1) 854da2e2ef6Smrg cpu=np1 855da2e2ef6Smrg vendor=gould 856b7d26471Smrg ;; 857145b7b3cSmrg op50n-* | op60c-*) 858da2e2ef6Smrg cpu=hppa1.1 859da2e2ef6Smrg vendor=oki 860da2e2ef6Smrg basic_os=proelf 861145b7b3cSmrg ;; 862145b7b3cSmrg pa-hitachi) 863da2e2ef6Smrg cpu=hppa1.1 864da2e2ef6Smrg vendor=hitachi 865da2e2ef6Smrg basic_os=hiuxwe2 866578741aaSmrg ;; 867145b7b3cSmrg pbd) 868da2e2ef6Smrg cpu=sparc 869da2e2ef6Smrg vendor=tti 870145b7b3cSmrg ;; 871145b7b3cSmrg pbb) 872da2e2ef6Smrg cpu=m68k 873da2e2ef6Smrg vendor=tti 874145b7b3cSmrg ;; 875da2e2ef6Smrg pc532) 876da2e2ef6Smrg cpu=ns32k 877da2e2ef6Smrg vendor=pc532 878145b7b3cSmrg ;; 879145b7b3cSmrg pn) 880da2e2ef6Smrg cpu=pn 881da2e2ef6Smrg vendor=gould 882145b7b3cSmrg ;; 883da2e2ef6Smrg power) 884da2e2ef6Smrg cpu=power 885da2e2ef6Smrg vendor=ibm 886145b7b3cSmrg ;; 887da2e2ef6Smrg ps2) 888da2e2ef6Smrg cpu=i386 889da2e2ef6Smrg vendor=ibm 890145b7b3cSmrg ;; 891da2e2ef6Smrg rm[46]00) 892da2e2ef6Smrg cpu=mips 893da2e2ef6Smrg vendor=siemens 894145b7b3cSmrg ;; 895da2e2ef6Smrg rtpc | rtpc-*) 896da2e2ef6Smrg cpu=romp 897da2e2ef6Smrg vendor=ibm 898145b7b3cSmrg ;; 899da2e2ef6Smrg sde) 900da2e2ef6Smrg cpu=mipsisa32 901da2e2ef6Smrg vendor=sde 902da2e2ef6Smrg basic_os=${basic_os:-elf} 903145b7b3cSmrg ;; 904da2e2ef6Smrg simso-wrs) 905da2e2ef6Smrg cpu=sparclite 906da2e2ef6Smrg vendor=wrs 907da2e2ef6Smrg basic_os=vxworks 908145b7b3cSmrg ;; 909da2e2ef6Smrg tower | tower-32) 910da2e2ef6Smrg cpu=m68k 911da2e2ef6Smrg vendor=ncr 912145b7b3cSmrg ;; 913da2e2ef6Smrg vpp*|vx|vx-*) 914da2e2ef6Smrg cpu=f301 915da2e2ef6Smrg vendor=fujitsu 916b7d26471Smrg ;; 917da2e2ef6Smrg w65) 918da2e2ef6Smrg cpu=w65 919da2e2ef6Smrg vendor=wdc 920145b7b3cSmrg ;; 921da2e2ef6Smrg w89k-*) 922da2e2ef6Smrg cpu=hppa1.1 923da2e2ef6Smrg vendor=winbond 924da2e2ef6Smrg basic_os=proelf 925145b7b3cSmrg ;; 926da2e2ef6Smrg none) 927da2e2ef6Smrg cpu=none 928da2e2ef6Smrg vendor=none 929145b7b3cSmrg ;; 930da2e2ef6Smrg leon|leon[3-9]) 931da2e2ef6Smrg cpu=sparc 932da2e2ef6Smrg vendor=$basic_machine 933145b7b3cSmrg ;; 934da2e2ef6Smrg leon-*|leon[3-9]-*) 935da2e2ef6Smrg cpu=sparc 936da2e2ef6Smrg vendor=`echo "$basic_machine" | sed 's/-.*//'` 937145b7b3cSmrg ;; 938da2e2ef6Smrg 939da2e2ef6Smrg *-*) 940da2e2ef6Smrg # shellcheck disable=SC2162 941da2e2ef6Smrg saved_IFS=$IFS 942da2e2ef6Smrg IFS="-" read cpu vendor <<EOF 943da2e2ef6Smrg$basic_machine 944da2e2ef6SmrgEOF 945da2e2ef6Smrg IFS=$saved_IFS 946145b7b3cSmrg ;; 9471d778f8eSmrg # We use 'pc' rather than 'unknown' 948da2e2ef6Smrg # because (1) that's what they normally are, and 949da2e2ef6Smrg # (2) the word "unknown" tends to confuse beginning users. 950da2e2ef6Smrg i*86 | x86_64) 951da2e2ef6Smrg cpu=$basic_machine 952da2e2ef6Smrg vendor=pc 953145b7b3cSmrg ;; 954da2e2ef6Smrg # These rules are duplicated from below for sake of the special case above; 955da2e2ef6Smrg # i.e. things that normalized to x86 arches should also default to "pc" 956da2e2ef6Smrg pc98) 957da2e2ef6Smrg cpu=i386 958da2e2ef6Smrg vendor=pc 959145b7b3cSmrg ;; 960da2e2ef6Smrg x64 | amd64) 961da2e2ef6Smrg cpu=x86_64 962da2e2ef6Smrg vendor=pc 963145b7b3cSmrg ;; 964da2e2ef6Smrg # Recognize the basic CPU types without company name. 965da2e2ef6Smrg *) 966da2e2ef6Smrg cpu=$basic_machine 967da2e2ef6Smrg vendor=unknown 968578741aaSmrg ;; 969da2e2ef6Smrgesac 970da2e2ef6Smrg 971da2e2ef6Smrgunset -v basic_machine 972da2e2ef6Smrg 973da2e2ef6Smrg# Decode basic machines in the full and proper CPU-Company form. 974da2e2ef6Smrgcase $cpu-$vendor in 975da2e2ef6Smrg # Here we handle the default manufacturer of certain CPU types in canonical form. It is in 976da2e2ef6Smrg # some cases the only manufacturer, in others, it is the most popular. 977da2e2ef6Smrg craynv-unknown) 978da2e2ef6Smrg vendor=cray 979da2e2ef6Smrg basic_os=${basic_os:-unicosmp} 980145b7b3cSmrg ;; 981da2e2ef6Smrg c90-unknown | c90-cray) 982da2e2ef6Smrg vendor=cray 983da2e2ef6Smrg basic_os=${Basic_os:-unicos} 984145b7b3cSmrg ;; 985da2e2ef6Smrg fx80-unknown) 986da2e2ef6Smrg vendor=alliant 987578741aaSmrg ;; 988da2e2ef6Smrg romp-unknown) 989da2e2ef6Smrg vendor=ibm 990145b7b3cSmrg ;; 991da2e2ef6Smrg mmix-unknown) 992da2e2ef6Smrg vendor=knuth 993145b7b3cSmrg ;; 994da2e2ef6Smrg microblaze-unknown | microblazeel-unknown) 995da2e2ef6Smrg vendor=xilinx 996145b7b3cSmrg ;; 997da2e2ef6Smrg rs6000-unknown) 998da2e2ef6Smrg vendor=ibm 999145b7b3cSmrg ;; 1000da2e2ef6Smrg vax-unknown) 1001da2e2ef6Smrg vendor=dec 1002145b7b3cSmrg ;; 1003da2e2ef6Smrg pdp11-unknown) 1004da2e2ef6Smrg vendor=dec 1005b7d26471Smrg ;; 1006da2e2ef6Smrg we32k-unknown) 1007da2e2ef6Smrg vendor=att 1008145b7b3cSmrg ;; 1009da2e2ef6Smrg cydra-unknown) 1010da2e2ef6Smrg vendor=cydrome 1011145b7b3cSmrg ;; 1012da2e2ef6Smrg i370-ibm*) 1013da2e2ef6Smrg vendor=ibm 1014145b7b3cSmrg ;; 1015da2e2ef6Smrg orion-unknown) 1016da2e2ef6Smrg vendor=highlevel 1017145b7b3cSmrg ;; 1018da2e2ef6Smrg xps-unknown | xps100-unknown) 1019da2e2ef6Smrg cpu=xps100 1020da2e2ef6Smrg vendor=honeywell 1021145b7b3cSmrg ;; 1022da2e2ef6Smrg 1023da2e2ef6Smrg # Here we normalize CPU types with a missing or matching vendor 10244901b09eSmrg armh-unknown | armh-alt) 10254901b09eSmrg cpu=armv7l 10264901b09eSmrg vendor=alt 10274901b09eSmrg basic_os=${basic_os:-linux-gnueabihf} 10284901b09eSmrg ;; 1029da2e2ef6Smrg dpx20-unknown | dpx20-bull) 1030da2e2ef6Smrg cpu=rs6000 1031da2e2ef6Smrg vendor=bull 1032da2e2ef6Smrg basic_os=${basic_os:-bosx} 1033145b7b3cSmrg ;; 1034da2e2ef6Smrg 1035da2e2ef6Smrg # Here we normalize CPU types irrespective of the vendor 1036da2e2ef6Smrg amd64-*) 1037da2e2ef6Smrg cpu=x86_64 1038145b7b3cSmrg ;; 1039da2e2ef6Smrg blackfin-*) 1040da2e2ef6Smrg cpu=bfin 1041da2e2ef6Smrg basic_os=linux 1042145b7b3cSmrg ;; 1043da2e2ef6Smrg c54x-*) 1044da2e2ef6Smrg cpu=tic54x 1045145b7b3cSmrg ;; 1046da2e2ef6Smrg c55x-*) 1047da2e2ef6Smrg cpu=tic55x 1048145b7b3cSmrg ;; 1049da2e2ef6Smrg c6x-*) 1050da2e2ef6Smrg cpu=tic6x 1051145b7b3cSmrg ;; 1052da2e2ef6Smrg e500v[12]-*) 1053da2e2ef6Smrg cpu=powerpc 1054da2e2ef6Smrg basic_os=${basic_os}"spe" 1055145b7b3cSmrg ;; 1056da2e2ef6Smrg mips3*-*) 1057da2e2ef6Smrg cpu=mips64 1058145b7b3cSmrg ;; 1059da2e2ef6Smrg ms1-*) 1060da2e2ef6Smrg cpu=mt 1061145b7b3cSmrg ;; 1062da2e2ef6Smrg m68knommu-*) 1063da2e2ef6Smrg cpu=m68k 1064da2e2ef6Smrg basic_os=linux 1065145b7b3cSmrg ;; 1066da2e2ef6Smrg m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) 1067da2e2ef6Smrg cpu=s12z 1068578741aaSmrg ;; 1069da2e2ef6Smrg openrisc-*) 1070da2e2ef6Smrg cpu=or32 1071145b7b3cSmrg ;; 1072da2e2ef6Smrg parisc-*) 1073da2e2ef6Smrg cpu=hppa 1074da2e2ef6Smrg basic_os=linux 1075145b7b3cSmrg ;; 1076da2e2ef6Smrg pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 1077da2e2ef6Smrg cpu=i586 1078145b7b3cSmrg ;; 10794901b09eSmrg pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*) 1080da2e2ef6Smrg cpu=i686 1081145b7b3cSmrg ;; 1082da2e2ef6Smrg pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 1083da2e2ef6Smrg cpu=i686 1084145b7b3cSmrg ;; 1085da2e2ef6Smrg pentium4-*) 1086da2e2ef6Smrg cpu=i786 1087145b7b3cSmrg ;; 1088da2e2ef6Smrg pc98-*) 1089da2e2ef6Smrg cpu=i386 1090145b7b3cSmrg ;; 1091da2e2ef6Smrg ppc-* | ppcbe-*) 1092da2e2ef6Smrg cpu=powerpc 1093145b7b3cSmrg ;; 1094da2e2ef6Smrg ppcle-* | powerpclittle-*) 1095da2e2ef6Smrg cpu=powerpcle 1096145b7b3cSmrg ;; 1097da2e2ef6Smrg ppc64-*) 1098da2e2ef6Smrg cpu=powerpc64 1099145b7b3cSmrg ;; 1100da2e2ef6Smrg ppc64le-* | powerpc64little-*) 1101da2e2ef6Smrg cpu=powerpc64le 1102145b7b3cSmrg ;; 1103da2e2ef6Smrg sb1-*) 1104da2e2ef6Smrg cpu=mipsisa64sb1 1105145b7b3cSmrg ;; 1106da2e2ef6Smrg sb1el-*) 1107da2e2ef6Smrg cpu=mipsisa64sb1el 1108145b7b3cSmrg ;; 1109da2e2ef6Smrg sh5e[lb]-*) 1110da2e2ef6Smrg cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` 1111145b7b3cSmrg ;; 1112da2e2ef6Smrg spur-*) 1113da2e2ef6Smrg cpu=spur 1114145b7b3cSmrg ;; 1115da2e2ef6Smrg strongarm-* | thumb-*) 1116da2e2ef6Smrg cpu=arm 1117145b7b3cSmrg ;; 1118da2e2ef6Smrg tx39-*) 1119da2e2ef6Smrg cpu=mipstx39 1120b7d26471Smrg ;; 1121da2e2ef6Smrg tx39el-*) 1122da2e2ef6Smrg cpu=mipstx39el 1123145b7b3cSmrg ;; 1124da2e2ef6Smrg x64-*) 1125da2e2ef6Smrg cpu=x86_64 1126145b7b3cSmrg ;; 1127b7d26471Smrg xscale-* | xscalee[bl]-*) 1128da2e2ef6Smrg cpu=`echo "$cpu" | sed 's/^xscale/arm/'` 1129145b7b3cSmrg ;; 11304901b09eSmrg arm64-* | aarch64le-*) 1131da2e2ef6Smrg cpu=aarch64 1132145b7b3cSmrg ;; 1133145b7b3cSmrg 1134da2e2ef6Smrg # Recognize the canonical CPU Types that limit and/or modify the 1135da2e2ef6Smrg # company names they are paired with. 1136da2e2ef6Smrg cr16-*) 1137da2e2ef6Smrg basic_os=${basic_os:-elf} 1138145b7b3cSmrg ;; 1139da2e2ef6Smrg crisv32-* | etraxfs*-*) 1140da2e2ef6Smrg cpu=crisv32 1141da2e2ef6Smrg vendor=axis 1142145b7b3cSmrg ;; 1143da2e2ef6Smrg cris-* | etrax*-*) 1144da2e2ef6Smrg cpu=cris 1145da2e2ef6Smrg vendor=axis 1146145b7b3cSmrg ;; 1147da2e2ef6Smrg crx-*) 1148da2e2ef6Smrg basic_os=${basic_os:-elf} 1149145b7b3cSmrg ;; 1150da2e2ef6Smrg neo-tandem) 1151da2e2ef6Smrg cpu=neo 1152da2e2ef6Smrg vendor=tandem 1153145b7b3cSmrg ;; 1154da2e2ef6Smrg nse-tandem) 1155da2e2ef6Smrg cpu=nse 1156da2e2ef6Smrg vendor=tandem 1157145b7b3cSmrg ;; 1158da2e2ef6Smrg nsr-tandem) 1159da2e2ef6Smrg cpu=nsr 1160da2e2ef6Smrg vendor=tandem 1161145b7b3cSmrg ;; 1162da2e2ef6Smrg nsv-tandem) 1163da2e2ef6Smrg cpu=nsv 1164da2e2ef6Smrg vendor=tandem 1165145b7b3cSmrg ;; 1166da2e2ef6Smrg nsx-tandem) 1167da2e2ef6Smrg cpu=nsx 1168da2e2ef6Smrg vendor=tandem 1169145b7b3cSmrg ;; 1170da2e2ef6Smrg mipsallegrexel-sony) 1171da2e2ef6Smrg cpu=mipsallegrexel 1172da2e2ef6Smrg vendor=sony 1173145b7b3cSmrg ;; 1174da2e2ef6Smrg tile*-*) 1175da2e2ef6Smrg basic_os=${basic_os:-linux-gnu} 1176145b7b3cSmrg ;; 1177da2e2ef6Smrg 1178145b7b3cSmrg *) 1179da2e2ef6Smrg # Recognize the canonical CPU types that are allowed with any 1180da2e2ef6Smrg # company name. 1181da2e2ef6Smrg case $cpu in 1182da2e2ef6Smrg 1750a | 580 \ 1183da2e2ef6Smrg | a29k \ 11841d778f8eSmrg | aarch64 | aarch64_be | aarch64c | arm64ec \ 1185da2e2ef6Smrg | abacus \ 1186da2e2ef6Smrg | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ 1187da2e2ef6Smrg | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ 1188da2e2ef6Smrg | alphapca5[67] | alpha64pca5[67] \ 1189da2e2ef6Smrg | am33_2.0 \ 1190da2e2ef6Smrg | amdgcn \ 1191da2e2ef6Smrg | arc | arceb | arc32 | arc64 \ 1192da2e2ef6Smrg | arm | arm[lb]e | arme[lb] | armv* \ 1193da2e2ef6Smrg | avr | avr32 \ 1194da2e2ef6Smrg | asmjs \ 1195da2e2ef6Smrg | ba \ 1196da2e2ef6Smrg | be32 | be64 \ 1197da2e2ef6Smrg | bfin | bpf | bs2000 \ 1198da2e2ef6Smrg | c[123]* | c30 | [cjt]90 | c4x \ 1199da2e2ef6Smrg | c8051 | clipper | craynv | csky | cydra \ 1200da2e2ef6Smrg | d10v | d30v | dlx | dsp16xx \ 1201da2e2ef6Smrg | e2k | elxsi | epiphany \ 1202da2e2ef6Smrg | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ 12031d778f8eSmrg | javascript \ 1204da2e2ef6Smrg | h8300 | h8500 \ 1205da2e2ef6Smrg | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 1206da2e2ef6Smrg | hexagon \ 1207da2e2ef6Smrg | i370 | i*86 | i860 | i960 | ia16 | ia64 \ 1208da2e2ef6Smrg | ip2k | iq2000 \ 1209da2e2ef6Smrg | k1om \ 12101d778f8eSmrg | kvx \ 1211da2e2ef6Smrg | le32 | le64 \ 1212da2e2ef6Smrg | lm32 \ 12134901b09eSmrg | loongarch32 | loongarch64 \ 1214da2e2ef6Smrg | m32c | m32r | m32rle \ 1215da2e2ef6Smrg | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ 1216da2e2ef6Smrg | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ 1217da2e2ef6Smrg | m88110 | m88k | maxq | mb | mcore | mep | metag \ 1218da2e2ef6Smrg | microblaze | microblazeel \ 12191d778f8eSmrg | mips* \ 1220da2e2ef6Smrg | mmix \ 1221da2e2ef6Smrg | mn10200 | mn10300 \ 1222da2e2ef6Smrg | moxie \ 1223da2e2ef6Smrg | mt \ 1224da2e2ef6Smrg | msp430 \ 12251d778f8eSmrg | nanomips* \ 1226da2e2ef6Smrg | nds32 | nds32le | nds32be \ 1227da2e2ef6Smrg | nfp \ 1228da2e2ef6Smrg | nios | nios2 | nios2eb | nios2el \ 1229da2e2ef6Smrg | none | np1 | ns16k | ns32k | nvptx \ 1230da2e2ef6Smrg | open8 \ 1231da2e2ef6Smrg | or1k* \ 1232da2e2ef6Smrg | or32 \ 1233da2e2ef6Smrg | orion \ 1234da2e2ef6Smrg | picochip \ 1235da2e2ef6Smrg | pdp10 | pdp11 | pj | pjl | pn | power \ 1236da2e2ef6Smrg | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ 1237da2e2ef6Smrg | pru \ 1238da2e2ef6Smrg | pyramid \ 1239da2e2ef6Smrg | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ 1240da2e2ef6Smrg | rl78 | romp | rs6000 | rx \ 1241da2e2ef6Smrg | s390 | s390x \ 1242da2e2ef6Smrg | score \ 1243da2e2ef6Smrg | sh | shl \ 1244da2e2ef6Smrg | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ 1245da2e2ef6Smrg | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ 1246da2e2ef6Smrg | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ 1247da2e2ef6Smrg | sparclite \ 1248da2e2ef6Smrg | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ 1249da2e2ef6Smrg | spu \ 1250da2e2ef6Smrg | tahoe \ 1251da2e2ef6Smrg | thumbv7* \ 1252da2e2ef6Smrg | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ 1253da2e2ef6Smrg | tron \ 1254da2e2ef6Smrg | ubicom32 \ 1255da2e2ef6Smrg | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ 1256da2e2ef6Smrg | vax \ 12571d778f8eSmrg | vc4 \ 1258da2e2ef6Smrg | visium \ 1259da2e2ef6Smrg | w65 \ 1260da2e2ef6Smrg | wasm32 | wasm64 \ 1261da2e2ef6Smrg | we32k \ 1262da2e2ef6Smrg | x86 | x86_64 | xc16x | xgate | xps100 \ 1263da2e2ef6Smrg | xstormy16 | xtensa* \ 1264da2e2ef6Smrg | ymp \ 1265da2e2ef6Smrg | z8k | z80) 1266da2e2ef6Smrg ;; 1267da2e2ef6Smrg 1268da2e2ef6Smrg *) 12691d778f8eSmrg echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2 1270da2e2ef6Smrg exit 1 1271da2e2ef6Smrg ;; 1272da2e2ef6Smrg esac 1273145b7b3cSmrg ;; 1274145b7b3cSmrgesac 1275145b7b3cSmrg 1276145b7b3cSmrg# Here we canonicalize certain aliases for manufacturers. 1277da2e2ef6Smrgcase $vendor in 1278da2e2ef6Smrg digital*) 1279da2e2ef6Smrg vendor=dec 1280145b7b3cSmrg ;; 1281da2e2ef6Smrg commodore*) 1282da2e2ef6Smrg vendor=cbm 1283145b7b3cSmrg ;; 1284145b7b3cSmrg *) 1285145b7b3cSmrg ;; 1286145b7b3cSmrgesac 1287145b7b3cSmrg 1288145b7b3cSmrg# Decode manufacturer-specific aliases for certain operating systems. 1289145b7b3cSmrg 12901d778f8eSmrgif test x"$basic_os" != x 1291145b7b3cSmrgthen 1292da2e2ef6Smrg 12934901b09eSmrg# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just 1294da2e2ef6Smrg# set os. 12951d778f8eSmrgobj= 1296da2e2ef6Smrgcase $basic_os in 1297da2e2ef6Smrg gnu/linux*) 1298da2e2ef6Smrg kernel=linux 1299da2e2ef6Smrg os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` 1300da2e2ef6Smrg ;; 1301da2e2ef6Smrg os2-emx) 1302da2e2ef6Smrg kernel=os2 1303da2e2ef6Smrg os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` 1304da2e2ef6Smrg ;; 1305da2e2ef6Smrg nto-qnx*) 1306da2e2ef6Smrg kernel=nto 1307da2e2ef6Smrg os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` 1308da2e2ef6Smrg ;; 1309da2e2ef6Smrg *-*) 1310da2e2ef6Smrg # shellcheck disable=SC2162 1311da2e2ef6Smrg saved_IFS=$IFS 1312da2e2ef6Smrg IFS="-" read kernel os <<EOF 1313da2e2ef6Smrg$basic_os 1314da2e2ef6SmrgEOF 1315da2e2ef6Smrg IFS=$saved_IFS 1316da2e2ef6Smrg ;; 1317da2e2ef6Smrg # Default OS when just kernel was specified 1318da2e2ef6Smrg nto*) 1319da2e2ef6Smrg kernel=nto 1320da2e2ef6Smrg os=`echo "$basic_os" | sed -e 's|nto|qnx|'` 1321da2e2ef6Smrg ;; 1322da2e2ef6Smrg linux*) 1323da2e2ef6Smrg kernel=linux 1324da2e2ef6Smrg os=`echo "$basic_os" | sed -e 's|linux|gnu|'` 1325da2e2ef6Smrg ;; 13264901b09eSmrg managarm*) 13274901b09eSmrg kernel=managarm 13284901b09eSmrg os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'` 13294901b09eSmrg ;; 1330da2e2ef6Smrg *) 1331da2e2ef6Smrg kernel= 1332da2e2ef6Smrg os=$basic_os 1333da2e2ef6Smrg ;; 1334da2e2ef6Smrgesac 1335da2e2ef6Smrg 1336da2e2ef6Smrg# Now, normalize the OS (knowing we just have one component, it's not a kernel, 1337da2e2ef6Smrg# etc.) 1338145b7b3cSmrgcase $os in 1339b7d26471Smrg # First match some system type aliases that might get confused 1340b7d26471Smrg # with valid system types. 1341da2e2ef6Smrg # solaris* is a basic system type, with this one exception. 1342da2e2ef6Smrg auroraux) 1343da2e2ef6Smrg os=auroraux 13445ffd6003Smrg ;; 1345da2e2ef6Smrg bluegene*) 1346da2e2ef6Smrg os=cnk 1347145b7b3cSmrg ;; 1348da2e2ef6Smrg solaris1 | solaris1.*) 1349da2e2ef6Smrg os=`echo "$os" | sed -e 's|solaris1|sunos4|'` 1350145b7b3cSmrg ;; 1351da2e2ef6Smrg solaris) 1352da2e2ef6Smrg os=solaris2 1353145b7b3cSmrg ;; 1354da2e2ef6Smrg unixware*) 1355da2e2ef6Smrg os=sysv4.2uw 1356145b7b3cSmrg ;; 1357b7d26471Smrg # es1800 is here to avoid being matched by es* (a different OS) 1358da2e2ef6Smrg es1800*) 1359da2e2ef6Smrg os=ose 1360b7d26471Smrg ;; 1361da2e2ef6Smrg # Some version numbers need modification 1362da2e2ef6Smrg chorusos*) 1363da2e2ef6Smrg os=chorusos 1364145b7b3cSmrg ;; 1365da2e2ef6Smrg isc) 1366da2e2ef6Smrg os=isc2.2 1367145b7b3cSmrg ;; 1368da2e2ef6Smrg sco6) 1369da2e2ef6Smrg os=sco5v6 1370145b7b3cSmrg ;; 1371da2e2ef6Smrg sco5) 1372da2e2ef6Smrg os=sco3.2v5 1373145b7b3cSmrg ;; 1374da2e2ef6Smrg sco4) 1375da2e2ef6Smrg os=sco3.2v4 1376145b7b3cSmrg ;; 1377da2e2ef6Smrg sco3.2.[4-9]*) 1378da2e2ef6Smrg os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'` 1379145b7b3cSmrg ;; 1380da2e2ef6Smrg sco*v* | scout) 1381da2e2ef6Smrg # Don't match below 1382145b7b3cSmrg ;; 1383da2e2ef6Smrg sco*) 1384da2e2ef6Smrg os=sco3.2v2 1385145b7b3cSmrg ;; 1386da2e2ef6Smrg psos*) 1387da2e2ef6Smrg os=psos 1388145b7b3cSmrg ;; 1389da2e2ef6Smrg qnx*) 1390da2e2ef6Smrg os=qnx 1391145b7b3cSmrg ;; 1392da2e2ef6Smrg hiux*) 1393da2e2ef6Smrg os=hiuxwe2 1394145b7b3cSmrg ;; 1395da2e2ef6Smrg lynx*178) 1396da2e2ef6Smrg os=lynxos178 1397145b7b3cSmrg ;; 1398da2e2ef6Smrg lynx*5) 1399da2e2ef6Smrg os=lynxos5 1400145b7b3cSmrg ;; 1401da2e2ef6Smrg lynxos*) 1402da2e2ef6Smrg # don't get caught up in next wildcard 1403145b7b3cSmrg ;; 1404da2e2ef6Smrg lynx*) 1405da2e2ef6Smrg os=lynxos 1406145b7b3cSmrg ;; 1407da2e2ef6Smrg mac[0-9]*) 1408da2e2ef6Smrg os=`echo "$os" | sed -e 's|mac|macos|'` 1409145b7b3cSmrg ;; 1410da2e2ef6Smrg opened*) 1411da2e2ef6Smrg os=openedition 1412145b7b3cSmrg ;; 1413da2e2ef6Smrg os400*) 1414da2e2ef6Smrg os=os400 1415145b7b3cSmrg ;; 1416da2e2ef6Smrg sunos5*) 1417da2e2ef6Smrg os=`echo "$os" | sed -e 's|sunos5|solaris2|'` 1418145b7b3cSmrg ;; 1419da2e2ef6Smrg sunos6*) 1420da2e2ef6Smrg os=`echo "$os" | sed -e 's|sunos6|solaris3|'` 1421145b7b3cSmrg ;; 1422da2e2ef6Smrg wince*) 1423da2e2ef6Smrg os=wince 1424145b7b3cSmrg ;; 1425da2e2ef6Smrg utek*) 1426da2e2ef6Smrg os=bsd 1427145b7b3cSmrg ;; 1428da2e2ef6Smrg dynix*) 1429da2e2ef6Smrg os=bsd 1430145b7b3cSmrg ;; 1431da2e2ef6Smrg acis*) 1432da2e2ef6Smrg os=aos 1433145b7b3cSmrg ;; 1434da2e2ef6Smrg atheos*) 1435da2e2ef6Smrg os=atheos 1436145b7b3cSmrg ;; 1437da2e2ef6Smrg syllable*) 1438da2e2ef6Smrg os=syllable 1439da2e2ef6Smrg ;; 1440da2e2ef6Smrg 386bsd) 1441da2e2ef6Smrg os=bsd 1442da2e2ef6Smrg ;; 1443da2e2ef6Smrg ctix* | uts*) 1444da2e2ef6Smrg os=sysv 1445da2e2ef6Smrg ;; 1446da2e2ef6Smrg nova*) 1447da2e2ef6Smrg os=rtmk-nova 1448da2e2ef6Smrg ;; 1449da2e2ef6Smrg ns2) 1450da2e2ef6Smrg os=nextstep2 1451da2e2ef6Smrg ;; 1452da2e2ef6Smrg # Preserve the version number of sinix5. 1453da2e2ef6Smrg sinix5.*) 1454da2e2ef6Smrg os=`echo "$os" | sed -e 's|sinix|sysv|'` 1455145b7b3cSmrg ;; 1456da2e2ef6Smrg sinix*) 1457da2e2ef6Smrg os=sysv4 1458145b7b3cSmrg ;; 1459da2e2ef6Smrg tpf*) 1460da2e2ef6Smrg os=tpf 1461145b7b3cSmrg ;; 1462da2e2ef6Smrg triton*) 1463da2e2ef6Smrg os=sysv3 1464145b7b3cSmrg ;; 1465da2e2ef6Smrg oss*) 1466da2e2ef6Smrg os=sysv3 1467145b7b3cSmrg ;; 1468da2e2ef6Smrg svr4*) 1469da2e2ef6Smrg os=sysv4 1470145b7b3cSmrg ;; 1471da2e2ef6Smrg svr3) 1472da2e2ef6Smrg os=sysv3 1473145b7b3cSmrg ;; 1474da2e2ef6Smrg sysvr4) 1475da2e2ef6Smrg os=sysv4 1476145b7b3cSmrg ;; 1477da2e2ef6Smrg ose*) 1478da2e2ef6Smrg os=ose 1479145b7b3cSmrg ;; 1480da2e2ef6Smrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 1481da2e2ef6Smrg os=mint 14825ffd6003Smrg ;; 1483da2e2ef6Smrg dicos*) 1484da2e2ef6Smrg os=dicos 1485da2e2ef6Smrg ;; 1486da2e2ef6Smrg pikeos*) 1487b7d26471Smrg # Until real need of OS specific support for 1488b7d26471Smrg # particular features comes up, bare metal 1489b7d26471Smrg # configurations are quite functional. 1490da2e2ef6Smrg case $cpu in 1491b7d26471Smrg arm*) 1492da2e2ef6Smrg os=eabi 1493b7d26471Smrg ;; 1494b7d26471Smrg *) 14951d778f8eSmrg os= 14961d778f8eSmrg obj=elf 1497b7d26471Smrg ;; 1498b7d26471Smrg esac 1499b7d26471Smrg ;; 15001d778f8eSmrg aout* | coff* | elf* | pe*) 15011d778f8eSmrg # These are machine code file formats, not OSes 15021d778f8eSmrg obj=$os 15031d778f8eSmrg os= 15041d778f8eSmrg ;; 1505145b7b3cSmrg *) 1506da2e2ef6Smrg # No normalization, but not necessarily accepted, that comes below. 1507145b7b3cSmrg ;; 1508145b7b3cSmrgesac 1509da2e2ef6Smrg 1510145b7b3cSmrgelse 1511145b7b3cSmrg 1512145b7b3cSmrg# Here we handle the default operating systems that come with various machines. 1513145b7b3cSmrg# The value should be what the vendor currently ships out the door with their 1514145b7b3cSmrg# machine or put another way, the most popular os provided with the machine. 1515145b7b3cSmrg 1516145b7b3cSmrg# Note that if you're going to try to match "-MANUFACTURER" here (say, 1517145b7b3cSmrg# "-sun"), then you have to tell the case statement up towards the top 1518145b7b3cSmrg# that MANUFACTURER isn't an operating system. Otherwise, code above 1519145b7b3cSmrg# will signal an error saying that MANUFACTURER isn't an operating 1520145b7b3cSmrg# system, and we'll never get to this point. 1521145b7b3cSmrg 1522da2e2ef6Smrgkernel= 15231d778f8eSmrgobj= 1524da2e2ef6Smrgcase $cpu-$vendor in 1525b7d26471Smrg score-*) 15261d778f8eSmrg os= 15271d778f8eSmrg obj=elf 1528578741aaSmrg ;; 1529b7d26471Smrg spu-*) 15301d778f8eSmrg os= 15311d778f8eSmrg obj=elf 1532578741aaSmrg ;; 1533145b7b3cSmrg *-acorn) 1534da2e2ef6Smrg os=riscix1.2 1535145b7b3cSmrg ;; 1536145b7b3cSmrg arm*-rebel) 1537da2e2ef6Smrg kernel=linux 1538da2e2ef6Smrg os=gnu 1539145b7b3cSmrg ;; 1540145b7b3cSmrg arm*-semi) 15411d778f8eSmrg os= 15421d778f8eSmrg obj=aout 1543145b7b3cSmrg ;; 1544b7d26471Smrg c4x-* | tic4x-*) 15451d778f8eSmrg os= 15461d778f8eSmrg obj=coff 1547b7d26471Smrg ;; 1548b7d26471Smrg c8051-*) 15491d778f8eSmrg os= 15501d778f8eSmrg obj=elf 1551da2e2ef6Smrg ;; 1552da2e2ef6Smrg clipper-intergraph) 1553da2e2ef6Smrg os=clix 1554b7d26471Smrg ;; 1555b7d26471Smrg hexagon-*) 15561d778f8eSmrg os= 15571d778f8eSmrg obj=elf 1558b7d26471Smrg ;; 1559b7d26471Smrg tic54x-*) 15601d778f8eSmrg os= 15611d778f8eSmrg obj=coff 1562b7d26471Smrg ;; 1563b7d26471Smrg tic55x-*) 15641d778f8eSmrg os= 15651d778f8eSmrg obj=coff 1566b7d26471Smrg ;; 1567b7d26471Smrg tic6x-*) 15681d778f8eSmrg os= 15691d778f8eSmrg obj=coff 1570578741aaSmrg ;; 1571145b7b3cSmrg # This must come before the *-dec entry. 1572145b7b3cSmrg pdp10-*) 1573da2e2ef6Smrg os=tops20 1574145b7b3cSmrg ;; 1575145b7b3cSmrg pdp11-*) 1576da2e2ef6Smrg os=none 1577145b7b3cSmrg ;; 1578145b7b3cSmrg *-dec | vax-*) 1579da2e2ef6Smrg os=ultrix4.2 1580145b7b3cSmrg ;; 1581145b7b3cSmrg m68*-apollo) 1582da2e2ef6Smrg os=domain 1583145b7b3cSmrg ;; 1584145b7b3cSmrg i386-sun) 1585da2e2ef6Smrg os=sunos4.0.2 1586145b7b3cSmrg ;; 1587145b7b3cSmrg m68000-sun) 1588da2e2ef6Smrg os=sunos3 1589145b7b3cSmrg ;; 1590145b7b3cSmrg m68*-cisco) 15911d778f8eSmrg os= 15921d778f8eSmrg obj=aout 1593145b7b3cSmrg ;; 1594b7d26471Smrg mep-*) 15951d778f8eSmrg os= 15961d778f8eSmrg obj=elf 1597578741aaSmrg ;; 1598145b7b3cSmrg mips*-cisco) 15991d778f8eSmrg os= 16001d778f8eSmrg obj=elf 1601145b7b3cSmrg ;; 16021d778f8eSmrg mips*-*|nanomips*-*) 16031d778f8eSmrg os= 16041d778f8eSmrg obj=elf 1605145b7b3cSmrg ;; 1606145b7b3cSmrg or32-*) 16071d778f8eSmrg os= 16081d778f8eSmrg obj=coff 1609145b7b3cSmrg ;; 1610145b7b3cSmrg *-tti) # must be before sparc entry or we get the wrong os. 1611da2e2ef6Smrg os=sysv3 1612145b7b3cSmrg ;; 1613145b7b3cSmrg sparc-* | *-sun) 1614da2e2ef6Smrg os=sunos4.1.1 1615145b7b3cSmrg ;; 1616b7d26471Smrg pru-*) 16171d778f8eSmrg os= 16181d778f8eSmrg obj=elf 1619b7d26471Smrg ;; 1620145b7b3cSmrg *-be) 1621da2e2ef6Smrg os=beos 1622145b7b3cSmrg ;; 1623145b7b3cSmrg *-ibm) 1624da2e2ef6Smrg os=aix 1625145b7b3cSmrg ;; 1626b7d26471Smrg *-knuth) 1627da2e2ef6Smrg os=mmixware 1628145b7b3cSmrg ;; 1629145b7b3cSmrg *-wec) 1630da2e2ef6Smrg os=proelf 1631145b7b3cSmrg ;; 1632145b7b3cSmrg *-winbond) 1633da2e2ef6Smrg os=proelf 1634145b7b3cSmrg ;; 1635145b7b3cSmrg *-oki) 1636da2e2ef6Smrg os=proelf 1637145b7b3cSmrg ;; 1638145b7b3cSmrg *-hp) 1639da2e2ef6Smrg os=hpux 1640145b7b3cSmrg ;; 1641145b7b3cSmrg *-hitachi) 1642da2e2ef6Smrg os=hiux 1643145b7b3cSmrg ;; 1644145b7b3cSmrg i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 1645da2e2ef6Smrg os=sysv 1646145b7b3cSmrg ;; 1647145b7b3cSmrg *-cbm) 1648da2e2ef6Smrg os=amigaos 1649145b7b3cSmrg ;; 1650145b7b3cSmrg *-dg) 1651da2e2ef6Smrg os=dgux 1652145b7b3cSmrg ;; 1653145b7b3cSmrg *-dolphin) 1654da2e2ef6Smrg os=sysv3 1655145b7b3cSmrg ;; 1656145b7b3cSmrg m68k-ccur) 1657da2e2ef6Smrg os=rtu 1658145b7b3cSmrg ;; 1659145b7b3cSmrg m88k-omron*) 1660da2e2ef6Smrg os=luna 1661145b7b3cSmrg ;; 1662b7d26471Smrg *-next) 1663da2e2ef6Smrg os=nextstep 1664145b7b3cSmrg ;; 1665145b7b3cSmrg *-sequent) 1666da2e2ef6Smrg os=ptx 1667145b7b3cSmrg ;; 1668145b7b3cSmrg *-crds) 1669da2e2ef6Smrg os=unos 1670145b7b3cSmrg ;; 1671145b7b3cSmrg *-ns) 1672da2e2ef6Smrg os=genix 1673145b7b3cSmrg ;; 1674145b7b3cSmrg i370-*) 1675da2e2ef6Smrg os=mvs 1676145b7b3cSmrg ;; 1677145b7b3cSmrg *-gould) 1678da2e2ef6Smrg os=sysv 1679145b7b3cSmrg ;; 1680145b7b3cSmrg *-highlevel) 1681da2e2ef6Smrg os=bsd 1682145b7b3cSmrg ;; 1683145b7b3cSmrg *-encore) 1684da2e2ef6Smrg os=bsd 1685145b7b3cSmrg ;; 1686145b7b3cSmrg *-sgi) 1687da2e2ef6Smrg os=irix 1688145b7b3cSmrg ;; 1689145b7b3cSmrg *-siemens) 1690da2e2ef6Smrg os=sysv4 1691145b7b3cSmrg ;; 1692145b7b3cSmrg *-masscomp) 1693da2e2ef6Smrg os=rtu 1694145b7b3cSmrg ;; 1695145b7b3cSmrg f30[01]-fujitsu | f700-fujitsu) 1696da2e2ef6Smrg os=uxpv 1697145b7b3cSmrg ;; 1698145b7b3cSmrg *-rom68k) 16991d778f8eSmrg os= 17001d778f8eSmrg obj=coff 1701145b7b3cSmrg ;; 1702145b7b3cSmrg *-*bug) 17031d778f8eSmrg os= 17041d778f8eSmrg obj=coff 1705145b7b3cSmrg ;; 1706145b7b3cSmrg *-apple) 1707da2e2ef6Smrg os=macos 1708145b7b3cSmrg ;; 1709145b7b3cSmrg *-atari*) 1710da2e2ef6Smrg os=mint 1711da2e2ef6Smrg ;; 1712da2e2ef6Smrg *-wrs) 1713da2e2ef6Smrg os=vxworks 1714145b7b3cSmrg ;; 1715145b7b3cSmrg *) 1716da2e2ef6Smrg os=none 1717145b7b3cSmrg ;; 1718145b7b3cSmrgesac 1719da2e2ef6Smrg 1720145b7b3cSmrgfi 1721145b7b3cSmrg 17221d778f8eSmrg# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ). 17231d778f8eSmrg 1724da2e2ef6Smrgcase $os in 1725da2e2ef6Smrg # Sometimes we do "kernel-libc", so those need to count as OSes. 17261d778f8eSmrg llvm* | musl* | newlib* | relibc* | uclibc*) 1727da2e2ef6Smrg ;; 1728da2e2ef6Smrg # Likewise for "kernel-abi" 1729da2e2ef6Smrg eabi* | gnueabi*) 1730da2e2ef6Smrg ;; 1731da2e2ef6Smrg # VxWorks passes extra cpu info in the 4th filed. 1732da2e2ef6Smrg simlinux | simwindows | spe) 1733da2e2ef6Smrg ;; 17341d778f8eSmrg # See `case $cpu-$os` validation below 17351d778f8eSmrg ghcjs) 17361d778f8eSmrg ;; 1737da2e2ef6Smrg # Now accept the basic system types. 1738da2e2ef6Smrg # The portable systems comes first. 1739da2e2ef6Smrg # Each alternative MUST end in a * to match a version number. 1740da2e2ef6Smrg gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ 1741da2e2ef6Smrg | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ 1742da2e2ef6Smrg | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ 1743da2e2ef6Smrg | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ 1744da2e2ef6Smrg | hiux* | abug | nacl* | netware* | windows* \ 17451d778f8eSmrg | os9* | macos* | osx* | ios* | tvos* | watchos* \ 1746da2e2ef6Smrg | mpw* | magic* | mmixware* | mon960* | lnews* \ 1747da2e2ef6Smrg | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ 1748da2e2ef6Smrg | aos* | aros* | cloudabi* | sortix* | twizzler* \ 1749da2e2ef6Smrg | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ 1750da2e2ef6Smrg | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ 1751da2e2ef6Smrg | mirbsd* | netbsd* | dicos* | openedition* | ose* \ 1752da2e2ef6Smrg | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ 1753da2e2ef6Smrg | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ 17541d778f8eSmrg | bosx* | nextstep* | cxux* | oabi* \ 17551d778f8eSmrg | ptx* | ecoff* | winnt* | domain* | vsta* \ 1756da2e2ef6Smrg | udi* | lites* | ieee* | go32* | aux* | hcos* \ 1757da2e2ef6Smrg | chorusrdb* | cegcc* | glidix* | serenity* \ 17581d778f8eSmrg | cygwin* | msys* | moss* | proelf* | rtems* \ 1759da2e2ef6Smrg | midipix* | mingw32* | mingw64* | mint* \ 1760da2e2ef6Smrg | uxpv* | beos* | mpeix* | udk* | moxiebox* \ 1761da2e2ef6Smrg | interix* | uwin* | mks* | rhapsody* | darwin* \ 1762da2e2ef6Smrg | openstep* | oskit* | conix* | pw32* | nonstopux* \ 1763da2e2ef6Smrg | storm-chaos* | tops10* | tenex* | tops20* | its* \ 1764da2e2ef6Smrg | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ 1765da2e2ef6Smrg | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ 1766da2e2ef6Smrg | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ 1767da2e2ef6Smrg | skyos* | haiku* | rdos* | toppers* | drops* | es* \ 1768da2e2ef6Smrg | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ 1769da2e2ef6Smrg | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ 17704901b09eSmrg | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ 17711d778f8eSmrg | fiwix* | mlibc* | cos* | mbr* | ironclad* ) 1772da2e2ef6Smrg ;; 1773da2e2ef6Smrg # This one is extra strict with allowed versions 1774da2e2ef6Smrg sco3.2v2 | sco3.2v[4-9]* | sco5v6*) 1775da2e2ef6Smrg # Don't forget version if it is 3.2v4 or newer. 1776da2e2ef6Smrg ;; 17771d778f8eSmrg # This refers to builds using the UEFI calling convention 17781d778f8eSmrg # (which depends on the architecture) and PE file format. 17791d778f8eSmrg # Note that this is both a different calling convention and 17801d778f8eSmrg # different file format than that of GNU-EFI 17811d778f8eSmrg # (x86_64-w64-mingw32). 17821d778f8eSmrg uefi) 17831d778f8eSmrg ;; 1784da2e2ef6Smrg none) 1785da2e2ef6Smrg ;; 17861d778f8eSmrg kernel* | msvc* ) 17874901b09eSmrg # Restricted further below 17884901b09eSmrg ;; 17891d778f8eSmrg '') 17901d778f8eSmrg if test x"$obj" = x 17911d778f8eSmrg then 17921d778f8eSmrg echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2 17931d778f8eSmrg fi 17941d778f8eSmrg ;; 1795da2e2ef6Smrg *) 17961d778f8eSmrg echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2 17971d778f8eSmrg exit 1 17981d778f8eSmrg ;; 17991d778f8eSmrgesac 18001d778f8eSmrg 18011d778f8eSmrgcase $obj in 18021d778f8eSmrg aout* | coff* | elf* | pe*) 18031d778f8eSmrg ;; 18041d778f8eSmrg '') 18051d778f8eSmrg # empty is fine 18061d778f8eSmrg ;; 18071d778f8eSmrg *) 18081d778f8eSmrg echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2 18091d778f8eSmrg exit 1 18101d778f8eSmrg ;; 18111d778f8eSmrgesac 18121d778f8eSmrg 18131d778f8eSmrg# Here we handle the constraint that a (synthetic) cpu and os are 18141d778f8eSmrg# valid only in combination with each other and nowhere else. 18151d778f8eSmrgcase $cpu-$os in 18161d778f8eSmrg # The "javascript-unknown-ghcjs" triple is used by GHC; we 18171d778f8eSmrg # accept it here in order to tolerate that, but reject any 18181d778f8eSmrg # variations. 18191d778f8eSmrg javascript-ghcjs) 18201d778f8eSmrg ;; 18211d778f8eSmrg javascript-* | *-ghcjs) 18221d778f8eSmrg echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2 1823da2e2ef6Smrg exit 1 1824da2e2ef6Smrg ;; 1825da2e2ef6Smrgesac 1826da2e2ef6Smrg 1827da2e2ef6Smrg# As a final step for OS-related things, validate the OS-kernel combination 1828da2e2ef6Smrg# (given a valid OS), if there is a kernel. 18291d778f8eSmrgcase $kernel-$os-$obj in 18301d778f8eSmrg linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \ 18311d778f8eSmrg | linux-mlibc*- | linux-musl*- | linux-newlib*- \ 18321d778f8eSmrg | linux-relibc*- | linux-uclibc*- ) 1833da2e2ef6Smrg ;; 18341d778f8eSmrg uclinux-uclibc*- ) 1835da2e2ef6Smrg ;; 18361d778f8eSmrg managarm-mlibc*- | managarm-kernel*- ) 18374901b09eSmrg ;; 18381d778f8eSmrg windows*-msvc*-) 18391d778f8eSmrg ;; 18401d778f8eSmrg -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \ 18411d778f8eSmrg | -uclibc*- ) 1842da2e2ef6Smrg # These are just libc implementations, not actual OSes, and thus 1843da2e2ef6Smrg # require a kernel. 18441d778f8eSmrg echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 1845da2e2ef6Smrg exit 1 1846da2e2ef6Smrg ;; 18471d778f8eSmrg -kernel*- ) 18481d778f8eSmrg echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 18494901b09eSmrg exit 1 18504901b09eSmrg ;; 18511d778f8eSmrg *-kernel*- ) 18521d778f8eSmrg echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 18534901b09eSmrg exit 1 18544901b09eSmrg ;; 18551d778f8eSmrg *-msvc*- ) 18561d778f8eSmrg echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2 18571d778f8eSmrg exit 1 1858da2e2ef6Smrg ;; 18591d778f8eSmrg kfreebsd*-gnu*- | kopensolaris*-gnu*-) 1860da2e2ef6Smrg ;; 18611d778f8eSmrg vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) 1862da2e2ef6Smrg ;; 18631d778f8eSmrg nto-qnx*-) 18641d778f8eSmrg ;; 18651d778f8eSmrg os2-emx-) 18661d778f8eSmrg ;; 18671d778f8eSmrg *-eabi*- | *-gnueabi*-) 1868da2e2ef6Smrg ;; 18691d778f8eSmrg none--*) 18701d778f8eSmrg # None (no kernel, i.e. freestanding / bare metal), 18711d778f8eSmrg # can be paired with an machine code file format 1872da2e2ef6Smrg ;; 18731d778f8eSmrg -*-) 1874da2e2ef6Smrg # Blank kernel with real OS is always fine. 1875da2e2ef6Smrg ;; 18761d778f8eSmrg --*) 18771d778f8eSmrg # Blank kernel and OS with real machine code file format is always fine. 18781d778f8eSmrg ;; 18791d778f8eSmrg *-*-*) 18801d778f8eSmrg echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 1881da2e2ef6Smrg exit 1 1882da2e2ef6Smrg ;; 1883da2e2ef6Smrgesac 1884da2e2ef6Smrg 1885145b7b3cSmrg# Here we handle the case where we know the os, and the CPU type, but not the 1886145b7b3cSmrg# manufacturer. We pick the logical manufacturer. 1887da2e2ef6Smrgcase $vendor in 1888da2e2ef6Smrg unknown) 1889da2e2ef6Smrg case $cpu-$os in 1890da2e2ef6Smrg *-riscix*) 1891145b7b3cSmrg vendor=acorn 1892145b7b3cSmrg ;; 1893da2e2ef6Smrg *-sunos*) 1894145b7b3cSmrg vendor=sun 1895145b7b3cSmrg ;; 1896da2e2ef6Smrg *-cnk* | *-aix*) 1897145b7b3cSmrg vendor=ibm 1898145b7b3cSmrg ;; 1899da2e2ef6Smrg *-beos*) 1900145b7b3cSmrg vendor=be 1901145b7b3cSmrg ;; 1902da2e2ef6Smrg *-hpux*) 1903145b7b3cSmrg vendor=hp 1904145b7b3cSmrg ;; 1905da2e2ef6Smrg *-mpeix*) 1906145b7b3cSmrg vendor=hp 1907145b7b3cSmrg ;; 1908da2e2ef6Smrg *-hiux*) 1909145b7b3cSmrg vendor=hitachi 1910145b7b3cSmrg ;; 1911da2e2ef6Smrg *-unos*) 1912145b7b3cSmrg vendor=crds 1913145b7b3cSmrg ;; 1914da2e2ef6Smrg *-dgux*) 1915145b7b3cSmrg vendor=dg 1916145b7b3cSmrg ;; 1917da2e2ef6Smrg *-luna*) 1918145b7b3cSmrg vendor=omron 1919145b7b3cSmrg ;; 1920da2e2ef6Smrg *-genix*) 1921145b7b3cSmrg vendor=ns 1922145b7b3cSmrg ;; 1923da2e2ef6Smrg *-clix*) 1924da2e2ef6Smrg vendor=intergraph 1925da2e2ef6Smrg ;; 1926da2e2ef6Smrg *-mvs* | *-opened*) 1927da2e2ef6Smrg vendor=ibm 1928da2e2ef6Smrg ;; 1929da2e2ef6Smrg *-os400*) 1930145b7b3cSmrg vendor=ibm 1931145b7b3cSmrg ;; 1932da2e2ef6Smrg s390-* | s390x-*) 1933145b7b3cSmrg vendor=ibm 1934145b7b3cSmrg ;; 1935da2e2ef6Smrg *-ptx*) 1936145b7b3cSmrg vendor=sequent 1937145b7b3cSmrg ;; 1938da2e2ef6Smrg *-tpf*) 1939145b7b3cSmrg vendor=ibm 1940145b7b3cSmrg ;; 1941da2e2ef6Smrg *-vxsim* | *-vxworks* | *-windiss*) 1942145b7b3cSmrg vendor=wrs 1943145b7b3cSmrg ;; 1944da2e2ef6Smrg *-aux*) 1945145b7b3cSmrg vendor=apple 1946145b7b3cSmrg ;; 1947da2e2ef6Smrg *-hms*) 1948145b7b3cSmrg vendor=hitachi 1949145b7b3cSmrg ;; 1950da2e2ef6Smrg *-mpw* | *-macos*) 1951145b7b3cSmrg vendor=apple 1952145b7b3cSmrg ;; 1953da2e2ef6Smrg *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) 1954145b7b3cSmrg vendor=atari 1955145b7b3cSmrg ;; 1956da2e2ef6Smrg *-vos*) 1957145b7b3cSmrg vendor=stratus 1958145b7b3cSmrg ;; 1959145b7b3cSmrg esac 1960145b7b3cSmrg ;; 1961145b7b3cSmrgesac 1962145b7b3cSmrg 19631d778f8eSmrgecho "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}" 1964145b7b3cSmrgexit 1965145b7b3cSmrg 1966145b7b3cSmrg# Local variables: 1967da2e2ef6Smrg# eval: (add-hook 'before-save-hook 'time-stamp) 1968145b7b3cSmrg# time-stamp-start: "timestamp='" 1969145b7b3cSmrg# time-stamp-format: "%:y-%02m-%02d" 1970145b7b3cSmrg# time-stamp-end: "'" 1971145b7b3cSmrg# End: 1972