110dd2532Schristos#! /bin/sh 210dd2532Schristos# Configuration validation subroutine script. 3*32b71e0eSsevan# Copyright 1992-2017 Free Software Foundation, Inc. 410dd2532Schristos 5*32b71e0eSsevantimestamp='2017-01-01' 610dd2532Schristos 7*32b71e0eSsevan# This file is free software; you can redistribute it and/or modify it 8*32b71e0eSsevan# under the terms of the GNU General Public License as published by 9*32b71e0eSsevan# the Free Software Foundation; either version 3 of the License, or 1010dd2532Schristos# (at your option) any later version. 1110dd2532Schristos# 12*32b71e0eSsevan# This program is distributed in the hope that it will be useful, but 13*32b71e0eSsevan# WITHOUT ANY WARRANTY; without even the implied warranty of 14*32b71e0eSsevan# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15*32b71e0eSsevan# General Public License for more details. 1610dd2532Schristos# 1710dd2532Schristos# You should have received a copy of the GNU General Public License 18*32b71e0eSsevan# along with this program; if not, see <http://www.gnu.org/licenses/>. 19*32b71e0eSsevan# 2010dd2532Schristos# As a special exception to the GNU General Public License, if you 2110dd2532Schristos# distribute this file as part of a program that contains a 2210dd2532Schristos# configuration script generated by Autoconf, you may include it under 23*32b71e0eSsevan# the same distribution terms that you use for the rest of that 24*32b71e0eSsevan# program. This Exception is an additional permission under section 7 25*32b71e0eSsevan# of the GNU General Public License, version 3 ("GPLv3"). 2610dd2532Schristos 27*32b71e0eSsevan 28*32b71e0eSsevan# Please send patches to <config-patches@gnu.org>. 2910dd2532Schristos# 3010dd2532Schristos# Configuration subroutine to validate and canonicalize a configuration type. 3110dd2532Schristos# Supply the specified configuration type as an argument. 3210dd2532Schristos# If it is invalid, we print an error message on stderr and exit with code 1. 3310dd2532Schristos# Otherwise, we print the canonical config type on stdout and succeed. 3410dd2532Schristos 35*32b71e0eSsevan# You can get the latest version of this script from: 36*32b71e0eSsevan# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub 37*32b71e0eSsevan 3810dd2532Schristos# This file is supposed to be the same for all GNU packages 3910dd2532Schristos# and recognize all the CPU types, system types and aliases 4010dd2532Schristos# that are meaningful with *any* GNU software. 4110dd2532Schristos# Each package is responsible for reporting which valid configurations 4210dd2532Schristos# it does not support. The user should be able to distinguish 4310dd2532Schristos# a failure to support a valid configuration from a meaningless 4410dd2532Schristos# configuration. 4510dd2532Schristos 4610dd2532Schristos# The goal of this file is to map all the various variations of a given 4710dd2532Schristos# machine specification into a single specification in the form: 4810dd2532Schristos# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 4910dd2532Schristos# or in some cases, the newer four-part form: 5010dd2532Schristos# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 5110dd2532Schristos# It is wrong to echo any other type of specification. 5210dd2532Schristos 5310dd2532Schristosme=`echo "$0" | sed -e 's,.*/,,'` 5410dd2532Schristos 5510dd2532Schristosusage="\ 56*32b71e0eSsevanUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 5710dd2532Schristos 5810dd2532SchristosCanonicalize a configuration name. 5910dd2532Schristos 6010dd2532SchristosOperation modes: 6110dd2532Schristos -h, --help print this help, then exit 6210dd2532Schristos -t, --time-stamp print date of last modification, then exit 6310dd2532Schristos -v, --version print version number, then exit 6410dd2532Schristos 6510dd2532SchristosReport bugs and patches to <config-patches@gnu.org>." 6610dd2532Schristos 6710dd2532Schristosversion="\ 6810dd2532SchristosGNU config.sub ($timestamp) 6910dd2532Schristos 70*32b71e0eSsevanCopyright 1992-2017 Free Software Foundation, Inc. 7110dd2532Schristos 7210dd2532SchristosThis is free software; see the source for copying conditions. There is NO 7310dd2532Schristoswarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 7410dd2532Schristos 7510dd2532Schristoshelp=" 7610dd2532SchristosTry \`$me --help' for more information." 7710dd2532Schristos 7810dd2532Schristos# Parse command line 7910dd2532Schristoswhile test $# -gt 0 ; do 8010dd2532Schristos case $1 in 8110dd2532Schristos --time-stamp | --time* | -t ) 82*32b71e0eSsevan echo "$timestamp" ; exit ;; 8310dd2532Schristos --version | -v ) 84*32b71e0eSsevan echo "$version" ; exit ;; 8510dd2532Schristos --help | --h* | -h ) 86*32b71e0eSsevan echo "$usage"; exit ;; 8710dd2532Schristos -- ) # Stop option processing 8810dd2532Schristos shift; break ;; 8910dd2532Schristos - ) # Use stdin as input. 9010dd2532Schristos break ;; 9110dd2532Schristos -* ) 9210dd2532Schristos echo "$me: invalid option $1$help" 9310dd2532Schristos exit 1 ;; 9410dd2532Schristos 9510dd2532Schristos *local*) 9610dd2532Schristos # First pass through any local machine types. 9710dd2532Schristos echo $1 98*32b71e0eSsevan exit ;; 9910dd2532Schristos 10010dd2532Schristos * ) 10110dd2532Schristos break ;; 10210dd2532Schristos esac 10310dd2532Schristosdone 10410dd2532Schristos 10510dd2532Schristoscase $# in 10610dd2532Schristos 0) echo "$me: missing argument$help" >&2 10710dd2532Schristos exit 1;; 10810dd2532Schristos 1) ;; 10910dd2532Schristos *) echo "$me: too many arguments$help" >&2 11010dd2532Schristos exit 1;; 11110dd2532Schristosesac 11210dd2532Schristos 11310dd2532Schristos# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). 11410dd2532Schristos# Here we must recognize all the valid KERNEL-OS combinations. 11510dd2532Schristosmaybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` 11610dd2532Schristoscase $maybe_os in 117*32b71e0eSsevan nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ 118*32b71e0eSsevan linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ 119*32b71e0eSsevan knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ 120*32b71e0eSsevan kopensolaris*-gnu* | cloudabi*-eabi* | \ 121*32b71e0eSsevan storm-chaos* | os2-emx* | rtmk-nova*) 12210dd2532Schristos os=-$maybe_os 12310dd2532Schristos basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` 12410dd2532Schristos ;; 125*32b71e0eSsevan android-linux) 126*32b71e0eSsevan os=-linux-android 127*32b71e0eSsevan basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown 128*32b71e0eSsevan ;; 12910dd2532Schristos *) 13010dd2532Schristos basic_machine=`echo $1 | sed 's/-[^-]*$//'` 13110dd2532Schristos if [ $basic_machine != $1 ] 13210dd2532Schristos then os=`echo $1 | sed 's/.*-/-/'` 13310dd2532Schristos else os=; fi 13410dd2532Schristos ;; 13510dd2532Schristosesac 13610dd2532Schristos 13710dd2532Schristos### Let's recognize common machines as not being operating systems so 13810dd2532Schristos### that things like config.sub decstation-3100 work. We also 13910dd2532Schristos### recognize some manufacturers as not being operating systems, so we 14010dd2532Schristos### can provide default operating systems below. 14110dd2532Schristoscase $os in 14210dd2532Schristos -sun*os*) 14310dd2532Schristos # Prevent following clause from handling this invalid input. 14410dd2532Schristos ;; 14510dd2532Schristos -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ 14610dd2532Schristos -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ 14710dd2532Schristos -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ 14810dd2532Schristos -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ 14910dd2532Schristos -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ 15010dd2532Schristos -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ 151*32b71e0eSsevan -apple | -axis | -knuth | -cray | -microblaze*) 15210dd2532Schristos os= 15310dd2532Schristos basic_machine=$1 15410dd2532Schristos ;; 155*32b71e0eSsevan -bluegene*) 156*32b71e0eSsevan os=-cnk 157*32b71e0eSsevan ;; 15810dd2532Schristos -sim | -cisco | -oki | -wec | -winbond) 15910dd2532Schristos os= 16010dd2532Schristos basic_machine=$1 16110dd2532Schristos ;; 16210dd2532Schristos -scout) 16310dd2532Schristos ;; 16410dd2532Schristos -wrs) 16510dd2532Schristos os=-vxworks 16610dd2532Schristos basic_machine=$1 16710dd2532Schristos ;; 16810dd2532Schristos -chorusos*) 16910dd2532Schristos os=-chorusos 17010dd2532Schristos basic_machine=$1 17110dd2532Schristos ;; 17210dd2532Schristos -chorusrdb) 17310dd2532Schristos os=-chorusrdb 17410dd2532Schristos basic_machine=$1 17510dd2532Schristos ;; 17610dd2532Schristos -hiux*) 17710dd2532Schristos os=-hiuxwe2 17810dd2532Schristos ;; 179*32b71e0eSsevan -sco6) 180*32b71e0eSsevan os=-sco5v6 181*32b71e0eSsevan basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 182*32b71e0eSsevan ;; 18310dd2532Schristos -sco5) 18410dd2532Schristos os=-sco3.2v5 18510dd2532Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 18610dd2532Schristos ;; 18710dd2532Schristos -sco4) 18810dd2532Schristos os=-sco3.2v4 18910dd2532Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 19010dd2532Schristos ;; 19110dd2532Schristos -sco3.2.[4-9]*) 19210dd2532Schristos os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` 19310dd2532Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 19410dd2532Schristos ;; 19510dd2532Schristos -sco3.2v[4-9]*) 19610dd2532Schristos # Don't forget version if it is 3.2v4 or newer. 19710dd2532Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 19810dd2532Schristos ;; 199*32b71e0eSsevan -sco5v6*) 200*32b71e0eSsevan # Don't forget version if it is 3.2v4 or newer. 201*32b71e0eSsevan basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 202*32b71e0eSsevan ;; 20310dd2532Schristos -sco*) 20410dd2532Schristos os=-sco3.2v2 20510dd2532Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 20610dd2532Schristos ;; 20710dd2532Schristos -udk*) 20810dd2532Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 20910dd2532Schristos ;; 21010dd2532Schristos -isc) 21110dd2532Schristos os=-isc2.2 21210dd2532Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 21310dd2532Schristos ;; 21410dd2532Schristos -clix*) 21510dd2532Schristos basic_machine=clipper-intergraph 21610dd2532Schristos ;; 21710dd2532Schristos -isc*) 21810dd2532Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 21910dd2532Schristos ;; 220*32b71e0eSsevan -lynx*178) 221*32b71e0eSsevan os=-lynxos178 222*32b71e0eSsevan ;; 223*32b71e0eSsevan -lynx*5) 224*32b71e0eSsevan os=-lynxos5 225*32b71e0eSsevan ;; 22610dd2532Schristos -lynx*) 22710dd2532Schristos os=-lynxos 22810dd2532Schristos ;; 22910dd2532Schristos -ptx*) 23010dd2532Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` 23110dd2532Schristos ;; 23210dd2532Schristos -windowsnt*) 23310dd2532Schristos os=`echo $os | sed -e 's/windowsnt/winnt/'` 23410dd2532Schristos ;; 23510dd2532Schristos -psos*) 23610dd2532Schristos os=-psos 23710dd2532Schristos ;; 23810dd2532Schristos -mint | -mint[0-9]*) 23910dd2532Schristos basic_machine=m68k-atari 24010dd2532Schristos os=-mint 24110dd2532Schristos ;; 24210dd2532Schristosesac 24310dd2532Schristos 24410dd2532Schristos# Decode aliases for certain CPU-COMPANY combinations. 24510dd2532Schristoscase $basic_machine in 24610dd2532Schristos # Recognize the basic CPU types without company name. 24710dd2532Schristos # Some are omitted here because they have special meanings below. 24810dd2532Schristos 1750a | 580 \ 24910dd2532Schristos | a29k \ 250*32b71e0eSsevan | aarch64 | aarch64_be \ 25110dd2532Schristos | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ 25210dd2532Schristos | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ 253*32b71e0eSsevan | am33_2.0 \ 254*32b71e0eSsevan | arc | arceb \ 255*32b71e0eSsevan | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ 256*32b71e0eSsevan | avr | avr32 \ 257*32b71e0eSsevan | ba \ 258*32b71e0eSsevan | be32 | be64 \ 259*32b71e0eSsevan | bfin \ 260*32b71e0eSsevan | c4x | c8051 | clipper \ 26110dd2532Schristos | d10v | d30v | dlx | dsp16xx \ 262*32b71e0eSsevan | e2k | epiphany \ 263*32b71e0eSsevan | fido | fr30 | frv | ft32 \ 26410dd2532Schristos | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 265*32b71e0eSsevan | hexagon \ 26610dd2532Schristos | i370 | i860 | i960 | ia64 \ 267*32b71e0eSsevan | ip2k | iq2000 \ 268*32b71e0eSsevan | k1om \ 269*32b71e0eSsevan | le32 | le64 \ 270*32b71e0eSsevan | lm32 \ 271*32b71e0eSsevan | m32c | m32r | m32rle | m68000 | m68k | m88k \ 272*32b71e0eSsevan | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ 27310dd2532Schristos | mips | mipsbe | mipseb | mipsel | mipsle \ 27410dd2532Schristos | mips16 \ 27510dd2532Schristos | mips64 | mips64el \ 276*32b71e0eSsevan | mips64octeon | mips64octeonel \ 27710dd2532Schristos | mips64orion | mips64orionel \ 278*32b71e0eSsevan | mips64r5900 | mips64r5900el \ 279*32b71e0eSsevan | mips64vr | mips64vrel \ 28010dd2532Schristos | mips64vr4100 | mips64vr4100el \ 28110dd2532Schristos | mips64vr4300 | mips64vr4300el \ 28210dd2532Schristos | mips64vr5000 | mips64vr5000el \ 283*32b71e0eSsevan | mips64vr5900 | mips64vr5900el \ 28410dd2532Schristos | mipsisa32 | mipsisa32el \ 28510dd2532Schristos | mipsisa32r2 | mipsisa32r2el \ 286*32b71e0eSsevan | mipsisa32r6 | mipsisa32r6el \ 28710dd2532Schristos | mipsisa64 | mipsisa64el \ 288*32b71e0eSsevan | mipsisa64r2 | mipsisa64r2el \ 289*32b71e0eSsevan | mipsisa64r6 | mipsisa64r6el \ 29010dd2532Schristos | mipsisa64sb1 | mipsisa64sb1el \ 29110dd2532Schristos | mipsisa64sr71k | mipsisa64sr71kel \ 292*32b71e0eSsevan | mipsr5900 | mipsr5900el \ 29310dd2532Schristos | mipstx39 | mipstx39el \ 29410dd2532Schristos | mn10200 | mn10300 \ 295*32b71e0eSsevan | moxie \ 296*32b71e0eSsevan | mt \ 29710dd2532Schristos | msp430 \ 298*32b71e0eSsevan | nds32 | nds32le | nds32be \ 299*32b71e0eSsevan | nios | nios2 | nios2eb | nios2el \ 30010dd2532Schristos | ns16k | ns32k \ 301*32b71e0eSsevan | open8 | or1k | or1knd | or32 \ 30210dd2532Schristos | pdp10 | pdp11 | pj | pjl \ 303*32b71e0eSsevan | powerpc | powerpc64 | powerpc64le | powerpcle \ 304*32b71e0eSsevan | pru \ 30510dd2532Schristos | pyramid \ 306*32b71e0eSsevan | riscv32 | riscv64 \ 307*32b71e0eSsevan | rl78 | rx \ 308*32b71e0eSsevan | score \ 309*32b71e0eSsevan | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ 31010dd2532Schristos | sh64 | sh64le \ 311*32b71e0eSsevan | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ 312*32b71e0eSsevan | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ 313*32b71e0eSsevan | spu \ 314*32b71e0eSsevan | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ 315*32b71e0eSsevan | ubicom32 \ 316*32b71e0eSsevan | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ 317*32b71e0eSsevan | visium \ 31810dd2532Schristos | we32k \ 319*32b71e0eSsevan | x86 | xc16x | xstormy16 | xtensa \ 320*32b71e0eSsevan | z8k | z80) 32110dd2532Schristos basic_machine=$basic_machine-unknown 32210dd2532Schristos ;; 323*32b71e0eSsevan c54x) 324*32b71e0eSsevan basic_machine=tic54x-unknown 325*32b71e0eSsevan ;; 326*32b71e0eSsevan c55x) 327*32b71e0eSsevan basic_machine=tic55x-unknown 328*32b71e0eSsevan ;; 329*32b71e0eSsevan c6x) 330*32b71e0eSsevan basic_machine=tic6x-unknown 331*32b71e0eSsevan ;; 332*32b71e0eSsevan leon|leon[3-9]) 333*32b71e0eSsevan basic_machine=sparc-$basic_machine 334*32b71e0eSsevan ;; 335*32b71e0eSsevan m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) 33610dd2532Schristos basic_machine=$basic_machine-unknown 33710dd2532Schristos os=-none 33810dd2532Schristos ;; 33910dd2532Schristos m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) 34010dd2532Schristos ;; 341*32b71e0eSsevan ms1) 342*32b71e0eSsevan basic_machine=mt-unknown 343*32b71e0eSsevan ;; 344*32b71e0eSsevan 345*32b71e0eSsevan strongarm | thumb | xscale) 346*32b71e0eSsevan basic_machine=arm-unknown 347*32b71e0eSsevan ;; 348*32b71e0eSsevan xgate) 349*32b71e0eSsevan basic_machine=$basic_machine-unknown 350*32b71e0eSsevan os=-none 351*32b71e0eSsevan ;; 352*32b71e0eSsevan xscaleeb) 353*32b71e0eSsevan basic_machine=armeb-unknown 354*32b71e0eSsevan ;; 355*32b71e0eSsevan 356*32b71e0eSsevan xscaleel) 357*32b71e0eSsevan basic_machine=armel-unknown 358*32b71e0eSsevan ;; 35910dd2532Schristos 36010dd2532Schristos # We use `pc' rather than `unknown' 36110dd2532Schristos # because (1) that's what they normally are, and 36210dd2532Schristos # (2) the word "unknown" tends to confuse beginning users. 36310dd2532Schristos i*86 | x86_64) 36410dd2532Schristos basic_machine=$basic_machine-pc 36510dd2532Schristos ;; 36610dd2532Schristos # Object if more than one company name word. 36710dd2532Schristos *-*-*) 36810dd2532Schristos echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 36910dd2532Schristos exit 1 37010dd2532Schristos ;; 37110dd2532Schristos # Recognize the basic CPU types with company name. 37210dd2532Schristos 580-* \ 37310dd2532Schristos | a29k-* \ 374*32b71e0eSsevan | aarch64-* | aarch64_be-* \ 37510dd2532Schristos | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ 37610dd2532Schristos | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ 377*32b71e0eSsevan | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ 37810dd2532Schristos | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ 379*32b71e0eSsevan | avr-* | avr32-* \ 380*32b71e0eSsevan | ba-* \ 381*32b71e0eSsevan | be32-* | be64-* \ 382*32b71e0eSsevan | bfin-* | bs2000-* \ 383*32b71e0eSsevan | c[123]* | c30-* | [cjt]90-* | c4x-* \ 384*32b71e0eSsevan | c8051-* | clipper-* | craynv-* | cydra-* \ 38510dd2532Schristos | d10v-* | d30v-* | dlx-* \ 386*32b71e0eSsevan | e2k-* | elxsi-* \ 387*32b71e0eSsevan | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ 38810dd2532Schristos | h8300-* | h8500-* \ 38910dd2532Schristos | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ 390*32b71e0eSsevan | hexagon-* \ 39110dd2532Schristos | i*86-* | i860-* | i960-* | ia64-* \ 392*32b71e0eSsevan | ip2k-* | iq2000-* \ 393*32b71e0eSsevan | k1om-* \ 394*32b71e0eSsevan | le32-* | le64-* \ 395*32b71e0eSsevan | lm32-* \ 396*32b71e0eSsevan | m32c-* | m32r-* | m32rle-* \ 39710dd2532Schristos | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ 398*32b71e0eSsevan | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ 399*32b71e0eSsevan | microblaze-* | microblazeel-* \ 40010dd2532Schristos | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ 40110dd2532Schristos | mips16-* \ 40210dd2532Schristos | mips64-* | mips64el-* \ 403*32b71e0eSsevan | mips64octeon-* | mips64octeonel-* \ 40410dd2532Schristos | mips64orion-* | mips64orionel-* \ 405*32b71e0eSsevan | mips64r5900-* | mips64r5900el-* \ 406*32b71e0eSsevan | mips64vr-* | mips64vrel-* \ 40710dd2532Schristos | mips64vr4100-* | mips64vr4100el-* \ 40810dd2532Schristos | mips64vr4300-* | mips64vr4300el-* \ 40910dd2532Schristos | mips64vr5000-* | mips64vr5000el-* \ 410*32b71e0eSsevan | mips64vr5900-* | mips64vr5900el-* \ 41110dd2532Schristos | mipsisa32-* | mipsisa32el-* \ 41210dd2532Schristos | mipsisa32r2-* | mipsisa32r2el-* \ 413*32b71e0eSsevan | mipsisa32r6-* | mipsisa32r6el-* \ 41410dd2532Schristos | mipsisa64-* | mipsisa64el-* \ 415*32b71e0eSsevan | mipsisa64r2-* | mipsisa64r2el-* \ 416*32b71e0eSsevan | mipsisa64r6-* | mipsisa64r6el-* \ 41710dd2532Schristos | mipsisa64sb1-* | mipsisa64sb1el-* \ 41810dd2532Schristos | mipsisa64sr71k-* | mipsisa64sr71kel-* \ 419*32b71e0eSsevan | mipsr5900-* | mipsr5900el-* \ 42010dd2532Schristos | mipstx39-* | mipstx39el-* \ 421*32b71e0eSsevan | mmix-* \ 422*32b71e0eSsevan | mt-* \ 42310dd2532Schristos | msp430-* \ 424*32b71e0eSsevan | nds32-* | nds32le-* | nds32be-* \ 425*32b71e0eSsevan | nios-* | nios2-* | nios2eb-* | nios2el-* \ 426*32b71e0eSsevan | none-* | np1-* | ns16k-* | ns32k-* \ 427*32b71e0eSsevan | open8-* \ 428*32b71e0eSsevan | or1k*-* \ 42910dd2532Schristos | orion-* \ 43010dd2532Schristos | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ 431*32b71e0eSsevan | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ 432*32b71e0eSsevan | pru-* \ 43310dd2532Schristos | pyramid-* \ 434*32b71e0eSsevan | riscv32-* | riscv64-* \ 435*32b71e0eSsevan | rl78-* | romp-* | rs6000-* | rx-* \ 436*32b71e0eSsevan | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ 43710dd2532Schristos | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ 438*32b71e0eSsevan | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ 439*32b71e0eSsevan | sparclite-* \ 440*32b71e0eSsevan | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ 441*32b71e0eSsevan | tahoe-* \ 44210dd2532Schristos | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ 443*32b71e0eSsevan | tile*-* \ 44410dd2532Schristos | tron-* \ 445*32b71e0eSsevan | ubicom32-* \ 446*32b71e0eSsevan | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ 447*32b71e0eSsevan | vax-* \ 448*32b71e0eSsevan | visium-* \ 44910dd2532Schristos | we32k-* \ 450*32b71e0eSsevan | x86-* | x86_64-* | xc16x-* | xps100-* \ 451*32b71e0eSsevan | xstormy16-* | xtensa*-* \ 45210dd2532Schristos | ymp-* \ 453*32b71e0eSsevan | z8k-* | z80-*) 454*32b71e0eSsevan ;; 455*32b71e0eSsevan # Recognize the basic CPU types without company name, with glob match. 456*32b71e0eSsevan xtensa*) 457*32b71e0eSsevan basic_machine=$basic_machine-unknown 45810dd2532Schristos ;; 45910dd2532Schristos # Recognize the various machine names and aliases which stand 46010dd2532Schristos # for a CPU type and a company and sometimes even an OS. 46110dd2532Schristos 386bsd) 46210dd2532Schristos basic_machine=i386-unknown 46310dd2532Schristos os=-bsd 46410dd2532Schristos ;; 46510dd2532Schristos 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 46610dd2532Schristos basic_machine=m68000-att 46710dd2532Schristos ;; 46810dd2532Schristos 3b*) 46910dd2532Schristos basic_machine=we32k-att 47010dd2532Schristos ;; 47110dd2532Schristos a29khif) 47210dd2532Schristos basic_machine=a29k-amd 47310dd2532Schristos os=-udi 47410dd2532Schristos ;; 475*32b71e0eSsevan abacus) 476*32b71e0eSsevan basic_machine=abacus-unknown 477*32b71e0eSsevan ;; 47810dd2532Schristos adobe68k) 47910dd2532Schristos basic_machine=m68010-adobe 48010dd2532Schristos os=-scout 48110dd2532Schristos ;; 48210dd2532Schristos alliant | fx80) 48310dd2532Schristos basic_machine=fx80-alliant 48410dd2532Schristos ;; 48510dd2532Schristos altos | altos3068) 48610dd2532Schristos basic_machine=m68k-altos 48710dd2532Schristos ;; 48810dd2532Schristos am29k) 48910dd2532Schristos basic_machine=a29k-none 49010dd2532Schristos os=-bsd 49110dd2532Schristos ;; 49210dd2532Schristos amd64) 49310dd2532Schristos basic_machine=x86_64-pc 49410dd2532Schristos ;; 495*32b71e0eSsevan amd64-*) 496*32b71e0eSsevan basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` 497*32b71e0eSsevan ;; 49810dd2532Schristos amdahl) 49910dd2532Schristos basic_machine=580-amdahl 50010dd2532Schristos os=-sysv 50110dd2532Schristos ;; 50210dd2532Schristos amiga | amiga-*) 50310dd2532Schristos basic_machine=m68k-unknown 50410dd2532Schristos ;; 50510dd2532Schristos amigaos | amigados) 50610dd2532Schristos basic_machine=m68k-unknown 50710dd2532Schristos os=-amigaos 50810dd2532Schristos ;; 50910dd2532Schristos amigaunix | amix) 51010dd2532Schristos basic_machine=m68k-unknown 51110dd2532Schristos os=-sysv4 51210dd2532Schristos ;; 51310dd2532Schristos apollo68) 51410dd2532Schristos basic_machine=m68k-apollo 51510dd2532Schristos os=-sysv 51610dd2532Schristos ;; 51710dd2532Schristos apollo68bsd) 51810dd2532Schristos basic_machine=m68k-apollo 51910dd2532Schristos os=-bsd 52010dd2532Schristos ;; 521*32b71e0eSsevan aros) 522*32b71e0eSsevan basic_machine=i386-pc 523*32b71e0eSsevan os=-aros 524*32b71e0eSsevan ;; 525*32b71e0eSsevan asmjs) 526*32b71e0eSsevan basic_machine=asmjs-unknown 527*32b71e0eSsevan ;; 52810dd2532Schristos aux) 52910dd2532Schristos basic_machine=m68k-apple 53010dd2532Schristos os=-aux 53110dd2532Schristos ;; 53210dd2532Schristos balance) 53310dd2532Schristos basic_machine=ns32k-sequent 53410dd2532Schristos os=-dynix 53510dd2532Schristos ;; 536*32b71e0eSsevan blackfin) 537*32b71e0eSsevan basic_machine=bfin-unknown 538*32b71e0eSsevan os=-linux 539*32b71e0eSsevan ;; 540*32b71e0eSsevan blackfin-*) 541*32b71e0eSsevan basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` 542*32b71e0eSsevan os=-linux 543*32b71e0eSsevan ;; 544*32b71e0eSsevan bluegene*) 545*32b71e0eSsevan basic_machine=powerpc-ibm 546*32b71e0eSsevan os=-cnk 547*32b71e0eSsevan ;; 548*32b71e0eSsevan c54x-*) 549*32b71e0eSsevan basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` 550*32b71e0eSsevan ;; 551*32b71e0eSsevan c55x-*) 552*32b71e0eSsevan basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` 553*32b71e0eSsevan ;; 554*32b71e0eSsevan c6x-*) 555*32b71e0eSsevan basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` 556*32b71e0eSsevan ;; 55710dd2532Schristos c90) 55810dd2532Schristos basic_machine=c90-cray 55910dd2532Schristos os=-unicos 56010dd2532Schristos ;; 561*32b71e0eSsevan cegcc) 562*32b71e0eSsevan basic_machine=arm-unknown 563*32b71e0eSsevan os=-cegcc 564*32b71e0eSsevan ;; 56510dd2532Schristos convex-c1) 56610dd2532Schristos basic_machine=c1-convex 56710dd2532Schristos os=-bsd 56810dd2532Schristos ;; 56910dd2532Schristos convex-c2) 57010dd2532Schristos basic_machine=c2-convex 57110dd2532Schristos os=-bsd 57210dd2532Schristos ;; 57310dd2532Schristos convex-c32) 57410dd2532Schristos basic_machine=c32-convex 57510dd2532Schristos os=-bsd 57610dd2532Schristos ;; 57710dd2532Schristos convex-c34) 57810dd2532Schristos basic_machine=c34-convex 57910dd2532Schristos os=-bsd 58010dd2532Schristos ;; 58110dd2532Schristos convex-c38) 58210dd2532Schristos basic_machine=c38-convex 58310dd2532Schristos os=-bsd 58410dd2532Schristos ;; 58510dd2532Schristos cray | j90) 58610dd2532Schristos basic_machine=j90-cray 58710dd2532Schristos os=-unicos 58810dd2532Schristos ;; 589*32b71e0eSsevan craynv) 590*32b71e0eSsevan basic_machine=craynv-cray 591*32b71e0eSsevan os=-unicosmp 592*32b71e0eSsevan ;; 593*32b71e0eSsevan cr16 | cr16-*) 594*32b71e0eSsevan basic_machine=cr16-unknown 595*32b71e0eSsevan os=-elf 596*32b71e0eSsevan ;; 59710dd2532Schristos crds | unos) 59810dd2532Schristos basic_machine=m68k-crds 59910dd2532Schristos ;; 600*32b71e0eSsevan crisv32 | crisv32-* | etraxfs*) 601*32b71e0eSsevan basic_machine=crisv32-axis 602*32b71e0eSsevan ;; 60310dd2532Schristos cris | cris-* | etrax*) 60410dd2532Schristos basic_machine=cris-axis 60510dd2532Schristos ;; 606*32b71e0eSsevan crx) 607*32b71e0eSsevan basic_machine=crx-unknown 608*32b71e0eSsevan os=-elf 609*32b71e0eSsevan ;; 61010dd2532Schristos da30 | da30-*) 61110dd2532Schristos basic_machine=m68k-da30 61210dd2532Schristos ;; 61310dd2532Schristos decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) 61410dd2532Schristos basic_machine=mips-dec 61510dd2532Schristos ;; 61610dd2532Schristos decsystem10* | dec10*) 61710dd2532Schristos basic_machine=pdp10-dec 61810dd2532Schristos os=-tops10 61910dd2532Schristos ;; 62010dd2532Schristos decsystem20* | dec20*) 62110dd2532Schristos basic_machine=pdp10-dec 62210dd2532Schristos os=-tops20 62310dd2532Schristos ;; 62410dd2532Schristos delta | 3300 | motorola-3300 | motorola-delta \ 62510dd2532Schristos | 3300-motorola | delta-motorola) 62610dd2532Schristos basic_machine=m68k-motorola 62710dd2532Schristos ;; 62810dd2532Schristos delta88) 62910dd2532Schristos basic_machine=m88k-motorola 63010dd2532Schristos os=-sysv3 63110dd2532Schristos ;; 632*32b71e0eSsevan dicos) 633*32b71e0eSsevan basic_machine=i686-pc 634*32b71e0eSsevan os=-dicos 635*32b71e0eSsevan ;; 636*32b71e0eSsevan djgpp) 637*32b71e0eSsevan basic_machine=i586-pc 638*32b71e0eSsevan os=-msdosdjgpp 639*32b71e0eSsevan ;; 64010dd2532Schristos dpx20 | dpx20-*) 64110dd2532Schristos basic_machine=rs6000-bull 64210dd2532Schristos os=-bosx 64310dd2532Schristos ;; 64410dd2532Schristos dpx2* | dpx2*-bull) 64510dd2532Schristos basic_machine=m68k-bull 64610dd2532Schristos os=-sysv3 64710dd2532Schristos ;; 648*32b71e0eSsevan e500v[12]) 649*32b71e0eSsevan basic_machine=powerpc-unknown 650*32b71e0eSsevan os=$os"spe" 651*32b71e0eSsevan ;; 652*32b71e0eSsevan e500v[12]-*) 653*32b71e0eSsevan basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` 654*32b71e0eSsevan os=$os"spe" 655*32b71e0eSsevan ;; 65610dd2532Schristos ebmon29k) 65710dd2532Schristos basic_machine=a29k-amd 65810dd2532Schristos os=-ebmon 65910dd2532Schristos ;; 66010dd2532Schristos elxsi) 66110dd2532Schristos basic_machine=elxsi-elxsi 66210dd2532Schristos os=-bsd 66310dd2532Schristos ;; 66410dd2532Schristos encore | umax | mmax) 66510dd2532Schristos basic_machine=ns32k-encore 66610dd2532Schristos ;; 66710dd2532Schristos es1800 | OSE68k | ose68k | ose | OSE) 66810dd2532Schristos basic_machine=m68k-ericsson 66910dd2532Schristos os=-ose 67010dd2532Schristos ;; 67110dd2532Schristos fx2800) 67210dd2532Schristos basic_machine=i860-alliant 67310dd2532Schristos ;; 67410dd2532Schristos genix) 67510dd2532Schristos basic_machine=ns32k-ns 67610dd2532Schristos ;; 67710dd2532Schristos gmicro) 67810dd2532Schristos basic_machine=tron-gmicro 67910dd2532Schristos os=-sysv 68010dd2532Schristos ;; 68110dd2532Schristos go32) 68210dd2532Schristos basic_machine=i386-pc 68310dd2532Schristos os=-go32 68410dd2532Schristos ;; 68510dd2532Schristos h3050r* | hiux*) 68610dd2532Schristos basic_machine=hppa1.1-hitachi 68710dd2532Schristos os=-hiuxwe2 68810dd2532Schristos ;; 68910dd2532Schristos h8300hms) 69010dd2532Schristos basic_machine=h8300-hitachi 69110dd2532Schristos os=-hms 69210dd2532Schristos ;; 69310dd2532Schristos h8300xray) 69410dd2532Schristos basic_machine=h8300-hitachi 69510dd2532Schristos os=-xray 69610dd2532Schristos ;; 69710dd2532Schristos h8500hms) 69810dd2532Schristos basic_machine=h8500-hitachi 69910dd2532Schristos os=-hms 70010dd2532Schristos ;; 70110dd2532Schristos harris) 70210dd2532Schristos basic_machine=m88k-harris 70310dd2532Schristos os=-sysv3 70410dd2532Schristos ;; 70510dd2532Schristos hp300-*) 70610dd2532Schristos basic_machine=m68k-hp 70710dd2532Schristos ;; 70810dd2532Schristos hp300bsd) 70910dd2532Schristos basic_machine=m68k-hp 71010dd2532Schristos os=-bsd 71110dd2532Schristos ;; 71210dd2532Schristos hp300hpux) 71310dd2532Schristos basic_machine=m68k-hp 71410dd2532Schristos os=-hpux 71510dd2532Schristos ;; 71610dd2532Schristos hp3k9[0-9][0-9] | hp9[0-9][0-9]) 71710dd2532Schristos basic_machine=hppa1.0-hp 71810dd2532Schristos ;; 71910dd2532Schristos hp9k2[0-9][0-9] | hp9k31[0-9]) 72010dd2532Schristos basic_machine=m68000-hp 72110dd2532Schristos ;; 72210dd2532Schristos hp9k3[2-9][0-9]) 72310dd2532Schristos basic_machine=m68k-hp 72410dd2532Schristos ;; 72510dd2532Schristos hp9k6[0-9][0-9] | hp6[0-9][0-9]) 72610dd2532Schristos basic_machine=hppa1.0-hp 72710dd2532Schristos ;; 72810dd2532Schristos hp9k7[0-79][0-9] | hp7[0-79][0-9]) 72910dd2532Schristos basic_machine=hppa1.1-hp 73010dd2532Schristos ;; 73110dd2532Schristos hp9k78[0-9] | hp78[0-9]) 73210dd2532Schristos # FIXME: really hppa2.0-hp 73310dd2532Schristos basic_machine=hppa1.1-hp 73410dd2532Schristos ;; 73510dd2532Schristos hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 73610dd2532Schristos # FIXME: really hppa2.0-hp 73710dd2532Schristos basic_machine=hppa1.1-hp 73810dd2532Schristos ;; 73910dd2532Schristos hp9k8[0-9][13679] | hp8[0-9][13679]) 74010dd2532Schristos basic_machine=hppa1.1-hp 74110dd2532Schristos ;; 74210dd2532Schristos hp9k8[0-9][0-9] | hp8[0-9][0-9]) 74310dd2532Schristos basic_machine=hppa1.0-hp 74410dd2532Schristos ;; 74510dd2532Schristos hppa-next) 74610dd2532Schristos os=-nextstep3 74710dd2532Schristos ;; 74810dd2532Schristos hppaosf) 74910dd2532Schristos basic_machine=hppa1.1-hp 75010dd2532Schristos os=-osf 75110dd2532Schristos ;; 75210dd2532Schristos hppro) 75310dd2532Schristos basic_machine=hppa1.1-hp 75410dd2532Schristos os=-proelf 75510dd2532Schristos ;; 75610dd2532Schristos i370-ibm* | ibm*) 75710dd2532Schristos basic_machine=i370-ibm 75810dd2532Schristos ;; 75910dd2532Schristos i*86v32) 76010dd2532Schristos basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 76110dd2532Schristos os=-sysv32 76210dd2532Schristos ;; 76310dd2532Schristos i*86v4*) 76410dd2532Schristos basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 76510dd2532Schristos os=-sysv4 76610dd2532Schristos ;; 76710dd2532Schristos i*86v) 76810dd2532Schristos basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 76910dd2532Schristos os=-sysv 77010dd2532Schristos ;; 77110dd2532Schristos i*86sol2) 77210dd2532Schristos basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 77310dd2532Schristos os=-solaris2 77410dd2532Schristos ;; 77510dd2532Schristos i386mach) 77610dd2532Schristos basic_machine=i386-mach 77710dd2532Schristos os=-mach 77810dd2532Schristos ;; 77910dd2532Schristos i386-vsta | vsta) 78010dd2532Schristos basic_machine=i386-unknown 78110dd2532Schristos os=-vsta 78210dd2532Schristos ;; 78310dd2532Schristos iris | iris4d) 78410dd2532Schristos basic_machine=mips-sgi 78510dd2532Schristos case $os in 78610dd2532Schristos -irix*) 78710dd2532Schristos ;; 78810dd2532Schristos *) 78910dd2532Schristos os=-irix4 79010dd2532Schristos ;; 79110dd2532Schristos esac 79210dd2532Schristos ;; 79310dd2532Schristos isi68 | isi) 79410dd2532Schristos basic_machine=m68k-isi 79510dd2532Schristos os=-sysv 79610dd2532Schristos ;; 797*32b71e0eSsevan leon-*|leon[3-9]-*) 798*32b71e0eSsevan basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` 799*32b71e0eSsevan ;; 800*32b71e0eSsevan m68knommu) 801*32b71e0eSsevan basic_machine=m68k-unknown 802*32b71e0eSsevan os=-linux 803*32b71e0eSsevan ;; 804*32b71e0eSsevan m68knommu-*) 805*32b71e0eSsevan basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` 806*32b71e0eSsevan os=-linux 807*32b71e0eSsevan ;; 80810dd2532Schristos m88k-omron*) 80910dd2532Schristos basic_machine=m88k-omron 81010dd2532Schristos ;; 81110dd2532Schristos magnum | m3230) 81210dd2532Schristos basic_machine=mips-mips 81310dd2532Schristos os=-sysv 81410dd2532Schristos ;; 81510dd2532Schristos merlin) 81610dd2532Schristos basic_machine=ns32k-utek 81710dd2532Schristos os=-sysv 81810dd2532Schristos ;; 819*32b71e0eSsevan microblaze*) 820*32b71e0eSsevan basic_machine=microblaze-xilinx 821*32b71e0eSsevan ;; 822*32b71e0eSsevan mingw64) 823*32b71e0eSsevan basic_machine=x86_64-pc 824*32b71e0eSsevan os=-mingw64 825*32b71e0eSsevan ;; 82610dd2532Schristos mingw32) 827*32b71e0eSsevan basic_machine=i686-pc 82810dd2532Schristos os=-mingw32 82910dd2532Schristos ;; 830*32b71e0eSsevan mingw32ce) 831*32b71e0eSsevan basic_machine=arm-unknown 832*32b71e0eSsevan os=-mingw32ce 833*32b71e0eSsevan ;; 83410dd2532Schristos miniframe) 83510dd2532Schristos basic_machine=m68000-convergent 83610dd2532Schristos ;; 83710dd2532Schristos *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) 83810dd2532Schristos basic_machine=m68k-atari 83910dd2532Schristos os=-mint 84010dd2532Schristos ;; 84110dd2532Schristos mips3*-*) 84210dd2532Schristos basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` 84310dd2532Schristos ;; 84410dd2532Schristos mips3*) 84510dd2532Schristos basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown 84610dd2532Schristos ;; 84710dd2532Schristos monitor) 84810dd2532Schristos basic_machine=m68k-rom68k 84910dd2532Schristos os=-coff 85010dd2532Schristos ;; 85110dd2532Schristos morphos) 85210dd2532Schristos basic_machine=powerpc-unknown 85310dd2532Schristos os=-morphos 85410dd2532Schristos ;; 855*32b71e0eSsevan moxiebox) 856*32b71e0eSsevan basic_machine=moxie-unknown 857*32b71e0eSsevan os=-moxiebox 858*32b71e0eSsevan ;; 85910dd2532Schristos msdos) 86010dd2532Schristos basic_machine=i386-pc 86110dd2532Schristos os=-msdos 86210dd2532Schristos ;; 863*32b71e0eSsevan ms1-*) 864*32b71e0eSsevan basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` 865*32b71e0eSsevan ;; 866*32b71e0eSsevan msys) 867*32b71e0eSsevan basic_machine=i686-pc 868*32b71e0eSsevan os=-msys 869*32b71e0eSsevan ;; 87010dd2532Schristos mvs) 87110dd2532Schristos basic_machine=i370-ibm 87210dd2532Schristos os=-mvs 87310dd2532Schristos ;; 874*32b71e0eSsevan nacl) 875*32b71e0eSsevan basic_machine=le32-unknown 876*32b71e0eSsevan os=-nacl 877*32b71e0eSsevan ;; 87810dd2532Schristos ncr3000) 87910dd2532Schristos basic_machine=i486-ncr 88010dd2532Schristos os=-sysv4 88110dd2532Schristos ;; 88210dd2532Schristos netbsd386) 88310dd2532Schristos basic_machine=i386-unknown 88410dd2532Schristos os=-netbsd 88510dd2532Schristos ;; 88610dd2532Schristos netwinder) 88710dd2532Schristos basic_machine=armv4l-rebel 88810dd2532Schristos os=-linux 88910dd2532Schristos ;; 89010dd2532Schristos news | news700 | news800 | news900) 89110dd2532Schristos basic_machine=m68k-sony 89210dd2532Schristos os=-newsos 89310dd2532Schristos ;; 89410dd2532Schristos news1000) 89510dd2532Schristos basic_machine=m68030-sony 89610dd2532Schristos os=-newsos 89710dd2532Schristos ;; 89810dd2532Schristos news-3600 | risc-news) 89910dd2532Schristos basic_machine=mips-sony 90010dd2532Schristos os=-newsos 90110dd2532Schristos ;; 90210dd2532Schristos necv70) 90310dd2532Schristos basic_machine=v70-nec 90410dd2532Schristos os=-sysv 90510dd2532Schristos ;; 90610dd2532Schristos next | m*-next ) 90710dd2532Schristos basic_machine=m68k-next 90810dd2532Schristos case $os in 90910dd2532Schristos -nextstep* ) 91010dd2532Schristos ;; 91110dd2532Schristos -ns2*) 91210dd2532Schristos os=-nextstep2 91310dd2532Schristos ;; 91410dd2532Schristos *) 91510dd2532Schristos os=-nextstep3 91610dd2532Schristos ;; 91710dd2532Schristos esac 91810dd2532Schristos ;; 91910dd2532Schristos nh3000) 92010dd2532Schristos basic_machine=m68k-harris 92110dd2532Schristos os=-cxux 92210dd2532Schristos ;; 92310dd2532Schristos nh[45]000) 92410dd2532Schristos basic_machine=m88k-harris 92510dd2532Schristos os=-cxux 92610dd2532Schristos ;; 92710dd2532Schristos nindy960) 92810dd2532Schristos basic_machine=i960-intel 92910dd2532Schristos os=-nindy 93010dd2532Schristos ;; 93110dd2532Schristos mon960) 93210dd2532Schristos basic_machine=i960-intel 93310dd2532Schristos os=-mon960 93410dd2532Schristos ;; 93510dd2532Schristos nonstopux) 93610dd2532Schristos basic_machine=mips-compaq 93710dd2532Schristos os=-nonstopux 93810dd2532Schristos ;; 93910dd2532Schristos np1) 94010dd2532Schristos basic_machine=np1-gould 94110dd2532Schristos ;; 942*32b71e0eSsevan neo-tandem) 943*32b71e0eSsevan basic_machine=neo-tandem 944*32b71e0eSsevan ;; 945*32b71e0eSsevan nse-tandem) 946*32b71e0eSsevan basic_machine=nse-tandem 94710dd2532Schristos ;; 94810dd2532Schristos nsr-tandem) 94910dd2532Schristos basic_machine=nsr-tandem 95010dd2532Schristos ;; 95110dd2532Schristos op50n-* | op60c-*) 95210dd2532Schristos basic_machine=hppa1.1-oki 95310dd2532Schristos os=-proelf 95410dd2532Schristos ;; 955*32b71e0eSsevan openrisc | openrisc-*) 95610dd2532Schristos basic_machine=or32-unknown 957*32b71e0eSsevan ;; 958*32b71e0eSsevan os400) 959*32b71e0eSsevan basic_machine=powerpc-ibm 960*32b71e0eSsevan os=-os400 96110dd2532Schristos ;; 96210dd2532Schristos OSE68000 | ose68000) 96310dd2532Schristos basic_machine=m68000-ericsson 96410dd2532Schristos os=-ose 96510dd2532Schristos ;; 96610dd2532Schristos os68k) 96710dd2532Schristos basic_machine=m68k-none 96810dd2532Schristos os=-os68k 96910dd2532Schristos ;; 97010dd2532Schristos pa-hitachi) 97110dd2532Schristos basic_machine=hppa1.1-hitachi 97210dd2532Schristos os=-hiuxwe2 97310dd2532Schristos ;; 97410dd2532Schristos paragon) 97510dd2532Schristos basic_machine=i860-intel 97610dd2532Schristos os=-osf 97710dd2532Schristos ;; 978*32b71e0eSsevan parisc) 979*32b71e0eSsevan basic_machine=hppa-unknown 980*32b71e0eSsevan os=-linux 981*32b71e0eSsevan ;; 982*32b71e0eSsevan parisc-*) 983*32b71e0eSsevan basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` 984*32b71e0eSsevan os=-linux 985*32b71e0eSsevan ;; 98610dd2532Schristos pbd) 98710dd2532Schristos basic_machine=sparc-tti 98810dd2532Schristos ;; 98910dd2532Schristos pbb) 99010dd2532Schristos basic_machine=m68k-tti 99110dd2532Schristos ;; 99210dd2532Schristos pc532 | pc532-*) 99310dd2532Schristos basic_machine=ns32k-pc532 99410dd2532Schristos ;; 995*32b71e0eSsevan pc98) 996*32b71e0eSsevan basic_machine=i386-pc 997*32b71e0eSsevan ;; 998*32b71e0eSsevan pc98-*) 999*32b71e0eSsevan basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` 1000*32b71e0eSsevan ;; 100110dd2532Schristos pentium | p5 | k5 | k6 | nexgen | viac3) 100210dd2532Schristos basic_machine=i586-pc 100310dd2532Schristos ;; 100410dd2532Schristos pentiumpro | p6 | 6x86 | athlon | athlon_*) 100510dd2532Schristos basic_machine=i686-pc 100610dd2532Schristos ;; 100710dd2532Schristos pentiumii | pentium2 | pentiumiii | pentium3) 100810dd2532Schristos basic_machine=i686-pc 100910dd2532Schristos ;; 101010dd2532Schristos pentium4) 101110dd2532Schristos basic_machine=i786-pc 101210dd2532Schristos ;; 101310dd2532Schristos pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 101410dd2532Schristos basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` 101510dd2532Schristos ;; 101610dd2532Schristos pentiumpro-* | p6-* | 6x86-* | athlon-*) 101710dd2532Schristos basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` 101810dd2532Schristos ;; 101910dd2532Schristos pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 102010dd2532Schristos basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` 102110dd2532Schristos ;; 102210dd2532Schristos pentium4-*) 102310dd2532Schristos basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` 102410dd2532Schristos ;; 102510dd2532Schristos pn) 102610dd2532Schristos basic_machine=pn-gould 102710dd2532Schristos ;; 102810dd2532Schristos power) basic_machine=power-ibm 102910dd2532Schristos ;; 1030*32b71e0eSsevan ppc | ppcbe) basic_machine=powerpc-unknown 103110dd2532Schristos ;; 1032*32b71e0eSsevan ppc-* | ppcbe-*) 1033*32b71e0eSsevan basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` 103410dd2532Schristos ;; 1035*32b71e0eSsevan ppcle | powerpclittle) 103610dd2532Schristos basic_machine=powerpcle-unknown 103710dd2532Schristos ;; 103810dd2532Schristos ppcle-* | powerpclittle-*) 103910dd2532Schristos basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` 104010dd2532Schristos ;; 104110dd2532Schristos ppc64) basic_machine=powerpc64-unknown 104210dd2532Schristos ;; 104310dd2532Schristos ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` 104410dd2532Schristos ;; 1045*32b71e0eSsevan ppc64le | powerpc64little) 104610dd2532Schristos basic_machine=powerpc64le-unknown 104710dd2532Schristos ;; 104810dd2532Schristos ppc64le-* | powerpc64little-*) 104910dd2532Schristos basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` 105010dd2532Schristos ;; 105110dd2532Schristos ps2) 105210dd2532Schristos basic_machine=i386-ibm 105310dd2532Schristos ;; 105410dd2532Schristos pw32) 105510dd2532Schristos basic_machine=i586-unknown 105610dd2532Schristos os=-pw32 105710dd2532Schristos ;; 1058*32b71e0eSsevan rdos | rdos64) 1059*32b71e0eSsevan basic_machine=x86_64-pc 1060*32b71e0eSsevan os=-rdos 1061*32b71e0eSsevan ;; 1062*32b71e0eSsevan rdos32) 1063*32b71e0eSsevan basic_machine=i386-pc 1064*32b71e0eSsevan os=-rdos 1065*32b71e0eSsevan ;; 106610dd2532Schristos rom68k) 106710dd2532Schristos basic_machine=m68k-rom68k 106810dd2532Schristos os=-coff 106910dd2532Schristos ;; 107010dd2532Schristos rm[46]00) 107110dd2532Schristos basic_machine=mips-siemens 107210dd2532Schristos ;; 107310dd2532Schristos rtpc | rtpc-*) 107410dd2532Schristos basic_machine=romp-ibm 107510dd2532Schristos ;; 107610dd2532Schristos s390 | s390-*) 107710dd2532Schristos basic_machine=s390-ibm 107810dd2532Schristos ;; 107910dd2532Schristos s390x | s390x-*) 108010dd2532Schristos basic_machine=s390x-ibm 108110dd2532Schristos ;; 108210dd2532Schristos sa29200) 108310dd2532Schristos basic_machine=a29k-amd 108410dd2532Schristos os=-udi 108510dd2532Schristos ;; 108610dd2532Schristos sb1) 108710dd2532Schristos basic_machine=mipsisa64sb1-unknown 108810dd2532Schristos ;; 108910dd2532Schristos sb1el) 109010dd2532Schristos basic_machine=mipsisa64sb1el-unknown 109110dd2532Schristos ;; 1092*32b71e0eSsevan sde) 1093*32b71e0eSsevan basic_machine=mipsisa32-sde 1094*32b71e0eSsevan os=-elf 1095*32b71e0eSsevan ;; 109610dd2532Schristos sei) 109710dd2532Schristos basic_machine=mips-sei 109810dd2532Schristos os=-seiux 109910dd2532Schristos ;; 110010dd2532Schristos sequent) 110110dd2532Schristos basic_machine=i386-sequent 110210dd2532Schristos ;; 110310dd2532Schristos sh) 110410dd2532Schristos basic_machine=sh-hitachi 110510dd2532Schristos os=-hms 110610dd2532Schristos ;; 1107*32b71e0eSsevan sh5el) 1108*32b71e0eSsevan basic_machine=sh5le-unknown 1109*32b71e0eSsevan ;; 111010dd2532Schristos sh64) 111110dd2532Schristos basic_machine=sh64-unknown 111210dd2532Schristos ;; 111310dd2532Schristos sparclite-wrs | simso-wrs) 111410dd2532Schristos basic_machine=sparclite-wrs 111510dd2532Schristos os=-vxworks 111610dd2532Schristos ;; 111710dd2532Schristos sps7) 111810dd2532Schristos basic_machine=m68k-bull 111910dd2532Schristos os=-sysv2 112010dd2532Schristos ;; 112110dd2532Schristos spur) 112210dd2532Schristos basic_machine=spur-unknown 112310dd2532Schristos ;; 112410dd2532Schristos st2000) 112510dd2532Schristos basic_machine=m68k-tandem 112610dd2532Schristos ;; 112710dd2532Schristos stratus) 112810dd2532Schristos basic_machine=i860-stratus 112910dd2532Schristos os=-sysv4 113010dd2532Schristos ;; 1131*32b71e0eSsevan strongarm-* | thumb-*) 1132*32b71e0eSsevan basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` 1133*32b71e0eSsevan ;; 113410dd2532Schristos sun2) 113510dd2532Schristos basic_machine=m68000-sun 113610dd2532Schristos ;; 113710dd2532Schristos sun2os3) 113810dd2532Schristos basic_machine=m68000-sun 113910dd2532Schristos os=-sunos3 114010dd2532Schristos ;; 114110dd2532Schristos sun2os4) 114210dd2532Schristos basic_machine=m68000-sun 114310dd2532Schristos os=-sunos4 114410dd2532Schristos ;; 114510dd2532Schristos sun3os3) 114610dd2532Schristos basic_machine=m68k-sun 114710dd2532Schristos os=-sunos3 114810dd2532Schristos ;; 114910dd2532Schristos sun3os4) 115010dd2532Schristos basic_machine=m68k-sun 115110dd2532Schristos os=-sunos4 115210dd2532Schristos ;; 115310dd2532Schristos sun4os3) 115410dd2532Schristos basic_machine=sparc-sun 115510dd2532Schristos os=-sunos3 115610dd2532Schristos ;; 115710dd2532Schristos sun4os4) 115810dd2532Schristos basic_machine=sparc-sun 115910dd2532Schristos os=-sunos4 116010dd2532Schristos ;; 116110dd2532Schristos sun4sol2) 116210dd2532Schristos basic_machine=sparc-sun 116310dd2532Schristos os=-solaris2 116410dd2532Schristos ;; 116510dd2532Schristos sun3 | sun3-*) 116610dd2532Schristos basic_machine=m68k-sun 116710dd2532Schristos ;; 116810dd2532Schristos sun4) 116910dd2532Schristos basic_machine=sparc-sun 117010dd2532Schristos ;; 117110dd2532Schristos sun386 | sun386i | roadrunner) 117210dd2532Schristos basic_machine=i386-sun 117310dd2532Schristos ;; 117410dd2532Schristos sv1) 117510dd2532Schristos basic_machine=sv1-cray 117610dd2532Schristos os=-unicos 117710dd2532Schristos ;; 117810dd2532Schristos symmetry) 117910dd2532Schristos basic_machine=i386-sequent 118010dd2532Schristos os=-dynix 118110dd2532Schristos ;; 118210dd2532Schristos t3e) 118310dd2532Schristos basic_machine=alphaev5-cray 118410dd2532Schristos os=-unicos 118510dd2532Schristos ;; 118610dd2532Schristos t90) 118710dd2532Schristos basic_machine=t90-cray 118810dd2532Schristos os=-unicos 118910dd2532Schristos ;; 1190*32b71e0eSsevan tile*) 1191*32b71e0eSsevan basic_machine=$basic_machine-unknown 1192*32b71e0eSsevan os=-linux-gnu 119310dd2532Schristos ;; 119410dd2532Schristos tx39) 119510dd2532Schristos basic_machine=mipstx39-unknown 119610dd2532Schristos ;; 119710dd2532Schristos tx39el) 119810dd2532Schristos basic_machine=mipstx39el-unknown 119910dd2532Schristos ;; 120010dd2532Schristos toad1) 120110dd2532Schristos basic_machine=pdp10-xkl 120210dd2532Schristos os=-tops20 120310dd2532Schristos ;; 120410dd2532Schristos tower | tower-32) 120510dd2532Schristos basic_machine=m68k-ncr 120610dd2532Schristos ;; 1207*32b71e0eSsevan tpf) 1208*32b71e0eSsevan basic_machine=s390x-ibm 1209*32b71e0eSsevan os=-tpf 1210*32b71e0eSsevan ;; 121110dd2532Schristos udi29k) 121210dd2532Schristos basic_machine=a29k-amd 121310dd2532Schristos os=-udi 121410dd2532Schristos ;; 121510dd2532Schristos ultra3) 121610dd2532Schristos basic_machine=a29k-nyu 121710dd2532Schristos os=-sym1 121810dd2532Schristos ;; 121910dd2532Schristos v810 | necv810) 122010dd2532Schristos basic_machine=v810-nec 122110dd2532Schristos os=-none 122210dd2532Schristos ;; 122310dd2532Schristos vaxv) 122410dd2532Schristos basic_machine=vax-dec 122510dd2532Schristos os=-sysv 122610dd2532Schristos ;; 122710dd2532Schristos vms) 122810dd2532Schristos basic_machine=vax-dec 122910dd2532Schristos os=-vms 123010dd2532Schristos ;; 123110dd2532Schristos vpp*|vx|vx-*) 123210dd2532Schristos basic_machine=f301-fujitsu 123310dd2532Schristos ;; 123410dd2532Schristos vxworks960) 123510dd2532Schristos basic_machine=i960-wrs 123610dd2532Schristos os=-vxworks 123710dd2532Schristos ;; 123810dd2532Schristos vxworks68) 123910dd2532Schristos basic_machine=m68k-wrs 124010dd2532Schristos os=-vxworks 124110dd2532Schristos ;; 124210dd2532Schristos vxworks29k) 124310dd2532Schristos basic_machine=a29k-wrs 124410dd2532Schristos os=-vxworks 124510dd2532Schristos ;; 124610dd2532Schristos w65*) 124710dd2532Schristos basic_machine=w65-wdc 124810dd2532Schristos os=-none 124910dd2532Schristos ;; 125010dd2532Schristos w89k-*) 125110dd2532Schristos basic_machine=hppa1.1-winbond 125210dd2532Schristos os=-proelf 125310dd2532Schristos ;; 1254*32b71e0eSsevan xbox) 1255*32b71e0eSsevan basic_machine=i686-pc 1256*32b71e0eSsevan os=-mingw32 1257*32b71e0eSsevan ;; 125810dd2532Schristos xps | xps100) 125910dd2532Schristos basic_machine=xps100-honeywell 126010dd2532Schristos ;; 1261*32b71e0eSsevan xscale-* | xscalee[bl]-*) 1262*32b71e0eSsevan basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` 1263*32b71e0eSsevan ;; 126410dd2532Schristos ymp) 126510dd2532Schristos basic_machine=ymp-cray 126610dd2532Schristos os=-unicos 126710dd2532Schristos ;; 126810dd2532Schristos z8k-*-coff) 126910dd2532Schristos basic_machine=z8k-unknown 127010dd2532Schristos os=-sim 127110dd2532Schristos ;; 1272*32b71e0eSsevan z80-*-coff) 1273*32b71e0eSsevan basic_machine=z80-unknown 1274*32b71e0eSsevan os=-sim 1275*32b71e0eSsevan ;; 127610dd2532Schristos none) 127710dd2532Schristos basic_machine=none-none 127810dd2532Schristos os=-none 127910dd2532Schristos ;; 128010dd2532Schristos 128110dd2532Schristos# Here we handle the default manufacturer of certain CPU types. It is in 128210dd2532Schristos# some cases the only manufacturer, in others, it is the most popular. 128310dd2532Schristos w89k) 128410dd2532Schristos basic_machine=hppa1.1-winbond 128510dd2532Schristos ;; 128610dd2532Schristos op50n) 128710dd2532Schristos basic_machine=hppa1.1-oki 128810dd2532Schristos ;; 128910dd2532Schristos op60c) 129010dd2532Schristos basic_machine=hppa1.1-oki 129110dd2532Schristos ;; 129210dd2532Schristos romp) 129310dd2532Schristos basic_machine=romp-ibm 129410dd2532Schristos ;; 1295*32b71e0eSsevan mmix) 1296*32b71e0eSsevan basic_machine=mmix-knuth 1297*32b71e0eSsevan ;; 129810dd2532Schristos rs6000) 129910dd2532Schristos basic_machine=rs6000-ibm 130010dd2532Schristos ;; 130110dd2532Schristos vax) 130210dd2532Schristos basic_machine=vax-dec 130310dd2532Schristos ;; 130410dd2532Schristos pdp10) 130510dd2532Schristos # there are many clones, so DEC is not a safe bet 130610dd2532Schristos basic_machine=pdp10-unknown 130710dd2532Schristos ;; 130810dd2532Schristos pdp11) 130910dd2532Schristos basic_machine=pdp11-dec 131010dd2532Schristos ;; 131110dd2532Schristos we32k) 131210dd2532Schristos basic_machine=we32k-att 131310dd2532Schristos ;; 1314*32b71e0eSsevan sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) 131510dd2532Schristos basic_machine=sh-unknown 131610dd2532Schristos ;; 1317*32b71e0eSsevan sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) 131810dd2532Schristos basic_machine=sparc-sun 131910dd2532Schristos ;; 132010dd2532Schristos cydra) 132110dd2532Schristos basic_machine=cydra-cydrome 132210dd2532Schristos ;; 132310dd2532Schristos orion) 132410dd2532Schristos basic_machine=orion-highlevel 132510dd2532Schristos ;; 132610dd2532Schristos orion105) 132710dd2532Schristos basic_machine=clipper-highlevel 132810dd2532Schristos ;; 132910dd2532Schristos mac | mpw | mac-mpw) 133010dd2532Schristos basic_machine=m68k-apple 133110dd2532Schristos ;; 133210dd2532Schristos pmac | pmac-mpw) 133310dd2532Schristos basic_machine=powerpc-apple 133410dd2532Schristos ;; 133510dd2532Schristos *-unknown) 133610dd2532Schristos # Make sure to match an already-canonicalized machine name. 133710dd2532Schristos ;; 133810dd2532Schristos *) 133910dd2532Schristos echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 134010dd2532Schristos exit 1 134110dd2532Schristos ;; 134210dd2532Schristosesac 134310dd2532Schristos 134410dd2532Schristos# Here we canonicalize certain aliases for manufacturers. 134510dd2532Schristoscase $basic_machine in 134610dd2532Schristos *-digital*) 134710dd2532Schristos basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` 134810dd2532Schristos ;; 134910dd2532Schristos *-commodore*) 135010dd2532Schristos basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` 135110dd2532Schristos ;; 135210dd2532Schristos *) 135310dd2532Schristos ;; 135410dd2532Schristosesac 135510dd2532Schristos 135610dd2532Schristos# Decode manufacturer-specific aliases for certain operating systems. 135710dd2532Schristos 135810dd2532Schristosif [ x"$os" != x"" ] 135910dd2532Schristosthen 136010dd2532Schristoscase $os in 136110dd2532Schristos # First match some system type aliases 136210dd2532Schristos # that might get confused with valid system types. 136310dd2532Schristos # -solaris* is a basic system type, with this one exception. 1364*32b71e0eSsevan -auroraux) 1365*32b71e0eSsevan os=-auroraux 1366*32b71e0eSsevan ;; 136710dd2532Schristos -solaris1 | -solaris1.*) 136810dd2532Schristos os=`echo $os | sed -e 's|solaris1|sunos4|'` 136910dd2532Schristos ;; 137010dd2532Schristos -solaris) 137110dd2532Schristos os=-solaris2 137210dd2532Schristos ;; 137310dd2532Schristos -svr4*) 137410dd2532Schristos os=-sysv4 137510dd2532Schristos ;; 137610dd2532Schristos -unixware*) 137710dd2532Schristos os=-sysv4.2uw 137810dd2532Schristos ;; 137910dd2532Schristos -gnu/linux*) 138010dd2532Schristos os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` 138110dd2532Schristos ;; 138210dd2532Schristos # First accept the basic system types. 138310dd2532Schristos # The portable systems comes first. 138410dd2532Schristos # Each alternative MUST END IN A *, to match a version number. 138510dd2532Schristos # -sysv* is not here because it comes later, after sysvr4. 138610dd2532Schristos -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ 1387*32b71e0eSsevan | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ 1388*32b71e0eSsevan | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ 1389*32b71e0eSsevan | -sym* | -kopensolaris* | -plan9* \ 139010dd2532Schristos | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ 1391*32b71e0eSsevan | -aos* | -aros* | -cloudabi* | -sortix* \ 139210dd2532Schristos | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ 139310dd2532Schristos | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ 1394*32b71e0eSsevan | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ 1395*32b71e0eSsevan | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ 1396*32b71e0eSsevan | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ 1397*32b71e0eSsevan | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ 139810dd2532Schristos | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ 139910dd2532Schristos | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ 1400*32b71e0eSsevan | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ 1401*32b71e0eSsevan | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ 1402*32b71e0eSsevan | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ 1403*32b71e0eSsevan | -linux-newlib* | -linux-musl* | -linux-uclibc* \ 1404*32b71e0eSsevan | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ 140510dd2532Schristos | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ 140610dd2532Schristos | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ 140710dd2532Schristos | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ 140810dd2532Schristos | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ 140910dd2532Schristos | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ 1410*32b71e0eSsevan | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ 1411*32b71e0eSsevan | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ 1412*32b71e0eSsevan | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) 141310dd2532Schristos # Remember, each alternative MUST END IN *, to match a version number. 141410dd2532Schristos ;; 141510dd2532Schristos -qnx*) 141610dd2532Schristos case $basic_machine in 141710dd2532Schristos x86-* | i*86-*) 141810dd2532Schristos ;; 141910dd2532Schristos *) 142010dd2532Schristos os=-nto$os 142110dd2532Schristos ;; 142210dd2532Schristos esac 142310dd2532Schristos ;; 142410dd2532Schristos -nto-qnx*) 142510dd2532Schristos ;; 142610dd2532Schristos -nto*) 142710dd2532Schristos os=`echo $os | sed -e 's|nto|nto-qnx|'` 142810dd2532Schristos ;; 142910dd2532Schristos -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ 1430*32b71e0eSsevan | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ 143110dd2532Schristos | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) 143210dd2532Schristos ;; 143310dd2532Schristos -mac*) 143410dd2532Schristos os=`echo $os | sed -e 's|mac|macos|'` 143510dd2532Schristos ;; 1436*32b71e0eSsevan -linux-dietlibc) 1437*32b71e0eSsevan os=-linux-dietlibc 1438*32b71e0eSsevan ;; 143910dd2532Schristos -linux*) 144010dd2532Schristos os=`echo $os | sed -e 's|linux|linux-gnu|'` 144110dd2532Schristos ;; 144210dd2532Schristos -sunos5*) 144310dd2532Schristos os=`echo $os | sed -e 's|sunos5|solaris2|'` 144410dd2532Schristos ;; 144510dd2532Schristos -sunos6*) 144610dd2532Schristos os=`echo $os | sed -e 's|sunos6|solaris3|'` 144710dd2532Schristos ;; 144810dd2532Schristos -opened*) 144910dd2532Schristos os=-openedition 145010dd2532Schristos ;; 1451*32b71e0eSsevan -os400*) 1452*32b71e0eSsevan os=-os400 1453*32b71e0eSsevan ;; 145410dd2532Schristos -wince*) 145510dd2532Schristos os=-wince 145610dd2532Schristos ;; 145710dd2532Schristos -osfrose*) 145810dd2532Schristos os=-osfrose 145910dd2532Schristos ;; 146010dd2532Schristos -osf*) 146110dd2532Schristos os=-osf 146210dd2532Schristos ;; 146310dd2532Schristos -utek*) 146410dd2532Schristos os=-bsd 146510dd2532Schristos ;; 146610dd2532Schristos -dynix*) 146710dd2532Schristos os=-bsd 146810dd2532Schristos ;; 146910dd2532Schristos -acis*) 147010dd2532Schristos os=-aos 147110dd2532Schristos ;; 147210dd2532Schristos -atheos*) 147310dd2532Schristos os=-atheos 147410dd2532Schristos ;; 1475*32b71e0eSsevan -syllable*) 1476*32b71e0eSsevan os=-syllable 1477*32b71e0eSsevan ;; 147810dd2532Schristos -386bsd) 147910dd2532Schristos os=-bsd 148010dd2532Schristos ;; 148110dd2532Schristos -ctix* | -uts*) 148210dd2532Schristos os=-sysv 148310dd2532Schristos ;; 148410dd2532Schristos -nova*) 148510dd2532Schristos os=-rtmk-nova 148610dd2532Schristos ;; 148710dd2532Schristos -ns2 ) 148810dd2532Schristos os=-nextstep2 148910dd2532Schristos ;; 149010dd2532Schristos -nsk*) 149110dd2532Schristos os=-nsk 149210dd2532Schristos ;; 149310dd2532Schristos # Preserve the version number of sinix5. 149410dd2532Schristos -sinix5.*) 149510dd2532Schristos os=`echo $os | sed -e 's|sinix|sysv|'` 149610dd2532Schristos ;; 149710dd2532Schristos -sinix*) 149810dd2532Schristos os=-sysv4 149910dd2532Schristos ;; 1500*32b71e0eSsevan -tpf*) 1501*32b71e0eSsevan os=-tpf 1502*32b71e0eSsevan ;; 150310dd2532Schristos -triton*) 150410dd2532Schristos os=-sysv3 150510dd2532Schristos ;; 150610dd2532Schristos -oss*) 150710dd2532Schristos os=-sysv3 150810dd2532Schristos ;; 150910dd2532Schristos -svr4) 151010dd2532Schristos os=-sysv4 151110dd2532Schristos ;; 151210dd2532Schristos -svr3) 151310dd2532Schristos os=-sysv3 151410dd2532Schristos ;; 151510dd2532Schristos -sysvr4) 151610dd2532Schristos os=-sysv4 151710dd2532Schristos ;; 151810dd2532Schristos # This must come after -sysvr4. 151910dd2532Schristos -sysv*) 152010dd2532Schristos ;; 152110dd2532Schristos -ose*) 152210dd2532Schristos os=-ose 152310dd2532Schristos ;; 152410dd2532Schristos -es1800*) 152510dd2532Schristos os=-ose 152610dd2532Schristos ;; 152710dd2532Schristos -xenix) 152810dd2532Schristos os=-xenix 152910dd2532Schristos ;; 153010dd2532Schristos -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) 153110dd2532Schristos os=-mint 153210dd2532Schristos ;; 153310dd2532Schristos -aros*) 153410dd2532Schristos os=-aros 153510dd2532Schristos ;; 1536*32b71e0eSsevan -zvmoe) 1537*32b71e0eSsevan os=-zvmoe 1538*32b71e0eSsevan ;; 1539*32b71e0eSsevan -dicos*) 1540*32b71e0eSsevan os=-dicos 1541*32b71e0eSsevan ;; 1542*32b71e0eSsevan -nacl*) 1543*32b71e0eSsevan ;; 1544*32b71e0eSsevan -ios) 154510dd2532Schristos ;; 154610dd2532Schristos -none) 154710dd2532Schristos ;; 154810dd2532Schristos *) 154910dd2532Schristos # Get rid of the `-' at the beginning of $os. 155010dd2532Schristos os=`echo $os | sed 's/[^-]*-//'` 155110dd2532Schristos echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 155210dd2532Schristos exit 1 155310dd2532Schristos ;; 155410dd2532Schristosesac 155510dd2532Schristoselse 155610dd2532Schristos 155710dd2532Schristos# Here we handle the default operating systems that come with various machines. 155810dd2532Schristos# The value should be what the vendor currently ships out the door with their 155910dd2532Schristos# machine or put another way, the most popular os provided with the machine. 156010dd2532Schristos 156110dd2532Schristos# Note that if you're going to try to match "-MANUFACTURER" here (say, 156210dd2532Schristos# "-sun"), then you have to tell the case statement up towards the top 156310dd2532Schristos# that MANUFACTURER isn't an operating system. Otherwise, code above 156410dd2532Schristos# will signal an error saying that MANUFACTURER isn't an operating 156510dd2532Schristos# system, and we'll never get to this point. 156610dd2532Schristos 156710dd2532Schristoscase $basic_machine in 1568*32b71e0eSsevan score-*) 1569*32b71e0eSsevan os=-elf 1570*32b71e0eSsevan ;; 1571*32b71e0eSsevan spu-*) 1572*32b71e0eSsevan os=-elf 1573*32b71e0eSsevan ;; 157410dd2532Schristos *-acorn) 157510dd2532Schristos os=-riscix1.2 157610dd2532Schristos ;; 157710dd2532Schristos arm*-rebel) 157810dd2532Schristos os=-linux 157910dd2532Schristos ;; 158010dd2532Schristos arm*-semi) 158110dd2532Schristos os=-aout 158210dd2532Schristos ;; 158310dd2532Schristos c4x-* | tic4x-*) 158410dd2532Schristos os=-coff 158510dd2532Schristos ;; 1586*32b71e0eSsevan c8051-*) 1587*32b71e0eSsevan os=-elf 1588*32b71e0eSsevan ;; 1589*32b71e0eSsevan hexagon-*) 1590*32b71e0eSsevan os=-elf 1591*32b71e0eSsevan ;; 1592*32b71e0eSsevan tic54x-*) 1593*32b71e0eSsevan os=-coff 1594*32b71e0eSsevan ;; 1595*32b71e0eSsevan tic55x-*) 1596*32b71e0eSsevan os=-coff 1597*32b71e0eSsevan ;; 1598*32b71e0eSsevan tic6x-*) 1599*32b71e0eSsevan os=-coff 1600*32b71e0eSsevan ;; 160110dd2532Schristos # This must come before the *-dec entry. 160210dd2532Schristos pdp10-*) 160310dd2532Schristos os=-tops20 160410dd2532Schristos ;; 160510dd2532Schristos pdp11-*) 160610dd2532Schristos os=-none 160710dd2532Schristos ;; 160810dd2532Schristos *-dec | vax-*) 160910dd2532Schristos os=-ultrix4.2 161010dd2532Schristos ;; 161110dd2532Schristos m68*-apollo) 161210dd2532Schristos os=-domain 161310dd2532Schristos ;; 161410dd2532Schristos i386-sun) 161510dd2532Schristos os=-sunos4.0.2 161610dd2532Schristos ;; 161710dd2532Schristos m68000-sun) 161810dd2532Schristos os=-sunos3 161910dd2532Schristos ;; 162010dd2532Schristos m68*-cisco) 162110dd2532Schristos os=-aout 162210dd2532Schristos ;; 1623*32b71e0eSsevan mep-*) 1624*32b71e0eSsevan os=-elf 1625*32b71e0eSsevan ;; 162610dd2532Schristos mips*-cisco) 162710dd2532Schristos os=-elf 162810dd2532Schristos ;; 162910dd2532Schristos mips*-*) 163010dd2532Schristos os=-elf 163110dd2532Schristos ;; 163210dd2532Schristos or32-*) 163310dd2532Schristos os=-coff 163410dd2532Schristos ;; 163510dd2532Schristos *-tti) # must be before sparc entry or we get the wrong os. 163610dd2532Schristos os=-sysv3 163710dd2532Schristos ;; 163810dd2532Schristos sparc-* | *-sun) 163910dd2532Schristos os=-sunos4.1.1 164010dd2532Schristos ;; 1641*32b71e0eSsevan pru-*) 1642*32b71e0eSsevan os=-elf 1643*32b71e0eSsevan ;; 164410dd2532Schristos *-be) 164510dd2532Schristos os=-beos 164610dd2532Schristos ;; 1647*32b71e0eSsevan *-haiku) 1648*32b71e0eSsevan os=-haiku 1649*32b71e0eSsevan ;; 165010dd2532Schristos *-ibm) 165110dd2532Schristos os=-aix 165210dd2532Schristos ;; 1653*32b71e0eSsevan *-knuth) 1654*32b71e0eSsevan os=-mmixware 1655*32b71e0eSsevan ;; 165610dd2532Schristos *-wec) 165710dd2532Schristos os=-proelf 165810dd2532Schristos ;; 165910dd2532Schristos *-winbond) 166010dd2532Schristos os=-proelf 166110dd2532Schristos ;; 166210dd2532Schristos *-oki) 166310dd2532Schristos os=-proelf 166410dd2532Schristos ;; 166510dd2532Schristos *-hp) 166610dd2532Schristos os=-hpux 166710dd2532Schristos ;; 166810dd2532Schristos *-hitachi) 166910dd2532Schristos os=-hiux 167010dd2532Schristos ;; 167110dd2532Schristos i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 167210dd2532Schristos os=-sysv 167310dd2532Schristos ;; 167410dd2532Schristos *-cbm) 167510dd2532Schristos os=-amigaos 167610dd2532Schristos ;; 167710dd2532Schristos *-dg) 167810dd2532Schristos os=-dgux 167910dd2532Schristos ;; 168010dd2532Schristos *-dolphin) 168110dd2532Schristos os=-sysv3 168210dd2532Schristos ;; 168310dd2532Schristos m68k-ccur) 168410dd2532Schristos os=-rtu 168510dd2532Schristos ;; 168610dd2532Schristos m88k-omron*) 168710dd2532Schristos os=-luna 168810dd2532Schristos ;; 168910dd2532Schristos *-next ) 169010dd2532Schristos os=-nextstep 169110dd2532Schristos ;; 169210dd2532Schristos *-sequent) 169310dd2532Schristos os=-ptx 169410dd2532Schristos ;; 169510dd2532Schristos *-crds) 169610dd2532Schristos os=-unos 169710dd2532Schristos ;; 169810dd2532Schristos *-ns) 169910dd2532Schristos os=-genix 170010dd2532Schristos ;; 170110dd2532Schristos i370-*) 170210dd2532Schristos os=-mvs 170310dd2532Schristos ;; 170410dd2532Schristos *-next) 170510dd2532Schristos os=-nextstep3 170610dd2532Schristos ;; 170710dd2532Schristos *-gould) 170810dd2532Schristos os=-sysv 170910dd2532Schristos ;; 171010dd2532Schristos *-highlevel) 171110dd2532Schristos os=-bsd 171210dd2532Schristos ;; 171310dd2532Schristos *-encore) 171410dd2532Schristos os=-bsd 171510dd2532Schristos ;; 171610dd2532Schristos *-sgi) 171710dd2532Schristos os=-irix 171810dd2532Schristos ;; 171910dd2532Schristos *-siemens) 172010dd2532Schristos os=-sysv4 172110dd2532Schristos ;; 172210dd2532Schristos *-masscomp) 172310dd2532Schristos os=-rtu 172410dd2532Schristos ;; 172510dd2532Schristos f30[01]-fujitsu | f700-fujitsu) 172610dd2532Schristos os=-uxpv 172710dd2532Schristos ;; 172810dd2532Schristos *-rom68k) 172910dd2532Schristos os=-coff 173010dd2532Schristos ;; 173110dd2532Schristos *-*bug) 173210dd2532Schristos os=-coff 173310dd2532Schristos ;; 173410dd2532Schristos *-apple) 173510dd2532Schristos os=-macos 173610dd2532Schristos ;; 173710dd2532Schristos *-atari*) 173810dd2532Schristos os=-mint 173910dd2532Schristos ;; 174010dd2532Schristos *) 174110dd2532Schristos os=-none 174210dd2532Schristos ;; 174310dd2532Schristosesac 174410dd2532Schristosfi 174510dd2532Schristos 174610dd2532Schristos# Here we handle the case where we know the os, and the CPU type, but not the 174710dd2532Schristos# manufacturer. We pick the logical manufacturer. 174810dd2532Schristosvendor=unknown 174910dd2532Schristoscase $basic_machine in 175010dd2532Schristos *-unknown) 175110dd2532Schristos case $os in 175210dd2532Schristos -riscix*) 175310dd2532Schristos vendor=acorn 175410dd2532Schristos ;; 175510dd2532Schristos -sunos*) 175610dd2532Schristos vendor=sun 175710dd2532Schristos ;; 1758*32b71e0eSsevan -cnk*|-aix*) 175910dd2532Schristos vendor=ibm 176010dd2532Schristos ;; 176110dd2532Schristos -beos*) 176210dd2532Schristos vendor=be 176310dd2532Schristos ;; 176410dd2532Schristos -hpux*) 176510dd2532Schristos vendor=hp 176610dd2532Schristos ;; 176710dd2532Schristos -mpeix*) 176810dd2532Schristos vendor=hp 176910dd2532Schristos ;; 177010dd2532Schristos -hiux*) 177110dd2532Schristos vendor=hitachi 177210dd2532Schristos ;; 177310dd2532Schristos -unos*) 177410dd2532Schristos vendor=crds 177510dd2532Schristos ;; 177610dd2532Schristos -dgux*) 177710dd2532Schristos vendor=dg 177810dd2532Schristos ;; 177910dd2532Schristos -luna*) 178010dd2532Schristos vendor=omron 178110dd2532Schristos ;; 178210dd2532Schristos -genix*) 178310dd2532Schristos vendor=ns 178410dd2532Schristos ;; 178510dd2532Schristos -mvs* | -opened*) 178610dd2532Schristos vendor=ibm 178710dd2532Schristos ;; 1788*32b71e0eSsevan -os400*) 1789*32b71e0eSsevan vendor=ibm 1790*32b71e0eSsevan ;; 179110dd2532Schristos -ptx*) 179210dd2532Schristos vendor=sequent 179310dd2532Schristos ;; 1794*32b71e0eSsevan -tpf*) 1795*32b71e0eSsevan vendor=ibm 1796*32b71e0eSsevan ;; 179710dd2532Schristos -vxsim* | -vxworks* | -windiss*) 179810dd2532Schristos vendor=wrs 179910dd2532Schristos ;; 180010dd2532Schristos -aux*) 180110dd2532Schristos vendor=apple 180210dd2532Schristos ;; 180310dd2532Schristos -hms*) 180410dd2532Schristos vendor=hitachi 180510dd2532Schristos ;; 180610dd2532Schristos -mpw* | -macos*) 180710dd2532Schristos vendor=apple 180810dd2532Schristos ;; 180910dd2532Schristos -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) 181010dd2532Schristos vendor=atari 181110dd2532Schristos ;; 181210dd2532Schristos -vos*) 181310dd2532Schristos vendor=stratus 181410dd2532Schristos ;; 181510dd2532Schristos esac 181610dd2532Schristos basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` 181710dd2532Schristos ;; 181810dd2532Schristosesac 181910dd2532Schristos 182010dd2532Schristosecho $basic_machine$os 1821*32b71e0eSsevanexit 182210dd2532Schristos 182310dd2532Schristos# Local variables: 182410dd2532Schristos# eval: (add-hook 'write-file-hooks 'time-stamp) 182510dd2532Schristos# time-stamp-start: "timestamp='" 182610dd2532Schristos# time-stamp-format: "%:y-%02m-%02d" 182710dd2532Schristos# time-stamp-end: "'" 182810dd2532Schristos# End: 1829