# 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
#   bfd_gas	set to "yes" if BFD_ASSEMBLER is required

# 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
  am33_2.0)		cpu_type=mn10300 endian=little ;;
  alpha*)		cpu_type=alpha ;;
  arm*be|arm*b)		cpu_type=arm endian=big ;;
  arm*)			cpu_type=arm endian=little ;;
  c4x*)			cpu_type=tic4x ;;
  crisv32)		cpu_type=cris arch=crisv32 ;;
  crx*)			cpu_type=crx endian=little ;;
  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 ;; 
  m32r)			cpu_type=m32r endian=big ;;
  m32rle)		cpu_type=m32r endian=little ;;
  m6811|m6812|m68hc12)	cpu_type=m68hc11 ;;
  m680[012346]0)	cpu_type=m68k ;;
  m68008)		cpu_type=m68k ;;
  m683??)		cpu_type=m68k ;;
  m5200)		cpu_type=m68k ;;
  m8*)			cpu_type=m88k ;;
  maxq)			cpu_type=maxq ;;
  mips*el)		cpu_type=mips endian=little ;;
  mips*)		cpu_type=mips 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 ;;
  s390x*)		cpu_type=s390 arch=s390x ;;
  s390*)		cpu_type=s390 arch=s390 ;;
  sh5*)			cpu_type=sh64 endian=big ;;
  sh5le*)		cpu_type=sh64 endian=little ;;
  sh64*)            	cpu_type=sh64 endian=big ;;
  sh64le*)		cpu_type=sh64 endian=little ;;
  sh*le)		cpu_type=sh endian=little ;;
  sh*)			cpu_type=sh endian=big ;;
  sparclite*)		cpu_type=sparc arch=sparclite ;;
  sparclet*)		cpu_type=sparc arch=sparclet ;;
  sparc64*)		cpu_type=sparc arch=v9-64 ;;
  sparc86x*)		cpu_type=sparc arch=sparc86x  ;;
  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
  a29k-*-coff)				fmt=coff ;;
  a29k-amd-udi)				fmt=coff ;;
  a29k-amd-ebmon)			fmt=coff ;;
  a29k-nyu-sym1)			fmt=coff ;;
  a29k-*-rtems*)			fmt=coff ;;
  a29k-*-vxworks*)			fmt=coff ;;

  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-gnueabi*)			fmt=elf  em=armlinuxeabi ;;
  arm-*-linux-*)			fmt=elf  em=linux ;;
  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)		fmt=coff em=wince-pe ;;
  arm-*-pe | thumb-*-pe)		fmt=coff em=pe ;;
  arm-*-riscix*)			fmt=aout em=riscix ;;

  avr-*-*)				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-*-rtems*)			fmt=elf 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-*-rtemscoff*)			fmt=coff ;;
  h8300-*-coff)				fmt=coff ;;
  h8300-*-elf | h8300-*-rtems*)		fmt=elf ;;
  h8500-*-rtems*)			fmt=coff ;;
  h8500-*-coff)				fmt=coff ;;

  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 ;;
  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)
				    	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* \
  | i386-go32-rtems*)			fmt=coff em=go32 ;;
  i386-*-rtemself*)			fmt=elf ;;
  i386-*-rtemscoff*)			fmt=coff ;;
  i386-*-rtems*)			fmt=elf ;;
  i386-*-gnu*)				fmt=elf ;;
  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-*-mingw32*)			fmt=coff em=pe ;;
  i386-*-nto-qnx*)			fmt=elf ;;
  i386-*-*nt*)				fmt=coff em=pe ;;
  i386-*-chaos)				fmt=elf ;;

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

  i960-*-bout)				fmt=bout ;;
  i960-*-coff)				fmt=coff em=ic960 ;;
  i960-*-rtems*)			fmt=coff em=ic960 ;;
  i960-*-nindy*)			fmt=bout ;;
  i960-*-vxworks5.0)			fmt=bout ;;
  i960-*-vxworks5.*)			fmt=coff em=ic960 ;;
  i960-*-vxworks*)			fmt=bout ;;
  i960-*-elf*)				fmt=elf ;;

  ia64-*-elf*)				fmt=elf ;;
  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 ;;

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

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

  m68k-*-vxworks*)			fmt=aout em=sun3 ;;
  m68k-ericsson-ose)			fmt=aout em=sun3 ;;
  m68k-*-sunos*)			fmt=aout em=sun3 ;;
  m68k-motorola-sysv*)			fmt=coff em=delta ;;
  m68k-bull-sysv3*)			fmt=coff em=dpx2 ;;
  m68k-apollo-*)			fmt=coff em=apollo ;;
  m68k-*-elf*)				fmt=elf ;;
  m68k-*-sysv4*)			fmt=elf em=svr4 ;;
  m68k-*-sysv*)				fmt=coff ;;
  m68k-*-coff | m68k-*-rtemscoff*)	fmt=coff ;;
  m68k-*-rtems*)			fmt=elf ;;
  m68k-*-hpux*)				fmt=hp300 em=hp300 ;;
  m68k-*-linux*aout*)			fmt=aout em=linux ;;
  m68k-*-linux-*)			fmt=elf em=linux ;;
  m68k-*-uclinux*)			fmt=elf ;;
  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-apple-aux*)			fmt=coff em=aux ;;
  m68k-*-psos*)				fmt=elf em=psos;;

  m88k-motorola-sysv3*)			fmt=coff em=delt88 ;;
  m88k-*-coff*)				fmt=coff ;;

  maxq-*-coff)      			fmt=coff bfd_gas=yes ;;

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

  # 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-*-sysv4*MP* | mips-*-gnu*)	fmt=elf em=tmips ;;
  mips-*-sysv*)				fmt=ecoff ;;
  mips-*-elf* | mips-*-rtems*)		fmt=elf ;;
  mips-*-netbsd*)			fmt=elf ;;
  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 ;;

  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-*-coff)				fmt=coff ;;
  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-*-aix5.*)				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 ;;
  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 ;;

  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 ;;
  sh*-*-symbianelf*)			fmt=elf endian=little ;;
  sh-*-elf*)				fmt=elf ;;
  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 ;;

  sparc-*-rtemsaout*)			fmt=aout ;;
  sparc-*-rtemself*)			fmt=elf ;;
  sparc-*-rtems*)			fmt=elf ;;
  sparc-*-sunos4*)			fmt=aout em=sun3 ;;
  sparc-*-aout | sparc*-*-vxworks*)	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 ;;
  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 ;;

  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;;
  tic80-*-*)				fmt=coff ;;

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

  vax-*-netbsdelf*)			fmt=elf em=nbsd ;;
  vax-*-netbsd*)			fmt=aout em=nbsd ;;
  vax-*-bsd* | vax-*-ultrix*)		fmt=aout ;;
  vax-*-linux-*)			fmt=elf em=linux ;;

  w65-*-*)				fmt=coff ;;

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

  xstormy16-*-*)			fmt=elf ;;

  xtensa-*-*)				fmt=elf ;;

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

  *-*-aout | *-*-scout)			fmt=aout ;;
  *-*-freebsd* | *-*-kfreebsd*-gnu)	fmt=elf em=freebsd ;;
  *-*-nindy*)				fmt=bout ;;
  *-*-bsd*)				fmt=aout em=sun3 ;;
  *-*-generic)				fmt=generic ;;
  *-*-xray | *-*-hms)			fmt=coff ;;
  *-*-sim)				fmt=coff ;;
  *-*-elf | *-*-sysv4* | *-*-solaris*)	fmt=elf ;;
  *-*-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 | mips | ns32k | pdp11 | ppc | sparc)
    bfd_gas=yes
    ;;
esac
case ${fmt} in
  elf | ecoff | multi | som)
    bfd_gas=yes
    ;;
esac
