132b578d3Smrg#! /bin/sh 232b578d3Smrg# Configuration validation subroutine script. 30b0ce0bfSmrg# Copyright 1992-2021 Free Software Foundation, Inc. 432b578d3Smrg 50b0ce0bfSmrg# shellcheck disable=SC2006,SC2268 # see below for rationale 60b0ce0bfSmrg 70b0ce0bfSmrgtimestamp='2021-08-14' 832b578d3Smrg 95a81ca49Smrg# This file is free software; you can redistribute it and/or modify it 105a81ca49Smrg# under the terms of the GNU General Public License as published by 115a81ca49Smrg# the Free Software Foundation; either version 3 of the License, or 1232b578d3Smrg# (at your option) any later version. 1332b578d3Smrg# 145a81ca49Smrg# This program is distributed in the hope that it will be useful, but 155a81ca49Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of 165a81ca49Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 175a81ca49Smrg# General Public License for more details. 1832b578d3Smrg# 1932b578d3Smrg# You should have received a copy of the GNU General Public License 200b0ce0bfSmrg# along with this program; if not, see <https://www.gnu.org/licenses/>. 2132b578d3Smrg# 2232b578d3Smrg# As a special exception to the GNU General Public License, if you 2332b578d3Smrg# distribute this file as part of a program that contains a 2432b578d3Smrg# configuration script generated by Autoconf, you may include it under 255a81ca49Smrg# the same distribution terms that you use for the rest of that 265a81ca49Smrg# program. This Exception is an additional permission under section 7 275a81ca49Smrg# of the GNU General Public License, version 3 ("GPLv3"). 2832b578d3Smrg 2932b578d3Smrg 305a81ca49Smrg# Please send patches to <config-patches@gnu.org>. 3132b578d3Smrg# 3232b578d3Smrg# Configuration subroutine to validate and canonicalize a configuration type. 3332b578d3Smrg# Supply the specified configuration type as an argument. 3432b578d3Smrg# If it is invalid, we print an error message on stderr and exit with code 1. 3532b578d3Smrg# Otherwise, we print the canonical config type on stdout and succeed. 3632b578d3Smrg 371b12faf6Smrg# You can get the latest version of this script from: 380b0ce0bfSmrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub 391b12faf6Smrg 4032b578d3Smrg# This file is supposed to be the same for all GNU packages 4132b578d3Smrg# and recognize all the CPU types, system types and aliases 4232b578d3Smrg# that are meaningful with *any* GNU software. 4332b578d3Smrg# Each package is responsible for reporting which valid configurations 4432b578d3Smrg# it does not support. The user should be able to distinguish 4532b578d3Smrg# a failure to support a valid configuration from a meaningless 4632b578d3Smrg# configuration. 4732b578d3Smrg 4832b578d3Smrg# The goal of this file is to map all the various variations of a given 4932b578d3Smrg# machine specification into a single specification in the form: 5032b578d3Smrg# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 5132b578d3Smrg# or in some cases, the newer four-part form: 5232b578d3Smrg# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 5332b578d3Smrg# It is wrong to echo any other type of specification. 5432b578d3Smrg 550b0ce0bfSmrg# The "shellcheck disable" line above the timestamp inhibits complaints 560b0ce0bfSmrg# about features and limitations of the classic Bourne shell that were 570b0ce0bfSmrg# superseded or lifted in POSIX. However, this script identifies a wide 580b0ce0bfSmrg# variety of pre-POSIX systems that do not have POSIX shells at all, and 590b0ce0bfSmrg# even some reasonably current systems (Solaris 10 as case-in-point) still 600b0ce0bfSmrg# have a pre-POSIX /bin/sh. 610b0ce0bfSmrg 6232b578d3Smrgme=`echo "$0" | sed -e 's,.*/,,'` 6332b578d3Smrg 6432b578d3Smrgusage="\ 650b0ce0bfSmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 6632b578d3Smrg 6732b578d3SmrgCanonicalize a configuration name. 6832b578d3Smrg 690b0ce0bfSmrgOptions: 7032b578d3Smrg -h, --help print this help, then exit 7132b578d3Smrg -t, --time-stamp print date of last modification, then exit 7232b578d3Smrg -v, --version print version number, then exit 7332b578d3Smrg 7432b578d3SmrgReport bugs and patches to <config-patches@gnu.org>." 7532b578d3Smrg 7632b578d3Smrgversion="\ 7732b578d3SmrgGNU config.sub ($timestamp) 7832b578d3Smrg 790b0ce0bfSmrgCopyright 1992-2021 Free Software Foundation, Inc. 8032b578d3Smrg 8132b578d3SmrgThis is free software; see the source for copying conditions. There is NO 8232b578d3Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 8332b578d3Smrg 8432b578d3Smrghelp=" 8532b578d3SmrgTry \`$me --help' for more information." 8632b578d3Smrg 8732b578d3Smrg# Parse command line 8832b578d3Smrgwhile test $# -gt 0 ; do 8932b578d3Smrg case $1 in 9032b578d3Smrg --time-stamp | --time* | -t ) 9132b578d3Smrg echo "$timestamp" ; exit ;; 9232b578d3Smrg --version | -v ) 9332b578d3Smrg echo "$version" ; exit ;; 9432b578d3Smrg --help | --h* | -h ) 9532b578d3Smrg echo "$usage"; exit ;; 9632b578d3Smrg -- ) # Stop option processing 9732b578d3Smrg shift; break ;; 9832b578d3Smrg - ) # Use stdin as input. 9932b578d3Smrg break ;; 10032b578d3Smrg -* ) 1010b0ce0bfSmrg echo "$me: invalid option $1$help" >&2 10232b578d3Smrg exit 1 ;; 10332b578d3Smrg 10432b578d3Smrg *local*) 10532b578d3Smrg # First pass through any local machine types. 1060b0ce0bfSmrg echo "$1" 10732b578d3Smrg exit ;; 10832b578d3Smrg 10932b578d3Smrg * ) 11032b578d3Smrg break ;; 11132b578d3Smrg esac 11232b578d3Smrgdone 11332b578d3Smrg 11432b578d3Smrgcase $# in 11532b578d3Smrg 0) echo "$me: missing argument$help" >&2 11632b578d3Smrg exit 1;; 11732b578d3Smrg 1) ;; 11832b578d3Smrg *) echo "$me: too many arguments$help" >&2 11932b578d3Smrg exit 1;; 12032b578d3Smrgesac 12132b578d3Smrg 1220b0ce0bfSmrg# Split fields of configuration type 1230b0ce0bfSmrg# shellcheck disable=SC2162 1240b0ce0bfSmrgsaved_IFS=$IFS 1250b0ce0bfSmrgIFS="-" read field1 field2 field3 field4 <<EOF 1260b0ce0bfSmrg$1 1270b0ce0bfSmrgEOF 1280b0ce0bfSmrgIFS=$saved_IFS 12932b578d3Smrg 1300b0ce0bfSmrg# Separate into logical components for further validation 1310b0ce0bfSmrgcase $1 in 1320b0ce0bfSmrg *-*-*-*-*) 1330b0ce0bfSmrg echo Invalid configuration \`"$1"\': more than four components >&2 1340b0ce0bfSmrg exit 1 13532b578d3Smrg ;; 1360b0ce0bfSmrg *-*-*-*) 1370b0ce0bfSmrg basic_machine=$field1-$field2 1380b0ce0bfSmrg basic_os=$field3-$field4 13932b578d3Smrg ;; 1400b0ce0bfSmrg *-*-*) 1410b0ce0bfSmrg # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two 1420b0ce0bfSmrg # parts 1430b0ce0bfSmrg maybe_os=$field2-$field3 1440b0ce0bfSmrg case $maybe_os in 1450b0ce0bfSmrg nto-qnx* | linux-* | uclinux-uclibc* \ 1460b0ce0bfSmrg | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ 1470b0ce0bfSmrg | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ 1480b0ce0bfSmrg | storm-chaos* | os2-emx* | rtmk-nova*) 1490b0ce0bfSmrg basic_machine=$field1 1500b0ce0bfSmrg basic_os=$maybe_os 1510b0ce0bfSmrg ;; 1520b0ce0bfSmrg android-linux) 1530b0ce0bfSmrg basic_machine=$field1-unknown 1540b0ce0bfSmrg basic_os=linux-android 1550b0ce0bfSmrg ;; 1560b0ce0bfSmrg *) 1570b0ce0bfSmrg basic_machine=$field1-$field2 1580b0ce0bfSmrg basic_os=$field3 1590b0ce0bfSmrg ;; 1600b0ce0bfSmrg esac 16132b578d3Smrg ;; 1620b0ce0bfSmrg *-*) 1630b0ce0bfSmrg # A lone config we happen to match not fitting any pattern 1640b0ce0bfSmrg case $field1-$field2 in 1650b0ce0bfSmrg decstation-3100) 1660b0ce0bfSmrg basic_machine=mips-dec 1670b0ce0bfSmrg basic_os= 1680b0ce0bfSmrg ;; 1690b0ce0bfSmrg *-*) 1700b0ce0bfSmrg # Second component is usually, but not always the OS 1710b0ce0bfSmrg case $field2 in 1720b0ce0bfSmrg # Prevent following clause from handling this valid os 1730b0ce0bfSmrg sun*os*) 1740b0ce0bfSmrg basic_machine=$field1 1750b0ce0bfSmrg basic_os=$field2 1760b0ce0bfSmrg ;; 1770b0ce0bfSmrg zephyr*) 1780b0ce0bfSmrg basic_machine=$field1-unknown 1790b0ce0bfSmrg basic_os=$field2 1800b0ce0bfSmrg ;; 1810b0ce0bfSmrg # Manufacturers 1820b0ce0bfSmrg dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ 1830b0ce0bfSmrg | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ 1840b0ce0bfSmrg | unicom* | ibm* | next | hp | isi* | apollo | altos* \ 1850b0ce0bfSmrg | convergent* | ncr* | news | 32* | 3600* | 3100* \ 1860b0ce0bfSmrg | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ 1870b0ce0bfSmrg | ultra | tti* | harris | dolphin | highlevel | gould \ 1880b0ce0bfSmrg | cbm | ns | masscomp | apple | axis | knuth | cray \ 1890b0ce0bfSmrg | microblaze* | sim | cisco \ 1900b0ce0bfSmrg | oki | wec | wrs | winbond) 1910b0ce0bfSmrg basic_machine=$field1-$field2 1920b0ce0bfSmrg basic_os= 1930b0ce0bfSmrg ;; 1940b0ce0bfSmrg *) 1950b0ce0bfSmrg basic_machine=$field1 1960b0ce0bfSmrg basic_os=$field2 1970b0ce0bfSmrg ;; 1980b0ce0bfSmrg esac 1990b0ce0bfSmrg ;; 2000b0ce0bfSmrg esac 20132b578d3Smrg ;; 2020b0ce0bfSmrg *) 2030b0ce0bfSmrg # Convert single-component short-hands not valid as part of 2040b0ce0bfSmrg # multi-component configurations. 2050b0ce0bfSmrg case $field1 in 2060b0ce0bfSmrg 386bsd) 2070b0ce0bfSmrg basic_machine=i386-pc 2080b0ce0bfSmrg basic_os=bsd 2090b0ce0bfSmrg ;; 2100b0ce0bfSmrg a29khif) 2110b0ce0bfSmrg basic_machine=a29k-amd 2120b0ce0bfSmrg basic_os=udi 2130b0ce0bfSmrg ;; 2140b0ce0bfSmrg adobe68k) 2150b0ce0bfSmrg basic_machine=m68010-adobe 2160b0ce0bfSmrg basic_os=scout 2170b0ce0bfSmrg ;; 2180b0ce0bfSmrg alliant) 2190b0ce0bfSmrg basic_machine=fx80-alliant 2200b0ce0bfSmrg basic_os= 2210b0ce0bfSmrg ;; 2220b0ce0bfSmrg altos | altos3068) 2230b0ce0bfSmrg basic_machine=m68k-altos 2240b0ce0bfSmrg basic_os= 2250b0ce0bfSmrg ;; 2260b0ce0bfSmrg am29k) 2270b0ce0bfSmrg basic_machine=a29k-none 2280b0ce0bfSmrg basic_os=bsd 2290b0ce0bfSmrg ;; 2300b0ce0bfSmrg amdahl) 2310b0ce0bfSmrg basic_machine=580-amdahl 2320b0ce0bfSmrg basic_os=sysv 2330b0ce0bfSmrg ;; 2340b0ce0bfSmrg amiga) 2350b0ce0bfSmrg basic_machine=m68k-unknown 2360b0ce0bfSmrg basic_os= 2370b0ce0bfSmrg ;; 2380b0ce0bfSmrg amigaos | amigados) 2390b0ce0bfSmrg basic_machine=m68k-unknown 2400b0ce0bfSmrg basic_os=amigaos 2410b0ce0bfSmrg ;; 2420b0ce0bfSmrg amigaunix | amix) 2430b0ce0bfSmrg basic_machine=m68k-unknown 2440b0ce0bfSmrg basic_os=sysv4 2450b0ce0bfSmrg ;; 2460b0ce0bfSmrg apollo68) 2470b0ce0bfSmrg basic_machine=m68k-apollo 2480b0ce0bfSmrg basic_os=sysv 2490b0ce0bfSmrg ;; 2500b0ce0bfSmrg apollo68bsd) 2510b0ce0bfSmrg basic_machine=m68k-apollo 2520b0ce0bfSmrg basic_os=bsd 2530b0ce0bfSmrg ;; 2540b0ce0bfSmrg aros) 2550b0ce0bfSmrg basic_machine=i386-pc 2560b0ce0bfSmrg basic_os=aros 2570b0ce0bfSmrg ;; 2580b0ce0bfSmrg aux) 2590b0ce0bfSmrg basic_machine=m68k-apple 2600b0ce0bfSmrg basic_os=aux 2610b0ce0bfSmrg ;; 2620b0ce0bfSmrg balance) 2630b0ce0bfSmrg basic_machine=ns32k-sequent 2640b0ce0bfSmrg basic_os=dynix 2650b0ce0bfSmrg ;; 2660b0ce0bfSmrg blackfin) 2670b0ce0bfSmrg basic_machine=bfin-unknown 2680b0ce0bfSmrg basic_os=linux 2690b0ce0bfSmrg ;; 2700b0ce0bfSmrg cegcc) 2710b0ce0bfSmrg basic_machine=arm-unknown 2720b0ce0bfSmrg basic_os=cegcc 2730b0ce0bfSmrg ;; 2740b0ce0bfSmrg convex-c1) 2750b0ce0bfSmrg basic_machine=c1-convex 2760b0ce0bfSmrg basic_os=bsd 2770b0ce0bfSmrg ;; 2780b0ce0bfSmrg convex-c2) 2790b0ce0bfSmrg basic_machine=c2-convex 2800b0ce0bfSmrg basic_os=bsd 2810b0ce0bfSmrg ;; 2820b0ce0bfSmrg convex-c32) 2830b0ce0bfSmrg basic_machine=c32-convex 2840b0ce0bfSmrg basic_os=bsd 2850b0ce0bfSmrg ;; 2860b0ce0bfSmrg convex-c34) 2870b0ce0bfSmrg basic_machine=c34-convex 2880b0ce0bfSmrg basic_os=bsd 2890b0ce0bfSmrg ;; 2900b0ce0bfSmrg convex-c38) 2910b0ce0bfSmrg basic_machine=c38-convex 2920b0ce0bfSmrg basic_os=bsd 2930b0ce0bfSmrg ;; 2940b0ce0bfSmrg cray) 2950b0ce0bfSmrg basic_machine=j90-cray 2960b0ce0bfSmrg basic_os=unicos 2970b0ce0bfSmrg ;; 2980b0ce0bfSmrg crds | unos) 2990b0ce0bfSmrg basic_machine=m68k-crds 3000b0ce0bfSmrg basic_os= 3010b0ce0bfSmrg ;; 3020b0ce0bfSmrg da30) 3030b0ce0bfSmrg basic_machine=m68k-da30 3040b0ce0bfSmrg basic_os= 3050b0ce0bfSmrg ;; 3060b0ce0bfSmrg decstation | pmax | pmin | dec3100 | decstatn) 3070b0ce0bfSmrg basic_machine=mips-dec 3080b0ce0bfSmrg basic_os= 3090b0ce0bfSmrg ;; 3100b0ce0bfSmrg delta88) 3110b0ce0bfSmrg basic_machine=m88k-motorola 3120b0ce0bfSmrg basic_os=sysv3 3130b0ce0bfSmrg ;; 3140b0ce0bfSmrg dicos) 3150b0ce0bfSmrg basic_machine=i686-pc 3160b0ce0bfSmrg basic_os=dicos 3170b0ce0bfSmrg ;; 3180b0ce0bfSmrg djgpp) 3190b0ce0bfSmrg basic_machine=i586-pc 3200b0ce0bfSmrg basic_os=msdosdjgpp 3210b0ce0bfSmrg ;; 3220b0ce0bfSmrg ebmon29k) 3230b0ce0bfSmrg basic_machine=a29k-amd 3240b0ce0bfSmrg basic_os=ebmon 3250b0ce0bfSmrg ;; 3260b0ce0bfSmrg es1800 | OSE68k | ose68k | ose | OSE) 3270b0ce0bfSmrg basic_machine=m68k-ericsson 3280b0ce0bfSmrg basic_os=ose 3290b0ce0bfSmrg ;; 3300b0ce0bfSmrg gmicro) 3310b0ce0bfSmrg basic_machine=tron-gmicro 3320b0ce0bfSmrg basic_os=sysv 3330b0ce0bfSmrg ;; 3340b0ce0bfSmrg go32) 3350b0ce0bfSmrg basic_machine=i386-pc 3360b0ce0bfSmrg basic_os=go32 3370b0ce0bfSmrg ;; 3380b0ce0bfSmrg h8300hms) 3390b0ce0bfSmrg basic_machine=h8300-hitachi 3400b0ce0bfSmrg basic_os=hms 3410b0ce0bfSmrg ;; 3420b0ce0bfSmrg h8300xray) 3430b0ce0bfSmrg basic_machine=h8300-hitachi 3440b0ce0bfSmrg basic_os=xray 3450b0ce0bfSmrg ;; 3460b0ce0bfSmrg h8500hms) 3470b0ce0bfSmrg basic_machine=h8500-hitachi 3480b0ce0bfSmrg basic_os=hms 3490b0ce0bfSmrg ;; 3500b0ce0bfSmrg harris) 3510b0ce0bfSmrg basic_machine=m88k-harris 3520b0ce0bfSmrg basic_os=sysv3 3530b0ce0bfSmrg ;; 3540b0ce0bfSmrg hp300 | hp300hpux) 3550b0ce0bfSmrg basic_machine=m68k-hp 3560b0ce0bfSmrg basic_os=hpux 3570b0ce0bfSmrg ;; 3580b0ce0bfSmrg hp300bsd) 3590b0ce0bfSmrg basic_machine=m68k-hp 3600b0ce0bfSmrg basic_os=bsd 3610b0ce0bfSmrg ;; 3620b0ce0bfSmrg hppaosf) 3630b0ce0bfSmrg basic_machine=hppa1.1-hp 3640b0ce0bfSmrg basic_os=osf 3650b0ce0bfSmrg ;; 3660b0ce0bfSmrg hppro) 3670b0ce0bfSmrg basic_machine=hppa1.1-hp 3680b0ce0bfSmrg basic_os=proelf 3690b0ce0bfSmrg ;; 3700b0ce0bfSmrg i386mach) 3710b0ce0bfSmrg basic_machine=i386-mach 3720b0ce0bfSmrg basic_os=mach 3730b0ce0bfSmrg ;; 3740b0ce0bfSmrg isi68 | isi) 3750b0ce0bfSmrg basic_machine=m68k-isi 3760b0ce0bfSmrg basic_os=sysv 3770b0ce0bfSmrg ;; 3780b0ce0bfSmrg m68knommu) 3790b0ce0bfSmrg basic_machine=m68k-unknown 3800b0ce0bfSmrg basic_os=linux 3810b0ce0bfSmrg ;; 3820b0ce0bfSmrg magnum | m3230) 3830b0ce0bfSmrg basic_machine=mips-mips 3840b0ce0bfSmrg basic_os=sysv 3850b0ce0bfSmrg ;; 3860b0ce0bfSmrg merlin) 3870b0ce0bfSmrg basic_machine=ns32k-utek 3880b0ce0bfSmrg basic_os=sysv 3890b0ce0bfSmrg ;; 3900b0ce0bfSmrg mingw64) 3910b0ce0bfSmrg basic_machine=x86_64-pc 3920b0ce0bfSmrg basic_os=mingw64 3930b0ce0bfSmrg ;; 3940b0ce0bfSmrg mingw32) 3950b0ce0bfSmrg basic_machine=i686-pc 3960b0ce0bfSmrg basic_os=mingw32 3970b0ce0bfSmrg ;; 3980b0ce0bfSmrg mingw32ce) 3990b0ce0bfSmrg basic_machine=arm-unknown 4000b0ce0bfSmrg basic_os=mingw32ce 4010b0ce0bfSmrg ;; 4020b0ce0bfSmrg monitor) 4030b0ce0bfSmrg basic_machine=m68k-rom68k 4040b0ce0bfSmrg basic_os=coff 4050b0ce0bfSmrg ;; 4060b0ce0bfSmrg morphos) 4070b0ce0bfSmrg basic_machine=powerpc-unknown 4080b0ce0bfSmrg basic_os=morphos 4090b0ce0bfSmrg ;; 4100b0ce0bfSmrg moxiebox) 4110b0ce0bfSmrg basic_machine=moxie-unknown 4120b0ce0bfSmrg basic_os=moxiebox 4130b0ce0bfSmrg ;; 4140b0ce0bfSmrg msdos) 4150b0ce0bfSmrg basic_machine=i386-pc 4160b0ce0bfSmrg basic_os=msdos 4170b0ce0bfSmrg ;; 4180b0ce0bfSmrg msys) 4190b0ce0bfSmrg basic_machine=i686-pc 4200b0ce0bfSmrg basic_os=msys 4210b0ce0bfSmrg ;; 4220b0ce0bfSmrg mvs) 4230b0ce0bfSmrg basic_machine=i370-ibm 4240b0ce0bfSmrg basic_os=mvs 4250b0ce0bfSmrg ;; 4260b0ce0bfSmrg nacl) 4270b0ce0bfSmrg basic_machine=le32-unknown 4280b0ce0bfSmrg basic_os=nacl 4290b0ce0bfSmrg ;; 4300b0ce0bfSmrg ncr3000) 4310b0ce0bfSmrg basic_machine=i486-ncr 4320b0ce0bfSmrg basic_os=sysv4 4330b0ce0bfSmrg ;; 4340b0ce0bfSmrg netbsd386) 4350b0ce0bfSmrg basic_machine=i386-pc 4360b0ce0bfSmrg basic_os=netbsd 4370b0ce0bfSmrg ;; 4380b0ce0bfSmrg netwinder) 4390b0ce0bfSmrg basic_machine=armv4l-rebel 4400b0ce0bfSmrg basic_os=linux 4410b0ce0bfSmrg ;; 4420b0ce0bfSmrg news | news700 | news800 | news900) 4430b0ce0bfSmrg basic_machine=m68k-sony 4440b0ce0bfSmrg basic_os=newsos 4450b0ce0bfSmrg ;; 4460b0ce0bfSmrg news1000) 4470b0ce0bfSmrg basic_machine=m68030-sony 4480b0ce0bfSmrg basic_os=newsos 4490b0ce0bfSmrg ;; 4500b0ce0bfSmrg necv70) 4510b0ce0bfSmrg basic_machine=v70-nec 4520b0ce0bfSmrg basic_os=sysv 4530b0ce0bfSmrg ;; 4540b0ce0bfSmrg nh3000) 4550b0ce0bfSmrg basic_machine=m68k-harris 4560b0ce0bfSmrg basic_os=cxux 4570b0ce0bfSmrg ;; 4580b0ce0bfSmrg nh[45]000) 4590b0ce0bfSmrg basic_machine=m88k-harris 4600b0ce0bfSmrg basic_os=cxux 4610b0ce0bfSmrg ;; 4620b0ce0bfSmrg nindy960) 4630b0ce0bfSmrg basic_machine=i960-intel 4640b0ce0bfSmrg basic_os=nindy 4650b0ce0bfSmrg ;; 4660b0ce0bfSmrg mon960) 4670b0ce0bfSmrg basic_machine=i960-intel 4680b0ce0bfSmrg basic_os=mon960 4690b0ce0bfSmrg ;; 4700b0ce0bfSmrg nonstopux) 4710b0ce0bfSmrg basic_machine=mips-compaq 4720b0ce0bfSmrg basic_os=nonstopux 4730b0ce0bfSmrg ;; 4740b0ce0bfSmrg os400) 4750b0ce0bfSmrg basic_machine=powerpc-ibm 4760b0ce0bfSmrg basic_os=os400 4770b0ce0bfSmrg ;; 4780b0ce0bfSmrg OSE68000 | ose68000) 4790b0ce0bfSmrg basic_machine=m68000-ericsson 4800b0ce0bfSmrg basic_os=ose 4810b0ce0bfSmrg ;; 4820b0ce0bfSmrg os68k) 4830b0ce0bfSmrg basic_machine=m68k-none 4840b0ce0bfSmrg basic_os=os68k 4850b0ce0bfSmrg ;; 4860b0ce0bfSmrg paragon) 4870b0ce0bfSmrg basic_machine=i860-intel 4880b0ce0bfSmrg basic_os=osf 4890b0ce0bfSmrg ;; 4900b0ce0bfSmrg parisc) 4910b0ce0bfSmrg basic_machine=hppa-unknown 4920b0ce0bfSmrg basic_os=linux 4930b0ce0bfSmrg ;; 4940b0ce0bfSmrg psp) 4950b0ce0bfSmrg basic_machine=mipsallegrexel-sony 4960b0ce0bfSmrg basic_os=psp 4970b0ce0bfSmrg ;; 4980b0ce0bfSmrg pw32) 4990b0ce0bfSmrg basic_machine=i586-unknown 5000b0ce0bfSmrg basic_os=pw32 5010b0ce0bfSmrg ;; 5020b0ce0bfSmrg rdos | rdos64) 5030b0ce0bfSmrg basic_machine=x86_64-pc 5040b0ce0bfSmrg basic_os=rdos 5050b0ce0bfSmrg ;; 5060b0ce0bfSmrg rdos32) 5070b0ce0bfSmrg basic_machine=i386-pc 5080b0ce0bfSmrg basic_os=rdos 5090b0ce0bfSmrg ;; 5100b0ce0bfSmrg rom68k) 5110b0ce0bfSmrg basic_machine=m68k-rom68k 5120b0ce0bfSmrg basic_os=coff 5130b0ce0bfSmrg ;; 5140b0ce0bfSmrg sa29200) 5150b0ce0bfSmrg basic_machine=a29k-amd 5160b0ce0bfSmrg basic_os=udi 5170b0ce0bfSmrg ;; 5180b0ce0bfSmrg sei) 5190b0ce0bfSmrg basic_machine=mips-sei 5200b0ce0bfSmrg basic_os=seiux 5210b0ce0bfSmrg ;; 5220b0ce0bfSmrg sequent) 5230b0ce0bfSmrg basic_machine=i386-sequent 5240b0ce0bfSmrg basic_os= 5250b0ce0bfSmrg ;; 5260b0ce0bfSmrg sps7) 5270b0ce0bfSmrg basic_machine=m68k-bull 5280b0ce0bfSmrg basic_os=sysv2 5290b0ce0bfSmrg ;; 5300b0ce0bfSmrg st2000) 5310b0ce0bfSmrg basic_machine=m68k-tandem 5320b0ce0bfSmrg basic_os= 5330b0ce0bfSmrg ;; 5340b0ce0bfSmrg stratus) 5350b0ce0bfSmrg basic_machine=i860-stratus 5360b0ce0bfSmrg basic_os=sysv4 5370b0ce0bfSmrg ;; 5380b0ce0bfSmrg sun2) 5390b0ce0bfSmrg basic_machine=m68000-sun 5400b0ce0bfSmrg basic_os= 5410b0ce0bfSmrg ;; 5420b0ce0bfSmrg sun2os3) 5430b0ce0bfSmrg basic_machine=m68000-sun 5440b0ce0bfSmrg basic_os=sunos3 5450b0ce0bfSmrg ;; 5460b0ce0bfSmrg sun2os4) 5470b0ce0bfSmrg basic_machine=m68000-sun 5480b0ce0bfSmrg basic_os=sunos4 5490b0ce0bfSmrg ;; 5500b0ce0bfSmrg sun3) 5510b0ce0bfSmrg basic_machine=m68k-sun 5520b0ce0bfSmrg basic_os= 5530b0ce0bfSmrg ;; 5540b0ce0bfSmrg sun3os3) 5550b0ce0bfSmrg basic_machine=m68k-sun 5560b0ce0bfSmrg basic_os=sunos3 5570b0ce0bfSmrg ;; 5580b0ce0bfSmrg sun3os4) 5590b0ce0bfSmrg basic_machine=m68k-sun 5600b0ce0bfSmrg basic_os=sunos4 5610b0ce0bfSmrg ;; 5620b0ce0bfSmrg sun4) 5630b0ce0bfSmrg basic_machine=sparc-sun 5640b0ce0bfSmrg basic_os= 5650b0ce0bfSmrg ;; 5660b0ce0bfSmrg sun4os3) 5670b0ce0bfSmrg basic_machine=sparc-sun 5680b0ce0bfSmrg basic_os=sunos3 5690b0ce0bfSmrg ;; 5700b0ce0bfSmrg sun4os4) 5710b0ce0bfSmrg basic_machine=sparc-sun 5720b0ce0bfSmrg basic_os=sunos4 5730b0ce0bfSmrg ;; 5740b0ce0bfSmrg sun4sol2) 5750b0ce0bfSmrg basic_machine=sparc-sun 5760b0ce0bfSmrg basic_os=solaris2 5770b0ce0bfSmrg ;; 5780b0ce0bfSmrg sun386 | sun386i | roadrunner) 5790b0ce0bfSmrg basic_machine=i386-sun 5800b0ce0bfSmrg basic_os= 5810b0ce0bfSmrg ;; 5820b0ce0bfSmrg sv1) 5830b0ce0bfSmrg basic_machine=sv1-cray 5840b0ce0bfSmrg basic_os=unicos 5850b0ce0bfSmrg ;; 5860b0ce0bfSmrg symmetry) 5870b0ce0bfSmrg basic_machine=i386-sequent 5880b0ce0bfSmrg basic_os=dynix 5890b0ce0bfSmrg ;; 5900b0ce0bfSmrg t3e) 5910b0ce0bfSmrg basic_machine=alphaev5-cray 5920b0ce0bfSmrg basic_os=unicos 5930b0ce0bfSmrg ;; 5940b0ce0bfSmrg t90) 5950b0ce0bfSmrg basic_machine=t90-cray 5960b0ce0bfSmrg basic_os=unicos 5970b0ce0bfSmrg ;; 5980b0ce0bfSmrg toad1) 5990b0ce0bfSmrg basic_machine=pdp10-xkl 6000b0ce0bfSmrg basic_os=tops20 6010b0ce0bfSmrg ;; 6020b0ce0bfSmrg tpf) 6030b0ce0bfSmrg basic_machine=s390x-ibm 6040b0ce0bfSmrg basic_os=tpf 6050b0ce0bfSmrg ;; 6060b0ce0bfSmrg udi29k) 6070b0ce0bfSmrg basic_machine=a29k-amd 6080b0ce0bfSmrg basic_os=udi 6090b0ce0bfSmrg ;; 6100b0ce0bfSmrg ultra3) 6110b0ce0bfSmrg basic_machine=a29k-nyu 6120b0ce0bfSmrg basic_os=sym1 6130b0ce0bfSmrg ;; 6140b0ce0bfSmrg v810 | necv810) 6150b0ce0bfSmrg basic_machine=v810-nec 6160b0ce0bfSmrg basic_os=none 6170b0ce0bfSmrg ;; 6180b0ce0bfSmrg vaxv) 6190b0ce0bfSmrg basic_machine=vax-dec 6200b0ce0bfSmrg basic_os=sysv 6210b0ce0bfSmrg ;; 6220b0ce0bfSmrg vms) 6230b0ce0bfSmrg basic_machine=vax-dec 6240b0ce0bfSmrg basic_os=vms 6250b0ce0bfSmrg ;; 6260b0ce0bfSmrg vsta) 6270b0ce0bfSmrg basic_machine=i386-pc 6280b0ce0bfSmrg basic_os=vsta 6290b0ce0bfSmrg ;; 6300b0ce0bfSmrg vxworks960) 6310b0ce0bfSmrg basic_machine=i960-wrs 6320b0ce0bfSmrg basic_os=vxworks 6330b0ce0bfSmrg ;; 6340b0ce0bfSmrg vxworks68) 6350b0ce0bfSmrg basic_machine=m68k-wrs 6360b0ce0bfSmrg basic_os=vxworks 6370b0ce0bfSmrg ;; 6380b0ce0bfSmrg vxworks29k) 6390b0ce0bfSmrg basic_machine=a29k-wrs 6400b0ce0bfSmrg basic_os=vxworks 6410b0ce0bfSmrg ;; 6420b0ce0bfSmrg xbox) 6430b0ce0bfSmrg basic_machine=i686-pc 6440b0ce0bfSmrg basic_os=mingw32 6450b0ce0bfSmrg ;; 6460b0ce0bfSmrg ymp) 6470b0ce0bfSmrg basic_machine=ymp-cray 6480b0ce0bfSmrg basic_os=unicos 6490b0ce0bfSmrg ;; 6500b0ce0bfSmrg *) 6510b0ce0bfSmrg basic_machine=$1 6520b0ce0bfSmrg basic_os= 6530b0ce0bfSmrg ;; 6540b0ce0bfSmrg esac 65532b578d3Smrg ;; 65632b578d3Smrgesac 65732b578d3Smrg 6580b0ce0bfSmrg# Decode 1-component or ad-hoc basic machines 65932b578d3Smrgcase $basic_machine in 6600b0ce0bfSmrg # Here we handle the default manufacturer of certain CPU types. It is in 6610b0ce0bfSmrg # some cases the only manufacturer, in others, it is the most popular. 6620b0ce0bfSmrg w89k) 6630b0ce0bfSmrg cpu=hppa1.1 6640b0ce0bfSmrg vendor=winbond 6655a81ca49Smrg ;; 6660b0ce0bfSmrg op50n) 6670b0ce0bfSmrg cpu=hppa1.1 6680b0ce0bfSmrg vendor=oki 66932b578d3Smrg ;; 6700b0ce0bfSmrg op60c) 6710b0ce0bfSmrg cpu=hppa1.1 6720b0ce0bfSmrg vendor=oki 67332b578d3Smrg ;; 6740b0ce0bfSmrg ibm*) 6750b0ce0bfSmrg cpu=i370 6760b0ce0bfSmrg vendor=ibm 67732b578d3Smrg ;; 6780b0ce0bfSmrg orion105) 6790b0ce0bfSmrg cpu=clipper 6800b0ce0bfSmrg vendor=highlevel 6815a81ca49Smrg ;; 6820b0ce0bfSmrg mac | mpw | mac-mpw) 6830b0ce0bfSmrg cpu=m68k 6840b0ce0bfSmrg vendor=apple 685e35d4d8eSmrg ;; 6860b0ce0bfSmrg pmac | pmac-mpw) 6870b0ce0bfSmrg cpu=powerpc 6880b0ce0bfSmrg vendor=apple 689e35d4d8eSmrg ;; 690e35d4d8eSmrg 69132b578d3Smrg # Recognize the various machine names and aliases which stand 69232b578d3Smrg # for a CPU type and a company and sometimes even an OS. 69332b578d3Smrg 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 6940b0ce0bfSmrg cpu=m68000 6950b0ce0bfSmrg vendor=att 69632b578d3Smrg ;; 69732b578d3Smrg 3b*) 6980b0ce0bfSmrg cpu=we32k 6990b0ce0bfSmrg vendor=att 700d31dbc53Smrg ;; 7011b12faf6Smrg bluegene*) 7020b0ce0bfSmrg cpu=powerpc 7030b0ce0bfSmrg vendor=ibm 7040b0ce0bfSmrg basic_os=cnk 70532b578d3Smrg ;; 70632b578d3Smrg decsystem10* | dec10*) 7070b0ce0bfSmrg cpu=pdp10 7080b0ce0bfSmrg vendor=dec 7090b0ce0bfSmrg basic_os=tops10 71032b578d3Smrg ;; 71132b578d3Smrg decsystem20* | dec20*) 7120b0ce0bfSmrg cpu=pdp10 7130b0ce0bfSmrg vendor=dec 7140b0ce0bfSmrg basic_os=tops20 71532b578d3Smrg ;; 71632b578d3Smrg delta | 3300 | motorola-3300 | motorola-delta \ 71732b578d3Smrg | 3300-motorola | delta-motorola) 7180b0ce0bfSmrg cpu=m68k 7190b0ce0bfSmrg vendor=motorola 72032b578d3Smrg ;; 7210b0ce0bfSmrg dpx2*) 7220b0ce0bfSmrg cpu=m68k 7230b0ce0bfSmrg vendor=bull 7240b0ce0bfSmrg basic_os=sysv3 72532b578d3Smrg ;; 72632b578d3Smrg encore | umax | mmax) 7270b0ce0bfSmrg cpu=ns32k 7280b0ce0bfSmrg vendor=encore 72932b578d3Smrg ;; 7300b0ce0bfSmrg elxsi) 7310b0ce0bfSmrg cpu=elxsi 7320b0ce0bfSmrg vendor=elxsi 7330b0ce0bfSmrg basic_os=${basic_os:-bsd} 73432b578d3Smrg ;; 73532b578d3Smrg fx2800) 7360b0ce0bfSmrg cpu=i860 7370b0ce0bfSmrg vendor=alliant 73832b578d3Smrg ;; 73932b578d3Smrg genix) 7400b0ce0bfSmrg cpu=ns32k 7410b0ce0bfSmrg vendor=ns 74232b578d3Smrg ;; 74332b578d3Smrg h3050r* | hiux*) 7440b0ce0bfSmrg cpu=hppa1.1 7450b0ce0bfSmrg vendor=hitachi 7460b0ce0bfSmrg basic_os=hiuxwe2 74732b578d3Smrg ;; 74832b578d3Smrg hp3k9[0-9][0-9] | hp9[0-9][0-9]) 7490b0ce0bfSmrg cpu=hppa1.0 7500b0ce0bfSmrg vendor=hp 75132b578d3Smrg ;; 75232b578d3Smrg hp9k2[0-9][0-9] | hp9k31[0-9]) 7530b0ce0bfSmrg cpu=m68000 7540b0ce0bfSmrg vendor=hp 75532b578d3Smrg ;; 75632b578d3Smrg hp9k3[2-9][0-9]) 7570b0ce0bfSmrg cpu=m68k 7580b0ce0bfSmrg vendor=hp 75932b578d3Smrg ;; 76032b578d3Smrg hp9k6[0-9][0-9] | hp6[0-9][0-9]) 7610b0ce0bfSmrg cpu=hppa1.0 7620b0ce0bfSmrg vendor=hp 76332b578d3Smrg ;; 76432b578d3Smrg hp9k7[0-79][0-9] | hp7[0-79][0-9]) 7650b0ce0bfSmrg cpu=hppa1.1 7660b0ce0bfSmrg vendor=hp 76732b578d3Smrg ;; 76832b578d3Smrg hp9k78[0-9] | hp78[0-9]) 76932b578d3Smrg # FIXME: really hppa2.0-hp 7700b0ce0bfSmrg cpu=hppa1.1 7710b0ce0bfSmrg vendor=hp 77232b578d3Smrg ;; 77332b578d3Smrg hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 77432b578d3Smrg # FIXME: really hppa2.0-hp 7750b0ce0bfSmrg cpu=hppa1.1 7760b0ce0bfSmrg vendor=hp 77732b578d3Smrg ;; 77832b578d3Smrg hp9k8[0-9][13679] | hp8[0-9][13679]) 7790b0ce0bfSmrg cpu=hppa1.1 7800b0ce0bfSmrg vendor=hp 78132b578d3Smrg ;; 78232b578d3Smrg hp9k8[0-9][0-9] | hp8[0-9][0-9]) 7830b0ce0bfSmrg cpu=hppa1.0 7840b0ce0bfSmrg vendor=hp 78532b578d3Smrg ;; 78632b578d3Smrg i*86v32) 7870b0ce0bfSmrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7880b0ce0bfSmrg vendor=pc 7890b0ce0bfSmrg basic_os=sysv32 79032b578d3Smrg ;; 79132b578d3Smrg i*86v4*) 7920b0ce0bfSmrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7930b0ce0bfSmrg vendor=pc 7940b0ce0bfSmrg basic_os=sysv4 79532b578d3Smrg ;; 79632b578d3Smrg i*86v) 7970b0ce0bfSmrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7980b0ce0bfSmrg vendor=pc 7990b0ce0bfSmrg basic_os=sysv 80032b578d3Smrg ;; 80132b578d3Smrg i*86sol2) 8020b0ce0bfSmrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 8030b0ce0bfSmrg vendor=pc 8040b0ce0bfSmrg basic_os=solaris2 80532b578d3Smrg ;; 8060b0ce0bfSmrg j90 | j90-cray) 8070b0ce0bfSmrg cpu=j90 8080b0ce0bfSmrg vendor=cray 8090b0ce0bfSmrg basic_os=${basic_os:-unicos} 81032b578d3Smrg ;; 81132b578d3Smrg iris | iris4d) 8120b0ce0bfSmrg cpu=mips 8130b0ce0bfSmrg vendor=sgi 8140b0ce0bfSmrg case $basic_os in 8150b0ce0bfSmrg irix*) 81632b578d3Smrg ;; 81732b578d3Smrg *) 8180b0ce0bfSmrg basic_os=irix4 81932b578d3Smrg ;; 82032b578d3Smrg esac 82132b578d3Smrg ;; 82232b578d3Smrg miniframe) 8230b0ce0bfSmrg cpu=m68000 8240b0ce0bfSmrg vendor=convergent 825e35d4d8eSmrg ;; 8260b0ce0bfSmrg *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) 8270b0ce0bfSmrg cpu=m68k 8280b0ce0bfSmrg vendor=atari 8290b0ce0bfSmrg basic_os=mint 83032b578d3Smrg ;; 83132b578d3Smrg news-3600 | risc-news) 8320b0ce0bfSmrg cpu=mips 8330b0ce0bfSmrg vendor=sony 8340b0ce0bfSmrg basic_os=newsos 8350b0ce0bfSmrg ;; 8360b0ce0bfSmrg next | m*-next) 8370b0ce0bfSmrg cpu=m68k 8380b0ce0bfSmrg vendor=next 8390b0ce0bfSmrg case $basic_os in 8400b0ce0bfSmrg openstep*) 8410b0ce0bfSmrg ;; 8420b0ce0bfSmrg nextstep*) 84332b578d3Smrg ;; 8440b0ce0bfSmrg ns2*) 8450b0ce0bfSmrg basic_os=nextstep2 84632b578d3Smrg ;; 84732b578d3Smrg *) 8480b0ce0bfSmrg basic_os=nextstep3 84932b578d3Smrg ;; 85032b578d3Smrg esac 85132b578d3Smrg ;; 85232b578d3Smrg np1) 8530b0ce0bfSmrg cpu=np1 8540b0ce0bfSmrg vendor=gould 85532b578d3Smrg ;; 85632b578d3Smrg op50n-* | op60c-*) 8570b0ce0bfSmrg cpu=hppa1.1 8580b0ce0bfSmrg vendor=oki 8590b0ce0bfSmrg basic_os=proelf 86032b578d3Smrg ;; 86132b578d3Smrg pa-hitachi) 8620b0ce0bfSmrg cpu=hppa1.1 8630b0ce0bfSmrg vendor=hitachi 8640b0ce0bfSmrg basic_os=hiuxwe2 865d31dbc53Smrg ;; 86632b578d3Smrg pbd) 8670b0ce0bfSmrg cpu=sparc 8680b0ce0bfSmrg vendor=tti 86932b578d3Smrg ;; 87032b578d3Smrg pbb) 8710b0ce0bfSmrg cpu=m68k 8720b0ce0bfSmrg vendor=tti 87332b578d3Smrg ;; 8740b0ce0bfSmrg pc532) 8750b0ce0bfSmrg cpu=ns32k 8760b0ce0bfSmrg vendor=pc532 87732b578d3Smrg ;; 87832b578d3Smrg pn) 8790b0ce0bfSmrg cpu=pn 8800b0ce0bfSmrg vendor=gould 88132b578d3Smrg ;; 8820b0ce0bfSmrg power) 8830b0ce0bfSmrg cpu=power 8840b0ce0bfSmrg vendor=ibm 88532b578d3Smrg ;; 88632b578d3Smrg ps2) 8870b0ce0bfSmrg cpu=i386 8880b0ce0bfSmrg vendor=ibm 88932b578d3Smrg ;; 89032b578d3Smrg rm[46]00) 8910b0ce0bfSmrg cpu=mips 8920b0ce0bfSmrg vendor=siemens 89332b578d3Smrg ;; 89432b578d3Smrg rtpc | rtpc-*) 8950b0ce0bfSmrg cpu=romp 8960b0ce0bfSmrg vendor=ibm 89732b578d3Smrg ;; 8980b0ce0bfSmrg sde) 8990b0ce0bfSmrg cpu=mipsisa32 9000b0ce0bfSmrg vendor=sde 9010b0ce0bfSmrg basic_os=${basic_os:-elf} 90232b578d3Smrg ;; 9030b0ce0bfSmrg simso-wrs) 9040b0ce0bfSmrg cpu=sparclite 9050b0ce0bfSmrg vendor=wrs 9060b0ce0bfSmrg basic_os=vxworks 90732b578d3Smrg ;; 9080b0ce0bfSmrg tower | tower-32) 9090b0ce0bfSmrg cpu=m68k 9100b0ce0bfSmrg vendor=ncr 91132b578d3Smrg ;; 9120b0ce0bfSmrg vpp*|vx|vx-*) 9130b0ce0bfSmrg cpu=f301 9140b0ce0bfSmrg vendor=fujitsu 91532b578d3Smrg ;; 9160b0ce0bfSmrg w65) 9170b0ce0bfSmrg cpu=w65 9180b0ce0bfSmrg vendor=wdc 91932b578d3Smrg ;; 9200b0ce0bfSmrg w89k-*) 9210b0ce0bfSmrg cpu=hppa1.1 9220b0ce0bfSmrg vendor=winbond 9230b0ce0bfSmrg basic_os=proelf 92432b578d3Smrg ;; 9250b0ce0bfSmrg none) 9260b0ce0bfSmrg cpu=none 9270b0ce0bfSmrg vendor=none 92832b578d3Smrg ;; 9290b0ce0bfSmrg leon|leon[3-9]) 9300b0ce0bfSmrg cpu=sparc 9310b0ce0bfSmrg vendor=$basic_machine 93232b578d3Smrg ;; 9330b0ce0bfSmrg leon-*|leon[3-9]-*) 9340b0ce0bfSmrg cpu=sparc 9350b0ce0bfSmrg vendor=`echo "$basic_machine" | sed 's/-.*//'` 93632b578d3Smrg ;; 9370b0ce0bfSmrg 9380b0ce0bfSmrg *-*) 9390b0ce0bfSmrg # shellcheck disable=SC2162 9400b0ce0bfSmrg saved_IFS=$IFS 9410b0ce0bfSmrg IFS="-" read cpu vendor <<EOF 9420b0ce0bfSmrg$basic_machine 9430b0ce0bfSmrgEOF 9440b0ce0bfSmrg IFS=$saved_IFS 94532b578d3Smrg ;; 9460b0ce0bfSmrg # We use `pc' rather than `unknown' 9470b0ce0bfSmrg # because (1) that's what they normally are, and 9480b0ce0bfSmrg # (2) the word "unknown" tends to confuse beginning users. 9490b0ce0bfSmrg i*86 | x86_64) 9500b0ce0bfSmrg cpu=$basic_machine 9510b0ce0bfSmrg vendor=pc 95232b578d3Smrg ;; 9530b0ce0bfSmrg # These rules are duplicated from below for sake of the special case above; 9540b0ce0bfSmrg # i.e. things that normalized to x86 arches should also default to "pc" 9550b0ce0bfSmrg pc98) 9560b0ce0bfSmrg cpu=i386 9570b0ce0bfSmrg vendor=pc 95832b578d3Smrg ;; 9590b0ce0bfSmrg x64 | amd64) 9600b0ce0bfSmrg cpu=x86_64 9610b0ce0bfSmrg vendor=pc 96232b578d3Smrg ;; 9630b0ce0bfSmrg # Recognize the basic CPU types without company name. 9640b0ce0bfSmrg *) 9650b0ce0bfSmrg cpu=$basic_machine 9660b0ce0bfSmrg vendor=unknown 967e35d4d8eSmrg ;; 9680b0ce0bfSmrgesac 9690b0ce0bfSmrg 9700b0ce0bfSmrgunset -v basic_machine 9710b0ce0bfSmrg 9720b0ce0bfSmrg# Decode basic machines in the full and proper CPU-Company form. 9730b0ce0bfSmrgcase $cpu-$vendor in 9740b0ce0bfSmrg # Here we handle the default manufacturer of certain CPU types in canonical form. It is in 9750b0ce0bfSmrg # some cases the only manufacturer, in others, it is the most popular. 9760b0ce0bfSmrg craynv-unknown) 9770b0ce0bfSmrg vendor=cray 9780b0ce0bfSmrg basic_os=${basic_os:-unicosmp} 97932b578d3Smrg ;; 9800b0ce0bfSmrg c90-unknown | c90-cray) 9810b0ce0bfSmrg vendor=cray 9820b0ce0bfSmrg basic_os=${Basic_os:-unicos} 98332b578d3Smrg ;; 9840b0ce0bfSmrg fx80-unknown) 9850b0ce0bfSmrg vendor=alliant 98632b578d3Smrg ;; 9870b0ce0bfSmrg romp-unknown) 9880b0ce0bfSmrg vendor=ibm 98932b578d3Smrg ;; 9900b0ce0bfSmrg mmix-unknown) 9910b0ce0bfSmrg vendor=knuth 99232b578d3Smrg ;; 9930b0ce0bfSmrg microblaze-unknown | microblazeel-unknown) 9940b0ce0bfSmrg vendor=xilinx 99532b578d3Smrg ;; 9960b0ce0bfSmrg rs6000-unknown) 9970b0ce0bfSmrg vendor=ibm 99832b578d3Smrg ;; 9990b0ce0bfSmrg vax-unknown) 10000b0ce0bfSmrg vendor=dec 100132b578d3Smrg ;; 10020b0ce0bfSmrg pdp11-unknown) 10030b0ce0bfSmrg vendor=dec 100432b578d3Smrg ;; 10050b0ce0bfSmrg we32k-unknown) 10060b0ce0bfSmrg vendor=att 100732b578d3Smrg ;; 10080b0ce0bfSmrg cydra-unknown) 10090b0ce0bfSmrg vendor=cydrome 101032b578d3Smrg ;; 10110b0ce0bfSmrg i370-ibm*) 10120b0ce0bfSmrg vendor=ibm 101332b578d3Smrg ;; 10140b0ce0bfSmrg orion-unknown) 10150b0ce0bfSmrg vendor=highlevel 101632b578d3Smrg ;; 10170b0ce0bfSmrg xps-unknown | xps100-unknown) 10180b0ce0bfSmrg cpu=xps100 10190b0ce0bfSmrg vendor=honeywell 102032b578d3Smrg ;; 10210b0ce0bfSmrg 10220b0ce0bfSmrg # Here we normalize CPU types with a missing or matching vendor 10230b0ce0bfSmrg dpx20-unknown | dpx20-bull) 10240b0ce0bfSmrg cpu=rs6000 10250b0ce0bfSmrg vendor=bull 10260b0ce0bfSmrg basic_os=${basic_os:-bosx} 102732b578d3Smrg ;; 10280b0ce0bfSmrg 10290b0ce0bfSmrg # Here we normalize CPU types irrespective of the vendor 10300b0ce0bfSmrg amd64-*) 10310b0ce0bfSmrg cpu=x86_64 1032d31dbc53Smrg ;; 10330b0ce0bfSmrg blackfin-*) 10340b0ce0bfSmrg cpu=bfin 10350b0ce0bfSmrg basic_os=linux 103632b578d3Smrg ;; 10370b0ce0bfSmrg c54x-*) 10380b0ce0bfSmrg cpu=tic54x 103932b578d3Smrg ;; 10400b0ce0bfSmrg c55x-*) 10410b0ce0bfSmrg cpu=tic55x 104232b578d3Smrg ;; 10430b0ce0bfSmrg c6x-*) 10440b0ce0bfSmrg cpu=tic6x 104532b578d3Smrg ;; 10460b0ce0bfSmrg e500v[12]-*) 10470b0ce0bfSmrg cpu=powerpc 10480b0ce0bfSmrg basic_os=${basic_os}"spe" 104932b578d3Smrg ;; 10500b0ce0bfSmrg mips3*-*) 10510b0ce0bfSmrg cpu=mips64 105232b578d3Smrg ;; 10530b0ce0bfSmrg ms1-*) 10540b0ce0bfSmrg cpu=mt 105532b578d3Smrg ;; 10560b0ce0bfSmrg m68knommu-*) 10570b0ce0bfSmrg cpu=m68k 10580b0ce0bfSmrg basic_os=linux 105932b578d3Smrg ;; 10600b0ce0bfSmrg m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) 10610b0ce0bfSmrg cpu=s12z 106232b578d3Smrg ;; 10630b0ce0bfSmrg openrisc-*) 10640b0ce0bfSmrg cpu=or32 106532b578d3Smrg ;; 10660b0ce0bfSmrg parisc-*) 10670b0ce0bfSmrg cpu=hppa 10680b0ce0bfSmrg basic_os=linux 106932b578d3Smrg ;; 10700b0ce0bfSmrg pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 10710b0ce0bfSmrg cpu=i586 107232b578d3Smrg ;; 10730b0ce0bfSmrg pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) 10740b0ce0bfSmrg cpu=i686 107532b578d3Smrg ;; 10760b0ce0bfSmrg pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 10770b0ce0bfSmrg cpu=i686 107832b578d3Smrg ;; 10790b0ce0bfSmrg pentium4-*) 10800b0ce0bfSmrg cpu=i786 108132b578d3Smrg ;; 10820b0ce0bfSmrg pc98-*) 10830b0ce0bfSmrg cpu=i386 108432b578d3Smrg ;; 10850b0ce0bfSmrg ppc-* | ppcbe-*) 10860b0ce0bfSmrg cpu=powerpc 108732b578d3Smrg ;; 10880b0ce0bfSmrg ppcle-* | powerpclittle-*) 10890b0ce0bfSmrg cpu=powerpcle 109032b578d3Smrg ;; 10910b0ce0bfSmrg ppc64-*) 10920b0ce0bfSmrg cpu=powerpc64 1093e35d4d8eSmrg ;; 10940b0ce0bfSmrg ppc64le-* | powerpc64little-*) 10950b0ce0bfSmrg cpu=powerpc64le 109632b578d3Smrg ;; 10970b0ce0bfSmrg sb1-*) 10980b0ce0bfSmrg cpu=mipsisa64sb1 109932b578d3Smrg ;; 11000b0ce0bfSmrg sb1el-*) 11010b0ce0bfSmrg cpu=mipsisa64sb1el 11021b12faf6Smrg ;; 11030b0ce0bfSmrg sh5e[lb]-*) 11040b0ce0bfSmrg cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` 110532b578d3Smrg ;; 11060b0ce0bfSmrg spur-*) 11070b0ce0bfSmrg cpu=spur 110832b578d3Smrg ;; 11090b0ce0bfSmrg strongarm-* | thumb-*) 11100b0ce0bfSmrg cpu=arm 111132b578d3Smrg ;; 11120b0ce0bfSmrg tx39-*) 11130b0ce0bfSmrg cpu=mipstx39 111432b578d3Smrg ;; 11150b0ce0bfSmrg tx39el-*) 11160b0ce0bfSmrg cpu=mipstx39el 111732b578d3Smrg ;; 11180b0ce0bfSmrg x64-*) 11190b0ce0bfSmrg cpu=x86_64 112032b578d3Smrg ;; 11210b0ce0bfSmrg xscale-* | xscalee[bl]-*) 11220b0ce0bfSmrg cpu=`echo "$cpu" | sed 's/^xscale/arm/'` 112332b578d3Smrg ;; 11240b0ce0bfSmrg arm64-*) 11250b0ce0bfSmrg cpu=aarch64 112632b578d3Smrg ;; 11270b0ce0bfSmrg 11280b0ce0bfSmrg # Recognize the canonical CPU Types that limit and/or modify the 11290b0ce0bfSmrg # company names they are paired with. 11300b0ce0bfSmrg cr16-*) 11310b0ce0bfSmrg basic_os=${basic_os:-elf} 113232b578d3Smrg ;; 11330b0ce0bfSmrg crisv32-* | etraxfs*-*) 11340b0ce0bfSmrg cpu=crisv32 11350b0ce0bfSmrg vendor=axis 113632b578d3Smrg ;; 11370b0ce0bfSmrg cris-* | etrax*-*) 11380b0ce0bfSmrg cpu=cris 11390b0ce0bfSmrg vendor=axis 114032b578d3Smrg ;; 11410b0ce0bfSmrg crx-*) 11420b0ce0bfSmrg basic_os=${basic_os:-elf} 114332b578d3Smrg ;; 11440b0ce0bfSmrg neo-tandem) 11450b0ce0bfSmrg cpu=neo 11460b0ce0bfSmrg vendor=tandem 114732b578d3Smrg ;; 11480b0ce0bfSmrg nse-tandem) 11490b0ce0bfSmrg cpu=nse 11500b0ce0bfSmrg vendor=tandem 115132b578d3Smrg ;; 11520b0ce0bfSmrg nsr-tandem) 11530b0ce0bfSmrg cpu=nsr 11540b0ce0bfSmrg vendor=tandem 115532b578d3Smrg ;; 11560b0ce0bfSmrg nsv-tandem) 11570b0ce0bfSmrg cpu=nsv 11580b0ce0bfSmrg vendor=tandem 115932b578d3Smrg ;; 11600b0ce0bfSmrg nsx-tandem) 11610b0ce0bfSmrg cpu=nsx 11620b0ce0bfSmrg vendor=tandem 116332b578d3Smrg ;; 11640b0ce0bfSmrg mipsallegrexel-sony) 11650b0ce0bfSmrg cpu=mipsallegrexel 11660b0ce0bfSmrg vendor=sony 116732b578d3Smrg ;; 11680b0ce0bfSmrg tile*-*) 11690b0ce0bfSmrg basic_os=${basic_os:-linux-gnu} 117032b578d3Smrg ;; 11710b0ce0bfSmrg 117232b578d3Smrg *) 11730b0ce0bfSmrg # Recognize the canonical CPU types that are allowed with any 11740b0ce0bfSmrg # company name. 11750b0ce0bfSmrg case $cpu in 11760b0ce0bfSmrg 1750a | 580 \ 11770b0ce0bfSmrg | a29k \ 11780b0ce0bfSmrg | aarch64 | aarch64_be \ 11790b0ce0bfSmrg | abacus \ 11800b0ce0bfSmrg | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ 11810b0ce0bfSmrg | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ 11820b0ce0bfSmrg | alphapca5[67] | alpha64pca5[67] \ 11830b0ce0bfSmrg | am33_2.0 \ 11840b0ce0bfSmrg | amdgcn \ 11850b0ce0bfSmrg | arc | arceb | arc32 | arc64 \ 11860b0ce0bfSmrg | arm | arm[lb]e | arme[lb] | armv* \ 11870b0ce0bfSmrg | avr | avr32 \ 11880b0ce0bfSmrg | asmjs \ 11890b0ce0bfSmrg | ba \ 11900b0ce0bfSmrg | be32 | be64 \ 11910b0ce0bfSmrg | bfin | bpf | bs2000 \ 11920b0ce0bfSmrg | c[123]* | c30 | [cjt]90 | c4x \ 11930b0ce0bfSmrg | c8051 | clipper | craynv | csky | cydra \ 11940b0ce0bfSmrg | d10v | d30v | dlx | dsp16xx \ 11950b0ce0bfSmrg | e2k | elxsi | epiphany \ 11960b0ce0bfSmrg | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ 11970b0ce0bfSmrg | h8300 | h8500 \ 11980b0ce0bfSmrg | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 11990b0ce0bfSmrg | hexagon \ 12000b0ce0bfSmrg | i370 | i*86 | i860 | i960 | ia16 | ia64 \ 12010b0ce0bfSmrg | ip2k | iq2000 \ 12020b0ce0bfSmrg | k1om \ 12030b0ce0bfSmrg | le32 | le64 \ 12040b0ce0bfSmrg | lm32 \ 12050b0ce0bfSmrg | loongarch32 | loongarch64 | loongarchx32 \ 12060b0ce0bfSmrg | m32c | m32r | m32rle \ 12070b0ce0bfSmrg | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ 12080b0ce0bfSmrg | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ 12090b0ce0bfSmrg | m88110 | m88k | maxq | mb | mcore | mep | metag \ 12100b0ce0bfSmrg | microblaze | microblazeel \ 12110b0ce0bfSmrg | mips | mipsbe | mipseb | mipsel | mipsle \ 12120b0ce0bfSmrg | mips16 \ 12130b0ce0bfSmrg | mips64 | mips64eb | mips64el \ 12140b0ce0bfSmrg | mips64octeon | mips64octeonel \ 12150b0ce0bfSmrg | mips64orion | mips64orionel \ 12160b0ce0bfSmrg | mips64r5900 | mips64r5900el \ 12170b0ce0bfSmrg | mips64vr | mips64vrel \ 12180b0ce0bfSmrg | mips64vr4100 | mips64vr4100el \ 12190b0ce0bfSmrg | mips64vr4300 | mips64vr4300el \ 12200b0ce0bfSmrg | mips64vr5000 | mips64vr5000el \ 12210b0ce0bfSmrg | mips64vr5900 | mips64vr5900el \ 12220b0ce0bfSmrg | mipsisa32 | mipsisa32el \ 12230b0ce0bfSmrg | mipsisa32r2 | mipsisa32r2el \ 12240b0ce0bfSmrg | mipsisa32r3 | mipsisa32r3el \ 12250b0ce0bfSmrg | mipsisa32r5 | mipsisa32r5el \ 12260b0ce0bfSmrg | mipsisa32r6 | mipsisa32r6el \ 12270b0ce0bfSmrg | mipsisa64 | mipsisa64el \ 12280b0ce0bfSmrg | mipsisa64r2 | mipsisa64r2el \ 12290b0ce0bfSmrg | mipsisa64r3 | mipsisa64r3el \ 12300b0ce0bfSmrg | mipsisa64r5 | mipsisa64r5el \ 12310b0ce0bfSmrg | mipsisa64r6 | mipsisa64r6el \ 12320b0ce0bfSmrg | mipsisa64sb1 | mipsisa64sb1el \ 12330b0ce0bfSmrg | mipsisa64sr71k | mipsisa64sr71kel \ 12340b0ce0bfSmrg | mipsr5900 | mipsr5900el \ 12350b0ce0bfSmrg | mipstx39 | mipstx39el \ 12360b0ce0bfSmrg | mmix \ 12370b0ce0bfSmrg | mn10200 | mn10300 \ 12380b0ce0bfSmrg | moxie \ 12390b0ce0bfSmrg | mt \ 12400b0ce0bfSmrg | msp430 \ 12410b0ce0bfSmrg | nds32 | nds32le | nds32be \ 12420b0ce0bfSmrg | nfp \ 12430b0ce0bfSmrg | nios | nios2 | nios2eb | nios2el \ 12440b0ce0bfSmrg | none | np1 | ns16k | ns32k | nvptx \ 12450b0ce0bfSmrg | open8 \ 12460b0ce0bfSmrg | or1k* \ 12470b0ce0bfSmrg | or32 \ 12480b0ce0bfSmrg | orion \ 12490b0ce0bfSmrg | picochip \ 12500b0ce0bfSmrg | pdp10 | pdp11 | pj | pjl | pn | power \ 12510b0ce0bfSmrg | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ 12520b0ce0bfSmrg | pru \ 12530b0ce0bfSmrg | pyramid \ 12540b0ce0bfSmrg | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ 12550b0ce0bfSmrg | rl78 | romp | rs6000 | rx \ 12560b0ce0bfSmrg | s390 | s390x \ 12570b0ce0bfSmrg | score \ 12580b0ce0bfSmrg | sh | shl \ 12590b0ce0bfSmrg | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ 12600b0ce0bfSmrg | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ 12610b0ce0bfSmrg | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ 12620b0ce0bfSmrg | sparclite \ 12630b0ce0bfSmrg | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ 12640b0ce0bfSmrg | spu \ 12650b0ce0bfSmrg | tahoe \ 12660b0ce0bfSmrg | thumbv7* \ 12670b0ce0bfSmrg | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ 12680b0ce0bfSmrg | tron \ 12690b0ce0bfSmrg | ubicom32 \ 12700b0ce0bfSmrg | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ 12710b0ce0bfSmrg | vax \ 12720b0ce0bfSmrg | visium \ 12730b0ce0bfSmrg | w65 \ 12740b0ce0bfSmrg | wasm32 | wasm64 \ 12750b0ce0bfSmrg | we32k \ 12760b0ce0bfSmrg | x86 | x86_64 | xc16x | xgate | xps100 \ 12770b0ce0bfSmrg | xstormy16 | xtensa* \ 12780b0ce0bfSmrg | ymp \ 12790b0ce0bfSmrg | z8k | z80) 12800b0ce0bfSmrg ;; 12810b0ce0bfSmrg 12820b0ce0bfSmrg *) 12830b0ce0bfSmrg echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 12840b0ce0bfSmrg exit 1 12850b0ce0bfSmrg ;; 12860b0ce0bfSmrg esac 128732b578d3Smrg ;; 128832b578d3Smrgesac 128932b578d3Smrg 129032b578d3Smrg# Here we canonicalize certain aliases for manufacturers. 12910b0ce0bfSmrgcase $vendor in 12920b0ce0bfSmrg digital*) 12930b0ce0bfSmrg vendor=dec 129432b578d3Smrg ;; 12950b0ce0bfSmrg commodore*) 12960b0ce0bfSmrg vendor=cbm 129732b578d3Smrg ;; 129832b578d3Smrg *) 129932b578d3Smrg ;; 130032b578d3Smrgesac 130132b578d3Smrg 130232b578d3Smrg# Decode manufacturer-specific aliases for certain operating systems. 130332b578d3Smrg 13040b0ce0bfSmrgif test x$basic_os != x 130532b578d3Smrgthen 13060b0ce0bfSmrg 13070b0ce0bfSmrg# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just 13080b0ce0bfSmrg# set os. 13090b0ce0bfSmrgcase $basic_os in 13100b0ce0bfSmrg gnu/linux*) 13110b0ce0bfSmrg kernel=linux 13120b0ce0bfSmrg os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` 13130b0ce0bfSmrg ;; 13140b0ce0bfSmrg os2-emx) 13150b0ce0bfSmrg kernel=os2 13160b0ce0bfSmrg os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` 13170b0ce0bfSmrg ;; 13180b0ce0bfSmrg nto-qnx*) 13190b0ce0bfSmrg kernel=nto 13200b0ce0bfSmrg os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` 13210b0ce0bfSmrg ;; 13220b0ce0bfSmrg *-*) 13230b0ce0bfSmrg # shellcheck disable=SC2162 13240b0ce0bfSmrg saved_IFS=$IFS 13250b0ce0bfSmrg IFS="-" read kernel os <<EOF 13260b0ce0bfSmrg$basic_os 13270b0ce0bfSmrgEOF 13280b0ce0bfSmrg IFS=$saved_IFS 13290b0ce0bfSmrg ;; 13300b0ce0bfSmrg # Default OS when just kernel was specified 13310b0ce0bfSmrg nto*) 13320b0ce0bfSmrg kernel=nto 13330b0ce0bfSmrg os=`echo "$basic_os" | sed -e 's|nto|qnx|'` 13340b0ce0bfSmrg ;; 13350b0ce0bfSmrg linux*) 13360b0ce0bfSmrg kernel=linux 13370b0ce0bfSmrg os=`echo "$basic_os" | sed -e 's|linux|gnu|'` 13380b0ce0bfSmrg ;; 13390b0ce0bfSmrg *) 13400b0ce0bfSmrg kernel= 13410b0ce0bfSmrg os=$basic_os 13420b0ce0bfSmrg ;; 13430b0ce0bfSmrgesac 13440b0ce0bfSmrg 13450b0ce0bfSmrg# Now, normalize the OS (knowing we just have one component, it's not a kernel, 13460b0ce0bfSmrg# etc.) 134732b578d3Smrgcase $os in 13480b0ce0bfSmrg # First match some system type aliases that might get confused 13490b0ce0bfSmrg # with valid system types. 13500b0ce0bfSmrg # solaris* is a basic system type, with this one exception. 13510b0ce0bfSmrg auroraux) 13520b0ce0bfSmrg os=auroraux 13531b12faf6Smrg ;; 13540b0ce0bfSmrg bluegene*) 13550b0ce0bfSmrg os=cnk 135632b578d3Smrg ;; 13570b0ce0bfSmrg solaris1 | solaris1.*) 13580b0ce0bfSmrg os=`echo "$os" | sed -e 's|solaris1|sunos4|'` 135932b578d3Smrg ;; 13600b0ce0bfSmrg solaris) 13610b0ce0bfSmrg os=solaris2 136232b578d3Smrg ;; 13630b0ce0bfSmrg unixware*) 13640b0ce0bfSmrg os=sysv4.2uw 136532b578d3Smrg ;; 13660b0ce0bfSmrg # es1800 is here to avoid being matched by es* (a different OS) 13670b0ce0bfSmrg es1800*) 13680b0ce0bfSmrg os=ose 136932b578d3Smrg ;; 13700b0ce0bfSmrg # Some version numbers need modification 13710b0ce0bfSmrg chorusos*) 13720b0ce0bfSmrg os=chorusos 137332b578d3Smrg ;; 13740b0ce0bfSmrg isc) 13750b0ce0bfSmrg os=isc2.2 137632b578d3Smrg ;; 13770b0ce0bfSmrg sco6) 13780b0ce0bfSmrg os=sco5v6 137932b578d3Smrg ;; 13800b0ce0bfSmrg sco5) 13810b0ce0bfSmrg os=sco3.2v5 138232b578d3Smrg ;; 13830b0ce0bfSmrg sco4) 13840b0ce0bfSmrg os=sco3.2v4 138532b578d3Smrg ;; 13860b0ce0bfSmrg sco3.2.[4-9]*) 13870b0ce0bfSmrg os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'` 138832b578d3Smrg ;; 13890b0ce0bfSmrg sco*v* | scout) 13900b0ce0bfSmrg # Don't match below 139132b578d3Smrg ;; 13920b0ce0bfSmrg sco*) 13930b0ce0bfSmrg os=sco3.2v2 139432b578d3Smrg ;; 13950b0ce0bfSmrg psos*) 13960b0ce0bfSmrg os=psos 139732b578d3Smrg ;; 13980b0ce0bfSmrg qnx*) 13990b0ce0bfSmrg os=qnx 140032b578d3Smrg ;; 14010b0ce0bfSmrg hiux*) 14020b0ce0bfSmrg os=hiuxwe2 140332b578d3Smrg ;; 14040b0ce0bfSmrg lynx*178) 14050b0ce0bfSmrg os=lynxos178 140632b578d3Smrg ;; 14070b0ce0bfSmrg lynx*5) 14080b0ce0bfSmrg os=lynxos5 140932b578d3Smrg ;; 14100b0ce0bfSmrg lynxos*) 14110b0ce0bfSmrg # don't get caught up in next wildcard 141232b578d3Smrg ;; 14130b0ce0bfSmrg lynx*) 14140b0ce0bfSmrg os=lynxos 141532b578d3Smrg ;; 14160b0ce0bfSmrg mac[0-9]*) 14170b0ce0bfSmrg os=`echo "$os" | sed -e 's|mac|macos|'` 141832b578d3Smrg ;; 14190b0ce0bfSmrg opened*) 14200b0ce0bfSmrg os=openedition 142132b578d3Smrg ;; 14220b0ce0bfSmrg os400*) 14230b0ce0bfSmrg os=os400 142432b578d3Smrg ;; 14250b0ce0bfSmrg sunos5*) 14260b0ce0bfSmrg os=`echo "$os" | sed -e 's|sunos5|solaris2|'` 142732b578d3Smrg ;; 14280b0ce0bfSmrg sunos6*) 14290b0ce0bfSmrg os=`echo "$os" | sed -e 's|sunos6|solaris3|'` 143032b578d3Smrg ;; 14310b0ce0bfSmrg wince*) 14320b0ce0bfSmrg os=wince 143332b578d3Smrg ;; 14340b0ce0bfSmrg utek*) 14350b0ce0bfSmrg os=bsd 143632b578d3Smrg ;; 14370b0ce0bfSmrg dynix*) 14380b0ce0bfSmrg os=bsd 143932b578d3Smrg ;; 14400b0ce0bfSmrg acis*) 14410b0ce0bfSmrg os=aos 144232b578d3Smrg ;; 14430b0ce0bfSmrg atheos*) 14440b0ce0bfSmrg os=atheos 144532b578d3Smrg ;; 14460b0ce0bfSmrg syllable*) 14470b0ce0bfSmrg os=syllable 144832b578d3Smrg ;; 14490b0ce0bfSmrg 386bsd) 14500b0ce0bfSmrg os=bsd 145132b578d3Smrg ;; 14520b0ce0bfSmrg ctix* | uts*) 14530b0ce0bfSmrg os=sysv 145432b578d3Smrg ;; 14550b0ce0bfSmrg nova*) 14560b0ce0bfSmrg os=rtmk-nova 145732b578d3Smrg ;; 14580b0ce0bfSmrg ns2) 14590b0ce0bfSmrg os=nextstep2 146032b578d3Smrg ;; 14610b0ce0bfSmrg # Preserve the version number of sinix5. 14620b0ce0bfSmrg sinix5.*) 14630b0ce0bfSmrg os=`echo "$os" | sed -e 's|sinix|sysv|'` 146432b578d3Smrg ;; 14650b0ce0bfSmrg sinix*) 14660b0ce0bfSmrg os=sysv4 146732b578d3Smrg ;; 14680b0ce0bfSmrg tpf*) 14690b0ce0bfSmrg os=tpf 147032b578d3Smrg ;; 14710b0ce0bfSmrg triton*) 14720b0ce0bfSmrg os=sysv3 147332b578d3Smrg ;; 14740b0ce0bfSmrg oss*) 14750b0ce0bfSmrg os=sysv3 147632b578d3Smrg ;; 14770b0ce0bfSmrg svr4*) 14780b0ce0bfSmrg os=sysv4 147932b578d3Smrg ;; 14800b0ce0bfSmrg svr3) 14810b0ce0bfSmrg os=sysv3 148232b578d3Smrg ;; 14830b0ce0bfSmrg sysvr4) 14840b0ce0bfSmrg os=sysv4 148532b578d3Smrg ;; 14860b0ce0bfSmrg ose*) 14870b0ce0bfSmrg os=ose 148832b578d3Smrg ;; 14890b0ce0bfSmrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 14900b0ce0bfSmrg os=mint 14911b12faf6Smrg ;; 14920b0ce0bfSmrg dicos*) 14930b0ce0bfSmrg os=dicos 1494e35d4d8eSmrg ;; 14950b0ce0bfSmrg pikeos*) 14960b0ce0bfSmrg # Until real need of OS specific support for 14970b0ce0bfSmrg # particular features comes up, bare metal 14980b0ce0bfSmrg # configurations are quite functional. 14990b0ce0bfSmrg case $cpu in 15000b0ce0bfSmrg arm*) 15010b0ce0bfSmrg os=eabi 15020b0ce0bfSmrg ;; 15030b0ce0bfSmrg *) 15040b0ce0bfSmrg os=elf 15050b0ce0bfSmrg ;; 15060b0ce0bfSmrg esac 150732b578d3Smrg ;; 150832b578d3Smrg *) 15090b0ce0bfSmrg # No normalization, but not necessarily accepted, that comes below. 151032b578d3Smrg ;; 151132b578d3Smrgesac 15120b0ce0bfSmrg 151332b578d3Smrgelse 151432b578d3Smrg 151532b578d3Smrg# Here we handle the default operating systems that come with various machines. 151632b578d3Smrg# The value should be what the vendor currently ships out the door with their 151732b578d3Smrg# machine or put another way, the most popular os provided with the machine. 151832b578d3Smrg 151932b578d3Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say, 152032b578d3Smrg# "-sun"), then you have to tell the case statement up towards the top 152132b578d3Smrg# that MANUFACTURER isn't an operating system. Otherwise, code above 152232b578d3Smrg# will signal an error saying that MANUFACTURER isn't an operating 152332b578d3Smrg# system, and we'll never get to this point. 152432b578d3Smrg 15250b0ce0bfSmrgkernel= 15260b0ce0bfSmrgcase $cpu-$vendor in 1527e35d4d8eSmrg score-*) 15280b0ce0bfSmrg os=elf 152932b578d3Smrg ;; 1530e35d4d8eSmrg spu-*) 15310b0ce0bfSmrg os=elf 153232b578d3Smrg ;; 153332b578d3Smrg *-acorn) 15340b0ce0bfSmrg os=riscix1.2 153532b578d3Smrg ;; 153632b578d3Smrg arm*-rebel) 15370b0ce0bfSmrg kernel=linux 15380b0ce0bfSmrg os=gnu 153932b578d3Smrg ;; 154032b578d3Smrg arm*-semi) 15410b0ce0bfSmrg os=aout 154232b578d3Smrg ;; 1543e35d4d8eSmrg c4x-* | tic4x-*) 15440b0ce0bfSmrg os=coff 1545e35d4d8eSmrg ;; 15465a81ca49Smrg c8051-*) 15470b0ce0bfSmrg os=elf 15480b0ce0bfSmrg ;; 15490b0ce0bfSmrg clipper-intergraph) 15500b0ce0bfSmrg os=clix 15515a81ca49Smrg ;; 15525a81ca49Smrg hexagon-*) 15530b0ce0bfSmrg os=elf 15545a81ca49Smrg ;; 1555e35d4d8eSmrg tic54x-*) 15560b0ce0bfSmrg os=coff 1557e35d4d8eSmrg ;; 1558e35d4d8eSmrg tic55x-*) 15590b0ce0bfSmrg os=coff 1560e35d4d8eSmrg ;; 1561e35d4d8eSmrg tic6x-*) 15620b0ce0bfSmrg os=coff 156332b578d3Smrg ;; 156432b578d3Smrg # This must come before the *-dec entry. 156532b578d3Smrg pdp10-*) 15660b0ce0bfSmrg os=tops20 156732b578d3Smrg ;; 156832b578d3Smrg pdp11-*) 15690b0ce0bfSmrg os=none 157032b578d3Smrg ;; 157132b578d3Smrg *-dec | vax-*) 15720b0ce0bfSmrg os=ultrix4.2 157332b578d3Smrg ;; 157432b578d3Smrg m68*-apollo) 15750b0ce0bfSmrg os=domain 157632b578d3Smrg ;; 157732b578d3Smrg i386-sun) 15780b0ce0bfSmrg os=sunos4.0.2 157932b578d3Smrg ;; 158032b578d3Smrg m68000-sun) 15810b0ce0bfSmrg os=sunos3 158232b578d3Smrg ;; 158332b578d3Smrg m68*-cisco) 15840b0ce0bfSmrg os=aout 158532b578d3Smrg ;; 1586e35d4d8eSmrg mep-*) 15870b0ce0bfSmrg os=elf 158832b578d3Smrg ;; 158932b578d3Smrg mips*-cisco) 15900b0ce0bfSmrg os=elf 159132b578d3Smrg ;; 159232b578d3Smrg mips*-*) 15930b0ce0bfSmrg os=elf 159432b578d3Smrg ;; 159532b578d3Smrg or32-*) 15960b0ce0bfSmrg os=coff 159732b578d3Smrg ;; 159832b578d3Smrg *-tti) # must be before sparc entry or we get the wrong os. 15990b0ce0bfSmrg os=sysv3 160032b578d3Smrg ;; 160132b578d3Smrg sparc-* | *-sun) 16020b0ce0bfSmrg os=sunos4.1.1 160332b578d3Smrg ;; 16040b0ce0bfSmrg pru-*) 16050b0ce0bfSmrg os=elf 160632b578d3Smrg ;; 16070b0ce0bfSmrg *-be) 16080b0ce0bfSmrg os=beos 160932b578d3Smrg ;; 161032b578d3Smrg *-ibm) 16110b0ce0bfSmrg os=aix 161232b578d3Smrg ;; 1613e35d4d8eSmrg *-knuth) 16140b0ce0bfSmrg os=mmixware 161532b578d3Smrg ;; 161632b578d3Smrg *-wec) 16170b0ce0bfSmrg os=proelf 161832b578d3Smrg ;; 161932b578d3Smrg *-winbond) 16200b0ce0bfSmrg os=proelf 162132b578d3Smrg ;; 162232b578d3Smrg *-oki) 16230b0ce0bfSmrg os=proelf 162432b578d3Smrg ;; 162532b578d3Smrg *-hp) 16260b0ce0bfSmrg os=hpux 162732b578d3Smrg ;; 162832b578d3Smrg *-hitachi) 16290b0ce0bfSmrg os=hiux 163032b578d3Smrg ;; 163132b578d3Smrg i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 16320b0ce0bfSmrg os=sysv 163332b578d3Smrg ;; 163432b578d3Smrg *-cbm) 16350b0ce0bfSmrg os=amigaos 163632b578d3Smrg ;; 163732b578d3Smrg *-dg) 16380b0ce0bfSmrg os=dgux 163932b578d3Smrg ;; 164032b578d3Smrg *-dolphin) 16410b0ce0bfSmrg os=sysv3 164232b578d3Smrg ;; 164332b578d3Smrg m68k-ccur) 16440b0ce0bfSmrg os=rtu 164532b578d3Smrg ;; 164632b578d3Smrg m88k-omron*) 16470b0ce0bfSmrg os=luna 164832b578d3Smrg ;; 16490b0ce0bfSmrg *-next) 16500b0ce0bfSmrg os=nextstep 165132b578d3Smrg ;; 165232b578d3Smrg *-sequent) 16530b0ce0bfSmrg os=ptx 165432b578d3Smrg ;; 165532b578d3Smrg *-crds) 16560b0ce0bfSmrg os=unos 165732b578d3Smrg ;; 165832b578d3Smrg *-ns) 16590b0ce0bfSmrg os=genix 166032b578d3Smrg ;; 166132b578d3Smrg i370-*) 16620b0ce0bfSmrg os=mvs 166332b578d3Smrg ;; 166432b578d3Smrg *-gould) 16650b0ce0bfSmrg os=sysv 166632b578d3Smrg ;; 166732b578d3Smrg *-highlevel) 16680b0ce0bfSmrg os=bsd 166932b578d3Smrg ;; 167032b578d3Smrg *-encore) 16710b0ce0bfSmrg os=bsd 167232b578d3Smrg ;; 167332b578d3Smrg *-sgi) 16740b0ce0bfSmrg os=irix 167532b578d3Smrg ;; 167632b578d3Smrg *-siemens) 16770b0ce0bfSmrg os=sysv4 167832b578d3Smrg ;; 167932b578d3Smrg *-masscomp) 16800b0ce0bfSmrg os=rtu 168132b578d3Smrg ;; 168232b578d3Smrg f30[01]-fujitsu | f700-fujitsu) 16830b0ce0bfSmrg os=uxpv 168432b578d3Smrg ;; 168532b578d3Smrg *-rom68k) 16860b0ce0bfSmrg os=coff 168732b578d3Smrg ;; 168832b578d3Smrg *-*bug) 16890b0ce0bfSmrg os=coff 169032b578d3Smrg ;; 169132b578d3Smrg *-apple) 16920b0ce0bfSmrg os=macos 169332b578d3Smrg ;; 169432b578d3Smrg *-atari*) 16950b0ce0bfSmrg os=mint 16960b0ce0bfSmrg ;; 16970b0ce0bfSmrg *-wrs) 16980b0ce0bfSmrg os=vxworks 169932b578d3Smrg ;; 170032b578d3Smrg *) 17010b0ce0bfSmrg os=none 170232b578d3Smrg ;; 170332b578d3Smrgesac 17040b0ce0bfSmrg 170532b578d3Smrgfi 170632b578d3Smrg 17070b0ce0bfSmrg# Now, validate our (potentially fixed-up) OS. 17080b0ce0bfSmrgcase $os in 17090b0ce0bfSmrg # Sometimes we do "kernel-libc", so those need to count as OSes. 17100b0ce0bfSmrg musl* | newlib* | relibc* | uclibc*) 17110b0ce0bfSmrg ;; 17120b0ce0bfSmrg # Likewise for "kernel-abi" 17130b0ce0bfSmrg eabi* | gnueabi*) 17140b0ce0bfSmrg ;; 17150b0ce0bfSmrg # VxWorks passes extra cpu info in the 4th filed. 17160b0ce0bfSmrg simlinux | simwindows | spe) 17170b0ce0bfSmrg ;; 17180b0ce0bfSmrg # Now accept the basic system types. 17190b0ce0bfSmrg # The portable systems comes first. 17200b0ce0bfSmrg # Each alternative MUST end in a * to match a version number. 17210b0ce0bfSmrg gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ 17220b0ce0bfSmrg | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ 17230b0ce0bfSmrg | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ 17240b0ce0bfSmrg | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ 17250b0ce0bfSmrg | hiux* | abug | nacl* | netware* | windows* \ 17260b0ce0bfSmrg | os9* | macos* | osx* | ios* \ 17270b0ce0bfSmrg | mpw* | magic* | mmixware* | mon960* | lnews* \ 17280b0ce0bfSmrg | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ 17290b0ce0bfSmrg | aos* | aros* | cloudabi* | sortix* | twizzler* \ 17300b0ce0bfSmrg | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ 17310b0ce0bfSmrg | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ 17320b0ce0bfSmrg | mirbsd* | netbsd* | dicos* | openedition* | ose* \ 17330b0ce0bfSmrg | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ 17340b0ce0bfSmrg | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ 17350b0ce0bfSmrg | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ 17360b0ce0bfSmrg | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ 17370b0ce0bfSmrg | udi* | lites* | ieee* | go32* | aux* | hcos* \ 17380b0ce0bfSmrg | chorusrdb* | cegcc* | glidix* | serenity* \ 17390b0ce0bfSmrg | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ 17400b0ce0bfSmrg | midipix* | mingw32* | mingw64* | mint* \ 17410b0ce0bfSmrg | uxpv* | beos* | mpeix* | udk* | moxiebox* \ 17420b0ce0bfSmrg | interix* | uwin* | mks* | rhapsody* | darwin* \ 17430b0ce0bfSmrg | openstep* | oskit* | conix* | pw32* | nonstopux* \ 17440b0ce0bfSmrg | storm-chaos* | tops10* | tenex* | tops20* | its* \ 17450b0ce0bfSmrg | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ 17460b0ce0bfSmrg | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ 17470b0ce0bfSmrg | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ 17480b0ce0bfSmrg | skyos* | haiku* | rdos* | toppers* | drops* | es* \ 17490b0ce0bfSmrg | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ 17500b0ce0bfSmrg | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ 17510b0ce0bfSmrg | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr*) 17520b0ce0bfSmrg ;; 17530b0ce0bfSmrg # This one is extra strict with allowed versions 17540b0ce0bfSmrg sco3.2v2 | sco3.2v[4-9]* | sco5v6*) 17550b0ce0bfSmrg # Don't forget version if it is 3.2v4 or newer. 17560b0ce0bfSmrg ;; 17570b0ce0bfSmrg none) 17580b0ce0bfSmrg ;; 17590b0ce0bfSmrg *) 17600b0ce0bfSmrg echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 17610b0ce0bfSmrg exit 1 17620b0ce0bfSmrg ;; 17630b0ce0bfSmrgesac 17640b0ce0bfSmrg 17650b0ce0bfSmrg# As a final step for OS-related things, validate the OS-kernel combination 17660b0ce0bfSmrg# (given a valid OS), if there is a kernel. 17670b0ce0bfSmrgcase $kernel-$os in 17680b0ce0bfSmrg linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ 17690b0ce0bfSmrg | linux-musl* | linux-relibc* | linux-uclibc* ) 17700b0ce0bfSmrg ;; 17710b0ce0bfSmrg uclinux-uclibc* ) 17720b0ce0bfSmrg ;; 17730b0ce0bfSmrg -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) 17740b0ce0bfSmrg # These are just libc implementations, not actual OSes, and thus 17750b0ce0bfSmrg # require a kernel. 17760b0ce0bfSmrg echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 17770b0ce0bfSmrg exit 1 17780b0ce0bfSmrg ;; 17790b0ce0bfSmrg kfreebsd*-gnu* | kopensolaris*-gnu*) 17800b0ce0bfSmrg ;; 17810b0ce0bfSmrg vxworks-simlinux | vxworks-simwindows | vxworks-spe) 17820b0ce0bfSmrg ;; 17830b0ce0bfSmrg nto-qnx*) 17840b0ce0bfSmrg ;; 17850b0ce0bfSmrg os2-emx) 17860b0ce0bfSmrg ;; 17870b0ce0bfSmrg *-eabi* | *-gnueabi*) 17880b0ce0bfSmrg ;; 17890b0ce0bfSmrg -*) 17900b0ce0bfSmrg # Blank kernel with real OS is always fine. 17910b0ce0bfSmrg ;; 17920b0ce0bfSmrg *-*) 17930b0ce0bfSmrg echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 17940b0ce0bfSmrg exit 1 17950b0ce0bfSmrg ;; 17960b0ce0bfSmrgesac 17970b0ce0bfSmrg 179832b578d3Smrg# Here we handle the case where we know the os, and the CPU type, but not the 179932b578d3Smrg# manufacturer. We pick the logical manufacturer. 18000b0ce0bfSmrgcase $vendor in 18010b0ce0bfSmrg unknown) 18020b0ce0bfSmrg case $cpu-$os in 18030b0ce0bfSmrg *-riscix*) 180432b578d3Smrg vendor=acorn 180532b578d3Smrg ;; 18060b0ce0bfSmrg *-sunos*) 180732b578d3Smrg vendor=sun 180832b578d3Smrg ;; 18090b0ce0bfSmrg *-cnk* | *-aix*) 181032b578d3Smrg vendor=ibm 181132b578d3Smrg ;; 18120b0ce0bfSmrg *-beos*) 181332b578d3Smrg vendor=be 181432b578d3Smrg ;; 18150b0ce0bfSmrg *-hpux*) 181632b578d3Smrg vendor=hp 181732b578d3Smrg ;; 18180b0ce0bfSmrg *-mpeix*) 181932b578d3Smrg vendor=hp 182032b578d3Smrg ;; 18210b0ce0bfSmrg *-hiux*) 182232b578d3Smrg vendor=hitachi 182332b578d3Smrg ;; 18240b0ce0bfSmrg *-unos*) 182532b578d3Smrg vendor=crds 182632b578d3Smrg ;; 18270b0ce0bfSmrg *-dgux*) 182832b578d3Smrg vendor=dg 182932b578d3Smrg ;; 18300b0ce0bfSmrg *-luna*) 183132b578d3Smrg vendor=omron 183232b578d3Smrg ;; 18330b0ce0bfSmrg *-genix*) 183432b578d3Smrg vendor=ns 183532b578d3Smrg ;; 18360b0ce0bfSmrg *-clix*) 18370b0ce0bfSmrg vendor=intergraph 18380b0ce0bfSmrg ;; 18390b0ce0bfSmrg *-mvs* | *-opened*) 18400b0ce0bfSmrg vendor=ibm 18410b0ce0bfSmrg ;; 18420b0ce0bfSmrg *-os400*) 184332b578d3Smrg vendor=ibm 184432b578d3Smrg ;; 18450b0ce0bfSmrg s390-* | s390x-*) 184632b578d3Smrg vendor=ibm 184732b578d3Smrg ;; 18480b0ce0bfSmrg *-ptx*) 184932b578d3Smrg vendor=sequent 185032b578d3Smrg ;; 18510b0ce0bfSmrg *-tpf*) 185232b578d3Smrg vendor=ibm 185332b578d3Smrg ;; 18540b0ce0bfSmrg *-vxsim* | *-vxworks* | *-windiss*) 185532b578d3Smrg vendor=wrs 185632b578d3Smrg ;; 18570b0ce0bfSmrg *-aux*) 185832b578d3Smrg vendor=apple 185932b578d3Smrg ;; 18600b0ce0bfSmrg *-hms*) 186132b578d3Smrg vendor=hitachi 186232b578d3Smrg ;; 18630b0ce0bfSmrg *-mpw* | *-macos*) 186432b578d3Smrg vendor=apple 186532b578d3Smrg ;; 18660b0ce0bfSmrg *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) 186732b578d3Smrg vendor=atari 186832b578d3Smrg ;; 18690b0ce0bfSmrg *-vos*) 187032b578d3Smrg vendor=stratus 187132b578d3Smrg ;; 187232b578d3Smrg esac 187332b578d3Smrg ;; 187432b578d3Smrgesac 187532b578d3Smrg 18760b0ce0bfSmrgecho "$cpu-$vendor-${kernel:+$kernel-}$os" 187732b578d3Smrgexit 187832b578d3Smrg 187932b578d3Smrg# Local variables: 18800b0ce0bfSmrg# eval: (add-hook 'before-save-hook 'time-stamp) 188132b578d3Smrg# time-stamp-start: "timestamp='" 188232b578d3Smrg# time-stamp-format: "%:y-%02m-%02d" 188332b578d3Smrg# time-stamp-end: "'" 188432b578d3Smrg# End: 1885