dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.12.1)dnl
AC_INIT(gdbserve.c)

AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../..)
AC_CANONICAL_SYSTEM
AC_ARG_PROGRAM

AC_PROG_INSTALL

# Map target cpu into the config cpu subdirectory name.
# The default is $target_cpu.
changequote(,)dnl
case "${target_cpu}" in
alpha)			gdb_target_cpu=alpha ;;
c[12])			gdb_target_cpu=convex ;;
hppa*)			gdb_target_cpu=pa ;;
i[3456]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
changequote([,])dnl

target_makefile_frag=${srcdir}/../config/${gdb_target_cpu}/gdbserve.mt
if [ ! -f ${target_makefile_frag} ]; then
	AC_MSG_ERROR("*** GDBSERVE does not support target ${target}")
fi

dnl We have to assign the same value to other variables because autoconf
dnl doesn't provide a mechanism to substitute a replacement keyword with
dnl arbitrary data or pathnames.
dnl
target_makefile_frag_path=$target_makefile_frag
AC_SUBST(target_makefile_frag_path)
AC_SUBST_FILE(target_makefile_frag)

cpufile=`sed -n '
s/CPU_FILE[ 	]*=[ 	]*\([^ 	]*\)/\1/p
' ${target_makefile_frag}

files=
links=
rm -f cpu.h
if [ "${cpufile}" != "" ]; then
	files="${files} ${cpufile}.h"
	links="${links} cpu.h"
fi

AC_LINK_FILES($files, $links)
AC_OUTPUT(Makefile)

