# Mappings from configurations to GDB target definitions.  This is
# invoked from the autoconf generated configure script.

# This file sets the following shell variables:
#  gdb_target_cpu	generic name of CPU
#  gdb_target		name of GDB target definition to use

# This file may also modify configdirs.

# Map target cpu into the config cpu subdirectory name.
# The default is $target_cpu.

case "${target_cpu}" in

alpha*)			gdb_target_cpu=alpha ;;
arm*)			gdb_target_cpu=arm ;;
avr*)			gdb_target_cpu=avr ;;
hppa*)			gdb_target_cpu=pa ;;
i[3456]86*)		gdb_target_cpu=i386 ;;
m68hc11*|m6811*)	gdb_target_cpu=m68hc11 ;;
m68*)			gdb_target_cpu=m68k ;;
mips*)			gdb_target_cpu=mips ;;
powerpc*)		gdb_target_cpu=powerpc ;;
sparc*)			gdb_target_cpu=sparc ;;
thumb*)			gdb_target_cpu=arm ;;
s390*)			gdb_target_cpu=s390 ;;
sh*)			gdb_target_cpu=sh ;;
strongarm*)		gdb_target_cpu=arm ;;
xscale*)		gdb_target_cpu=arm ;;
v850*)			gdb_target_cpu=v850 ;;
x86_64*)		gdb_target_cpu=i386 ;;
*)			gdb_target_cpu=$target_cpu ;;

esac

# map target info into gdb names.

case "${target}" in

*-*-freebsd*)		gdb_target=fbsd
			;;

alpha*-*-osf*)		gdb_target=alpha-osf1 ;;
alpha*-*-linux*)	gdb_target=alpha-linux ;;
alpha*-*-netbsd*)	gdb_target=nbsd ;;
alpha*-*-*)		gdb_target=alpha ;;

arm*-wince-pe)		gdb_target=wince ;;
arm*-*-linux*)		gdb_target=linux
			build_gdbserver=yes
			;;
arm*-*-netbsd*)		gdb_target=nbsd
			gdb_multi_arch=yes ;;
arm-*-nto*)		gdb_target=nto ;;
arm*-*-* | thumb*-*-* | strongarm*-*-*)
			gdb_target=embed
                        configdirs="$configdirs rdi-share"
                        ;;
xscale-*-*)		gdb_target=embed
                        configdirs="$configdirs rdi-share"
                        ;;

avr-*-*)		gdb_target=avr
			gdb_multi_arch=yes
			;;

cris*)                  gdb_target=cris ;;

d10v-*-*)		gdb_target=d10v ;;

h8300-*-*)		gdb_target=h8300 ;;
# OBSOLETE h8500-*-*)		gdb_target=h8500 ;;


frv-*-*)		gdb_target=frv ;;

# OBSOLETE hppa*-*-bsd*)		gdb_target=hppabsd ;;
# OBSOLETE hppa*-*-pro*)		gdb_target=hppapro ;;
hppa*64*-*-hpux11*)	gdb_target=hppa64 ;;
hppa*-*-hpux*)		gdb_target=hppahpux ;;
hppa*-*-hiux*)		gdb_target=hppahpux ;;
# OBSOLETE hppa*-*-osf*)		gdb_target=hppaosf ;;
hppa*-*-*)		gdb_target=hppa ;;

# OBSOLETE i[3456]86-sequent-bsd*)	gdb_target=symmetry ;;
# OBSOLETE i[3456]86-sequent-sysv4*) gdb_target=ptx4 ;;
# OBSOLETE i[3456]86-sequent-sysv*) gdb_target=ptx ;;
i[3456]86-ncr-*)	gdb_target=ncr3000 ;;
i[3456]86-*-bsd*)	gdb_target=i386bsd ;;
i[3456]86-*-netbsd*)	gdb_target=nbsd ;;
i[3456]86-*-openbsd*)	gdb_target=obsd ;;
i[3456]86-*-go32*)	gdb_target=i386aout ;;
i[3456]86-*-msdosdjgpp*) gdb_target=go32 ;;
i[3456]86-*-nto*)	gdb_target=nto ;;
i[3456]86-*-lynxos*)	gdb_target=i386lynx ;;
i[3456]86-*-solaris*)	gdb_target=i386sol2 ;;
i[3456]86-*-sco*)	gdb_target=i386v ;;
i[3456]86-*-sysv*)	gdb_target=i386v ;;
i[3456]86-*-linux*)	gdb_target=linux
			build_gdbserver=yes
			;;
i[3456]86-*-isc*)	gdb_target=i386v ;;
i[3456]86-*-gnu*)	gdb_target=i386gnu ;;
i[3456]86-*-netware*)	gdb_target=i386nw
		configdirs="${configdirs} nlm" ;;
i[3456]86-*-cygwin*)	gdb_target=cygwin  ;;
i[3456]86-*-vxworks*)	gdb_target=vxworks ;;
i[3456]86-*-*)		gdb_target=embed ;;

ia64-*-aix*)		gdb_target=aix ;;
ia64-*-linux*)		gdb_target=linux
			build_gdbserver=yes
			;;
ia64*-*-*)		gdb_target=ia64 ;;

# OBSOLETE m32r-*-elf*)		gdb_target=m32r ;;

m68hc11*-*-*|m6811*-*-*)	gdb_target=m68hc11 ;;

m68000-*-sunos3*)	gdb_target=sun2os3 ;;
m68000-*-sunos4*)	gdb_target=sun2os4 ;;

m68*-bull-sysv*)	gdb_target=dpx2 ;;
m68*-att-*)		gdb_target=3b1 ;;
m68*-cisco*-*)		gdb_target=cisco ;;
m68*-motorola-*)	gdb_target=delta68 ;;
m68*-netx-*)		gdb_target=vxworks68 ;;
m68*-tandem-*)		gdb_target=st2000 ;;
m68*-*-aout*)		gdb_target=monitor ;;
m68*-*-coff*)		gdb_target=monitor ;;
m68*-*-elf*)		gdb_target=monitor ;;
m68*-*-linux*)		gdb_target=linux
			build_gdbserver=yes
			;;
m68*-*-lynxos*)		gdb_target=m68klynx ;;
m68*-*-netbsd*)		gdb_target=nbsdaout ;;
m68*-*-os68k*)		gdb_target=os68k ;;
m68*-*-sunos3*)		gdb_target=sun3os3 ;;
m68*-*-sunos4*)		gdb_target=sun3os4 ;;
m68*-*-sysv4*)		gdb_target=m68kv4 ;;
m68*-*-vxworks*)	gdb_target=vxworks68 ;;

mcore*-*-*)		gdb_target=mcore ;;
mips64*-big-*)		gdb_target=bigmips64 ;;
mips*-big-*)		gdb_target=bigmips ;;
mips*-dec-*)		gdb_target=decstation ;;
mips*-*-pe)		gdb_target=wince ;;
mips64*el-*-ecoff*)	gdb_target=embedl64 ;;
mips64*-*-ecoff*)	gdb_target=embed64 ;;
mips64*vr4xxx*el-*-elf*)gdb_target=vr4xxxel ;;
mips64*vr4xxx*-*-elf*)	gdb_target=vr4xxx ;;
mips64*vr4300*el-*-elf*)	gdb_target=vr4300el ;;
mips64*vr4300*-*-elf*)	gdb_target=vr4300 ;;
mips64*vr4100*el-*-elf*)	gdb_target=vr4300el ;;
mips64*vr4100*-*-elf*)	gdb_target=vr4100 ;;
mips64*vr5000*el-*-elf*)	gdb_target=vr5000el ;;
mips64*vr5000*-*-elf*)	gdb_target=vr5000 ;;
mips*tx39*el*-elf*)	gdb_target=tx39l ;;
mips*tx39*-elf*)	gdb_target=tx39 ;;
mips64*el-*-elf*)	gdb_target=embedl64 ;;
mips64*-*-elf*)		gdb_target=embed64 ;;
mips64*-*-linux*)	gdb_target=linux64 ;;
mips*el-*-ecoff*)	gdb_target=embedl ;;
mips*-*-ecoff*)		gdb_target=embed ;;
mips*el-*-elf*)		gdb_target=embedl ;;
mips*-*-elf*)		gdb_target=embed ;;
mips*-little-*)		gdb_target=littlemips ;;
mips*-*-lnews*)		gdb_target=embedl ;;
mips*-sgi-irix5*)	gdb_target=irix5 ;;
mips*-sgi-irix6*)	gdb_target=irix6 ;;
mips*-sgi-*)		gdb_target=irix3 ;;
mips*-sony-*)		gdb_target=bigmips ;;
mips*-*-linux*)		gdb_target=linux
			build_gdbserver=yes
			;;
mips*-*-netbsd*)	gdb_target=nbsd ;;
# OBSOLETE mips*-*-mach3*)		gdb_target=mipsm3 ;;
mips*-*-sysv4*)		gdb_target=mipsv4 ;;
mips*-*-sysv*)		gdb_target=bigmips ;;
mips*-*-riscos*)	gdb_target=bigmips ;;
mips*-*-vxworks*)       gdb_target=vxmips ;;
mips*-*-*)		gdb_target=embed ;;

# OBSOLETE mn10200-*-*)		gdb_target=mn10200 ;;
mn10300-*-*)		gdb_target=mn10300 ;;

none-*-*)		gdb_target=none ;;

ns32k-*-netbsd*)	gdb_target=nbsdaout ;;

powerpc-*-netbsd*)	gdb_target=nbsd ;;
powerpc-*-aix*)		gdb_target=aix ;;
powerpc-*-linux*)	gdb_target=linux
			build_gdbserver=yes
			;;
powerpc-*-vxworks*)	gdb_target=vxworks ;;
powerpc*-*-*)		if test -f ../sim/ppc/Makefile; then
			  gdb_target=ppc-sim
			else
			  gdb_target=ppc-eabi
			fi ;;

rs6000-*-lynxos*)	gdb_target=rs6000lynx ;;
rs6000-*-aix4*)		gdb_target=aix4 ;;
rs6000-*-*)		gdb_target=rs6000 ;;

s390-*-*)		gdb_target=s390
			build_gdbserver=yes
			;;
s390x-*-*)		gdb_target=s390x
			build_gdbserver=yes
			;;

sh*-*-pe)		gdb_target=wince ;;
sh-*-coff*)		gdb_target=embed ;;
sh-*-elf*)		gdb_target=embed ;;
sh-*-linux*)		gdb_target=linux
			build_gdbserver=yes
			;;
sh*-*-netbsdelf*)	gdb_target=nbsd ;;
sh-*-nto*)		gdb_target=nto ;;
sh*)			gdb_target=embed ;;

sparc-*-aout*)		gdb_target=sparc-em ;;
sparc-*-coff*)		gdb_target=sparc-em ;;
sparc-*-elf*)		gdb_target=sparc-em ;;
sparc-*-linux*)		gdb_target=linux ;;
sparc-*-lynxos*)	gdb_target=sparclynx ;;
sparc-*-netbsd*)	gdb_target=nbsd ;;
sparc-*-solaris2*)	gdb_target=sun4sol2 ;;
sparc-*-sunos4*)	gdb_target=sun4os4 ;;
sparc-*-sunos5*)	gdb_target=sun4sol2 ;;
sparc-*-vxworks*)	gdb_target=vxsparc ;;
sparc-*-*)		gdb_target=sun4os4 ;;
# OBSOLETE sparclet-*-*)		gdb_target=sparclet;;
# OBSOLETE sparclite-*-*)		gdb_target=sparclite ;;
# OBSOLETE sparc86x-*-*)		gdb_target=sparclite ;;
# It's not clear what the right solution for "v8plus" systems is yet.
# For now, stick with sparc-sun-solaris2 since that's what config.guess
# should return.  Work is still needed to get gdb to print the 64 bit
# regs (some of which are usable in v8plus) so sp64sol.mt hasn't been
# deleted though presumably it should be eventually.
#sparc64-*-solaris2*)	gdb_target=sp64sol2 ;;
sparc64-*-linux*)	gdb_target=sp64linux ;;
sparc64-*-netbsd*)	gdb_target=nbsd64 ;;
sparcv9-*-* | sparc64-*-*) gdb_target=sp64 ;;

xstormy16-*-*)          gdb_target=xstormy16 ;;

vax-*-*)		gdb_target=vax ;;

v850*-*-*)		gdb_target=v850
			case ${gdb_host} in
			cygwin*)
				CONFIG_OBS="${CONFIG_OBS} v850ice.o" ;;
			* ) ;;
			esac
			;;

x86_64-*-linux*)	gdb_target=x86-64linux
			build_gdbserver=yes
			;;

# OBSOLETE z8k-*-coff*)		gdb_target=z8k ;;

esac


# map GDB target onto multi-arch support

case "${gdb_target}" in
d10v)		gdb_multi_arch=yes ;;
m68hc11)	gdb_multi_arch=yes ;;
mn10300)	gdb_multi_arch=yes ;;
x86-64linux)    gdb_multi_arch=yes ;;
v850)           gdb_multi_arch=yes ;;
xstormy16)      gdb_multi_arch=yes ;;
mcore)		gdb_multi_arch=yes ;;
esac

# map target onto default OS ABI

case "${target}" in
*-*-linux*)	gdb_osabi=GDB_OSABI_LINUX ;;
*-*-gnu*)	gdb_osabi=GDB_OSABI_HURD ;;
*-*-nto*)	gdb_osabi=GDB_OSABI_QNXNTO ;;
*-*-solaris*)	gdb_osabi=GDB_OSABI_SOLARIS ;;
esac
