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