175f6d617Schristos#! /bin/sh 275f6d617Schristos# Configuration validation subroutine script. 3*cc576e1dSsevan# Copyright 1992-2017 Free Software Foundation, Inc. 475f6d617Schristos 5*cc576e1dSsevantimestamp='2017-01-01' 675f6d617Schristos 7*cc576e1dSsevan# This file is free software; you can redistribute it and/or modify it 8*cc576e1dSsevan# under the terms of the GNU General Public License as published by 9*cc576e1dSsevan# the Free Software Foundation; either version 3 of the License, or 1075f6d617Schristos# (at your option) any later version. 1175f6d617Schristos# 12*cc576e1dSsevan# This program is distributed in the hope that it will be useful, but 13*cc576e1dSsevan# WITHOUT ANY WARRANTY; without even the implied warranty of 14*cc576e1dSsevan# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15*cc576e1dSsevan# General Public License for more details. 1675f6d617Schristos# 1775f6d617Schristos# You should have received a copy of the GNU General Public License 18*cc576e1dSsevan# along with this program; if not, see <http://www.gnu.org/licenses/>. 19*cc576e1dSsevan# 2075f6d617Schristos# As a special exception to the GNU General Public License, if you 2175f6d617Schristos# distribute this file as part of a program that contains a 2275f6d617Schristos# configuration script generated by Autoconf, you may include it under 23*cc576e1dSsevan# the same distribution terms that you use for the rest of that 24*cc576e1dSsevan# program. This Exception is an additional permission under section 7 25*cc576e1dSsevan# of the GNU General Public License, version 3 ("GPLv3"). 2675f6d617Schristos 27*cc576e1dSsevan 28*cc576e1dSsevan# Please send patches to <config-patches@gnu.org>. 2975f6d617Schristos# 3075f6d617Schristos# Configuration subroutine to validate and canonicalize a configuration type. 3175f6d617Schristos# Supply the specified configuration type as an argument. 3275f6d617Schristos# If it is invalid, we print an error message on stderr and exit with code 1. 3375f6d617Schristos# Otherwise, we print the canonical config type on stdout and succeed. 3475f6d617Schristos 35*cc576e1dSsevan# You can get the latest version of this script from: 36*cc576e1dSsevan# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub 37*cc576e1dSsevan 3875f6d617Schristos# This file is supposed to be the same for all GNU packages 3975f6d617Schristos# and recognize all the CPU types, system types and aliases 4075f6d617Schristos# that are meaningful with *any* GNU software. 4175f6d617Schristos# Each package is responsible for reporting which valid configurations 4275f6d617Schristos# it does not support. The user should be able to distinguish 4375f6d617Schristos# a failure to support a valid configuration from a meaningless 4475f6d617Schristos# configuration. 4575f6d617Schristos 4675f6d617Schristos# The goal of this file is to map all the various variations of a given 4775f6d617Schristos# machine specification into a single specification in the form: 4875f6d617Schristos# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 4975f6d617Schristos# or in some cases, the newer four-part form: 5075f6d617Schristos# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 5175f6d617Schristos# It is wrong to echo any other type of specification. 5275f6d617Schristos 5375f6d617Schristosme=`echo "$0" | sed -e 's,.*/,,'` 5475f6d617Schristos 5575f6d617Schristosusage="\ 56*cc576e1dSsevanUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 5775f6d617Schristos 5875f6d617SchristosCanonicalize a configuration name. 5975f6d617Schristos 6075f6d617SchristosOperation modes: 6175f6d617Schristos -h, --help print this help, then exit 6275f6d617Schristos -t, --time-stamp print date of last modification, then exit 6375f6d617Schristos -v, --version print version number, then exit 6475f6d617Schristos 6575f6d617SchristosReport bugs and patches to <config-patches@gnu.org>." 6675f6d617Schristos 6775f6d617Schristosversion="\ 6875f6d617SchristosGNU config.sub ($timestamp) 6975f6d617Schristos 70*cc576e1dSsevanCopyright 1992-2017 Free Software Foundation, Inc. 7175f6d617Schristos 7275f6d617SchristosThis is free software; see the source for copying conditions. There is NO 7375f6d617Schristoswarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 7475f6d617Schristos 7575f6d617Schristoshelp=" 7675f6d617SchristosTry \`$me --help' for more information." 7775f6d617Schristos 7875f6d617Schristos# Parse command line 7975f6d617Schristoswhile test $# -gt 0 ; do 8075f6d617Schristos case $1 in 8175f6d617Schristos --time-stamp | --time* | -t ) 82*cc576e1dSsevan echo "$timestamp" ; exit ;; 8375f6d617Schristos --version | -v ) 84*cc576e1dSsevan echo "$version" ; exit ;; 8575f6d617Schristos --help | --h* | -h ) 86*cc576e1dSsevan echo "$usage"; exit ;; 8775f6d617Schristos -- ) # Stop option processing 8875f6d617Schristos shift; break ;; 8975f6d617Schristos - ) # Use stdin as input. 9075f6d617Schristos break ;; 9175f6d617Schristos -* ) 9275f6d617Schristos echo "$me: invalid option $1$help" 9375f6d617Schristos exit 1 ;; 9475f6d617Schristos 9575f6d617Schristos *local*) 9675f6d617Schristos # First pass through any local machine types. 9775f6d617Schristos echo $1 98*cc576e1dSsevan exit ;; 9975f6d617Schristos 10075f6d617Schristos * ) 10175f6d617Schristos break ;; 10275f6d617Schristos esac 10375f6d617Schristosdone 10475f6d617Schristos 10575f6d617Schristoscase $# in 10675f6d617Schristos 0) echo "$me: missing argument$help" >&2 10775f6d617Schristos exit 1;; 10875f6d617Schristos 1) ;; 10975f6d617Schristos *) echo "$me: too many arguments$help" >&2 11075f6d617Schristos exit 1;; 11175f6d617Schristosesac 11275f6d617Schristos 11375f6d617Schristos# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). 11475f6d617Schristos# Here we must recognize all the valid KERNEL-OS combinations. 11575f6d617Schristosmaybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` 11675f6d617Schristoscase $maybe_os in 117*cc576e1dSsevan nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ 118*cc576e1dSsevan linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ 119*cc576e1dSsevan knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ 120*cc576e1dSsevan kopensolaris*-gnu* | cloudabi*-eabi* | \ 121*cc576e1dSsevan storm-chaos* | os2-emx* | rtmk-nova*) 12275f6d617Schristos os=-$maybe_os 12375f6d617Schristos basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` 12475f6d617Schristos ;; 125*cc576e1dSsevan android-linux) 126*cc576e1dSsevan os=-linux-android 127*cc576e1dSsevan basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown 128*cc576e1dSsevan ;; 12975f6d617Schristos *) 13075f6d617Schristos basic_machine=`echo $1 | sed 's/-[^-]*$//'` 13175f6d617Schristos if [ $basic_machine != $1 ] 13275f6d617Schristos then os=`echo $1 | sed 's/.*-/-/'` 13375f6d617Schristos else os=; fi 13475f6d617Schristos ;; 13575f6d617Schristosesac 13675f6d617Schristos 13775f6d617Schristos### Let's recognize common machines as not being operating systems so 13875f6d617Schristos### that things like config.sub decstation-3100 work. We also 13975f6d617Schristos### recognize some manufacturers as not being operating systems, so we 14075f6d617Schristos### can provide default operating systems below. 14175f6d617Schristoscase $os in 14275f6d617Schristos -sun*os*) 14375f6d617Schristos # Prevent following clause from handling this invalid input. 14475f6d617Schristos ;; 14575f6d617Schristos -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ 14675f6d617Schristos -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ 14775f6d617Schristos -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ 14875f6d617Schristos -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ 14975f6d617Schristos -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ 15075f6d617Schristos -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ 151*cc576e1dSsevan -apple | -axis | -knuth | -cray | -microblaze*) 15275f6d617Schristos os= 15375f6d617Schristos basic_machine=$1 15475f6d617Schristos ;; 155*cc576e1dSsevan -bluegene*) 156*cc576e1dSsevan os=-cnk 157*cc576e1dSsevan ;; 15875f6d617Schristos -sim | -cisco | -oki | -wec | -winbond) 15975f6d617Schristos os= 16075f6d617Schristos basic_machine=$1 16175f6d617Schristos ;; 16275f6d617Schristos -scout) 16375f6d617Schristos ;; 16475f6d617Schristos -wrs) 16575f6d617Schristos os=-vxworks 16675f6d617Schristos basic_machine=$1 16775f6d617Schristos ;; 16875f6d617Schristos -chorusos*) 16975f6d617Schristos os=-chorusos 17075f6d617Schristos basic_machine=$1 17175f6d617Schristos ;; 17275f6d617Schristos -chorusrdb) 17375f6d617Schristos os=-chorusrdb 17475f6d617Schristos basic_machine=$1 17575f6d617Schristos ;; 17675f6d617Schristos -hiux*) 17775f6d617Schristos os=-hiuxwe2 17875f6d617Schristos ;; 179*cc576e1dSsevan -sco6) 180*cc576e1dSsevan os=-sco5v6 181*cc576e1dSsevan basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 182*cc576e1dSsevan ;; 18375f6d617Schristos -sco5) 18475f6d617Schristos os=-sco3.2v5 18575f6d617Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 18675f6d617Schristos ;; 18775f6d617Schristos -sco4) 18875f6d617Schristos os=-sco3.2v4 18975f6d617Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 19075f6d617Schristos ;; 19175f6d617Schristos -sco3.2.[4-9]*) 19275f6d617Schristos os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` 19375f6d617Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 19475f6d617Schristos ;; 19575f6d617Schristos -sco3.2v[4-9]*) 19675f6d617Schristos # Don't forget version if it is 3.2v4 or newer. 19775f6d617Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 19875f6d617Schristos ;; 199*cc576e1dSsevan -sco5v6*) 200*cc576e1dSsevan # Don't forget version if it is 3.2v4 or newer. 201*cc576e1dSsevan basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 202*cc576e1dSsevan ;; 20375f6d617Schristos -sco*) 20475f6d617Schristos os=-sco3.2v2 20575f6d617Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 20675f6d617Schristos ;; 20775f6d617Schristos -udk*) 20875f6d617Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 20975f6d617Schristos ;; 21075f6d617Schristos -isc) 21175f6d617Schristos os=-isc2.2 21275f6d617Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 21375f6d617Schristos ;; 21475f6d617Schristos -clix*) 21575f6d617Schristos basic_machine=clipper-intergraph 21675f6d617Schristos ;; 21775f6d617Schristos -isc*) 21875f6d617Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 21975f6d617Schristos ;; 220*cc576e1dSsevan -lynx*178) 221*cc576e1dSsevan os=-lynxos178 222*cc576e1dSsevan ;; 223*cc576e1dSsevan -lynx*5) 224*cc576e1dSsevan os=-lynxos5 225*cc576e1dSsevan ;; 22675f6d617Schristos -lynx*) 22775f6d617Schristos os=-lynxos 22875f6d617Schristos ;; 22975f6d617Schristos -ptx*) 23075f6d617Schristos basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` 23175f6d617Schristos ;; 23275f6d617Schristos -windowsnt*) 23375f6d617Schristos os=`echo $os | sed -e 's/windowsnt/winnt/'` 23475f6d617Schristos ;; 23575f6d617Schristos -psos*) 23675f6d617Schristos os=-psos 23775f6d617Schristos ;; 23875f6d617Schristos -mint | -mint[0-9]*) 23975f6d617Schristos basic_machine=m68k-atari 24075f6d617Schristos os=-mint 24175f6d617Schristos ;; 24275f6d617Schristosesac 24375f6d617Schristos 24475f6d617Schristos# Decode aliases for certain CPU-COMPANY combinations. 24575f6d617Schristoscase $basic_machine in 24675f6d617Schristos # Recognize the basic CPU types without company name. 24775f6d617Schristos # Some are omitted here because they have special meanings below. 24875f6d617Schristos 1750a | 580 \ 24975f6d617Schristos | a29k \ 250*cc576e1dSsevan | aarch64 | aarch64_be \ 25175f6d617Schristos | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ 25275f6d617Schristos | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ 253*cc576e1dSsevan | am33_2.0 \ 254*cc576e1dSsevan | arc | arceb \ 255*cc576e1dSsevan | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ 256*cc576e1dSsevan | avr | avr32 \ 257*cc576e1dSsevan | ba \ 258*cc576e1dSsevan | be32 | be64 \ 259*cc576e1dSsevan | bfin \ 260*cc576e1dSsevan | c4x | c8051 | clipper \ 261*cc576e1dSsevan | d10v | d30v | dlx | dsp16xx \ 262*cc576e1dSsevan | e2k | epiphany \ 263*cc576e1dSsevan | fido | fr30 | frv | ft32 \ 26475f6d617Schristos | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 265*cc576e1dSsevan | hexagon \ 26675f6d617Schristos | i370 | i860 | i960 | ia64 \ 267*cc576e1dSsevan | ip2k | iq2000 \ 268*cc576e1dSsevan | k1om \ 269*cc576e1dSsevan | le32 | le64 \ 270*cc576e1dSsevan | lm32 \ 271*cc576e1dSsevan | m32c | m32r | m32rle | m68000 | m68k | m88k \ 272*cc576e1dSsevan | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ 273*cc576e1dSsevan | mips | mipsbe | mipseb | mipsel | mipsle \ 274*cc576e1dSsevan | mips16 \ 275*cc576e1dSsevan | mips64 | mips64el \ 276*cc576e1dSsevan | mips64octeon | mips64octeonel \ 277*cc576e1dSsevan | mips64orion | mips64orionel \ 278*cc576e1dSsevan | mips64r5900 | mips64r5900el \ 279*cc576e1dSsevan | mips64vr | mips64vrel \ 280*cc576e1dSsevan | mips64vr4100 | mips64vr4100el \ 281*cc576e1dSsevan | mips64vr4300 | mips64vr4300el \ 282*cc576e1dSsevan | mips64vr5000 | mips64vr5000el \ 283*cc576e1dSsevan | mips64vr5900 | mips64vr5900el \ 284*cc576e1dSsevan | mipsisa32 | mipsisa32el \ 285*cc576e1dSsevan | mipsisa32r2 | mipsisa32r2el \ 286*cc576e1dSsevan | mipsisa32r6 | mipsisa32r6el \ 287*cc576e1dSsevan | mipsisa64 | mipsisa64el \ 288*cc576e1dSsevan | mipsisa64r2 | mipsisa64r2el \ 289*cc576e1dSsevan | mipsisa64r6 | mipsisa64r6el \ 290*cc576e1dSsevan | mipsisa64sb1 | mipsisa64sb1el \ 291*cc576e1dSsevan | mipsisa64sr71k | mipsisa64sr71kel \ 292*cc576e1dSsevan | mipsr5900 | mipsr5900el \ 293*cc576e1dSsevan | mipstx39 | mipstx39el \ 29475f6d617Schristos | mn10200 | mn10300 \ 295*cc576e1dSsevan | moxie \ 296*cc576e1dSsevan | mt \ 297*cc576e1dSsevan | msp430 \ 298*cc576e1dSsevan | nds32 | nds32le | nds32be \ 299*cc576e1dSsevan | nios | nios2 | nios2eb | nios2el \ 30075f6d617Schristos | ns16k | ns32k \ 301*cc576e1dSsevan | open8 | or1k | or1knd | or32 \ 30275f6d617Schristos | pdp10 | pdp11 | pj | pjl \ 303*cc576e1dSsevan | powerpc | powerpc64 | powerpc64le | powerpcle \ 304*cc576e1dSsevan | pru \ 30575f6d617Schristos | pyramid \ 306*cc576e1dSsevan | riscv32 | riscv64 \ 307*cc576e1dSsevan | rl78 | rx \ 308*cc576e1dSsevan | score \ 309*cc576e1dSsevan | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ 310*cc576e1dSsevan | sh64 | sh64le \ 311*cc576e1dSsevan | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ 312*cc576e1dSsevan | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ 313*cc576e1dSsevan | spu \ 314*cc576e1dSsevan | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ 315*cc576e1dSsevan | ubicom32 \ 316*cc576e1dSsevan | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ 317*cc576e1dSsevan | visium \ 31875f6d617Schristos | we32k \ 319*cc576e1dSsevan | x86 | xc16x | xstormy16 | xtensa \ 320*cc576e1dSsevan | z8k | z80) 32175f6d617Schristos basic_machine=$basic_machine-unknown 32275f6d617Schristos ;; 323*cc576e1dSsevan c54x) 324*cc576e1dSsevan basic_machine=tic54x-unknown 325*cc576e1dSsevan ;; 326*cc576e1dSsevan c55x) 327*cc576e1dSsevan basic_machine=tic55x-unknown 328*cc576e1dSsevan ;; 329*cc576e1dSsevan c6x) 330*cc576e1dSsevan basic_machine=tic6x-unknown 331*cc576e1dSsevan ;; 332*cc576e1dSsevan leon|leon[3-9]) 333*cc576e1dSsevan basic_machine=sparc-$basic_machine 334*cc576e1dSsevan ;; 335*cc576e1dSsevan m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) 33675f6d617Schristos basic_machine=$basic_machine-unknown 33775f6d617Schristos os=-none 33875f6d617Schristos ;; 33975f6d617Schristos m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) 34075f6d617Schristos ;; 341*cc576e1dSsevan ms1) 342*cc576e1dSsevan basic_machine=mt-unknown 343*cc576e1dSsevan ;; 344*cc576e1dSsevan 345*cc576e1dSsevan strongarm | thumb | xscale) 346*cc576e1dSsevan basic_machine=arm-unknown 347*cc576e1dSsevan ;; 348*cc576e1dSsevan xgate) 349*cc576e1dSsevan basic_machine=$basic_machine-unknown 350*cc576e1dSsevan os=-none 351*cc576e1dSsevan ;; 352*cc576e1dSsevan xscaleeb) 353*cc576e1dSsevan basic_machine=armeb-unknown 354*cc576e1dSsevan ;; 355*cc576e1dSsevan 356*cc576e1dSsevan xscaleel) 357*cc576e1dSsevan basic_machine=armel-unknown 358*cc576e1dSsevan ;; 35975f6d617Schristos 36075f6d617Schristos # We use `pc' rather than `unknown' 36175f6d617Schristos # because (1) that's what they normally are, and 36275f6d617Schristos # (2) the word "unknown" tends to confuse beginning users. 36375f6d617Schristos i*86 | x86_64) 36475f6d617Schristos basic_machine=$basic_machine-pc 36575f6d617Schristos ;; 36675f6d617Schristos # Object if more than one company name word. 36775f6d617Schristos *-*-*) 36875f6d617Schristos echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 36975f6d617Schristos exit 1 37075f6d617Schristos ;; 37175f6d617Schristos # Recognize the basic CPU types with company name. 37275f6d617Schristos 580-* \ 37375f6d617Schristos | a29k-* \ 374*cc576e1dSsevan | aarch64-* | aarch64_be-* \ 37575f6d617Schristos | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ 37675f6d617Schristos | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ 377*cc576e1dSsevan | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ 378*cc576e1dSsevan | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ 379*cc576e1dSsevan | avr-* | avr32-* \ 380*cc576e1dSsevan | ba-* \ 381*cc576e1dSsevan | be32-* | be64-* \ 382*cc576e1dSsevan | bfin-* | bs2000-* \ 383*cc576e1dSsevan | c[123]* | c30-* | [cjt]90-* | c4x-* \ 384*cc576e1dSsevan | c8051-* | clipper-* | craynv-* | cydra-* \ 385*cc576e1dSsevan | d10v-* | d30v-* | dlx-* \ 386*cc576e1dSsevan | e2k-* | elxsi-* \ 387*cc576e1dSsevan | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ 38875f6d617Schristos | h8300-* | h8500-* \ 38975f6d617Schristos | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ 390*cc576e1dSsevan | hexagon-* \ 39175f6d617Schristos | i*86-* | i860-* | i960-* | ia64-* \ 392*cc576e1dSsevan | ip2k-* | iq2000-* \ 393*cc576e1dSsevan | k1om-* \ 394*cc576e1dSsevan | le32-* | le64-* \ 395*cc576e1dSsevan | lm32-* \ 396*cc576e1dSsevan | m32c-* | m32r-* | m32rle-* \ 39775f6d617Schristos | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ 398*cc576e1dSsevan | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ 399*cc576e1dSsevan | microblaze-* | microblazeel-* \ 400*cc576e1dSsevan | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ 401*cc576e1dSsevan | mips16-* \ 402*cc576e1dSsevan | mips64-* | mips64el-* \ 403*cc576e1dSsevan | mips64octeon-* | mips64octeonel-* \ 404*cc576e1dSsevan | mips64orion-* | mips64orionel-* \ 405*cc576e1dSsevan | mips64r5900-* | mips64r5900el-* \ 406*cc576e1dSsevan | mips64vr-* | mips64vrel-* \ 407*cc576e1dSsevan | mips64vr4100-* | mips64vr4100el-* \ 408*cc576e1dSsevan | mips64vr4300-* | mips64vr4300el-* \ 409*cc576e1dSsevan | mips64vr5000-* | mips64vr5000el-* \ 410*cc576e1dSsevan | mips64vr5900-* | mips64vr5900el-* \ 411*cc576e1dSsevan | mipsisa32-* | mipsisa32el-* \ 412*cc576e1dSsevan | mipsisa32r2-* | mipsisa32r2el-* \ 413*cc576e1dSsevan | mipsisa32r6-* | mipsisa32r6el-* \ 414*cc576e1dSsevan | mipsisa64-* | mipsisa64el-* \ 415*cc576e1dSsevan | mipsisa64r2-* | mipsisa64r2el-* \ 416*cc576e1dSsevan | mipsisa64r6-* | mipsisa64r6el-* \ 417*cc576e1dSsevan | mipsisa64sb1-* | mipsisa64sb1el-* \ 418*cc576e1dSsevan | mipsisa64sr71k-* | mipsisa64sr71kel-* \ 419*cc576e1dSsevan | mipsr5900-* | mipsr5900el-* \ 420*cc576e1dSsevan | mipstx39-* | mipstx39el-* \ 421*cc576e1dSsevan | mmix-* \ 422*cc576e1dSsevan | mt-* \ 423*cc576e1dSsevan | msp430-* \ 424*cc576e1dSsevan | nds32-* | nds32le-* | nds32be-* \ 425*cc576e1dSsevan | nios-* | nios2-* | nios2eb-* | nios2el-* \ 42675f6d617Schristos | none-* | np1-* | ns16k-* | ns32k-* \ 427*cc576e1dSsevan | open8-* \ 428*cc576e1dSsevan | or1k*-* \ 42975f6d617Schristos | orion-* \ 43075f6d617Schristos | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ 431*cc576e1dSsevan | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ 432*cc576e1dSsevan | pru-* \ 43375f6d617Schristos | pyramid-* \ 434*cc576e1dSsevan | riscv32-* | riscv64-* \ 435*cc576e1dSsevan | rl78-* | romp-* | rs6000-* | rx-* \ 436*cc576e1dSsevan | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ 437*cc576e1dSsevan | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ 438*cc576e1dSsevan | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ 439*cc576e1dSsevan | sparclite-* \ 440*cc576e1dSsevan | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ 441*cc576e1dSsevan | tahoe-* \ 442*cc576e1dSsevan | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ 443*cc576e1dSsevan | tile*-* \ 444*cc576e1dSsevan | tron-* \ 445*cc576e1dSsevan | ubicom32-* \ 446*cc576e1dSsevan | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ 447*cc576e1dSsevan | vax-* \ 448*cc576e1dSsevan | visium-* \ 44975f6d617Schristos | we32k-* \ 450*cc576e1dSsevan | x86-* | x86_64-* | xc16x-* | xps100-* \ 451*cc576e1dSsevan | xstormy16-* | xtensa*-* \ 45275f6d617Schristos | ymp-* \ 453*cc576e1dSsevan | z8k-* | z80-*) 454*cc576e1dSsevan ;; 455*cc576e1dSsevan # Recognize the basic CPU types without company name, with glob match. 456*cc576e1dSsevan xtensa*) 457*cc576e1dSsevan basic_machine=$basic_machine-unknown 45875f6d617Schristos ;; 45975f6d617Schristos # Recognize the various machine names and aliases which stand 46075f6d617Schristos # for a CPU type and a company and sometimes even an OS. 46175f6d617Schristos 386bsd) 46275f6d617Schristos basic_machine=i386-unknown 46375f6d617Schristos os=-bsd 46475f6d617Schristos ;; 46575f6d617Schristos 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 46675f6d617Schristos basic_machine=m68000-att 46775f6d617Schristos ;; 46875f6d617Schristos 3b*) 46975f6d617Schristos basic_machine=we32k-att 47075f6d617Schristos ;; 47175f6d617Schristos a29khif) 47275f6d617Schristos basic_machine=a29k-amd 47375f6d617Schristos os=-udi 47475f6d617Schristos ;; 475*cc576e1dSsevan abacus) 476*cc576e1dSsevan basic_machine=abacus-unknown 477*cc576e1dSsevan ;; 47875f6d617Schristos adobe68k) 47975f6d617Schristos basic_machine=m68010-adobe 48075f6d617Schristos os=-scout 48175f6d617Schristos ;; 48275f6d617Schristos alliant | fx80) 48375f6d617Schristos basic_machine=fx80-alliant 48475f6d617Schristos ;; 48575f6d617Schristos altos | altos3068) 48675f6d617Schristos basic_machine=m68k-altos 48775f6d617Schristos ;; 48875f6d617Schristos am29k) 48975f6d617Schristos basic_machine=a29k-none 49075f6d617Schristos os=-bsd 49175f6d617Schristos ;; 492*cc576e1dSsevan amd64) 493*cc576e1dSsevan basic_machine=x86_64-pc 494*cc576e1dSsevan ;; 495*cc576e1dSsevan amd64-*) 496*cc576e1dSsevan basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` 497*cc576e1dSsevan ;; 49875f6d617Schristos amdahl) 49975f6d617Schristos basic_machine=580-amdahl 50075f6d617Schristos os=-sysv 50175f6d617Schristos ;; 50275f6d617Schristos amiga | amiga-*) 50375f6d617Schristos basic_machine=m68k-unknown 50475f6d617Schristos ;; 50575f6d617Schristos amigaos | amigados) 50675f6d617Schristos basic_machine=m68k-unknown 50775f6d617Schristos os=-amigaos 50875f6d617Schristos ;; 50975f6d617Schristos amigaunix | amix) 51075f6d617Schristos basic_machine=m68k-unknown 51175f6d617Schristos os=-sysv4 51275f6d617Schristos ;; 51375f6d617Schristos apollo68) 51475f6d617Schristos basic_machine=m68k-apollo 51575f6d617Schristos os=-sysv 51675f6d617Schristos ;; 51775f6d617Schristos apollo68bsd) 51875f6d617Schristos basic_machine=m68k-apollo 51975f6d617Schristos os=-bsd 52075f6d617Schristos ;; 521*cc576e1dSsevan aros) 522*cc576e1dSsevan basic_machine=i386-pc 523*cc576e1dSsevan os=-aros 524*cc576e1dSsevan ;; 525*cc576e1dSsevan asmjs) 526*cc576e1dSsevan basic_machine=asmjs-unknown 527*cc576e1dSsevan ;; 52875f6d617Schristos aux) 52975f6d617Schristos basic_machine=m68k-apple 53075f6d617Schristos os=-aux 53175f6d617Schristos ;; 53275f6d617Schristos balance) 53375f6d617Schristos basic_machine=ns32k-sequent 53475f6d617Schristos os=-dynix 53575f6d617Schristos ;; 536*cc576e1dSsevan blackfin) 537*cc576e1dSsevan basic_machine=bfin-unknown 538*cc576e1dSsevan os=-linux 539*cc576e1dSsevan ;; 540*cc576e1dSsevan blackfin-*) 541*cc576e1dSsevan basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` 542*cc576e1dSsevan os=-linux 543*cc576e1dSsevan ;; 544*cc576e1dSsevan bluegene*) 545*cc576e1dSsevan basic_machine=powerpc-ibm 546*cc576e1dSsevan os=-cnk 547*cc576e1dSsevan ;; 548*cc576e1dSsevan c54x-*) 549*cc576e1dSsevan basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` 550*cc576e1dSsevan ;; 551*cc576e1dSsevan c55x-*) 552*cc576e1dSsevan basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` 553*cc576e1dSsevan ;; 554*cc576e1dSsevan c6x-*) 555*cc576e1dSsevan basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` 556*cc576e1dSsevan ;; 55775f6d617Schristos c90) 55875f6d617Schristos basic_machine=c90-cray 55975f6d617Schristos os=-unicos 56075f6d617Schristos ;; 561*cc576e1dSsevan cegcc) 562*cc576e1dSsevan basic_machine=arm-unknown 563*cc576e1dSsevan os=-cegcc 564*cc576e1dSsevan ;; 56575f6d617Schristos convex-c1) 56675f6d617Schristos basic_machine=c1-convex 56775f6d617Schristos os=-bsd 56875f6d617Schristos ;; 56975f6d617Schristos convex-c2) 57075f6d617Schristos basic_machine=c2-convex 57175f6d617Schristos os=-bsd 57275f6d617Schristos ;; 57375f6d617Schristos convex-c32) 57475f6d617Schristos basic_machine=c32-convex 57575f6d617Schristos os=-bsd 57675f6d617Schristos ;; 57775f6d617Schristos convex-c34) 57875f6d617Schristos basic_machine=c34-convex 57975f6d617Schristos os=-bsd 58075f6d617Schristos ;; 58175f6d617Schristos convex-c38) 58275f6d617Schristos basic_machine=c38-convex 58375f6d617Schristos os=-bsd 58475f6d617Schristos ;; 58575f6d617Schristos cray | j90) 58675f6d617Schristos basic_machine=j90-cray 58775f6d617Schristos os=-unicos 58875f6d617Schristos ;; 589*cc576e1dSsevan craynv) 590*cc576e1dSsevan basic_machine=craynv-cray 591*cc576e1dSsevan os=-unicosmp 592*cc576e1dSsevan ;; 593*cc576e1dSsevan cr16 | cr16-*) 594*cc576e1dSsevan basic_machine=cr16-unknown 595*cc576e1dSsevan os=-elf 596*cc576e1dSsevan ;; 59775f6d617Schristos crds | unos) 59875f6d617Schristos basic_machine=m68k-crds 59975f6d617Schristos ;; 600*cc576e1dSsevan crisv32 | crisv32-* | etraxfs*) 601*cc576e1dSsevan basic_machine=crisv32-axis 602*cc576e1dSsevan ;; 60375f6d617Schristos cris | cris-* | etrax*) 60475f6d617Schristos basic_machine=cris-axis 60575f6d617Schristos ;; 606*cc576e1dSsevan crx) 607*cc576e1dSsevan basic_machine=crx-unknown 608*cc576e1dSsevan os=-elf 609*cc576e1dSsevan ;; 61075f6d617Schristos da30 | da30-*) 61175f6d617Schristos basic_machine=m68k-da30 61275f6d617Schristos ;; 61375f6d617Schristos decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) 61475f6d617Schristos basic_machine=mips-dec 61575f6d617Schristos ;; 61675f6d617Schristos decsystem10* | dec10*) 61775f6d617Schristos basic_machine=pdp10-dec 61875f6d617Schristos os=-tops10 61975f6d617Schristos ;; 62075f6d617Schristos decsystem20* | dec20*) 62175f6d617Schristos basic_machine=pdp10-dec 62275f6d617Schristos os=-tops20 62375f6d617Schristos ;; 62475f6d617Schristos delta | 3300 | motorola-3300 | motorola-delta \ 62575f6d617Schristos | 3300-motorola | delta-motorola) 62675f6d617Schristos basic_machine=m68k-motorola 62775f6d617Schristos ;; 62875f6d617Schristos delta88) 62975f6d617Schristos basic_machine=m88k-motorola 63075f6d617Schristos os=-sysv3 63175f6d617Schristos ;; 632*cc576e1dSsevan dicos) 633*cc576e1dSsevan basic_machine=i686-pc 634*cc576e1dSsevan os=-dicos 635*cc576e1dSsevan ;; 636*cc576e1dSsevan djgpp) 637*cc576e1dSsevan basic_machine=i586-pc 638*cc576e1dSsevan os=-msdosdjgpp 639*cc576e1dSsevan ;; 64075f6d617Schristos dpx20 | dpx20-*) 64175f6d617Schristos basic_machine=rs6000-bull 64275f6d617Schristos os=-bosx 64375f6d617Schristos ;; 64475f6d617Schristos dpx2* | dpx2*-bull) 64575f6d617Schristos basic_machine=m68k-bull 64675f6d617Schristos os=-sysv3 64775f6d617Schristos ;; 648*cc576e1dSsevan e500v[12]) 649*cc576e1dSsevan basic_machine=powerpc-unknown 650*cc576e1dSsevan os=$os"spe" 651*cc576e1dSsevan ;; 652*cc576e1dSsevan e500v[12]-*) 653*cc576e1dSsevan basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` 654*cc576e1dSsevan os=$os"spe" 655*cc576e1dSsevan ;; 65675f6d617Schristos ebmon29k) 65775f6d617Schristos basic_machine=a29k-amd 65875f6d617Schristos os=-ebmon 65975f6d617Schristos ;; 66075f6d617Schristos elxsi) 66175f6d617Schristos basic_machine=elxsi-elxsi 66275f6d617Schristos os=-bsd 66375f6d617Schristos ;; 66475f6d617Schristos encore | umax | mmax) 66575f6d617Schristos basic_machine=ns32k-encore 66675f6d617Schristos ;; 66775f6d617Schristos es1800 | OSE68k | ose68k | ose | OSE) 66875f6d617Schristos basic_machine=m68k-ericsson 66975f6d617Schristos os=-ose 67075f6d617Schristos ;; 67175f6d617Schristos fx2800) 67275f6d617Schristos basic_machine=i860-alliant 67375f6d617Schristos ;; 67475f6d617Schristos genix) 67575f6d617Schristos basic_machine=ns32k-ns 67675f6d617Schristos ;; 67775f6d617Schristos gmicro) 67875f6d617Schristos basic_machine=tron-gmicro 67975f6d617Schristos os=-sysv 68075f6d617Schristos ;; 68175f6d617Schristos go32) 68275f6d617Schristos basic_machine=i386-pc 68375f6d617Schristos os=-go32 68475f6d617Schristos ;; 68575f6d617Schristos h3050r* | hiux*) 68675f6d617Schristos basic_machine=hppa1.1-hitachi 68775f6d617Schristos os=-hiuxwe2 68875f6d617Schristos ;; 68975f6d617Schristos h8300hms) 69075f6d617Schristos basic_machine=h8300-hitachi 69175f6d617Schristos os=-hms 69275f6d617Schristos ;; 69375f6d617Schristos h8300xray) 69475f6d617Schristos basic_machine=h8300-hitachi 69575f6d617Schristos os=-xray 69675f6d617Schristos ;; 69775f6d617Schristos h8500hms) 69875f6d617Schristos basic_machine=h8500-hitachi 69975f6d617Schristos os=-hms 70075f6d617Schristos ;; 70175f6d617Schristos harris) 70275f6d617Schristos basic_machine=m88k-harris 70375f6d617Schristos os=-sysv3 70475f6d617Schristos ;; 70575f6d617Schristos hp300-*) 70675f6d617Schristos basic_machine=m68k-hp 70775f6d617Schristos ;; 70875f6d617Schristos hp300bsd) 70975f6d617Schristos basic_machine=m68k-hp 71075f6d617Schristos os=-bsd 71175f6d617Schristos ;; 71275f6d617Schristos hp300hpux) 71375f6d617Schristos basic_machine=m68k-hp 71475f6d617Schristos os=-hpux 71575f6d617Schristos ;; 71675f6d617Schristos hp3k9[0-9][0-9] | hp9[0-9][0-9]) 71775f6d617Schristos basic_machine=hppa1.0-hp 71875f6d617Schristos ;; 71975f6d617Schristos hp9k2[0-9][0-9] | hp9k31[0-9]) 72075f6d617Schristos basic_machine=m68000-hp 72175f6d617Schristos ;; 72275f6d617Schristos hp9k3[2-9][0-9]) 72375f6d617Schristos basic_machine=m68k-hp 72475f6d617Schristos ;; 72575f6d617Schristos hp9k6[0-9][0-9] | hp6[0-9][0-9]) 72675f6d617Schristos basic_machine=hppa1.0-hp 72775f6d617Schristos ;; 72875f6d617Schristos hp9k7[0-79][0-9] | hp7[0-79][0-9]) 72975f6d617Schristos basic_machine=hppa1.1-hp 73075f6d617Schristos ;; 73175f6d617Schristos hp9k78[0-9] | hp78[0-9]) 73275f6d617Schristos # FIXME: really hppa2.0-hp 73375f6d617Schristos basic_machine=hppa1.1-hp 73475f6d617Schristos ;; 73575f6d617Schristos hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 73675f6d617Schristos # FIXME: really hppa2.0-hp 73775f6d617Schristos basic_machine=hppa1.1-hp 73875f6d617Schristos ;; 73975f6d617Schristos hp9k8[0-9][13679] | hp8[0-9][13679]) 74075f6d617Schristos basic_machine=hppa1.1-hp 74175f6d617Schristos ;; 74275f6d617Schristos hp9k8[0-9][0-9] | hp8[0-9][0-9]) 74375f6d617Schristos basic_machine=hppa1.0-hp 74475f6d617Schristos ;; 74575f6d617Schristos hppa-next) 74675f6d617Schristos os=-nextstep3 74775f6d617Schristos ;; 74875f6d617Schristos hppaosf) 74975f6d617Schristos basic_machine=hppa1.1-hp 75075f6d617Schristos os=-osf 75175f6d617Schristos ;; 75275f6d617Schristos hppro) 75375f6d617Schristos basic_machine=hppa1.1-hp 75475f6d617Schristos os=-proelf 75575f6d617Schristos ;; 75675f6d617Schristos i370-ibm* | ibm*) 75775f6d617Schristos basic_machine=i370-ibm 75875f6d617Schristos ;; 75975f6d617Schristos i*86v32) 76075f6d617Schristos basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 76175f6d617Schristos os=-sysv32 76275f6d617Schristos ;; 76375f6d617Schristos i*86v4*) 76475f6d617Schristos basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 76575f6d617Schristos os=-sysv4 76675f6d617Schristos ;; 76775f6d617Schristos i*86v) 76875f6d617Schristos basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 76975f6d617Schristos os=-sysv 77075f6d617Schristos ;; 77175f6d617Schristos i*86sol2) 77275f6d617Schristos basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 77375f6d617Schristos os=-solaris2 77475f6d617Schristos ;; 77575f6d617Schristos i386mach) 77675f6d617Schristos basic_machine=i386-mach 77775f6d617Schristos os=-mach 77875f6d617Schristos ;; 77975f6d617Schristos i386-vsta | vsta) 78075f6d617Schristos basic_machine=i386-unknown 78175f6d617Schristos os=-vsta 78275f6d617Schristos ;; 78375f6d617Schristos iris | iris4d) 78475f6d617Schristos basic_machine=mips-sgi 78575f6d617Schristos case $os in 78675f6d617Schristos -irix*) 78775f6d617Schristos ;; 78875f6d617Schristos *) 78975f6d617Schristos os=-irix4 79075f6d617Schristos ;; 79175f6d617Schristos esac 79275f6d617Schristos ;; 79375f6d617Schristos isi68 | isi) 79475f6d617Schristos basic_machine=m68k-isi 79575f6d617Schristos os=-sysv 79675f6d617Schristos ;; 797*cc576e1dSsevan leon-*|leon[3-9]-*) 798*cc576e1dSsevan basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` 799*cc576e1dSsevan ;; 800*cc576e1dSsevan m68knommu) 801*cc576e1dSsevan basic_machine=m68k-unknown 802*cc576e1dSsevan os=-linux 803*cc576e1dSsevan ;; 804*cc576e1dSsevan m68knommu-*) 805*cc576e1dSsevan basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` 806*cc576e1dSsevan os=-linux 807*cc576e1dSsevan ;; 80875f6d617Schristos m88k-omron*) 80975f6d617Schristos basic_machine=m88k-omron 81075f6d617Schristos ;; 81175f6d617Schristos magnum | m3230) 81275f6d617Schristos basic_machine=mips-mips 81375f6d617Schristos os=-sysv 81475f6d617Schristos ;; 81575f6d617Schristos merlin) 81675f6d617Schristos basic_machine=ns32k-utek 81775f6d617Schristos os=-sysv 81875f6d617Schristos ;; 819*cc576e1dSsevan microblaze*) 820*cc576e1dSsevan basic_machine=microblaze-xilinx 821*cc576e1dSsevan ;; 822*cc576e1dSsevan mingw64) 823*cc576e1dSsevan basic_machine=x86_64-pc 824*cc576e1dSsevan os=-mingw64 825*cc576e1dSsevan ;; 82675f6d617Schristos mingw32) 827*cc576e1dSsevan basic_machine=i686-pc 82875f6d617Schristos os=-mingw32 82975f6d617Schristos ;; 830*cc576e1dSsevan mingw32ce) 831*cc576e1dSsevan basic_machine=arm-unknown 832*cc576e1dSsevan os=-mingw32ce 833*cc576e1dSsevan ;; 83475f6d617Schristos miniframe) 83575f6d617Schristos basic_machine=m68000-convergent 83675f6d617Schristos ;; 83775f6d617Schristos *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) 83875f6d617Schristos basic_machine=m68k-atari 83975f6d617Schristos os=-mint 84075f6d617Schristos ;; 84175f6d617Schristos mips3*-*) 84275f6d617Schristos basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` 84375f6d617Schristos ;; 84475f6d617Schristos mips3*) 84575f6d617Schristos basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown 84675f6d617Schristos ;; 84775f6d617Schristos monitor) 84875f6d617Schristos basic_machine=m68k-rom68k 84975f6d617Schristos os=-coff 85075f6d617Schristos ;; 85175f6d617Schristos morphos) 85275f6d617Schristos basic_machine=powerpc-unknown 85375f6d617Schristos os=-morphos 85475f6d617Schristos ;; 855*cc576e1dSsevan moxiebox) 856*cc576e1dSsevan basic_machine=moxie-unknown 857*cc576e1dSsevan os=-moxiebox 858*cc576e1dSsevan ;; 85975f6d617Schristos msdos) 86075f6d617Schristos basic_machine=i386-pc 86175f6d617Schristos os=-msdos 86275f6d617Schristos ;; 863*cc576e1dSsevan ms1-*) 864*cc576e1dSsevan basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` 865*cc576e1dSsevan ;; 866*cc576e1dSsevan msys) 867*cc576e1dSsevan basic_machine=i686-pc 868*cc576e1dSsevan os=-msys 869*cc576e1dSsevan ;; 87075f6d617Schristos mvs) 87175f6d617Schristos basic_machine=i370-ibm 87275f6d617Schristos os=-mvs 87375f6d617Schristos ;; 874*cc576e1dSsevan nacl) 875*cc576e1dSsevan basic_machine=le32-unknown 876*cc576e1dSsevan os=-nacl 877*cc576e1dSsevan ;; 87875f6d617Schristos ncr3000) 87975f6d617Schristos basic_machine=i486-ncr 88075f6d617Schristos os=-sysv4 88175f6d617Schristos ;; 88275f6d617Schristos netbsd386) 88375f6d617Schristos basic_machine=i386-unknown 88475f6d617Schristos os=-netbsd 88575f6d617Schristos ;; 88675f6d617Schristos netwinder) 88775f6d617Schristos basic_machine=armv4l-rebel 88875f6d617Schristos os=-linux 88975f6d617Schristos ;; 89075f6d617Schristos news | news700 | news800 | news900) 89175f6d617Schristos basic_machine=m68k-sony 89275f6d617Schristos os=-newsos 89375f6d617Schristos ;; 89475f6d617Schristos news1000) 89575f6d617Schristos basic_machine=m68030-sony 89675f6d617Schristos os=-newsos 89775f6d617Schristos ;; 89875f6d617Schristos news-3600 | risc-news) 89975f6d617Schristos basic_machine=mips-sony 90075f6d617Schristos os=-newsos 90175f6d617Schristos ;; 90275f6d617Schristos necv70) 90375f6d617Schristos basic_machine=v70-nec 90475f6d617Schristos os=-sysv 90575f6d617Schristos ;; 90675f6d617Schristos next | m*-next ) 90775f6d617Schristos basic_machine=m68k-next 90875f6d617Schristos case $os in 90975f6d617Schristos -nextstep* ) 91075f6d617Schristos ;; 91175f6d617Schristos -ns2*) 91275f6d617Schristos os=-nextstep2 91375f6d617Schristos ;; 91475f6d617Schristos *) 91575f6d617Schristos os=-nextstep3 91675f6d617Schristos ;; 91775f6d617Schristos esac 91875f6d617Schristos ;; 91975f6d617Schristos nh3000) 92075f6d617Schristos basic_machine=m68k-harris 92175f6d617Schristos os=-cxux 92275f6d617Schristos ;; 92375f6d617Schristos nh[45]000) 92475f6d617Schristos basic_machine=m88k-harris 92575f6d617Schristos os=-cxux 92675f6d617Schristos ;; 92775f6d617Schristos nindy960) 92875f6d617Schristos basic_machine=i960-intel 92975f6d617Schristos os=-nindy 93075f6d617Schristos ;; 93175f6d617Schristos mon960) 93275f6d617Schristos basic_machine=i960-intel 93375f6d617Schristos os=-mon960 93475f6d617Schristos ;; 93575f6d617Schristos nonstopux) 93675f6d617Schristos basic_machine=mips-compaq 93775f6d617Schristos os=-nonstopux 93875f6d617Schristos ;; 93975f6d617Schristos np1) 94075f6d617Schristos basic_machine=np1-gould 94175f6d617Schristos ;; 942*cc576e1dSsevan neo-tandem) 943*cc576e1dSsevan basic_machine=neo-tandem 944*cc576e1dSsevan ;; 945*cc576e1dSsevan nse-tandem) 946*cc576e1dSsevan basic_machine=nse-tandem 947*cc576e1dSsevan ;; 94875f6d617Schristos nsr-tandem) 94975f6d617Schristos basic_machine=nsr-tandem 95075f6d617Schristos ;; 95175f6d617Schristos op50n-* | op60c-*) 95275f6d617Schristos basic_machine=hppa1.1-oki 95375f6d617Schristos os=-proelf 95475f6d617Schristos ;; 955*cc576e1dSsevan openrisc | openrisc-*) 95675f6d617Schristos basic_machine=or32-unknown 957*cc576e1dSsevan ;; 958*cc576e1dSsevan os400) 959*cc576e1dSsevan basic_machine=powerpc-ibm 960*cc576e1dSsevan os=-os400 96175f6d617Schristos ;; 96275f6d617Schristos OSE68000 | ose68000) 96375f6d617Schristos basic_machine=m68000-ericsson 96475f6d617Schristos os=-ose 96575f6d617Schristos ;; 96675f6d617Schristos os68k) 96775f6d617Schristos basic_machine=m68k-none 96875f6d617Schristos os=-os68k 96975f6d617Schristos ;; 97075f6d617Schristos pa-hitachi) 97175f6d617Schristos basic_machine=hppa1.1-hitachi 97275f6d617Schristos os=-hiuxwe2 97375f6d617Schristos ;; 97475f6d617Schristos paragon) 97575f6d617Schristos basic_machine=i860-intel 97675f6d617Schristos os=-osf 97775f6d617Schristos ;; 978*cc576e1dSsevan parisc) 979*cc576e1dSsevan basic_machine=hppa-unknown 980*cc576e1dSsevan os=-linux 981*cc576e1dSsevan ;; 982*cc576e1dSsevan parisc-*) 983*cc576e1dSsevan basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` 984*cc576e1dSsevan os=-linux 985*cc576e1dSsevan ;; 98675f6d617Schristos pbd) 98775f6d617Schristos basic_machine=sparc-tti 98875f6d617Schristos ;; 98975f6d617Schristos pbb) 99075f6d617Schristos basic_machine=m68k-tti 99175f6d617Schristos ;; 99275f6d617Schristos pc532 | pc532-*) 99375f6d617Schristos basic_machine=ns32k-pc532 99475f6d617Schristos ;; 995*cc576e1dSsevan pc98) 996*cc576e1dSsevan basic_machine=i386-pc 997*cc576e1dSsevan ;; 998*cc576e1dSsevan pc98-*) 999*cc576e1dSsevan basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` 1000*cc576e1dSsevan ;; 100175f6d617Schristos pentium | p5 | k5 | k6 | nexgen | viac3) 100275f6d617Schristos basic_machine=i586-pc 100375f6d617Schristos ;; 1004*cc576e1dSsevan pentiumpro | p6 | 6x86 | athlon | athlon_*) 100575f6d617Schristos basic_machine=i686-pc 100675f6d617Schristos ;; 1007*cc576e1dSsevan pentiumii | pentium2 | pentiumiii | pentium3) 100875f6d617Schristos basic_machine=i686-pc 100975f6d617Schristos ;; 1010*cc576e1dSsevan pentium4) 1011*cc576e1dSsevan basic_machine=i786-pc 1012*cc576e1dSsevan ;; 101375f6d617Schristos pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 101475f6d617Schristos basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` 101575f6d617Schristos ;; 101675f6d617Schristos pentiumpro-* | p6-* | 6x86-* | athlon-*) 101775f6d617Schristos basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` 101875f6d617Schristos ;; 1019*cc576e1dSsevan pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 102075f6d617Schristos basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` 102175f6d617Schristos ;; 1022*cc576e1dSsevan pentium4-*) 1023*cc576e1dSsevan basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` 1024*cc576e1dSsevan ;; 102575f6d617Schristos pn) 102675f6d617Schristos basic_machine=pn-gould 102775f6d617Schristos ;; 102875f6d617Schristos power) basic_machine=power-ibm 102975f6d617Schristos ;; 1030*cc576e1dSsevan ppc | ppcbe) basic_machine=powerpc-unknown 103175f6d617Schristos ;; 1032*cc576e1dSsevan ppc-* | ppcbe-*) 1033*cc576e1dSsevan basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` 103475f6d617Schristos ;; 1035*cc576e1dSsevan ppcle | powerpclittle) 103675f6d617Schristos basic_machine=powerpcle-unknown 103775f6d617Schristos ;; 103875f6d617Schristos ppcle-* | powerpclittle-*) 103975f6d617Schristos basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` 104075f6d617Schristos ;; 104175f6d617Schristos ppc64) basic_machine=powerpc64-unknown 104275f6d617Schristos ;; 104375f6d617Schristos ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` 104475f6d617Schristos ;; 1045*cc576e1dSsevan ppc64le | powerpc64little) 104675f6d617Schristos basic_machine=powerpc64le-unknown 104775f6d617Schristos ;; 104875f6d617Schristos ppc64le-* | powerpc64little-*) 104975f6d617Schristos basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` 105075f6d617Schristos ;; 105175f6d617Schristos ps2) 105275f6d617Schristos basic_machine=i386-ibm 105375f6d617Schristos ;; 105475f6d617Schristos pw32) 105575f6d617Schristos basic_machine=i586-unknown 105675f6d617Schristos os=-pw32 105775f6d617Schristos ;; 1058*cc576e1dSsevan rdos | rdos64) 1059*cc576e1dSsevan basic_machine=x86_64-pc 1060*cc576e1dSsevan os=-rdos 1061*cc576e1dSsevan ;; 1062*cc576e1dSsevan rdos32) 1063*cc576e1dSsevan basic_machine=i386-pc 1064*cc576e1dSsevan os=-rdos 1065*cc576e1dSsevan ;; 106675f6d617Schristos rom68k) 106775f6d617Schristos basic_machine=m68k-rom68k 106875f6d617Schristos os=-coff 106975f6d617Schristos ;; 107075f6d617Schristos rm[46]00) 107175f6d617Schristos basic_machine=mips-siemens 107275f6d617Schristos ;; 107375f6d617Schristos rtpc | rtpc-*) 107475f6d617Schristos basic_machine=romp-ibm 107575f6d617Schristos ;; 107675f6d617Schristos s390 | s390-*) 107775f6d617Schristos basic_machine=s390-ibm 107875f6d617Schristos ;; 107975f6d617Schristos s390x | s390x-*) 108075f6d617Schristos basic_machine=s390x-ibm 108175f6d617Schristos ;; 108275f6d617Schristos sa29200) 108375f6d617Schristos basic_machine=a29k-amd 108475f6d617Schristos os=-udi 108575f6d617Schristos ;; 1086*cc576e1dSsevan sb1) 1087*cc576e1dSsevan basic_machine=mipsisa64sb1-unknown 1088*cc576e1dSsevan ;; 1089*cc576e1dSsevan sb1el) 1090*cc576e1dSsevan basic_machine=mipsisa64sb1el-unknown 1091*cc576e1dSsevan ;; 1092*cc576e1dSsevan sde) 1093*cc576e1dSsevan basic_machine=mipsisa32-sde 1094*cc576e1dSsevan os=-elf 1095*cc576e1dSsevan ;; 1096*cc576e1dSsevan sei) 1097*cc576e1dSsevan basic_machine=mips-sei 1098*cc576e1dSsevan os=-seiux 1099*cc576e1dSsevan ;; 110075f6d617Schristos sequent) 110175f6d617Schristos basic_machine=i386-sequent 110275f6d617Schristos ;; 110375f6d617Schristos sh) 110475f6d617Schristos basic_machine=sh-hitachi 110575f6d617Schristos os=-hms 110675f6d617Schristos ;; 1107*cc576e1dSsevan sh5el) 1108*cc576e1dSsevan basic_machine=sh5le-unknown 1109*cc576e1dSsevan ;; 1110*cc576e1dSsevan sh64) 1111*cc576e1dSsevan basic_machine=sh64-unknown 1112*cc576e1dSsevan ;; 111375f6d617Schristos sparclite-wrs | simso-wrs) 111475f6d617Schristos basic_machine=sparclite-wrs 111575f6d617Schristos os=-vxworks 111675f6d617Schristos ;; 111775f6d617Schristos sps7) 111875f6d617Schristos basic_machine=m68k-bull 111975f6d617Schristos os=-sysv2 112075f6d617Schristos ;; 112175f6d617Schristos spur) 112275f6d617Schristos basic_machine=spur-unknown 112375f6d617Schristos ;; 112475f6d617Schristos st2000) 112575f6d617Schristos basic_machine=m68k-tandem 112675f6d617Schristos ;; 112775f6d617Schristos stratus) 112875f6d617Schristos basic_machine=i860-stratus 112975f6d617Schristos os=-sysv4 113075f6d617Schristos ;; 1131*cc576e1dSsevan strongarm-* | thumb-*) 1132*cc576e1dSsevan basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` 1133*cc576e1dSsevan ;; 113475f6d617Schristos sun2) 113575f6d617Schristos basic_machine=m68000-sun 113675f6d617Schristos ;; 113775f6d617Schristos sun2os3) 113875f6d617Schristos basic_machine=m68000-sun 113975f6d617Schristos os=-sunos3 114075f6d617Schristos ;; 114175f6d617Schristos sun2os4) 114275f6d617Schristos basic_machine=m68000-sun 114375f6d617Schristos os=-sunos4 114475f6d617Schristos ;; 114575f6d617Schristos sun3os3) 114675f6d617Schristos basic_machine=m68k-sun 114775f6d617Schristos os=-sunos3 114875f6d617Schristos ;; 114975f6d617Schristos sun3os4) 115075f6d617Schristos basic_machine=m68k-sun 115175f6d617Schristos os=-sunos4 115275f6d617Schristos ;; 115375f6d617Schristos sun4os3) 115475f6d617Schristos basic_machine=sparc-sun 115575f6d617Schristos os=-sunos3 115675f6d617Schristos ;; 115775f6d617Schristos sun4os4) 115875f6d617Schristos basic_machine=sparc-sun 115975f6d617Schristos os=-sunos4 116075f6d617Schristos ;; 116175f6d617Schristos sun4sol2) 116275f6d617Schristos basic_machine=sparc-sun 116375f6d617Schristos os=-solaris2 116475f6d617Schristos ;; 116575f6d617Schristos sun3 | sun3-*) 116675f6d617Schristos basic_machine=m68k-sun 116775f6d617Schristos ;; 116875f6d617Schristos sun4) 116975f6d617Schristos basic_machine=sparc-sun 117075f6d617Schristos ;; 117175f6d617Schristos sun386 | sun386i | roadrunner) 117275f6d617Schristos basic_machine=i386-sun 117375f6d617Schristos ;; 117475f6d617Schristos sv1) 117575f6d617Schristos basic_machine=sv1-cray 117675f6d617Schristos os=-unicos 117775f6d617Schristos ;; 117875f6d617Schristos symmetry) 117975f6d617Schristos basic_machine=i386-sequent 118075f6d617Schristos os=-dynix 118175f6d617Schristos ;; 118275f6d617Schristos t3e) 118375f6d617Schristos basic_machine=alphaev5-cray 118475f6d617Schristos os=-unicos 118575f6d617Schristos ;; 118675f6d617Schristos t90) 118775f6d617Schristos basic_machine=t90-cray 118875f6d617Schristos os=-unicos 118975f6d617Schristos ;; 1190*cc576e1dSsevan tile*) 1191*cc576e1dSsevan basic_machine=$basic_machine-unknown 1192*cc576e1dSsevan os=-linux-gnu 119375f6d617Schristos ;; 119475f6d617Schristos tx39) 119575f6d617Schristos basic_machine=mipstx39-unknown 119675f6d617Schristos ;; 119775f6d617Schristos tx39el) 119875f6d617Schristos basic_machine=mipstx39el-unknown 119975f6d617Schristos ;; 120075f6d617Schristos toad1) 120175f6d617Schristos basic_machine=pdp10-xkl 120275f6d617Schristos os=-tops20 120375f6d617Schristos ;; 120475f6d617Schristos tower | tower-32) 120575f6d617Schristos basic_machine=m68k-ncr 120675f6d617Schristos ;; 1207*cc576e1dSsevan tpf) 1208*cc576e1dSsevan basic_machine=s390x-ibm 1209*cc576e1dSsevan os=-tpf 1210*cc576e1dSsevan ;; 121175f6d617Schristos udi29k) 121275f6d617Schristos basic_machine=a29k-amd 121375f6d617Schristos os=-udi 121475f6d617Schristos ;; 121575f6d617Schristos ultra3) 121675f6d617Schristos basic_machine=a29k-nyu 121775f6d617Schristos os=-sym1 121875f6d617Schristos ;; 121975f6d617Schristos v810 | necv810) 122075f6d617Schristos basic_machine=v810-nec 122175f6d617Schristos os=-none 122275f6d617Schristos ;; 122375f6d617Schristos vaxv) 122475f6d617Schristos basic_machine=vax-dec 122575f6d617Schristos os=-sysv 122675f6d617Schristos ;; 122775f6d617Schristos vms) 122875f6d617Schristos basic_machine=vax-dec 122975f6d617Schristos os=-vms 123075f6d617Schristos ;; 123175f6d617Schristos vpp*|vx|vx-*) 123275f6d617Schristos basic_machine=f301-fujitsu 123375f6d617Schristos ;; 123475f6d617Schristos vxworks960) 123575f6d617Schristos basic_machine=i960-wrs 123675f6d617Schristos os=-vxworks 123775f6d617Schristos ;; 123875f6d617Schristos vxworks68) 123975f6d617Schristos basic_machine=m68k-wrs 124075f6d617Schristos os=-vxworks 124175f6d617Schristos ;; 124275f6d617Schristos vxworks29k) 124375f6d617Schristos basic_machine=a29k-wrs 124475f6d617Schristos os=-vxworks 124575f6d617Schristos ;; 124675f6d617Schristos w65*) 124775f6d617Schristos basic_machine=w65-wdc 124875f6d617Schristos os=-none 124975f6d617Schristos ;; 125075f6d617Schristos w89k-*) 125175f6d617Schristos basic_machine=hppa1.1-winbond 125275f6d617Schristos os=-proelf 125375f6d617Schristos ;; 1254*cc576e1dSsevan xbox) 1255*cc576e1dSsevan basic_machine=i686-pc 1256*cc576e1dSsevan os=-mingw32 125775f6d617Schristos ;; 125875f6d617Schristos xps | xps100) 125975f6d617Schristos basic_machine=xps100-honeywell 126075f6d617Schristos ;; 1261*cc576e1dSsevan xscale-* | xscalee[bl]-*) 1262*cc576e1dSsevan basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` 1263*cc576e1dSsevan ;; 126475f6d617Schristos ymp) 126575f6d617Schristos basic_machine=ymp-cray 126675f6d617Schristos os=-unicos 126775f6d617Schristos ;; 126875f6d617Schristos z8k-*-coff) 126975f6d617Schristos basic_machine=z8k-unknown 127075f6d617Schristos os=-sim 127175f6d617Schristos ;; 1272*cc576e1dSsevan z80-*-coff) 1273*cc576e1dSsevan basic_machine=z80-unknown 1274*cc576e1dSsevan os=-sim 1275*cc576e1dSsevan ;; 127675f6d617Schristos none) 127775f6d617Schristos basic_machine=none-none 127875f6d617Schristos os=-none 127975f6d617Schristos ;; 128075f6d617Schristos 128175f6d617Schristos# Here we handle the default manufacturer of certain CPU types. It is in 128275f6d617Schristos# some cases the only manufacturer, in others, it is the most popular. 128375f6d617Schristos w89k) 128475f6d617Schristos basic_machine=hppa1.1-winbond 128575f6d617Schristos ;; 128675f6d617Schristos op50n) 128775f6d617Schristos basic_machine=hppa1.1-oki 128875f6d617Schristos ;; 128975f6d617Schristos op60c) 129075f6d617Schristos basic_machine=hppa1.1-oki 129175f6d617Schristos ;; 129275f6d617Schristos romp) 129375f6d617Schristos basic_machine=romp-ibm 129475f6d617Schristos ;; 1295*cc576e1dSsevan mmix) 1296*cc576e1dSsevan basic_machine=mmix-knuth 1297*cc576e1dSsevan ;; 129875f6d617Schristos rs6000) 129975f6d617Schristos basic_machine=rs6000-ibm 130075f6d617Schristos ;; 130175f6d617Schristos vax) 130275f6d617Schristos basic_machine=vax-dec 130375f6d617Schristos ;; 130475f6d617Schristos pdp10) 130575f6d617Schristos # there are many clones, so DEC is not a safe bet 130675f6d617Schristos basic_machine=pdp10-unknown 130775f6d617Schristos ;; 130875f6d617Schristos pdp11) 130975f6d617Schristos basic_machine=pdp11-dec 131075f6d617Schristos ;; 131175f6d617Schristos we32k) 131275f6d617Schristos basic_machine=we32k-att 131375f6d617Schristos ;; 1314*cc576e1dSsevan sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) 131575f6d617Schristos basic_machine=sh-unknown 131675f6d617Schristos ;; 1317*cc576e1dSsevan sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) 131875f6d617Schristos basic_machine=sparc-sun 131975f6d617Schristos ;; 132075f6d617Schristos cydra) 132175f6d617Schristos basic_machine=cydra-cydrome 132275f6d617Schristos ;; 132375f6d617Schristos orion) 132475f6d617Schristos basic_machine=orion-highlevel 132575f6d617Schristos ;; 132675f6d617Schristos orion105) 132775f6d617Schristos basic_machine=clipper-highlevel 132875f6d617Schristos ;; 132975f6d617Schristos mac | mpw | mac-mpw) 133075f6d617Schristos basic_machine=m68k-apple 133175f6d617Schristos ;; 133275f6d617Schristos pmac | pmac-mpw) 133375f6d617Schristos basic_machine=powerpc-apple 133475f6d617Schristos ;; 133575f6d617Schristos *-unknown) 133675f6d617Schristos # Make sure to match an already-canonicalized machine name. 133775f6d617Schristos ;; 133875f6d617Schristos *) 133975f6d617Schristos echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 134075f6d617Schristos exit 1 134175f6d617Schristos ;; 134275f6d617Schristosesac 134375f6d617Schristos 134475f6d617Schristos# Here we canonicalize certain aliases for manufacturers. 134575f6d617Schristoscase $basic_machine in 134675f6d617Schristos *-digital*) 134775f6d617Schristos basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` 134875f6d617Schristos ;; 134975f6d617Schristos *-commodore*) 135075f6d617Schristos basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` 135175f6d617Schristos ;; 135275f6d617Schristos *) 135375f6d617Schristos ;; 135475f6d617Schristosesac 135575f6d617Schristos 135675f6d617Schristos# Decode manufacturer-specific aliases for certain operating systems. 135775f6d617Schristos 135875f6d617Schristosif [ x"$os" != x"" ] 135975f6d617Schristosthen 136075f6d617Schristoscase $os in 136175f6d617Schristos # First match some system type aliases 136275f6d617Schristos # that might get confused with valid system types. 136375f6d617Schristos # -solaris* is a basic system type, with this one exception. 1364*cc576e1dSsevan -auroraux) 1365*cc576e1dSsevan os=-auroraux 1366*cc576e1dSsevan ;; 136775f6d617Schristos -solaris1 | -solaris1.*) 136875f6d617Schristos os=`echo $os | sed -e 's|solaris1|sunos4|'` 136975f6d617Schristos ;; 137075f6d617Schristos -solaris) 137175f6d617Schristos os=-solaris2 137275f6d617Schristos ;; 137375f6d617Schristos -svr4*) 137475f6d617Schristos os=-sysv4 137575f6d617Schristos ;; 137675f6d617Schristos -unixware*) 137775f6d617Schristos os=-sysv4.2uw 137875f6d617Schristos ;; 137975f6d617Schristos -gnu/linux*) 138075f6d617Schristos os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` 138175f6d617Schristos ;; 138275f6d617Schristos # First accept the basic system types. 138375f6d617Schristos # The portable systems comes first. 138475f6d617Schristos # Each alternative MUST END IN A *, to match a version number. 138575f6d617Schristos # -sysv* is not here because it comes later, after sysvr4. 138675f6d617Schristos -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ 1387*cc576e1dSsevan | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ 1388*cc576e1dSsevan | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ 1389*cc576e1dSsevan | -sym* | -kopensolaris* | -plan9* \ 139075f6d617Schristos | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ 1391*cc576e1dSsevan | -aos* | -aros* | -cloudabi* | -sortix* \ 139275f6d617Schristos | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ 139375f6d617Schristos | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ 1394*cc576e1dSsevan | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ 1395*cc576e1dSsevan | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ 1396*cc576e1dSsevan | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ 1397*cc576e1dSsevan | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ 139875f6d617Schristos | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ 139975f6d617Schristos | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ 1400*cc576e1dSsevan | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ 1401*cc576e1dSsevan | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ 1402*cc576e1dSsevan | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ 1403*cc576e1dSsevan | -linux-newlib* | -linux-musl* | -linux-uclibc* \ 1404*cc576e1dSsevan | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ 1405*cc576e1dSsevan | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ 140675f6d617Schristos | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ 140775f6d617Schristos | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ 140875f6d617Schristos | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ 1409*cc576e1dSsevan | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ 1410*cc576e1dSsevan | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ 1411*cc576e1dSsevan | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ 1412*cc576e1dSsevan | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) 141375f6d617Schristos # Remember, each alternative MUST END IN *, to match a version number. 141475f6d617Schristos ;; 141575f6d617Schristos -qnx*) 141675f6d617Schristos case $basic_machine in 141775f6d617Schristos x86-* | i*86-*) 141875f6d617Schristos ;; 141975f6d617Schristos *) 142075f6d617Schristos os=-nto$os 142175f6d617Schristos ;; 142275f6d617Schristos esac 142375f6d617Schristos ;; 1424*cc576e1dSsevan -nto-qnx*) 1425*cc576e1dSsevan ;; 142675f6d617Schristos -nto*) 1427*cc576e1dSsevan os=`echo $os | sed -e 's|nto|nto-qnx|'` 142875f6d617Schristos ;; 142975f6d617Schristos -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ 1430*cc576e1dSsevan | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ 143175f6d617Schristos | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) 143275f6d617Schristos ;; 143375f6d617Schristos -mac*) 143475f6d617Schristos os=`echo $os | sed -e 's|mac|macos|'` 143575f6d617Schristos ;; 1436*cc576e1dSsevan -linux-dietlibc) 1437*cc576e1dSsevan os=-linux-dietlibc 1438*cc576e1dSsevan ;; 143975f6d617Schristos -linux*) 144075f6d617Schristos os=`echo $os | sed -e 's|linux|linux-gnu|'` 144175f6d617Schristos ;; 144275f6d617Schristos -sunos5*) 144375f6d617Schristos os=`echo $os | sed -e 's|sunos5|solaris2|'` 144475f6d617Schristos ;; 144575f6d617Schristos -sunos6*) 144675f6d617Schristos os=`echo $os | sed -e 's|sunos6|solaris3|'` 144775f6d617Schristos ;; 144875f6d617Schristos -opened*) 144975f6d617Schristos os=-openedition 145075f6d617Schristos ;; 1451*cc576e1dSsevan -os400*) 1452*cc576e1dSsevan os=-os400 1453*cc576e1dSsevan ;; 145475f6d617Schristos -wince*) 145575f6d617Schristos os=-wince 145675f6d617Schristos ;; 145775f6d617Schristos -osfrose*) 145875f6d617Schristos os=-osfrose 145975f6d617Schristos ;; 146075f6d617Schristos -osf*) 146175f6d617Schristos os=-osf 146275f6d617Schristos ;; 146375f6d617Schristos -utek*) 146475f6d617Schristos os=-bsd 146575f6d617Schristos ;; 146675f6d617Schristos -dynix*) 146775f6d617Schristos os=-bsd 146875f6d617Schristos ;; 146975f6d617Schristos -acis*) 147075f6d617Schristos os=-aos 147175f6d617Schristos ;; 147275f6d617Schristos -atheos*) 147375f6d617Schristos os=-atheos 147475f6d617Schristos ;; 1475*cc576e1dSsevan -syllable*) 1476*cc576e1dSsevan os=-syllable 1477*cc576e1dSsevan ;; 147875f6d617Schristos -386bsd) 147975f6d617Schristos os=-bsd 148075f6d617Schristos ;; 148175f6d617Schristos -ctix* | -uts*) 148275f6d617Schristos os=-sysv 148375f6d617Schristos ;; 148475f6d617Schristos -nova*) 148575f6d617Schristos os=-rtmk-nova 148675f6d617Schristos ;; 148775f6d617Schristos -ns2 ) 148875f6d617Schristos os=-nextstep2 148975f6d617Schristos ;; 149075f6d617Schristos -nsk*) 149175f6d617Schristos os=-nsk 149275f6d617Schristos ;; 149375f6d617Schristos # Preserve the version number of sinix5. 149475f6d617Schristos -sinix5.*) 149575f6d617Schristos os=`echo $os | sed -e 's|sinix|sysv|'` 149675f6d617Schristos ;; 149775f6d617Schristos -sinix*) 149875f6d617Schristos os=-sysv4 149975f6d617Schristos ;; 1500*cc576e1dSsevan -tpf*) 1501*cc576e1dSsevan os=-tpf 1502*cc576e1dSsevan ;; 150375f6d617Schristos -triton*) 150475f6d617Schristos os=-sysv3 150575f6d617Schristos ;; 150675f6d617Schristos -oss*) 150775f6d617Schristos os=-sysv3 150875f6d617Schristos ;; 150975f6d617Schristos -svr4) 151075f6d617Schristos os=-sysv4 151175f6d617Schristos ;; 151275f6d617Schristos -svr3) 151375f6d617Schristos os=-sysv3 151475f6d617Schristos ;; 151575f6d617Schristos -sysvr4) 151675f6d617Schristos os=-sysv4 151775f6d617Schristos ;; 151875f6d617Schristos # This must come after -sysvr4. 151975f6d617Schristos -sysv*) 152075f6d617Schristos ;; 152175f6d617Schristos -ose*) 152275f6d617Schristos os=-ose 152375f6d617Schristos ;; 152475f6d617Schristos -es1800*) 152575f6d617Schristos os=-ose 152675f6d617Schristos ;; 152775f6d617Schristos -xenix) 152875f6d617Schristos os=-xenix 152975f6d617Schristos ;; 153075f6d617Schristos -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) 153175f6d617Schristos os=-mint 153275f6d617Schristos ;; 1533*cc576e1dSsevan -aros*) 1534*cc576e1dSsevan os=-aros 1535*cc576e1dSsevan ;; 1536*cc576e1dSsevan -zvmoe) 1537*cc576e1dSsevan os=-zvmoe 1538*cc576e1dSsevan ;; 1539*cc576e1dSsevan -dicos*) 1540*cc576e1dSsevan os=-dicos 1541*cc576e1dSsevan ;; 1542*cc576e1dSsevan -nacl*) 1543*cc576e1dSsevan ;; 1544*cc576e1dSsevan -ios) 1545*cc576e1dSsevan ;; 154675f6d617Schristos -none) 154775f6d617Schristos ;; 154875f6d617Schristos *) 154975f6d617Schristos # Get rid of the `-' at the beginning of $os. 155075f6d617Schristos os=`echo $os | sed 's/[^-]*-//'` 155175f6d617Schristos echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 155275f6d617Schristos exit 1 155375f6d617Schristos ;; 155475f6d617Schristosesac 155575f6d617Schristoselse 155675f6d617Schristos 155775f6d617Schristos# Here we handle the default operating systems that come with various machines. 155875f6d617Schristos# The value should be what the vendor currently ships out the door with their 155975f6d617Schristos# machine or put another way, the most popular os provided with the machine. 156075f6d617Schristos 156175f6d617Schristos# Note that if you're going to try to match "-MANUFACTURER" here (say, 156275f6d617Schristos# "-sun"), then you have to tell the case statement up towards the top 156375f6d617Schristos# that MANUFACTURER isn't an operating system. Otherwise, code above 156475f6d617Schristos# will signal an error saying that MANUFACTURER isn't an operating 156575f6d617Schristos# system, and we'll never get to this point. 156675f6d617Schristos 156775f6d617Schristoscase $basic_machine in 1568*cc576e1dSsevan score-*) 1569*cc576e1dSsevan os=-elf 1570*cc576e1dSsevan ;; 1571*cc576e1dSsevan spu-*) 1572*cc576e1dSsevan os=-elf 1573*cc576e1dSsevan ;; 157475f6d617Schristos *-acorn) 157575f6d617Schristos os=-riscix1.2 157675f6d617Schristos ;; 157775f6d617Schristos arm*-rebel) 157875f6d617Schristos os=-linux 157975f6d617Schristos ;; 158075f6d617Schristos arm*-semi) 158175f6d617Schristos os=-aout 158275f6d617Schristos ;; 1583*cc576e1dSsevan c4x-* | tic4x-*) 1584*cc576e1dSsevan os=-coff 1585*cc576e1dSsevan ;; 1586*cc576e1dSsevan c8051-*) 1587*cc576e1dSsevan os=-elf 1588*cc576e1dSsevan ;; 1589*cc576e1dSsevan hexagon-*) 1590*cc576e1dSsevan os=-elf 1591*cc576e1dSsevan ;; 1592*cc576e1dSsevan tic54x-*) 1593*cc576e1dSsevan os=-coff 1594*cc576e1dSsevan ;; 1595*cc576e1dSsevan tic55x-*) 1596*cc576e1dSsevan os=-coff 1597*cc576e1dSsevan ;; 1598*cc576e1dSsevan tic6x-*) 1599*cc576e1dSsevan os=-coff 1600*cc576e1dSsevan ;; 160175f6d617Schristos # This must come before the *-dec entry. 160275f6d617Schristos pdp10-*) 160375f6d617Schristos os=-tops20 160475f6d617Schristos ;; 160575f6d617Schristos pdp11-*) 160675f6d617Schristos os=-none 160775f6d617Schristos ;; 160875f6d617Schristos *-dec | vax-*) 160975f6d617Schristos os=-ultrix4.2 161075f6d617Schristos ;; 161175f6d617Schristos m68*-apollo) 161275f6d617Schristos os=-domain 161375f6d617Schristos ;; 161475f6d617Schristos i386-sun) 161575f6d617Schristos os=-sunos4.0.2 161675f6d617Schristos ;; 161775f6d617Schristos m68000-sun) 161875f6d617Schristos os=-sunos3 161975f6d617Schristos ;; 162075f6d617Schristos m68*-cisco) 162175f6d617Schristos os=-aout 162275f6d617Schristos ;; 1623*cc576e1dSsevan mep-*) 1624*cc576e1dSsevan os=-elf 1625*cc576e1dSsevan ;; 162675f6d617Schristos mips*-cisco) 162775f6d617Schristos os=-elf 162875f6d617Schristos ;; 162975f6d617Schristos mips*-*) 163075f6d617Schristos os=-elf 163175f6d617Schristos ;; 163275f6d617Schristos or32-*) 163375f6d617Schristos os=-coff 163475f6d617Schristos ;; 163575f6d617Schristos *-tti) # must be before sparc entry or we get the wrong os. 163675f6d617Schristos os=-sysv3 163775f6d617Schristos ;; 163875f6d617Schristos sparc-* | *-sun) 163975f6d617Schristos os=-sunos4.1.1 164075f6d617Schristos ;; 1641*cc576e1dSsevan pru-*) 1642*cc576e1dSsevan os=-elf 1643*cc576e1dSsevan ;; 164475f6d617Schristos *-be) 164575f6d617Schristos os=-beos 164675f6d617Schristos ;; 1647*cc576e1dSsevan *-haiku) 1648*cc576e1dSsevan os=-haiku 1649*cc576e1dSsevan ;; 165075f6d617Schristos *-ibm) 165175f6d617Schristos os=-aix 165275f6d617Schristos ;; 1653*cc576e1dSsevan *-knuth) 1654*cc576e1dSsevan os=-mmixware 1655*cc576e1dSsevan ;; 165675f6d617Schristos *-wec) 165775f6d617Schristos os=-proelf 165875f6d617Schristos ;; 165975f6d617Schristos *-winbond) 166075f6d617Schristos os=-proelf 166175f6d617Schristos ;; 166275f6d617Schristos *-oki) 166375f6d617Schristos os=-proelf 166475f6d617Schristos ;; 166575f6d617Schristos *-hp) 166675f6d617Schristos os=-hpux 166775f6d617Schristos ;; 166875f6d617Schristos *-hitachi) 166975f6d617Schristos os=-hiux 167075f6d617Schristos ;; 167175f6d617Schristos i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 167275f6d617Schristos os=-sysv 167375f6d617Schristos ;; 167475f6d617Schristos *-cbm) 167575f6d617Schristos os=-amigaos 167675f6d617Schristos ;; 167775f6d617Schristos *-dg) 167875f6d617Schristos os=-dgux 167975f6d617Schristos ;; 168075f6d617Schristos *-dolphin) 168175f6d617Schristos os=-sysv3 168275f6d617Schristos ;; 168375f6d617Schristos m68k-ccur) 168475f6d617Schristos os=-rtu 168575f6d617Schristos ;; 168675f6d617Schristos m88k-omron*) 168775f6d617Schristos os=-luna 168875f6d617Schristos ;; 168975f6d617Schristos *-next ) 169075f6d617Schristos os=-nextstep 169175f6d617Schristos ;; 169275f6d617Schristos *-sequent) 169375f6d617Schristos os=-ptx 169475f6d617Schristos ;; 169575f6d617Schristos *-crds) 169675f6d617Schristos os=-unos 169775f6d617Schristos ;; 169875f6d617Schristos *-ns) 169975f6d617Schristos os=-genix 170075f6d617Schristos ;; 170175f6d617Schristos i370-*) 170275f6d617Schristos os=-mvs 170375f6d617Schristos ;; 170475f6d617Schristos *-next) 170575f6d617Schristos os=-nextstep3 170675f6d617Schristos ;; 170775f6d617Schristos *-gould) 170875f6d617Schristos os=-sysv 170975f6d617Schristos ;; 171075f6d617Schristos *-highlevel) 171175f6d617Schristos os=-bsd 171275f6d617Schristos ;; 171375f6d617Schristos *-encore) 171475f6d617Schristos os=-bsd 171575f6d617Schristos ;; 171675f6d617Schristos *-sgi) 171775f6d617Schristos os=-irix 171875f6d617Schristos ;; 171975f6d617Schristos *-siemens) 172075f6d617Schristos os=-sysv4 172175f6d617Schristos ;; 172275f6d617Schristos *-masscomp) 172375f6d617Schristos os=-rtu 172475f6d617Schristos ;; 172575f6d617Schristos f30[01]-fujitsu | f700-fujitsu) 172675f6d617Schristos os=-uxpv 172775f6d617Schristos ;; 172875f6d617Schristos *-rom68k) 172975f6d617Schristos os=-coff 173075f6d617Schristos ;; 173175f6d617Schristos *-*bug) 173275f6d617Schristos os=-coff 173375f6d617Schristos ;; 173475f6d617Schristos *-apple) 173575f6d617Schristos os=-macos 173675f6d617Schristos ;; 173775f6d617Schristos *-atari*) 173875f6d617Schristos os=-mint 173975f6d617Schristos ;; 174075f6d617Schristos *) 174175f6d617Schristos os=-none 174275f6d617Schristos ;; 174375f6d617Schristosesac 174475f6d617Schristosfi 174575f6d617Schristos 174675f6d617Schristos# Here we handle the case where we know the os, and the CPU type, but not the 174775f6d617Schristos# manufacturer. We pick the logical manufacturer. 174875f6d617Schristosvendor=unknown 174975f6d617Schristoscase $basic_machine in 175075f6d617Schristos *-unknown) 175175f6d617Schristos case $os in 175275f6d617Schristos -riscix*) 175375f6d617Schristos vendor=acorn 175475f6d617Schristos ;; 175575f6d617Schristos -sunos*) 175675f6d617Schristos vendor=sun 175775f6d617Schristos ;; 1758*cc576e1dSsevan -cnk*|-aix*) 175975f6d617Schristos vendor=ibm 176075f6d617Schristos ;; 176175f6d617Schristos -beos*) 176275f6d617Schristos vendor=be 176375f6d617Schristos ;; 176475f6d617Schristos -hpux*) 176575f6d617Schristos vendor=hp 176675f6d617Schristos ;; 176775f6d617Schristos -mpeix*) 176875f6d617Schristos vendor=hp 176975f6d617Schristos ;; 177075f6d617Schristos -hiux*) 177175f6d617Schristos vendor=hitachi 177275f6d617Schristos ;; 177375f6d617Schristos -unos*) 177475f6d617Schristos vendor=crds 177575f6d617Schristos ;; 177675f6d617Schristos -dgux*) 177775f6d617Schristos vendor=dg 177875f6d617Schristos ;; 177975f6d617Schristos -luna*) 178075f6d617Schristos vendor=omron 178175f6d617Schristos ;; 178275f6d617Schristos -genix*) 178375f6d617Schristos vendor=ns 178475f6d617Schristos ;; 178575f6d617Schristos -mvs* | -opened*) 178675f6d617Schristos vendor=ibm 178775f6d617Schristos ;; 1788*cc576e1dSsevan -os400*) 1789*cc576e1dSsevan vendor=ibm 1790*cc576e1dSsevan ;; 179175f6d617Schristos -ptx*) 179275f6d617Schristos vendor=sequent 179375f6d617Schristos ;; 1794*cc576e1dSsevan -tpf*) 1795*cc576e1dSsevan vendor=ibm 1796*cc576e1dSsevan ;; 1797*cc576e1dSsevan -vxsim* | -vxworks* | -windiss*) 179875f6d617Schristos vendor=wrs 179975f6d617Schristos ;; 180075f6d617Schristos -aux*) 180175f6d617Schristos vendor=apple 180275f6d617Schristos ;; 180375f6d617Schristos -hms*) 180475f6d617Schristos vendor=hitachi 180575f6d617Schristos ;; 180675f6d617Schristos -mpw* | -macos*) 180775f6d617Schristos vendor=apple 180875f6d617Schristos ;; 180975f6d617Schristos -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) 181075f6d617Schristos vendor=atari 181175f6d617Schristos ;; 181275f6d617Schristos -vos*) 181375f6d617Schristos vendor=stratus 181475f6d617Schristos ;; 181575f6d617Schristos esac 181675f6d617Schristos basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` 181775f6d617Schristos ;; 181875f6d617Schristosesac 181975f6d617Schristos 182075f6d617Schristosecho $basic_machine$os 1821*cc576e1dSsevanexit 182275f6d617Schristos 182375f6d617Schristos# Local variables: 182475f6d617Schristos# eval: (add-hook 'write-file-hooks 'time-stamp) 182575f6d617Schristos# time-stamp-start: "timestamp='" 182675f6d617Schristos# time-stamp-format: "%:y-%02m-%02d" 182775f6d617Schristos# time-stamp-end: "'" 182875f6d617Schristos# End: 1829