#! /bin/sh
# Configuration validation subroutine script.
#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
#   Free Software Foundation, Inc.
timestamp='2005-12-11'
timestamp='2008-01-16'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
# can handle that machine.  It does not imply ALL GNU software can.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
Operation modes:
  -h, --help         print this help, then exit
  -t, --time-stamp   print date of last modification, then exit
  -v, --version      print version number, then exit
Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
  case $1 in
# Decode aliases for certain CPU-COMPANY combinations.
case $basic_machine in
    # Recognize the basic CPU types without company name.
    # Some are omitted here because they have special meanings below.
    1750a | 580 \
    | a29k \
    | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
    | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
    | am33_2.0 \
    | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
    | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
    | bfin \
    | c4x | clipper \
    | d10v | d30v | dlx | dsp16xx \
    | fr30 | frv \
    | fido | fr30 | frv \
    | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
    | i370 | i860 | i960 | ia64 \
    | ip2k | iq2000 \
    | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
    | m32c | m32r | m32rle | m68000 | m68k | m88k \
    | maxq | mb | microblaze | mcore | mep \
    | mips | mipsbe | mipseb | mipsel | mipsle \
    | mips16 \
    | mips64 | mips64el \
    | mips64vr | mips64vrel \
    | mips64orion | mips64orionel \
    | mips64vr4100 | mips64vr4100el \
    | mips64vr4300 | mips64vr4300el \
    | mips64vr5000 | mips64vr5000el \
    | mips64vr5900 | mips64vr5900el \
    | mipsisa32 | mipsisa32el \
    | mipsisa32r2 | mipsisa32r2el \
    | mipsisa64 | mipsisa64el \
    | mipsisa64r2 | mipsisa64r2el \
    | mipsisa64sb1 | mipsisa64sb1el \
    | mipsisa64sr71k | mipsisa64sr71kel \
    | mipstx39 | mipstx39el \
    | mn10200 | mn10300 \
    | mt \
    | msp430 \
    | nios | nios2 \
    | ns16k | ns32k \
    | or32 \
    | pdp10 | pdp11 | pj | pjl \
    | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
    | pyramid \
    | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
    | score \
    | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
    | sh64 | sh64le \
    | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
    | sparcv8 | sparcv9 | sparcv9b \
    | strongarm \
    | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
    | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
    | spu | strongarm \
    | tahoe | thumb | tic4x | tic80 | tron \
    | v850 | v850e \
    | we32k \
    | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
    | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
    | z8k)
        basic_machine=$basic_machine-unknown
        ;;
    m32c)
        basic_machine=$basic_machine-unknown
        ;;
    m6811 | m68hc11 | m6812 | m68hc12)
        # Motorola 68HC11/12.
        basic_machine=$basic_machine-unknown
        os=-none
        ;;
    m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
        ;;
    ms1)
        basic_machine=mt-unknown
        ;;
        echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
        exit 1
        ;;
    # Recognize the basic CPU types with company name.
    580-* \
    | a29k-* \
    | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
    | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
    | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
    | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
    | avr-* \
    | avr-* | avr32-* \
    | bfin-* | bs2000-* \
    | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
    | clipper-* | craynv-* | cydra-* \
    | d10v-* | d30v-* | dlx-* \
    | elxsi-* \
    | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
    | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
    | h8300-* | h8500-* \
    | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
    | i*86-* | i860-* | i960-* | ia64-* \
    | ip2k-* | iq2000-* \
    | m32r-* | m32rle-* \
    | m32c-* | m32r-* | m32rle-* \
    | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
    | m88110-* | m88k-* | maxq-* | mcore-* \
    | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
    | mips16-* \
    | mips64-* | mips64el-* \
    | mips64vr-* | mips64vrel-* \
    | mips64orion-* | mips64orionel-* \
    | mips64vr4100-* | mips64vr4100el-* \
    | mips64vr4300-* | mips64vr4300el-* \
    | mips64vr5000-* | mips64vr5000el-* \
    | mipsisa32-* | mipsisa32el-* \
    | mipsisa32r2-* | mipsisa32r2el-* \
    | mipsisa64-* | mipsisa64el-* \
    | mipsisa64r2-* | mipsisa64r2el-* \
    | mipsisa64sb1-* | mipsisa64sb1el-* \
    | mipsisa64sr71k-* | mipsisa64sr71kel-* \
    | mipstx39-* | mipstx39el-* \
    | mmix-* \
    | mt-* \
    | msp430-* \
    | nios-* | nios2-* \
    | none-* | np1-* | ns16k-* | ns32k-* \
    | orion-* \
    | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
    | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
    | pyramid-* \
    | romp-* | rs6000-* \
    | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
    | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
    | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
    | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
    | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
    | sparclite-* \
    | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
    | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
    | tahoe-* | thumb-* \
    | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
    | tron-* \
    | v850-* | v850e-* | vax-* \
    | we32k-* \
    | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
    | xstormy16-* | xtensa-* \
    | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
    | xstormy16-* | xtensa*-* \
    | ymp-* \
    | z8k-*)
        ;;
    m32c-*)
    # Recognize the basic CPU types without company name, with glob match.
    xtensa*)
        basic_machine=$basic_machine-unknown
        ;;
    # Recognize the various machine names and aliases which stand
    # for a CPU type and a company and sometimes even an OS.
    386bsd)
        basic_machine=i386-unknown
        os=-bsd
        ;;
    3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
        basic_machine=m68000-att
        ;;
        os=-bsd
        ;;
    aux)
        basic_machine=m68k-apple
        os=-aux
        ;;
    balance)
        basic_machine=ns32k-sequent
        os=-dynix
        ;;
    blackfin)
        basic_machine=bfin-unknown
        os=-linux
        ;;
    blackfin-*)
        basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
        os=-linux
        ;;
    c90)
        basic_machine=c90-cray
        os=-unicos
        ;;
    convex-c1)
        basic_machine=c1-convex
        os=-bsd
        ;;
    convex-c2)
        basic_machine=c2-convex
        os=-bsd
        ;;
    cray | j90)
        basic_machine=j90-cray
        os=-unicos
        ;;
    craynv)
        basic_machine=craynv-cray
        os=-unicosmp
        ;;
    cr16c)
        basic_machine=cr16c-unknown
    cr16)
        basic_machine=cr16-unknown
        os=-elf
        ;;
    crds | unos)
        basic_machine=m68k-crds
        ;;
    crisv32 | crisv32-* | etraxfs*)
        basic_machine=crisv32-axis
        ;;
    cris | cris-* | etrax*)
        basic_machine=cris-axis
            ;;
            *)
            os=-irix4
            ;;
        esac
        ;;
    isi68 | isi)
        basic_machine=m68k-isi
        os=-sysv
        ;;
    m68knommu)
        basic_machine=m68k-unknown
        os=-linux
        ;;
    m68knommu-*)
        basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
        os=-linux
        ;;
    m88k-omron*)
        basic_machine=m88k-omron
        ;;
    magnum | m3230)
        basic_machine=mips-mips
        os=-sysv
        ;;
    merlin)
        basic_machine=ns32k-utek
        os=-sysv
        ;;
    mingw32)
        basic_machine=i386-pc
        os=-mingw32
        ;;
    mingw32ce)
        basic_machine=arm-unknown
        os=-mingw32ce
        ;;
    miniframe)
        basic_machine=m68000-convergent
        ;;
    *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
        basic_machine=m68k-atari
        os=-mint
        ;;
    mips3*-*)
        basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
        ;;
        os=-os68k
        ;;
    pa-hitachi)
        basic_machine=hppa1.1-hitachi
        os=-hiuxwe2
        ;;
    paragon)
        basic_machine=i860-intel
        os=-osf
        ;;
    parisc)
        basic_machine=hppa-unknown
        os=-linux
        ;;
    parisc-*)
        basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
        os=-linux
        ;;
    pbd)
        basic_machine=sparc-tti
        ;;
    pbb)
        basic_machine=m68k-tti
        ;;
    pc532 | pc532-*)
        basic_machine=ns32k-pc532
        ;;
    pc98)
        basic_machine=i386-pc
        ;;
    pc98-*)
        basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
        ;;
    pentium | p5 | k5 | k6 | nexgen | viac3)
        basic_machine=i586-pc
        ;;
    pentiumpro | p6 | 6x86 | athlon | athlon_*)
        basic_machine=i686-pc
        ;;
    pentiumii | pentium2 | pentiumiii | pentium3)
        basic_machine=i686-pc
        ;;
    pentium4)
    sa29200)
        basic_machine=a29k-amd
        os=-udi
        ;;
    sb1)
        basic_machine=mipsisa64sb1-unknown
        ;;
    sb1el)
        basic_machine=mipsisa64sb1el-unknown
        ;;
    sde)
        basic_machine=mipsisa32-sde
        os=-elf
        ;;
    sei)
        basic_machine=mips-sei
        os=-seiux
        ;;
    sequent)
        basic_machine=i386-sequent
        ;;
    sh)
        basic_machine=sh-hitachi
        os=-hms
        ;;
    sh5el)
        basic_machine=sh5le-unknown
        ;;
    sh64)
        basic_machine=sh64-unknown
        ;;
    sparclite-wrs | simso-wrs)
        basic_machine=sparclite-wrs
        os=-vxworks
        ;;
    sps7)
        basic_machine=m68k-bull
        os=-sysv2
        os=-coff
        ;;
    tic55x | c55x*)
        basic_machine=tic55x-unknown
        os=-coff
        ;;
    tic6x | c6x*)
        basic_machine=tic6x-unknown
        os=-coff
        ;;
    tile*)
        basic_machine=tile-unknown
        os=-linux-gnu
        ;;
    tx39)
        basic_machine=mipstx39-unknown
        ;;
    tx39el)
        basic_machine=mipstx39el-unknown
        ;;
    toad1)
        basic_machine=pdp10-xkl
        os=-tops20
        ;;
        ;;
    pdp11)
        basic_machine=pdp11-dec
        ;;
    we32k)
        basic_machine=we32k-att
        ;;
    sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
        basic_machine=sh-unknown
        ;;
    sparc | sparcv8 | sparcv9 | sparcv9b)
    sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
        basic_machine=sparc-sun
        ;;
    cydra)
        basic_machine=cydra-cydrome
        ;;
    orion)
        basic_machine=orion-highlevel
        ;;
    orion105)
        basic_machine=clipper-highlevel
    # The portable systems comes first.
    # Each alternative MUST END IN A *, to match a version number.
    # -sysv* is not here because it comes later, after sysvr4.
    -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
          | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
          | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
          | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
          | -aos* \
          | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
          | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
          | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
          | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
          | -openbsd* | -solidbsd* \
          | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
          | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
          | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
          | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
          | -chorusos* | -chorusrdb* \
          | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
          | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
          | -uxpv* | -beos* | -mpeix* | -udk* \
          | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
          | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
          | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
          | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
          | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
          | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
          | -skyos* | -haiku* | -rdos*)
          | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
    # Remember, each alternative MUST END IN *, to match a version number.
        ;;
    -qnx*)
        case $basic_machine in
            x86-* | i*86-*)
            ;;
            *)
            os=-nto$os
            ;;
        esac
# The value should be what the vendor currently ships out the door with their
# machine or put another way, the most popular os provided with the machine.
# Note that if you're going to try to match "-MANUFACTURER" here (say,
# "-sun"), then you have to tell the case statement up towards the top
# that MANUFACTURER isn't an operating system.  Otherwise, code above
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
case $basic_machine in
        score-*)
        os=-elf
        ;;
        spu-*)
        os=-elf
        ;;
    *-acorn)
        os=-riscix1.2
        ;;
    arm*-rebel)
        os=-linux
        ;;
    arm*-semi)
        os=-aout
        ;;
    c4x-* | tic4x-*)
        os=-coff
        ;;
        c4x-* | tic4x-*)
            os=-coff
        ;;
    # This must come before the *-dec entry.
    pdp10-*)
        os=-tops20
        ;;
    pdp11-*)
        os=-none
        ;;
    *-dec | vax-*)
        os=-ultrix4.2
        ;;
        ;;
    m68000-sun)
        os=-sunos3
        # This also exists in the configure program, but was not the
        # default.
        # os=-sunos4
        ;;
    m68*-cisco)
        os=-aout
        ;;
        mep-*)
        os=-elf
        ;;
    mips*-cisco)
        os=-elf
        ;;
    mips*-*)
        os=-elf
        ;;
    or32-*)
        os=-coff
        ;;
    *-tti)  # must be before sparc entry or we get the wrong os.