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