srcname="GDB"
srctrigger=main.c

# per-host:

# map host info into gdb names.

case "${host_cpu}" in

m68k)
	case "${host_vendor}" in
	att)	gdb_host=3b1 ;;
	altos)
		case "${host_os}" in
		gas)	gdb_host=altosgas ;;
		*)	gdb_host=altos ;;	
		esac
		;;

	cbm)
		case ${host_os} in
		amigados)	gdb_host=amigados ;;
		svr4)		gdb_host=amix ;;
		esac
		;;

	hp)
		case ${host_os} in
		hpux)	gdb_host=hp300hpux ;;
		bsd)	gdb_host=hp300bsd ;;
		esac
		;;

	isi)	gdb_host=isi ;;
	sony)	gdb_host=news ;;
	sun)
		case "${host_os}" in
		sunos3)	gdb_host=sun3os3 ;;
		sunos4)	gdb_host=sun3os4 ;;
		*)	gdb_host=sun3 ;;
		esac
		;;
	esac
	;;

m68000)
	case "${host_vendor}" in
	sun)
		case "${host_os}" in
		sunos3)	gdb_host=sun2os3 ;;
		sunos4)	gdb_host=sun2os4 ;;
		*)	gdb_host=sun2 ;;
		esac
	esac
	;;

sparc)
	case "${host_os}" in
	sunos3)	gdb_host=sun4os3 ;;
	sunos4)	gdb_host=sun4os4 ;;
	*)	gdb_host=sun4 ;;
	esac
	;;

m68030)
	case "${host_vendor}" in
	sony)	gdb_host=news1000 ;;
	esac
	;;

mips)
	case "${host_vendor}" in
	sony)	gdb_host=bigmips ;;
	dec)	gdb_host=decstation ;;
	little)	gdb_host=littlemips ;;
	sgi)	gdb_host=irix3 ;;
	esac
	;;

i386)
	case "${host_vendor}" in
	sun)	gdb_host=sun386 ;;
	sco)	gdb_host=i386sco ;;
	sequent)	gdb_host=symmetry ;;
	*)
		case "${host_os}" in
		sysv)	gdb_host=i386v ;;
		sysv32)	gdb_host=i386v32 ;;
		mach)	gdb_host=i386mach ;;
		esac
		;;
	esac
	;;

c1 | c2)	gdb_host=convex ;;

ns32k)
	case "${host_vendor}" in
	umax)	gdb_host=umax ;;
	esac
	;;

romp)
	gdb_host=rtbsd
	;;

a29k)
	gdb_host=ultra3
	;;

arm | vax | m88k | merlin | none | np1 | pn | pyramid | tahoe)
	gdb_host=${host_cpu}
	;;

### unhandled hosts
#altosgas
#i386v-g
#i386v32-g

esac

if [ ! -f xconfig/${gdb_host} ]; 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 }' <xconfig/${gdb_host}`

# per-target:

case "${target_cpu}" in

m68k)
	case "${target_vendor}" in
	att)	gdb_target=3b1 ;;
	altos)	gdb_target=altos ;;
	cbm)
		case ${target_os} in
		amigados)	gdb_host=amigados ;;
		svr4)		gdb_target=amix ;;
		esac
		;;
	hp)
		case "${target_os}" in
		bsd)	gdb_target=hp300bsd ;;
		hpux)	gdb_target=hp300hpux ;;
		esac
		;;
	sun)
		case "${target_os}" in
		sunos3)	gdb_target=sun3os3 ;;
		sunos4)	gdb_target=sun3os4 ;;
		*)	gdb_target=sun3 ;;
		esac
		;;
	wrs)	gdb_target=vxworks68 ;;
	isi)	gdb_target=isi ;;
	sony)	gdb_target=news ;;
	esac
	;;

m68000)
	case "${target_vendor}" in
	sun)
		case "${target_os}" in
		sunos3)	gdb_target=sun2os3 ;;
		sunos4)	gdb_target=sun2os4 ;;
		*)	gdb_target=sun2 ;;
		esac
	esac
	;;

m68030)
	case "${target_vendor}" in
	sony)	gdb_target=news1000 ;;
	esac
	;;

none | arm | tahoe | vax | np1 | pn | np1 | pn | pyramid | merlin | m88k)
	gdb_target=${target_cpu} ;;

a29k)
	case "${target_os}" in
	none|aout|coff)	gdb_target=a29k ;;
	sym1)	gdb_target=ultra3 ;;
	kern)	gdb_target=a29k-kern ;;
	esac
	;;
	
mips)
	case "${target_vendor}" in
	sony)	gdb_target=bigmips ;;
	dec)	gdb_target=decstation ;;
	little)	gdb_target=littlemips ;;
	sgi)	gdb_target=irix3 ;;
	esac
	;;

c1 | c2)	gdb_target=convex ;;

sparc)
	case "${target_vendor}" in
	sun)
		case "${target_os}" in
		sunos3)	gdb_target=sun4os3 ;;
		sunos4)	gdb_target=sun4os4 ;;
		*)	gdb_target=sun4 ;;
		esac
		;;
	esac
	;;


i386)
	case "${target_vendor}" in
	sco)	gdb_target=i386sco ;;
	sun)	gdb_target=sun386 ;;
	sequent)	gdb_target=symmetry ;;
	coff)	gdb_target=i386v ;;
	aout)	gdb_target=i386v ;;
	*)
		case "${target_os}" in
		sysv)	gdb_target=i386v ;;
		sysv32)	gdb_target=i386v32 ;;
		mach)	gdb_target=i386mach ;;
		esac
	esac
	;;

i960)
	case "${target_vendor}" in
	bout | wrs)	gdb_target=vxworks960 ;;
	coff | intel)	gdb_target=nindy960 ;;
	esac
	;;

ns32k)
	case "${target_vendor}" in
	utek)	gdb_target=umax ;;
	esac
	;;

### unhandled targets
# altosgas
# i386v-g
# i386v32-g

esac

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

if [ -z "${removing}" ] ; then
	cat xconfig/${gdb_host} tconfig/${gdb_target} | 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 }' <tconfig/${gdb_target}`

host_makefile_frag=xconfig/${gdb_host}
target_makefile_frag=tconfig/${gdb_target}

# If hostfile (XM_FILE) and/or targetfile (TM_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
if [ "${hostfile}" != "" ]; then
	files="${files} ${hostfile}"
	links="${links} xm.h"
fi
rm -f tm.h
if [ "${targetfile}" != "" ]; then
	files="${files} ${targetfile}"
	links="${links} tm.h"
fi

# post-target:

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

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