configdirs="doc testsuite"
srcname="GDB"
srctrigger=main.c
gdb_serial_driver=ser-unix.c

# per-host:

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

case "${host_cpu}" in

c[12])			gdb_host_cpu=convex ;;
hppa*)			gdb_host_cpu=pa ;;
i[34]86)		gdb_host_cpu=i386 ;;
m68*)			gdb_host_cpu=m68k ;;
np1)			gdb_host_cpu=gould ;;
pyramid)		gdb_host_cpu=pyr ;;
*)			gdb_host_cpu=$host_cpu ;;

esac

# map host info into gdb names.

case "${host}" in

a29k-*-*)		gdb_host=ultra3 ;;

arm-*-*)		gdb_host=arm ;;

c[12]-*-*)		gdb_host=convex ;;

hppa*-hp-bsd*)		gdb_host=hppabsd ;;
hppa*-hp-hpux*)		gdb_host=hppahpux ;;

i[34]86-ncr-*)		gdb_host=ncr3000 ;;
i[34]86-sequent-*)	gdb_host=symmetry ;;

i[34]86-*-bsd*)		gdb_host=i386bsd ;;
i[34]86-*-go32)		gdb_host=go32
			gdb_serial_driver=ser-go32.c
			;;
i[34]86-*-linux)	gdb_host=linux ;;
i[34]86-*-mach)		gdb_host=i386mach ;;
i[34]86-*-sco3.2v4*)	gdb_host=i386sco4 ;;
i[34]86-*-sco*)		gdb_host=i386sco ;;
i[34]86-*-solaris*)	gdb_host=i386sol2 ;;
i[34]86-*-sunos*)	gdb_host=sun386 ;;
i[34]86-*-sysv3.2)	gdb_host=i386v32 ;;
i[34]86-*-sysv4*)	gdb_host=i386v4 ;;
i[34]86-*-sysv*)	gdb_host=i386v ;;
i[34]86-*-isc*)		gdb_host=i386v32 ;;

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

m68*-altos-*)		gdb_host=altos ;;
m68*-apollo*-sysv*)	gdb_host=apollo68v ;;
m68*-apollo*-bsd*)	gdb_host=apollo68b ;;
m68*-att-*)		gdb_host=3b1 ;;
m68*-cbm-sysv4*)	gdb_host=amix ;;
m68*-hp-bsd*)		gdb_host=hp300bsd ;;
m68*-hp-hpux*)		gdb_host=hp300hpux ;;
m68*-isi-*)		gdb_host=isi ;;
m68*-sony-*)		gdb_host=news ;;
m68*-sun-sunos3*)	gdb_host=sun3os3 ;;
m68*-sun-sunos4*)	gdb_host=sun3os4 ;;
m68*-sun-*)		gdb_host=sun3os4 ;;

m88k-motorola-*)	gdb_host=delta88 ;;
m88k-*-*)		gdb_host=m88k ;;

mips-dec-*)		gdb_host=decstation ;;
mips-little-*)		gdb_host=littlemips ;;
mips-sgi-irix3)		gdb_host=irix3 ;;
mips-sgi-irix4*)	gdb_host=irix4 ;;
mips-sony-*)		gdb_host=bigmips ;;

none-*-*)		gdb_host=none ;;

np1-*-*)		gdb_host=np1 ;;

ns32k-umax-*)		gdb_host=umax ;;
ns32k-utek-sysv)	gdb_host=merlin ;;

pn-*-*)			gdb_host=pn ;;

pyramid-*-*)		gdb_host=pyramid ;;

romp-*-*)		gdb_host=rtbsd ;;

rs6000-*-*)		gdb_host=rs6000 ;;

sparc-*-solaris2*)	gdb_host=sun4sol2 ;;
sparc-*-sunos4*)	gdb_host=sun4os4 ;;
sparc-*-*)		gdb_host=sun4os4 ;;

tahoe-*-*)		gdb_host=tahoe ;;

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

esac


if [ ! -f ${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh ]; then
	echo '***' "Gdb does not support host ${host}" 1>&2
	exit 1
fi

#  We really shouldn't depend on there being a space after XM_FILE= ...
hostfile=`awk '$1 == "XM_FILE=" { print $2 }' <${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh`

# per-target:

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

case "${target_cpu}" in

c[12])			gdb_target_cpu=convex ;;
hppa*)			gdb_target_cpu=pa ;;
i[34]86)		gdb_target_cpu=i386 ;;
m68*)			gdb_target_cpu=m68k ;;
np1)			gdb_target_cpu=gould ;;
pn)			gdb_target_cpu=gould ;;
pyramid)		gdb_target_cpu=pyr ;;
sparc*)			gdb_target_cpu=sparc ;;
*)			gdb_target_cpu=$target_cpu ;;

esac

# map target info into gdb names.

case "${target}" in

a29k-*-aout)		gdb_target=a29k ;;
a29k-*-coff)		gdb_target=a29k ;;
a29k-*-elf)		gdb_target=a29k ;;
a29k-*-ebmon)		gdb_target=a29k ;;
a29k-*-kern)		gdb_target=a29k-kern ;;
a29k-*-none)		gdb_target=a29k ;;
a29k-*-sym1)		gdb_target=ultra3 ;;
a29k-*-udi)		gdb_target=a29k-udi ;;

arm-*-*)		gdb_target=arm ;;

c1-*-*)			gdb_target=convex ;;
c2-*-*)			gdb_target=convex ;;

h8300-*-*)		gdb_target=h8300hms ;;
h8500-*-*)		gdb_target=h8500hms ;;

sh-*-*)			gdb_target=sh ;;

hppa*-*-bsd*)		gdb_target=hppabsd ;;
hppa*-*-hpux*)		gdb_target=hppahpux ;;

i[34]86-sequent-*)	gdb_target=symmetry ;;
i[34]86-ncr-*)		gdb_target=ncr3000 ;;

i[34]86-*-aout)		gdb_target=i386aout ;;
i[34]86-*-coff)		gdb_target=i386v ;;
i[34]86-*-elf)		gdb_target=i386v ;;

i[34]86-*-bsd*)		gdb_target=i386bsd ;;
i[34]86-*-go32)		gdb_target=i386aout ;;
i[34]86-*-solaris*)	gdb_target=i386sol2 ;;
i[34]86-*-sunos*)	gdb_target=sun386 ;;
i[34]86-*-sysv4*)	gdb_target=i386v4 ;;
i[34]86-*-sco*)		gdb_target=i386v ;;
i[34]86-*-sysv*)	gdb_target=i386v ;;
i[34]86-*-linux*)	gdb_target=linux ;;
i[34]86-*-isc*)		gdb_target=i386v ;;

i960-*-bout)		gdb_target=vxworks960 ;;
i960-*-coff)		gdb_target=nindy960 ;;
i960-*-elf)		gdb_target=nindy960 ;;

i960-*-nindy)		gdb_target=nindy960 ;;
i960-*-vxworks)		gdb_target=vxworks960 ;;

m68000-*-aout)		gdb_target=m68k-nofp ;;
m68000-*-coff)		gdb_target=m68k-nofp ;;
m68000-*-elf)		gdb_target=m68k-nofp ;;
m68000-*-sunos3*)	gdb_target=sun2os3 ;;
m68000-*-sunos4*)	gdb_target=sun2os4 ;;

m68*-cbm-sysv4*)	gdb_target=amix ;;
m68*-hp-bsd*)		gdb_target=hp300bsd ;;
m68*-hp-hpux*)		gdb_target=hp300hpux ;;

m68*-altos-*)		gdb_target=altos ;;
m68*-att-*)		gdb_target=3b1 ;;
m68*-ericsson-*)	gdb_target=es1800 ;;
m68*-isi-*)		gdb_target=isi ;;
m68*-netx-*)		gdb_target=vxworks68 ;;
m68*-sony-*)		gdb_target=news ;;
m68*-tandem-*)		gdb_target=st2000 ;;

m68*-*-aout)		gdb_target=m68k-fp ;;
m68*-*-coff)		gdb_target=m68k-fp ;;
m68*-*-elf)		gdb_target=m68k-fp ;;
m68*-*-os68k)		gdb_target=os68k ;;
m68*-*-sunos3*)		gdb_target=sun3os3 ;;
m68*-*-sunos4*)		gdb_target=sun3os4 ;;
m68*-*-vxworks*)	gdb_target=vxworks68 ;;

m88k-motorola-*)	gdb_target=delta88 ;;
m88k-*-*)		gdb_target=m88k ;;

mips-big-*)		gdb_target=bigmips ;;
mips-dec-*)		gdb_target=decstation ;;
mips-idt-ecoff)		gdb_target=idt ;;
mips-little-*)		gdb_target=littlemips ;;
mips-sgi-*)		gdb_target=irix3 ;;
mips-sony-*)		gdb_target=bigmips ;;

none-*-*)		gdb_target=none ;;

np1-*-*)		gdb_target=np1 ;;

ns32k-utek-sysv)	gdb_target=merlin ;;
ns32k-utek-*)		gdb_target=umax ;;

pn-*-*)			gdb_target=pn ;;

pyramid-*-*)		gdb_target=pyramid ;;

rs6000-*-*)		gdb_target=rs6000 ;;

sparc-*-aout)		gdb_target=sparc-em ;;
sparc-*-coff)		gdb_target=sparc-em ;;
sparc-*-elf)		gdb_target=sparc-em ;;
sparc-*-solaris2*)	gdb_target=sun4sol2 ;;
sparc-*-sunos4*)	gdb_target=sun4os4 ;;
sparc-*-vxworks*)	gdb_target=sparc-em ;;
sparc-*-*)		gdb_target=sun4os4 ;;
sparclite*-*-*)		gdb_target=sparclite ;;

tahoe-*-*)		gdb_target=tahoe ;;
vax-*-*)		gdb_target=vax ;;

z8k-*-sim)		gdb_target=z8ksim ;;
esac

if [ ! -f ${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt ]; then
	echo '***' "Gdb does not support target ${target}" 1>&2
	exit 1
fi

if [ -z "${removing}" ] ; then
	cat ${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh ${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt | awk '$1 == "#msg" {
		print substr($0,6)}'
fi

#  We really shouldn't depend on there being a space after TM_FILE= ...
targetfile=`awk '$1 == "TM_FILE=" { print $2 }' <${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt`

if [ "${target}" = "${host}" ] ; then
	nativefile=`awk '$1 == "NAT_FILE=" { print $2 }' <${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh`
fi

host_makefile_frag=config/${gdb_host_cpu}/${gdb_host}.mh
target_makefile_frag=config/${gdb_target_cpu}/${gdb_target}.mt

# If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
# (NAT_FILE) is not set in the ?config/* file, we don't make the
# corresponding links.  But we have to remove the xm.h files and tm.h
# files anyway, e.g. when switching from "configure host" to
# "configure none".

files=
links=
rm -f xm.h
rm -f ser-hardwire.c
if [ "${hostfile}" != "" ]; then
	if [ -f ${srcdir}/config/${hostfile} ]; then
		files="${files} config/${hostfile}"
	else
		files="${files} config/${gdb_host_cpu}/${hostfile}"
	fi
	links="${links} xm.h"

	files="${files} ${gdb_serial_driver}"
	links="${links} ser-hardwire.c"
fi
rm -f tm.h
if [ "${targetfile}" != "" ]; then
	if [ -f ${srcdir}/config/${targetfile} ]; then
		files="${files} config/${targetfile}"
	else
		files="${files} config/${gdb_target_cpu}/${targetfile}"
	fi
	links="${links} tm.h"
fi
rm -f nm.h
if [ "${nativefile}" != "" ]; then
	if [ -f ${srcdir}/config/${nativefile} ]; then
		files="${files} config/${nativefile}"
	else
		files="${files} config/${gdb_host_cpu}/${nativefile}"
	fi
	links="${links} nm.h"
# temporary scaffolding until all hosts have the host/target/native
# split in place.
else
	files="${files} config/nm-trash.h"
	links="${links} nm.h"
fi

if [ ${target_cpu} = "sparclite" ]; then
	configdirs="${configdirs} sparclite"
fi

# post-target:

case ${srcdir} in
  .)
    ;;
  *)
    grep -s "source ${srcdir}/.gdbinit" .gdbinit 2>/dev/null || \
      echo "source ${srcdir}/.gdbinit" >> .gdbinit
esac

if [ "${nativefile}" = "" ] ; then
	sed -e '/^NATDEPFILES= /s//# NATDEPFILES= /' \
		< Makefile > Makefile.tem
	mv -f Makefile.tem Makefile
fi

cat ${srcdir}/alldeps.mak ${srcdir}/depend >>Makefile
