scripts/config.sub
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Sun May 11 23:43:52 2014 +0200 (2014-05-11)
changeset 3320 78af1c99bc6d
parent 3260 f43e37c7c047
permissions -rwxr-xr-x
scripts/functions: add target_endian_le and target_endian_be

We currently define target_endian_el and target_endian_eb to be the
tuple extension depending on endianness, defined to be respectively
'el' or 'eb' according to the endianness.

Some architecture do not use 'el' or 'eb', but use 'le' or 'be'.

Provide that as well, as two new variables: target_endian_le and
target_endian_be.

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