# Mapping of configurations into GDB host definitions.  This is
# invoked from the autoconf generated configure script.

# This file sets the following shell variables:
#  gdb_host_cpu		generic name of host's CPU
#  gdb_host		name of GDB host definition to use

# Map host cpu into the config cpu subdirectory name.
# The default is $host_cpu.

case "${host_cpu}" in

alpha*)			gdb_host_cpu=alpha ;;
arm*)			gdb_host_cpu=arm ;;
hppa*)			gdb_host_cpu=pa ;;
i[3456]86*)		gdb_host_cpu=i386 ;;
m68*)			gdb_host_cpu=m68k ;;
m88*)			gdb_host_cpu=m88k ;;
mips*)			gdb_host_cpu=mips ;;
powerpc*)		gdb_host_cpu=powerpc ;;
sparcv9 | sparc64)	gdb_host_cpu=sparc ;;
s390*)			gdb_host_cpu=s390 ;;
x86_64*)		gdb_host_cpu=i386 ;;
*)			gdb_host_cpu=$host_cpu ;;

esac

# map host info into gdb names.

case "${host}" in

alpha*-*-osf1*)		gdb_host=alpha-osf1 ;;
alpha*-*-osf2*)		gdb_host=alpha-osf2 ;;
alpha*-*-osf[3456789]*)	gdb_host=alpha-osf3 ;;
alpha*-*-linux*)	gdb_host=alpha-linux ;;
alpha*-*-freebsd*)	gdb_host=fbsd ;;

arm*-*-linux*)		gdb_host=linux ;;
arm*-*-netbsd*)		gdb_host=nbsd ;;
arm*-*-*)		gdb_host=arm ;;

hppa*-*-bsd*)		gdb_host=hppabsd ;;
hppa*-*-hiux*)		gdb_host=hppahpux ;;
hppa*-*-hpux10.20)	gdb_host=hpux1020 ;;
hppa*64*-*-hpux11*)	gdb_host=hpux11w ;;
hppa*-*-hpux11*)	gdb_host=hpux11 ;;
hppa*-*-hpux*)		gdb_host=hppahpux ;;
hppa*-*-osf*)		gdb_host=hppaosf ;;

i[3456]86-ncr-*)	gdb_host=ncr3000 ;;
i[3456]86-sequent-bsd*)	gdb_host=symmetry ;;  # dynix
i[3456]86-sequent-sysv4*) gdb_host=ptx4 ;;
i[3456]86-sequent-sysv*) gdb_host=ptx ;;
i[3456]86-*-aix*)	gdb_host=i386aix ;;
i[3456]86-*-bsd*)	gdb_host=i386bsd ;;
i[3456]86-*-dgux*)	gdb_host=i386dgux ;;
i[3456]86-*-freebsd*)	gdb_host=fbsd ;;
i[3456]86-*-netbsdelf*)	gdb_host=nbsdelf ;;
i[3456]86-*-netbsdaout*) gdb_host=nbsd ;;
i[3456]86-*-netbsd*)	gdb_host=nbsd ;;
i[3456]86-*-go32*)	gdb_host=go32 ;;
i[3456]86-*-msdosdjgpp*) gdb_host=go32 ;;
i[3456]86-*-linux*)	gdb_host=linux ;;
i[3456]86-*-lynxos*)	gdb_host=i386lynx ;;
i[3456]86-*-mach3*)	gdb_host=i386m3 ;;
i[3456]86-*-mach*)	gdb_host=i386mach ;;
i[3456]86-*-gnu*)	gdb_host=i386gnu ;;
i[3456]86-*-openbsd*)	gdb_host=obsd ;;
i[3456]86-*-osf1mk*)	gdb_host=i386mk ;;
i[3456]86-*-sco3.2v5*)	gdb_host=i386sco5 ;;
i[3456]86-*-sco3.2v4*)	gdb_host=i386sco4 ;;
i[3456]86-*-sco*)	gdb_host=i386sco ;;
i[3456]86-*-solaris*)	gdb_host=i386sol2 ;;
i[3456]86-*-sysv3.2*)	gdb_host=i386v32 ;;
i[3456]86-*-sysv32*)	gdb_host=i386v32 ;;
i[3456]86-*-sysv4.2*)	gdb_host=i386v42mp ;;
i[3456]86-*-sysv4*)	gdb_host=i386v4 ;;
i[3456]86-*-sysv5*)	gdb_host=i386v42mp ;;
i[3456]86-*-unixware2*)	gdb_host=i386v42mp ;;
i[3456]86-*-unixware*)	gdb_host=i386v4 ;;
i[3456]86-*-sysv*)	gdb_host=i386v ;;
i[3456]86-*-isc*)	gdb_host=i386v32 ;;
i[3456]86-*-cygwin*)	gdb_host=cygwin ;;

ia64-*-aix*)		gdb_host=aix ;;
ia64-*-linux*)		gdb_host=linux ;;

m680[01]0-sun-sunos3*)	gdb_host=sun2os3 ;;
m680[01]0-sun-sunos4*)	gdb_host=sun2os4 ;;

m68*-apollo*-sysv*)	gdb_host=apollo68v ;;
m68*-apollo*-bsd*)	gdb_host=apollo68b ;;
m68*-att-*)		gdb_host=3b1 ;;
m68*-bull*-sysv*)	gdb_host=dpx2 ;;
m68*-hp-bsd*)		gdb_host=hp300bsd ;;
m68*-hp-hpux*)		gdb_host=hp300hpux ;;
m68*-*-linux*)		gdb_host=linux ;;
m68*-*-lynxos*)		gdb_host=m68klynx ;;
m68*-*-netbsd*)		gdb_host=nbsd ;;
m68*-*-sysv4*)		gdb_host=m68kv4 ;;
m68*-motorola-*)	gdb_host=delta68 ;;
m68*-sun-sunos3*)	gdb_host=sun3os3 ;;
m68*-sun-sunos4*)	gdb_host=sun3os4 ;;
m68*-sun-*)		gdb_host=sun3os4 ;;

m88*-motorola-sysv4*)	gdb_host=delta88v4 ;;
m88*-motorola-sysv*)	gdb_host=delta88 ;;
m88*-*-*)		gdb_host=m88k ;;

mips-dec-mach3*)	gdb_host=mipsm3 ;;
mips-dec-*)		gdb_host=decstation ;;
mips-little-*)		gdb_host=littlemips ;;
mips-sgi-irix3*)	gdb_host=irix3 ;;
mips-sgi-irix4*)	gdb_host=irix4 ;;
mips-sgi-irix5*)	gdb_host=irix5 ;;
mips-sgi-irix6*)	gdb_host=irix6 ;;
mips-sony-*)		gdb_host=news-mips ;;
mips*-*-linux*)		gdb_host=linux ;;
mips-*-mach3*)		gdb_host=mipsm3 ;;
mips-*-sysv4*)		gdb_host=mipsv4 ;;
mips-*-sysv*)		gdb_host=riscos ;;
mips-*-riscos*)		gdb_host=riscos ;;

none-*-*)		gdb_host=none ;;

ns32k-*-netbsd*)	gdb_host=nbsd ;;

powerpc-*-aix*)		gdb_host=aix ;;
powerpc-*-linux*)	gdb_host=linux ;;
powerpc-*-netbsd*)	gdb_host=nbsd ;;

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

s390*-*-*)		gdb_host=s390 ;;

sparc-*-linux*)		gdb_host=linux ;;
sparc-*-lynxos*)	gdb_host=sparclynx ;;
sparc-*-netbsdelf*)	gdb_host=nbsdelf ;;
sparc-*-netbsdaout*)	gdb_host=nbsd ;;
sparc-*-netbsd*)	gdb_host=nbsd ;;
sparc-*-solaris2*)	gdb_host=sun4sol2 ;;
sparc-*-sunos4*)	gdb_host=sun4os4 ;;
sparc-*-sunos5*)	gdb_host=sun4sol2 ;;
sparc-*-*)		gdb_host=sun4os4 ;;
sparc64-*-freebsd*|ultrasparc-*-freebsd*|sparcv9-*-freebsd*)
			gdb_host=fbsd ;;
sparc64-*-linux*)	gdb_host=linux ;;
sparcv9-*-* | sparc64-*-*) gdb_host=sun4sol2 ;;

strongarm-*-*)		gdb_host=arm ;;
xscale-*-*)		gdb_host=arm ;;

vax-*-bsd*)		gdb_host=vaxbsd ;;
vax-*-ultrix2*)		gdb_host=vaxult2 ;;
vax-*-ultrix*)		gdb_host=vaxult ;;

x86_64-*-linux*)	gdb_host=x86-64linux ;;

esac
