revert 1.9. Not approved.
[deliverable/binutils-gdb.git] / gdb / configure.in
index 8c5ba2fbe953f218c15adaaaa99629ceb6447aa0..5f112c0854e3dc4e6fbb1952687fe217a3990b84 100644 (file)
@@ -22,6 +22,7 @@ dnl Process this file with autoconf to produce a configure script.
 AC_PREREQ(2.13)dnl
 AC_INIT(main.c)
 AC_CONFIG_HEADER(config.h:config.in)
+AM_MAINTAINER_MODE
 
 AC_PROG_CC
 AC_AIX
@@ -41,7 +42,12 @@ dnl List of object files added by configure.
 CONFIG_OBS=
 CONFIG_DEPS=
 CONFIG_SRCS=
-CONFIG_INIT=
+CONFIG_INITS=
+ENABLE_CFLAGS=
+CONFIG_ALL=
+CONFIG_CLEAN=
+CONFIG_INSTALL=
+CONFIG_UNINSTALL=
 
 configdirs="doc testsuite"
 
@@ -74,12 +80,23 @@ AC_CHECK_TOOL(AR, ar)
 AC_CHECK_TOOL(RANLIB, ranlib, :)
 AC_PROG_YACC
 
+dnl MiG is needed for the Hurd.
+AC_CHECK_TOOL(MIG, mig)
+
 AC_ARG_PROGRAM
 
 AC_TYPE_SIGNAL
 
 AC_HEADER_STDC
 
+dnl Solaris 7 needs _MSE_INT_H defined to avoid a clash between <widec.h>
+dnl and <wchar.h> that causes AC_CHECK_HEADERS to think <curses.h> doesn't
+dnl exist.
+
+case $host_os in solaris2.7) case "$GCC" in yes)
+    AC_DEFINE(_MSE_INT_H)
+esac; esac
+
 AC_CHECK_HEADERS(ctype.h curses.h endian.h link.h thread_db.h proc_service.h \
        memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
        string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
@@ -93,6 +110,18 @@ AC_C_CONST
 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
 AC_FUNC_ALLOCA
 
+dnl See if ptrace.h provides the PTRACE_GETREGS request.
+AC_MSG_CHECKING(for PTRACE_GETREGS)
+AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
+[AC_TRY_COMPILE([#include <sys/ptrace.h>],
+               [PTRACE_GETREGS;],
+               [gdb_cv_have_ptrace_getregs=yes],
+               [gdb_cv_have_ptrace_getregs=no])])
+AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
+if test $gdb_cv_have_ptrace_getregs = yes; then
+  AC_DEFINE(HAVE_PTRACE_GETREGS)
+fi
+
 dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
 dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
 dnl Linux kernel patch for SSE support.  That patch may or may not
@@ -156,10 +185,7 @@ if test "${target}" = "${host}"; then
   *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
       AC_DEFINE(NEW_PROC_API)
       ;;
-  # FIXME: we would like to define NEW_PROC_API for all versions of
-  # Solaris from 2.6 on... but it isn't quite working yet.  Seems
-  # to work on sparc 2.6, so let's try it out there.
-  sparc-sun-solaris2.6)
+  *-*-solaris2.[[678]])
       AC_DEFINE(NEW_PROC_API)
       ;;
   esac
@@ -170,6 +196,36 @@ if test "$ac_cv_header_sys_procfs_h" = yes; then
   BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
   BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
   BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
+  BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
+  BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
+  BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
+  BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
+
+  dnl Check for broken prfpregset_t type
+
+  dnl For Linux/i386, glibc 2.1.3 was released with a bogus
+  dnl prfpregset_t type (it's a typedef for the pointer to a struct
+  dnl instead of the struct itself).  We detect this here, and work
+  dnl around it in lin-thread.c.
+
+  if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
+    AC_MSG_CHECKING(whether prfpregset_t type is broken)
+    AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
+      [AC_TRY_RUN([#include <sys/procfs.h>
+       int main ()
+       {
+         if (sizeof (prfpregset_t) == sizeof (void *))
+           return 1;
+         return 0;
+       }],
+       gdb_cv_prfpregset_t_broken=no,
+       gdb_cv_prfpregset_t_broken=yes,
+       gdb_cv_prfpregset_t_broken=yes)])
+    AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
+    if test $gdb_cv_prfpregset_t_broken = yes; then
+      AC_DEFINE(PRFPREGSET_T_BROKEN)
+    fi
+  fi
 
   dnl Check for PIOCSET ioctl entry 
 
@@ -306,7 +362,6 @@ if test ${build} = ${host} -a ${host} = ${target} ; then
             AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
             CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
             CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
-           CONFIG_INITS="${CONFIG_INITS} hpux-thread.c"
          else
             AC_MSG_RESULT(no (suppressed because you are not using GCC))
          fi
@@ -321,7 +376,6 @@ if test ${build} = ${host} -a ${host} = ${target} ; then
          AC_DEFINE(HAVE_THREAD_DB_LIB)
          CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
          CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
-        CONFIG_INITS="${CONFIG_INITS} sol-thread.c"
          AC_CHECK_LIB(dl, dlopen)
          if test "$GCC" = "yes" ; then
             # The GNU linker requires the -export-dynamic option to make
@@ -360,7 +414,34 @@ if test ${build} = ${host} -a ${host} = ${target} ; then
 fi
 
 dnl Handle optional features that can be enabled.
-ENABLE_CFLAGS=
+
+dnl Handle MI sub-directory configury.
+AC_ARG_ENABLE(gdbmi,
+[  --enable-gdbmi            Enable GDB-MI interface],
+[
+  case "${enable_gdbmi}" in
+    yes | no) ;;
+    "")  enable_gdbmi=yes ;;
+    *)
+      AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
+    ;;
+  esac
+])
+case ${enable_gdbmi} in
+  "yes" )
+    if test -d "${srcdir}/mi" ; then
+      CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
+      CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
+      CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_MI_SRCS)"
+      CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
+      ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
+      CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
+      CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
+      CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
+      CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
+    fi
+    ;;
+esac
 
 AC_ARG_ENABLE(tui,
 [  --enable-tui            Enable full-screen terminal user interface],
@@ -398,13 +479,16 @@ esac])
 if test "${enable_netrom}" = "yes"; then
        CONFIG_OBS="${CONFIG_OBS} remote-nrom.o" 
         CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
-       CONFIG_INITS="${CONFIG_INITS} remote-nrom.c"
 fi
 
+
+build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
+-Wformat -Wparentheses -Wpointer-arith"
+# Not yet: -Wall -Wpointer-arith -Wstrict-prototypes
+# -Wmissing-prototypes -Wmissing-declarations
 AC_ARG_ENABLE(build-warnings,
 [  --enable-build-warnings Enable build-time compiler warnings if gcc is used],
-[build_warnings="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations"
-case "${enableval}" in
+[case "${enableval}" in
   yes) ;;
   no)  build_warnings="-w";;
   ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
@@ -415,7 +499,7 @@ case "${enableval}" in
 esac
 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
   echo "Setting warning flags = $build_warnings" 6>&1
-fi
+fi])dnl
 WARN_CFLAGS=""
 WERROR_CFLAGS=""
 if test "x${build_warnings}" != x -a "x$GCC" = xyes
@@ -428,8 +512,7 @@ then
     *) WARN_CFLAGS="${WARN_CFLAGS} $w"
     esac
   done
-fi],[build_warnings=""])dnl
-
+fi
 AC_SUBST(WARN_CFLAGS)
 AC_SUBST(WERROR_CFLAGS)
 
@@ -453,6 +536,37 @@ if test x$want_mmalloc = xtrue; then
    MMALLOC='../mmalloc/libmmalloc.a'
 fi
 
+AC_ARG_WITH(included-regex,
+[  --with-included-regex          Use included regex],
+[case "${withval}" in
+  yes)  want_included_regex=true ;;
+  no)   want_included_regex=false;;
+  *)    AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
+esac],[want_included_regex=true])dnl
+
+if test $want_included_regex = false; then
+  AC_MSG_CHECKING(for GNU regex)
+  AC_CACHE_VAL(gdb_cv_have_gnu_regex,
+[AC_TRY_COMPILE([#include <gnu-versions.h>
+#include <sys/types.h>
+#include <regex.h>],
+[#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
+#error No valid GNU regex.
+#endif
+],
+               [gdb_cv_have_gnu_regex=yes],
+               [gdb_cv_have_gnu_regex=no])])
+  AC_MSG_RESULT($gdb_cv_have_gnu_regex)
+  if test $gdb_cv_have_gnu_regex = no; then
+       want_included_regex=true
+  fi
+fi
+
+if test x${want_included_regex} = xtrue; then
+    REGEX="gnu-regex.o"
+    AC_DEFINE(USE_INCLUDED_REGEX)
+fi
+AC_SUBST(REGEX)
 
 # In the Cygwin environment, we need some additional flags.
 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
@@ -540,8 +654,6 @@ AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
 ],)
 
 
-ENABLE_GDBTK=
-
 AC_ARG_ENABLE(gdbtk,
 [  --enable-gdbtk          Enable GDBTK GUI front end],
 [case "${enableval}" in
@@ -567,8 +679,11 @@ case "$host" in
     *go32* | *windows*)
        ;;
     *)
-       enable_gdbtk=yes ;;
-    esac
+       if test -d "${srcdir}/gdbtk" ; then
+            enable_gdbtk=yes
+       fi
+       ;;
+esac
 ])
 
 WIN32LDAPP=
@@ -641,7 +756,6 @@ if test "${enable_gdbtk}" = "yes"; then
             TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
            fi
 
-          ENABLE_GDBTK=1
            ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
           # Tcl/Tk 8.1 require -fwritable strings.  I don't
            # know whether 8.2 will or not, but I bet it will.
@@ -662,9 +776,13 @@ if test "${enable_gdbtk}" = "yes"; then
           # 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_SRCS="${CONFIG_SRCS} gdbtk/generic/gdbtk.c gdbtk/generic/gdbtk-cmds.c gdbtk/generic/gdbtk-hooks.c gdbtk/generic/gdbtk-variable.c gdbtk/generic/gdbtk-wrapper.c"
-          CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-variable.o gdbtk-wrapper.o"
-          CONFIG_INITS="${CONFIG_INITS} gdbtk/generic/gdbtk.c gdbtk/generic/gdbtk-cmds.c gdbtk/generic/gdbtk-hooks.c gdbtk/generic/gdbtk-variable.c gdbtk/generic/gdbtk-wrapper.c"
+          CONFIG_SRCS="${CONFIG_SRCS} gdbtk/generic/gdbtk.c gdbtk/generic/gdbtk-cmds.c gdbtk/generic/gdbtk-hooks.c gdbtk/generic/gdbtk-varobj.c gdbtk/generic/gdbtk-wrapper.c"
+          CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
+          CONFIG_INITS="${CONFIG_INITS} gdbtk/generic/gdbtk.c gdbtk/generic/gdbtk-cmds.c gdbtk/generic/gdbtk-hooks.c gdbtk/generic/gdbtk-varobj.c gdbtk/generic/gdbtk-wrapper.c"
+          CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
+          CONFIG_CLEAN="${CONFIG_ALL} \$(SUBDIR_GDBTK_CLEAN)"
+          CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
+          CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
 
           if test x$gdb_cv_os_cygwin = xyes; then
              WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
@@ -675,7 +793,6 @@ if test "${enable_gdbtk}" = "yes"; then
     fi
 fi
 
-AC_SUBST(ENABLE_GDBTK)
 AC_SUBST(X_CFLAGS)
 AC_SUBST(X_LDFLAGS)
 AC_SUBST(X_LIBS)
@@ -730,6 +847,10 @@ AC_SUBST(CONFIG_OBS)
 AC_SUBST(CONFIG_DEPS)
 AC_SUBST(CONFIG_SRCS)
 AC_SUBST(CONFIG_INITS)
+AC_SUBST(CONFIG_ALL)
+AC_SUBST(CONFIG_CLEAN)
+AC_SUBST(CONFIG_INSTALL)
+AC_SUBST(CONFIG_UNINSTALL)
 
 # Begin stuff to support --enable-shared
 AC_ARG_ENABLE(shared,
@@ -753,7 +874,7 @@ if test "${shared}" = "true"; then
     ;;
   *-*-linux*aout*)
     ;;
-  *-*-linux* | *-pc-linux-gnu)
+  *-*-linux* | *-pc-linux-gnu*)
     HLDFLAGS='-Wl,-rpath,$(libdir)'
     ;;
   *-*-solaris*)
@@ -873,16 +994,6 @@ files="${files} config/nm-empty.h"
 links="${links} nm.h"
 fi
 AC_PROG_LN_S
-# Make it possible to use the GUI without doing a full install
-if test "${enable_gdbtk}" = "yes" ; then
-  if test "$LN_S" = "ln -s" -a ! -f gdbtcl ; then
-  echo linking $srcdir/gdbtk/library to gdbtcl
-  $LN_S $srcdir/gdbtk/library gdbtcl
-  else
-  echo Warning: Unable to link $srcdir/gdbtk/library to gdbtcl.  You will need to do a
-  echo "         " make install before you are able to run the GUI.
-  fi
-fi
 
 AC_LINK_FILES($files, $links)
 
This page took 0.027889 seconds and 4 git commands to generate.