# 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
			gdb_multi_arch=1
			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
