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