1de2362d3Smrg#! /bin/sh 2de2362d3Smrg# Configuration validation subroutine script. 30a1d3ae0Smrg# Copyright 1992-2022 Free Software Foundation, Inc. 4de2362d3Smrg 50a1d3ae0Smrg# shellcheck disable=SC2006,SC2268 # see below for rationale 60a1d3ae0Smrg 70a1d3ae0Smrgtimestamp='2022-09-17' 8de2362d3Smrg 918781e08Smrg# This file is free software; you can redistribute it and/or modify it 1018781e08Smrg# under the terms of the GNU General Public License as published by 110a1d3ae0Smrg# the Free Software Foundation, either version 3 of the License, or 12de2362d3Smrg# (at your option) any later version. 13de2362d3Smrg# 1418781e08Smrg# This program is distributed in the hope that it will be useful, but 1518781e08Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of 1618781e08Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1718781e08Smrg# General Public License for more details. 18de2362d3Smrg# 19de2362d3Smrg# You should have received a copy of the GNU General Public License 208bf5c682Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>. 21de2362d3Smrg# 22de2362d3Smrg# As a special exception to the GNU General Public License, if you 23de2362d3Smrg# distribute this file as part of a program that contains a 24de2362d3Smrg# configuration script generated by Autoconf, you may include it under 2518781e08Smrg# the same distribution terms that you use for the rest of that 2618781e08Smrg# program. This Exception is an additional permission under section 7 2718781e08Smrg# of the GNU General Public License, version 3 ("GPLv3"). 28de2362d3Smrg 29de2362d3Smrg 3018781e08Smrg# Please send patches to <config-patches@gnu.org>. 31de2362d3Smrg# 32de2362d3Smrg# Configuration subroutine to validate and canonicalize a configuration type. 33de2362d3Smrg# Supply the specified configuration type as an argument. 34de2362d3Smrg# If it is invalid, we print an error message on stderr and exit with code 1. 35de2362d3Smrg# Otherwise, we print the canonical config type on stdout and succeed. 36de2362d3Smrg 370d16fef4Smrg# You can get the latest version of this script from: 380a1d3ae0Smrg# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub 390d16fef4Smrg 40de2362d3Smrg# This file is supposed to be the same for all GNU packages 41de2362d3Smrg# and recognize all the CPU types, system types and aliases 42de2362d3Smrg# that are meaningful with *any* GNU software. 43de2362d3Smrg# Each package is responsible for reporting which valid configurations 44de2362d3Smrg# it does not support. The user should be able to distinguish 45de2362d3Smrg# a failure to support a valid configuration from a meaningless 46de2362d3Smrg# configuration. 47de2362d3Smrg 48de2362d3Smrg# The goal of this file is to map all the various variations of a given 49de2362d3Smrg# machine specification into a single specification in the form: 50de2362d3Smrg# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 51de2362d3Smrg# or in some cases, the newer four-part form: 52de2362d3Smrg# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 53de2362d3Smrg# It is wrong to echo any other type of specification. 54de2362d3Smrg 550a1d3ae0Smrg# The "shellcheck disable" line above the timestamp inhibits complaints 560a1d3ae0Smrg# about features and limitations of the classic Bourne shell that were 570a1d3ae0Smrg# superseded or lifted in POSIX. However, this script identifies a wide 580a1d3ae0Smrg# variety of pre-POSIX systems that do not have POSIX shells at all, and 590a1d3ae0Smrg# even some reasonably current systems (Solaris 10 as case-in-point) still 600a1d3ae0Smrg# have a pre-POSIX /bin/sh. 610a1d3ae0Smrg 62de2362d3Smrgme=`echo "$0" | sed -e 's,.*/,,'` 63de2362d3Smrg 64de2362d3Smrgusage="\ 6518781e08SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 66de2362d3Smrg 67de2362d3SmrgCanonicalize a configuration name. 68de2362d3Smrg 698bf5c682SmrgOptions: 70de2362d3Smrg -h, --help print this help, then exit 71de2362d3Smrg -t, --time-stamp print date of last modification, then exit 72de2362d3Smrg -v, --version print version number, then exit 73de2362d3Smrg 74de2362d3SmrgReport bugs and patches to <config-patches@gnu.org>." 75de2362d3Smrg 76de2362d3Smrgversion="\ 77de2362d3SmrgGNU config.sub ($timestamp) 78de2362d3Smrg 790a1d3ae0SmrgCopyright 1992-2022 Free Software Foundation, Inc. 80de2362d3Smrg 81de2362d3SmrgThis is free software; see the source for copying conditions. There is NO 82de2362d3Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 83de2362d3Smrg 84de2362d3Smrghelp=" 85de2362d3SmrgTry \`$me --help' for more information." 86de2362d3Smrg 87de2362d3Smrg# Parse command line 88de2362d3Smrgwhile test $# -gt 0 ; do 89de2362d3Smrg case $1 in 90de2362d3Smrg --time-stamp | --time* | -t ) 91de2362d3Smrg echo "$timestamp" ; exit ;; 92de2362d3Smrg --version | -v ) 93de2362d3Smrg echo "$version" ; exit ;; 94de2362d3Smrg --help | --h* | -h ) 95de2362d3Smrg echo "$usage"; exit ;; 96de2362d3Smrg -- ) # Stop option processing 97de2362d3Smrg shift; break ;; 98de2362d3Smrg - ) # Use stdin as input. 99de2362d3Smrg break ;; 100de2362d3Smrg -* ) 1010a1d3ae0Smrg echo "$me: invalid option $1$help" >&2 102de2362d3Smrg exit 1 ;; 103de2362d3Smrg 104de2362d3Smrg *local*) 105de2362d3Smrg # First pass through any local machine types. 1068bf5c682Smrg echo "$1" 107de2362d3Smrg exit ;; 108de2362d3Smrg 109de2362d3Smrg * ) 110de2362d3Smrg break ;; 111de2362d3Smrg esac 112de2362d3Smrgdone 113de2362d3Smrg 114de2362d3Smrgcase $# in 115de2362d3Smrg 0) echo "$me: missing argument$help" >&2 116de2362d3Smrg exit 1;; 117de2362d3Smrg 1) ;; 118de2362d3Smrg *) echo "$me: too many arguments$help" >&2 119de2362d3Smrg exit 1;; 120de2362d3Smrgesac 121de2362d3Smrg 1220a1d3ae0Smrg# Split fields of configuration type 1230a1d3ae0Smrg# shellcheck disable=SC2162 1240a1d3ae0Smrgsaved_IFS=$IFS 1250a1d3ae0SmrgIFS="-" read field1 field2 field3 field4 <<EOF 1260a1d3ae0Smrg$1 1270a1d3ae0SmrgEOF 1280a1d3ae0SmrgIFS=$saved_IFS 129de2362d3Smrg 1300a1d3ae0Smrg# Separate into logical components for further validation 1310a1d3ae0Smrgcase $1 in 1320a1d3ae0Smrg *-*-*-*-*) 1330a1d3ae0Smrg echo Invalid configuration \`"$1"\': more than four components >&2 1340a1d3ae0Smrg exit 1 13518781e08Smrg ;; 1360a1d3ae0Smrg *-*-*-*) 1370a1d3ae0Smrg basic_machine=$field1-$field2 1380a1d3ae0Smrg basic_os=$field3-$field4 139de2362d3Smrg ;; 1400a1d3ae0Smrg *-*-*) 1410a1d3ae0Smrg # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two 1420a1d3ae0Smrg # parts 1430a1d3ae0Smrg maybe_os=$field2-$field3 1440a1d3ae0Smrg case $maybe_os in 1450a1d3ae0Smrg nto-qnx* | linux-* | uclinux-uclibc* \ 1460a1d3ae0Smrg | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ 1470a1d3ae0Smrg | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ 1480a1d3ae0Smrg | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*) 1490a1d3ae0Smrg basic_machine=$field1 1500a1d3ae0Smrg basic_os=$maybe_os 1510a1d3ae0Smrg ;; 1520a1d3ae0Smrg android-linux) 1530a1d3ae0Smrg basic_machine=$field1-unknown 1540a1d3ae0Smrg basic_os=linux-android 1550a1d3ae0Smrg ;; 1560a1d3ae0Smrg *) 1570a1d3ae0Smrg basic_machine=$field1-$field2 1580a1d3ae0Smrg basic_os=$field3 1590a1d3ae0Smrg ;; 1600a1d3ae0Smrg esac 161de2362d3Smrg ;; 1620a1d3ae0Smrg *-*) 1630a1d3ae0Smrg # A lone config we happen to match not fitting any pattern 1640a1d3ae0Smrg case $field1-$field2 in 1650a1d3ae0Smrg decstation-3100) 1660a1d3ae0Smrg basic_machine=mips-dec 1670a1d3ae0Smrg basic_os= 1680a1d3ae0Smrg ;; 1690a1d3ae0Smrg *-*) 1700a1d3ae0Smrg # Second component is usually, but not always the OS 1710a1d3ae0Smrg case $field2 in 1720a1d3ae0Smrg # Prevent following clause from handling this valid os 1730a1d3ae0Smrg sun*os*) 1740a1d3ae0Smrg basic_machine=$field1 1750a1d3ae0Smrg basic_os=$field2 1760a1d3ae0Smrg ;; 1770a1d3ae0Smrg zephyr*) 1780a1d3ae0Smrg basic_machine=$field1-unknown 1790a1d3ae0Smrg basic_os=$field2 1800a1d3ae0Smrg ;; 1810a1d3ae0Smrg # Manufacturers 1820a1d3ae0Smrg dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ 1830a1d3ae0Smrg | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ 1840a1d3ae0Smrg | unicom* | ibm* | next | hp | isi* | apollo | altos* \ 1850a1d3ae0Smrg | convergent* | ncr* | news | 32* | 3600* | 3100* \ 1860a1d3ae0Smrg | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ 1870a1d3ae0Smrg | ultra | tti* | harris | dolphin | highlevel | gould \ 1880a1d3ae0Smrg | cbm | ns | masscomp | apple | axis | knuth | cray \ 1890a1d3ae0Smrg | microblaze* | sim | cisco \ 1900a1d3ae0Smrg | oki | wec | wrs | winbond) 1910a1d3ae0Smrg basic_machine=$field1-$field2 1920a1d3ae0Smrg basic_os= 1930a1d3ae0Smrg ;; 1940a1d3ae0Smrg *) 1950a1d3ae0Smrg basic_machine=$field1 1960a1d3ae0Smrg basic_os=$field2 1970a1d3ae0Smrg ;; 1980a1d3ae0Smrg esac 1990a1d3ae0Smrg ;; 2000a1d3ae0Smrg esac 201de2362d3Smrg ;; 2020a1d3ae0Smrg *) 2030a1d3ae0Smrg # Convert single-component short-hands not valid as part of 2040a1d3ae0Smrg # multi-component configurations. 2050a1d3ae0Smrg case $field1 in 2060a1d3ae0Smrg 386bsd) 2070a1d3ae0Smrg basic_machine=i386-pc 2080a1d3ae0Smrg basic_os=bsd 2090a1d3ae0Smrg ;; 2100a1d3ae0Smrg a29khif) 2110a1d3ae0Smrg basic_machine=a29k-amd 2120a1d3ae0Smrg basic_os=udi 2130a1d3ae0Smrg ;; 2140a1d3ae0Smrg adobe68k) 2150a1d3ae0Smrg basic_machine=m68010-adobe 2160a1d3ae0Smrg basic_os=scout 2170a1d3ae0Smrg ;; 2180a1d3ae0Smrg alliant) 2190a1d3ae0Smrg basic_machine=fx80-alliant 2200a1d3ae0Smrg basic_os= 2210a1d3ae0Smrg ;; 2220a1d3ae0Smrg altos | altos3068) 2230a1d3ae0Smrg basic_machine=m68k-altos 2240a1d3ae0Smrg basic_os= 2250a1d3ae0Smrg ;; 2260a1d3ae0Smrg am29k) 2270a1d3ae0Smrg basic_machine=a29k-none 2280a1d3ae0Smrg basic_os=bsd 2290a1d3ae0Smrg ;; 2300a1d3ae0Smrg amdahl) 2310a1d3ae0Smrg basic_machine=580-amdahl 2320a1d3ae0Smrg basic_os=sysv 2330a1d3ae0Smrg ;; 2340a1d3ae0Smrg amiga) 2350a1d3ae0Smrg basic_machine=m68k-unknown 2360a1d3ae0Smrg basic_os= 2370a1d3ae0Smrg ;; 2380a1d3ae0Smrg amigaos | amigados) 2390a1d3ae0Smrg basic_machine=m68k-unknown 2400a1d3ae0Smrg basic_os=amigaos 2410a1d3ae0Smrg ;; 2420a1d3ae0Smrg amigaunix | amix) 2430a1d3ae0Smrg basic_machine=m68k-unknown 2440a1d3ae0Smrg basic_os=sysv4 2450a1d3ae0Smrg ;; 2460a1d3ae0Smrg apollo68) 2470a1d3ae0Smrg basic_machine=m68k-apollo 2480a1d3ae0Smrg basic_os=sysv 2490a1d3ae0Smrg ;; 2500a1d3ae0Smrg apollo68bsd) 2510a1d3ae0Smrg basic_machine=m68k-apollo 2520a1d3ae0Smrg basic_os=bsd 2530a1d3ae0Smrg ;; 2540a1d3ae0Smrg aros) 2550a1d3ae0Smrg basic_machine=i386-pc 2560a1d3ae0Smrg basic_os=aros 2570a1d3ae0Smrg ;; 2580a1d3ae0Smrg aux) 2590a1d3ae0Smrg basic_machine=m68k-apple 2600a1d3ae0Smrg basic_os=aux 2610a1d3ae0Smrg ;; 2620a1d3ae0Smrg balance) 2630a1d3ae0Smrg basic_machine=ns32k-sequent 2640a1d3ae0Smrg basic_os=dynix 2650a1d3ae0Smrg ;; 2660a1d3ae0Smrg blackfin) 2670a1d3ae0Smrg basic_machine=bfin-unknown 2680a1d3ae0Smrg basic_os=linux 2690a1d3ae0Smrg ;; 2700a1d3ae0Smrg cegcc) 2710a1d3ae0Smrg basic_machine=arm-unknown 2720a1d3ae0Smrg basic_os=cegcc 2730a1d3ae0Smrg ;; 2740a1d3ae0Smrg convex-c1) 2750a1d3ae0Smrg basic_machine=c1-convex 2760a1d3ae0Smrg basic_os=bsd 2770a1d3ae0Smrg ;; 2780a1d3ae0Smrg convex-c2) 2790a1d3ae0Smrg basic_machine=c2-convex 2800a1d3ae0Smrg basic_os=bsd 2810a1d3ae0Smrg ;; 2820a1d3ae0Smrg convex-c32) 2830a1d3ae0Smrg basic_machine=c32-convex 2840a1d3ae0Smrg basic_os=bsd 2850a1d3ae0Smrg ;; 2860a1d3ae0Smrg convex-c34) 2870a1d3ae0Smrg basic_machine=c34-convex 2880a1d3ae0Smrg basic_os=bsd 2890a1d3ae0Smrg ;; 2900a1d3ae0Smrg convex-c38) 2910a1d3ae0Smrg basic_machine=c38-convex 2920a1d3ae0Smrg basic_os=bsd 2930a1d3ae0Smrg ;; 2940a1d3ae0Smrg cray) 2950a1d3ae0Smrg basic_machine=j90-cray 2960a1d3ae0Smrg basic_os=unicos 2970a1d3ae0Smrg ;; 2980a1d3ae0Smrg crds | unos) 2990a1d3ae0Smrg basic_machine=m68k-crds 3000a1d3ae0Smrg basic_os= 3010a1d3ae0Smrg ;; 3020a1d3ae0Smrg da30) 3030a1d3ae0Smrg basic_machine=m68k-da30 3040a1d3ae0Smrg basic_os= 3050a1d3ae0Smrg ;; 3060a1d3ae0Smrg decstation | pmax | pmin | dec3100 | decstatn) 3070a1d3ae0Smrg basic_machine=mips-dec 3080a1d3ae0Smrg basic_os= 3090a1d3ae0Smrg ;; 3100a1d3ae0Smrg delta88) 3110a1d3ae0Smrg basic_machine=m88k-motorola 3120a1d3ae0Smrg basic_os=sysv3 3130a1d3ae0Smrg ;; 3140a1d3ae0Smrg dicos) 3150a1d3ae0Smrg basic_machine=i686-pc 3160a1d3ae0Smrg basic_os=dicos 3170a1d3ae0Smrg ;; 3180a1d3ae0Smrg djgpp) 3190a1d3ae0Smrg basic_machine=i586-pc 3200a1d3ae0Smrg basic_os=msdosdjgpp 3210a1d3ae0Smrg ;; 3220a1d3ae0Smrg ebmon29k) 3230a1d3ae0Smrg basic_machine=a29k-amd 3240a1d3ae0Smrg basic_os=ebmon 3250a1d3ae0Smrg ;; 3260a1d3ae0Smrg es1800 | OSE68k | ose68k | ose | OSE) 3270a1d3ae0Smrg basic_machine=m68k-ericsson 3280a1d3ae0Smrg basic_os=ose 3290a1d3ae0Smrg ;; 3300a1d3ae0Smrg gmicro) 3310a1d3ae0Smrg basic_machine=tron-gmicro 3320a1d3ae0Smrg basic_os=sysv 3330a1d3ae0Smrg ;; 3340a1d3ae0Smrg go32) 3350a1d3ae0Smrg basic_machine=i386-pc 3360a1d3ae0Smrg basic_os=go32 3370a1d3ae0Smrg ;; 3380a1d3ae0Smrg h8300hms) 3390a1d3ae0Smrg basic_machine=h8300-hitachi 3400a1d3ae0Smrg basic_os=hms 3410a1d3ae0Smrg ;; 3420a1d3ae0Smrg h8300xray) 3430a1d3ae0Smrg basic_machine=h8300-hitachi 3440a1d3ae0Smrg basic_os=xray 3450a1d3ae0Smrg ;; 3460a1d3ae0Smrg h8500hms) 3470a1d3ae0Smrg basic_machine=h8500-hitachi 3480a1d3ae0Smrg basic_os=hms 3490a1d3ae0Smrg ;; 3500a1d3ae0Smrg harris) 3510a1d3ae0Smrg basic_machine=m88k-harris 3520a1d3ae0Smrg basic_os=sysv3 3530a1d3ae0Smrg ;; 3540a1d3ae0Smrg hp300 | hp300hpux) 3550a1d3ae0Smrg basic_machine=m68k-hp 3560a1d3ae0Smrg basic_os=hpux 3570a1d3ae0Smrg ;; 3580a1d3ae0Smrg hp300bsd) 3590a1d3ae0Smrg basic_machine=m68k-hp 3600a1d3ae0Smrg basic_os=bsd 3610a1d3ae0Smrg ;; 3620a1d3ae0Smrg hppaosf) 3630a1d3ae0Smrg basic_machine=hppa1.1-hp 3640a1d3ae0Smrg basic_os=osf 3650a1d3ae0Smrg ;; 3660a1d3ae0Smrg hppro) 3670a1d3ae0Smrg basic_machine=hppa1.1-hp 3680a1d3ae0Smrg basic_os=proelf 3690a1d3ae0Smrg ;; 3700a1d3ae0Smrg i386mach) 3710a1d3ae0Smrg basic_machine=i386-mach 3720a1d3ae0Smrg basic_os=mach 3730a1d3ae0Smrg ;; 3740a1d3ae0Smrg isi68 | isi) 3750a1d3ae0Smrg basic_machine=m68k-isi 3760a1d3ae0Smrg basic_os=sysv 3770a1d3ae0Smrg ;; 3780a1d3ae0Smrg m68knommu) 3790a1d3ae0Smrg basic_machine=m68k-unknown 3800a1d3ae0Smrg basic_os=linux 3810a1d3ae0Smrg ;; 3820a1d3ae0Smrg magnum | m3230) 3830a1d3ae0Smrg basic_machine=mips-mips 3840a1d3ae0Smrg basic_os=sysv 3850a1d3ae0Smrg ;; 3860a1d3ae0Smrg merlin) 3870a1d3ae0Smrg basic_machine=ns32k-utek 3880a1d3ae0Smrg basic_os=sysv 3890a1d3ae0Smrg ;; 3900a1d3ae0Smrg mingw64) 3910a1d3ae0Smrg basic_machine=x86_64-pc 3920a1d3ae0Smrg basic_os=mingw64 3930a1d3ae0Smrg ;; 3940a1d3ae0Smrg mingw32) 3950a1d3ae0Smrg basic_machine=i686-pc 3960a1d3ae0Smrg basic_os=mingw32 3970a1d3ae0Smrg ;; 3980a1d3ae0Smrg mingw32ce) 3990a1d3ae0Smrg basic_machine=arm-unknown 4000a1d3ae0Smrg basic_os=mingw32ce 4010a1d3ae0Smrg ;; 4020a1d3ae0Smrg monitor) 4030a1d3ae0Smrg basic_machine=m68k-rom68k 4040a1d3ae0Smrg basic_os=coff 4050a1d3ae0Smrg ;; 4060a1d3ae0Smrg morphos) 4070a1d3ae0Smrg basic_machine=powerpc-unknown 4080a1d3ae0Smrg basic_os=morphos 4090a1d3ae0Smrg ;; 4100a1d3ae0Smrg moxiebox) 4110a1d3ae0Smrg basic_machine=moxie-unknown 4120a1d3ae0Smrg basic_os=moxiebox 4130a1d3ae0Smrg ;; 4140a1d3ae0Smrg msdos) 4150a1d3ae0Smrg basic_machine=i386-pc 4160a1d3ae0Smrg basic_os=msdos 4170a1d3ae0Smrg ;; 4180a1d3ae0Smrg msys) 4190a1d3ae0Smrg basic_machine=i686-pc 4200a1d3ae0Smrg basic_os=msys 4210a1d3ae0Smrg ;; 4220a1d3ae0Smrg mvs) 4230a1d3ae0Smrg basic_machine=i370-ibm 4240a1d3ae0Smrg basic_os=mvs 4250a1d3ae0Smrg ;; 4260a1d3ae0Smrg nacl) 4270a1d3ae0Smrg basic_machine=le32-unknown 4280a1d3ae0Smrg basic_os=nacl 4290a1d3ae0Smrg ;; 4300a1d3ae0Smrg ncr3000) 4310a1d3ae0Smrg basic_machine=i486-ncr 4320a1d3ae0Smrg basic_os=sysv4 4330a1d3ae0Smrg ;; 4340a1d3ae0Smrg netbsd386) 4350a1d3ae0Smrg basic_machine=i386-pc 4360a1d3ae0Smrg basic_os=netbsd 4370a1d3ae0Smrg ;; 4380a1d3ae0Smrg netwinder) 4390a1d3ae0Smrg basic_machine=armv4l-rebel 4400a1d3ae0Smrg basic_os=linux 4410a1d3ae0Smrg ;; 4420a1d3ae0Smrg news | news700 | news800 | news900) 4430a1d3ae0Smrg basic_machine=m68k-sony 4440a1d3ae0Smrg basic_os=newsos 4450a1d3ae0Smrg ;; 4460a1d3ae0Smrg news1000) 4470a1d3ae0Smrg basic_machine=m68030-sony 4480a1d3ae0Smrg basic_os=newsos 4490a1d3ae0Smrg ;; 4500a1d3ae0Smrg necv70) 4510a1d3ae0Smrg basic_machine=v70-nec 4520a1d3ae0Smrg basic_os=sysv 4530a1d3ae0Smrg ;; 4540a1d3ae0Smrg nh3000) 4550a1d3ae0Smrg basic_machine=m68k-harris 4560a1d3ae0Smrg basic_os=cxux 4570a1d3ae0Smrg ;; 4580a1d3ae0Smrg nh[45]000) 4590a1d3ae0Smrg basic_machine=m88k-harris 4600a1d3ae0Smrg basic_os=cxux 4610a1d3ae0Smrg ;; 4620a1d3ae0Smrg nindy960) 4630a1d3ae0Smrg basic_machine=i960-intel 4640a1d3ae0Smrg basic_os=nindy 4650a1d3ae0Smrg ;; 4660a1d3ae0Smrg mon960) 4670a1d3ae0Smrg basic_machine=i960-intel 4680a1d3ae0Smrg basic_os=mon960 4690a1d3ae0Smrg ;; 4700a1d3ae0Smrg nonstopux) 4710a1d3ae0Smrg basic_machine=mips-compaq 4720a1d3ae0Smrg basic_os=nonstopux 4730a1d3ae0Smrg ;; 4740a1d3ae0Smrg os400) 4750a1d3ae0Smrg basic_machine=powerpc-ibm 4760a1d3ae0Smrg basic_os=os400 4770a1d3ae0Smrg ;; 4780a1d3ae0Smrg OSE68000 | ose68000) 4790a1d3ae0Smrg basic_machine=m68000-ericsson 4800a1d3ae0Smrg basic_os=ose 4810a1d3ae0Smrg ;; 4820a1d3ae0Smrg os68k) 4830a1d3ae0Smrg basic_machine=m68k-none 4840a1d3ae0Smrg basic_os=os68k 4850a1d3ae0Smrg ;; 4860a1d3ae0Smrg paragon) 4870a1d3ae0Smrg basic_machine=i860-intel 4880a1d3ae0Smrg basic_os=osf 4890a1d3ae0Smrg ;; 4900a1d3ae0Smrg parisc) 4910a1d3ae0Smrg basic_machine=hppa-unknown 4920a1d3ae0Smrg basic_os=linux 4930a1d3ae0Smrg ;; 4940a1d3ae0Smrg psp) 4950a1d3ae0Smrg basic_machine=mipsallegrexel-sony 4960a1d3ae0Smrg basic_os=psp 4970a1d3ae0Smrg ;; 4980a1d3ae0Smrg pw32) 4990a1d3ae0Smrg basic_machine=i586-unknown 5000a1d3ae0Smrg basic_os=pw32 5010a1d3ae0Smrg ;; 5020a1d3ae0Smrg rdos | rdos64) 5030a1d3ae0Smrg basic_machine=x86_64-pc 5040a1d3ae0Smrg basic_os=rdos 5050a1d3ae0Smrg ;; 5060a1d3ae0Smrg rdos32) 5070a1d3ae0Smrg basic_machine=i386-pc 5080a1d3ae0Smrg basic_os=rdos 5090a1d3ae0Smrg ;; 5100a1d3ae0Smrg rom68k) 5110a1d3ae0Smrg basic_machine=m68k-rom68k 5120a1d3ae0Smrg basic_os=coff 5130a1d3ae0Smrg ;; 5140a1d3ae0Smrg sa29200) 5150a1d3ae0Smrg basic_machine=a29k-amd 5160a1d3ae0Smrg basic_os=udi 5170a1d3ae0Smrg ;; 5180a1d3ae0Smrg sei) 5190a1d3ae0Smrg basic_machine=mips-sei 5200a1d3ae0Smrg basic_os=seiux 5210a1d3ae0Smrg ;; 5220a1d3ae0Smrg sequent) 5230a1d3ae0Smrg basic_machine=i386-sequent 5240a1d3ae0Smrg basic_os= 5250a1d3ae0Smrg ;; 5260a1d3ae0Smrg sps7) 5270a1d3ae0Smrg basic_machine=m68k-bull 5280a1d3ae0Smrg basic_os=sysv2 5290a1d3ae0Smrg ;; 5300a1d3ae0Smrg st2000) 5310a1d3ae0Smrg basic_machine=m68k-tandem 5320a1d3ae0Smrg basic_os= 5330a1d3ae0Smrg ;; 5340a1d3ae0Smrg stratus) 5350a1d3ae0Smrg basic_machine=i860-stratus 5360a1d3ae0Smrg basic_os=sysv4 5370a1d3ae0Smrg ;; 5380a1d3ae0Smrg sun2) 5390a1d3ae0Smrg basic_machine=m68000-sun 5400a1d3ae0Smrg basic_os= 5410a1d3ae0Smrg ;; 5420a1d3ae0Smrg sun2os3) 5430a1d3ae0Smrg basic_machine=m68000-sun 5440a1d3ae0Smrg basic_os=sunos3 5450a1d3ae0Smrg ;; 5460a1d3ae0Smrg sun2os4) 5470a1d3ae0Smrg basic_machine=m68000-sun 5480a1d3ae0Smrg basic_os=sunos4 5490a1d3ae0Smrg ;; 5500a1d3ae0Smrg sun3) 5510a1d3ae0Smrg basic_machine=m68k-sun 5520a1d3ae0Smrg basic_os= 5530a1d3ae0Smrg ;; 5540a1d3ae0Smrg sun3os3) 5550a1d3ae0Smrg basic_machine=m68k-sun 5560a1d3ae0Smrg basic_os=sunos3 5570a1d3ae0Smrg ;; 5580a1d3ae0Smrg sun3os4) 5590a1d3ae0Smrg basic_machine=m68k-sun 5600a1d3ae0Smrg basic_os=sunos4 5610a1d3ae0Smrg ;; 5620a1d3ae0Smrg sun4) 5630a1d3ae0Smrg basic_machine=sparc-sun 5640a1d3ae0Smrg basic_os= 5650a1d3ae0Smrg ;; 5660a1d3ae0Smrg sun4os3) 5670a1d3ae0Smrg basic_machine=sparc-sun 5680a1d3ae0Smrg basic_os=sunos3 5690a1d3ae0Smrg ;; 5700a1d3ae0Smrg sun4os4) 5710a1d3ae0Smrg basic_machine=sparc-sun 5720a1d3ae0Smrg basic_os=sunos4 5730a1d3ae0Smrg ;; 5740a1d3ae0Smrg sun4sol2) 5750a1d3ae0Smrg basic_machine=sparc-sun 5760a1d3ae0Smrg basic_os=solaris2 5770a1d3ae0Smrg ;; 5780a1d3ae0Smrg sun386 | sun386i | roadrunner) 5790a1d3ae0Smrg basic_machine=i386-sun 5800a1d3ae0Smrg basic_os= 5810a1d3ae0Smrg ;; 5820a1d3ae0Smrg sv1) 5830a1d3ae0Smrg basic_machine=sv1-cray 5840a1d3ae0Smrg basic_os=unicos 5850a1d3ae0Smrg ;; 5860a1d3ae0Smrg symmetry) 5870a1d3ae0Smrg basic_machine=i386-sequent 5880a1d3ae0Smrg basic_os=dynix 5890a1d3ae0Smrg ;; 5900a1d3ae0Smrg t3e) 5910a1d3ae0Smrg basic_machine=alphaev5-cray 5920a1d3ae0Smrg basic_os=unicos 5930a1d3ae0Smrg ;; 5940a1d3ae0Smrg t90) 5950a1d3ae0Smrg basic_machine=t90-cray 5960a1d3ae0Smrg basic_os=unicos 5970a1d3ae0Smrg ;; 5980a1d3ae0Smrg toad1) 5990a1d3ae0Smrg basic_machine=pdp10-xkl 6000a1d3ae0Smrg basic_os=tops20 6010a1d3ae0Smrg ;; 6020a1d3ae0Smrg tpf) 6030a1d3ae0Smrg basic_machine=s390x-ibm 6040a1d3ae0Smrg basic_os=tpf 6050a1d3ae0Smrg ;; 6060a1d3ae0Smrg udi29k) 6070a1d3ae0Smrg basic_machine=a29k-amd 6080a1d3ae0Smrg basic_os=udi 6090a1d3ae0Smrg ;; 6100a1d3ae0Smrg ultra3) 6110a1d3ae0Smrg basic_machine=a29k-nyu 6120a1d3ae0Smrg basic_os=sym1 6130a1d3ae0Smrg ;; 6140a1d3ae0Smrg v810 | necv810) 6150a1d3ae0Smrg basic_machine=v810-nec 6160a1d3ae0Smrg basic_os=none 6170a1d3ae0Smrg ;; 6180a1d3ae0Smrg vaxv) 6190a1d3ae0Smrg basic_machine=vax-dec 6200a1d3ae0Smrg basic_os=sysv 6210a1d3ae0Smrg ;; 6220a1d3ae0Smrg vms) 6230a1d3ae0Smrg basic_machine=vax-dec 6240a1d3ae0Smrg basic_os=vms 6250a1d3ae0Smrg ;; 6260a1d3ae0Smrg vsta) 6270a1d3ae0Smrg basic_machine=i386-pc 6280a1d3ae0Smrg basic_os=vsta 6290a1d3ae0Smrg ;; 6300a1d3ae0Smrg vxworks960) 6310a1d3ae0Smrg basic_machine=i960-wrs 6320a1d3ae0Smrg basic_os=vxworks 6330a1d3ae0Smrg ;; 6340a1d3ae0Smrg vxworks68) 6350a1d3ae0Smrg basic_machine=m68k-wrs 6360a1d3ae0Smrg basic_os=vxworks 6370a1d3ae0Smrg ;; 6380a1d3ae0Smrg vxworks29k) 6390a1d3ae0Smrg basic_machine=a29k-wrs 6400a1d3ae0Smrg basic_os=vxworks 6410a1d3ae0Smrg ;; 6420a1d3ae0Smrg xbox) 6430a1d3ae0Smrg basic_machine=i686-pc 6440a1d3ae0Smrg basic_os=mingw32 6450a1d3ae0Smrg ;; 6460a1d3ae0Smrg ymp) 6470a1d3ae0Smrg basic_machine=ymp-cray 6480a1d3ae0Smrg basic_os=unicos 6490a1d3ae0Smrg ;; 6500a1d3ae0Smrg *) 6510a1d3ae0Smrg basic_machine=$1 6520a1d3ae0Smrg basic_os= 6530a1d3ae0Smrg ;; 6540a1d3ae0Smrg esac 655de2362d3Smrg ;; 656de2362d3Smrgesac 657de2362d3Smrg 6580a1d3ae0Smrg# Decode 1-component or ad-hoc basic machines 659de2362d3Smrgcase $basic_machine in 6600a1d3ae0Smrg # Here we handle the default manufacturer of certain CPU types. It is in 6610a1d3ae0Smrg # some cases the only manufacturer, in others, it is the most popular. 6620a1d3ae0Smrg w89k) 6630a1d3ae0Smrg cpu=hppa1.1 6640a1d3ae0Smrg vendor=winbond 665de2362d3Smrg ;; 6660a1d3ae0Smrg op50n) 6670a1d3ae0Smrg cpu=hppa1.1 6680a1d3ae0Smrg vendor=oki 669de2362d3Smrg ;; 6700a1d3ae0Smrg op60c) 6710a1d3ae0Smrg cpu=hppa1.1 6720a1d3ae0Smrg vendor=oki 673de2362d3Smrg ;; 6740a1d3ae0Smrg ibm*) 6750a1d3ae0Smrg cpu=i370 6760a1d3ae0Smrg vendor=ibm 67718781e08Smrg ;; 6780a1d3ae0Smrg orion105) 6790a1d3ae0Smrg cpu=clipper 6800a1d3ae0Smrg vendor=highlevel 68118781e08Smrg ;; 6820a1d3ae0Smrg mac | mpw | mac-mpw) 6830a1d3ae0Smrg cpu=m68k 6840a1d3ae0Smrg vendor=apple 68518781e08Smrg ;; 6860a1d3ae0Smrg pmac | pmac-mpw) 6870a1d3ae0Smrg cpu=powerpc 6880a1d3ae0Smrg vendor=apple 68918781e08Smrg ;; 69018781e08Smrg 691de2362d3Smrg # Recognize the various machine names and aliases which stand 692de2362d3Smrg # for a CPU type and a company and sometimes even an OS. 693de2362d3Smrg 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 6940a1d3ae0Smrg cpu=m68000 6950a1d3ae0Smrg vendor=att 696de2362d3Smrg ;; 697de2362d3Smrg 3b*) 6980a1d3ae0Smrg cpu=we32k 6990a1d3ae0Smrg vendor=att 700de2362d3Smrg ;; 7010d16fef4Smrg bluegene*) 7020a1d3ae0Smrg cpu=powerpc 7030a1d3ae0Smrg vendor=ibm 7040a1d3ae0Smrg basic_os=cnk 705de2362d3Smrg ;; 706de2362d3Smrg decsystem10* | dec10*) 7070a1d3ae0Smrg cpu=pdp10 7080a1d3ae0Smrg vendor=dec 7090a1d3ae0Smrg basic_os=tops10 710de2362d3Smrg ;; 711de2362d3Smrg decsystem20* | dec20*) 7120a1d3ae0Smrg cpu=pdp10 7130a1d3ae0Smrg vendor=dec 7140a1d3ae0Smrg basic_os=tops20 715de2362d3Smrg ;; 716de2362d3Smrg delta | 3300 | motorola-3300 | motorola-delta \ 717de2362d3Smrg | 3300-motorola | delta-motorola) 7180a1d3ae0Smrg cpu=m68k 7190a1d3ae0Smrg vendor=motorola 720de2362d3Smrg ;; 7218bf5c682Smrg dpx2*) 7220a1d3ae0Smrg cpu=m68k 7230a1d3ae0Smrg vendor=bull 7240a1d3ae0Smrg basic_os=sysv3 725de2362d3Smrg ;; 726de2362d3Smrg encore | umax | mmax) 7270a1d3ae0Smrg cpu=ns32k 7280a1d3ae0Smrg vendor=encore 729de2362d3Smrg ;; 7300a1d3ae0Smrg elxsi) 7310a1d3ae0Smrg cpu=elxsi 7320a1d3ae0Smrg vendor=elxsi 7330a1d3ae0Smrg basic_os=${basic_os:-bsd} 734de2362d3Smrg ;; 735de2362d3Smrg fx2800) 7360a1d3ae0Smrg cpu=i860 7370a1d3ae0Smrg vendor=alliant 738de2362d3Smrg ;; 739de2362d3Smrg genix) 7400a1d3ae0Smrg cpu=ns32k 7410a1d3ae0Smrg vendor=ns 742de2362d3Smrg ;; 743de2362d3Smrg h3050r* | hiux*) 7440a1d3ae0Smrg cpu=hppa1.1 7450a1d3ae0Smrg vendor=hitachi 7460a1d3ae0Smrg basic_os=hiuxwe2 747de2362d3Smrg ;; 748de2362d3Smrg hp3k9[0-9][0-9] | hp9[0-9][0-9]) 7490a1d3ae0Smrg cpu=hppa1.0 7500a1d3ae0Smrg vendor=hp 751de2362d3Smrg ;; 752de2362d3Smrg hp9k2[0-9][0-9] | hp9k31[0-9]) 7530a1d3ae0Smrg cpu=m68000 7540a1d3ae0Smrg vendor=hp 755de2362d3Smrg ;; 756de2362d3Smrg hp9k3[2-9][0-9]) 7570a1d3ae0Smrg cpu=m68k 7580a1d3ae0Smrg vendor=hp 759de2362d3Smrg ;; 760de2362d3Smrg hp9k6[0-9][0-9] | hp6[0-9][0-9]) 7610a1d3ae0Smrg cpu=hppa1.0 7620a1d3ae0Smrg vendor=hp 763de2362d3Smrg ;; 764de2362d3Smrg hp9k7[0-79][0-9] | hp7[0-79][0-9]) 7650a1d3ae0Smrg cpu=hppa1.1 7660a1d3ae0Smrg vendor=hp 767de2362d3Smrg ;; 768de2362d3Smrg hp9k78[0-9] | hp78[0-9]) 769de2362d3Smrg # FIXME: really hppa2.0-hp 7700a1d3ae0Smrg cpu=hppa1.1 7710a1d3ae0Smrg vendor=hp 772de2362d3Smrg ;; 773de2362d3Smrg hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 774de2362d3Smrg # FIXME: really hppa2.0-hp 7750a1d3ae0Smrg cpu=hppa1.1 7760a1d3ae0Smrg vendor=hp 777de2362d3Smrg ;; 778de2362d3Smrg hp9k8[0-9][13679] | hp8[0-9][13679]) 7790a1d3ae0Smrg cpu=hppa1.1 7800a1d3ae0Smrg vendor=hp 781de2362d3Smrg ;; 782de2362d3Smrg hp9k8[0-9][0-9] | hp8[0-9][0-9]) 7830a1d3ae0Smrg cpu=hppa1.0 7840a1d3ae0Smrg vendor=hp 785de2362d3Smrg ;; 786de2362d3Smrg i*86v32) 7870a1d3ae0Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7880a1d3ae0Smrg vendor=pc 7890a1d3ae0Smrg basic_os=sysv32 790de2362d3Smrg ;; 791de2362d3Smrg i*86v4*) 7920a1d3ae0Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7930a1d3ae0Smrg vendor=pc 7940a1d3ae0Smrg basic_os=sysv4 795de2362d3Smrg ;; 796de2362d3Smrg i*86v) 7970a1d3ae0Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 7980a1d3ae0Smrg vendor=pc 7990a1d3ae0Smrg basic_os=sysv 800de2362d3Smrg ;; 801de2362d3Smrg i*86sol2) 8020a1d3ae0Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 8030a1d3ae0Smrg vendor=pc 8040a1d3ae0Smrg basic_os=solaris2 805de2362d3Smrg ;; 8060a1d3ae0Smrg j90 | j90-cray) 8070a1d3ae0Smrg cpu=j90 8080a1d3ae0Smrg vendor=cray 8090a1d3ae0Smrg basic_os=${basic_os:-unicos} 810de2362d3Smrg ;; 811de2362d3Smrg iris | iris4d) 8120a1d3ae0Smrg cpu=mips 8130a1d3ae0Smrg vendor=sgi 8140a1d3ae0Smrg case $basic_os in 8150a1d3ae0Smrg irix*) 816de2362d3Smrg ;; 817de2362d3Smrg *) 8180a1d3ae0Smrg basic_os=irix4 819de2362d3Smrg ;; 820de2362d3Smrg esac 821de2362d3Smrg ;; 822de2362d3Smrg miniframe) 8230a1d3ae0Smrg cpu=m68000 8240a1d3ae0Smrg vendor=convergent 825de2362d3Smrg ;; 8260a1d3ae0Smrg *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) 8270a1d3ae0Smrg cpu=m68k 8280a1d3ae0Smrg vendor=atari 8290a1d3ae0Smrg basic_os=mint 830de2362d3Smrg ;; 831de2362d3Smrg news-3600 | risc-news) 8320a1d3ae0Smrg cpu=mips 8330a1d3ae0Smrg vendor=sony 8340a1d3ae0Smrg basic_os=newsos 835de2362d3Smrg ;; 8368bf5c682Smrg next | m*-next) 8370a1d3ae0Smrg cpu=m68k 8380a1d3ae0Smrg vendor=next 8390a1d3ae0Smrg case $basic_os in 8400a1d3ae0Smrg openstep*) 8410a1d3ae0Smrg ;; 8420a1d3ae0Smrg nextstep*) 843de2362d3Smrg ;; 8440a1d3ae0Smrg ns2*) 8450a1d3ae0Smrg basic_os=nextstep2 846de2362d3Smrg ;; 847de2362d3Smrg *) 8480a1d3ae0Smrg basic_os=nextstep3 849de2362d3Smrg ;; 850de2362d3Smrg esac 851de2362d3Smrg ;; 852de2362d3Smrg np1) 8530a1d3ae0Smrg cpu=np1 8540a1d3ae0Smrg vendor=gould 8558bf5c682Smrg ;; 856de2362d3Smrg op50n-* | op60c-*) 8570a1d3ae0Smrg cpu=hppa1.1 8580a1d3ae0Smrg vendor=oki 8590a1d3ae0Smrg basic_os=proelf 860de2362d3Smrg ;; 861de2362d3Smrg pa-hitachi) 8620a1d3ae0Smrg cpu=hppa1.1 8630a1d3ae0Smrg vendor=hitachi 8640a1d3ae0Smrg basic_os=hiuxwe2 865de2362d3Smrg ;; 866de2362d3Smrg pbd) 8670a1d3ae0Smrg cpu=sparc 8680a1d3ae0Smrg vendor=tti 869de2362d3Smrg ;; 870de2362d3Smrg pbb) 8710a1d3ae0Smrg cpu=m68k 8720a1d3ae0Smrg vendor=tti 873de2362d3Smrg ;; 8740a1d3ae0Smrg pc532) 8750a1d3ae0Smrg cpu=ns32k 8760a1d3ae0Smrg vendor=pc532 877de2362d3Smrg ;; 878de2362d3Smrg pn) 8790a1d3ae0Smrg cpu=pn 8800a1d3ae0Smrg vendor=gould 881de2362d3Smrg ;; 8820a1d3ae0Smrg power) 8830a1d3ae0Smrg cpu=power 8840a1d3ae0Smrg vendor=ibm 885de2362d3Smrg ;; 8860a1d3ae0Smrg ps2) 8870a1d3ae0Smrg cpu=i386 8880a1d3ae0Smrg vendor=ibm 889de2362d3Smrg ;; 8900a1d3ae0Smrg rm[46]00) 8910a1d3ae0Smrg cpu=mips 8920a1d3ae0Smrg vendor=siemens 893de2362d3Smrg ;; 8940a1d3ae0Smrg rtpc | rtpc-*) 8950a1d3ae0Smrg cpu=romp 8960a1d3ae0Smrg vendor=ibm 897de2362d3Smrg ;; 8980a1d3ae0Smrg sde) 8990a1d3ae0Smrg cpu=mipsisa32 9000a1d3ae0Smrg vendor=sde 9010a1d3ae0Smrg basic_os=${basic_os:-elf} 902de2362d3Smrg ;; 9030a1d3ae0Smrg simso-wrs) 9040a1d3ae0Smrg cpu=sparclite 9050a1d3ae0Smrg vendor=wrs 9060a1d3ae0Smrg basic_os=vxworks 907de2362d3Smrg ;; 9080a1d3ae0Smrg tower | tower-32) 9090a1d3ae0Smrg cpu=m68k 9100a1d3ae0Smrg vendor=ncr 911de2362d3Smrg ;; 9120a1d3ae0Smrg vpp*|vx|vx-*) 9130a1d3ae0Smrg cpu=f301 9140a1d3ae0Smrg vendor=fujitsu 915de2362d3Smrg ;; 9160a1d3ae0Smrg w65) 9170a1d3ae0Smrg cpu=w65 9180a1d3ae0Smrg vendor=wdc 91918781e08Smrg ;; 9200a1d3ae0Smrg w89k-*) 9210a1d3ae0Smrg cpu=hppa1.1 9220a1d3ae0Smrg vendor=winbond 9230a1d3ae0Smrg basic_os=proelf 924de2362d3Smrg ;; 9250a1d3ae0Smrg none) 9260a1d3ae0Smrg cpu=none 9270a1d3ae0Smrg vendor=none 928de2362d3Smrg ;; 9290a1d3ae0Smrg leon|leon[3-9]) 9300a1d3ae0Smrg cpu=sparc 9310a1d3ae0Smrg vendor=$basic_machine 932de2362d3Smrg ;; 9330a1d3ae0Smrg leon-*|leon[3-9]-*) 9340a1d3ae0Smrg cpu=sparc 9350a1d3ae0Smrg vendor=`echo "$basic_machine" | sed 's/-.*//'` 936de2362d3Smrg ;; 9370a1d3ae0Smrg 9380a1d3ae0Smrg *-*) 9390a1d3ae0Smrg # shellcheck disable=SC2162 9400a1d3ae0Smrg saved_IFS=$IFS 9410a1d3ae0Smrg IFS="-" read cpu vendor <<EOF 9420a1d3ae0Smrg$basic_machine 9430a1d3ae0SmrgEOF 9440a1d3ae0Smrg IFS=$saved_IFS 945de2362d3Smrg ;; 9460a1d3ae0Smrg # We use `pc' rather than `unknown' 9470a1d3ae0Smrg # because (1) that's what they normally are, and 9480a1d3ae0Smrg # (2) the word "unknown" tends to confuse beginning users. 9490a1d3ae0Smrg i*86 | x86_64) 9500a1d3ae0Smrg cpu=$basic_machine 9510a1d3ae0Smrg vendor=pc 952de2362d3Smrg ;; 9530a1d3ae0Smrg # These rules are duplicated from below for sake of the special case above; 9540a1d3ae0Smrg # i.e. things that normalized to x86 arches should also default to "pc" 9550a1d3ae0Smrg pc98) 9560a1d3ae0Smrg cpu=i386 9570a1d3ae0Smrg vendor=pc 958de2362d3Smrg ;; 9590a1d3ae0Smrg x64 | amd64) 9600a1d3ae0Smrg cpu=x86_64 9610a1d3ae0Smrg vendor=pc 962de2362d3Smrg ;; 9630a1d3ae0Smrg # Recognize the basic CPU types without company name. 9640a1d3ae0Smrg *) 9650a1d3ae0Smrg cpu=$basic_machine 9660a1d3ae0Smrg vendor=unknown 967de2362d3Smrg ;; 9680a1d3ae0Smrgesac 9690a1d3ae0Smrg 9700a1d3ae0Smrgunset -v basic_machine 9710a1d3ae0Smrg 9720a1d3ae0Smrg# Decode basic machines in the full and proper CPU-Company form. 9730a1d3ae0Smrgcase $cpu-$vendor in 9740a1d3ae0Smrg # Here we handle the default manufacturer of certain CPU types in canonical form. It is in 9750a1d3ae0Smrg # some cases the only manufacturer, in others, it is the most popular. 9760a1d3ae0Smrg craynv-unknown) 9770a1d3ae0Smrg vendor=cray 9780a1d3ae0Smrg basic_os=${basic_os:-unicosmp} 979de2362d3Smrg ;; 9800a1d3ae0Smrg c90-unknown | c90-cray) 9810a1d3ae0Smrg vendor=cray 9820a1d3ae0Smrg basic_os=${Basic_os:-unicos} 983de2362d3Smrg ;; 9840a1d3ae0Smrg fx80-unknown) 9850a1d3ae0Smrg vendor=alliant 986de2362d3Smrg ;; 9870a1d3ae0Smrg romp-unknown) 9880a1d3ae0Smrg vendor=ibm 989de2362d3Smrg ;; 9900a1d3ae0Smrg mmix-unknown) 9910a1d3ae0Smrg vendor=knuth 992de2362d3Smrg ;; 9930a1d3ae0Smrg microblaze-unknown | microblazeel-unknown) 9940a1d3ae0Smrg vendor=xilinx 995de2362d3Smrg ;; 9960a1d3ae0Smrg rs6000-unknown) 9970a1d3ae0Smrg vendor=ibm 998de2362d3Smrg ;; 9990a1d3ae0Smrg vax-unknown) 10000a1d3ae0Smrg vendor=dec 1001de2362d3Smrg ;; 10020a1d3ae0Smrg pdp11-unknown) 10030a1d3ae0Smrg vendor=dec 1004de2362d3Smrg ;; 10050a1d3ae0Smrg we32k-unknown) 10060a1d3ae0Smrg vendor=att 100718781e08Smrg ;; 10080a1d3ae0Smrg cydra-unknown) 10090a1d3ae0Smrg vendor=cydrome 1010de2362d3Smrg ;; 10110a1d3ae0Smrg i370-ibm*) 10120a1d3ae0Smrg vendor=ibm 1013de2362d3Smrg ;; 10140a1d3ae0Smrg orion-unknown) 10150a1d3ae0Smrg vendor=highlevel 1016de2362d3Smrg ;; 10170a1d3ae0Smrg xps-unknown | xps100-unknown) 10180a1d3ae0Smrg cpu=xps100 10190a1d3ae0Smrg vendor=honeywell 1020de2362d3Smrg ;; 10210a1d3ae0Smrg 10220a1d3ae0Smrg # Here we normalize CPU types with a missing or matching vendor 10230a1d3ae0Smrg armh-unknown | armh-alt) 10240a1d3ae0Smrg cpu=armv7l 10250a1d3ae0Smrg vendor=alt 10260a1d3ae0Smrg basic_os=${basic_os:-linux-gnueabihf} 1027de2362d3Smrg ;; 10280a1d3ae0Smrg dpx20-unknown | dpx20-bull) 10290a1d3ae0Smrg cpu=rs6000 10300a1d3ae0Smrg vendor=bull 10310a1d3ae0Smrg basic_os=${basic_os:-bosx} 1032de2362d3Smrg ;; 10330a1d3ae0Smrg 10340a1d3ae0Smrg # Here we normalize CPU types irrespective of the vendor 10350a1d3ae0Smrg amd64-*) 10360a1d3ae0Smrg cpu=x86_64 1037de2362d3Smrg ;; 10380a1d3ae0Smrg blackfin-*) 10390a1d3ae0Smrg cpu=bfin 10400a1d3ae0Smrg basic_os=linux 1041de2362d3Smrg ;; 10420a1d3ae0Smrg c54x-*) 10430a1d3ae0Smrg cpu=tic54x 1044de2362d3Smrg ;; 10450a1d3ae0Smrg c55x-*) 10460a1d3ae0Smrg cpu=tic55x 1047de2362d3Smrg ;; 10480a1d3ae0Smrg c6x-*) 10490a1d3ae0Smrg cpu=tic6x 1050de2362d3Smrg ;; 10510a1d3ae0Smrg e500v[12]-*) 10520a1d3ae0Smrg cpu=powerpc 10530a1d3ae0Smrg basic_os=${basic_os}"spe" 1054de2362d3Smrg ;; 10550a1d3ae0Smrg mips3*-*) 10560a1d3ae0Smrg cpu=mips64 1057de2362d3Smrg ;; 10580a1d3ae0Smrg ms1-*) 10590a1d3ae0Smrg cpu=mt 1060de2362d3Smrg ;; 10610a1d3ae0Smrg m68knommu-*) 10620a1d3ae0Smrg cpu=m68k 10630a1d3ae0Smrg basic_os=linux 1064de2362d3Smrg ;; 10650a1d3ae0Smrg m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) 10660a1d3ae0Smrg cpu=s12z 1067de2362d3Smrg ;; 10680a1d3ae0Smrg openrisc-*) 10690a1d3ae0Smrg cpu=or32 1070de2362d3Smrg ;; 10710a1d3ae0Smrg parisc-*) 10720a1d3ae0Smrg cpu=hppa 10730a1d3ae0Smrg basic_os=linux 1074de2362d3Smrg ;; 10750a1d3ae0Smrg pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 10760a1d3ae0Smrg cpu=i586 1077de2362d3Smrg ;; 10780a1d3ae0Smrg pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) 10790a1d3ae0Smrg cpu=i686 1080de2362d3Smrg ;; 10810a1d3ae0Smrg pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 10820a1d3ae0Smrg cpu=i686 1083de2362d3Smrg ;; 10840a1d3ae0Smrg pentium4-*) 10850a1d3ae0Smrg cpu=i786 1086de2362d3Smrg ;; 10870a1d3ae0Smrg pc98-*) 10880a1d3ae0Smrg cpu=i386 1089de2362d3Smrg ;; 10900a1d3ae0Smrg ppc-* | ppcbe-*) 10910a1d3ae0Smrg cpu=powerpc 1092de2362d3Smrg ;; 10930a1d3ae0Smrg ppcle-* | powerpclittle-*) 10940a1d3ae0Smrg cpu=powerpcle 1095de2362d3Smrg ;; 10960a1d3ae0Smrg ppc64-*) 10970a1d3ae0Smrg cpu=powerpc64 1098de2362d3Smrg ;; 10990a1d3ae0Smrg ppc64le-* | powerpc64little-*) 11000a1d3ae0Smrg cpu=powerpc64le 1101de2362d3Smrg ;; 11020a1d3ae0Smrg sb1-*) 11030a1d3ae0Smrg cpu=mipsisa64sb1 1104de2362d3Smrg ;; 11050a1d3ae0Smrg sb1el-*) 11060a1d3ae0Smrg cpu=mipsisa64sb1el 1107de2362d3Smrg ;; 11080a1d3ae0Smrg sh5e[lb]-*) 11090a1d3ae0Smrg cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` 1110de2362d3Smrg ;; 11110a1d3ae0Smrg spur-*) 11120a1d3ae0Smrg cpu=spur 1113de2362d3Smrg ;; 11140a1d3ae0Smrg strongarm-* | thumb-*) 11150a1d3ae0Smrg cpu=arm 1116de2362d3Smrg ;; 11170a1d3ae0Smrg tx39-*) 11180a1d3ae0Smrg cpu=mipstx39 11198bf5c682Smrg ;; 11200a1d3ae0Smrg tx39el-*) 11210a1d3ae0Smrg cpu=mipstx39el 1122de2362d3Smrg ;; 11230a1d3ae0Smrg x64-*) 11240a1d3ae0Smrg cpu=x86_64 1125de2362d3Smrg ;; 112618781e08Smrg xscale-* | xscalee[bl]-*) 11270a1d3ae0Smrg cpu=`echo "$cpu" | sed 's/^xscale/arm/'` 1128de2362d3Smrg ;; 11290a1d3ae0Smrg arm64-* | aarch64le-*) 11300a1d3ae0Smrg cpu=aarch64 1131de2362d3Smrg ;; 1132de2362d3Smrg 11330a1d3ae0Smrg # Recognize the canonical CPU Types that limit and/or modify the 11340a1d3ae0Smrg # company names they are paired with. 11350a1d3ae0Smrg cr16-*) 11360a1d3ae0Smrg basic_os=${basic_os:-elf} 1137de2362d3Smrg ;; 11380a1d3ae0Smrg crisv32-* | etraxfs*-*) 11390a1d3ae0Smrg cpu=crisv32 11400a1d3ae0Smrg vendor=axis 1141de2362d3Smrg ;; 11420a1d3ae0Smrg cris-* | etrax*-*) 11430a1d3ae0Smrg cpu=cris 11440a1d3ae0Smrg vendor=axis 1145de2362d3Smrg ;; 11460a1d3ae0Smrg crx-*) 11470a1d3ae0Smrg basic_os=${basic_os:-elf} 1148de2362d3Smrg ;; 11490a1d3ae0Smrg neo-tandem) 11500a1d3ae0Smrg cpu=neo 11510a1d3ae0Smrg vendor=tandem 1152de2362d3Smrg ;; 11530a1d3ae0Smrg nse-tandem) 11540a1d3ae0Smrg cpu=nse 11550a1d3ae0Smrg vendor=tandem 1156de2362d3Smrg ;; 11570a1d3ae0Smrg nsr-tandem) 11580a1d3ae0Smrg cpu=nsr 11590a1d3ae0Smrg vendor=tandem 1160de2362d3Smrg ;; 11610a1d3ae0Smrg nsv-tandem) 11620a1d3ae0Smrg cpu=nsv 11630a1d3ae0Smrg vendor=tandem 1164de2362d3Smrg ;; 11650a1d3ae0Smrg nsx-tandem) 11660a1d3ae0Smrg cpu=nsx 11670a1d3ae0Smrg vendor=tandem 1168de2362d3Smrg ;; 11690a1d3ae0Smrg mipsallegrexel-sony) 11700a1d3ae0Smrg cpu=mipsallegrexel 11710a1d3ae0Smrg vendor=sony 1172de2362d3Smrg ;; 11730a1d3ae0Smrg tile*-*) 11740a1d3ae0Smrg basic_os=${basic_os:-linux-gnu} 1175de2362d3Smrg ;; 11760a1d3ae0Smrg 1177de2362d3Smrg *) 11780a1d3ae0Smrg # Recognize the canonical CPU types that are allowed with any 11790a1d3ae0Smrg # company name. 11800a1d3ae0Smrg case $cpu in 11810a1d3ae0Smrg 1750a | 580 \ 11820a1d3ae0Smrg | a29k \ 11830a1d3ae0Smrg | aarch64 | aarch64_be \ 11840a1d3ae0Smrg | abacus \ 11850a1d3ae0Smrg | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ 11860a1d3ae0Smrg | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ 11870a1d3ae0Smrg | alphapca5[67] | alpha64pca5[67] \ 11880a1d3ae0Smrg | am33_2.0 \ 11890a1d3ae0Smrg | amdgcn \ 11900a1d3ae0Smrg | arc | arceb | arc32 | arc64 \ 11910a1d3ae0Smrg | arm | arm[lb]e | arme[lb] | armv* \ 11920a1d3ae0Smrg | avr | avr32 \ 11930a1d3ae0Smrg | asmjs \ 11940a1d3ae0Smrg | ba \ 11950a1d3ae0Smrg | be32 | be64 \ 11960a1d3ae0Smrg | bfin | bpf | bs2000 \ 11970a1d3ae0Smrg | c[123]* | c30 | [cjt]90 | c4x \ 11980a1d3ae0Smrg | c8051 | clipper | craynv | csky | cydra \ 11990a1d3ae0Smrg | d10v | d30v | dlx | dsp16xx \ 12000a1d3ae0Smrg | e2k | elxsi | epiphany \ 12010a1d3ae0Smrg | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ 12020a1d3ae0Smrg | h8300 | h8500 \ 12030a1d3ae0Smrg | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 12040a1d3ae0Smrg | hexagon \ 12050a1d3ae0Smrg | i370 | i*86 | i860 | i960 | ia16 | ia64 \ 12060a1d3ae0Smrg | ip2k | iq2000 \ 12070a1d3ae0Smrg | k1om \ 12080a1d3ae0Smrg | le32 | le64 \ 12090a1d3ae0Smrg | lm32 \ 12100a1d3ae0Smrg | loongarch32 | loongarch64 \ 12110a1d3ae0Smrg | m32c | m32r | m32rle \ 12120a1d3ae0Smrg | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ 12130a1d3ae0Smrg | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ 12140a1d3ae0Smrg | m88110 | m88k | maxq | mb | mcore | mep | metag \ 12150a1d3ae0Smrg | microblaze | microblazeel \ 12160a1d3ae0Smrg | mips | mipsbe | mipseb | mipsel | mipsle \ 12170a1d3ae0Smrg | mips16 \ 12180a1d3ae0Smrg | mips64 | mips64eb | mips64el \ 12190a1d3ae0Smrg | mips64octeon | mips64octeonel \ 12200a1d3ae0Smrg | mips64orion | mips64orionel \ 12210a1d3ae0Smrg | mips64r5900 | mips64r5900el \ 12220a1d3ae0Smrg | mips64vr | mips64vrel \ 12230a1d3ae0Smrg | mips64vr4100 | mips64vr4100el \ 12240a1d3ae0Smrg | mips64vr4300 | mips64vr4300el \ 12250a1d3ae0Smrg | mips64vr5000 | mips64vr5000el \ 12260a1d3ae0Smrg | mips64vr5900 | mips64vr5900el \ 12270a1d3ae0Smrg | mipsisa32 | mipsisa32el \ 12280a1d3ae0Smrg | mipsisa32r2 | mipsisa32r2el \ 12290a1d3ae0Smrg | mipsisa32r3 | mipsisa32r3el \ 12300a1d3ae0Smrg | mipsisa32r5 | mipsisa32r5el \ 12310a1d3ae0Smrg | mipsisa32r6 | mipsisa32r6el \ 12320a1d3ae0Smrg | mipsisa64 | mipsisa64el \ 12330a1d3ae0Smrg | mipsisa64r2 | mipsisa64r2el \ 12340a1d3ae0Smrg | mipsisa64r3 | mipsisa64r3el \ 12350a1d3ae0Smrg | mipsisa64r5 | mipsisa64r5el \ 12360a1d3ae0Smrg | mipsisa64r6 | mipsisa64r6el \ 12370a1d3ae0Smrg | mipsisa64sb1 | mipsisa64sb1el \ 12380a1d3ae0Smrg | mipsisa64sr71k | mipsisa64sr71kel \ 12390a1d3ae0Smrg | mipsr5900 | mipsr5900el \ 12400a1d3ae0Smrg | mipstx39 | mipstx39el \ 12410a1d3ae0Smrg | mmix \ 12420a1d3ae0Smrg | mn10200 | mn10300 \ 12430a1d3ae0Smrg | moxie \ 12440a1d3ae0Smrg | mt \ 12450a1d3ae0Smrg | msp430 \ 12460a1d3ae0Smrg | nds32 | nds32le | nds32be \ 12470a1d3ae0Smrg | nfp \ 12480a1d3ae0Smrg | nios | nios2 | nios2eb | nios2el \ 12490a1d3ae0Smrg | none | np1 | ns16k | ns32k | nvptx \ 12500a1d3ae0Smrg | open8 \ 12510a1d3ae0Smrg | or1k* \ 12520a1d3ae0Smrg | or32 \ 12530a1d3ae0Smrg | orion \ 12540a1d3ae0Smrg | picochip \ 12550a1d3ae0Smrg | pdp10 | pdp11 | pj | pjl | pn | power \ 12560a1d3ae0Smrg | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ 12570a1d3ae0Smrg | pru \ 12580a1d3ae0Smrg | pyramid \ 12590a1d3ae0Smrg | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ 12600a1d3ae0Smrg | rl78 | romp | rs6000 | rx \ 12610a1d3ae0Smrg | s390 | s390x \ 12620a1d3ae0Smrg | score \ 12630a1d3ae0Smrg | sh | shl \ 12640a1d3ae0Smrg | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ 12650a1d3ae0Smrg | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ 12660a1d3ae0Smrg | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ 12670a1d3ae0Smrg | sparclite \ 12680a1d3ae0Smrg | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ 12690a1d3ae0Smrg | spu \ 12700a1d3ae0Smrg | tahoe \ 12710a1d3ae0Smrg | thumbv7* \ 12720a1d3ae0Smrg | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ 12730a1d3ae0Smrg | tron \ 12740a1d3ae0Smrg | ubicom32 \ 12750a1d3ae0Smrg | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ 12760a1d3ae0Smrg | vax \ 12770a1d3ae0Smrg | visium \ 12780a1d3ae0Smrg | w65 \ 12790a1d3ae0Smrg | wasm32 | wasm64 \ 12800a1d3ae0Smrg | we32k \ 12810a1d3ae0Smrg | x86 | x86_64 | xc16x | xgate | xps100 \ 12820a1d3ae0Smrg | xstormy16 | xtensa* \ 12830a1d3ae0Smrg | ymp \ 12840a1d3ae0Smrg | z8k | z80) 12850a1d3ae0Smrg ;; 12860a1d3ae0Smrg 12870a1d3ae0Smrg *) 12880a1d3ae0Smrg echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 12890a1d3ae0Smrg exit 1 12900a1d3ae0Smrg ;; 12910a1d3ae0Smrg esac 1292de2362d3Smrg ;; 1293de2362d3Smrgesac 1294de2362d3Smrg 1295de2362d3Smrg# Here we canonicalize certain aliases for manufacturers. 12960a1d3ae0Smrgcase $vendor in 12970a1d3ae0Smrg digital*) 12980a1d3ae0Smrg vendor=dec 1299de2362d3Smrg ;; 13000a1d3ae0Smrg commodore*) 13010a1d3ae0Smrg vendor=cbm 1302de2362d3Smrg ;; 1303de2362d3Smrg *) 1304de2362d3Smrg ;; 1305de2362d3Smrgesac 1306de2362d3Smrg 1307de2362d3Smrg# Decode manufacturer-specific aliases for certain operating systems. 1308de2362d3Smrg 13090a1d3ae0Smrgif test x$basic_os != x 1310de2362d3Smrgthen 13110a1d3ae0Smrg 13120a1d3ae0Smrg# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just 13130a1d3ae0Smrg# set os. 13140a1d3ae0Smrgcase $basic_os in 13150a1d3ae0Smrg gnu/linux*) 13160a1d3ae0Smrg kernel=linux 13170a1d3ae0Smrg os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` 13180a1d3ae0Smrg ;; 13190a1d3ae0Smrg os2-emx) 13200a1d3ae0Smrg kernel=os2 13210a1d3ae0Smrg os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` 13220a1d3ae0Smrg ;; 13230a1d3ae0Smrg nto-qnx*) 13240a1d3ae0Smrg kernel=nto 13250a1d3ae0Smrg os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` 13260a1d3ae0Smrg ;; 13270a1d3ae0Smrg *-*) 13280a1d3ae0Smrg # shellcheck disable=SC2162 13290a1d3ae0Smrg saved_IFS=$IFS 13300a1d3ae0Smrg IFS="-" read kernel os <<EOF 13310a1d3ae0Smrg$basic_os 13320a1d3ae0SmrgEOF 13330a1d3ae0Smrg IFS=$saved_IFS 13340a1d3ae0Smrg ;; 13350a1d3ae0Smrg # Default OS when just kernel was specified 13360a1d3ae0Smrg nto*) 13370a1d3ae0Smrg kernel=nto 13380a1d3ae0Smrg os=`echo "$basic_os" | sed -e 's|nto|qnx|'` 13390a1d3ae0Smrg ;; 13400a1d3ae0Smrg linux*) 13410a1d3ae0Smrg kernel=linux 13420a1d3ae0Smrg os=`echo "$basic_os" | sed -e 's|linux|gnu|'` 13430a1d3ae0Smrg ;; 13440a1d3ae0Smrg managarm*) 13450a1d3ae0Smrg kernel=managarm 13460a1d3ae0Smrg os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'` 13470a1d3ae0Smrg ;; 13480a1d3ae0Smrg *) 13490a1d3ae0Smrg kernel= 13500a1d3ae0Smrg os=$basic_os 13510a1d3ae0Smrg ;; 13520a1d3ae0Smrgesac 13530a1d3ae0Smrg 13540a1d3ae0Smrg# Now, normalize the OS (knowing we just have one component, it's not a kernel, 13550a1d3ae0Smrg# etc.) 1356de2362d3Smrgcase $os in 13578bf5c682Smrg # First match some system type aliases that might get confused 13588bf5c682Smrg # with valid system types. 13590a1d3ae0Smrg # solaris* is a basic system type, with this one exception. 13600a1d3ae0Smrg auroraux) 13610a1d3ae0Smrg os=auroraux 13620d16fef4Smrg ;; 13630a1d3ae0Smrg bluegene*) 13640a1d3ae0Smrg os=cnk 1365de2362d3Smrg ;; 13660a1d3ae0Smrg solaris1 | solaris1.*) 13670a1d3ae0Smrg os=`echo "$os" | sed -e 's|solaris1|sunos4|'` 1368de2362d3Smrg ;; 13690a1d3ae0Smrg solaris) 13700a1d3ae0Smrg os=solaris2 1371de2362d3Smrg ;; 13720a1d3ae0Smrg unixware*) 13730a1d3ae0Smrg os=sysv4.2uw 1374de2362d3Smrg ;; 13758bf5c682Smrg # es1800 is here to avoid being matched by es* (a different OS) 13760a1d3ae0Smrg es1800*) 13770a1d3ae0Smrg os=ose 13788bf5c682Smrg ;; 13790a1d3ae0Smrg # Some version numbers need modification 13800a1d3ae0Smrg chorusos*) 13810a1d3ae0Smrg os=chorusos 1382de2362d3Smrg ;; 13830a1d3ae0Smrg isc) 13840a1d3ae0Smrg os=isc2.2 1385de2362d3Smrg ;; 13860a1d3ae0Smrg sco6) 13870a1d3ae0Smrg os=sco5v6 1388de2362d3Smrg ;; 13890a1d3ae0Smrg sco5) 13900a1d3ae0Smrg os=sco3.2v5 1391de2362d3Smrg ;; 13920a1d3ae0Smrg sco4) 13930a1d3ae0Smrg os=sco3.2v4 1394de2362d3Smrg ;; 13950a1d3ae0Smrg sco3.2.[4-9]*) 13960a1d3ae0Smrg os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'` 1397de2362d3Smrg ;; 13980a1d3ae0Smrg sco*v* | scout) 13990a1d3ae0Smrg # Don't match below 1400de2362d3Smrg ;; 14010a1d3ae0Smrg sco*) 14020a1d3ae0Smrg os=sco3.2v2 1403de2362d3Smrg ;; 14040a1d3ae0Smrg psos*) 14050a1d3ae0Smrg os=psos 1406de2362d3Smrg ;; 14070a1d3ae0Smrg qnx*) 14080a1d3ae0Smrg os=qnx 1409de2362d3Smrg ;; 14100a1d3ae0Smrg hiux*) 14110a1d3ae0Smrg os=hiuxwe2 1412de2362d3Smrg ;; 14130a1d3ae0Smrg lynx*178) 14140a1d3ae0Smrg os=lynxos178 1415de2362d3Smrg ;; 14160a1d3ae0Smrg lynx*5) 14170a1d3ae0Smrg os=lynxos5 1418de2362d3Smrg ;; 14190a1d3ae0Smrg lynxos*) 14200a1d3ae0Smrg # don't get caught up in next wildcard 1421de2362d3Smrg ;; 14220a1d3ae0Smrg lynx*) 14230a1d3ae0Smrg os=lynxos 1424de2362d3Smrg ;; 14250a1d3ae0Smrg mac[0-9]*) 14260a1d3ae0Smrg os=`echo "$os" | sed -e 's|mac|macos|'` 1427de2362d3Smrg ;; 14280a1d3ae0Smrg opened*) 14290a1d3ae0Smrg os=openedition 1430de2362d3Smrg ;; 14310a1d3ae0Smrg os400*) 14320a1d3ae0Smrg os=os400 1433de2362d3Smrg ;; 14340a1d3ae0Smrg sunos5*) 14350a1d3ae0Smrg os=`echo "$os" | sed -e 's|sunos5|solaris2|'` 1436de2362d3Smrg ;; 14370a1d3ae0Smrg sunos6*) 14380a1d3ae0Smrg os=`echo "$os" | sed -e 's|sunos6|solaris3|'` 1439de2362d3Smrg ;; 14400a1d3ae0Smrg wince*) 14410a1d3ae0Smrg os=wince 1442de2362d3Smrg ;; 14430a1d3ae0Smrg utek*) 14440a1d3ae0Smrg os=bsd 1445de2362d3Smrg ;; 14460a1d3ae0Smrg dynix*) 14470a1d3ae0Smrg os=bsd 14480a1d3ae0Smrg ;; 14490a1d3ae0Smrg acis*) 14500a1d3ae0Smrg os=aos 14510a1d3ae0Smrg ;; 14520a1d3ae0Smrg atheos*) 14530a1d3ae0Smrg os=atheos 14540a1d3ae0Smrg ;; 14550a1d3ae0Smrg syllable*) 14560a1d3ae0Smrg os=syllable 1457de2362d3Smrg ;; 14580a1d3ae0Smrg 386bsd) 14590a1d3ae0Smrg os=bsd 14600a1d3ae0Smrg ;; 14610a1d3ae0Smrg ctix* | uts*) 14620a1d3ae0Smrg os=sysv 1463de2362d3Smrg ;; 14640a1d3ae0Smrg nova*) 14650a1d3ae0Smrg os=rtmk-nova 1466de2362d3Smrg ;; 14670a1d3ae0Smrg ns2) 14680a1d3ae0Smrg os=nextstep2 14690a1d3ae0Smrg ;; 14700a1d3ae0Smrg # Preserve the version number of sinix5. 14710a1d3ae0Smrg sinix5.*) 14720a1d3ae0Smrg os=`echo "$os" | sed -e 's|sinix|sysv|'` 1473de2362d3Smrg ;; 14740a1d3ae0Smrg sinix*) 14750a1d3ae0Smrg os=sysv4 1476de2362d3Smrg ;; 14770a1d3ae0Smrg tpf*) 14780a1d3ae0Smrg os=tpf 1479de2362d3Smrg ;; 14800a1d3ae0Smrg triton*) 14810a1d3ae0Smrg os=sysv3 1482de2362d3Smrg ;; 14830a1d3ae0Smrg oss*) 14840a1d3ae0Smrg os=sysv3 1485de2362d3Smrg ;; 14860a1d3ae0Smrg svr4*) 14870a1d3ae0Smrg os=sysv4 1488de2362d3Smrg ;; 14890a1d3ae0Smrg svr3) 14900a1d3ae0Smrg os=sysv3 1491de2362d3Smrg ;; 14920a1d3ae0Smrg sysvr4) 14930a1d3ae0Smrg os=sysv4 1494de2362d3Smrg ;; 14950a1d3ae0Smrg ose*) 14960a1d3ae0Smrg os=ose 1497de2362d3Smrg ;; 14980a1d3ae0Smrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 14990a1d3ae0Smrg os=mint 15000d16fef4Smrg ;; 15010a1d3ae0Smrg dicos*) 15020a1d3ae0Smrg os=dicos 15030a1d3ae0Smrg ;; 15040a1d3ae0Smrg pikeos*) 15058bf5c682Smrg # Until real need of OS specific support for 15068bf5c682Smrg # particular features comes up, bare metal 15078bf5c682Smrg # configurations are quite functional. 15080a1d3ae0Smrg case $cpu in 15098bf5c682Smrg arm*) 15100a1d3ae0Smrg os=eabi 15118bf5c682Smrg ;; 15128bf5c682Smrg *) 15130a1d3ae0Smrg os=elf 15148bf5c682Smrg ;; 15158bf5c682Smrg esac 15168bf5c682Smrg ;; 1517de2362d3Smrg *) 15180a1d3ae0Smrg # No normalization, but not necessarily accepted, that comes below. 1519de2362d3Smrg ;; 1520de2362d3Smrgesac 15210a1d3ae0Smrg 1522de2362d3Smrgelse 1523de2362d3Smrg 1524de2362d3Smrg# Here we handle the default operating systems that come with various machines. 1525de2362d3Smrg# The value should be what the vendor currently ships out the door with their 1526de2362d3Smrg# machine or put another way, the most popular os provided with the machine. 1527de2362d3Smrg 1528de2362d3Smrg# Note that if you're going to try to match "-MANUFACTURER" here (say, 1529de2362d3Smrg# "-sun"), then you have to tell the case statement up towards the top 1530de2362d3Smrg# that MANUFACTURER isn't an operating system. Otherwise, code above 1531de2362d3Smrg# will signal an error saying that MANUFACTURER isn't an operating 1532de2362d3Smrg# system, and we'll never get to this point. 1533de2362d3Smrg 15340a1d3ae0Smrgkernel= 15350a1d3ae0Smrgcase $cpu-$vendor in 153618781e08Smrg score-*) 15370a1d3ae0Smrg os=elf 1538de2362d3Smrg ;; 153918781e08Smrg spu-*) 15400a1d3ae0Smrg os=elf 1541de2362d3Smrg ;; 1542de2362d3Smrg *-acorn) 15430a1d3ae0Smrg os=riscix1.2 1544de2362d3Smrg ;; 1545de2362d3Smrg arm*-rebel) 15460a1d3ae0Smrg kernel=linux 15470a1d3ae0Smrg os=gnu 1548de2362d3Smrg ;; 1549de2362d3Smrg arm*-semi) 15500a1d3ae0Smrg os=aout 1551de2362d3Smrg ;; 155218781e08Smrg c4x-* | tic4x-*) 15530a1d3ae0Smrg os=coff 155418781e08Smrg ;; 155518781e08Smrg c8051-*) 15560a1d3ae0Smrg os=elf 15570a1d3ae0Smrg ;; 15580a1d3ae0Smrg clipper-intergraph) 15590a1d3ae0Smrg os=clix 156018781e08Smrg ;; 156118781e08Smrg hexagon-*) 15620a1d3ae0Smrg os=elf 156318781e08Smrg ;; 156418781e08Smrg tic54x-*) 15650a1d3ae0Smrg os=coff 156618781e08Smrg ;; 156718781e08Smrg tic55x-*) 15680a1d3ae0Smrg os=coff 156918781e08Smrg ;; 157018781e08Smrg tic6x-*) 15710a1d3ae0Smrg os=coff 1572de2362d3Smrg ;; 1573de2362d3Smrg # This must come before the *-dec entry. 1574de2362d3Smrg pdp10-*) 15750a1d3ae0Smrg os=tops20 1576de2362d3Smrg ;; 1577de2362d3Smrg pdp11-*) 15780a1d3ae0Smrg os=none 1579de2362d3Smrg ;; 1580de2362d3Smrg *-dec | vax-*) 15810a1d3ae0Smrg os=ultrix4.2 1582de2362d3Smrg ;; 1583de2362d3Smrg m68*-apollo) 15840a1d3ae0Smrg os=domain 1585de2362d3Smrg ;; 1586de2362d3Smrg i386-sun) 15870a1d3ae0Smrg os=sunos4.0.2 1588de2362d3Smrg ;; 1589de2362d3Smrg m68000-sun) 15900a1d3ae0Smrg os=sunos3 1591de2362d3Smrg ;; 1592de2362d3Smrg m68*-cisco) 15930a1d3ae0Smrg os=aout 1594de2362d3Smrg ;; 159518781e08Smrg mep-*) 15960a1d3ae0Smrg os=elf 1597de2362d3Smrg ;; 1598de2362d3Smrg mips*-cisco) 15990a1d3ae0Smrg os=elf 1600de2362d3Smrg ;; 1601de2362d3Smrg mips*-*) 16020a1d3ae0Smrg os=elf 1603de2362d3Smrg ;; 1604de2362d3Smrg or32-*) 16050a1d3ae0Smrg os=coff 1606de2362d3Smrg ;; 1607de2362d3Smrg *-tti) # must be before sparc entry or we get the wrong os. 16080a1d3ae0Smrg os=sysv3 1609de2362d3Smrg ;; 1610de2362d3Smrg sparc-* | *-sun) 16110a1d3ae0Smrg os=sunos4.1.1 1612de2362d3Smrg ;; 16138bf5c682Smrg pru-*) 16140a1d3ae0Smrg os=elf 16158bf5c682Smrg ;; 1616de2362d3Smrg *-be) 16170a1d3ae0Smrg os=beos 1618de2362d3Smrg ;; 1619de2362d3Smrg *-ibm) 16200a1d3ae0Smrg os=aix 1621de2362d3Smrg ;; 162218781e08Smrg *-knuth) 16230a1d3ae0Smrg os=mmixware 1624de2362d3Smrg ;; 1625de2362d3Smrg *-wec) 16260a1d3ae0Smrg os=proelf 1627de2362d3Smrg ;; 1628de2362d3Smrg *-winbond) 16290a1d3ae0Smrg os=proelf 1630de2362d3Smrg ;; 1631de2362d3Smrg *-oki) 16320a1d3ae0Smrg os=proelf 1633de2362d3Smrg ;; 1634de2362d3Smrg *-hp) 16350a1d3ae0Smrg os=hpux 1636de2362d3Smrg ;; 1637de2362d3Smrg *-hitachi) 16380a1d3ae0Smrg os=hiux 1639de2362d3Smrg ;; 1640de2362d3Smrg i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 16410a1d3ae0Smrg os=sysv 1642de2362d3Smrg ;; 1643de2362d3Smrg *-cbm) 16440a1d3ae0Smrg os=amigaos 1645de2362d3Smrg ;; 1646de2362d3Smrg *-dg) 16470a1d3ae0Smrg os=dgux 1648de2362d3Smrg ;; 1649de2362d3Smrg *-dolphin) 16500a1d3ae0Smrg os=sysv3 1651de2362d3Smrg ;; 1652de2362d3Smrg m68k-ccur) 16530a1d3ae0Smrg os=rtu 1654de2362d3Smrg ;; 1655de2362d3Smrg m88k-omron*) 16560a1d3ae0Smrg os=luna 1657de2362d3Smrg ;; 16588bf5c682Smrg *-next) 16590a1d3ae0Smrg os=nextstep 1660de2362d3Smrg ;; 1661de2362d3Smrg *-sequent) 16620a1d3ae0Smrg os=ptx 1663de2362d3Smrg ;; 1664de2362d3Smrg *-crds) 16650a1d3ae0Smrg os=unos 1666de2362d3Smrg ;; 1667de2362d3Smrg *-ns) 16680a1d3ae0Smrg os=genix 1669de2362d3Smrg ;; 1670de2362d3Smrg i370-*) 16710a1d3ae0Smrg os=mvs 1672de2362d3Smrg ;; 1673de2362d3Smrg *-gould) 16740a1d3ae0Smrg os=sysv 1675de2362d3Smrg ;; 1676de2362d3Smrg *-highlevel) 16770a1d3ae0Smrg os=bsd 1678de2362d3Smrg ;; 1679de2362d3Smrg *-encore) 16800a1d3ae0Smrg os=bsd 1681de2362d3Smrg ;; 1682de2362d3Smrg *-sgi) 16830a1d3ae0Smrg os=irix 1684de2362d3Smrg ;; 1685de2362d3Smrg *-siemens) 16860a1d3ae0Smrg os=sysv4 1687de2362d3Smrg ;; 1688de2362d3Smrg *-masscomp) 16890a1d3ae0Smrg os=rtu 1690de2362d3Smrg ;; 1691de2362d3Smrg f30[01]-fujitsu | f700-fujitsu) 16920a1d3ae0Smrg os=uxpv 1693de2362d3Smrg ;; 1694de2362d3Smrg *-rom68k) 16950a1d3ae0Smrg os=coff 1696de2362d3Smrg ;; 1697de2362d3Smrg *-*bug) 16980a1d3ae0Smrg os=coff 1699de2362d3Smrg ;; 1700de2362d3Smrg *-apple) 17010a1d3ae0Smrg os=macos 1702de2362d3Smrg ;; 1703de2362d3Smrg *-atari*) 17040a1d3ae0Smrg os=mint 17050a1d3ae0Smrg ;; 17060a1d3ae0Smrg *-wrs) 17070a1d3ae0Smrg os=vxworks 1708de2362d3Smrg ;; 1709de2362d3Smrg *) 17100a1d3ae0Smrg os=none 1711de2362d3Smrg ;; 1712de2362d3Smrgesac 17130a1d3ae0Smrg 1714de2362d3Smrgfi 1715de2362d3Smrg 17160a1d3ae0Smrg# Now, validate our (potentially fixed-up) OS. 17170a1d3ae0Smrgcase $os in 17180a1d3ae0Smrg # Sometimes we do "kernel-libc", so those need to count as OSes. 17190a1d3ae0Smrg musl* | newlib* | relibc* | uclibc*) 17200a1d3ae0Smrg ;; 17210a1d3ae0Smrg # Likewise for "kernel-abi" 17220a1d3ae0Smrg eabi* | gnueabi*) 17230a1d3ae0Smrg ;; 17240a1d3ae0Smrg # VxWorks passes extra cpu info in the 4th filed. 17250a1d3ae0Smrg simlinux | simwindows | spe) 17260a1d3ae0Smrg ;; 17270a1d3ae0Smrg # Now accept the basic system types. 17280a1d3ae0Smrg # The portable systems comes first. 17290a1d3ae0Smrg # Each alternative MUST end in a * to match a version number. 17300a1d3ae0Smrg gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ 17310a1d3ae0Smrg | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ 17320a1d3ae0Smrg | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ 17330a1d3ae0Smrg | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ 17340a1d3ae0Smrg | hiux* | abug | nacl* | netware* | windows* \ 17350a1d3ae0Smrg | os9* | macos* | osx* | ios* \ 17360a1d3ae0Smrg | mpw* | magic* | mmixware* | mon960* | lnews* \ 17370a1d3ae0Smrg | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ 17380a1d3ae0Smrg | aos* | aros* | cloudabi* | sortix* | twizzler* \ 17390a1d3ae0Smrg | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ 17400a1d3ae0Smrg | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ 17410a1d3ae0Smrg | mirbsd* | netbsd* | dicos* | openedition* | ose* \ 17420a1d3ae0Smrg | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ 17430a1d3ae0Smrg | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ 17440a1d3ae0Smrg | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ 17450a1d3ae0Smrg | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ 17460a1d3ae0Smrg | udi* | lites* | ieee* | go32* | aux* | hcos* \ 17470a1d3ae0Smrg | chorusrdb* | cegcc* | glidix* | serenity* \ 17480a1d3ae0Smrg | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ 17490a1d3ae0Smrg | midipix* | mingw32* | mingw64* | mint* \ 17500a1d3ae0Smrg | uxpv* | beos* | mpeix* | udk* | moxiebox* \ 17510a1d3ae0Smrg | interix* | uwin* | mks* | rhapsody* | darwin* \ 17520a1d3ae0Smrg | openstep* | oskit* | conix* | pw32* | nonstopux* \ 17530a1d3ae0Smrg | storm-chaos* | tops10* | tenex* | tops20* | its* \ 17540a1d3ae0Smrg | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ 17550a1d3ae0Smrg | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ 17560a1d3ae0Smrg | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ 17570a1d3ae0Smrg | skyos* | haiku* | rdos* | toppers* | drops* | es* \ 17580a1d3ae0Smrg | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ 17590a1d3ae0Smrg | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ 17600a1d3ae0Smrg | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ 17610a1d3ae0Smrg | fiwix* | mlibc* ) 17620a1d3ae0Smrg ;; 17630a1d3ae0Smrg # This one is extra strict with allowed versions 17640a1d3ae0Smrg sco3.2v2 | sco3.2v[4-9]* | sco5v6*) 17650a1d3ae0Smrg # Don't forget version if it is 3.2v4 or newer. 17660a1d3ae0Smrg ;; 17670a1d3ae0Smrg none) 17680a1d3ae0Smrg ;; 17690a1d3ae0Smrg kernel* ) 17700a1d3ae0Smrg # Restricted further below 17710a1d3ae0Smrg ;; 17720a1d3ae0Smrg *) 17730a1d3ae0Smrg echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 17740a1d3ae0Smrg exit 1 17750a1d3ae0Smrg ;; 17760a1d3ae0Smrgesac 17770a1d3ae0Smrg 17780a1d3ae0Smrg# As a final step for OS-related things, validate the OS-kernel combination 17790a1d3ae0Smrg# (given a valid OS), if there is a kernel. 17800a1d3ae0Smrgcase $kernel-$os in 17810a1d3ae0Smrg linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ 17820a1d3ae0Smrg | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* ) 17830a1d3ae0Smrg ;; 17840a1d3ae0Smrg uclinux-uclibc* ) 17850a1d3ae0Smrg ;; 17860a1d3ae0Smrg managarm-mlibc* | managarm-kernel* ) 17870a1d3ae0Smrg ;; 17880a1d3ae0Smrg -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* ) 17890a1d3ae0Smrg # These are just libc implementations, not actual OSes, and thus 17900a1d3ae0Smrg # require a kernel. 17910a1d3ae0Smrg echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 17920a1d3ae0Smrg exit 1 17930a1d3ae0Smrg ;; 17940a1d3ae0Smrg -kernel* ) 17950a1d3ae0Smrg echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2 17960a1d3ae0Smrg exit 1 17970a1d3ae0Smrg ;; 17980a1d3ae0Smrg *-kernel* ) 17990a1d3ae0Smrg echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2 18000a1d3ae0Smrg exit 1 18010a1d3ae0Smrg ;; 18020a1d3ae0Smrg kfreebsd*-gnu* | kopensolaris*-gnu*) 18030a1d3ae0Smrg ;; 18040a1d3ae0Smrg vxworks-simlinux | vxworks-simwindows | vxworks-spe) 18050a1d3ae0Smrg ;; 18060a1d3ae0Smrg nto-qnx*) 18070a1d3ae0Smrg ;; 18080a1d3ae0Smrg os2-emx) 18090a1d3ae0Smrg ;; 18100a1d3ae0Smrg *-eabi* | *-gnueabi*) 18110a1d3ae0Smrg ;; 18120a1d3ae0Smrg -*) 18130a1d3ae0Smrg # Blank kernel with real OS is always fine. 18140a1d3ae0Smrg ;; 18150a1d3ae0Smrg *-*) 18160a1d3ae0Smrg echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 18170a1d3ae0Smrg exit 1 18180a1d3ae0Smrg ;; 18190a1d3ae0Smrgesac 18200a1d3ae0Smrg 1821de2362d3Smrg# Here we handle the case where we know the os, and the CPU type, but not the 1822de2362d3Smrg# manufacturer. We pick the logical manufacturer. 18230a1d3ae0Smrgcase $vendor in 18240a1d3ae0Smrg unknown) 18250a1d3ae0Smrg case $cpu-$os in 18260a1d3ae0Smrg *-riscix*) 1827de2362d3Smrg vendor=acorn 1828de2362d3Smrg ;; 18290a1d3ae0Smrg *-sunos*) 1830de2362d3Smrg vendor=sun 1831de2362d3Smrg ;; 18320a1d3ae0Smrg *-cnk* | *-aix*) 1833de2362d3Smrg vendor=ibm 1834de2362d3Smrg ;; 18350a1d3ae0Smrg *-beos*) 1836de2362d3Smrg vendor=be 1837de2362d3Smrg ;; 18380a1d3ae0Smrg *-hpux*) 1839de2362d3Smrg vendor=hp 1840de2362d3Smrg ;; 18410a1d3ae0Smrg *-mpeix*) 1842de2362d3Smrg vendor=hp 1843de2362d3Smrg ;; 18440a1d3ae0Smrg *-hiux*) 1845de2362d3Smrg vendor=hitachi 1846de2362d3Smrg ;; 18470a1d3ae0Smrg *-unos*) 1848de2362d3Smrg vendor=crds 1849de2362d3Smrg ;; 18500a1d3ae0Smrg *-dgux*) 1851de2362d3Smrg vendor=dg 1852de2362d3Smrg ;; 18530a1d3ae0Smrg *-luna*) 1854de2362d3Smrg vendor=omron 1855de2362d3Smrg ;; 18560a1d3ae0Smrg *-genix*) 1857de2362d3Smrg vendor=ns 1858de2362d3Smrg ;; 18590a1d3ae0Smrg *-clix*) 18600a1d3ae0Smrg vendor=intergraph 18610a1d3ae0Smrg ;; 18620a1d3ae0Smrg *-mvs* | *-opened*) 18630a1d3ae0Smrg vendor=ibm 18640a1d3ae0Smrg ;; 18650a1d3ae0Smrg *-os400*) 1866de2362d3Smrg vendor=ibm 1867de2362d3Smrg ;; 18680a1d3ae0Smrg s390-* | s390x-*) 1869de2362d3Smrg vendor=ibm 1870de2362d3Smrg ;; 18710a1d3ae0Smrg *-ptx*) 1872de2362d3Smrg vendor=sequent 1873de2362d3Smrg ;; 18740a1d3ae0Smrg *-tpf*) 1875de2362d3Smrg vendor=ibm 1876de2362d3Smrg ;; 18770a1d3ae0Smrg *-vxsim* | *-vxworks* | *-windiss*) 1878de2362d3Smrg vendor=wrs 1879de2362d3Smrg ;; 18800a1d3ae0Smrg *-aux*) 1881de2362d3Smrg vendor=apple 1882de2362d3Smrg ;; 18830a1d3ae0Smrg *-hms*) 1884de2362d3Smrg vendor=hitachi 1885de2362d3Smrg ;; 18860a1d3ae0Smrg *-mpw* | *-macos*) 1887de2362d3Smrg vendor=apple 1888de2362d3Smrg ;; 18890a1d3ae0Smrg *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) 1890de2362d3Smrg vendor=atari 1891de2362d3Smrg ;; 18920a1d3ae0Smrg *-vos*) 1893de2362d3Smrg vendor=stratus 1894de2362d3Smrg ;; 1895de2362d3Smrg esac 1896de2362d3Smrg ;; 1897de2362d3Smrgesac 1898de2362d3Smrg 18990a1d3ae0Smrgecho "$cpu-$vendor-${kernel:+$kernel-}$os" 1900de2362d3Smrgexit 1901de2362d3Smrg 1902de2362d3Smrg# Local variables: 19030a1d3ae0Smrg# eval: (add-hook 'before-save-hook 'time-stamp) 1904de2362d3Smrg# time-stamp-start: "timestamp='" 1905de2362d3Smrg# time-stamp-format: "%:y-%02m-%02d" 1906de2362d3Smrg# time-stamp-end: "'" 1907de2362d3Smrg# End: 1908