# config.bfd
# Convert a canonical host type into a BFD host type.
# Set shell variable targ to canonical target name, and run
# using ``. config.bfd''.
# Sets the following shell variables:
#  targ_defvec		Default vector for this target
#  targ_selvecs		Vectors to build for this target
#  targ_archs		Architectures for this target
#  targ_cflags		$(CFLAGS) for this target (FIXME: pretty bogus)
#  targ_underscore	Whether underscores are used: yes or no

# Part of this file is processed by targmatch.sed to generate the
# targmatch.h file.  The #ifdef and #endif lines that appear below are
# copied directly into targmatch.h.

# The binutils c++filt program wants to know whether underscores are
# stripped or not.  That is why we set targ_underscore.  c++filt uses
# this information to choose a default.  This information is
# duplicated in the symbol_leading_char field of the BFD target
# vector, but c++filt does not deal with object files and is not
# linked against libbfd.a.  It is not terribly important that c++filt
# get this right; it is just convenient.

targ_defvec=
targ_selvecs=
targ_cflags=
targ_underscore=no

targ_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
case "${targ_cpu}" in
alpha*) targ_archs=bfd_alpha_arch ;;
arm*)	targ_archs=bfd_arm_arch ;;
strongarm*) targ_archs=bfd_arm_arch ;;
thumb*)	targ_archs=bfd_arm_arch ;;
c30*)	targ_archs=bfd_tic30_arch ;;
hppa*)	targ_archs=bfd_hppa_arch ;;
i[3456]86) targ_archs=bfd_i386_arch ;;
m68*)	targ_archs=bfd_m68k_arch ;;
m88*)	targ_archs=bfd_m88k_arch ;;
mips*)	targ_archs=bfd_mips_arch ;;
pj*)	targ_archs="bfd_pj_arch bfd_i386_arch";;
powerpc*) targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
rs6000)	targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
sparc*) targ_archs=bfd_sparc_arch ;;
v850*)	targ_archs=bfd_v850_arch ;;
z8k*)	targ_archs=bfd_z8k_arch ;;
*)	targ_archs=bfd_${targ_cpu}_arch ;;
esac


# WHEN ADDING ENTRIES TO THIS MATRIX:
#  Make sure that the left side always has two dashes.  Otherwise you
#  can get spurious matches.  Even for unambiguous cases, do this as a
#  convention, else the table becomes a real mess to understand and maintain.

case "${targ}" in
# START OF targmatch.h
#ifdef BFD64
  alpha*-*-netbsd* | alpha*-*-freebsd*)
    targ_defvec=bfd_elf64_alpha_vec
    targ_selvecs=ecoffalpha_little_vec
    ;;
  alpha*-*-netware*)
    targ_defvec=ecoffalpha_little_vec
    targ_selvecs=nlm32_alpha_vec
    ;;
  alpha*-*-linuxecoff*)
    targ_defvec=ecoffalpha_little_vec
    targ_selvecs=bfd_elf64_alpha_vec
    ;;
  alpha*-*-linux-gnu* | alpha*-*-elf*)
    targ_defvec=bfd_elf64_alpha_vec
    targ_selvecs=ecoffalpha_little_vec
    ;;
  alpha*-*-*vms*)
    targ_defvec=vms_alpha_vec
    ;;
  alpha*-*-*)
    targ_defvec=ecoffalpha_little_vec
    ;;
#endif /* BFD64 */

  arc-*-elf*)
    targ_defvec=bfd_elf32_littlearc_vec
    targ_selvecs=bfd_elf32_bigarc_vec
    ;;

  arm-*-netbsd*)
    targ_defvec=armnetbsd_vec
    targ_underscore=yes
    ;;
  arm-*-riscix*)
    targ_defvec=riscix_vec
    ;;
  arm-epoc-pe*)
    targ_defvec=arm_epoc_pe_little_vec
    targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
    targ_underscore=no
    ;;
  arm-*-pe*)
    targ_defvec=armpe_little_vec
    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
    targ_underscore=yes
    ;;
  arm-*-aout | armel-*-aout)	
    targ_defvec=aout_arm_little_vec
    targ_selvecs=aout_arm_big_vec
    ;;
  armeb-*-aout)
    targ_defvec=aout_arm_big_vec
    targ_selvecs=aout_arm_little_vec
    ;;
  arm-*-coff)
    targ_defvec=armcoff_little_vec
    targ_selvecs=armcoff_big_vec
    targ_underscore=yes
    ;;
  arm-*-elf | arm*-*-linux-gnu* | arm*-*-conix*)
    targ_defvec=bfd_elf32_littlearm_vec
    targ_selvecs=bfd_elf32_bigarm_vec
    ;;
  arm-*-oabi)
    targ_defvec=bfd_elf32_littlearm_oabi_vec
    targ_selvecs=bfd_elf32_bigarm_oabi_vec
    ;;

  thumb-*-coff)
    targ_defvec=armcoff_little_vec
    targ_selvecs=armcoff_big_vec
    targ_underscore=yes
    ;;
  thumb-*-oabi)
    targ_defvec=bfd_elf32_littlearm_oabi_vec
    targ_selvecs=bfd_elf32_bigarm_oabi_vec
    ;;
  thumb-*-elf)
    targ_defvec=bfd_elf32_littlearm_vec
    targ_selvecs=bfd_elf32_bigarm_vec
    ;;
  thumb-epoc-pe*)
    targ_defvec=arm_epoc_pe_little_vec
    targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
    targ_underscore=no
    ;;
  thumb-*-pe*)
    targ_defvec=armpe_little_vec
    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
    targ_underscore=yes
    ;;
  strongarm-*-elf)
    targ_defvec=bfd_elf32_littlearm_vec
    targ_selvecs=bfd_elf32_bigarm_vec
    ;;
  strongarm-*-coff)
    targ_defvec=armcoff_little_vec
    targ_selvecs=armcoff_big_vec
    targ_underscore=yes
    ;;

  a29k-*-ebmon* | a29k-*-udi* | a29k-*-coff* | a29k-*-sym1* | \
  a29k-*-vxworks* | a29k-*-sysv*)
    targ_defvec=a29kcoff_big_vec
    targ_selvecs=sunos_big_vec
    targ_underscore=yes
    ;;
  a29k-*-aout* | a29k-*-bsd* | a29k-*-vsta*)
    targ_defvec=sunos_big_vec
    targ_underscore=yes
    ;;

  c30-*-*aout* | tic30-*-*aout*)
    targ_defvec=tic30_aout_vec
    ;;
  c30-*-*coff* | tic30-*-*coff*)
    targ_defvec=tic30_coff_vec
    ;;

  d10v-*-*)
    targ_defvec=bfd_elf32_d10v_vec
    ;;

  d30v-*-*)
    targ_defvec=bfd_elf32_d30v_vec
    ;;

  fr30-*-elf)
    targ_defvec=bfd_elf32_fr30_vec
    ;;


  h8300*-*-*)
    targ_defvec=h8300coff_vec
    targ_underscore=yes
    ;;

  h8500-*-*)
    targ_defvec=h8500coff_vec
    targ_underscore=yes
    ;;

  hppa*-*-*elf* | hppa*-*-linux-gnu* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-rtems*)
    targ_defvec=bfd_elf32_hppa_vec
    ;;
#if defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) || defined (HOST_HPPAMPEIX)
  hppa*-*-bsd*)
    targ_defvec=som_vec
    targ_selvecs=bfd_elf32_hppa_vec
    ;;
  hppa*-*-hpux* | hppa*-*-hiux* | hppa*-*-mpeix*)
    targ_defvec=som_vec
    ;;
  hppa*-*-osf*)
    targ_defvec=som_vec
    targ_selvecs=bfd_elf32_hppa_vec
    ;;
#endif /* defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) */

  i[3456]86-*-sco3.2v5*coff)
    targ_defvec=i386coff_vec
    targ_selvecs=bfd_elf32_i386_vec
    ;;
  i[3456]86-*-sysv4* | i[3456]86-*-unixware* | i[3456]86-*-solaris2* | \
  i[3456]86-*-elf | i[3456]86-*-sco3.2v5* | \
  i[3456]86-*-dgux* | i[3456]86-*-sysv5*)
    targ_defvec=bfd_elf32_i386_vec
    targ_selvecs=i386coff_vec
    ;;
  i[3456]86-*-rtemself*)
    targ_defvec=bfd_elf32_i386_vec
    targ_selvecs="i386coff_vec i386aout_vec"
    ;;
  i[3456]86-*-msdosdjgpp* | i[3456]*-*-go32* | i[3456]86-go32-rtems* )
    targ_defvec=go32coff_vec
    targ_selvecs="go32stubbedcoff_vec i386aout_vec"
    ;;
  i[3456]86-*-sysv* | i[3456]86-*-isc* | i[3456]86-*-sco* | i[3456]86-*-coff | \
  i[3456]86-*-aix*)
    targ_defvec=i386coff_vec
    ;;
  i[3456]86*-*-rtems*)
    targ_defvec=i386coff_vec
    targ_selvecs="bfd_elf32_i386_vec i386aout_vec"
    ;;
 i[3456]86-sequent-bsd*)
    targ_defvec=i386dynix_vec
    targ_underscore=yes
    ;;
  i[3456]86-*-bsd*)
    targ_defvec=i386bsd_vec
    targ_underscore=yes
    ;;
  i[3456]86-*-freebsdaout* | i[3456]86-*-freebsd[12].* | \
  i[3456]86-*-freebsd[12])
    targ_defvec=i386freebsd_vec
    targ_selvecs=i386bsd_vec
    targ_underscore=yes
    ;;
  i[3456]86-*-freebsd*)
    targ_defvec=bfd_elf32_i386_vec
    targ_selvecs=i386coff_vec
    ;;
  i[3456]86-*-netbsd* | i[3456]86-*-openbsd*)
    targ_defvec=i386netbsd_vec
    targ_selvecs=i386bsd_vec
    targ_underscore=yes
    ;;
  i[3456]86-*-netware*)
    targ_defvec=bfd_elf32_i386_vec
    targ_selvecs="nlm32_i386_vec i386coff_vec i386aout_vec"
    ;;
  i[3456]86-*-linux*aout*)
    targ_defvec=i386linux_vec
    targ_selvecs=bfd_elf32_i386_vec
    targ_underscore=yes
    ;;
  i[3456]86-*-linux-gnu*)
    targ_defvec=bfd_elf32_i386_vec
    targ_selvecs=i386linux_vec
    ;;
  i[3456]86-*-lynxos*)
    targ_defvec=i386lynx_coff_vec
    targ_selvecs=i386lynx_aout_vec
    ;;
  i[3456]86-*-gnu*)
    targ_defvec=bfd_elf32_i386_vec
    ;;
  i[3456]86-*-mach* | i[3456]86-*-osf1mk*)
    targ_defvec=i386mach3_vec
    targ_cflags=-DSTAT_FOR_EXEC
    targ_underscore=yes
    ;;
  i[3456]86-*-os9k)
    targ_defvec=i386os9k_vec
    ;;
  i[3456]86-*-msdos*)
    targ_defvec=i386aout_vec
    targ_selvecs=i386msdos_vec
    ;;
  i[3456]86-*-moss*)
    targ_defvec=bfd_elf32_i386_vec
    targ_selvecs="i386msdos_vec i386aout_vec"
    ;;
  i[3456]86-*-beospe*)
    targ_defvec=i386pe_vec
    targ_selvecs="i386pe_vec i386pei_vec"
    ;;
  i[3456]86-*-beoself* | i[3456]86-*-beos*)
    targ_defvec=bfd_elf32_i386_vec
    targ_selvecs="i386pe_vec i386pei_vec"
    ;;
  i[3456]86-*-interix*)
    targ_defvec=i386pei_vec
    targ_selvecs="i386pe_vec"
    # FIXME: This should eventually be checked at runtime.
    targ_cflags=-DSTRICT_PE_FORMAT
    ;;
  i[3456]86-*-mingw32* | i[3456]86-*-cygwin* | i[3456]86-*-winnt | i[3456]86-*-pe)
    targ_defvec=i386pe_vec
    targ_selvecs="i386pe_vec i386pei_vec bfd_elf32_i386_vec"
    ;;
  i[3456]86-none-*)
    targ_defvec=i386coff_vec
    ;;
  i[3456]86-*-aout* | i[3456]86*-*-vsta*)
    targ_defvec=i386aout_vec
    ;;
  i[3456]86-*-vxworks*)
    targ_defvec=i386aout_vec
    targ_underscore=yes
    ;;

  i860-*-mach3* | i860-*-osf1* | i860-*-coff*)
    targ_defvec=i860coff_vec
    ;;
  i860-*-sysv4* | i860-*-elf*)
    targ_defvec=bfd_elf32_i860_vec
    ;;

  i960-*-vxworks4* | i960-*-vxworks5.0)
    targ_defvec=b_out_vec_little_host
    targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
    targ_underscore=yes
    ;;
  i960-*-vxworks5.* | i960-*-coff* | i960-*-sysv* | i960-*-rtems*)
    targ_defvec=icoff_little_vec
    targ_selvecs="icoff_big_vec b_out_vec_little_host b_out_vec_big_host ieee_vec"
    targ_underscore=yes
    ;;
  i960-*-vxworks* | i960-*-aout* | i960-*-bout* | i960-*-nindy*)
    targ_defvec=b_out_vec_little_host
    targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
    targ_underscore=yes
    ;;
  i960-*-elf*)
    targ_defvec=bfd_elf32_i960_vec
    targ_selvecs="icoff_little_vec icoff_big_vec"
    ;;

  m32r-*-*)
    targ_defvec=bfd_elf32_m32r_vec
    ;;

  m68*-apollo-*)
    targ_defvec=apollocoff_vec
    ;;
  m68*-bull-sysv*)
    targ_defvec=m68kcoffun_vec
    targ_underscore=yes
    ;;
  m68*-motorola-sysv*)
    targ_defvec=m68ksysvcoff_vec
    ;;
  m68*-hp-bsd*)
    targ_defvec=hp300bsd_vec
    targ_underscore=yes
    ;;
  m68*-*-aout*)
    targ_defvec=aout0_big_vec
    # We include cisco_core_big_vec here, rather than making a separate cisco
    # configuration, so that cisco-core.c gets routinely tested at
    # least for compilation.
    targ_selvecs="cisco_core_big_vec ieee_vec"
    targ_underscore=yes
    ;;
  m68*-*-elf* | m68*-*-sysv4*)
    targ_defvec=bfd_elf32_m68k_vec
    targ_selvecs="m68kcoff_vec ieee_vec"
    ;;
  m68*-*-rtems*)
    targ_defvec=m68kcoff_vec
    targ_selvecs="m68kcoff_vec versados_vec ieee_vec aout0_big_vec"
    ;;
  m68*-*-coff* | m68*-*-sysv*)
    targ_defvec=m68kcoff_vec
    targ_selvecs="m68kcoff_vec versados_vec ieee_vec"
    ;;
  m68*-*-hpux*)
    targ_defvec=hp300hpux_vec
    targ_underscore=yes
    ;;
  m68*-*-linux*aout*)
    targ_defvec=m68klinux_vec
    targ_selvecs=bfd_elf32_m68k_vec
    targ_underscore=yes
    ;;
  m68*-*-linux-gnu*)
    targ_defvec=bfd_elf32_m68k_vec
    targ_selvecs=m68klinux_vec
    ;;
  m68*-*-gnu*)
    targ_defvec=bfd_elf32_m68k_vec
    # targ_selvecs=m68kmach3_vec
    # targ_cflags=-DSTAT_FOR_EXEC
    ;;
  m68*-*-lynxos*)
    targ_defvec=m68klynx_coff_vec
    targ_selvecs=m68klynx_aout_vec
    ;;
  m68*-hp*-netbsd*)
    targ_defvec=m68k4knetbsd_vec
    targ_selvecs="m68knetbsd_vec hp300bsd_vec sunos_big_vec"
    targ_underscore=yes
    ;;
  m68*-*-netbsd* | m68*-*-openbsd*)
    targ_defvec=m68knetbsd_vec
    targ_selvecs="m68k4knetbsd_vec hp300bsd_vec sunos_big_vec"
    targ_underscore=yes
    ;;
  m68*-*-sunos* | m68*-*-os68k* | m68*-*-vxworks* | m68*-netx-* | \
  m68*-*-bsd* | m68*-*-vsta*)
    targ_defvec=sunos_big_vec
    targ_underscore=yes
    ;;
  m68*-ericsson-*)
    targ_defvec=sunos_big_vec
    targ_selvecs="m68kcoff_vec versados_vec tekhex_vec"
    targ_underscore=yes
    ;;
  m68*-cbm-*)
    targ_defvec=bfd_elf32_m68k_vec
    targ_selvecs=m68kcoff_vec
    ;;
  m68*-apple-aux*)
    targ_defvec=m68kaux_coff_vec
    ;;
  m68*-*-psos*)
    targ_defvec=bfd_elf32_m68k_vec
    targ_selvecs=ieee_vec
    targ_underscore=yes
    ;;

  m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*)
    targ_defvec=bfd_elf32_m88k_vec
    targ_selvecs=m88kbcs_vec
    ;;
  m88*-*-mach3*)
    targ_defvec=m88kmach3_vec
    targ_cflags=-DSTAT_FOR_EXEC
    ;;
  m88*-*-*)
    targ_defvec=m88kbcs_vec
    targ_underscore=yes
    ;;

  mcore-*-elf)
    targ_defvec=bfd_elf32_mcore_big_vec
    targ_selvecs="bfd_elf32_mcore_big_vec bfd_elf32_mcore_little_vec"
    ;;
  mcore-*-pe)
    targ_defvec=mcore_pe_big_vec
    targ_selvecs="mcore_pe_big_vec mcore_pe_little_vec mcore_pei_big_vec mcore_pei_little_vec"
    ;;

  mips*-big-*)
    targ_defvec=ecoff_big_vec
    targ_selvecs=ecoff_little_vec
    ;;
  mips-dec-netbsd* | mips*el*-*-netbsd*)
    targ_defvec=bfd_elf32_littlemips_vec
    targ_selvecs="bfd_elf32_bigmips_vec ecoff_little_vec ecoff_big_vec"
    ;;
 mips*-*-netbsd*)
    targ_defvec=bfd_elf32_bigmips_vec
    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
    ;;
  mips*-dec-bsd*)
    targ_defvec=aout_mips_little_vec
    targ_underscore=yes
    ;;
  mips*-dec-mach3*)
    targ_defvec=aout_mips_little_vec
    targ_cflags=-DSTAT_FOR_EXEC
    ;;
  mips*-dec-* | mips*el-*-ecoff*)
    targ_defvec=ecoff_little_vec
    targ_selvecs=ecoff_big_vec
    ;;
  mips*-*-ecoff*)
    targ_defvec=ecoff_big_vec
    targ_selvecs=ecoff_little_vec
    ;;
  mips*-*-irix6*)
    targ_defvec=bfd_elf32_bigmips_vec
    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
    ;;
  mips*-*-irix5*)
    targ_defvec=bfd_elf32_bigmips_vec
    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
    ;;
  mips*-sgi-* | mips*-*-bsd*)
    targ_defvec=ecoff_big_vec
    targ_selvecs=ecoff_little_vec
    ;;
  mips*-*-lnews*)
    targ_defvec=ecoff_biglittle_vec
    targ_selvecs="ecoff_little_vec ecoff_big_vec"
    ;;
  mips*-*-mach3*)
    targ_defvec=aout_mips_little_vec
    targ_cflags=-DSTAT_FOR_EXEC
    ;;
  mips*-*-sysv4*)
    targ_defvec=bfd_elf32_bigmips_vec
    targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
    ;;
  mips*-*-sysv* | mips*-*-riscos*)
    targ_defvec=ecoff_big_vec
    targ_selvecs=ecoff_little_vec
    ;;
  mips*el-*-elf* | mips*el-*-rtems* | mips*el-*-vxworks*)
    targ_defvec=bfd_elf32_littlemips_vec
    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
    ;;
  mips*-*-elf* | mips*-*-rtems* | mips*-*-vxworks*)
    targ_defvec=bfd_elf32_bigmips_vec
    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
    ;;
  mips*-*-none)
    targ_defvec=bfd_elf32_bigmips_vec
    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
    ;;
  mips*el*-*-linux-gnu* | mips*el*-*-openbsd*)
    targ_defvec=bfd_elf32_littlemips_vec
    targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_little_vec ecoff_big_vec"
    ;;
  mips*-*-linux-gnu* | mips*-*-openbsd*)
    targ_defvec=bfd_elf32_bigmips_vec
    targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_big_vec ecoff_little_vec"
    ;;

  mn10200-*-*)
    targ_defvec=bfd_elf32_mn10200_vec
    ;;

  mn10300-*-*)
    targ_defvec=bfd_elf32_mn10300_vec
    ;;

  ns32k-pc532-mach* | ns32k-pc532-ux*)
    targ_defvec=pc532machaout_vec
    targ_underscore=yes
    ;;
  ns32k-*-netbsd* | ns32k-*-lites* | ns32k-*-openbsd*)
    targ_defvec=pc532netbsd_vec
    targ_underscore=yes
    ;;

  pj-*-*)
    targ_defvec=bfd_elf32_pj_vec
    targ_selvecs="bfd_elf32_pj_vec bfd_elf32_pjl_vec"
    ;;

  pjl-*-*)
    targ_defvec=bfd_elf32_pjl_vec
    targ_selvecs="bfd_elf32_pjl_vec bfd_elf32_pj_vec bfd_elf32_i386_vec"
    ;;

  powerpc-*-aix* | powerpc-*-beos*)
    targ_defvec=rs6000coff_vec
    ;;
  powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
  powerpc-*-vxworks*)
    targ_defvec=bfd_elf32_powerpc_vec
    targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
    ;;
  powerpc-*-macos* | powerpc-*-mpw*)
    targ_defvec=pmac_xcoff_vec
    ;;
  powerpc-*-netware*)
    targ_defvec=bfd_elf32_powerpc_vec
    targ_selvecs="nlm32_powerpc_vec rs6000coff_vec"
    ;;
  powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
  powerpcle-*-rtems*)
    targ_defvec=bfd_elf32_powerpcle_vec
    targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
    ;;

  powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin*)
    targ_defvec=bfd_powerpcle_pe_vec
    targ_selvecs="bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec"
    ;;

  rs6000-*-*)
    targ_defvec=rs6000coff_vec
    ;;

  sh-*-elf* | sh-*-rtemself*)
    targ_defvec=bfd_elf32_sh_vec
    targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
    targ_underscore=yes
    ;;
  sh-*-* | sh-*-rtems*)
    targ_defvec=shcoff_vec
    targ_selvecs="shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
    targ_underscore=yes
    ;;

  sparclet-*-aout*)
    targ_defvec=sunos_big_vec
    targ_selvecs=sparcle_aout_vec
    targ_underscore=yes
    ;;
  sparc86x-*-aout*)
    targ_defvec=sunos_big_vec
    targ_underscore=yes
    ;;
  sparclite-*-elf* | sparc86x-*-elf*)
    targ_defvec=bfd_elf32_sparc_vec
    ;;
  sparc-*-linux*aout*)
    targ_defvec=sparclinux_vec
    targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
    targ_underscore=yes
    ;;
  sparc-*-linux-gnu*)
    targ_defvec=bfd_elf32_sparc_vec
    targ_selvecs="sparclinux_vec sunos_big_vec"
    ;;
  sparc-*-lynxos*)
    targ_defvec=sparclynx_coff_vec
    targ_selvecs=sparclynx_aout_vec
    ;;
  sparc-*-netbsdelf*)
    targ_defvec=bfd_elf32_sparc_vec
    targ_selvecs=sparcnetbsd_vec
    ;;
  sparc-*-netbsdaout* | sparc-*-netbsd*)
    targ_defvec=sparcnetbsd_vec
    targ_selvecs=bfd_elf32_sparc_vec
    targ_underscore=yes
    ;;
  sparc-*-openbsd*)
    targ_defvec=sparcnetbsd_vec
    targ_underscore=yes
    ;;
  sparc-*-elf* | sparc-*-solaris2*)
    targ_defvec=bfd_elf32_sparc_vec
    targ_selvecs=sunos_big_vec
    ;;
  sparc-*-sysv4*)
    targ_defvec=bfd_elf32_sparc_vec
    ;;
  sparc-*-netware*)
    targ_defvec=bfd_elf32_sparc_vec
    targ_selvecs="nlm32_sparc_vec sunos_big_vec"
    ;;
#ifdef BFD64
  sparc64-*-aout*)
    targ_defvec=sunos_big_vec
    targ_underscore=yes
    ;;
  sparc64-*-linux-gnu*)
    targ_defvec=bfd_elf64_sparc_vec
    targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
    ;;
  sparc64-*-elf*)
    targ_defvec=bfd_elf64_sparc_vec
    targ_selvecs=bfd_elf32_sparc_vec
    ;;    
#endif /* BFD64 */
  sparc*-*-coff*)
    targ_defvec=sparccoff_vec
    ;;
  sparc*-*-* | sparc*-*-rtems*)
    targ_defvec=sunos_big_vec
    targ_underscore=yes
    ;;

#if HAVE_host_aout_vec
  tahoe-*-*)
    targ_defvec=host_aout_vec
    targ_underscore=yes
    ;;
#endif

  tic80*-*-*)
    targ_defvec=tic80coff_vec
    targ_underscore=yes
    ;;


  v850-*-*)
    targ_defvec=bfd_elf32_v850_vec
    ;;
  v850e-*-*)
    targ_defvec=bfd_elf32_v850_vec
    ;;
  v850ea-*-*)
    targ_defvec=bfd_elf32_v850_vec
    ;;
#if HAVE_host_aout_vec
  vax-*-bsd* | vax-*-ultrix*)
    targ_defvec=host_aout_vec
    targ_underscore=yes
    ;;
#endif

  vax*-*-*vms*)
    targ_defvec=vms_vax_vec
    ;;

  we32k-*-*)
    targ_defvec=we32kcoff_vec
    ;;

  w65-*-*)
    targ_defvec=w65_vec
    ;;

  z8k*-*-*)
    targ_defvec=z8kcoff_vec
    targ_underscore=yes
    ;;

  *-*-ieee*)
    targ_defvec=ieee_vec
    ;;

  *-adobe-*)
    targ_defvec=a_out_adobe_vec
    targ_underscore=yes
    ;;

  *-sony-*)
    targ_defvec=newsos3_vec
    targ_underscore=yes
    ;;

  *-tandem-*)
    targ_defvec=m68kcoff_vec
    targ_selvecs=ieee_vec
    ;;
# END OF targmatch.h
  *)
    echo 1>&2 "*** BFD does not support target ${targ}."
    echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
    exit 1
    ;;
esac

# If we support any ELF target, then automatically add support for the
# generic ELF targets.  This permits an objdump with some ELF support
# to be used on an arbitrary ELF file for anything other than
# relocation information.
case "${targ_defvec} ${targ_selvecs}" in
  *bfd_elf64*)
    targ_selvecs="${targ_selvecs} bfd_elf64_little_generic_vec bfd_elf64_big_generic_vec bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec"
    ;;
  *bfd_elf32*)
    targ_selvecs="${targ_selvecs} bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec"
    ;;
esac
