1a4f78defSmrg#! /bin/sh 2a4f78defSmrg# Configuration validation subroutine script. 3fb570538Smrg# Copyright 1992-2018 Free Software Foundation, Inc. 4a4f78defSmrg 5fb570538Smrgtimestamp='2018-03-08' 6a4f78defSmrg 7a4f78defSmrg# This file is free software; you can redistribute it and/or modify it 8a4f78defSmrg# under the terms of the GNU General Public License as published by 9a4f78defSmrg# the Free Software Foundation; either version 3 of the License, or 10a4f78defSmrg# (at your option) any later version. 11a4f78defSmrg# 12a4f78defSmrg# This program is distributed in the hope that it will be useful, but 13a4f78defSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of 14a4f78defSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15a4f78defSmrg# General Public License for more details. 16a4f78defSmrg# 17a4f78defSmrg# You should have received a copy of the GNU General Public License 18fb570538Smrg# along with this program; if not, see <https://www.gnu.org/licenses/>. 19a4f78defSmrg# 20a4f78defSmrg# As a special exception to the GNU General Public License, if you 21a4f78defSmrg# distribute this file as part of a program that contains a 22a4f78defSmrg# configuration script generated by Autoconf, you may include it under 23a4f78defSmrg# the same distribution terms that you use for the rest of that 24a4f78defSmrg# program. This Exception is an additional permission under section 7 25a4f78defSmrg# of the GNU General Public License, version 3 ("GPLv3"). 26a4f78defSmrg 27a4f78defSmrg 28a4f78defSmrg# Please send patches to <config-patches@gnu.org>. 29a4f78defSmrg# 30a4f78defSmrg# Configuration subroutine to validate and canonicalize a configuration type. 31a4f78defSmrg# Supply the specified configuration type as an argument. 32a4f78defSmrg# If it is invalid, we print an error message on stderr and exit with code 1. 33a4f78defSmrg# Otherwise, we print the canonical config type on stdout and succeed. 34a4f78defSmrg 35a4f78defSmrg# You can get the latest version of this script from: 36fb570538Smrg# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub 37a4f78defSmrg 38a4f78defSmrg# This file is supposed to be the same for all GNU packages 39a4f78defSmrg# and recognize all the CPU types, system types and aliases 40a4f78defSmrg# that are meaningful with *any* GNU software. 41a4f78defSmrg# Each package is responsible for reporting which valid configurations 42a4f78defSmrg# it does not support. The user should be able to distinguish 43a4f78defSmrg# a failure to support a valid configuration from a meaningless 44a4f78defSmrg# configuration. 45a4f78defSmrg 46a4f78defSmrg# The goal of this file is to map all the various variations of a given 47a4f78defSmrg# machine specification into a single specification in the form: 48a4f78defSmrg# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 49a4f78defSmrg# or in some cases, the newer four-part form: 50a4f78defSmrg# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 51a4f78defSmrg# It is wrong to echo any other type of specification. 52a4f78defSmrg 53a4f78defSmrgme=`echo "$0" | sed -e 's,.*/,,'` 54a4f78defSmrg 55a4f78defSmrgusage="\ 56fb570538SmrgUsage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS 57a4f78defSmrg 58a4f78defSmrgCanonicalize a configuration name. 59a4f78defSmrg 60fb570538SmrgOptions: 61a4f78defSmrg -h, --help print this help, then exit 62a4f78defSmrg -t, --time-stamp print date of last modification, then exit 63a4f78defSmrg -v, --version print version number, then exit 64a4f78defSmrg 65a4f78defSmrgReport bugs and patches to <config-patches@gnu.org>." 66a4f78defSmrg 67a4f78defSmrgversion="\ 68a4f78defSmrgGNU config.sub ($timestamp) 69a4f78defSmrg 70fb570538SmrgCopyright 1992-2018 Free Software Foundation, Inc. 71a4f78defSmrg 72a4f78defSmrgThis is free software; see the source for copying conditions. There is NO 73a4f78defSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 74a4f78defSmrg 75a4f78defSmrghelp=" 76a4f78defSmrgTry \`$me --help' for more information." 77a4f78defSmrg 78a4f78defSmrg# Parse command line 79a4f78defSmrgwhile test $# -gt 0 ; do 80a4f78defSmrg case $1 in 81a4f78defSmrg --time-stamp | --time* | -t ) 82a4f78defSmrg echo "$timestamp" ; exit ;; 83a4f78defSmrg --version | -v ) 84a4f78defSmrg echo "$version" ; exit ;; 85a4f78defSmrg --help | --h* | -h ) 86a4f78defSmrg echo "$usage"; exit ;; 87a4f78defSmrg -- ) # Stop option processing 88a4f78defSmrg shift; break ;; 89a4f78defSmrg - ) # Use stdin as input. 90a4f78defSmrg break ;; 91a4f78defSmrg -* ) 92a4f78defSmrg echo "$me: invalid option $1$help" 93a4f78defSmrg exit 1 ;; 94a4f78defSmrg 95a4f78defSmrg *local*) 96a4f78defSmrg # First pass through any local machine types. 97fb570538Smrg echo "$1" 98a4f78defSmrg exit ;; 99a4f78defSmrg 100a4f78defSmrg * ) 101a4f78defSmrg break ;; 102a4f78defSmrg esac 103a4f78defSmrgdone 104a4f78defSmrg 105a4f78defSmrgcase $# in 106a4f78defSmrg 0) echo "$me: missing argument$help" >&2 107a4f78defSmrg exit 1;; 108a4f78defSmrg 1) ;; 109a4f78defSmrg *) echo "$me: too many arguments$help" >&2 110a4f78defSmrg exit 1;; 111a4f78defSmrgesac 112a4f78defSmrg 113a4f78defSmrg# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). 114a4f78defSmrg# Here we must recognize all the valid KERNEL-OS combinations. 115fb570538Smrgmaybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` 116a4f78defSmrgcase $maybe_os in 117a4f78defSmrg nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ 118a4f78defSmrg linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ 119fb570538Smrg knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ 120fb570538Smrg kopensolaris*-gnu* | cloudabi*-eabi* | \ 121a4f78defSmrg storm-chaos* | os2-emx* | rtmk-nova*) 122a4f78defSmrg os=-$maybe_os 123fb570538Smrg basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` 124a4f78defSmrg ;; 125a4f78defSmrg android-linux) 126a4f78defSmrg os=-linux-android 127fb570538Smrg basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown 128a4f78defSmrg ;; 129a4f78defSmrg *) 130fb570538Smrg basic_machine=`echo "$1" | sed 's/-[^-]*$//'` 131fb570538Smrg if [ "$basic_machine" != "$1" ] 132fb570538Smrg then os=`echo "$1" | sed 's/.*-/-/'` 133a4f78defSmrg else os=; fi 134a4f78defSmrg ;; 135a4f78defSmrgesac 136a4f78defSmrg 137a4f78defSmrg### Let's recognize common machines as not being operating systems so 138a4f78defSmrg### that things like config.sub decstation-3100 work. We also 139a4f78defSmrg### recognize some manufacturers as not being operating systems, so we 140a4f78defSmrg### can provide default operating systems below. 141a4f78defSmrgcase $os in 142a4f78defSmrg -sun*os*) 143a4f78defSmrg # Prevent following clause from handling this invalid input. 144a4f78defSmrg ;; 145a4f78defSmrg -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ 146a4f78defSmrg -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ 147a4f78defSmrg -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ 148a4f78defSmrg -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ 149a4f78defSmrg -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ 150a4f78defSmrg -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ 151a4f78defSmrg -apple | -axis | -knuth | -cray | -microblaze*) 152a4f78defSmrg os= 153a4f78defSmrg basic_machine=$1 154a4f78defSmrg ;; 155a4f78defSmrg -bluegene*) 156a4f78defSmrg os=-cnk 157a4f78defSmrg ;; 158a4f78defSmrg -sim | -cisco | -oki | -wec | -winbond) 159a4f78defSmrg os= 160a4f78defSmrg basic_machine=$1 161a4f78defSmrg ;; 162a4f78defSmrg -scout) 163a4f78defSmrg ;; 164a4f78defSmrg -wrs) 165a4f78defSmrg os=-vxworks 166a4f78defSmrg basic_machine=$1 167a4f78defSmrg ;; 168a4f78defSmrg -chorusos*) 169a4f78defSmrg os=-chorusos 170a4f78defSmrg basic_machine=$1 171a4f78defSmrg ;; 172a4f78defSmrg -chorusrdb) 173a4f78defSmrg os=-chorusrdb 174a4f78defSmrg basic_machine=$1 175a4f78defSmrg ;; 176a4f78defSmrg -hiux*) 177a4f78defSmrg os=-hiuxwe2 178a4f78defSmrg ;; 179a4f78defSmrg -sco6) 180a4f78defSmrg os=-sco5v6 181fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` 182a4f78defSmrg ;; 183a4f78defSmrg -sco5) 184a4f78defSmrg os=-sco3.2v5 185fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` 186a4f78defSmrg ;; 187a4f78defSmrg -sco4) 188a4f78defSmrg os=-sco3.2v4 189fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` 190a4f78defSmrg ;; 191a4f78defSmrg -sco3.2.[4-9]*) 192a4f78defSmrg os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` 193fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` 194a4f78defSmrg ;; 195a4f78defSmrg -sco3.2v[4-9]*) 196a4f78defSmrg # Don't forget version if it is 3.2v4 or newer. 197fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` 198a4f78defSmrg ;; 199a4f78defSmrg -sco5v6*) 200a4f78defSmrg # Don't forget version if it is 3.2v4 or newer. 201fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` 202a4f78defSmrg ;; 203a4f78defSmrg -sco*) 204a4f78defSmrg os=-sco3.2v2 205fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` 206a4f78defSmrg ;; 207a4f78defSmrg -udk*) 208fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` 209a4f78defSmrg ;; 210a4f78defSmrg -isc) 211a4f78defSmrg os=-isc2.2 212fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` 213a4f78defSmrg ;; 214a4f78defSmrg -clix*) 215a4f78defSmrg basic_machine=clipper-intergraph 216a4f78defSmrg ;; 217a4f78defSmrg -isc*) 218fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` 219a4f78defSmrg ;; 220a4f78defSmrg -lynx*178) 221a4f78defSmrg os=-lynxos178 222a4f78defSmrg ;; 223a4f78defSmrg -lynx*5) 224a4f78defSmrg os=-lynxos5 225a4f78defSmrg ;; 226a4f78defSmrg -lynx*) 227a4f78defSmrg os=-lynxos 228a4f78defSmrg ;; 229a4f78defSmrg -ptx*) 230fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` 231a4f78defSmrg ;; 232a4f78defSmrg -psos*) 233a4f78defSmrg os=-psos 234a4f78defSmrg ;; 235a4f78defSmrg -mint | -mint[0-9]*) 236a4f78defSmrg basic_machine=m68k-atari 237a4f78defSmrg os=-mint 238a4f78defSmrg ;; 239a4f78defSmrgesac 240a4f78defSmrg 241a4f78defSmrg# Decode aliases for certain CPU-COMPANY combinations. 242a4f78defSmrgcase $basic_machine in 243a4f78defSmrg # Recognize the basic CPU types without company name. 244a4f78defSmrg # Some are omitted here because they have special meanings below. 245a4f78defSmrg 1750a | 580 \ 246a4f78defSmrg | a29k \ 247a4f78defSmrg | aarch64 | aarch64_be \ 248a4f78defSmrg | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ 249a4f78defSmrg | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ 250a4f78defSmrg | am33_2.0 \ 251a4f78defSmrg | arc | arceb \ 252a4f78defSmrg | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ 253a4f78defSmrg | avr | avr32 \ 254fb570538Smrg | ba \ 255a4f78defSmrg | be32 | be64 \ 256a4f78defSmrg | bfin \ 257a4f78defSmrg | c4x | c8051 | clipper \ 258a4f78defSmrg | d10v | d30v | dlx | dsp16xx \ 259fb570538Smrg | e2k | epiphany \ 260fb570538Smrg | fido | fr30 | frv | ft32 \ 261a4f78defSmrg | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 262a4f78defSmrg | hexagon \ 263fb570538Smrg | i370 | i860 | i960 | ia16 | ia64 \ 264a4f78defSmrg | ip2k | iq2000 \ 265a4f78defSmrg | k1om \ 266a4f78defSmrg | le32 | le64 \ 267a4f78defSmrg | lm32 \ 268a4f78defSmrg | m32c | m32r | m32rle | m68000 | m68k | m88k \ 269a4f78defSmrg | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ 270a4f78defSmrg | mips | mipsbe | mipseb | mipsel | mipsle \ 271a4f78defSmrg | mips16 \ 272a4f78defSmrg | mips64 | mips64el \ 273a4f78defSmrg | mips64octeon | mips64octeonel \ 274a4f78defSmrg | mips64orion | mips64orionel \ 275a4f78defSmrg | mips64r5900 | mips64r5900el \ 276a4f78defSmrg | mips64vr | mips64vrel \ 277a4f78defSmrg | mips64vr4100 | mips64vr4100el \ 278a4f78defSmrg | mips64vr4300 | mips64vr4300el \ 279a4f78defSmrg | mips64vr5000 | mips64vr5000el \ 280a4f78defSmrg | mips64vr5900 | mips64vr5900el \ 281a4f78defSmrg | mipsisa32 | mipsisa32el \ 282a4f78defSmrg | mipsisa32r2 | mipsisa32r2el \ 283a4f78defSmrg | mipsisa32r6 | mipsisa32r6el \ 284a4f78defSmrg | mipsisa64 | mipsisa64el \ 285a4f78defSmrg | mipsisa64r2 | mipsisa64r2el \ 286a4f78defSmrg | mipsisa64r6 | mipsisa64r6el \ 287a4f78defSmrg | mipsisa64sb1 | mipsisa64sb1el \ 288a4f78defSmrg | mipsisa64sr71k | mipsisa64sr71kel \ 289a4f78defSmrg | mipsr5900 | mipsr5900el \ 290a4f78defSmrg | mipstx39 | mipstx39el \ 291a4f78defSmrg | mn10200 | mn10300 \ 292a4f78defSmrg | moxie \ 293a4f78defSmrg | mt \ 294a4f78defSmrg | msp430 \ 295a4f78defSmrg | nds32 | nds32le | nds32be \ 296a4f78defSmrg | nios | nios2 | nios2eb | nios2el \ 297a4f78defSmrg | ns16k | ns32k \ 298a4f78defSmrg | open8 | or1k | or1knd | or32 \ 299fb570538Smrg | pdp10 | pj | pjl \ 300a4f78defSmrg | powerpc | powerpc64 | powerpc64le | powerpcle \ 301fb570538Smrg | pru \ 302a4f78defSmrg | pyramid \ 303a4f78defSmrg | riscv32 | riscv64 \ 304a4f78defSmrg | rl78 | rx \ 305a4f78defSmrg | score \ 306fb570538Smrg | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ 307a4f78defSmrg | sh64 | sh64le \ 308a4f78defSmrg | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ 309a4f78defSmrg | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ 310a4f78defSmrg | spu \ 311a4f78defSmrg | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ 312a4f78defSmrg | ubicom32 \ 313a4f78defSmrg | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ 314a4f78defSmrg | visium \ 315fb570538Smrg | wasm32 \ 316a4f78defSmrg | x86 | xc16x | xstormy16 | xtensa \ 317a4f78defSmrg | z8k | z80) 318a4f78defSmrg basic_machine=$basic_machine-unknown 319a4f78defSmrg ;; 320a4f78defSmrg c54x) 321a4f78defSmrg basic_machine=tic54x-unknown 322a4f78defSmrg ;; 323a4f78defSmrg c55x) 324a4f78defSmrg basic_machine=tic55x-unknown 325a4f78defSmrg ;; 326a4f78defSmrg c6x) 327a4f78defSmrg basic_machine=tic6x-unknown 328a4f78defSmrg ;; 329a4f78defSmrg leon|leon[3-9]) 330a4f78defSmrg basic_machine=sparc-$basic_machine 331a4f78defSmrg ;; 332a4f78defSmrg m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) 333a4f78defSmrg basic_machine=$basic_machine-unknown 334a4f78defSmrg os=-none 335a4f78defSmrg ;; 336fb570538Smrg m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) 337a4f78defSmrg ;; 338a4f78defSmrg ms1) 339a4f78defSmrg basic_machine=mt-unknown 340a4f78defSmrg ;; 341a4f78defSmrg 342a4f78defSmrg strongarm | thumb | xscale) 343a4f78defSmrg basic_machine=arm-unknown 344a4f78defSmrg ;; 345a4f78defSmrg xgate) 346a4f78defSmrg basic_machine=$basic_machine-unknown 347a4f78defSmrg os=-none 348a4f78defSmrg ;; 349a4f78defSmrg xscaleeb) 350a4f78defSmrg basic_machine=armeb-unknown 351a4f78defSmrg ;; 352a4f78defSmrg 353a4f78defSmrg xscaleel) 354a4f78defSmrg basic_machine=armel-unknown 355a4f78defSmrg ;; 356a4f78defSmrg 357a4f78defSmrg # We use `pc' rather than `unknown' 358a4f78defSmrg # because (1) that's what they normally are, and 359a4f78defSmrg # (2) the word "unknown" tends to confuse beginning users. 360a4f78defSmrg i*86 | x86_64) 361a4f78defSmrg basic_machine=$basic_machine-pc 362a4f78defSmrg ;; 363a4f78defSmrg # Object if more than one company name word. 364a4f78defSmrg *-*-*) 365fb570538Smrg echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 366a4f78defSmrg exit 1 367a4f78defSmrg ;; 368a4f78defSmrg # Recognize the basic CPU types with company name. 369a4f78defSmrg 580-* \ 370a4f78defSmrg | a29k-* \ 371a4f78defSmrg | aarch64-* | aarch64_be-* \ 372a4f78defSmrg | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ 373a4f78defSmrg | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ 374a4f78defSmrg | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ 375a4f78defSmrg | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ 376a4f78defSmrg | avr-* | avr32-* \ 377fb570538Smrg | ba-* \ 378a4f78defSmrg | be32-* | be64-* \ 379a4f78defSmrg | bfin-* | bs2000-* \ 380a4f78defSmrg | c[123]* | c30-* | [cjt]90-* | c4x-* \ 381a4f78defSmrg | c8051-* | clipper-* | craynv-* | cydra-* \ 382a4f78defSmrg | d10v-* | d30v-* | dlx-* \ 383fb570538Smrg | e2k-* | elxsi-* \ 384a4f78defSmrg | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ 385a4f78defSmrg | h8300-* | h8500-* \ 386a4f78defSmrg | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ 387a4f78defSmrg | hexagon-* \ 388fb570538Smrg | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ 389a4f78defSmrg | ip2k-* | iq2000-* \ 390a4f78defSmrg | k1om-* \ 391a4f78defSmrg | le32-* | le64-* \ 392a4f78defSmrg | lm32-* \ 393a4f78defSmrg | m32c-* | m32r-* | m32rle-* \ 394a4f78defSmrg | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ 395a4f78defSmrg | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ 396a4f78defSmrg | microblaze-* | microblazeel-* \ 397a4f78defSmrg | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ 398a4f78defSmrg | mips16-* \ 399a4f78defSmrg | mips64-* | mips64el-* \ 400a4f78defSmrg | mips64octeon-* | mips64octeonel-* \ 401a4f78defSmrg | mips64orion-* | mips64orionel-* \ 402a4f78defSmrg | mips64r5900-* | mips64r5900el-* \ 403a4f78defSmrg | mips64vr-* | mips64vrel-* \ 404a4f78defSmrg | mips64vr4100-* | mips64vr4100el-* \ 405a4f78defSmrg | mips64vr4300-* | mips64vr4300el-* \ 406a4f78defSmrg | mips64vr5000-* | mips64vr5000el-* \ 407a4f78defSmrg | mips64vr5900-* | mips64vr5900el-* \ 408a4f78defSmrg | mipsisa32-* | mipsisa32el-* \ 409a4f78defSmrg | mipsisa32r2-* | mipsisa32r2el-* \ 410a4f78defSmrg | mipsisa32r6-* | mipsisa32r6el-* \ 411a4f78defSmrg | mipsisa64-* | mipsisa64el-* \ 412a4f78defSmrg | mipsisa64r2-* | mipsisa64r2el-* \ 413a4f78defSmrg | mipsisa64r6-* | mipsisa64r6el-* \ 414a4f78defSmrg | mipsisa64sb1-* | mipsisa64sb1el-* \ 415a4f78defSmrg | mipsisa64sr71k-* | mipsisa64sr71kel-* \ 416a4f78defSmrg | mipsr5900-* | mipsr5900el-* \ 417a4f78defSmrg | mipstx39-* | mipstx39el-* \ 418a4f78defSmrg | mmix-* \ 419a4f78defSmrg | mt-* \ 420a4f78defSmrg | msp430-* \ 421a4f78defSmrg | nds32-* | nds32le-* | nds32be-* \ 422a4f78defSmrg | nios-* | nios2-* | nios2eb-* | nios2el-* \ 423a4f78defSmrg | none-* | np1-* | ns16k-* | ns32k-* \ 424a4f78defSmrg | open8-* \ 425a4f78defSmrg | or1k*-* \ 426a4f78defSmrg | orion-* \ 427a4f78defSmrg | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ 428a4f78defSmrg | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ 429fb570538Smrg | pru-* \ 430a4f78defSmrg | pyramid-* \ 431fb570538Smrg | riscv32-* | riscv64-* \ 432a4f78defSmrg | rl78-* | romp-* | rs6000-* | rx-* \ 433a4f78defSmrg | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ 434a4f78defSmrg | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ 435a4f78defSmrg | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ 436a4f78defSmrg | sparclite-* \ 437fb570538Smrg | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ 438a4f78defSmrg | tahoe-* \ 439a4f78defSmrg | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ 440a4f78defSmrg | tile*-* \ 441a4f78defSmrg | tron-* \ 442a4f78defSmrg | ubicom32-* \ 443a4f78defSmrg | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ 444a4f78defSmrg | vax-* \ 445a4f78defSmrg | visium-* \ 446fb570538Smrg | wasm32-* \ 447a4f78defSmrg | we32k-* \ 448a4f78defSmrg | x86-* | x86_64-* | xc16x-* | xps100-* \ 449a4f78defSmrg | xstormy16-* | xtensa*-* \ 450a4f78defSmrg | ymp-* \ 451a4f78defSmrg | z8k-* | z80-*) 452a4f78defSmrg ;; 453a4f78defSmrg # Recognize the basic CPU types without company name, with glob match. 454a4f78defSmrg xtensa*) 455a4f78defSmrg basic_machine=$basic_machine-unknown 456a4f78defSmrg ;; 457a4f78defSmrg # Recognize the various machine names and aliases which stand 458a4f78defSmrg # for a CPU type and a company and sometimes even an OS. 459a4f78defSmrg 386bsd) 460fb570538Smrg basic_machine=i386-pc 461a4f78defSmrg os=-bsd 462a4f78defSmrg ;; 463a4f78defSmrg 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 464a4f78defSmrg basic_machine=m68000-att 465a4f78defSmrg ;; 466a4f78defSmrg 3b*) 467a4f78defSmrg basic_machine=we32k-att 468a4f78defSmrg ;; 469a4f78defSmrg a29khif) 470a4f78defSmrg basic_machine=a29k-amd 471a4f78defSmrg os=-udi 472a4f78defSmrg ;; 473a4f78defSmrg abacus) 474a4f78defSmrg basic_machine=abacus-unknown 475a4f78defSmrg ;; 476a4f78defSmrg adobe68k) 477a4f78defSmrg basic_machine=m68010-adobe 478a4f78defSmrg os=-scout 479a4f78defSmrg ;; 480a4f78defSmrg alliant | fx80) 481a4f78defSmrg basic_machine=fx80-alliant 482a4f78defSmrg ;; 483a4f78defSmrg altos | altos3068) 484a4f78defSmrg basic_machine=m68k-altos 485a4f78defSmrg ;; 486a4f78defSmrg am29k) 487a4f78defSmrg basic_machine=a29k-none 488a4f78defSmrg os=-bsd 489a4f78defSmrg ;; 490a4f78defSmrg amd64) 491a4f78defSmrg basic_machine=x86_64-pc 492a4f78defSmrg ;; 493a4f78defSmrg amd64-*) 494fb570538Smrg basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` 495a4f78defSmrg ;; 496a4f78defSmrg amdahl) 497a4f78defSmrg basic_machine=580-amdahl 498a4f78defSmrg os=-sysv 499a4f78defSmrg ;; 500a4f78defSmrg amiga | amiga-*) 501a4f78defSmrg basic_machine=m68k-unknown 502a4f78defSmrg ;; 503a4f78defSmrg amigaos | amigados) 504a4f78defSmrg basic_machine=m68k-unknown 505a4f78defSmrg os=-amigaos 506a4f78defSmrg ;; 507a4f78defSmrg amigaunix | amix) 508a4f78defSmrg basic_machine=m68k-unknown 509a4f78defSmrg os=-sysv4 510a4f78defSmrg ;; 511a4f78defSmrg apollo68) 512a4f78defSmrg basic_machine=m68k-apollo 513a4f78defSmrg os=-sysv 514a4f78defSmrg ;; 515a4f78defSmrg apollo68bsd) 516a4f78defSmrg basic_machine=m68k-apollo 517a4f78defSmrg os=-bsd 518a4f78defSmrg ;; 519a4f78defSmrg aros) 520a4f78defSmrg basic_machine=i386-pc 521a4f78defSmrg os=-aros 522a4f78defSmrg ;; 523fb570538Smrg asmjs) 524fb570538Smrg basic_machine=asmjs-unknown 525fb570538Smrg ;; 526a4f78defSmrg aux) 527a4f78defSmrg basic_machine=m68k-apple 528a4f78defSmrg os=-aux 529a4f78defSmrg ;; 530a4f78defSmrg balance) 531a4f78defSmrg basic_machine=ns32k-sequent 532a4f78defSmrg os=-dynix 533a4f78defSmrg ;; 534a4f78defSmrg blackfin) 535a4f78defSmrg basic_machine=bfin-unknown 536a4f78defSmrg os=-linux 537a4f78defSmrg ;; 538a4f78defSmrg blackfin-*) 539fb570538Smrg basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` 540a4f78defSmrg os=-linux 541a4f78defSmrg ;; 542a4f78defSmrg bluegene*) 543a4f78defSmrg basic_machine=powerpc-ibm 544a4f78defSmrg os=-cnk 545a4f78defSmrg ;; 546a4f78defSmrg c54x-*) 547fb570538Smrg basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` 548a4f78defSmrg ;; 549a4f78defSmrg c55x-*) 550fb570538Smrg basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` 551a4f78defSmrg ;; 552a4f78defSmrg c6x-*) 553fb570538Smrg basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` 554a4f78defSmrg ;; 555a4f78defSmrg c90) 556a4f78defSmrg basic_machine=c90-cray 557a4f78defSmrg os=-unicos 558a4f78defSmrg ;; 559a4f78defSmrg cegcc) 560a4f78defSmrg basic_machine=arm-unknown 561a4f78defSmrg os=-cegcc 562a4f78defSmrg ;; 563a4f78defSmrg convex-c1) 564a4f78defSmrg basic_machine=c1-convex 565a4f78defSmrg os=-bsd 566a4f78defSmrg ;; 567a4f78defSmrg convex-c2) 568a4f78defSmrg basic_machine=c2-convex 569a4f78defSmrg os=-bsd 570a4f78defSmrg ;; 571a4f78defSmrg convex-c32) 572a4f78defSmrg basic_machine=c32-convex 573a4f78defSmrg os=-bsd 574a4f78defSmrg ;; 575a4f78defSmrg convex-c34) 576a4f78defSmrg basic_machine=c34-convex 577a4f78defSmrg os=-bsd 578a4f78defSmrg ;; 579a4f78defSmrg convex-c38) 580a4f78defSmrg basic_machine=c38-convex 581a4f78defSmrg os=-bsd 582a4f78defSmrg ;; 583a4f78defSmrg cray | j90) 584a4f78defSmrg basic_machine=j90-cray 585a4f78defSmrg os=-unicos 586a4f78defSmrg ;; 587a4f78defSmrg craynv) 588a4f78defSmrg basic_machine=craynv-cray 589a4f78defSmrg os=-unicosmp 590a4f78defSmrg ;; 591a4f78defSmrg cr16 | cr16-*) 592a4f78defSmrg basic_machine=cr16-unknown 593a4f78defSmrg os=-elf 594a4f78defSmrg ;; 595a4f78defSmrg crds | unos) 596a4f78defSmrg basic_machine=m68k-crds 597a4f78defSmrg ;; 598a4f78defSmrg crisv32 | crisv32-* | etraxfs*) 599a4f78defSmrg basic_machine=crisv32-axis 600a4f78defSmrg ;; 601a4f78defSmrg cris | cris-* | etrax*) 602a4f78defSmrg basic_machine=cris-axis 603a4f78defSmrg ;; 604a4f78defSmrg crx) 605a4f78defSmrg basic_machine=crx-unknown 606a4f78defSmrg os=-elf 607a4f78defSmrg ;; 608a4f78defSmrg da30 | da30-*) 609a4f78defSmrg basic_machine=m68k-da30 610a4f78defSmrg ;; 611a4f78defSmrg decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) 612a4f78defSmrg basic_machine=mips-dec 613a4f78defSmrg ;; 614a4f78defSmrg decsystem10* | dec10*) 615a4f78defSmrg basic_machine=pdp10-dec 616a4f78defSmrg os=-tops10 617a4f78defSmrg ;; 618a4f78defSmrg decsystem20* | dec20*) 619a4f78defSmrg basic_machine=pdp10-dec 620a4f78defSmrg os=-tops20 621a4f78defSmrg ;; 622a4f78defSmrg delta | 3300 | motorola-3300 | motorola-delta \ 623a4f78defSmrg | 3300-motorola | delta-motorola) 624a4f78defSmrg basic_machine=m68k-motorola 625a4f78defSmrg ;; 626a4f78defSmrg delta88) 627a4f78defSmrg basic_machine=m88k-motorola 628a4f78defSmrg os=-sysv3 629a4f78defSmrg ;; 630a4f78defSmrg dicos) 631a4f78defSmrg basic_machine=i686-pc 632a4f78defSmrg os=-dicos 633a4f78defSmrg ;; 634a4f78defSmrg djgpp) 635a4f78defSmrg basic_machine=i586-pc 636a4f78defSmrg os=-msdosdjgpp 637a4f78defSmrg ;; 638a4f78defSmrg dpx20 | dpx20-*) 639a4f78defSmrg basic_machine=rs6000-bull 640a4f78defSmrg os=-bosx 641a4f78defSmrg ;; 642fb570538Smrg dpx2*) 643a4f78defSmrg basic_machine=m68k-bull 644a4f78defSmrg os=-sysv3 645a4f78defSmrg ;; 646fb570538Smrg e500v[12]) 647fb570538Smrg basic_machine=powerpc-unknown 648fb570538Smrg os=$os"spe" 649fb570538Smrg ;; 650fb570538Smrg e500v[12]-*) 651fb570538Smrg basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` 652fb570538Smrg os=$os"spe" 653fb570538Smrg ;; 654a4f78defSmrg ebmon29k) 655a4f78defSmrg basic_machine=a29k-amd 656a4f78defSmrg os=-ebmon 657a4f78defSmrg ;; 658a4f78defSmrg elxsi) 659a4f78defSmrg basic_machine=elxsi-elxsi 660a4f78defSmrg os=-bsd 661a4f78defSmrg ;; 662a4f78defSmrg encore | umax | mmax) 663a4f78defSmrg basic_machine=ns32k-encore 664a4f78defSmrg ;; 665a4f78defSmrg es1800 | OSE68k | ose68k | ose | OSE) 666a4f78defSmrg basic_machine=m68k-ericsson 667a4f78defSmrg os=-ose 668a4f78defSmrg ;; 669a4f78defSmrg fx2800) 670a4f78defSmrg basic_machine=i860-alliant 671a4f78defSmrg ;; 672a4f78defSmrg genix) 673a4f78defSmrg basic_machine=ns32k-ns 674a4f78defSmrg ;; 675a4f78defSmrg gmicro) 676a4f78defSmrg basic_machine=tron-gmicro 677a4f78defSmrg os=-sysv 678a4f78defSmrg ;; 679a4f78defSmrg go32) 680a4f78defSmrg basic_machine=i386-pc 681a4f78defSmrg os=-go32 682a4f78defSmrg ;; 683a4f78defSmrg h3050r* | hiux*) 684a4f78defSmrg basic_machine=hppa1.1-hitachi 685a4f78defSmrg os=-hiuxwe2 686a4f78defSmrg ;; 687a4f78defSmrg h8300hms) 688a4f78defSmrg basic_machine=h8300-hitachi 689a4f78defSmrg os=-hms 690a4f78defSmrg ;; 691a4f78defSmrg h8300xray) 692a4f78defSmrg basic_machine=h8300-hitachi 693a4f78defSmrg os=-xray 694a4f78defSmrg ;; 695a4f78defSmrg h8500hms) 696a4f78defSmrg basic_machine=h8500-hitachi 697a4f78defSmrg os=-hms 698a4f78defSmrg ;; 699a4f78defSmrg harris) 700a4f78defSmrg basic_machine=m88k-harris 701a4f78defSmrg os=-sysv3 702a4f78defSmrg ;; 703a4f78defSmrg hp300-*) 704a4f78defSmrg basic_machine=m68k-hp 705a4f78defSmrg ;; 706a4f78defSmrg hp300bsd) 707a4f78defSmrg basic_machine=m68k-hp 708a4f78defSmrg os=-bsd 709a4f78defSmrg ;; 710a4f78defSmrg hp300hpux) 711a4f78defSmrg basic_machine=m68k-hp 712a4f78defSmrg os=-hpux 713a4f78defSmrg ;; 714a4f78defSmrg hp3k9[0-9][0-9] | hp9[0-9][0-9]) 715a4f78defSmrg basic_machine=hppa1.0-hp 716a4f78defSmrg ;; 717a4f78defSmrg hp9k2[0-9][0-9] | hp9k31[0-9]) 718a4f78defSmrg basic_machine=m68000-hp 719a4f78defSmrg ;; 720a4f78defSmrg hp9k3[2-9][0-9]) 721a4f78defSmrg basic_machine=m68k-hp 722a4f78defSmrg ;; 723a4f78defSmrg hp9k6[0-9][0-9] | hp6[0-9][0-9]) 724a4f78defSmrg basic_machine=hppa1.0-hp 725a4f78defSmrg ;; 726a4f78defSmrg hp9k7[0-79][0-9] | hp7[0-79][0-9]) 727a4f78defSmrg basic_machine=hppa1.1-hp 728a4f78defSmrg ;; 729a4f78defSmrg hp9k78[0-9] | hp78[0-9]) 730a4f78defSmrg # FIXME: really hppa2.0-hp 731a4f78defSmrg basic_machine=hppa1.1-hp 732a4f78defSmrg ;; 733a4f78defSmrg hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 734a4f78defSmrg # FIXME: really hppa2.0-hp 735a4f78defSmrg basic_machine=hppa1.1-hp 736a4f78defSmrg ;; 737a4f78defSmrg hp9k8[0-9][13679] | hp8[0-9][13679]) 738a4f78defSmrg basic_machine=hppa1.1-hp 739a4f78defSmrg ;; 740a4f78defSmrg hp9k8[0-9][0-9] | hp8[0-9][0-9]) 741a4f78defSmrg basic_machine=hppa1.0-hp 742a4f78defSmrg ;; 743a4f78defSmrg hppaosf) 744a4f78defSmrg basic_machine=hppa1.1-hp 745a4f78defSmrg os=-osf 746a4f78defSmrg ;; 747a4f78defSmrg hppro) 748a4f78defSmrg basic_machine=hppa1.1-hp 749a4f78defSmrg os=-proelf 750a4f78defSmrg ;; 751a4f78defSmrg i370-ibm* | ibm*) 752a4f78defSmrg basic_machine=i370-ibm 753a4f78defSmrg ;; 754a4f78defSmrg i*86v32) 755fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` 756a4f78defSmrg os=-sysv32 757a4f78defSmrg ;; 758a4f78defSmrg i*86v4*) 759fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` 760a4f78defSmrg os=-sysv4 761a4f78defSmrg ;; 762a4f78defSmrg i*86v) 763fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` 764a4f78defSmrg os=-sysv 765a4f78defSmrg ;; 766a4f78defSmrg i*86sol2) 767fb570538Smrg basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` 768a4f78defSmrg os=-solaris2 769a4f78defSmrg ;; 770a4f78defSmrg i386mach) 771a4f78defSmrg basic_machine=i386-mach 772a4f78defSmrg os=-mach 773a4f78defSmrg ;; 774fb570538Smrg vsta) 775a4f78defSmrg basic_machine=i386-unknown 776a4f78defSmrg os=-vsta 777a4f78defSmrg ;; 778a4f78defSmrg iris | iris4d) 779a4f78defSmrg basic_machine=mips-sgi 780a4f78defSmrg case $os in 781a4f78defSmrg -irix*) 782a4f78defSmrg ;; 783a4f78defSmrg *) 784a4f78defSmrg os=-irix4 785a4f78defSmrg ;; 786a4f78defSmrg esac 787a4f78defSmrg ;; 788a4f78defSmrg isi68 | isi) 789a4f78defSmrg basic_machine=m68k-isi 790a4f78defSmrg os=-sysv 791a4f78defSmrg ;; 792a4f78defSmrg leon-*|leon[3-9]-*) 793fb570538Smrg basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` 794a4f78defSmrg ;; 795a4f78defSmrg m68knommu) 796a4f78defSmrg basic_machine=m68k-unknown 797a4f78defSmrg os=-linux 798a4f78defSmrg ;; 799a4f78defSmrg m68knommu-*) 800fb570538Smrg basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` 801a4f78defSmrg os=-linux 802a4f78defSmrg ;; 803a4f78defSmrg magnum | m3230) 804a4f78defSmrg basic_machine=mips-mips 805a4f78defSmrg os=-sysv 806a4f78defSmrg ;; 807a4f78defSmrg merlin) 808a4f78defSmrg basic_machine=ns32k-utek 809a4f78defSmrg os=-sysv 810a4f78defSmrg ;; 811a4f78defSmrg microblaze*) 812a4f78defSmrg basic_machine=microblaze-xilinx 813a4f78defSmrg ;; 814a4f78defSmrg mingw64) 815a4f78defSmrg basic_machine=x86_64-pc 816a4f78defSmrg os=-mingw64 817a4f78defSmrg ;; 818a4f78defSmrg mingw32) 819a4f78defSmrg basic_machine=i686-pc 820a4f78defSmrg os=-mingw32 821a4f78defSmrg ;; 822a4f78defSmrg mingw32ce) 823a4f78defSmrg basic_machine=arm-unknown 824a4f78defSmrg os=-mingw32ce 825a4f78defSmrg ;; 826a4f78defSmrg miniframe) 827a4f78defSmrg basic_machine=m68000-convergent 828a4f78defSmrg ;; 829a4f78defSmrg *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) 830a4f78defSmrg basic_machine=m68k-atari 831a4f78defSmrg os=-mint 832a4f78defSmrg ;; 833a4f78defSmrg mips3*-*) 834fb570538Smrg basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` 835a4f78defSmrg ;; 836a4f78defSmrg mips3*) 837fb570538Smrg basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown 838a4f78defSmrg ;; 839a4f78defSmrg monitor) 840a4f78defSmrg basic_machine=m68k-rom68k 841a4f78defSmrg os=-coff 842a4f78defSmrg ;; 843a4f78defSmrg morphos) 844a4f78defSmrg basic_machine=powerpc-unknown 845a4f78defSmrg os=-morphos 846a4f78defSmrg ;; 847a4f78defSmrg moxiebox) 848a4f78defSmrg basic_machine=moxie-unknown 849a4f78defSmrg os=-moxiebox 850a4f78defSmrg ;; 851a4f78defSmrg msdos) 852a4f78defSmrg basic_machine=i386-pc 853a4f78defSmrg os=-msdos 854a4f78defSmrg ;; 855a4f78defSmrg ms1-*) 856fb570538Smrg basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` 857a4f78defSmrg ;; 858a4f78defSmrg msys) 859a4f78defSmrg basic_machine=i686-pc 860a4f78defSmrg os=-msys 861a4f78defSmrg ;; 862a4f78defSmrg mvs) 863a4f78defSmrg basic_machine=i370-ibm 864a4f78defSmrg os=-mvs 865a4f78defSmrg ;; 866a4f78defSmrg nacl) 867a4f78defSmrg basic_machine=le32-unknown 868a4f78defSmrg os=-nacl 869a4f78defSmrg ;; 870a4f78defSmrg ncr3000) 871a4f78defSmrg basic_machine=i486-ncr 872a4f78defSmrg os=-sysv4 873a4f78defSmrg ;; 874a4f78defSmrg netbsd386) 875a4f78defSmrg basic_machine=i386-unknown 876a4f78defSmrg os=-netbsd 877a4f78defSmrg ;; 878a4f78defSmrg netwinder) 879a4f78defSmrg basic_machine=armv4l-rebel 880a4f78defSmrg os=-linux 881a4f78defSmrg ;; 882a4f78defSmrg news | news700 | news800 | news900) 883a4f78defSmrg basic_machine=m68k-sony 884a4f78defSmrg os=-newsos 885a4f78defSmrg ;; 886a4f78defSmrg news1000) 887a4f78defSmrg basic_machine=m68030-sony 888a4f78defSmrg os=-newsos 889a4f78defSmrg ;; 890a4f78defSmrg news-3600 | risc-news) 891a4f78defSmrg basic_machine=mips-sony 892a4f78defSmrg os=-newsos 893a4f78defSmrg ;; 894a4f78defSmrg necv70) 895a4f78defSmrg basic_machine=v70-nec 896a4f78defSmrg os=-sysv 897a4f78defSmrg ;; 898fb570538Smrg next | m*-next) 899a4f78defSmrg basic_machine=m68k-next 900a4f78defSmrg case $os in 901a4f78defSmrg -nextstep* ) 902a4f78defSmrg ;; 903a4f78defSmrg -ns2*) 904a4f78defSmrg os=-nextstep2 905a4f78defSmrg ;; 906a4f78defSmrg *) 907a4f78defSmrg os=-nextstep3 908a4f78defSmrg ;; 909a4f78defSmrg esac 910a4f78defSmrg ;; 911a4f78defSmrg nh3000) 912a4f78defSmrg basic_machine=m68k-harris 913a4f78defSmrg os=-cxux 914a4f78defSmrg ;; 915a4f78defSmrg nh[45]000) 916a4f78defSmrg basic_machine=m88k-harris 917a4f78defSmrg os=-cxux 918a4f78defSmrg ;; 919a4f78defSmrg nindy960) 920a4f78defSmrg basic_machine=i960-intel 921a4f78defSmrg os=-nindy 922a4f78defSmrg ;; 923a4f78defSmrg mon960) 924a4f78defSmrg basic_machine=i960-intel 925a4f78defSmrg os=-mon960 926a4f78defSmrg ;; 927a4f78defSmrg nonstopux) 928a4f78defSmrg basic_machine=mips-compaq 929a4f78defSmrg os=-nonstopux 930a4f78defSmrg ;; 931a4f78defSmrg np1) 932a4f78defSmrg basic_machine=np1-gould 933a4f78defSmrg ;; 934a4f78defSmrg neo-tandem) 935a4f78defSmrg basic_machine=neo-tandem 936a4f78defSmrg ;; 937a4f78defSmrg nse-tandem) 938a4f78defSmrg basic_machine=nse-tandem 939a4f78defSmrg ;; 940a4f78defSmrg nsr-tandem) 941a4f78defSmrg basic_machine=nsr-tandem 942a4f78defSmrg ;; 943fb570538Smrg nsv-tandem) 944fb570538Smrg basic_machine=nsv-tandem 945fb570538Smrg ;; 946fb570538Smrg nsx-tandem) 947fb570538Smrg basic_machine=nsx-tandem 948fb570538Smrg ;; 949a4f78defSmrg op50n-* | op60c-*) 950a4f78defSmrg basic_machine=hppa1.1-oki 951a4f78defSmrg os=-proelf 952a4f78defSmrg ;; 953a4f78defSmrg openrisc | openrisc-*) 954a4f78defSmrg basic_machine=or32-unknown 955a4f78defSmrg ;; 956a4f78defSmrg os400) 957a4f78defSmrg basic_machine=powerpc-ibm 958a4f78defSmrg os=-os400 959a4f78defSmrg ;; 960a4f78defSmrg OSE68000 | ose68000) 961a4f78defSmrg basic_machine=m68000-ericsson 962a4f78defSmrg os=-ose 963a4f78defSmrg ;; 964a4f78defSmrg os68k) 965a4f78defSmrg basic_machine=m68k-none 966a4f78defSmrg os=-os68k 967a4f78defSmrg ;; 968a4f78defSmrg pa-hitachi) 969a4f78defSmrg basic_machine=hppa1.1-hitachi 970a4f78defSmrg os=-hiuxwe2 971a4f78defSmrg ;; 972a4f78defSmrg paragon) 973a4f78defSmrg basic_machine=i860-intel 974a4f78defSmrg os=-osf 975a4f78defSmrg ;; 976a4f78defSmrg parisc) 977a4f78defSmrg basic_machine=hppa-unknown 978a4f78defSmrg os=-linux 979a4f78defSmrg ;; 980a4f78defSmrg parisc-*) 981fb570538Smrg basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` 982a4f78defSmrg os=-linux 983a4f78defSmrg ;; 984a4f78defSmrg pbd) 985a4f78defSmrg basic_machine=sparc-tti 986a4f78defSmrg ;; 987a4f78defSmrg pbb) 988a4f78defSmrg basic_machine=m68k-tti 989a4f78defSmrg ;; 990a4f78defSmrg pc532 | pc532-*) 991a4f78defSmrg basic_machine=ns32k-pc532 992a4f78defSmrg ;; 993a4f78defSmrg pc98) 994a4f78defSmrg basic_machine=i386-pc 995a4f78defSmrg ;; 996a4f78defSmrg pc98-*) 997fb570538Smrg basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` 998a4f78defSmrg ;; 999a4f78defSmrg pentium | p5 | k5 | k6 | nexgen | viac3) 1000a4f78defSmrg basic_machine=i586-pc 1001a4f78defSmrg ;; 1002a4f78defSmrg pentiumpro | p6 | 6x86 | athlon | athlon_*) 1003a4f78defSmrg basic_machine=i686-pc 1004a4f78defSmrg ;; 1005a4f78defSmrg pentiumii | pentium2 | pentiumiii | pentium3) 1006a4f78defSmrg basic_machine=i686-pc 1007a4f78defSmrg ;; 1008a4f78defSmrg pentium4) 1009a4f78defSmrg basic_machine=i786-pc 1010a4f78defSmrg ;; 1011a4f78defSmrg pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 1012fb570538Smrg basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` 1013a4f78defSmrg ;; 1014a4f78defSmrg pentiumpro-* | p6-* | 6x86-* | athlon-*) 1015fb570538Smrg basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` 1016a4f78defSmrg ;; 1017a4f78defSmrg pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 1018fb570538Smrg basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` 1019a4f78defSmrg ;; 1020a4f78defSmrg pentium4-*) 1021fb570538Smrg basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` 1022a4f78defSmrg ;; 1023a4f78defSmrg pn) 1024a4f78defSmrg basic_machine=pn-gould 1025a4f78defSmrg ;; 1026a4f78defSmrg power) basic_machine=power-ibm 1027a4f78defSmrg ;; 1028a4f78defSmrg ppc | ppcbe) basic_machine=powerpc-unknown 1029a4f78defSmrg ;; 1030a4f78defSmrg ppc-* | ppcbe-*) 1031fb570538Smrg basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` 1032a4f78defSmrg ;; 1033fb570538Smrg ppcle | powerpclittle) 1034a4f78defSmrg basic_machine=powerpcle-unknown 1035a4f78defSmrg ;; 1036a4f78defSmrg ppcle-* | powerpclittle-*) 1037fb570538Smrg basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` 1038a4f78defSmrg ;; 1039a4f78defSmrg ppc64) basic_machine=powerpc64-unknown 1040a4f78defSmrg ;; 1041fb570538Smrg ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` 1042a4f78defSmrg ;; 1043fb570538Smrg ppc64le | powerpc64little) 1044a4f78defSmrg basic_machine=powerpc64le-unknown 1045a4f78defSmrg ;; 1046a4f78defSmrg ppc64le-* | powerpc64little-*) 1047fb570538Smrg basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` 1048a4f78defSmrg ;; 1049a4f78defSmrg ps2) 1050a4f78defSmrg basic_machine=i386-ibm 1051a4f78defSmrg ;; 1052a4f78defSmrg pw32) 1053a4f78defSmrg basic_machine=i586-unknown 1054a4f78defSmrg os=-pw32 1055a4f78defSmrg ;; 1056a4f78defSmrg rdos | rdos64) 1057a4f78defSmrg basic_machine=x86_64-pc 1058a4f78defSmrg os=-rdos 1059a4f78defSmrg ;; 1060a4f78defSmrg rdos32) 1061a4f78defSmrg basic_machine=i386-pc 1062a4f78defSmrg os=-rdos 1063a4f78defSmrg ;; 1064a4f78defSmrg rom68k) 1065a4f78defSmrg basic_machine=m68k-rom68k 1066a4f78defSmrg os=-coff 1067a4f78defSmrg ;; 1068a4f78defSmrg rm[46]00) 1069a4f78defSmrg basic_machine=mips-siemens 1070a4f78defSmrg ;; 1071a4f78defSmrg rtpc | rtpc-*) 1072a4f78defSmrg basic_machine=romp-ibm 1073a4f78defSmrg ;; 1074a4f78defSmrg s390 | s390-*) 1075a4f78defSmrg basic_machine=s390-ibm 1076a4f78defSmrg ;; 1077a4f78defSmrg s390x | s390x-*) 1078a4f78defSmrg basic_machine=s390x-ibm 1079a4f78defSmrg ;; 1080a4f78defSmrg sa29200) 1081a4f78defSmrg basic_machine=a29k-amd 1082a4f78defSmrg os=-udi 1083a4f78defSmrg ;; 1084a4f78defSmrg sb1) 1085a4f78defSmrg basic_machine=mipsisa64sb1-unknown 1086a4f78defSmrg ;; 1087a4f78defSmrg sb1el) 1088a4f78defSmrg basic_machine=mipsisa64sb1el-unknown 1089a4f78defSmrg ;; 1090a4f78defSmrg sde) 1091a4f78defSmrg basic_machine=mipsisa32-sde 1092a4f78defSmrg os=-elf 1093a4f78defSmrg ;; 1094a4f78defSmrg sei) 1095a4f78defSmrg basic_machine=mips-sei 1096a4f78defSmrg os=-seiux 1097a4f78defSmrg ;; 1098a4f78defSmrg sequent) 1099a4f78defSmrg basic_machine=i386-sequent 1100a4f78defSmrg ;; 1101a4f78defSmrg sh5el) 1102a4f78defSmrg basic_machine=sh5le-unknown 1103a4f78defSmrg ;; 1104fb570538Smrg simso-wrs) 1105a4f78defSmrg basic_machine=sparclite-wrs 1106a4f78defSmrg os=-vxworks 1107a4f78defSmrg ;; 1108a4f78defSmrg sps7) 1109a4f78defSmrg basic_machine=m68k-bull 1110a4f78defSmrg os=-sysv2 1111a4f78defSmrg ;; 1112a4f78defSmrg spur) 1113a4f78defSmrg basic_machine=spur-unknown 1114a4f78defSmrg ;; 1115a4f78defSmrg st2000) 1116a4f78defSmrg basic_machine=m68k-tandem 1117a4f78defSmrg ;; 1118a4f78defSmrg stratus) 1119a4f78defSmrg basic_machine=i860-stratus 1120a4f78defSmrg os=-sysv4 1121a4f78defSmrg ;; 1122a4f78defSmrg strongarm-* | thumb-*) 1123fb570538Smrg basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` 1124a4f78defSmrg ;; 1125a4f78defSmrg sun2) 1126a4f78defSmrg basic_machine=m68000-sun 1127a4f78defSmrg ;; 1128a4f78defSmrg sun2os3) 1129a4f78defSmrg basic_machine=m68000-sun 1130a4f78defSmrg os=-sunos3 1131a4f78defSmrg ;; 1132a4f78defSmrg sun2os4) 1133a4f78defSmrg basic_machine=m68000-sun 1134a4f78defSmrg os=-sunos4 1135a4f78defSmrg ;; 1136a4f78defSmrg sun3os3) 1137a4f78defSmrg basic_machine=m68k-sun 1138a4f78defSmrg os=-sunos3 1139a4f78defSmrg ;; 1140a4f78defSmrg sun3os4) 1141a4f78defSmrg basic_machine=m68k-sun 1142a4f78defSmrg os=-sunos4 1143a4f78defSmrg ;; 1144a4f78defSmrg sun4os3) 1145a4f78defSmrg basic_machine=sparc-sun 1146a4f78defSmrg os=-sunos3 1147a4f78defSmrg ;; 1148a4f78defSmrg sun4os4) 1149a4f78defSmrg basic_machine=sparc-sun 1150a4f78defSmrg os=-sunos4 1151a4f78defSmrg ;; 1152a4f78defSmrg sun4sol2) 1153a4f78defSmrg basic_machine=sparc-sun 1154a4f78defSmrg os=-solaris2 1155a4f78defSmrg ;; 1156a4f78defSmrg sun3 | sun3-*) 1157a4f78defSmrg basic_machine=m68k-sun 1158a4f78defSmrg ;; 1159a4f78defSmrg sun4) 1160a4f78defSmrg basic_machine=sparc-sun 1161a4f78defSmrg ;; 1162a4f78defSmrg sun386 | sun386i | roadrunner) 1163a4f78defSmrg basic_machine=i386-sun 1164a4f78defSmrg ;; 1165a4f78defSmrg sv1) 1166a4f78defSmrg basic_machine=sv1-cray 1167a4f78defSmrg os=-unicos 1168a4f78defSmrg ;; 1169a4f78defSmrg symmetry) 1170a4f78defSmrg basic_machine=i386-sequent 1171a4f78defSmrg os=-dynix 1172a4f78defSmrg ;; 1173a4f78defSmrg t3e) 1174a4f78defSmrg basic_machine=alphaev5-cray 1175a4f78defSmrg os=-unicos 1176a4f78defSmrg ;; 1177a4f78defSmrg t90) 1178a4f78defSmrg basic_machine=t90-cray 1179a4f78defSmrg os=-unicos 1180a4f78defSmrg ;; 1181a4f78defSmrg tile*) 1182a4f78defSmrg basic_machine=$basic_machine-unknown 1183a4f78defSmrg os=-linux-gnu 1184a4f78defSmrg ;; 1185a4f78defSmrg tx39) 1186a4f78defSmrg basic_machine=mipstx39-unknown 1187a4f78defSmrg ;; 1188a4f78defSmrg tx39el) 1189a4f78defSmrg basic_machine=mipstx39el-unknown 1190a4f78defSmrg ;; 1191a4f78defSmrg toad1) 1192a4f78defSmrg basic_machine=pdp10-xkl 1193a4f78defSmrg os=-tops20 1194a4f78defSmrg ;; 1195a4f78defSmrg tower | tower-32) 1196a4f78defSmrg basic_machine=m68k-ncr 1197a4f78defSmrg ;; 1198a4f78defSmrg tpf) 1199a4f78defSmrg basic_machine=s390x-ibm 1200a4f78defSmrg os=-tpf 1201a4f78defSmrg ;; 1202a4f78defSmrg udi29k) 1203a4f78defSmrg basic_machine=a29k-amd 1204a4f78defSmrg os=-udi 1205a4f78defSmrg ;; 1206a4f78defSmrg ultra3) 1207a4f78defSmrg basic_machine=a29k-nyu 1208a4f78defSmrg os=-sym1 1209a4f78defSmrg ;; 1210a4f78defSmrg v810 | necv810) 1211a4f78defSmrg basic_machine=v810-nec 1212a4f78defSmrg os=-none 1213a4f78defSmrg ;; 1214a4f78defSmrg vaxv) 1215a4f78defSmrg basic_machine=vax-dec 1216a4f78defSmrg os=-sysv 1217a4f78defSmrg ;; 1218a4f78defSmrg vms) 1219a4f78defSmrg basic_machine=vax-dec 1220a4f78defSmrg os=-vms 1221a4f78defSmrg ;; 1222a4f78defSmrg vpp*|vx|vx-*) 1223a4f78defSmrg basic_machine=f301-fujitsu 1224a4f78defSmrg ;; 1225a4f78defSmrg vxworks960) 1226a4f78defSmrg basic_machine=i960-wrs 1227a4f78defSmrg os=-vxworks 1228a4f78defSmrg ;; 1229a4f78defSmrg vxworks68) 1230a4f78defSmrg basic_machine=m68k-wrs 1231a4f78defSmrg os=-vxworks 1232a4f78defSmrg ;; 1233a4f78defSmrg vxworks29k) 1234a4f78defSmrg basic_machine=a29k-wrs 1235a4f78defSmrg os=-vxworks 1236a4f78defSmrg ;; 1237a4f78defSmrg w65*) 1238a4f78defSmrg basic_machine=w65-wdc 1239a4f78defSmrg os=-none 1240a4f78defSmrg ;; 1241a4f78defSmrg w89k-*) 1242a4f78defSmrg basic_machine=hppa1.1-winbond 1243a4f78defSmrg os=-proelf 1244a4f78defSmrg ;; 1245fb570538Smrg x64) 1246fb570538Smrg basic_machine=x86_64-pc 1247fb570538Smrg ;; 1248a4f78defSmrg xbox) 1249a4f78defSmrg basic_machine=i686-pc 1250a4f78defSmrg os=-mingw32 1251a4f78defSmrg ;; 1252a4f78defSmrg xps | xps100) 1253a4f78defSmrg basic_machine=xps100-honeywell 1254a4f78defSmrg ;; 1255a4f78defSmrg xscale-* | xscalee[bl]-*) 1256fb570538Smrg basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` 1257a4f78defSmrg ;; 1258a4f78defSmrg ymp) 1259a4f78defSmrg basic_machine=ymp-cray 1260a4f78defSmrg os=-unicos 1261a4f78defSmrg ;; 1262a4f78defSmrg none) 1263a4f78defSmrg basic_machine=none-none 1264a4f78defSmrg os=-none 1265a4f78defSmrg ;; 1266a4f78defSmrg 1267a4f78defSmrg# Here we handle the default manufacturer of certain CPU types. It is in 1268a4f78defSmrg# some cases the only manufacturer, in others, it is the most popular. 1269a4f78defSmrg w89k) 1270a4f78defSmrg basic_machine=hppa1.1-winbond 1271a4f78defSmrg ;; 1272a4f78defSmrg op50n) 1273a4f78defSmrg basic_machine=hppa1.1-oki 1274a4f78defSmrg ;; 1275a4f78defSmrg op60c) 1276a4f78defSmrg basic_machine=hppa1.1-oki 1277a4f78defSmrg ;; 1278a4f78defSmrg romp) 1279a4f78defSmrg basic_machine=romp-ibm 1280a4f78defSmrg ;; 1281a4f78defSmrg mmix) 1282a4f78defSmrg basic_machine=mmix-knuth 1283a4f78defSmrg ;; 1284a4f78defSmrg rs6000) 1285a4f78defSmrg basic_machine=rs6000-ibm 1286a4f78defSmrg ;; 1287a4f78defSmrg vax) 1288a4f78defSmrg basic_machine=vax-dec 1289a4f78defSmrg ;; 1290a4f78defSmrg pdp11) 1291a4f78defSmrg basic_machine=pdp11-dec 1292a4f78defSmrg ;; 1293a4f78defSmrg we32k) 1294a4f78defSmrg basic_machine=we32k-att 1295a4f78defSmrg ;; 1296a4f78defSmrg sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) 1297a4f78defSmrg basic_machine=sh-unknown 1298a4f78defSmrg ;; 1299a4f78defSmrg cydra) 1300a4f78defSmrg basic_machine=cydra-cydrome 1301a4f78defSmrg ;; 1302a4f78defSmrg orion) 1303a4f78defSmrg basic_machine=orion-highlevel 1304a4f78defSmrg ;; 1305a4f78defSmrg orion105) 1306a4f78defSmrg basic_machine=clipper-highlevel 1307a4f78defSmrg ;; 1308a4f78defSmrg mac | mpw | mac-mpw) 1309a4f78defSmrg basic_machine=m68k-apple 1310a4f78defSmrg ;; 1311a4f78defSmrg pmac | pmac-mpw) 1312a4f78defSmrg basic_machine=powerpc-apple 1313a4f78defSmrg ;; 1314a4f78defSmrg *-unknown) 1315a4f78defSmrg # Make sure to match an already-canonicalized machine name. 1316a4f78defSmrg ;; 1317a4f78defSmrg *) 1318fb570538Smrg echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 1319a4f78defSmrg exit 1 1320a4f78defSmrg ;; 1321a4f78defSmrgesac 1322a4f78defSmrg 1323a4f78defSmrg# Here we canonicalize certain aliases for manufacturers. 1324a4f78defSmrgcase $basic_machine in 1325a4f78defSmrg *-digital*) 1326fb570538Smrg basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` 1327a4f78defSmrg ;; 1328a4f78defSmrg *-commodore*) 1329fb570538Smrg basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` 1330a4f78defSmrg ;; 1331a4f78defSmrg *) 1332a4f78defSmrg ;; 1333a4f78defSmrgesac 1334a4f78defSmrg 1335a4f78defSmrg# Decode manufacturer-specific aliases for certain operating systems. 1336a4f78defSmrg 1337a4f78defSmrgif [ x"$os" != x"" ] 1338a4f78defSmrgthen 1339a4f78defSmrgcase $os in 1340fb570538Smrg # First match some system type aliases that might get confused 1341fb570538Smrg # with valid system types. 1342a4f78defSmrg # -solaris* is a basic system type, with this one exception. 1343a4f78defSmrg -auroraux) 1344a4f78defSmrg os=-auroraux 1345a4f78defSmrg ;; 1346a4f78defSmrg -solaris1 | -solaris1.*) 1347a4f78defSmrg os=`echo $os | sed -e 's|solaris1|sunos4|'` 1348a4f78defSmrg ;; 1349a4f78defSmrg -solaris) 1350a4f78defSmrg os=-solaris2 1351a4f78defSmrg ;; 1352a4f78defSmrg -unixware*) 1353a4f78defSmrg os=-sysv4.2uw 1354a4f78defSmrg ;; 1355a4f78defSmrg -gnu/linux*) 1356a4f78defSmrg os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` 1357a4f78defSmrg ;; 1358fb570538Smrg # es1800 is here to avoid being matched by es* (a different OS) 1359fb570538Smrg -es1800*) 1360fb570538Smrg os=-ose 1361fb570538Smrg ;; 1362fb570538Smrg # Now accept the basic system types. 1363a4f78defSmrg # The portable systems comes first. 1364fb570538Smrg # Each alternative MUST end in a * to match a version number. 1365a4f78defSmrg # -sysv* is not here because it comes later, after sysvr4. 1366a4f78defSmrg -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ 1367a4f78defSmrg | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ 1368a4f78defSmrg | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ 1369a4f78defSmrg | -sym* | -kopensolaris* | -plan9* \ 1370a4f78defSmrg | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ 1371fb570538Smrg | -aos* | -aros* | -cloudabi* | -sortix* \ 1372a4f78defSmrg | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ 1373a4f78defSmrg | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ 1374fb570538Smrg | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ 1375fb570538Smrg | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ 1376a4f78defSmrg | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ 1377a4f78defSmrg | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ 1378a4f78defSmrg | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ 1379fb570538Smrg | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \ 1380fb570538Smrg | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ 1381a4f78defSmrg | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ 1382fb570538Smrg | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ 1383a4f78defSmrg | -linux-newlib* | -linux-musl* | -linux-uclibc* \ 1384a4f78defSmrg | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ 1385fb570538Smrg | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ 1386a4f78defSmrg | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ 1387a4f78defSmrg | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ 1388a4f78defSmrg | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ 1389fb570538Smrg | -morphos* | -superux* | -rtmk* | -windiss* \ 1390a4f78defSmrg | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ 1391fb570538Smrg | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ 1392fb570538Smrg | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ 1393fb570538Smrg | -midnightbsd*) 1394a4f78defSmrg # Remember, each alternative MUST END IN *, to match a version number. 1395a4f78defSmrg ;; 1396a4f78defSmrg -qnx*) 1397a4f78defSmrg case $basic_machine in 1398a4f78defSmrg x86-* | i*86-*) 1399a4f78defSmrg ;; 1400a4f78defSmrg *) 1401a4f78defSmrg os=-nto$os 1402a4f78defSmrg ;; 1403a4f78defSmrg esac 1404a4f78defSmrg ;; 1405a4f78defSmrg -nto-qnx*) 1406a4f78defSmrg ;; 1407a4f78defSmrg -nto*) 1408a4f78defSmrg os=`echo $os | sed -e 's|nto|nto-qnx|'` 1409a4f78defSmrg ;; 1410fb570538Smrg -sim | -xray | -os68k* | -v88r* \ 1411fb570538Smrg | -windows* | -osx | -abug | -netware* | -os9* \ 1412a4f78defSmrg | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) 1413a4f78defSmrg ;; 1414a4f78defSmrg -mac*) 1415fb570538Smrg os=`echo "$os" | sed -e 's|mac|macos|'` 1416a4f78defSmrg ;; 1417a4f78defSmrg -linux-dietlibc) 1418a4f78defSmrg os=-linux-dietlibc 1419a4f78defSmrg ;; 1420a4f78defSmrg -linux*) 1421a4f78defSmrg os=`echo $os | sed -e 's|linux|linux-gnu|'` 1422a4f78defSmrg ;; 1423a4f78defSmrg -sunos5*) 1424fb570538Smrg os=`echo "$os" | sed -e 's|sunos5|solaris2|'` 1425a4f78defSmrg ;; 1426a4f78defSmrg -sunos6*) 1427fb570538Smrg os=`echo "$os" | sed -e 's|sunos6|solaris3|'` 1428a4f78defSmrg ;; 1429a4f78defSmrg -opened*) 1430a4f78defSmrg os=-openedition 1431a4f78defSmrg ;; 1432a4f78defSmrg -os400*) 1433a4f78defSmrg os=-os400 1434a4f78defSmrg ;; 1435a4f78defSmrg -wince*) 1436a4f78defSmrg os=-wince 1437a4f78defSmrg ;; 1438a4f78defSmrg -utek*) 1439a4f78defSmrg os=-bsd 1440a4f78defSmrg ;; 1441a4f78defSmrg -dynix*) 1442a4f78defSmrg os=-bsd 1443a4f78defSmrg ;; 1444a4f78defSmrg -acis*) 1445a4f78defSmrg os=-aos 1446a4f78defSmrg ;; 1447a4f78defSmrg -atheos*) 1448a4f78defSmrg os=-atheos 1449a4f78defSmrg ;; 1450a4f78defSmrg -syllable*) 1451a4f78defSmrg os=-syllable 1452a4f78defSmrg ;; 1453a4f78defSmrg -386bsd) 1454a4f78defSmrg os=-bsd 1455a4f78defSmrg ;; 1456a4f78defSmrg -ctix* | -uts*) 1457a4f78defSmrg os=-sysv 1458a4f78defSmrg ;; 1459a4f78defSmrg -nova*) 1460a4f78defSmrg os=-rtmk-nova 1461a4f78defSmrg ;; 1462fb570538Smrg -ns2) 1463a4f78defSmrg os=-nextstep2 1464a4f78defSmrg ;; 1465a4f78defSmrg -nsk*) 1466a4f78defSmrg os=-nsk 1467a4f78defSmrg ;; 1468a4f78defSmrg # Preserve the version number of sinix5. 1469a4f78defSmrg -sinix5.*) 1470a4f78defSmrg os=`echo $os | sed -e 's|sinix|sysv|'` 1471a4f78defSmrg ;; 1472a4f78defSmrg -sinix*) 1473a4f78defSmrg os=-sysv4 1474a4f78defSmrg ;; 1475a4f78defSmrg -tpf*) 1476a4f78defSmrg os=-tpf 1477a4f78defSmrg ;; 1478a4f78defSmrg -triton*) 1479a4f78defSmrg os=-sysv3 1480a4f78defSmrg ;; 1481a4f78defSmrg -oss*) 1482a4f78defSmrg os=-sysv3 1483a4f78defSmrg ;; 1484fb570538Smrg -svr4*) 1485a4f78defSmrg os=-sysv4 1486a4f78defSmrg ;; 1487a4f78defSmrg -svr3) 1488a4f78defSmrg os=-sysv3 1489a4f78defSmrg ;; 1490a4f78defSmrg -sysvr4) 1491a4f78defSmrg os=-sysv4 1492a4f78defSmrg ;; 1493a4f78defSmrg # This must come after -sysvr4. 1494a4f78defSmrg -sysv*) 1495a4f78defSmrg ;; 1496a4f78defSmrg -ose*) 1497a4f78defSmrg os=-ose 1498a4f78defSmrg ;; 1499a4f78defSmrg -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) 1500a4f78defSmrg os=-mint 1501a4f78defSmrg ;; 1502a4f78defSmrg -zvmoe) 1503a4f78defSmrg os=-zvmoe 1504a4f78defSmrg ;; 1505a4f78defSmrg -dicos*) 1506a4f78defSmrg os=-dicos 1507a4f78defSmrg ;; 1508fb570538Smrg -pikeos*) 1509fb570538Smrg # Until real need of OS specific support for 1510fb570538Smrg # particular features comes up, bare metal 1511fb570538Smrg # configurations are quite functional. 1512fb570538Smrg case $basic_machine in 1513fb570538Smrg arm*) 1514fb570538Smrg os=-eabi 1515fb570538Smrg ;; 1516fb570538Smrg *) 1517fb570538Smrg os=-elf 1518fb570538Smrg ;; 1519fb570538Smrg esac 1520fb570538Smrg ;; 1521a4f78defSmrg -nacl*) 1522a4f78defSmrg ;; 1523fb570538Smrg -ios) 1524fb570538Smrg ;; 1525a4f78defSmrg -none) 1526a4f78defSmrg ;; 1527a4f78defSmrg *) 1528a4f78defSmrg # Get rid of the `-' at the beginning of $os. 1529a4f78defSmrg os=`echo $os | sed 's/[^-]*-//'` 1530fb570538Smrg echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 1531a4f78defSmrg exit 1 1532a4f78defSmrg ;; 1533a4f78defSmrgesac 1534a4f78defSmrgelse 1535a4f78defSmrg 1536a4f78defSmrg# Here we handle the default operating systems that come with various machines. 1537a4f78defSmrg# The value should be what the vendor currently ships out the door with their 1538a4f78defSmrg# machine or put another way, the most popular os provided with the machine. 1539a4f78defSmrg 1540a4f78defSmrg# Note that if you're going to try to match "-MANUFACTURER" here (say, 1541a4f78defSmrg# "-sun"), then you have to tell the case statement up towards the top 1542a4f78defSmrg# that MANUFACTURER isn't an operating system. Otherwise, code above 1543a4f78defSmrg# will signal an error saying that MANUFACTURER isn't an operating 1544a4f78defSmrg# system, and we'll never get to this point. 1545a4f78defSmrg 1546a4f78defSmrgcase $basic_machine in 1547a4f78defSmrg score-*) 1548a4f78defSmrg os=-elf 1549a4f78defSmrg ;; 1550a4f78defSmrg spu-*) 1551a4f78defSmrg os=-elf 1552a4f78defSmrg ;; 1553a4f78defSmrg *-acorn) 1554a4f78defSmrg os=-riscix1.2 1555a4f78defSmrg ;; 1556a4f78defSmrg arm*-rebel) 1557a4f78defSmrg os=-linux 1558a4f78defSmrg ;; 1559a4f78defSmrg arm*-semi) 1560a4f78defSmrg os=-aout 1561a4f78defSmrg ;; 1562a4f78defSmrg c4x-* | tic4x-*) 1563a4f78defSmrg os=-coff 1564a4f78defSmrg ;; 1565a4f78defSmrg c8051-*) 1566a4f78defSmrg os=-elf 1567a4f78defSmrg ;; 1568a4f78defSmrg hexagon-*) 1569a4f78defSmrg os=-elf 1570a4f78defSmrg ;; 1571a4f78defSmrg tic54x-*) 1572a4f78defSmrg os=-coff 1573a4f78defSmrg ;; 1574a4f78defSmrg tic55x-*) 1575a4f78defSmrg os=-coff 1576a4f78defSmrg ;; 1577a4f78defSmrg tic6x-*) 1578a4f78defSmrg os=-coff 1579a4f78defSmrg ;; 1580a4f78defSmrg # This must come before the *-dec entry. 1581a4f78defSmrg pdp10-*) 1582a4f78defSmrg os=-tops20 1583a4f78defSmrg ;; 1584a4f78defSmrg pdp11-*) 1585a4f78defSmrg os=-none 1586a4f78defSmrg ;; 1587a4f78defSmrg *-dec | vax-*) 1588a4f78defSmrg os=-ultrix4.2 1589a4f78defSmrg ;; 1590a4f78defSmrg m68*-apollo) 1591a4f78defSmrg os=-domain 1592a4f78defSmrg ;; 1593a4f78defSmrg i386-sun) 1594a4f78defSmrg os=-sunos4.0.2 1595a4f78defSmrg ;; 1596a4f78defSmrg m68000-sun) 1597a4f78defSmrg os=-sunos3 1598a4f78defSmrg ;; 1599a4f78defSmrg m68*-cisco) 1600a4f78defSmrg os=-aout 1601a4f78defSmrg ;; 1602a4f78defSmrg mep-*) 1603a4f78defSmrg os=-elf 1604a4f78defSmrg ;; 1605a4f78defSmrg mips*-cisco) 1606a4f78defSmrg os=-elf 1607a4f78defSmrg ;; 1608a4f78defSmrg mips*-*) 1609a4f78defSmrg os=-elf 1610a4f78defSmrg ;; 1611a4f78defSmrg or32-*) 1612a4f78defSmrg os=-coff 1613a4f78defSmrg ;; 1614a4f78defSmrg *-tti) # must be before sparc entry or we get the wrong os. 1615a4f78defSmrg os=-sysv3 1616a4f78defSmrg ;; 1617a4f78defSmrg sparc-* | *-sun) 1618a4f78defSmrg os=-sunos4.1.1 1619a4f78defSmrg ;; 1620fb570538Smrg pru-*) 1621fb570538Smrg os=-elf 1622fb570538Smrg ;; 1623a4f78defSmrg *-be) 1624a4f78defSmrg os=-beos 1625a4f78defSmrg ;; 1626a4f78defSmrg *-ibm) 1627a4f78defSmrg os=-aix 1628a4f78defSmrg ;; 1629a4f78defSmrg *-knuth) 1630a4f78defSmrg os=-mmixware 1631a4f78defSmrg ;; 1632a4f78defSmrg *-wec) 1633a4f78defSmrg os=-proelf 1634a4f78defSmrg ;; 1635a4f78defSmrg *-winbond) 1636a4f78defSmrg os=-proelf 1637a4f78defSmrg ;; 1638a4f78defSmrg *-oki) 1639a4f78defSmrg os=-proelf 1640a4f78defSmrg ;; 1641a4f78defSmrg *-hp) 1642a4f78defSmrg os=-hpux 1643a4f78defSmrg ;; 1644a4f78defSmrg *-hitachi) 1645a4f78defSmrg os=-hiux 1646a4f78defSmrg ;; 1647a4f78defSmrg i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 1648a4f78defSmrg os=-sysv 1649a4f78defSmrg ;; 1650a4f78defSmrg *-cbm) 1651a4f78defSmrg os=-amigaos 1652a4f78defSmrg ;; 1653a4f78defSmrg *-dg) 1654a4f78defSmrg os=-dgux 1655a4f78defSmrg ;; 1656a4f78defSmrg *-dolphin) 1657a4f78defSmrg os=-sysv3 1658a4f78defSmrg ;; 1659a4f78defSmrg m68k-ccur) 1660a4f78defSmrg os=-rtu 1661a4f78defSmrg ;; 1662a4f78defSmrg m88k-omron*) 1663a4f78defSmrg os=-luna 1664a4f78defSmrg ;; 1665fb570538Smrg *-next) 1666a4f78defSmrg os=-nextstep 1667a4f78defSmrg ;; 1668a4f78defSmrg *-sequent) 1669a4f78defSmrg os=-ptx 1670a4f78defSmrg ;; 1671a4f78defSmrg *-crds) 1672a4f78defSmrg os=-unos 1673a4f78defSmrg ;; 1674a4f78defSmrg *-ns) 1675a4f78defSmrg os=-genix 1676a4f78defSmrg ;; 1677a4f78defSmrg i370-*) 1678a4f78defSmrg os=-mvs 1679a4f78defSmrg ;; 1680a4f78defSmrg *-gould) 1681a4f78defSmrg os=-sysv 1682a4f78defSmrg ;; 1683a4f78defSmrg *-highlevel) 1684a4f78defSmrg os=-bsd 1685a4f78defSmrg ;; 1686a4f78defSmrg *-encore) 1687a4f78defSmrg os=-bsd 1688a4f78defSmrg ;; 1689a4f78defSmrg *-sgi) 1690a4f78defSmrg os=-irix 1691a4f78defSmrg ;; 1692a4f78defSmrg *-siemens) 1693a4f78defSmrg os=-sysv4 1694a4f78defSmrg ;; 1695a4f78defSmrg *-masscomp) 1696a4f78defSmrg os=-rtu 1697a4f78defSmrg ;; 1698a4f78defSmrg f30[01]-fujitsu | f700-fujitsu) 1699a4f78defSmrg os=-uxpv 1700a4f78defSmrg ;; 1701a4f78defSmrg *-rom68k) 1702a4f78defSmrg os=-coff 1703a4f78defSmrg ;; 1704a4f78defSmrg *-*bug) 1705a4f78defSmrg os=-coff 1706a4f78defSmrg ;; 1707a4f78defSmrg *-apple) 1708a4f78defSmrg os=-macos 1709a4f78defSmrg ;; 1710a4f78defSmrg *-atari*) 1711a4f78defSmrg os=-mint 1712a4f78defSmrg ;; 1713a4f78defSmrg *) 1714a4f78defSmrg os=-none 1715a4f78defSmrg ;; 1716a4f78defSmrgesac 1717a4f78defSmrgfi 1718a4f78defSmrg 1719a4f78defSmrg# Here we handle the case where we know the os, and the CPU type, but not the 1720a4f78defSmrg# manufacturer. We pick the logical manufacturer. 1721a4f78defSmrgvendor=unknown 1722a4f78defSmrgcase $basic_machine in 1723a4f78defSmrg *-unknown) 1724a4f78defSmrg case $os in 1725a4f78defSmrg -riscix*) 1726a4f78defSmrg vendor=acorn 1727a4f78defSmrg ;; 1728a4f78defSmrg -sunos*) 1729a4f78defSmrg vendor=sun 1730a4f78defSmrg ;; 1731a4f78defSmrg -cnk*|-aix*) 1732a4f78defSmrg vendor=ibm 1733a4f78defSmrg ;; 1734a4f78defSmrg -beos*) 1735a4f78defSmrg vendor=be 1736a4f78defSmrg ;; 1737a4f78defSmrg -hpux*) 1738a4f78defSmrg vendor=hp 1739a4f78defSmrg ;; 1740a4f78defSmrg -mpeix*) 1741a4f78defSmrg vendor=hp 1742a4f78defSmrg ;; 1743a4f78defSmrg -hiux*) 1744a4f78defSmrg vendor=hitachi 1745a4f78defSmrg ;; 1746a4f78defSmrg -unos*) 1747a4f78defSmrg vendor=crds 1748a4f78defSmrg ;; 1749a4f78defSmrg -dgux*) 1750a4f78defSmrg vendor=dg 1751a4f78defSmrg ;; 1752a4f78defSmrg -luna*) 1753a4f78defSmrg vendor=omron 1754a4f78defSmrg ;; 1755a4f78defSmrg -genix*) 1756a4f78defSmrg vendor=ns 1757a4f78defSmrg ;; 1758a4f78defSmrg -mvs* | -opened*) 1759a4f78defSmrg vendor=ibm 1760a4f78defSmrg ;; 1761a4f78defSmrg -os400*) 1762a4f78defSmrg vendor=ibm 1763a4f78defSmrg ;; 1764a4f78defSmrg -ptx*) 1765a4f78defSmrg vendor=sequent 1766a4f78defSmrg ;; 1767a4f78defSmrg -tpf*) 1768a4f78defSmrg vendor=ibm 1769a4f78defSmrg ;; 1770a4f78defSmrg -vxsim* | -vxworks* | -windiss*) 1771a4f78defSmrg vendor=wrs 1772a4f78defSmrg ;; 1773a4f78defSmrg -aux*) 1774a4f78defSmrg vendor=apple 1775a4f78defSmrg ;; 1776a4f78defSmrg -hms*) 1777a4f78defSmrg vendor=hitachi 1778a4f78defSmrg ;; 1779a4f78defSmrg -mpw* | -macos*) 1780a4f78defSmrg vendor=apple 1781a4f78defSmrg ;; 1782a4f78defSmrg -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) 1783a4f78defSmrg vendor=atari 1784a4f78defSmrg ;; 1785a4f78defSmrg -vos*) 1786a4f78defSmrg vendor=stratus 1787a4f78defSmrg ;; 1788a4f78defSmrg esac 1789fb570538Smrg basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` 1790a4f78defSmrg ;; 1791a4f78defSmrgesac 1792a4f78defSmrg 1793fb570538Smrgecho "$basic_machine$os" 1794a4f78defSmrgexit 1795a4f78defSmrg 1796a4f78defSmrg# Local variables: 1797fb570538Smrg# eval: (add-hook 'before-save-hook 'time-stamp) 1798a4f78defSmrg# time-stamp-start: "timestamp='" 1799a4f78defSmrg# time-stamp-format: "%:y-%02m-%02d" 1800a4f78defSmrg# time-stamp-end: "'" 1801a4f78defSmrg# End: 1802