Skip to content
Snippets Groups Projects
config.sub 34.9 KiB
Newer Older
  • Learn to ignore specific revisions
  • #! /bin/sh
    # Configuration validation subroutine script.
    #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
    
    #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
    #   2011, 2012 Free Software Foundation, Inc.
    
    timestamp='2012-10-10'
    
    
    # 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.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    
    # along with this program; if not, see <http://www.gnu.org/licenses/>.
    
    #
    # As a special exception to the GNU General Public License, if you
    # distribute this file as part of a program that contains a
    # configuration script generated by Autoconf, you may include it under
    # the same distribution terms that you use for the rest of that program.
    
    
    # Please send patches to <config-patches@gnu.org>.  Submit a context
    
    # diff and a properly formatted GNU ChangeLog entry.
    
    #
    # Configuration subroutine to validate and canonicalize a configuration type.
    # Supply the specified configuration type as an argument.
    # If it is invalid, we print an error message on stderr and exit with code 1.
    # Otherwise, we print the canonical config type on stdout and succeed.
    
    
    # You can get the latest version of this script from:
    # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
    
    
    # This file is supposed to be the same for all GNU packages
    # and recognize all the CPU types, system types and aliases
    # that are meaningful with *any* GNU software.
    # Each package is responsible for reporting which valid configurations
    # it does not support.  The user should be able to distinguish
    # a failure to support a valid configuration from a meaningless
    # configuration.
    
    # The goal of this file is to map all the various variations of a given
    # machine specification into a single specification in the form:
    #	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
    # or in some cases, the newer four-part form:
    #	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
    # It is wrong to echo any other type of specification.
    
    me=`echo "$0" | sed -e 's,.*/,,'`
    
    usage="\
    Usage: $0 [OPTION] CPU-MFR-OPSYS
           $0 [OPTION] ALIAS
    
    Canonicalize a configuration name.
    
    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, 2006, 2007, 2008, 2009, 2010, 2011, 2012
    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
        --time-stamp | --time* | -t )
           echo "$timestamp" ; exit ;;
        --version | -v )
           echo "$version" ; exit ;;
        --help | --h* | -h )
           echo "$usage"; exit ;;
        -- )     # Stop option processing
           shift; break ;;
        - )	# Use stdin as input.
           break ;;
        -* )
           echo "$me: invalid option $1$help"
           exit 1 ;;
    
        *local*)
           # First pass through any local machine types.
           echo $1
           exit ;;
    
        * )
           break ;;
      esac
    done
    
    case $# in
     0) echo "$me: missing argument$help" >&2
        exit 1;;
     1) ;;
     *) echo "$me: too many arguments$help" >&2
        exit 1;;
    esac
    
    # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
    # Here we must recognize all the valid KERNEL-OS combinations.
    maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
    case $maybe_os in
    
      nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
      linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
      knetbsd*-gnu* | netbsd*-gnu* | \
    
      kopensolaris*-gnu* | \
    
      storm-chaos* | os2-emx* | rtmk-nova*)
        os=-$maybe_os
        basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
        ;;
    
      android-linux)
        os=-linux-android
        basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
        ;;
    
      *)
        basic_machine=`echo $1 | sed 's/-[^-]*$//'`
        if [ $basic_machine != $1 ]
        then os=`echo $1 | sed 's/.*-/-/'`
        else os=; fi
        ;;
    esac
    
    ### Let's recognize common machines as not being operating systems so
    ### that things like config.sub decstation-3100 work.  We also
    ### recognize some manufacturers as not being operating systems, so we
    ### can provide default operating systems below.
    case $os in
    	-sun*os*)
    		# Prevent following clause from handling this invalid input.
    		;;
    	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
    	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
    	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
    	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
    	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
    	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
    
    	-apple | -axis | -knuth | -cray | -microblaze*)
    
    	-sim | -cisco | -oki | -wec | -winbond)
    		os=
    		basic_machine=$1
    		;;
    	-scout)
    		;;
    	-wrs)
    		os=-vxworks
    		basic_machine=$1
    		;;
    	-chorusos*)
    		os=-chorusos
    		basic_machine=$1
    		;;
    
    	-chorusrdb)
    		os=-chorusrdb
    
    	-hiux*)
    		os=-hiuxwe2
    		;;
    	-sco6)
    		os=-sco5v6
    		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
    		;;
    	-sco5)
    		os=-sco3.2v5
    		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
    		;;
    	-sco4)
    		os=-sco3.2v4
    		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
    		;;
    	-sco3.2.[4-9]*)
    		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
    		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
    		;;
    	-sco3.2v[4-9]*)
    		# Don't forget version if it is 3.2v4 or newer.
    		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
    		;;
    	-sco5v6*)
    		# Don't forget version if it is 3.2v4 or newer.
    		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
    		;;
    	-sco*)
    		os=-sco3.2v2
    		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
    		;;
    	-udk*)
    		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
    		;;
    	-isc)
    		os=-isc2.2
    		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
    		;;
    	-clix*)
    		basic_machine=clipper-intergraph
    		;;
    	-isc*)
    		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
    		;;
    
    	-lynx*178)
    		os=-lynxos178
    		;;
    	-lynx*5)
    		os=-lynxos5
    		;;
    
    	-lynx*)
    		os=-lynxos
    		;;
    	-ptx*)
    		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
    		;;
    	-windowsnt*)
    		os=`echo $os | sed -e 's/windowsnt/winnt/'`
    		;;
    	-psos*)
    		os=-psos
    		;;
    	-mint | -mint[0-9]*)
    		basic_machine=m68k-atari
    		os=-mint
    		;;
    esac
    
    # 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 \
    
    	| aarch64 | aarch64_be \
    
    	| 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 | avr32 \
    
    	| bfin \
    	| c4x | clipper \
    	| d10v | d30v | dlx | dsp16xx \
    
    	| fido | fr30 | frv \
    
    	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
    
    	| i370 | i860 | i960 | ia64 \
    	| ip2k | iq2000 \
    
    	| lm32 \
    	| m32c | m32r | m32rle | m68000 | m68k | m88k \
    
    	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
    
    	| mips | mipsbe | mipseb | mipsel | mipsle \
    	| mips16 \
    	| mips64 | mips64el \
    
    	| mips64octeon | mips64octeonel \
    
    	| mips64r5900 | mips64r5900el \
    	| mips64vr | mips64vrel \
    
    	| mips64vr4100 | mips64vr4100el \
    	| mips64vr4300 | mips64vr4300el \
    	| mips64vr5000 | mips64vr5000el \
    	| mips64vr5900 | mips64vr5900el \
    	| mipsisa32 | mipsisa32el \
    	| mipsisa32r2 | mipsisa32r2el \
    	| mipsisa64 | mipsisa64el \
    	| mipsisa64r2 | mipsisa64r2el \
    	| mipsisa64sb1 | mipsisa64sb1el \
    	| mipsisa64sr71k | mipsisa64sr71kel \
    	| mipstx39 | mipstx39el \
    	| mn10200 | mn10300 \
    
    	| nds32 | nds32le | nds32be \
    
    	| powerpc | powerpc64 | powerpc64le | powerpcle \
    
    	| score \
    	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
    
    	| sh64 | sh64le \
    	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
    	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
    
    	| spu \
    	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
    	| ubicom32 \
    	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
    
    	| x86 | xc16x | xstormy16 | xtensa \
    
    	c54x)
    		basic_machine=tic54x-unknown
    		;;
    	c55x)
    		basic_machine=tic55x-unknown
    		;;
    	c6x)
    		basic_machine=tic6x-unknown
    		;;
    	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
    
    		basic_machine=$basic_machine-unknown
    		os=-none
    		;;
    	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
    		;;
    	ms1)
    		basic_machine=mt-unknown
    		;;
    
    
    	strongarm | thumb | xscale)
    		basic_machine=arm-unknown
    		;;
    	xgate)
    		basic_machine=$basic_machine-unknown
    		os=-none
    		;;
    	xscaleeb)
    		basic_machine=armeb-unknown
    		;;
    
    	xscaleel)
    		basic_machine=armel-unknown
    		;;
    
    
    	# We use `pc' rather than `unknown'
    	# because (1) that's what they normally are, and
    	# (2) the word "unknown" tends to confuse beginning users.
    	i*86 | x86_64)
    	  basic_machine=$basic_machine-pc
    	  ;;
    	# Object if more than one company name word.
    	*-*-*)
    		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
    		exit 1
    		;;
    	# Recognize the basic CPU types with company name.
    	580-* \
    	| a29k-* \
    
    	| aarch64-* | aarch64_be-* \
    
    	| 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-* | avr32-* \
    
    	| be32-* | be64-* \
    
    	| c[123]* | c30-* | [cjt]90-* | c4x-* \
    
    	| clipper-* | craynv-* | cydra-* \
    	| d10v-* | d30v-* | dlx-* \
    	| elxsi-* \
    
    	| 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-* \
    
    	| le32-* | le64-* \
    
    	| lm32-* \
    	| m32c-* | m32r-* | m32rle-* \
    
    	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
    
    	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
    
    	| microblaze-* | microblazeel-* \
    
    	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
    	| mips16-* \
    	| mips64-* | mips64el-* \
    
    	| mips64octeon-* | mips64octeonel-* \
    
    	| mips64r5900-* | mips64r5900el-* \
    	| mips64vr-* | mips64vrel-* \
    
    	| mips64vr4100-* | mips64vr4100el-* \
    	| mips64vr4300-* | mips64vr4300el-* \
    	| mips64vr5000-* | mips64vr5000el-* \
    	| mips64vr5900-* | mips64vr5900el-* \
    	| mipsisa32-* | mipsisa32el-* \
    	| mipsisa32r2-* | mipsisa32r2el-* \
    	| mipsisa64-* | mipsisa64el-* \
    	| mipsisa64r2-* | mipsisa64r2el-* \
    	| mipsisa64sb1-* | mipsisa64sb1el-* \
    	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
    	| mipstx39-* | mipstx39el-* \
    	| mmix-* \
    	| mt-* \
    	| msp430-* \
    
    	| nds32-* | nds32le-* | nds32be-* \
    
    	| nios-* | nios2-* \
    	| none-* | np1-* | ns16k-* | ns32k-* \
    
    	| orion-* \
    	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
    
    	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
    
    	| rl78-* | romp-* | rs6000-* | rx-* \
    
    	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
    
    	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
    	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
    	| sparclite-* \
    
    	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
    	| tahoe-* \
    	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
    	| tile*-* \
    
    	| ubicom32-* \
    	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
    	| vax-* \
    
    	| x86-* | x86_64-* | xc16x-* | xps100-* \
    
    	| xstormy16-* | xtensa*-* \
    
    	| z8k-* | z80-*)
    
    	# 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
    		;;
    	3b*)
    		basic_machine=we32k-att
    		;;
    	a29khif)
    		basic_machine=a29k-amd
    		os=-udi
    		;;
    
    		basic_machine=abacus-unknown
    		;;
    	adobe68k)
    		basic_machine=m68010-adobe
    		os=-scout
    		;;
    	alliant | fx80)
    		basic_machine=fx80-alliant
    		;;
    	altos | altos3068)
    		basic_machine=m68k-altos
    		;;
    	am29k)
    		basic_machine=a29k-none
    		os=-bsd
    		;;
    	amd64)
    		basic_machine=x86_64-pc
    		;;
    	amd64-*)
    		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
    		;;
    	amdahl)
    		basic_machine=580-amdahl
    		os=-sysv
    		;;
    	amiga | amiga-*)
    		basic_machine=m68k-unknown
    		;;
    	amigaos | amigados)
    		basic_machine=m68k-unknown
    		os=-amigaos
    		;;
    	amigaunix | amix)
    		basic_machine=m68k-unknown
    		os=-sysv4
    		;;
    	apollo68)
    		basic_machine=m68k-apollo
    		os=-sysv
    		;;
    	apollo68bsd)
    		basic_machine=m68k-apollo
    		os=-bsd
    		;;
    
    	aros)
    		basic_machine=i386-pc
    		os=-aros
    		;;
    
    	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
    		;;
    	bluegene*)
    		basic_machine=powerpc-ibm
    		os=-cnk
    		;;
    
    	c54x-*)
    		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
    		;;
    	c55x-*)
    		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
    		;;
    	c6x-*)
    		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
    		;;
    
    		basic_machine=arm-unknown
    		os=-cegcc
    		;;
    
    	convex-c1)
    		basic_machine=c1-convex
    		os=-bsd
    		;;
    	convex-c2)
    		basic_machine=c2-convex
    		os=-bsd
    		;;
    	convex-c32)
    		basic_machine=c32-convex
    		os=-bsd
    		;;
    	convex-c34)
    		basic_machine=c34-convex
    		os=-bsd
    		;;
    	convex-c38)
    		basic_machine=c38-convex
    		os=-bsd
    		;;
    	cray | j90)
    		basic_machine=j90-cray
    		os=-unicos
    		;;
    	craynv)
    		basic_machine=craynv-cray
    		os=-unicosmp
    		;;
    
    		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
    		;;
    	crx)
    		basic_machine=crx-unknown
    		os=-elf
    		;;
    	da30 | da30-*)
    		basic_machine=m68k-da30
    		;;
    	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
    		basic_machine=mips-dec
    		;;
    	decsystem10* | dec10*)
    		basic_machine=pdp10-dec
    		os=-tops10
    		;;
    	decsystem20* | dec20*)
    		basic_machine=pdp10-dec
    		os=-tops20
    		;;
    	delta | 3300 | motorola-3300 | motorola-delta \
    	      | 3300-motorola | delta-motorola)
    		basic_machine=m68k-motorola
    		;;
    	delta88)
    		basic_machine=m88k-motorola
    		os=-sysv3
    		;;
    
    	dicos)
    		basic_machine=i686-pc
    		os=-dicos
    		;;
    
    	djgpp)
    		basic_machine=i586-pc
    		os=-msdosdjgpp
    		;;
    	dpx20 | dpx20-*)
    		basic_machine=rs6000-bull
    		os=-bosx
    		;;
    	dpx2* | dpx2*-bull)
    		basic_machine=m68k-bull
    		os=-sysv3
    		;;
    	ebmon29k)
    		basic_machine=a29k-amd
    		os=-ebmon
    		;;
    	elxsi)
    		basic_machine=elxsi-elxsi
    		os=-bsd
    		;;
    	encore | umax | mmax)
    		basic_machine=ns32k-encore
    		;;
    	es1800 | OSE68k | ose68k | ose | OSE)
    		basic_machine=m68k-ericsson
    		os=-ose
    		;;
    	fx2800)
    		basic_machine=i860-alliant
    		;;
    	genix)
    		basic_machine=ns32k-ns
    		;;
    	gmicro)
    		basic_machine=tron-gmicro
    		os=-sysv
    		;;
    	go32)
    		basic_machine=i386-pc
    		os=-go32
    		;;
    	h3050r* | hiux*)
    		basic_machine=hppa1.1-hitachi
    		os=-hiuxwe2
    		;;
    	h8300hms)
    		basic_machine=h8300-hitachi
    		os=-hms
    		;;
    	h8300xray)
    		basic_machine=h8300-hitachi
    		os=-xray
    		;;
    	h8500hms)
    		basic_machine=h8500-hitachi
    		os=-hms
    		;;
    	harris)
    		basic_machine=m88k-harris
    		os=-sysv3
    		;;
    	hp300-*)
    		basic_machine=m68k-hp
    		;;
    	hp300bsd)
    		basic_machine=m68k-hp
    		os=-bsd
    		;;
    	hp300hpux)
    		basic_machine=m68k-hp
    		os=-hpux
    		;;
    	hp3k9[0-9][0-9] | hp9[0-9][0-9])
    		basic_machine=hppa1.0-hp
    		;;
    	hp9k2[0-9][0-9] | hp9k31[0-9])
    		basic_machine=m68000-hp
    		;;
    	hp9k3[2-9][0-9])
    		basic_machine=m68k-hp
    		;;
    	hp9k6[0-9][0-9] | hp6[0-9][0-9])
    		basic_machine=hppa1.0-hp
    		;;
    	hp9k7[0-79][0-9] | hp7[0-79][0-9])
    		basic_machine=hppa1.1-hp
    		;;
    	hp9k78[0-9] | hp78[0-9])
    		# FIXME: really hppa2.0-hp
    		basic_machine=hppa1.1-hp
    		;;
    	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
    		# FIXME: really hppa2.0-hp
    		basic_machine=hppa1.1-hp
    		;;
    	hp9k8[0-9][13679] | hp8[0-9][13679])
    		basic_machine=hppa1.1-hp
    		;;
    	hp9k8[0-9][0-9] | hp8[0-9][0-9])
    		basic_machine=hppa1.0-hp
    		;;
    	hppa-next)
    		os=-nextstep3
    		;;
    	hppaosf)
    		basic_machine=hppa1.1-hp
    		os=-osf
    		;;
    	hppro)
    		basic_machine=hppa1.1-hp
    		os=-proelf
    		;;
    	i370-ibm* | ibm*)
    		basic_machine=i370-ibm
    		;;
    	i*86v32)
    		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
    		os=-sysv32
    		;;
    	i*86v4*)
    		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
    		os=-sysv4
    		;;
    	i*86v)
    		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
    		os=-sysv
    		;;
    	i*86sol2)
    		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
    		os=-solaris2
    		;;
    	i386mach)
    		basic_machine=i386-mach
    		os=-mach
    		;;
    	i386-vsta | vsta)
    		basic_machine=i386-unknown
    		os=-vsta
    		;;
    	iris | iris4d)
    		basic_machine=mips-sgi
    		case $os in
    		    -irix*)
    			;;
    		    *)
    			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
    		;;
    
    	microblaze*)
    		basic_machine=microblaze-xilinx
    		;;
    	mingw64)
    		basic_machine=x86_64-pc
    		os=-mingw64
    		;;
    
    	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/'`
    		;;
    	mips3*)
    		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
    		;;
    	monitor)
    		basic_machine=m68k-rom68k
    		os=-coff
    		;;
    	morphos)
    		basic_machine=powerpc-unknown
    		os=-morphos
    		;;
    	msdos)
    		basic_machine=i386-pc
    		os=-msdos
    		;;
    	ms1-*)
    		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
    		;;
    
    	msys)
    		basic_machine=i386-pc
    		os=-msys
    		;;
    
    	nacl)
    		basic_machine=le32-unknown
    		os=-nacl
    		;;
    
    	ncr3000)
    		basic_machine=i486-ncr
    		os=-sysv4
    		;;
    	netbsd386)
    		basic_machine=i386-unknown
    		os=-netbsd
    		;;
    	netwinder)
    		basic_machine=armv4l-rebel
    		os=-linux
    		;;
    	news | news700 | news800 | news900)
    		basic_machine=m68k-sony
    		os=-newsos
    		;;
    	news1000)
    		basic_machine=m68030-sony
    		os=-newsos
    		;;
    	news-3600 | risc-news)
    		basic_machine=mips-sony
    		os=-newsos
    		;;
    	necv70)
    		basic_machine=v70-nec
    		os=-sysv
    		;;
    	next | m*-next )
    		basic_machine=m68k-next
    		case $os in
    		    -nextstep* )
    			;;
    		    -ns2*)
    		      os=-nextstep2
    			;;
    		    *)
    		      os=-nextstep3
    			;;
    		esac
    		;;
    	nh3000)
    		basic_machine=m68k-harris
    		os=-cxux
    		;;
    	nh[45]000)
    		basic_machine=m88k-harris
    		os=-cxux
    		;;
    	nindy960)
    		basic_machine=i960-intel
    		os=-nindy
    		;;
    	mon960)
    		basic_machine=i960-intel
    		os=-mon960
    		;;
    	nonstopux)
    		basic_machine=mips-compaq
    		os=-nonstopux
    		;;
    	np1)
    		basic_machine=np1-gould
    		;;
    
    	neo-tandem)
    		basic_machine=neo-tandem
    		;;
    	nse-tandem)
    		basic_machine=nse-tandem
    		;;
    
    	nsr-tandem)
    		basic_machine=nsr-tandem
    		;;
    	op50n-* | op60c-*)
    		basic_machine=hppa1.1-oki
    		os=-proelf
    		;;
    	openrisc | openrisc-*)
    		basic_machine=or32-unknown
    		;;
    	os400)
    		basic_machine=powerpc-ibm
    		os=-os400
    		;;
    	OSE68000 | ose68000)
    		basic_machine=m68000-ericsson
    		os=-ose
    		;;
    	os68k)
    		basic_machine=m68k-none
    		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)
    		basic_machine=i786-pc
    		;;
    	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
    		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
    		;;
    	pentiumpro-* | p6-* | 6x86-* | athlon-*)
    		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
    		;;
    	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
    		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
    		;;
    	pentium4-*)
    		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
    		;;
    	pn)
    		basic_machine=pn-gould
    		;;
    	power)	basic_machine=power-ibm
    		;;
    
    	ppc | ppcbe)	basic_machine=powerpc-unknown