config.sub revision 46845023
1d6c0b56eSmrg#! /bin/sh 2d6c0b56eSmrg# Configuration validation subroutine script. 324b90cf4Smrg# Copyright 1992-2018 Free Software Foundation, Inc. 4d6c0b56eSmrg 546845023Smrgtimestamp='2018-08-29' 6d6c0b56eSmrg 7d6c0b56eSmrg# This file is free software; you can redistribute it and/or modify it 8d6c0b56eSmrg# under the terms of the GNU General Public License as published by 9d6c0b56eSmrg# the Free Software Foundation; either version 3 of the License, or 10d6c0b56eSmrg# (at your option) any later version. 11d6c0b56eSmrg# 12d6c0b56eSmrg# This program is distributed in the hope that it will be useful, but 13d6c0b56eSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of 14d6c0b56eSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15d6c0b56eSmrg# General Public License for more details. 16d6c0b56eSmrg# 17d6c0b56eSmrg# You should have received a copy of the GNU General Public License 1824b90cf4Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>. 19d6c0b56eSmrg# 20d6c0b56eSmrg# As a special exception to the GNU General Public License, if you 21d6c0b56eSmrg# distribute this file as part of a program that contains a 22d6c0b56eSmrg# configuration script generated by Autoconf, you may include it under 23d6c0b56eSmrg# the same distribution terms that you use for the rest of that 24d6c0b56eSmrg# program. This Exception is an additional permission under section 7 25d6c0b56eSmrg# of the GNU General Public License, version 3 ("GPLv3"). 26d6c0b56eSmrg 27d6c0b56eSmrg 28d6c0b56eSmrg# Please send patches to <config-patches@gnu.org>. 29d6c0b56eSmrg# 30d6c0b56eSmrg# Configuration subroutine to validate and canonicalize a configuration type. 31d6c0b56eSmrg# Supply the specified configuration type as an argument. 32d6c0b56eSmrg# If it is invalid, we print an error message on stderr and exit with code 1. 33d6c0b56eSmrg# Otherwise, we print the canonical config type on stdout and succeed. 34d6c0b56eSmrg 35d6c0b56eSmrg# You can get the latest version of this script from: 3624b90cf4Smrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub 37d6c0b56eSmrg 38d6c0b56eSmrg# This file is supposed to be the same for all GNU packages 39d6c0b56eSmrg# and recognize all the CPU types, system types and aliases 40d6c0b56eSmrg# that are meaningful with *any* GNU software. 41d6c0b56eSmrg# Each package is responsible for reporting which valid configurations 42d6c0b56eSmrg# it does not support. The user should be able to distinguish 43d6c0b56eSmrg# a failure to support a valid configuration from a meaningless 44d6c0b56eSmrg# configuration. 45d6c0b56eSmrg 46d6c0b56eSmrg# The goal of this file is to map all the various variations of a given 47d6c0b56eSmrg# machine specification into a single specification in the form: 48d6c0b56eSmrg# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 49d6c0b56eSmrg# or in some cases, the newer four-part form: 50d6c0b56eSmrg# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 51d6c0b56eSmrg# It is wrong to echo any other type of specification. 52d6c0b56eSmrg 53d6c0b56eSmrgme=`echo "$0" | sed -e 's,.*/,,'` 54d6c0b56eSmrg 55d6c0b56eSmrgusage="\ 5611bf0794SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 57d6c0b56eSmrg 58d6c0b56eSmrgCanonicalize a configuration name. 59d6c0b56eSmrg 6024b90cf4SmrgOptions: 61d6c0b56eSmrg -h, --help print this help, then exit 62d6c0b56eSmrg -t, --time-stamp print date of last modification, then exit 63d6c0b56eSmrg -v, --version print version number, then exit 64d6c0b56eSmrg 65d6c0b56eSmrgReport bugs and patches to <config-patches@gnu.org>." 66d6c0b56eSmrg 67d6c0b56eSmrgversion="\ 68d6c0b56eSmrgGNU config.sub ($timestamp) 69d6c0b56eSmrg 7024b90cf4SmrgCopyright 1992-2018 Free Software Foundation, Inc. 71d6c0b56eSmrg 72d6c0b56eSmrgThis is free software; see the source for copying conditions. There is NO 73d6c0b56eSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 74d6c0b56eSmrg 75d6c0b56eSmrghelp=" 76d6c0b56eSmrgTry \`$me --help' for more information." 77d6c0b56eSmrg 78d6c0b56eSmrg# Parse command line 79d6c0b56eSmrgwhile test $# -gt 0 ; do 80d6c0b56eSmrg case $1 in 81d6c0b56eSmrg --time-stamp | --time* | -t ) 82d6c0b56eSmrg echo "$timestamp" ; exit ;; 83d6c0b56eSmrg --version | -v ) 84d6c0b56eSmrg echo "$version" ; exit ;; 85d6c0b56eSmrg --help | --h* | -h ) 86d6c0b56eSmrg echo "$usage"; exit ;; 87d6c0b56eSmrg -- ) # Stop option processing 88d6c0b56eSmrg shift; break ;; 89d6c0b56eSmrg - ) # Use stdin as input. 90d6c0b56eSmrg break ;; 91d6c0b56eSmrg -* ) 92d6c0b56eSmrg echo "$me: invalid option $1$help" 93d6c0b56eSmrg exit 1 ;; 94d6c0b56eSmrg 95d6c0b56eSmrg *local*) 96d6c0b56eSmrg # First pass through any local machine types. 9724b90cf4Smrg echo "$1" 98d6c0b56eSmrg exit ;; 99d6c0b56eSmrg 100d6c0b56eSmrg * ) 101d6c0b56eSmrg break ;; 102d6c0b56eSmrg esac 103d6c0b56eSmrgdone 104d6c0b56eSmrg 105d6c0b56eSmrgcase $# in 106d6c0b56eSmrg 0) echo "$me: missing argument$help" >&2 107d6c0b56eSmrg exit 1;; 108d6c0b56eSmrg 1) ;; 109d6c0b56eSmrg *) echo "$me: too many arguments$help" >&2 110d6c0b56eSmrg exit 1;; 111d6c0b56eSmrgesac 112d6c0b56eSmrg 11346845023Smrg# Split fields of configuration type 11446845023SmrgIFS="-" read -r field1 field2 field3 field4 <<EOF 11546845023Smrg$1 11646845023SmrgEOF 117d6c0b56eSmrg 11846845023Smrg# Separate into logical components for further validation 11946845023Smrgcase $1 in 12046845023Smrg *-*-*-*-*) 12146845023Smrg echo Invalid configuration \`"$1"\': more than four components >&2 12246845023Smrg exit 1 123d6c0b56eSmrg ;; 12446845023Smrg *-*-*-*) 12546845023Smrg basic_machine=$field1-$field2 12646845023Smrg os=$field3-$field4 127d6c0b56eSmrg ;; 12846845023Smrg *-*-*) 12946845023Smrg # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two 13046845023Smrg # parts 13146845023Smrg maybe_os=$field2-$field3 13246845023Smrg case $maybe_os in 13346845023Smrg nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ 13446845023Smrg | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ 13546845023Smrg | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ 13646845023Smrg | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ 13746845023Smrg | storm-chaos* | os2-emx* | rtmk-nova*) 13846845023Smrg basic_machine=$field1 13946845023Smrg os=$maybe_os 14046845023Smrg ;; 14146845023Smrg android-linux) 14246845023Smrg basic_machine=$field1-unknown 14346845023Smrg os=linux-android 14446845023Smrg ;; 14546845023Smrg *) 14646845023Smrg basic_machine=$field1-$field2 14746845023Smrg os=$field3 14846845023Smrg ;; 14946845023Smrg esac 150d6c0b56eSmrg ;; 15146845023Smrg *-*) 15246845023Smrg # A lone config we happen to match not fitting any patern 15346845023Smrg case $field1-$field2 in 15446845023Smrg decstation-3100) 15546845023Smrg basic_machine=mips-dec 15646845023Smrg os= 15746845023Smrg ;; 15846845023Smrg *-*) 15946845023Smrg # Second component is usually, but not always the OS 16046845023Smrg case $field2 in 16146845023Smrg # Prevent following clause from handling this valid os 16246845023Smrg sun*os*) 16346845023Smrg basic_machine=$field1 16446845023Smrg os=$field2 16546845023Smrg ;; 16646845023Smrg # Manufacturers 16746845023Smrg dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ 16846845023Smrg | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ 16946845023Smrg | unicom* | ibm* | next | hp | isi* | apollo | altos* \ 17046845023Smrg | convergent* | ncr* | news | 32* | 3600* | 3100* \ 17146845023Smrg | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ 17246845023Smrg | ultra | tti* | harris | dolphin | highlevel | gould \ 17346845023Smrg | cbm | ns | masscomp | apple | axis | knuth | cray \ 17446845023Smrg | microblaze* | sim | cisco \ 17546845023Smrg | oki | wec | wrs | winbond) 17646845023Smrg basic_machine=$field1-$field2 17746845023Smrg os= 17846845023Smrg ;; 17946845023Smrg *) 18046845023Smrg basic_machine=$field1 18146845023Smrg os=$field2 18246845023Smrg ;; 18346845023Smrg esac 18446845023Smrg ;; 18546845023Smrg esac 186d6c0b56eSmrg ;; 18746845023Smrg *) 18846845023Smrg # Convert single-component short-hands not valid as part of 18946845023Smrg # multi-component configurations. 19046845023Smrg case $field1 in 19146845023Smrg 386bsd) 19246845023Smrg basic_machine=i386-pc 19346845023Smrg os=bsd 19446845023Smrg ;; 19546845023Smrg a29khif) 19646845023Smrg basic_machine=a29k-amd 19746845023Smrg os=udi 19846845023Smrg ;; 19946845023Smrg adobe68k) 20046845023Smrg basic_machine=m68010-adobe 20146845023Smrg os=scout 20246845023Smrg ;; 20346845023Smrg alliant) 20446845023Smrg basic_machine=fx80-alliant 20546845023Smrg os= 20646845023Smrg ;; 20746845023Smrg altos | altos3068) 20846845023Smrg basic_machine=m68k-altos 20946845023Smrg os= 21046845023Smrg ;; 21146845023Smrg am29k) 21246845023Smrg basic_machine=a29k-none 21346845023Smrg os=bsd 21446845023Smrg ;; 21546845023Smrg amdahl) 21646845023Smrg basic_machine=580-amdahl 21746845023Smrg os=sysv 21846845023Smrg ;; 21946845023Smrg amiga) 22046845023Smrg basic_machine=m68k-unknown 22146845023Smrg os= 22246845023Smrg ;; 22346845023Smrg amigaos | amigados) 22446845023Smrg basic_machine=m68k-unknown 22546845023Smrg os=amigaos 22646845023Smrg ;; 22746845023Smrg amigaunix | amix) 22846845023Smrg basic_machine=m68k-unknown 22946845023Smrg os=sysv4 23046845023Smrg ;; 23146845023Smrg apollo68) 23246845023Smrg basic_machine=m68k-apollo 23346845023Smrg os=sysv 23446845023Smrg ;; 23546845023Smrg apollo68bsd) 23646845023Smrg basic_machine=m68k-apollo 23746845023Smrg os=bsd 23846845023Smrg ;; 23946845023Smrg aros) 24046845023Smrg basic_machine=i386-pc 24146845023Smrg os=aros 24246845023Smrg ;; 24346845023Smrg aux) 24446845023Smrg basic_machine=m68k-apple 24546845023Smrg os=aux 24646845023Smrg ;; 24746845023Smrg balance) 24846845023Smrg basic_machine=ns32k-sequent 24946845023Smrg os=dynix 25046845023Smrg ;; 25146845023Smrg blackfin) 25246845023Smrg basic_machine=bfin-unknown 25346845023Smrg os=linux 25446845023Smrg ;; 25546845023Smrg cegcc) 25646845023Smrg basic_machine=arm-unknown 25746845023Smrg os=cegcc 25846845023Smrg ;; 25946845023Smrg convex-c1) 26046845023Smrg basic_machine=c1-convex 26146845023Smrg os=bsd 26246845023Smrg ;; 26346845023Smrg convex-c2) 26446845023Smrg basic_machine=c2-convex 26546845023Smrg os=bsd 26646845023Smrg ;; 26746845023Smrg convex-c32) 26846845023Smrg basic_machine=c32-convex 26946845023Smrg os=bsd 27046845023Smrg ;; 27146845023Smrg convex-c34) 27246845023Smrg basic_machine=c34-convex 27346845023Smrg os=bsd 27446845023Smrg ;; 27546845023Smrg convex-c38) 27646845023Smrg basic_machine=c38-convex 27746845023Smrg os=bsd 27846845023Smrg ;; 27946845023Smrg cray) 28046845023Smrg basic_machine=j90-cray 28146845023Smrg os=unicos 28246845023Smrg ;; 28346845023Smrg crds | unos) 28446845023Smrg basic_machine=m68k-crds 28546845023Smrg os= 28646845023Smrg ;; 28746845023Smrg da30) 28846845023Smrg basic_machine=m68k-da30 28946845023Smrg os= 29046845023Smrg ;; 29146845023Smrg decstation | pmax | pmin | dec3100 | decstatn) 29246845023Smrg basic_machine=mips-dec 29346845023Smrg os= 29446845023Smrg ;; 29546845023Smrg delta88) 29646845023Smrg basic_machine=m88k-motorola 29746845023Smrg os=sysv3 29846845023Smrg ;; 29946845023Smrg dicos) 30046845023Smrg basic_machine=i686-pc 30146845023Smrg os=dicos 30246845023Smrg ;; 30346845023Smrg djgpp) 30446845023Smrg basic_machine=i586-pc 30546845023Smrg os=msdosdjgpp 30646845023Smrg ;; 30746845023Smrg ebmon29k) 30846845023Smrg basic_machine=a29k-amd 30946845023Smrg os=ebmon 31046845023Smrg ;; 31146845023Smrg es1800 | OSE68k | ose68k | ose | OSE) 31246845023Smrg basic_machine=m68k-ericsson 31346845023Smrg os=ose 31446845023Smrg ;; 31546845023Smrg gmicro) 31646845023Smrg basic_machine=tron-gmicro 31746845023Smrg os=sysv 31846845023Smrg ;; 31946845023Smrg go32) 32046845023Smrg basic_machine=i386-pc 32146845023Smrg os=go32 32246845023Smrg ;; 32346845023Smrg h8300hms) 32446845023Smrg basic_machine=h8300-hitachi 32546845023Smrg os=hms 32646845023Smrg ;; 32746845023Smrg h8300xray) 32846845023Smrg basic_machine=h8300-hitachi 32946845023Smrg os=xray 33046845023Smrg ;; 33146845023Smrg h8500hms) 33246845023Smrg basic_machine=h8500-hitachi 33346845023Smrg os=hms 33446845023Smrg ;; 33546845023Smrg harris) 33646845023Smrg basic_machine=m88k-harris 33746845023Smrg os=sysv3 33846845023Smrg ;; 33946845023Smrg hp300) 34046845023Smrg basic_machine=m68k-hp 34146845023Smrg ;; 34246845023Smrg hp300bsd) 34346845023Smrg basic_machine=m68k-hp 34446845023Smrg os=bsd 34546845023Smrg ;; 34646845023Smrg hp300hpux) 34746845023Smrg basic_machine=m68k-hp 34846845023Smrg os=hpux 34946845023Smrg ;; 35046845023Smrg hppaosf) 35146845023Smrg basic_machine=hppa1.1-hp 35246845023Smrg os=osf 35346845023Smrg ;; 35446845023Smrg hppro) 35546845023Smrg basic_machine=hppa1.1-hp 35646845023Smrg os=proelf 35746845023Smrg ;; 35846845023Smrg i386mach) 35946845023Smrg basic_machine=i386-mach 36046845023Smrg os=mach 36146845023Smrg ;; 36246845023Smrg vsta) 36346845023Smrg basic_machine=i386-pc 36446845023Smrg os=vsta 36546845023Smrg ;; 36646845023Smrg isi68 | isi) 36746845023Smrg basic_machine=m68k-isi 36846845023Smrg os=sysv 36946845023Smrg ;; 37046845023Smrg m68knommu) 37146845023Smrg basic_machine=m68k-unknown 37246845023Smrg os=linux 37346845023Smrg ;; 37446845023Smrg magnum | m3230) 37546845023Smrg basic_machine=mips-mips 37646845023Smrg os=sysv 37746845023Smrg ;; 37846845023Smrg merlin) 37946845023Smrg basic_machine=ns32k-utek 38046845023Smrg os=sysv 38146845023Smrg ;; 38246845023Smrg mingw64) 38346845023Smrg basic_machine=x86_64-pc 38446845023Smrg os=mingw64 38546845023Smrg ;; 38646845023Smrg mingw32) 38746845023Smrg basic_machine=i686-pc 38846845023Smrg os=mingw32 38946845023Smrg ;; 39046845023Smrg mingw32ce) 39146845023Smrg basic_machine=arm-unknown 39246845023Smrg os=mingw32ce 39346845023Smrg ;; 39446845023Smrg monitor) 39546845023Smrg basic_machine=m68k-rom68k 39646845023Smrg os=coff 39746845023Smrg ;; 39846845023Smrg morphos) 39946845023Smrg basic_machine=powerpc-unknown 40046845023Smrg os=morphos 40146845023Smrg ;; 40246845023Smrg moxiebox) 40346845023Smrg basic_machine=moxie-unknown 40446845023Smrg os=moxiebox 40546845023Smrg ;; 40646845023Smrg msdos) 40746845023Smrg basic_machine=i386-pc 40846845023Smrg os=msdos 40946845023Smrg ;; 41046845023Smrg msys) 41146845023Smrg basic_machine=i686-pc 41246845023Smrg os=msys 41346845023Smrg ;; 41446845023Smrg mvs) 41546845023Smrg basic_machine=i370-ibm 41646845023Smrg os=mvs 41746845023Smrg ;; 41846845023Smrg nacl) 41946845023Smrg basic_machine=le32-unknown 42046845023Smrg os=nacl 42146845023Smrg ;; 42246845023Smrg ncr3000) 42346845023Smrg basic_machine=i486-ncr 42446845023Smrg os=sysv4 42546845023Smrg ;; 42646845023Smrg netbsd386) 42746845023Smrg basic_machine=i386-pc 42846845023Smrg os=netbsd 42946845023Smrg ;; 43046845023Smrg netwinder) 43146845023Smrg basic_machine=armv4l-rebel 43246845023Smrg os=linux 43346845023Smrg ;; 43446845023Smrg news | news700 | news800 | news900) 43546845023Smrg basic_machine=m68k-sony 43646845023Smrg os=newsos 43746845023Smrg ;; 43846845023Smrg news1000) 43946845023Smrg basic_machine=m68030-sony 44046845023Smrg os=newsos 44146845023Smrg ;; 44246845023Smrg necv70) 44346845023Smrg basic_machine=v70-nec 44446845023Smrg os=sysv 44546845023Smrg ;; 44646845023Smrg nh3000) 44746845023Smrg basic_machine=m68k-harris 44846845023Smrg os=cxux 44946845023Smrg ;; 45046845023Smrg nh[45]000) 45146845023Smrg basic_machine=m88k-harris 45246845023Smrg os=cxux 45346845023Smrg ;; 45446845023Smrg nindy960) 45546845023Smrg basic_machine=i960-intel 45646845023Smrg os=nindy 45746845023Smrg ;; 45846845023Smrg mon960) 45946845023Smrg basic_machine=i960-intel 46046845023Smrg os=mon960 46146845023Smrg ;; 46246845023Smrg nonstopux) 46346845023Smrg basic_machine=mips-compaq 46446845023Smrg os=nonstopux 46546845023Smrg ;; 46646845023Smrg os400) 46746845023Smrg basic_machine=powerpc-ibm 46846845023Smrg os=os400 46946845023Smrg ;; 47046845023Smrg OSE68000 | ose68000) 47146845023Smrg basic_machine=m68000-ericsson 47246845023Smrg os=ose 47346845023Smrg ;; 47446845023Smrg os68k) 47546845023Smrg basic_machine=m68k-none 47646845023Smrg os=os68k 47746845023Smrg ;; 47846845023Smrg paragon) 47946845023Smrg basic_machine=i860-intel 48046845023Smrg os=osf 48146845023Smrg ;; 48246845023Smrg parisc) 48346845023Smrg basic_machine=hppa-unknown 48446845023Smrg os=linux 48546845023Smrg ;; 48646845023Smrg pw32) 48746845023Smrg basic_machine=i586-unknown 48846845023Smrg os=pw32 48946845023Smrg ;; 49046845023Smrg rdos | rdos64) 49146845023Smrg basic_machine=x86_64-pc 49246845023Smrg os=rdos 49346845023Smrg ;; 49446845023Smrg rdos32) 49546845023Smrg basic_machine=i386-pc 49646845023Smrg os=rdos 49746845023Smrg ;; 49846845023Smrg rom68k) 49946845023Smrg basic_machine=m68k-rom68k 50046845023Smrg os=coff 50146845023Smrg ;; 50246845023Smrg sa29200) 50346845023Smrg basic_machine=a29k-amd 50446845023Smrg os=udi 50546845023Smrg ;; 50646845023Smrg sei) 50746845023Smrg basic_machine=mips-sei 50846845023Smrg os=seiux 50946845023Smrg ;; 51046845023Smrg sequent) 51146845023Smrg basic_machine=i386-sequent 51246845023Smrg os= 51346845023Smrg ;; 51446845023Smrg sps7) 51546845023Smrg basic_machine=m68k-bull 51646845023Smrg os=sysv2 51746845023Smrg ;; 51846845023Smrg st2000) 51946845023Smrg basic_machine=m68k-tandem 52046845023Smrg os= 52146845023Smrg ;; 52246845023Smrg stratus) 52346845023Smrg basic_machine=i860-stratus 52446845023Smrg os=sysv4 52546845023Smrg ;; 52646845023Smrg sun2) 52746845023Smrg basic_machine=m68000-sun 52846845023Smrg os= 52946845023Smrg ;; 53046845023Smrg sun2os3) 53146845023Smrg basic_machine=m68000-sun 53246845023Smrg os=sunos3 53346845023Smrg ;; 53446845023Smrg sun2os4) 53546845023Smrg basic_machine=m68000-sun 53646845023Smrg os=sunos4 53746845023Smrg ;; 53846845023Smrg sun3) 53946845023Smrg basic_machine=m68k-sun 54046845023Smrg os= 54146845023Smrg ;; 54246845023Smrg sun3os3) 54346845023Smrg basic_machine=m68k-sun 54446845023Smrg os=sunos3 54546845023Smrg ;; 54646845023Smrg sun3os4) 54746845023Smrg basic_machine=m68k-sun 54846845023Smrg os=sunos4 54946845023Smrg ;; 55046845023Smrg sun4) 55146845023Smrg basic_machine=sparc-sun 55246845023Smrg os= 55346845023Smrg ;; 55446845023Smrg sun4os3) 55546845023Smrg basic_machine=sparc-sun 55646845023Smrg os=sunos3 55746845023Smrg ;; 55846845023Smrg sun4os4) 55946845023Smrg basic_machine=sparc-sun 56046845023Smrg os=sunos4 56146845023Smrg ;; 56246845023Smrg sun4sol2) 56346845023Smrg basic_machine=sparc-sun 56446845023Smrg os=solaris2 56546845023Smrg ;; 56646845023Smrg sun386 | sun386i | roadrunner) 56746845023Smrg basic_machine=i386-sun 56846845023Smrg os= 56946845023Smrg ;; 57046845023Smrg sv1) 57146845023Smrg basic_machine=sv1-cray 57246845023Smrg os=unicos 57346845023Smrg ;; 57446845023Smrg symmetry) 57546845023Smrg basic_machine=i386-sequent 57646845023Smrg os=dynix 57746845023Smrg ;; 57846845023Smrg t3e) 57946845023Smrg basic_machine=alphaev5-cray 58046845023Smrg os=unicos 58146845023Smrg ;; 58246845023Smrg t90) 58346845023Smrg basic_machine=t90-cray 58446845023Smrg os=unicos 58546845023Smrg ;; 58646845023Smrg toad1) 58746845023Smrg basic_machine=pdp10-xkl 58846845023Smrg os=tops20 58946845023Smrg ;; 59046845023Smrg tpf) 59146845023Smrg basic_machine=s390x-ibm 59246845023Smrg os=tpf 59346845023Smrg ;; 59446845023Smrg udi29k) 59546845023Smrg basic_machine=a29k-amd 59646845023Smrg os=udi 59746845023Smrg ;; 59846845023Smrg ultra3) 59946845023Smrg basic_machine=a29k-nyu 60046845023Smrg os=sym1 60146845023Smrg ;; 60246845023Smrg v810 | necv810) 60346845023Smrg basic_machine=v810-nec 60446845023Smrg os=none 60546845023Smrg ;; 60646845023Smrg vaxv) 60746845023Smrg basic_machine=vax-dec 60846845023Smrg os=sysv 60946845023Smrg ;; 61046845023Smrg vms) 61146845023Smrg basic_machine=vax-dec 61246845023Smrg os=vms 61346845023Smrg ;; 61446845023Smrg vxworks960) 61546845023Smrg basic_machine=i960-wrs 61646845023Smrg os=vxworks 61746845023Smrg ;; 61846845023Smrg vxworks68) 61946845023Smrg basic_machine=m68k-wrs 62046845023Smrg os=vxworks 62146845023Smrg ;; 62246845023Smrg vxworks29k) 62346845023Smrg basic_machine=a29k-wrs 62446845023Smrg os=vxworks 62546845023Smrg ;; 62646845023Smrg xbox) 62746845023Smrg basic_machine=i686-pc 62846845023Smrg os=mingw32 62946845023Smrg ;; 63046845023Smrg ymp) 63146845023Smrg basic_machine=ymp-cray 63246845023Smrg os=unicos 63346845023Smrg ;; 63446845023Smrg *) 63546845023Smrg basic_machine=$1 63646845023Smrg os= 63746845023Smrg ;; 63846845023Smrg esac 639d6c0b56eSmrg ;; 640d6c0b56eSmrgesac 641d6c0b56eSmrg 64246845023Smrg# Decode 1-component or ad-hoc basic machines 643d6c0b56eSmrgcase $basic_machine in 64446845023Smrg # Here we handle the default manufacturer of certain CPU types. It is in 64546845023Smrg # some cases the only manufacturer, in others, it is the most popular. 64646845023Smrg w89k) 64746845023Smrg cpu=hppa1.1 64846845023Smrg vendor=winbond 649d6c0b56eSmrg ;; 65046845023Smrg op50n) 65146845023Smrg cpu=hppa1.1 65246845023Smrg vendor=oki 653d6c0b56eSmrg ;; 65446845023Smrg op60c) 65546845023Smrg cpu=hppa1.1 65646845023Smrg vendor=oki 657d6c0b56eSmrg ;; 65846845023Smrg ibm*) 65946845023Smrg cpu=i370 66046845023Smrg vendor=ibm 661d6c0b56eSmrg ;; 66246845023Smrg orion105) 66346845023Smrg cpu=clipper 66446845023Smrg vendor=highlevel 665d6c0b56eSmrg ;; 66646845023Smrg mac | mpw | mac-mpw) 66746845023Smrg cpu=m68k 66846845023Smrg vendor=apple 669d6c0b56eSmrg ;; 67046845023Smrg pmac | pmac-mpw) 67146845023Smrg cpu=powerpc 67246845023Smrg vendor=apple 673d6c0b56eSmrg ;; 674d6c0b56eSmrg 675d6c0b56eSmrg # Recognize the various machine names and aliases which stand 676d6c0b56eSmrg # for a CPU type and a company and sometimes even an OS. 677d6c0b56eSmrg 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 67846845023Smrg cpu=m68000 67946845023Smrg vendor=att 680d6c0b56eSmrg ;; 681d6c0b56eSmrg 3b*) 68246845023Smrg cpu=we32k 68346845023Smrg vendor=att 684d6c0b56eSmrg ;; 685d6c0b56eSmrg bluegene*) 68646845023Smrg cpu=powerpc 68746845023Smrg vendor=ibm 68846845023Smrg os=cnk 689d6c0b56eSmrg ;; 690d6c0b56eSmrg decsystem10* | dec10*) 69146845023Smrg cpu=pdp10 69246845023Smrg vendor=dec 69346845023Smrg os=tops10 694d6c0b56eSmrg ;; 695d6c0b56eSmrg decsystem20* | dec20*) 69646845023Smrg cpu=pdp10 69746845023Smrg vendor=dec 69846845023Smrg os=tops20 699d6c0b56eSmrg ;; 700d6c0b56eSmrg delta | 3300 | motorola-3300 | motorola-delta \ 701d6c0b56eSmrg | 3300-motorola | delta-motorola) 70246845023Smrg cpu=m68k 70346845023Smrg vendor=motorola 704d6c0b56eSmrg ;; 70524b90cf4Smrg dpx2*) 70646845023Smrg cpu=m68k 70746845023Smrg vendor=bull 70846845023Smrg os=sysv3 709d6c0b56eSmrg ;; 710d6c0b56eSmrg encore | umax | mmax) 71146845023Smrg cpu=ns32k 71246845023Smrg vendor=encore 713d6c0b56eSmrg ;; 71446845023Smrg elxsi) 71546845023Smrg cpu=elxsi 71646845023Smrg vendor=elxsi 71746845023Smrg os=${os:-bsd} 718d6c0b56eSmrg ;; 719d6c0b56eSmrg fx2800) 72046845023Smrg cpu=i860 72146845023Smrg vendor=alliant 722d6c0b56eSmrg ;; 723d6c0b56eSmrg genix) 72446845023Smrg cpu=ns32k 72546845023Smrg vendor=ns 726d6c0b56eSmrg ;; 727d6c0b56eSmrg h3050r* | hiux*) 72846845023Smrg cpu=hppa1.1 72946845023Smrg vendor=hitachi 73046845023Smrg os=hiuxwe2 731d6c0b56eSmrg ;; 732d6c0b56eSmrg hp3k9[0-9][0-9] | hp9[0-9][0-9]) 73346845023Smrg cpu=hppa1.0 73446845023Smrg vendor=hp 735d6c0b56eSmrg ;; 736d6c0b56eSmrg hp9k2[0-9][0-9] | hp9k31[0-9]) 73746845023Smrg cpu=m68000 73846845023Smrg vendor=hp 739d6c0b56eSmrg ;; 740d6c0b56eSmrg hp9k3[2-9][0-9]) 74146845023Smrg cpu=m68k 74246845023Smrg vendor=hp 743d6c0b56eSmrg ;; 744d6c0b56eSmrg hp9k6[0-9][0-9] | hp6[0-9][0-9]) 74546845023Smrg cpu=hppa1.0 74646845023Smrg vendor=hp 747d6c0b56eSmrg ;; 748d6c0b56eSmrg hp9k7[0-79][0-9] | hp7[0-79][0-9]) 74946845023Smrg cpu=hppa1.1 75046845023Smrg vendor=hp 751d6c0b56eSmrg ;; 752d6c0b56eSmrg hp9k78[0-9] | hp78[0-9]) 753d6c0b56eSmrg # FIXME: really hppa2.0-hp 75446845023Smrg cpu=hppa1.1 75546845023Smrg vendor=hp 756d6c0b56eSmrg ;; 757d6c0b56eSmrg hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 758d6c0b56eSmrg # FIXME: really hppa2.0-hp 75946845023Smrg cpu=hppa1.1 76046845023Smrg vendor=hp 761d6c0b56eSmrg ;; 762d6c0b56eSmrg hp9k8[0-9][13679] | hp8[0-9][13679]) 76346845023Smrg cpu=hppa1.1 76446845023Smrg vendor=hp 765d6c0b56eSmrg ;; 766d6c0b56eSmrg hp9k8[0-9][0-9] | hp8[0-9][0-9]) 76746845023Smrg cpu=hppa1.0 76846845023Smrg vendor=hp 769d6c0b56eSmrg ;; 770d6c0b56eSmrg i*86v32) 77146845023Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 77246845023Smrg vendor=pc 77346845023Smrg os=sysv32 774d6c0b56eSmrg ;; 775d6c0b56eSmrg i*86v4*) 77646845023Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 77746845023Smrg vendor=pc 77846845023Smrg os=sysv4 779d6c0b56eSmrg ;; 780d6c0b56eSmrg i*86v) 78146845023Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 78246845023Smrg vendor=pc 78346845023Smrg os=sysv 784d6c0b56eSmrg ;; 785d6c0b56eSmrg i*86sol2) 78646845023Smrg cpu=`echo "$1" | sed -e 's/86.*/86/'` 78746845023Smrg vendor=pc 78846845023Smrg os=solaris2 789d6c0b56eSmrg ;; 79046845023Smrg j90 | j90-cray) 79146845023Smrg cpu=j90 79246845023Smrg vendor=cray 79346845023Smrg os=${os:-unicos} 794d6c0b56eSmrg ;; 795d6c0b56eSmrg iris | iris4d) 79646845023Smrg cpu=mips 79746845023Smrg vendor=sgi 798d6c0b56eSmrg case $os in 79946845023Smrg irix*) 800d6c0b56eSmrg ;; 801d6c0b56eSmrg *) 80246845023Smrg os=irix4 803d6c0b56eSmrg ;; 804d6c0b56eSmrg esac 805d6c0b56eSmrg ;; 806d6c0b56eSmrg miniframe) 80746845023Smrg cpu=m68000 80846845023Smrg vendor=convergent 809d6c0b56eSmrg ;; 81046845023Smrg *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) 81146845023Smrg cpu=m68k 81246845023Smrg vendor=atari 81346845023Smrg os=mint 814d6c0b56eSmrg ;; 815d6c0b56eSmrg news-3600 | risc-news) 81646845023Smrg cpu=mips 81746845023Smrg vendor=sony 81846845023Smrg os=newsos 819d6c0b56eSmrg ;; 82024b90cf4Smrg next | m*-next) 82146845023Smrg cpu=m68k 82246845023Smrg vendor=next 823d6c0b56eSmrg case $os in 82446845023Smrg nextstep* ) 825d6c0b56eSmrg ;; 82646845023Smrg ns2*) 82746845023Smrg os=nextstep2 828d6c0b56eSmrg ;; 829d6c0b56eSmrg *) 83046845023Smrg os=nextstep3 831d6c0b56eSmrg ;; 832d6c0b56eSmrg esac 833d6c0b56eSmrg ;; 834d6c0b56eSmrg np1) 83546845023Smrg cpu=np1 83646845023Smrg vendor=gould 83724b90cf4Smrg ;; 838d6c0b56eSmrg op50n-* | op60c-*) 83946845023Smrg cpu=hppa1.1 84046845023Smrg vendor=oki 84146845023Smrg os=proelf 842d6c0b56eSmrg ;; 843d6c0b56eSmrg pa-hitachi) 84446845023Smrg cpu=hppa1.1 84546845023Smrg vendor=hitachi 84646845023Smrg os=hiuxwe2 847d6c0b56eSmrg ;; 848d6c0b56eSmrg pbd) 84946845023Smrg cpu=sparc 85046845023Smrg vendor=tti 851d6c0b56eSmrg ;; 852d6c0b56eSmrg pbb) 85346845023Smrg cpu=m68k 85446845023Smrg vendor=tti 855d6c0b56eSmrg ;; 85646845023Smrg pc532) 85746845023Smrg cpu=ns32k 85846845023Smrg vendor=pc532 859d6c0b56eSmrg ;; 860d6c0b56eSmrg pn) 86146845023Smrg cpu=pn 86246845023Smrg vendor=gould 863d6c0b56eSmrg ;; 86446845023Smrg power) 86546845023Smrg cpu=power 86646845023Smrg vendor=ibm 867d6c0b56eSmrg ;; 86846845023Smrg ps2) 86946845023Smrg cpu=i386 87046845023Smrg vendor=ibm 871d6c0b56eSmrg ;; 87246845023Smrg rm[46]00) 87346845023Smrg cpu=mips 87446845023Smrg vendor=siemens 875d6c0b56eSmrg ;; 87646845023Smrg rtpc | rtpc-*) 87746845023Smrg cpu=romp 87846845023Smrg vendor=ibm 879d6c0b56eSmrg ;; 88046845023Smrg sde) 88146845023Smrg cpu=mipsisa32 88246845023Smrg vendor=sde 88346845023Smrg os=${os:-elf} 884d6c0b56eSmrg ;; 88546845023Smrg simso-wrs) 88646845023Smrg cpu=sparclite 88746845023Smrg vendor=wrs 88846845023Smrg os=vxworks 889d6c0b56eSmrg ;; 89046845023Smrg tower | tower-32) 89146845023Smrg cpu=m68k 89246845023Smrg vendor=ncr 893d6c0b56eSmrg ;; 89446845023Smrg vpp*|vx|vx-*) 89546845023Smrg cpu=f301 89646845023Smrg vendor=fujitsu 897d6c0b56eSmrg ;; 89846845023Smrg w65) 89946845023Smrg cpu=w65 90046845023Smrg vendor=wdc 901d6c0b56eSmrg ;; 90246845023Smrg w89k-*) 90346845023Smrg cpu=hppa1.1 90446845023Smrg vendor=winbond 90546845023Smrg os=proelf 906d6c0b56eSmrg ;; 90746845023Smrg none) 90846845023Smrg cpu=none 90946845023Smrg vendor=none 910d6c0b56eSmrg ;; 91146845023Smrg leon|leon[3-9]) 91246845023Smrg cpu=sparc 91346845023Smrg vendor=$basic_machine 914d6c0b56eSmrg ;; 91546845023Smrg leon-*|leon[3-9]-*) 91646845023Smrg cpu=sparc 91746845023Smrg vendor=`echo "$basic_machine" | sed 's/-.*//'` 918d6c0b56eSmrg ;; 91946845023Smrg 92046845023Smrg *-*) 92146845023Smrg IFS="-" read -r cpu vendor <<EOF 92246845023Smrg$basic_machine 92346845023SmrgEOF 924d6c0b56eSmrg ;; 92546845023Smrg # We use `pc' rather than `unknown' 92646845023Smrg # because (1) that's what they normally are, and 92746845023Smrg # (2) the word "unknown" tends to confuse beginning users. 92846845023Smrg i*86 | x86_64) 92946845023Smrg cpu=$basic_machine 93046845023Smrg vendor=pc 931d6c0b56eSmrg ;; 93246845023Smrg # These rules are duplicated from below for sake of the special case above; 93346845023Smrg # i.e. things that normalized to x86 arches should also default to "pc" 93446845023Smrg pc98) 93546845023Smrg cpu=i386 93646845023Smrg vendor=pc 937d6c0b56eSmrg ;; 93846845023Smrg x64 | amd64) 93946845023Smrg cpu=x86_64 94046845023Smrg vendor=pc 941d6c0b56eSmrg ;; 94246845023Smrg # Recognize the basic CPU types without company name. 94346845023Smrg *) 94446845023Smrg cpu=$basic_machine 94546845023Smrg vendor=unknown 946d6c0b56eSmrg ;; 94746845023Smrgesac 94846845023Smrg 94946845023Smrgunset -v basic_machine 95046845023Smrg 95146845023Smrg# Decode basic machines in the full and proper CPU-Company form. 95246845023Smrgcase $cpu-$vendor in 95346845023Smrg # Here we handle the default manufacturer of certain CPU types in cannonical form. It is in 95446845023Smrg # some cases the only manufacturer, in others, it is the most popular. 95546845023Smrg craynv-unknown) 95646845023Smrg vendor=cray 95746845023Smrg os=${os:-unicosmp} 958d6c0b56eSmrg ;; 95946845023Smrg c90-unknown | c90-cray) 96046845023Smrg vendor=cray 96146845023Smrg os=${os:-unicos} 962d6c0b56eSmrg ;; 96346845023Smrg fx80-unknown) 96446845023Smrg vendor=alliant 965d6c0b56eSmrg ;; 96646845023Smrg romp-unknown) 96746845023Smrg vendor=ibm 968d6c0b56eSmrg ;; 96946845023Smrg mmix-unknown) 97046845023Smrg vendor=knuth 971d6c0b56eSmrg ;; 97246845023Smrg microblaze-unknown | microblazeel-unknown) 97346845023Smrg vendor=xilinx 974d6c0b56eSmrg ;; 97546845023Smrg rs6000-unknown) 97646845023Smrg vendor=ibm 977d6c0b56eSmrg ;; 97846845023Smrg vax-unknown) 97946845023Smrg vendor=dec 980d6c0b56eSmrg ;; 98146845023Smrg pdp11-unknown) 98246845023Smrg vendor=dec 983d6c0b56eSmrg ;; 98446845023Smrg we32k-unknown) 98546845023Smrg vendor=att 986d6c0b56eSmrg ;; 98746845023Smrg cydra-unknown) 98846845023Smrg vendor=cydrome 989d6c0b56eSmrg ;; 99046845023Smrg i370-ibm*) 99146845023Smrg vendor=ibm 992d6c0b56eSmrg ;; 99346845023Smrg orion-unknown) 99446845023Smrg vendor=highlevel 995d6c0b56eSmrg ;; 99646845023Smrg xps-unknown | xps100-unknown) 99746845023Smrg cpu=xps100 99846845023Smrg vendor=honeywell 999d6c0b56eSmrg ;; 100046845023Smrg 100146845023Smrg # Here we normalize CPU types with a missing or matching vendor 100246845023Smrg dpx20-unknown | dpx20-bull) 100346845023Smrg cpu=rs6000 100446845023Smrg vendor=bull 100546845023Smrg os=${os:-bosx} 1006d6c0b56eSmrg ;; 100746845023Smrg 100846845023Smrg # Here we normalize CPU types irrespective of the vendor 100946845023Smrg amd64-*) 101046845023Smrg cpu=x86_64 1011d6c0b56eSmrg ;; 101246845023Smrg blackfin-*) 101346845023Smrg cpu=bfin 101446845023Smrg os=linux 1015d6c0b56eSmrg ;; 101646845023Smrg c54x-*) 101746845023Smrg cpu=tic54x 1018d6c0b56eSmrg ;; 101946845023Smrg c55x-*) 102046845023Smrg cpu=tic55x 1021d6c0b56eSmrg ;; 102246845023Smrg c6x-*) 102346845023Smrg cpu=tic6x 1024d6c0b56eSmrg ;; 102546845023Smrg e500v[12]-*) 102646845023Smrg cpu=powerpc 102746845023Smrg os=$os"spe" 1028d6c0b56eSmrg ;; 102946845023Smrg mips3*-*) 103046845023Smrg cpu=mips64 1031d6c0b56eSmrg ;; 103246845023Smrg ms1-*) 103346845023Smrg cpu=mt 1034d6c0b56eSmrg ;; 103546845023Smrg m68knommu-*) 103646845023Smrg cpu=m68k 103746845023Smrg os=linux 1038d6c0b56eSmrg ;; 103946845023Smrg m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) 104046845023Smrg cpu=s12z 1041d6c0b56eSmrg ;; 104246845023Smrg openrisc-*) 104346845023Smrg cpu=or32 1044d6c0b56eSmrg ;; 104546845023Smrg parisc-*) 104646845023Smrg cpu=hppa 104746845023Smrg os=linux 1048d6c0b56eSmrg ;; 104946845023Smrg pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 105046845023Smrg cpu=i586 1051d6c0b56eSmrg ;; 105246845023Smrg pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) 105346845023Smrg cpu=i686 1054d6c0b56eSmrg ;; 105546845023Smrg pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 105646845023Smrg cpu=i686 1057d6c0b56eSmrg ;; 105846845023Smrg pentium4-*) 105946845023Smrg cpu=i786 1060d6c0b56eSmrg ;; 106146845023Smrg pc98-*) 106246845023Smrg cpu=i386 1063d6c0b56eSmrg ;; 106446845023Smrg ppc-* | ppcbe-*) 106546845023Smrg cpu=powerpc 1066d6c0b56eSmrg ;; 106746845023Smrg ppcle-* | powerpclittle-*) 106846845023Smrg cpu=powerpcle 1069d6c0b56eSmrg ;; 107046845023Smrg ppc64-*) 107146845023Smrg cpu=powerpc64 1072d6c0b56eSmrg ;; 107346845023Smrg ppc64le-* | powerpc64little-*) 107446845023Smrg cpu=powerpc64le 1075d6c0b56eSmrg ;; 107646845023Smrg sb1-*) 107746845023Smrg cpu=mipsisa64sb1 1078d6c0b56eSmrg ;; 107946845023Smrg sb1el-*) 108046845023Smrg cpu=mipsisa64sb1el 1081d6c0b56eSmrg ;; 108246845023Smrg sh5e[lb]-*) 108346845023Smrg cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` 1084d6c0b56eSmrg ;; 108546845023Smrg spur-*) 108646845023Smrg cpu=spur 1087d6c0b56eSmrg ;; 108846845023Smrg strongarm-* | thumb-*) 108946845023Smrg cpu=arm 1090d6c0b56eSmrg ;; 109146845023Smrg tx39-*) 109246845023Smrg cpu=mipstx39 109324b90cf4Smrg ;; 109446845023Smrg tx39el-*) 109546845023Smrg cpu=mipstx39el 1096d6c0b56eSmrg ;; 109746845023Smrg x64-*) 109846845023Smrg cpu=x86_64 1099d6c0b56eSmrg ;; 1100d6c0b56eSmrg xscale-* | xscalee[bl]-*) 110146845023Smrg cpu=`echo "$cpu" | sed 's/^xscale/arm/'` 1102d6c0b56eSmrg ;; 1103d6c0b56eSmrg 110446845023Smrg # Recognize the cannonical CPU Types that limit and/or modify the 110546845023Smrg # company names they are paired with. 110646845023Smrg cr16-*) 110746845023Smrg os=${os:-elf} 1108d6c0b56eSmrg ;; 110946845023Smrg crisv32-* | etraxfs*-*) 111046845023Smrg cpu=crisv32 111146845023Smrg vendor=axis 1112d6c0b56eSmrg ;; 111346845023Smrg cris-* | etrax*-*) 111446845023Smrg cpu=cris 111546845023Smrg vendor=axis 1116d6c0b56eSmrg ;; 111746845023Smrg crx-*) 111846845023Smrg os=${os:-elf} 1119d6c0b56eSmrg ;; 112046845023Smrg neo-tandem) 112146845023Smrg cpu=neo 112246845023Smrg vendor=tandem 1123d6c0b56eSmrg ;; 112446845023Smrg nse-tandem) 112546845023Smrg cpu=nse 112646845023Smrg vendor=tandem 1127d6c0b56eSmrg ;; 112846845023Smrg nsr-tandem) 112946845023Smrg cpu=nsr 113046845023Smrg vendor=tandem 1131d6c0b56eSmrg ;; 113246845023Smrg nsv-tandem) 113346845023Smrg cpu=nsv 113446845023Smrg vendor=tandem 1135d6c0b56eSmrg ;; 113646845023Smrg nsx-tandem) 113746845023Smrg cpu=nsx 113846845023Smrg vendor=tandem 1139d6c0b56eSmrg ;; 114046845023Smrg s390-*) 114146845023Smrg cpu=s390 114246845023Smrg vendor=ibm 1143d6c0b56eSmrg ;; 114446845023Smrg s390x-*) 114546845023Smrg cpu=s390x 114646845023Smrg vendor=ibm 1147d6c0b56eSmrg ;; 114846845023Smrg tile*-*) 114946845023Smrg os=${os:-linux-gnu} 1150d6c0b56eSmrg ;; 115146845023Smrg 1152d6c0b56eSmrg *) 115346845023Smrg # Recognize the cannonical CPU types that are allowed with any 115446845023Smrg # company name. 115546845023Smrg case $cpu in 115646845023Smrg 1750a | 580 \ 115746845023Smrg | a29k \ 115846845023Smrg | aarch64 | aarch64_be \ 115946845023Smrg | abacus \ 116046845023Smrg | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ 116146845023Smrg | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ 116246845023Smrg | alphapca5[67] | alpha64pca5[67] \ 116346845023Smrg | am33_2.0 \ 116446845023Smrg | arc | arceb \ 116546845023Smrg | arm | arm[lb]e | arme[lb] | armv* \ 116646845023Smrg | avr | avr32 \ 116746845023Smrg | asmjs \ 116846845023Smrg | ba \ 116946845023Smrg | be32 | be64 \ 117046845023Smrg | bfin | bs2000 \ 117146845023Smrg | c[123]* | c30 | [cjt]90 | c4x \ 117246845023Smrg | c8051 | clipper | craynv | csky | cydra \ 117346845023Smrg | d10v | d30v | dlx | dsp16xx \ 117446845023Smrg | e2k | elxsi | epiphany \ 117546845023Smrg | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ 117646845023Smrg | h8300 | h8500 \ 117746845023Smrg | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 117846845023Smrg | hexagon \ 117946845023Smrg | i370 | i*86 | i860 | i960 | ia16 | ia64 \ 118046845023Smrg | ip2k | iq2000 \ 118146845023Smrg | k1om \ 118246845023Smrg | le32 | le64 \ 118346845023Smrg | lm32 \ 118446845023Smrg | m32c | m32r | m32rle \ 118546845023Smrg | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \ 118646845023Smrg | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \ 118746845023Smrg | m88110 | m88k | maxq | mb | mcore | mep | metag \ 118846845023Smrg | microblaze | microblazeel \ 118946845023Smrg | mips | mipsbe | mipseb | mipsel | mipsle \ 119046845023Smrg | mips16 \ 119146845023Smrg | mips64 | mips64el \ 119246845023Smrg | mips64octeon | mips64octeonel \ 119346845023Smrg | mips64orion | mips64orionel \ 119446845023Smrg | mips64r5900 | mips64r5900el \ 119546845023Smrg | mips64vr | mips64vrel \ 119646845023Smrg | mips64vr4100 | mips64vr4100el \ 119746845023Smrg | mips64vr4300 | mips64vr4300el \ 119846845023Smrg | mips64vr5000 | mips64vr5000el \ 119946845023Smrg | mips64vr5900 | mips64vr5900el \ 120046845023Smrg | mipsisa32 | mipsisa32el \ 120146845023Smrg | mipsisa32r2 | mipsisa32r2el \ 120246845023Smrg | mipsisa32r6 | mipsisa32r6el \ 120346845023Smrg | mipsisa64 | mipsisa64el \ 120446845023Smrg | mipsisa64r2 | mipsisa64r2el \ 120546845023Smrg | mipsisa64r6 | mipsisa64r6el \ 120646845023Smrg | mipsisa64sb1 | mipsisa64sb1el \ 120746845023Smrg | mipsisa64sr71k | mipsisa64sr71kel \ 120846845023Smrg | mipsr5900 | mipsr5900el \ 120946845023Smrg | mipstx39 | mipstx39el \ 121046845023Smrg | mmix \ 121146845023Smrg | mn10200 | mn10300 \ 121246845023Smrg | moxie \ 121346845023Smrg | mt \ 121446845023Smrg | msp430 \ 121546845023Smrg | nds32 | nds32le | nds32be \ 121646845023Smrg | nfp \ 121746845023Smrg | nios | nios2 | nios2eb | nios2el \ 121846845023Smrg | none | np1 | ns16k | ns32k \ 121946845023Smrg | open8 \ 122046845023Smrg | or1k* \ 122146845023Smrg | or32 \ 122246845023Smrg | orion \ 122346845023Smrg | pdp10 | pdp11 | pj | pjl | pn | power \ 122446845023Smrg | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ 122546845023Smrg | pru \ 122646845023Smrg | pyramid \ 122746845023Smrg | riscv | riscv32 | riscv64 \ 122846845023Smrg | rl78 | romp | rs6000 | rx \ 122946845023Smrg | score \ 123046845023Smrg | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ 123146845023Smrg | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ 123246845023Smrg | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ 123346845023Smrg | sparclite \ 123446845023Smrg | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ 123546845023Smrg | spu \ 123646845023Smrg | tahoe \ 123746845023Smrg | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ 123846845023Smrg | tron \ 123946845023Smrg | ubicom32 \ 124046845023Smrg | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ 124146845023Smrg | vax \ 124246845023Smrg | visium \ 124346845023Smrg | wasm32 \ 124446845023Smrg | we32k \ 124546845023Smrg | x86 | x86_64 | xc16x | xgate | xps100 \ 124646845023Smrg | xstormy16 | xtensa* \ 124746845023Smrg | ymp \ 124846845023Smrg | z8k | z80) 124946845023Smrg ;; 125046845023Smrg 125146845023Smrg *) 125246845023Smrg echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 125346845023Smrg exit 1 125446845023Smrg ;; 125546845023Smrg esac 1256d6c0b56eSmrg ;; 1257d6c0b56eSmrgesac 1258d6c0b56eSmrg 1259d6c0b56eSmrg# Here we canonicalize certain aliases for manufacturers. 126046845023Smrgcase $vendor in 126146845023Smrg digital*) 126246845023Smrg vendor=dec 1263d6c0b56eSmrg ;; 126446845023Smrg commodore*) 126546845023Smrg vendor=cbm 1266d6c0b56eSmrg ;; 1267d6c0b56eSmrg *) 1268d6c0b56eSmrg ;; 1269d6c0b56eSmrgesac 1270d6c0b56eSmrg 1271d6c0b56eSmrg# Decode manufacturer-specific aliases for certain operating systems. 1272d6c0b56eSmrg 127346845023Smrgif [ x$os != x ] 1274d6c0b56eSmrgthen 1275d6c0b56eSmrgcase $os in 127624b90cf4Smrg # First match some system type aliases that might get confused 127724b90cf4Smrg # with valid system types. 127846845023Smrg # solaris* is a basic system type, with this one exception. 127946845023Smrg auroraux) 128046845023Smrg os=auroraux 1281d6c0b56eSmrg ;; 128246845023Smrg bluegene*) 128346845023Smrg os=cnk 128446845023Smrg ;; 128546845023Smrg solaris1 | solaris1.*) 1286d6c0b56eSmrg os=`echo $os | sed -e 's|solaris1|sunos4|'` 1287d6c0b56eSmrg ;; 128846845023Smrg solaris) 128946845023Smrg os=solaris2 1290d6c0b56eSmrg ;; 129146845023Smrg unixware*) 129246845023Smrg os=sysv4.2uw 1293d6c0b56eSmrg ;; 129446845023Smrg gnu/linux*) 1295d6c0b56eSmrg os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` 1296d6c0b56eSmrg ;; 129724b90cf4Smrg # es1800 is here to avoid being matched by es* (a different OS) 129846845023Smrg es1800*) 129946845023Smrg os=ose 130046845023Smrg ;; 130146845023Smrg # Some version numbers need modification 130246845023Smrg chorusos*) 130346845023Smrg os=chorusos 130446845023Smrg ;; 130546845023Smrg isc) 130646845023Smrg os=isc2.2 130746845023Smrg ;; 130846845023Smrg sco6) 130946845023Smrg os=sco5v6 131046845023Smrg ;; 131146845023Smrg sco5) 131246845023Smrg os=sco3.2v5 131346845023Smrg ;; 131446845023Smrg sco4) 131546845023Smrg os=sco3.2v4 131646845023Smrg ;; 131746845023Smrg sco3.2.[4-9]*) 131846845023Smrg os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` 131946845023Smrg ;; 132046845023Smrg sco3.2v[4-9]* | sco5v6*) 132146845023Smrg # Don't forget version if it is 3.2v4 or newer. 132246845023Smrg ;; 132346845023Smrg scout) 132446845023Smrg # Don't match below 132546845023Smrg ;; 132646845023Smrg sco*) 132746845023Smrg os=sco3.2v2 132846845023Smrg ;; 132946845023Smrg psos*) 133046845023Smrg os=psos 133124b90cf4Smrg ;; 133224b90cf4Smrg # Now accept the basic system types. 1333d6c0b56eSmrg # The portable systems comes first. 133424b90cf4Smrg # Each alternative MUST end in a * to match a version number. 133546845023Smrg # sysv* is not here because it comes later, after sysvr4. 133646845023Smrg gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ 133746845023Smrg | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ 133846845023Smrg | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ 133946845023Smrg | sym* | kopensolaris* | plan9* \ 134046845023Smrg | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ 134146845023Smrg | aos* | aros* | cloudabi* | sortix* \ 134246845023Smrg | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ 134346845023Smrg | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ 134446845023Smrg | knetbsd* | mirbsd* | netbsd* \ 134546845023Smrg | bitrig* | openbsd* | solidbsd* | libertybsd* \ 134646845023Smrg | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ 134746845023Smrg | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ 134846845023Smrg | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ 134946845023Smrg | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ 135046845023Smrg | chorusrdb* | cegcc* | glidix* \ 135146845023Smrg | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ 135246845023Smrg | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ 135346845023Smrg | linux-newlib* | linux-musl* | linux-uclibc* \ 135446845023Smrg | uxpv* | beos* | mpeix* | udk* | moxiebox* \ 135546845023Smrg | interix* | uwin* | mks* | rhapsody* | darwin* \ 135646845023Smrg | openstep* | oskit* | conix* | pw32* | nonstopux* \ 135746845023Smrg | storm-chaos* | tops10* | tenex* | tops20* | its* \ 135846845023Smrg | os2* | vos* | palmos* | uclinux* | nucleus* \ 135946845023Smrg | morphos* | superux* | rtmk* | windiss* \ 136046845023Smrg | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ 136146845023Smrg | skyos* | haiku* | rdos* | toppers* | drops* | es* \ 136246845023Smrg | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ 136346845023Smrg | midnightbsd*) 1364d6c0b56eSmrg # Remember, each alternative MUST END IN *, to match a version number. 1365d6c0b56eSmrg ;; 136646845023Smrg qnx*) 136746845023Smrg case $cpu in 136846845023Smrg x86 | i*86) 1369d6c0b56eSmrg ;; 1370d6c0b56eSmrg *) 137146845023Smrg os=nto-$os 1372d6c0b56eSmrg ;; 1373d6c0b56eSmrg esac 1374d6c0b56eSmrg ;; 137546845023Smrg hiux*) 137646845023Smrg os=hiuxwe2 137746845023Smrg ;; 137846845023Smrg nto-qnx*) 1379d6c0b56eSmrg ;; 138046845023Smrg nto*) 1381d6c0b56eSmrg os=`echo $os | sed -e 's|nto|nto-qnx|'` 1382d6c0b56eSmrg ;; 138346845023Smrg sim | xray | os68k* | v88r* \ 138446845023Smrg | windows* | osx | abug | netware* | os9* \ 138546845023Smrg | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) 138646845023Smrg ;; 138746845023Smrg linux-dietlibc) 138846845023Smrg os=linux-dietlibc 138946845023Smrg ;; 139046845023Smrg linux*) 139146845023Smrg os=`echo $os | sed -e 's|linux|linux-gnu|'` 139246845023Smrg ;; 139346845023Smrg lynx*178) 139446845023Smrg os=lynxos178 1395d6c0b56eSmrg ;; 139646845023Smrg lynx*5) 139746845023Smrg os=lynxos5 139846845023Smrg ;; 139946845023Smrg lynx*) 140046845023Smrg os=lynxos 140146845023Smrg ;; 140246845023Smrg mac*) 140324b90cf4Smrg os=`echo "$os" | sed -e 's|mac|macos|'` 1404d6c0b56eSmrg ;; 140546845023Smrg opened*) 140646845023Smrg os=openedition 1407d6c0b56eSmrg ;; 140846845023Smrg os400*) 140946845023Smrg os=os400 1410d6c0b56eSmrg ;; 141146845023Smrg sunos5*) 141224b90cf4Smrg os=`echo "$os" | sed -e 's|sunos5|solaris2|'` 1413d6c0b56eSmrg ;; 141446845023Smrg sunos6*) 141524b90cf4Smrg os=`echo "$os" | sed -e 's|sunos6|solaris3|'` 1416d6c0b56eSmrg ;; 141746845023Smrg wince*) 141846845023Smrg os=wince 1419d6c0b56eSmrg ;; 142046845023Smrg utek*) 142146845023Smrg os=bsd 1422d6c0b56eSmrg ;; 142346845023Smrg dynix*) 142446845023Smrg os=bsd 1425d6c0b56eSmrg ;; 142646845023Smrg acis*) 142746845023Smrg os=aos 1428d6c0b56eSmrg ;; 142946845023Smrg atheos*) 143046845023Smrg os=atheos 1431d6c0b56eSmrg ;; 143246845023Smrg syllable*) 143346845023Smrg os=syllable 1434d6c0b56eSmrg ;; 143546845023Smrg 386bsd) 143646845023Smrg os=bsd 1437d6c0b56eSmrg ;; 143846845023Smrg ctix* | uts*) 143946845023Smrg os=sysv 1440d6c0b56eSmrg ;; 144146845023Smrg nova*) 144246845023Smrg os=rtmk-nova 1443d6c0b56eSmrg ;; 144446845023Smrg ns2) 144546845023Smrg os=nextstep2 1446d6c0b56eSmrg ;; 144746845023Smrg nsk*) 144846845023Smrg os=nsk 1449d6c0b56eSmrg ;; 1450d6c0b56eSmrg # Preserve the version number of sinix5. 145146845023Smrg sinix5.*) 1452d6c0b56eSmrg os=`echo $os | sed -e 's|sinix|sysv|'` 1453d6c0b56eSmrg ;; 145446845023Smrg sinix*) 145546845023Smrg os=sysv4 1456d6c0b56eSmrg ;; 145746845023Smrg tpf*) 145846845023Smrg os=tpf 1459d6c0b56eSmrg ;; 146046845023Smrg triton*) 146146845023Smrg os=sysv3 1462d6c0b56eSmrg ;; 146346845023Smrg oss*) 146446845023Smrg os=sysv3 1465d6c0b56eSmrg ;; 146646845023Smrg svr4*) 146746845023Smrg os=sysv4 1468d6c0b56eSmrg ;; 146946845023Smrg svr3) 147046845023Smrg os=sysv3 1471d6c0b56eSmrg ;; 147246845023Smrg sysvr4) 147346845023Smrg os=sysv4 1474d6c0b56eSmrg ;; 147546845023Smrg # This must come after sysvr4. 147646845023Smrg sysv*) 1477d6c0b56eSmrg ;; 147846845023Smrg ose*) 147946845023Smrg os=ose 1480d6c0b56eSmrg ;; 148146845023Smrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 148246845023Smrg os=mint 1483d6c0b56eSmrg ;; 148446845023Smrg zvmoe) 148546845023Smrg os=zvmoe 1486d6c0b56eSmrg ;; 148746845023Smrg dicos*) 148846845023Smrg os=dicos 1489d6c0b56eSmrg ;; 149046845023Smrg pikeos*) 149124b90cf4Smrg # Until real need of OS specific support for 149224b90cf4Smrg # particular features comes up, bare metal 149324b90cf4Smrg # configurations are quite functional. 149446845023Smrg case $cpu in 149524b90cf4Smrg arm*) 149646845023Smrg os=eabi 149724b90cf4Smrg ;; 149824b90cf4Smrg *) 149946845023Smrg os=elf 150024b90cf4Smrg ;; 150124b90cf4Smrg esac 150224b90cf4Smrg ;; 150346845023Smrg nacl*) 1504d6c0b56eSmrg ;; 150546845023Smrg ios) 150611bf0794Smrg ;; 150746845023Smrg none) 150846845023Smrg ;; 150946845023Smrg *-eabi) 1510d6c0b56eSmrg ;; 1511d6c0b56eSmrg *) 151224b90cf4Smrg echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 1513d6c0b56eSmrg exit 1 1514d6c0b56eSmrg ;; 1515d6c0b56eSmrgesac 1516d6c0b56eSmrgelse 1517d6c0b56eSmrg 1518d6c0b56eSmrg# Here we handle the default operating systems that come with various machines. 1519d6c0b56eSmrg# The value should be what the vendor currently ships out the door with their 1520d6c0b56eSmrg# machine or put another way, the most popular os provided with the machine. 1521d6c0b56eSmrg 1522d6c0b56eSmrg# Note that if you're going to try to match "-MANUFACTURER" here (say, 1523d6c0b56eSmrg# "-sun"), then you have to tell the case statement up towards the top 1524d6c0b56eSmrg# that MANUFACTURER isn't an operating system. Otherwise, code above 1525d6c0b56eSmrg# will signal an error saying that MANUFACTURER isn't an operating 1526d6c0b56eSmrg# system, and we'll never get to this point. 1527d6c0b56eSmrg 152846845023Smrgcase $cpu-$vendor in 1529d6c0b56eSmrg score-*) 153046845023Smrg os=elf 1531d6c0b56eSmrg ;; 1532d6c0b56eSmrg spu-*) 153346845023Smrg os=elf 1534d6c0b56eSmrg ;; 1535d6c0b56eSmrg *-acorn) 153646845023Smrg os=riscix1.2 1537d6c0b56eSmrg ;; 1538d6c0b56eSmrg arm*-rebel) 153946845023Smrg os=linux 1540d6c0b56eSmrg ;; 1541d6c0b56eSmrg arm*-semi) 154246845023Smrg os=aout 1543d6c0b56eSmrg ;; 1544d6c0b56eSmrg c4x-* | tic4x-*) 154546845023Smrg os=coff 1546d6c0b56eSmrg ;; 1547d6c0b56eSmrg c8051-*) 154846845023Smrg os=elf 154946845023Smrg ;; 155046845023Smrg clipper-intergraph) 155146845023Smrg os=clix 1552d6c0b56eSmrg ;; 1553d6c0b56eSmrg hexagon-*) 155446845023Smrg os=elf 1555d6c0b56eSmrg ;; 1556d6c0b56eSmrg tic54x-*) 155746845023Smrg os=coff 1558d6c0b56eSmrg ;; 1559d6c0b56eSmrg tic55x-*) 156046845023Smrg os=coff 1561d6c0b56eSmrg ;; 1562d6c0b56eSmrg tic6x-*) 156346845023Smrg os=coff 1564d6c0b56eSmrg ;; 1565d6c0b56eSmrg # This must come before the *-dec entry. 1566d6c0b56eSmrg pdp10-*) 156746845023Smrg os=tops20 1568d6c0b56eSmrg ;; 1569d6c0b56eSmrg pdp11-*) 157046845023Smrg os=none 1571d6c0b56eSmrg ;; 1572d6c0b56eSmrg *-dec | vax-*) 157346845023Smrg os=ultrix4.2 1574d6c0b56eSmrg ;; 1575d6c0b56eSmrg m68*-apollo) 157646845023Smrg os=domain 1577d6c0b56eSmrg ;; 1578d6c0b56eSmrg i386-sun) 157946845023Smrg os=sunos4.0.2 1580d6c0b56eSmrg ;; 1581d6c0b56eSmrg m68000-sun) 158246845023Smrg os=sunos3 1583d6c0b56eSmrg ;; 1584d6c0b56eSmrg m68*-cisco) 158546845023Smrg os=aout 1586d6c0b56eSmrg ;; 1587d6c0b56eSmrg mep-*) 158846845023Smrg os=elf 1589d6c0b56eSmrg ;; 1590d6c0b56eSmrg mips*-cisco) 159146845023Smrg os=elf 1592d6c0b56eSmrg ;; 1593d6c0b56eSmrg mips*-*) 159446845023Smrg os=elf 1595d6c0b56eSmrg ;; 1596d6c0b56eSmrg or32-*) 159746845023Smrg os=coff 1598d6c0b56eSmrg ;; 1599d6c0b56eSmrg *-tti) # must be before sparc entry or we get the wrong os. 160046845023Smrg os=sysv3 1601d6c0b56eSmrg ;; 1602d6c0b56eSmrg sparc-* | *-sun) 160346845023Smrg os=sunos4.1.1 1604d6c0b56eSmrg ;; 160524b90cf4Smrg pru-*) 160646845023Smrg os=elf 160724b90cf4Smrg ;; 1608d6c0b56eSmrg *-be) 160946845023Smrg os=beos 1610d6c0b56eSmrg ;; 1611d6c0b56eSmrg *-ibm) 161246845023Smrg os=aix 1613d6c0b56eSmrg ;; 1614d6c0b56eSmrg *-knuth) 161546845023Smrg os=mmixware 1616d6c0b56eSmrg ;; 1617d6c0b56eSmrg *-wec) 161846845023Smrg os=proelf 1619d6c0b56eSmrg ;; 1620d6c0b56eSmrg *-winbond) 162146845023Smrg os=proelf 1622d6c0b56eSmrg ;; 1623d6c0b56eSmrg *-oki) 162446845023Smrg os=proelf 1625d6c0b56eSmrg ;; 1626d6c0b56eSmrg *-hp) 162746845023Smrg os=hpux 1628d6c0b56eSmrg ;; 1629d6c0b56eSmrg *-hitachi) 163046845023Smrg os=hiux 1631d6c0b56eSmrg ;; 1632d6c0b56eSmrg i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 163346845023Smrg os=sysv 1634d6c0b56eSmrg ;; 1635d6c0b56eSmrg *-cbm) 163646845023Smrg os=amigaos 1637d6c0b56eSmrg ;; 1638d6c0b56eSmrg *-dg) 163946845023Smrg os=dgux 1640d6c0b56eSmrg ;; 1641d6c0b56eSmrg *-dolphin) 164246845023Smrg os=sysv3 1643d6c0b56eSmrg ;; 1644d6c0b56eSmrg m68k-ccur) 164546845023Smrg os=rtu 1646d6c0b56eSmrg ;; 1647d6c0b56eSmrg m88k-omron*) 164846845023Smrg os=luna 1649d6c0b56eSmrg ;; 165024b90cf4Smrg *-next) 165146845023Smrg os=nextstep 1652d6c0b56eSmrg ;; 1653d6c0b56eSmrg *-sequent) 165446845023Smrg os=ptx 1655d6c0b56eSmrg ;; 1656d6c0b56eSmrg *-crds) 165746845023Smrg os=unos 1658d6c0b56eSmrg ;; 1659d6c0b56eSmrg *-ns) 166046845023Smrg os=genix 1661d6c0b56eSmrg ;; 1662d6c0b56eSmrg i370-*) 166346845023Smrg os=mvs 1664d6c0b56eSmrg ;; 1665d6c0b56eSmrg *-gould) 166646845023Smrg os=sysv 1667d6c0b56eSmrg ;; 1668d6c0b56eSmrg *-highlevel) 166946845023Smrg os=bsd 1670d6c0b56eSmrg ;; 1671d6c0b56eSmrg *-encore) 167246845023Smrg os=bsd 1673d6c0b56eSmrg ;; 1674d6c0b56eSmrg *-sgi) 167546845023Smrg os=irix 1676d6c0b56eSmrg ;; 1677d6c0b56eSmrg *-siemens) 167846845023Smrg os=sysv4 1679d6c0b56eSmrg ;; 1680d6c0b56eSmrg *-masscomp) 168146845023Smrg os=rtu 1682d6c0b56eSmrg ;; 1683d6c0b56eSmrg f30[01]-fujitsu | f700-fujitsu) 168446845023Smrg os=uxpv 1685d6c0b56eSmrg ;; 1686d6c0b56eSmrg *-rom68k) 168746845023Smrg os=coff 1688d6c0b56eSmrg ;; 1689d6c0b56eSmrg *-*bug) 169046845023Smrg os=coff 1691d6c0b56eSmrg ;; 1692d6c0b56eSmrg *-apple) 169346845023Smrg os=macos 1694d6c0b56eSmrg ;; 1695d6c0b56eSmrg *-atari*) 169646845023Smrg os=mint 169746845023Smrg ;; 169846845023Smrg *-wrs) 169946845023Smrg os=vxworks 1700d6c0b56eSmrg ;; 1701d6c0b56eSmrg *) 170246845023Smrg os=none 1703d6c0b56eSmrg ;; 1704d6c0b56eSmrgesac 1705d6c0b56eSmrgfi 1706d6c0b56eSmrg 1707d6c0b56eSmrg# Here we handle the case where we know the os, and the CPU type, but not the 1708d6c0b56eSmrg# manufacturer. We pick the logical manufacturer. 170946845023Smrgcase $vendor in 171046845023Smrg unknown) 1711d6c0b56eSmrg case $os in 171246845023Smrg riscix*) 1713d6c0b56eSmrg vendor=acorn 1714d6c0b56eSmrg ;; 171546845023Smrg sunos*) 1716d6c0b56eSmrg vendor=sun 1717d6c0b56eSmrg ;; 171846845023Smrg cnk*|-aix*) 1719d6c0b56eSmrg vendor=ibm 1720d6c0b56eSmrg ;; 172146845023Smrg beos*) 1722d6c0b56eSmrg vendor=be 1723d6c0b56eSmrg ;; 172446845023Smrg hpux*) 1725d6c0b56eSmrg vendor=hp 1726d6c0b56eSmrg ;; 172746845023Smrg mpeix*) 1728d6c0b56eSmrg vendor=hp 1729d6c0b56eSmrg ;; 173046845023Smrg hiux*) 1731d6c0b56eSmrg vendor=hitachi 1732d6c0b56eSmrg ;; 173346845023Smrg unos*) 1734d6c0b56eSmrg vendor=crds 1735d6c0b56eSmrg ;; 173646845023Smrg dgux*) 1737d6c0b56eSmrg vendor=dg 1738d6c0b56eSmrg ;; 173946845023Smrg luna*) 1740d6c0b56eSmrg vendor=omron 1741d6c0b56eSmrg ;; 174246845023Smrg genix*) 1743d6c0b56eSmrg vendor=ns 1744d6c0b56eSmrg ;; 174546845023Smrg clix*) 174646845023Smrg vendor=intergraph 174746845023Smrg ;; 174846845023Smrg mvs* | opened*) 1749d6c0b56eSmrg vendor=ibm 1750d6c0b56eSmrg ;; 175146845023Smrg os400*) 1752d6c0b56eSmrg vendor=ibm 1753d6c0b56eSmrg ;; 175446845023Smrg ptx*) 1755d6c0b56eSmrg vendor=sequent 1756d6c0b56eSmrg ;; 175746845023Smrg tpf*) 1758d6c0b56eSmrg vendor=ibm 1759d6c0b56eSmrg ;; 176046845023Smrg vxsim* | vxworks* | windiss*) 1761d6c0b56eSmrg vendor=wrs 1762d6c0b56eSmrg ;; 176346845023Smrg aux*) 1764d6c0b56eSmrg vendor=apple 1765d6c0b56eSmrg ;; 176646845023Smrg hms*) 1767d6c0b56eSmrg vendor=hitachi 1768d6c0b56eSmrg ;; 176946845023Smrg mpw* | macos*) 1770d6c0b56eSmrg vendor=apple 1771d6c0b56eSmrg ;; 177246845023Smrg *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) 1773d6c0b56eSmrg vendor=atari 1774d6c0b56eSmrg ;; 177546845023Smrg vos*) 1776d6c0b56eSmrg vendor=stratus 1777d6c0b56eSmrg ;; 1778d6c0b56eSmrg esac 1779d6c0b56eSmrg ;; 1780d6c0b56eSmrgesac 1781d6c0b56eSmrg 178246845023Smrgecho "$cpu-$vendor-$os" 1783d6c0b56eSmrgexit 1784d6c0b56eSmrg 1785d6c0b56eSmrg# Local variables: 178646845023Smrg# eval: (add-hook 'before-save-hook 'time-stamp) 1787d6c0b56eSmrg# time-stamp-start: "timestamp='" 1788d6c0b56eSmrg# time-stamp-format: "%:y-%02m-%02d" 1789d6c0b56eSmrg# time-stamp-end: "'" 1790d6c0b56eSmrg# End: 1791