# GCC host-specific configuration file.
# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003
# Free Software Foundation, Inc.

#This file is part of GCC.

#GCC 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, or (at your option) any later
#version.

#GCC 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 GCC; see the file COPYING.  If not, write to the Free
#Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#02111-1307, USA.

# This is the GCC host-specific configuration file
# where a configuration type is mapped to different system-specific
# definitions and files.  This is invoked by the autoconf-generated
# configure script.  Putting it in a separate shell file lets us skip
# running autoconf when modifying host-specific information.

# This file switches on the shell variable ${host}.  As much of this as
# is reasonable should be replaced with autoconf tests in the future.

# This file sets the following shell variables for use by the
# autoconf-generated configure script:
#
#  host_xm_file         List of files to include when compiling for the
#                       host machine.
#
#  host_xm_defines      List of macros to define when compiling for the
#                       host machine.
#
#  host_xmake_file      List of host-specific makefile-fragments.
#
#  host_exeext          Set to the suffix, if the host machine requires
#                       executables to have a file name suffix.
#
#  host_extra_objs      List of extra host-dependent objects that should
#                       be linked into the compiler proper.
#
#  host_extra_gcc_objs  List of extra host-dependent objects that should
#                       be linked into the gcc driver.
#
#  out_host_hook_obj    An object file that provides the host hooks.

# When setting any of these variables, check to see if a corresponding
# variable is present in config.build; if so, you will likely want to 
# set it in both places.

# Default settings.
host_xm_file=
host_xm_defines=
host_xmake_file=
host_exeext=
host_extra_objs=
host_extra_gcc_objs=
out_host_hook_obj=host-default.o

# Obsolete configurations.
case ${host} in
 dummy)
    if test "x$enable_obsolete" != xyes; then
      echo "*** Configuration for host ${host} is obsolete." >&2
      echo "*** Specify --enable-obsolete to build it anyway." >&2
      echo "*** Support will be REMOVED in the next major release of GCC," >&2
      echo "*** unless a maintainer comes forward." >&2
      exit 1
    fi
    ;;
esac

# Unsupported hosts list.  Do not put an entry in this list unless
# it would otherwise be caught by a more permissive pattern.  The list
# should be in alphabetical order.
case ${host} in
   alpha*-*-linux*libc1* \
 | i[34567]86-sequent-sysv \
 | i[34567]86-sequent-sysv[123]* \
 | i[34567]86-go32-* \
 | i[34567]86-*-go32* \
 | m68k-*-linux*aout* \
 | m68k-*-linux*libc1* \
 | mips64orion*-*-rtems* \
 | powerpc-*-linux*libc1* \
 | sparc-*-linux*aout* \
 | sparc-*-linux*libc1* \
 | sparc-hal-solaris2* \
 | thumb-*-* \
 | *-*-linux*coff* \
 | *-*-linux*oldld* \
 | *-*-rtemsaout* \
 | *-*-rtemscoff* \
 )
    echo "*** Configuration for host ${host} not supported" 1>&2
    exit 1
    ;;
esac

# Machine-specific settings.
case ${host} in
  alpha*-*-unicosmk*)
    ;;
  alpha*-*-linux*)
    ;;
  alpha*-*-gnu*)
    ;;
  alpha*-*-freebsd*)
    ;;
  alpha*-*-netbsd*)
    ;;
  alpha*-*-openbsd*)
    ;;
  alpha*-dec-osf[45]*)
    ;;
  alpha*-dec-*vms*)
    host_xm_file=alpha/xm-vms.h
    host_xmake_file=alpha/x-vms
    host_exeext=.exe
    # This removes the cpu type and manufacturer components and
    #  replaces "." with "_" in the operating system version.
    target_alias=`echo $host | sed 's/.*-.*-\(.*\)$/\1/' | sed 's/\./_/g'`
    prefix=/gnu
    local_prefix=/gnu
    ;;
  arc-*-elf*)
    ;;
  arm-*-coff* | armel-*-coff*)
    ;;
  arm-semi-aof | armel-semi-aof)
    ;;
  arm*-*-freebsd*|strongarm*-*-freebsd*)
    ;;
  arm*-*-netbsdelf*)
    ;;
  arm*-*-netbsd*)
    ;;
  arm*-*-linux*) # ARM GNU/Linux with ELF
    ;;
  arm*-*-uclinux*) # ARM ucLinux
    ;;
  arm*-*-ecos-elf)
    ;;
  arm*-*-rtems*)
    ;;
  arm*-*-elf | ep9312-*-elf)
    ;;
  arm*-wince-pe*)
    ;;
  arm-*-pe*)
    ;;
  arm*-*-kaos*)
    ;;
  avr-*-*)
    ;;
  c4x-*-rtems* | tic4x-*-rtems*)
    ;;
  c4x-* | tic4x-*)
    ;;
  cris-*-aout)
    ;;
  cris-*-elf | cris-*-none)
    ;;
  cris-*-linux*)
    ;;
  d30v-*)
    ;;
  dsp16xx-*)
    ;;
  fr30-*-elf)
    ;;
  frv-*-elf)
    ;;
  h8300-*-rtems*)
    ;;
  h8300-*-elf*)
    ;;
  h8300-*-*)
    ;;
  hppa*64*-*-linux* | parisc*64*-*-linux*)
    ;;
  hppa*-*-linux* | parisc*-*-linux*)
    ;;
#  port not yet contributed.
#  hppa*-*-openbsd*)
#    ;;
  hppa1.1-*-pro*)
    host_xmake_file="pa/x-ada"
    ;;
  hppa1.1-*-osf*)
    host_xmake_file="pa/x-ada"
    ;;
  hppa1.1-*-rtems*)
    host_xmake_file="pa/x-ada"
    ;;
  hppa1.1-*-bsd*)
    host_xmake_file="pa/x-ada"
    ;;
  hppa1.1-*-hpux10* | hppa2*-*-hpux10*)
    host_xmake_file="pa/x-ada"
    ;;
  hppa1.0-*-hpux10*)
    host_xmake_file="pa/x-ada"
    ;;
  hppa*64*-*-hpux11*)
    host_xmake_file="pa/x-ada"
    ;;
  hppa1.1-*-hpux11* | hppa2*-*-hpux11*)
    host_xmake_file="pa/x-ada"
    ;;
  hppa1.0-*-hpux11*)
    host_xmake_file="pa/x-ada"
    ;;
  i370-*-opened*) # IBM 360/370/390 Architecture
    host_xm_defines='FATAL_EXIT_CODE=12'
    ;;
  i370-*-mvs*)
    host_xm_defines='FATAL_EXIT_CODE=12'
    ;;
  i370-*-linux*)
    ;;
  i[34567]86-*-darwin*)
    ;;
  i[34567]86-*-elf*)
    ;;
  i[34567]86-ncr-sysv4*) # NCR 3000 - ix86 running system V.4
    host_xm_defines="SMALL_ARG_MAX"
    ;;
  i[34567]86-*-netware) # Intel 80386's running netware
    ;;
  i[34567]86-sequent-ptx4* | i[34567]86-sequent-sysv4*)
    host_xm_defines="SMALL_ARG_MAX"
    ;;
  i[34567]86-*-aout*)
    ;;
  i[34567]86-*-beoself* | i[34567]86-*-beos*)
    ;;
  i[34567]86-*-freebsd2 | i[34567]86-*-freebsd2.* | i[34567]86-*-freebsd*aout*)
    ;;
  i[34567]86-*-freebsd*)
    ;;
  x86_64-*-freebsd*)
    ;;
  i[34567]86-*-netbsdelf*)
    ;;
  i[34567]86-*-netbsd*)
    ;;
  x86_64-*-netbsd*)
    ;;
  i[34567]86-*-openbsd*)
    ;;
  i[34567]86-*-coff*)
    ;;
  i[34567]86-*-linux*aout*) # Intel 80386's running GNU/Linux with a.out format
    ;;
  i[34567]86-*-linux*libc1) # Intel 80386's running GNU/Linux
                            # with ELF format using the
                            # GNU/Linux C library 5
    ;;
  i[34567]86-*-linux*) # Intel 80386's running GNU/Linux
                       # with ELF format using glibc 2
                       # aka GNU/Linux C library 6
    ;;
  x86_64-*-linux*)
    ;;
  i[34567]86-*-gnu*)
    ;;
  i[34567]86-pc-msdosdjgpp*)
    host_xm_file=i386/xm-djgpp.h
    host_exeext=.exe
    # Shorten $target_alias for 8.3 filename conventions.
    case ${target} in
      *pc-msdosdjgpp*)
        target_alias=djgpp
        ;;
    esac
    ;;
  i[34567]86-moss-msdos* | i[34567]86-*-moss*)
    ;;
  i[34567]86-*-lynxos*)
    ;;
  i[34567]86-*-mach*)
    ;;
  i[34567]86-*-nto-qnx*)
    ;;
  i[34567]86-*-rtems*)
    ;;
  i[34567]86-*-sco3.2v5*) # 80386 running SCO Open Server 5
    ;;
  i[34567]86-*-solaris2*)
    host_xm_defines="SMALL_ARG_MAX"
    ;;
  i[34567]86-*-sysv5*) # Intel x86 on System V Release 5
    ;;
  i[34567]86-*-sysv4*) # Intel 80386's running System V Release 4
    host_xm_defines="SMALL_ARG_MAX"
    ;;
  i[34567]86-*-udk*) # Intel x86 on SCO UW/OSR5 Dev Kit
    ;;
  i[34567]86-*-sysv*) # Intel 80386's running System V
    ;;
  i386-*-vsta) # Intel 80386's running VSTa kernel
    host_xm_file="i386/xm-vsta.h"
    ;;
  i[34567]86-*-pe | i[34567]86-*-cygwin*)
    host_xm_file=i386/xm-cygwin.h
    host_exeext=.exe
    ;;
  i[34567]86-*-mingw32*)
    host_xm_file=i386/xm-mingw32.h
    host_xmake_file=i386/x-mingw32
    host_exeext=.exe
    ;;
  i[34567]86-*-uwin*)
    host_exeext=.exe
    ;;
  i[34567]86-*-interix3*)
    host_xmake_file="x-interix"
    ;;
  i[34567]86-*-interix*)
    ;;
  i[34567]86-*-kaos*)
    ;;
  i860-*-sysv4*)
    host_xmake_file=i860/x-sysv4
    ;;
  i960-*-coff*)
    ;;
  i960-*-rtems)
    ;;
  i960-*-*) # Default i960 environment.
    ;;
  ia64*-*-elf*)
    ;;
  ia64*-*-freebsd*)
    ;;
  ia64*-*-linux*)
    ;;
  ia64*-*-hpux*)
    ;;
  ip2k-*-elf)
    ;;
  iq2000*-*-elf*)
    ;;
  m32r-*-elf*)
    ;;
  # m68hc11 and m68hc12 share the same machine description.
  m68hc11-*-*|m6811-*-*)
    ;;
  m68hc12-*-*|m6812-*-*)
    ;;
  m68000-hp-hpux*) # HP 9000 series 300
    ;;
  m68k-hp-hpux7*) # HP 9000 series 300 running HPUX version 7.
    ;;
  m68k-hp-hpux*) # HP 9000 series 300
    ;;
  m68k-*-aout*)
    ;;
  m68k-*-coff*)
    ;;
  m68020-*-elf* | m68k-*-elf*)
    ;;
  m68010-*-netbsdelf* | m68k*-*-netbsdelf*)
    ;;
  m68k*-*-netbsd*)
    ;;
  m68k*-*-openbsd*)
    ;;
  m68k-*-sysv4*) # Motorola m68k's running system V r4
    ;;
  m68k-*-linux*) # Motorola m68k's running GNU/Linux
                 # with ELF format using glibc 2
                 # aka the GNU/Linux C library 6.
    ;;
  m68k-*-rtems*)
    ;;
  mcore-*-elf)
    ;;
  mcore-*-pe*)
    ;;
  mips-sgi-irix6*o32) # SGI System V.4., IRIX 6, O32 ABI
    host_xm_file=mips/xm-iris5.h
    ;;
  mips-sgi-irix6*) # SGI System V.4., IRIX 6
    ;;
  mips-sgi-irix5cross64) # Irix5 host, Irix 6 target, cross64
    host_xm_file=mips/xm-iris5.h
    ;;
  mips-sgi-irix5*) # SGI System V.4., IRIX 5
    host_xm_file=mips/xm-iris5.h
    ;;
  mips*-*-netbsd*) # NetBSD/mips, either endian.
    ;;
  mips64*-*-linux*)
    ;;
  mips*-*-linux*) # Linux MIPS, either endian.
    ;;
  mips*-*-openbsd*)
    ;;
  mipsisa32-*-elf* | mipsisa32el-*-elf*)
    ;;
  mipsisa32r2-*-elf* | mipsisa32r2el-*-elf*)
    ;;
  mipsisa64-*-elf* | mipsisa64el-*-elf*)
    ;;
  mipsisa64sr71k-*-elf*)
    ;;
  mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
    ;;
  mips-*-elf* | mipsel-*-elf*)
    ;;
  mips64-*-elf* | mips64el-*-elf*)
    ;;
  mips64vr-*-elf* | mips64vrel-*-elf*)
    ;;
  mips64orion-*-elf* | mips64orionel-*-elf*)
    ;;
  mips*-*-rtems*)
    ;;
  mipstx39-*-elf* | mipstx39el-*-elf*)
    ;;
  mmix-knuth-mmixware)
    ;;
  mn10300-*-*)
    ;;
  ns32k-*-netbsdelf*)
    echo "GCC does not yet support the ${host} host"; exit 1
    ;;
  ns32k-*-netbsd*)
    ;;
  pdp11-*-bsd)
    ;;
  pdp11-*-*)
    ;;
  avr-*-*)
    ;;
#  port not yet contributed
#  powerpc-*-openbsd*)
#    ;;
  powerpc64-*-linux*)
    ;;
  powerpc64-*-gnu*)
    ;;
  powerpc-*-beos*)
    ;;
  powerpc-*-darwin*)
    # powerpc-darwin host support.
    out_host_hook_obj=host-darwin.o
    host_xmake_file=rs6000/x-darwin
    ;;
  powerpc*-*-freebsd*)
    ;;
  powerpc-*-netbsd*)
    ;;
  powerpc-*-chorusos*)
    ;;
  powerpc-*-eabispe*)
    ;;
  powerpc-*-eabisimaltivec*)
    ;;
  powerpc-*-eabisim*)
    ;;
  powerpc-*-elf*)
    ;;
  powerpc-*-eabialtivec*)
    ;;
  powerpc-*-eabi*)
    ;;
  powerpc-*-rtems*)
    ;;
  powerpc-*-linux*altivec*)
    ;;
  powerpc-*-linux*spe*)
    ;;
  powerpc-*-linux*)
    ;;
  powerpc-*-gnu-gnualtivec*)
    ;;
  powerpc-*-gnu*)
    ;;
  powerpc-wrs-vxworks*)
    ;;
  powerpc-wrs-windiss*)
    ;;
  powerpcle-*-sysv*)
    ;;
  powerpcle-*-elf*)
    ;;
  powerpcle-*-eabisim*)
    ;;
  powerpcle-*-eabi*)
    ;;
  powerpc-*-kaos*)
    ;;
  powerpcle-*-kaos*)
    ;;
  rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*)
    ;;
  rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
    ;;
  rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
    ;;
  rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
    ;;
  rs6000-*-lynxos*)
    ;;
  s390-*-linux*)
    ;;
  s390x-*-linux*)
    ;;
  sh-*-elf* | sh[2346l]*-*-elf* | sh*-*-kaos*)
    ;;
  sh-*-rtemself*)
    ;;
  sh-*-rtems*)
    ;;
  sh-*-linux* | sh[2346lbe]*-*-linux*)
    ;;
  sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
  sh64-*-netbsd* | sh64l*-*-netbsd*)
    ;;
  sh-*-*)
    ;;
  sparc-tti-*)
    ;;
  sparc-*-netbsdelf*)
    ;;
  sparc-*-openbsd*)
    ;;
  sparc64-*-openbsd*)
    ;;
  sparc-*-elf*)
    ;;
  sparc-*-linux*) # SPARC's running GNU/Linux, libc6
    ;;
  sparc-*-rtems*)
    ;;
  sparc64-*-solaris2* | sparcv9-*-solaris2*)
    ;;
  sparc-*-solaris2*)
    ;;
  sparc-*-sysv4*)
    ;;
  sparclite-*-coff*)
    ;;
  sparclite-*-elf*)
    ;;
  sparc86x-*-elf*)
    ;;
  sparc64-*-aout*)
    ;;
  sparc64-*-elf*)
    ;;
  sparc64-*-freebsd*|ultrasparc-*-freebsd*)
    ;;
  sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux
    ;;
  sparc64-*-netbsd*)
    ;;
  strongarm-*-elf*)
    ;;
  strongarm-*-pe)
    ;;
  strongarm-*-kaos*)
    ;;
  v850e-*-*)
    ;;
  v850-*-*)
    ;;
  vax-*-bsd*) # VAXen running BSD
    ;;
  vax-*-sysv*) # VAXen running System V
    ;;
  vax-*-netbsdelf*)
    ;;
  vax-*-netbsd*)
    ;;
  vax-*-openbsd*)
    ;;
  vax-*-ultrix*) # VAXen running ultrix
    ;;
  vax-*-vms*) # VAXen running VMS
    echo "Host ${host} no longer supported" 1>&2
    exit 1
    ;;
  vax-*-*) # VAX default entry
    ;;
  xscale-*-elf)
    ;;
  xscale-*-coff)
    ;;
  xstormy16-*-elf)
    ;;
  xtensa-*-elf*)
    ;;
  xtensa-*-linux*)
    ;;
  am33_2.0-*-linux*)
    ;;
  *)
    echo "*** Configuration ${host} not supported" 1>&2
    exit 1
    ;;
esac