AC_MINIX
AC_ISC_POSIX
+DLLTOOL=${DLLTOOL-dlltool}
+AC_SUBST(DLLTOOL)
+
+AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
AC_CANONICAL_SYSTEM
+dnl gdb doesn't use gettext, but bfd does. We call this to ensure we
+dnl link with the correct libraries.
+ALL_LINGUAS=
+CY_GNU_GETTEXT
+
+dnl List of object files added by configure.
+
+CONFIG_OBS=
+CONFIG_DEPS=
+CONFIG_SRCS=
+
+configdirs="doc testsuite"
+
+dnl
+changequote(,)dnl
+
+. ${srcdir}/configure.host
+
+. ${srcdir}/configure.tgt
+
+dnl
+changequote([,])dnl
+
AC_PROG_INSTALL
AC_CHECK_TOOL(AR, ar)
AC_CHECK_TOOL(RANLIB, ranlib, :)
AC_PROG_YACC
AC_PROG_AWK
-AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
AC_ARG_PROGRAM
+AC_TYPE_SIGNAL
+
AC_HEADER_STDC
-AC_CHECK_HEADERS(limits.h memory.h string.h strings.h unistd.h termios.h termio.h sgtty.h stddef.h stdlib.h sys/procfs.h link.h endian.h)
+AC_CHECK_HEADERS(limits.h memory.h string.h strings.h unistd.h termios.h termio.h sgtty.h stddef.h stdlib.h sys/procfs.h link.h endian.h objlist.h)
AC_HEADER_STAT
AC_C_CONST
-AC_CHECK_FUNCS(setpgid sbrk select poll)
+AC_CHECK_FUNCS(setpgid sbrk select poll sigaction)
+AC_FUNC_ALLOCA
-# If we are configured native on Linux, work around problems with sys/procfs.h
+# If we are configured native on GNU/Linux, work around problems with sys/procfs.h
if test "${target}" = "${host}"; then
case "${host}" in
- i[3456]86-*-linux*)
- AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,"2")
+ i[[3456]]86-*-linux*)
+ AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
AC_DEFINE(sys_quotactl)
;;
esac
AC_DEFINE(HAVE_FPREGSET_T)
fi
+dnl See if host has libm. This is usually needed by simulators.
+AC_CHECK_LIB(m, main)
+
dnl See if compiler supports "long long" type.
AC_MSG_CHECKING(for long long support in compiler)
AC_CACHE_VAL(gdb_cv_printf_has_long_long,
[AC_TRY_RUN([
int main () {
- char buf[16];
- long long l = 0x12345;
- sprintf (buf, "%llx", l);
- return (strcmp ("12345", buf));
+ char buf[32];
+ long long l = 0;
+ l = (l << 16) + 0x0123;
+ l = (l << 16) + 0x4567;
+ l = (l << 16) + 0x89ab;
+ l = (l << 16) + 0xcdef;
+ sprintf (buf, "0x%016llx", l);
+ return (strcmp ("0x0123456789abcdef", buf));
}],
gdb_cv_printf_has_long_long=yes,
gdb_cv_printf_has_long_long=no,
fi
AC_MSG_RESULT($gdb_cv_printf_has_long_double)
+dnl See if the compiler and runtime support scanning long doubles
+
+AC_MSG_CHECKING(for long double support in scanf)
+AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
+[AC_TRY_RUN([
+int main () {
+ char *buf = "3.141592653";
+ long double f = 0;
+ sscanf (buf, "%Lg", &f);
+ return !(f > 3.14159 && f < 3.14160);
+}],
+gdb_cv_scanf_has_long_double=yes,
+gdb_cv_scanf_has_long_double=no,
+gdb_cv_scanf_has_long_double=no)])
+if test $gdb_cv_scanf_has_long_double = yes; then
+ AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
+fi
+AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
+
AC_FUNC_MMAP
BFD_NEED_DECLARATION(malloc)
BFD_NEED_DECLARATION(realloc)
BFD_NEED_DECLARATION(free)
+BFD_NEED_DECLARATION(strerror)
+
dnl See if thread_db library is around for Solaris thread debugging. Note that
dnl we must explicitly test for version 1 of the library because version 0
dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
dnl not doing a canadian cross build (build == host).
if test ${build} = ${host} -a ${host} = ${target} ; then
- AC_MSG_CHECKING(for Solaris thread debugging library)
- if test -f /usr/lib/libthread_db.so.1 ; then
- AC_MSG_RESULT(yes)
- THREAD_DB_OBS=sol-thread.o
- AC_DEFINE(HAVE_THREAD_DB_LIB)
- CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Xlinker -export-dynamic"
- else
- AC_MSG_RESULT(no)
- fi
- case ${host_os} in
- hpux*)
- AC_MSG_CHECKING(for HPUX/OSF thread support)
- if test -f /usr/include/dce/cma_config.h ; then
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
- THREAD_DB_OBS=hpux-thread.o
- else
- AC_MSG_RESULT(no)
- fi
- ;;
- esac
- AC_SUBST(THREAD_DB_OBS)
- AC_SUBST(CONFIG_LDFLAGS)
+ case ${host_os} in
+ hpux*)
+ AC_MSG_CHECKING(for HPUX/OSF thread support)
+ if test -f /usr/include/dce/cma_config.h ; then
+ if test "$GCC" = "yes" ; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
+ CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
+ CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
+ else
+ AC_MSG_RESULT(no (suppressed because you are not using GCC))
+ fi
+ else
+ AC_MSG_RESULT(no)
+ fi
+ ;;
+ solaris*)
+ AC_MSG_CHECKING(for Solaris thread debugging library)
+ if test -f /usr/lib/libthread_db.so.1 ; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_THREAD_DB_LIB)
+ CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
+ CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
+ AC_CHECK_LIB(dl, dlopen)
+ if test "$GCC" = "yes" ; then
+ # The GNU linker requires the -export-dynamic option to make
+ # all symbols visible in the dynamic symbol table.
+ hold_ldflags=$LDFLAGS
+ AC_MSG_CHECKING(for the ld -export-dynamic flag)
+ LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
+ AC_TRY_LINK(, [int i;], found=yes, found=no)
+ LDFLAGS=$hold_ldflags
+ AC_MSG_RESULT($found)
+ if test $found = yes; then
+ CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
+ fi
+ fi
+ else
+ AC_MSG_RESULT(no)
+ fi
+ ;;
+ esac
+ AC_SUBST(CONFIG_LDFLAGS)
fi
dnl Handle optional features that can be enabled.
ENABLE_CFLAGS=
-ENABLE_CLIBS=
-ENABLE_OBS=
AC_ARG_ENABLE(netrom,
[ --enable-netrom ],
esac])
if test "${enable_netrom}" = "yes"; then
- ENABLE_OBS="${ENABLE_OBS} remote-nrom.o"
+ CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
+ CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
fi
-# start-sanitize-gm
-ENABLE_GM=
-
-AC_ARG_ENABLE(gm,
-[ --enable-gm ],
-[case "${enableval}" in
-yes) ENABLE_OBS="${ENABLE_OBS} gmagic.o"
- ENABLE_CFLAGS=-DGENERAL_MAGIC
- ;;
-no) ;;
-*) AC_MSG_ERROR(bad value ${enableval} given for gm option) ;;
-esac])
-
-# end-sanitize-gm
-
-AC_ARG_ENABLE(sim-powerpc,
-[ --enable-sim-powerpc ],
-[case "${enableval}" in
-yes) powerpc_sim=yes ;;
-no) powerpc_sim=no ;;
-*) AC_MSG_ERROR(bad value ${enableval} given for sim-powerpc option) ;;
-esac],[if test x"$GCC" != x""; then powerpc_sim=yes; else powerpc_sim=no; fi])
+MMALLOC_CFLAGS=
+MMALLOC=
+AC_SUBST(MMALLOC_CFLAGS)
+AC_SUBST(MMALLOC)
+
+AC_ARG_WITH(mmalloc,
+[ --with-mmalloc use memory mapped malloc package],
+[case "${withval}" in
+ yes) want_mmalloc=true ;;
+ no) want_mmalloc=false;;
+ *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
+esac],[want_mmalloc=false])dnl
+
+if test x$want_mmalloc = xtrue; then
+ AC_DEFINE(USE_MMALLOC)
+ AC_DEFINE(MMCHECK_FORCE)
+ MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
+ MMALLOC='../mmalloc/libmmalloc.a'
+fi
# start-sanitize-gdbtk
+ENABLE_IDE=
+AC_ARG_ENABLE(ide, [ --enable-ide Enable IDE support])
+if test "$enable_ide" = yes; then
+ enable_ide=yes
+ ENABLE_IDE=1
+else
+ enable_ide=no
+fi
+AC_SUBST(ENABLE_IDE)
+
ENABLE_GDBTK=
AC_ARG_ENABLE(gdbtk,
*go32*)
AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
enable_gdbtk=no ;;
- *cygwin32* | *windows*)
+ *windows*)
AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
enable_gdbtk=no ;;
*)
[
# Default is on for everything but go32 and cygwin32
case "$host" in
- *go32* | *cygwin32* | *windows*)
+ *go32* | *windows*)
;;
*)
enable_gdbtk=yes ;;
esac
])
+# In the cygwin32 environment, we need some additional flags.
+AC_CACHE_CHECK([for cygwin32], gdb_cv_os_cygwin32,
+[AC_EGREP_CPP(lose, [
+#ifdef __CYGWIN32__
+lose
+#endif],[gdb_cv_os_cygwin32=yes],[gdb_cv_os_cygwin32=no])])
+
+WIN32LIBS=
+WIN32LDAPP=
+AC_SUBST(WIN32LIBS)
+AC_SUBST(WIN32LDAPP)
+
+WINDRES=${WINDRES-windres}
+AC_SUBST(WINDRES)
+
+if test x$gdb_cv_os_cygwin32 = xyes; then
+ if test x$enable_ide = xyes; then
+ WIN32LIBS="-ladvapi32"
+ fi
+fi
+
+configdir="unix"
+
+GDBTKLIBS=
if test "${enable_gdbtk}" = "yes"; then
CY_AC_PATH_TCLCONFIG
CY_AC_LOAD_TKCONFIG
CY_AC_PATH_TCLH
CY_AC_PATH_TKH
-
- # Include some libraries that Tcl and Tk want.
- LIBS="$LIBS $TK_LIBS"
+ CY_AC_PATH_ITCLH
+ CY_AC_PATH_TIX
+
+ # now look for tix library stuff
+ TIXVERSION=4.1.8.0
+ . ${ac_cv_c_tclconfig}/tclConfig.sh
+ case "${host}" in
+ *-*-cygwin32*)
+ tixdir=../tix/win/tcl8.0
+ ;;
+ *)
+ tixdir=../tix/unix/tk8.0
+ ;;
+ esac
+ if test "${TCL_SHARED_BUILD}" = "1"; then
+ TIX_LIB_EXT="${TCL_SHLIB_SUFFIX}"
+
+ # Can't win them all: SunOS 4 (others?) appends a version
+ # number after the ".so"
+ case "${host}" in
+ *-*-sunos4*)
+ TIX_LIB_EXT="${TIX_LIB_EXT}.1.0" ;;
+ esac
+
+ else
+ TIX_LIB_EXT=".a"
+ fi
+
+ if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
+ TIXLIB="-L${tixdir} -ltix${TIXVERSION}"
+ TIX_DEPS="${tixdir}/libtix${TIXVERSION}${TIX_LIB_EXT}"
+ else
+ TIXLIB="-L${tixdir} -ltix`echo ${TIXVERSION} | tr -d .`"
+ TIX_DEPS="${tixdir}/libtix`echo ${TIXVERSION} | tr -d .`${TIX_LIB_EXT}"
+ fi
ENABLE_GDBTK=1
- TCL_LIBS='$(TCL) $(TK) $(X11_LDFLAGS) $(X11_LIBS)'
- ENABLE_CLIBS="${ENABLE_CLIBS} ${TCL_LIBS}"
- ENABLE_OBS="${ENABLE_OBS} gdbtk.o"
+ # Include some libraries that Tcl and Tk want.
+ if test "${enable_ide}" = "yes"; then
+ TCL_LIBS='$(LIBIDETCL) $(LIBIDE) $(LIBGUI) $(IDE) $(ITCL) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
+ CONFIG_DEPS='$(LIBIDETCL) $(LIBIDE) $(LIBGUI) $(IDE_DEPS) $(ITCL_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
+ else
+ TCL_LIBS='$(LIBGUI) $(ITCL) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
+ CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
+ fi
+ # Yes, the ordering seems wrong here. But it isn't.
+ # TK_LIBS is the list of libraries that need to be linked
+ # after Tcl/Tk. Note that this isn't put into LIBS. If it
+ # were in LIBS then any link tests after this point would
+ # try to include things like `$(LIBGUI)', which wouldn't work.
+ GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
+ CONFIG_OBS="${CONFIG_OBS} gdbtk.o"
+
+ if test x$gdb_cv_os_cygwin32 = xyes; then
+ WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32 -luser32"
+ WIN32LDAPP="-Wl,--subsystem,windows"
+ CONFIG_OBS="${CONFIG_OBS} gdbres.o"
+ fi
fi
fi
fi
AC_SUBST(X_CFLAGS)
AC_SUBST(X_LDFLAGS)
AC_SUBST(X_LIBS)
+AC_SUBST(TIXLIB)
+AC_SUBST(TIX_DEPS)
+AC_SUBST(GDBTKLIBS)
# end-sanitize-gdbtk
+AC_PATH_X
+# start-sanitize-sky
+# Enable GPU2 library for MIPS simulator
+AC_ARG_WITH(sim-gpu2,
+[ --with-sim-gpu2=path Use GPU2 library under given directory],
+[case "${target}" in
+ mips*-sky-*)
+ if test -d "${withval}"
+ then
+ LIBS="${LIBS} -L${withval}/lib -lgpu2 -L${x_libraries} -lX11"
+ else
+ AC_MSG_WARN([Directory ${withval} does not exist.])
+ fi ;;
+ *) AC_MSG_WARN([--with-sim-gpu2 option invalid for target ${target}])
+esac])dnl
+
+# Enable target accurate FP library
+AC_ARG_WITH(sim-funit,
+[ --with-sim-funit=path Use target FP lib under given directory],
+[case "${target}" in
+ mips*-sky-*)
+ if test -d "${withval}"
+ then
+ LIBS="${LIBS} -L${withval}/lib -lfunit"
+ else
+ AC_MSG_WARN([Directory ${withval} does not exist.])
+ fi ;;
+ *) AC_MSG_WARN([--with-sim-funit option invalid for target ${target}])
+esac])dnl
+# end-sanitize-sky
+
AC_SUBST(ENABLE_CFLAGS)
-AC_SUBST(ENABLE_CLIBS)
-AC_SUBST(ENABLE_OBS)
+
+AC_SUBST(CONFIG_OBS)
+AC_SUBST(CONFIG_DEPS)
+AC_SUBST(CONFIG_SRCS)
# Begin stuff to support --enable-shared
AC_ARG_ENABLE(shared,
fi
AC_SUBST(target_subdir)
-configdirs="doc testsuite"
-
-dnl
-changequote(,)dnl
-
-. ${srcdir}/configure.host
-
-. ${srcdir}/configure.tgt
-
-dnl
-changequote([,])dnl
-
frags=
host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
if test ! -f ${host_makefile_frag}; then
nativefile=`sed -n '
s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
' ${host_makefile_frag}`
-else
+# else
# GDBserver is only useful in a "native" enviroment
-configdirs=`echo $configdirs | sed 's/gdbserver//'`
+# configdirs=`echo $configdirs | sed 's/gdbserver//'`
fi
changequote([,])
links="${links} nm.h"
fi
# start-sanitize-gdbtk
-
+AC_PROG_LN_S
# Make it possible to use the GUI without doing a full install
-if test "${enable_gdbtk}" = "yes" -a ! -f gdbtk.tcl ; then
-files="${files} gdbtk.tcl"
-links="${links} gdbtk.tcl"
+if test "${enable_gdbtk}" = "yes" -a ! -d gdbtcl ; then
+ if test "$LN_S" = "ln -s" -a ! -f gdbtcl ; then
+ echo linking $srcdir/gdbtcl to gdbtcl
+ $LN_S $srcdir/gdbtcl gdbtcl
+ else
+ echo Warning: Unable to link $srcdir/gdbtcl to gdbtcl. You will need to do a
+ echo " " make install before you are able to run the GUI.
+ fi
fi
# end-sanitize-gdbtk
AC_LINK_FILES($files, $links)
+dnl Check for exe extension set on certain hosts (e.g. Win32)
+AM_EXEEXT
+
AC_CONFIG_SUBDIRS($configdirs)
-AC_OUTPUT(Makefile,
+AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
[
dnl Autoconf doesn't provide a mechanism for modifying definitions
dnl provided by makefile fragments.
mv -f Makefile.tmp Makefile
changequote([,])dnl
-case ${srcdir} in
-.)
-;;
-*)
-grep "source ${srcdir}/.gdbinit" .gdbinit >/dev/null 2>/dev/null || \
-echo "source ${srcdir}/.gdbinit" >> .gdbinit
-esac
-
case x$CONFIG_HEADERS in
xconfig.h:config.in)
echo > stamp-h ;;