# gas target specific configuration file.  This is a -*- sh -*- file.

# This is invoked by configure.  Putting it in a separate shell file
# lets us skip running autoconf when modifying target specific
# information.

# Input shell variables:
#   targ	a configuration target name, such as i686-pc-linux-gnu.

# Output shell variables:
#   cpu_type	canonical gas cpu type; identifies the config/tc-* files
#   fmt		output format; identifies the config/obj-* files
#   em		emulation; identifies the config/te-* files

# Optional output shell variables; these are not always set:
#   arch	the default architecture; sets DEFAULT_ARCH on some systems 
#   endian	"big" or "little"; used on bi-endian systems

cpu_type=
fmt=
em=generic
bfd_gas=no
arch=
endian=

eval `echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`

# Check for architecture variants.  Set cpu_type and, optionally,
# endian and arch.
# Note: This table is alpha-sorted, please try to keep it that way.
case ${cpu} in
  alpha*)		cpu_type=alpha ;;
  am33_2.0)		cpu_type=mn10300 endian=little ;;
  arm*be|arm*b)		cpu_type=arm endian=big ;;
  arm*)			cpu_type=arm endian=little ;;
  bfin*)		cpu_type=bfin endian=little ;;
  c4x*)			cpu_type=tic4x ;;
  cr16*)		cpu_type=cr16 endian=little ;;
  crisv32)		cpu_type=cris arch=crisv32 ;;
  crx*)			cpu_type=crx endian=little ;;
  fido)			cpu_type=m68k ;;
  hppa*)		cpu_type=hppa ;;
  i[3-7]86)		cpu_type=i386 arch=i386;;
  ia64)			cpu_type=ia64 ;;
  ip2k)			cpu_type=ip2k endian=big ;; 
  iq2000)		cpu_type=iq2000 endian=big ;; 
  lm32)			cpu_type=lm32 ;;
  m32c)			cpu_type=m32c endian=little ;;
  m32r)			cpu_type=m32r endian=big ;;
  m32rle)		cpu_type=m32r endian=little ;;
  m5200)		cpu_type=m68k ;;
  m68008)		cpu_type=m68k ;;
  m680[012346]0)	cpu_type=m68k ;;
  m6811|m6812|m68hc12)	cpu_type=m68hc11 ;;
  m683??)		cpu_type=m68k ;;
  mep)			cpu_type=mep endian=little ;;
  microblaze*)		cpu_type=microblaze ;;
  mips*el)		cpu_type=mips endian=little ;;
  mips*)		cpu_type=mips endian=big ;;
  mt)			cpu_type=mt endian=big ;;
  or32*)		cpu_type=or32 endian=big ;;
  pjl*)			cpu_type=pj endian=little ;;
  pj*)			cpu_type=pj endian=big ;;
  powerpc*le*)		cpu_type=ppc endian=little ;;
  powerpc*)		cpu_type=ppc endian=big ;;
  rs6000*)		cpu_type=ppc ;;
  rx)			cpu_type=rx ;;
  s390x*)		cpu_type=s390 arch=s390x ;;
  s390*)		cpu_type=s390 arch=s390 ;;
  score*l)		cpu_type=score endian=little ;;
  score*)		cpu_type=score endian=big ;;
  sh5le*)		cpu_type=sh64 endian=little ;;
  sh5*)			cpu_type=sh64 endian=big ;;
  sh64le*)		cpu_type=sh64 endian=little ;;
  sh64*)		cpu_type=sh64 endian=big ;;
  sh*le)		cpu_type=sh endian=little ;;
  sh*)			cpu_type=sh endian=big ;;
  sparc64*)		cpu_type=sparc arch=v9-64 ;;
  sparc86x*)		cpu_type=sparc arch=sparc86x  ;;
  sparclet*)		cpu_type=sparc arch=sparclet ;;
  sparclite*)		cpu_type=sparc arch=sparclite ;;
  sparc*)		cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
  strongarm*be)		cpu_type=arm endian=big ;;
  strongarm*b)		cpu_type=arm endian=big ;;
  strongarm*)		cpu_type=arm endian=little ;;
  v850*)		cpu_type=v850 ;;
  x86_64*)		cpu_type=i386 arch=x86_64;;
  xscale*be|xscale*b)	cpu_type=arm endian=big ;;
  xscale*)		cpu_type=arm endian=little ;;
  xtensa*)		cpu_type=xtensa arch=xtensa ;;
  *)			cpu_type=${cpu} ;;
esac


# Assign object format.  Set fmt, em, and bfd_gas.
generic_target=${cpu_type}-$vendor-$os
# Note: This table is alpha-sorted, please try to keep it that way.
case ${generic_target} in
  alpha-*-*vms*)			fmt=evax ;;
  alpha-*-osf*)				fmt=ecoff ;;
  alpha-*-linuxecoff*)			fmt=ecoff ;;
  alpha-*-linux-*)			fmt=elf em=linux ;;
  alpha-*-netbsd*)			fmt=elf em=nbsd ;;
  alpha-*-openbsd*)			fmt=elf em=obsd ;;

  arc-*-elf*)				fmt=elf ;;

  arm-*-aout)				fmt=aout ;;
  arm-*-coff | thumb-*-coff)		fmt=coff ;;
  arm-*-rtems* | thumb-*-rtems*)	fmt=elf ;;
  arm-*-elf | thumb-*-elf)		fmt=elf ;;
  arm-*-eabi*)				fmt=elf em=armeabi ;;
  arm-*-symbianelf*)			fmt=elf em=symbian ;;
  arm-*-kaos*)				fmt=elf ;;
  arm-*-conix*)				fmt=elf ;;
  arm-*-linux*aout*)			fmt=aout em=linux ;;
  arm-*-linux-*eabi*)			fmt=elf  em=armlinuxeabi ;;
  arm-*-linux-*)			fmt=elf  em=linux ;;
  arm-*-uclinux*eabi*)			fmt=elf  em=armlinuxeabi ;;
  arm-*-uclinux*)			fmt=elf  em=linux ;;
  arm-*-netbsdelf*)			fmt=elf  em=nbsd ;;
  arm-*-*n*bsd*)			fmt=aout em=nbsd ;;
  arm-*-nto*)				fmt=elf ;;
  arm-epoc-pe | thumb-epoc-pe)		fmt=coff em=epoc-pe ;;
  arm-wince-pe | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*)
					fmt=coff em=wince-pe ;;
  arm-*-pe | thumb-*-pe)		fmt=coff em=pe ;;
  arm-*-riscix*)			fmt=aout em=riscix ;;

  avr-*-*)				fmt=elf bfd_gas=yes ;;

  bfin-*-linux-uclibc)			fmt=fdpicelf em=linux ;;
  bfin-*-uclinux*)			fmt=elf em=linux ;;
  bfin-*-rtems*)			fmt=elf ;;
  bfin-*elf)				fmt=elf ;;

  cr16-*-elf*)				fmt=elf ;;

  cris-*-linux-* | crisv32-*-linux-*)
					fmt=multi em=linux ;;
  cris-*-* | crisv32-*-*)		fmt=multi ;;

  crx-*-elf*)				fmt=elf ;;

  d10v-*-*)				fmt=elf ;;
  d30v-*-*)				fmt=elf ;;
  dlx-*-*)				fmt=elf ;;

  fr30-*-*)				fmt=elf ;;
  frv-*-*linux*)			fmt=elf em=linux;;
  frv-*-*)				fmt=elf ;;

  hppa-*-linux*)
    case ${cpu} in
      hppa*64*)				fmt=elf em=hppalinux64 ;;
      hppa*)				fmt=elf em=linux ;;
    esac ;;
  hppa-*-*elf*)				fmt=elf em=hppa ;;
  hppa-*-lites*)			fmt=elf em=hppa ;;
  hppa-*-netbsd*)			fmt=elf em=nbsd ;;
  hppa-*-openbsd*)			fmt=elf em=hppa ;;
  hppa-*-osf*)				fmt=som em=hppa ;;
  hppa-*-hpux11*)
    case ${cpu} in
      hppa*64*)				fmt=elf em=hppa64 ;;
      hppa*)				fmt=som em=hppa ;;
    esac ;;
  hppa-*-hpux*)				fmt=som em=hppa ;;
  hppa-*-mpeix*)			fmt=som em=hppa ;;
  hppa-*-bsd*)				fmt=som em=hppa ;;
  hppa-*-hiux*)				fmt=som em=hppa ;;

  h8300-*-elf | h8300-*-rtems*)		fmt=elf ;;

  i370-*-elf* | i370-*-linux*)		fmt=elf ;;

  i386-ibm-aix*)			fmt=coff em=i386aix ;;
  i386-sequent-bsd*)			fmt=aout em=dynix ;;
  i386-*-beospe*)			fmt=coff em=pe ;;
  i386-*-beos*)				fmt=elf ;;
  i386-*-coff)				fmt=coff ;;
  i386-*-elf)				fmt=elf ;;
  i386-*-kaos*)				fmt=elf ;;
  i386-*-bsd*)				fmt=aout em=386bsd ;;
  i386-*-netbsd0.8)			fmt=aout em=386bsd ;;
  i386-*-netbsdpe*)			fmt=coff em=pe ;;
  i386-*-netbsd*-gnu* | \
  i386-*-knetbsd*-gnu | \
  i386-*-netbsdelf*)			fmt=elf em=nbsd ;;
  i386-*-netbsd*)
    case ${cpu} in
      x86_64)				fmt=elf em=nbsd ;;
      *)				fmt=aout em=nbsd ;;
    esac ;;
  i386-*-openbsd[0-2].* | \
  i386-*-openbsd3.[0-2])		fmt=aout em=nbsd ;;
  i386-*-openbsd*)			fmt=elf em=nbsd ;;
  i386-*-linux*aout*)			fmt=aout em=linux ;;
  i386-*-linux*oldld)			fmt=aout em=linux ;;
  i386-*-linux*coff*)			fmt=coff em=linux ;;
  i386-*-linux-*)			fmt=elf em=linux ;;
  i386-*-lynxos*)			fmt=elf em=lynx ;;
  i386-*-sysv[45]*)			fmt=elf ;;
  i386-*-solaris*)			fmt=elf em=solaris ;;
  i386-*-freebsdaout*)			fmt=aout em=386bsd ;;
  i386-*-freebsd[12].*)			fmt=aout em=386bsd ;;
  i386-*-freebsd[12])			fmt=aout em=386bsd ;;
  i386-*-freebsd* | i386-*-kfreebsd*-gnu | i386-*-dragonfly*)
					fmt=elf em=freebsd ;;
  i386-*-sysv*)				fmt=coff ;;
  i386-*-sco3.2v5*coff)			fmt=coff ;;
  i386-*-isc*)				fmt=coff ;;
  i386-*-sco3.2v5*)			fmt=elf ;;
  i386-*-sco3.2*)			fmt=coff ;;
  i386-*-vsta)				fmt=aout ;;
  i386-*-msdosdjgpp* \
  | i386-*-go32*)			fmt=coff em=go32 ;;
  i386-*-rtems*)			fmt=elf ;;
  i386-*-gnu*)				fmt=elf em=gnu ;;
  i386-*-mach*)				fmt=aout em=mach ;;
  i386-*-msdos*)			fmt=aout ;;
  i386-*-moss*)				fmt=elf ;;
  i386-*-pe)				fmt=coff em=pe ;;
  i386-*-cygwin*)			fmt=coff em=pe ;;
  i386-*-interix*)			fmt=coff em=interix ;;
  i386-*-mingw*)
    case ${cpu} in
      x86_64*)				fmt=coff em=pep ;;
      i*)				fmt=coff em=pe ;;
    esac ;;
  i386-*-nto-qnx*)			fmt=elf ;;
  i386-*-*nt*)				fmt=coff em=pe ;;
  i386-*-chaos)				fmt=elf ;;
  i386-*-rdos*)				fmt=elf ;;
  i386-*-darwin*)			fmt=macho ;;

  i860-*-*)				fmt=elf endian=little ;;

  i960-*-elf*)				fmt=elf ;;

  ia64-*-elf*)				fmt=elf ;;
  ia64-*-*vms*)				fmt=elf em=vms ;;
  ia64-*-aix*)				fmt=elf em=ia64aix ;;
  ia64-*-linux-*)			fmt=elf em=linux ;;
  ia64-*-hpux*)				fmt=elf em=hpux ;;
  ia64-*-netbsd*)			fmt=elf em=nbsd ;;

  ip2k-*-*)				fmt=elf ;;

  iq2000-*-elf)				fmt=elf ;;

  lm32-*-*)				fmt=elf ;;

  m32c-*-elf | m32c-*-rtems*)		fmt=elf ;;

  m32r-*-elf* | m32r-*-rtems*)		fmt=elf ;;
  m32r-*-linux*)			fmt=elf em=linux;;

  m68hc11-*-* | m6811-*-*)		fmt=elf ;;
  m68hc12-*-* | m6812-*-*)		fmt=elf ;;

  m68k-*-aout)				fmt=aout bfd_gas=yes ;;
  m68k-*-elf*)				fmt=elf ;;
  m68k-*-sysv4*)			fmt=elf em=svr4 ;;
  m68k-*-rtems*)			fmt=elf ;;
  m68k-*-linux-*)			fmt=elf em=linux ;;
  m68k-*-uclinux*)			fmt=elf em=uclinux ;;
  m68k-*-gnu*)				fmt=elf ;;
  m68k-*-netbsdelf*)			fmt=elf em=nbsd ;;
  m68k-*-netbsd*)			fmt=aout em=nbsd bfd_gas=yes ;;
  m68k-*-openbsd*)			fmt=aout em=nbsd bfd_gas=yes ;;
  m68k-*-psos*)				fmt=elf em=psos;;

  mep-*-elf)				fmt=elf ;;

  mcore-*-elf)				fmt=elf ;;
  mcore-*-pe)				fmt=coff em=pe bfd_gas=yes ;;

  microblaze-*-*)			fmt=elf ;;

  # don't change em like *-*-bsd does
  mips-sony-bsd*)			fmt=ecoff ;;
  mips-*-ultrix*)			fmt=ecoff endian=little ;;
  mips-*-osf*)				fmt=ecoff endian=little ;;
  mips-*-ecoff*)			fmt=ecoff ;;
  mips-*-pe*)				fmt=coff endian=little em=pe ;;
  mips-*-irix6*)			fmt=elf em=irix ;;
  mips-*-irix5*)			fmt=elf em=irix ;;
  mips-*-irix*)				fmt=ecoff em=irix ;;
  mips-*-lnews*)			fmt=ecoff em=lnews ;;
  mips-*-riscos*)			fmt=ecoff ;;
  mips*-*-linux*)			fmt=elf em=tmips ;;
  mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
					fmt=elf em=freebsd ;;
  mips-*-sysv4*MP* | mips-*-gnu*)	fmt=elf em=tmips ;;
  mips*-sde-elf*)			fmt=elf em=tmips ;;
  mips-*-sysv*)				fmt=ecoff ;;
  mips-*-elf* | mips-*-rtems*)		fmt=elf ;;
  mips-*-netbsd*)			fmt=elf em=tmips ;;
  mips-*-openbsd*)			fmt=elf em=tmips ;;

  mmix-*-*)				fmt=elf ;;

  mn10200-*-*)				fmt=elf ;;

  # cpu_type for am33_2.0 is set to mn10300
  mn10300-*-linux*)			fmt=elf em=linux ;;
  mn10300-*-*)				fmt=elf ;;

  moxie-*-uclinux)			fmt=elf em=linux;;
  moxie-*-*)				fmt=elf ;;

  mt-*-elf)				fmt=elf bfd_gas=yes ;;

  msp430-*-*)				fmt=elf ;;

  ns32k-pc532-mach*)			fmt=aout em=pc532mach ;;
  ns32k-pc532-ux*)			fmt=aout em=pc532mach ;;
  ns32k-pc532-lites*)			fmt=aout em=nbsd532 ;;
  ns32k-*-*n*bsd*)			fmt=aout em=nbsd532 ;;

  openrisc-*-*)				fmt=elf ;;

  or32-*-rtems*)			fmt=elf ;;
  or32-*-elf)				fmt=elf ;;

  pj*)					fmt=elf ;;

  ppc-*-pe | ppc-*-cygwin*)		fmt=coff em=pe ;;
  ppc-*-winnt*)				fmt=coff em=pe ;;
  ppc-*-aix5.[01])			fmt=coff em=aix5 ;;
  ppc-*-aix[5-9].*)			fmt=coff em=aix5 ;;
  ppc-*-aix*)				fmt=coff ;;
  ppc-*-beos*)				fmt=coff ;;
  ppc-*-*n*bsd* | ppc-*-elf*)		fmt=elf ;;
  ppc-*-eabi* | ppc-*-sysv4*)		fmt=elf ;;
  ppc-*-linux-*)			fmt=elf em=linux ;;
  ppc-*-solaris*)			fmt=elf em=solaris ;;
  ppc-*-rtems*)				fmt=elf ;;
  ppc-*-macos*)				fmt=coff em=macos ;;
  ppc-*-nto*)				fmt=elf ;;
  ppc-*-kaos*)				fmt=elf ;;
  ppc-*-lynxos*)			fmt=elf em=lynx ;;

  s390-*-linux-*)			fmt=elf em=linux ;;
  s390-*-tpf*)				fmt=elf ;;

  score-*-elf)				fmt=elf ;;

  sh*-*-linux*)				fmt=elf em=linux
    case ${cpu} in
      sh*eb)	endian=big ;;
      *)	endian=little ;;
    esac ;;
  sh5*-*-netbsd*)			fmt=elf em=nbsd ;;
  sh64*-*-netbsd*)			fmt=elf em=nbsd ;;
  sh*-*-netbsdelf*)			fmt=elf em=nbsd
    case ${cpu} in
      sh*l*)	endian=little ;;
      *)	endian=big ;;
    esac ;;
  sh*-*-symbianelf*)			fmt=elf endian=little ;;
  sh-*-elf*)				fmt=elf ;;
  sh-*-uclinux* | sh[12]-*-uclinux*)	fmt=elf em=uclinux ;;
  sh-*-coff*)				fmt=coff ;;
  sh-*-nto*)				fmt=elf ;;
  sh-*-pe*)				fmt=coff em=pe bfd_gas=yes endian=little ;;
  sh-*-rtemscoff*)			fmt=coff ;;
  sh-*-rtems*)				fmt=elf ;;
  sh-*-kaos*)				fmt=elf ;;
  shle*-*-kaos*)			fmt=elf ;;
  sh64-*-elf*)				fmt=elf ;;

  sparc64-*-rtems*)			fmt=elf ;;
  sparc-*-rtems*)			fmt=elf ;;
  sparc-*-sunos4*)			fmt=aout em=sun3 ;;
  sparc-*-aout)				fmt=aout em=sparcaout ;;
  sparc-*-coff)				fmt=coff ;;
  sparc-*-linux*aout*)			fmt=aout em=linux ;;
  sparc-*-linux-*)			fmt=elf em=linux ;;
  sparc-fujitsu-none)			fmt=aout ;;
  sparc-*-elf)				fmt=elf ;;
  sparc-*-sysv4*)			fmt=elf ;;
  sparc-*-solaris*)			fmt=elf em=solaris ;;
  sparc-*-netbsdelf*)			fmt=elf em=nbsd ;;
  sparc-*-netbsd*)
    case ${cpu} in
      sparc64)				fmt=elf em=nbsd ;;
      *)				fmt=aout em=nbsd ;;
    esac ;;
  sparc-*-openbsd[0-2].* | \
  sparc-*-openbsd3.[0-1])
    case ${cpu} in
      sparc64)				fmt=elf em=nbsd ;;
      *)				fmt=aout em=nbsd ;;
    esac ;;
  sparc-*-openbsd*)			fmt=elf em=nbsd ;;

  spu-*-elf)				fmt=elf ;;

  tic30-*-*aout*)			fmt=aout bfd_gas=yes ;;
  tic30-*-*coff*)			fmt=coff bfd_gas=yes ;;
  tic4x-*-* | c4x-*-*)			fmt=coff bfd_gas=yes ;;
  tic54x-*-* | c54x*-*-*)		fmt=coff bfd_gas=yes need_libm=yes;;
  tic6x-*-*)				fmt=elf ;;

  v850*-*-*)				fmt=elf ;;

  vax-*-netbsdelf*)			fmt=elf em=nbsd ;;
  vax-*-linux-*)			fmt=elf em=linux ;;

  xscale-*-coff)			fmt=coff ;;
  xscale-*-elf)				fmt=elf ;;

  xstormy16-*-*)			fmt=elf ;;

  xtensa*-*-*)				fmt=elf ;;

  z80-*-coff)				fmt=coff ;;

  z8k-*-coff | z8k-*-sim)		fmt=coff ;;

  *-*-aout | *-*-scout)			fmt=aout ;;
  *-*-freebsd* | *-*-kfreebsd*-gnu)	fmt=elf em=freebsd ;;
  *-*-bsd*)				fmt=aout em=sun3 ;;
  *-*-generic)				fmt=generic ;;
  *-*-xray | *-*-hms)			fmt=coff ;;
  *-*-sim)				fmt=coff ;;
  *-*-elf | *-*-sysv4*)			fmt=elf ;;
  *-*-solaris*)				fmt=elf em=solaris ;;
  *-*-aros*)				fmt=elf em=linux ;;
  *-*-vxworks* | *-*-windiss)		fmt=elf em=vxworks ;;
  *-*-netware)				fmt=elf em=netware ;;
esac

case ${cpu_type} in
  alpha | arm | i386 | ia64 | microblaze | mips | ns32k | pdp11 | ppc | sparc | z80 | z8k)
    bfd_gas=yes
    ;;
esac
case ${fmt} in
  elf | ecoff | fdpicelf | multi | som)
    bfd_gas=yes
    ;;
esac

if test $bfd_gas != yes; then
  echo This target is no longer supported in gas
  exit 1
fi
