2002-05-15 Nick Clifton <nickc@cambridge.redhat.com>
[deliverable/binutils-gdb.git] / gdb / configure.in
index f676877eaa1ab9f6483abf38ba33d7df9ca48f10..8d304594f3a6bb09fca036f490f31d4ab8426154 100644 (file)
@@ -1,5 +1,5 @@
 dnl Autoconf configure script for GDB, the GNU debugger.
-dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001
+dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
 dnl Free Software Foundation, Inc.
 dnl
 dnl This file is part of GDB.
@@ -118,22 +118,24 @@ case $host_os in solaris2.7 | solaris2.8) case "$GCC" in yes)
     AC_DEFINE(_MSE_INT_H)
 esac; esac
 
-AC_CHECK_HEADERS(ctype.h endian.h nlist.h link.h thread_db.h proc_service.h \
+AC_CHECK_HEADERS(ctype.h nlist.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 \
        term.h termio.h termios.h unistd.h wait.h sys/wait.h \
        wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
        time.h sys/file.h sys/ioctl.h sys/user.h sys/fault.h sys/syscall.h \
-       dirent.h sys/ndir.h sys/dir.h ndir.h \
+       dirent.h sys/ndir.h sys/dir.h ndir.h sys/filio.h \
        curses.h ncurses.h \
        poll.h sys/poll.h)
 AC_HEADER_STAT
 
 AC_C_CONST
+AC_C_INLINE
 
-AC_CHECK_FUNCS(setpgid setpgrp sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
-AC_FUNC_VFORK
+AC_CHECK_FUNCS(bcopy btowc bzero canonicalize_file_name isascii poll \
+       realpath sbrk setpgid setpgrp sigaction sigprocmask sigsetmask )
 AC_FUNC_ALLOCA
+AC_FUNC_VFORK
 dnl AC_FUNC_SETPGRP does not work when cross compiling
 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
 if test "$cross_compiling" = no; then
@@ -216,6 +218,19 @@ if test $gdb_cv_have_pt_getdbregs = yes; then
   AC_DEFINE(HAVE_PT_GETDBREGS)
 fi
 
+# See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
+AC_MSG_CHECKING(for PT_GETXMMREGS)
+AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
+[AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/ptrace.h>],
+               [PT_GETXMMREGS;],
+               [gdb_cv_have_pt_getxmmregs=yes],
+               [gdb_cv_have_pt_getxmmregs=no])])
+AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
+if test $gdb_cv_have_pt_getxmmregs = yes; then
+  AC_DEFINE(HAVE_PT_GETXMMREGS)
+fi
+
 
 AC_CHECK_LIB(socket, socketpair)
 AC_CHECK_FUNCS(socketpair)
@@ -227,7 +242,7 @@ BFD_NEED_DECLARATION(free)
 BFD_NEED_DECLARATION(strerror)
 BFD_NEED_DECLARATION(strdup)
 BFD_NEED_DECLARATION(strstr)
-
+BFD_NEED_DECLARATION(canonicalize_file_name)
 
 # The following save_state_t checkery is only necessary for HPUX 
 # versions earlier than 10.20.  When those fade from memory, this 
@@ -293,7 +308,7 @@ if test "$ac_cv_header_sys_procfs_h" = yes; then
   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.
+  dnl around it in gdb_proc_service.h.
 
   if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
     AC_MSG_CHECKING(whether prfpregset_t type is broken)
@@ -394,6 +409,7 @@ if test ${host} = ${target} ; then
   AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
   if test $gdb_cv_have_struct_link_map32 = yes; then
     AC_DEFINE(HAVE_STRUCT_LINK_MAP32)
+    AC_DEFINE(_SYSCALL32)
   fi
 fi
 
@@ -497,6 +513,23 @@ AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
 
 AC_FUNC_MMAP
 
+case ${host_os} in
+aix*)
+  AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
+    SAVE_LDFLAGS=$LDFLAGS
+
+    case $GCC in
+    yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
+    *) gdb_cv_bigtoc=-bbigtoc ;;
+    esac
+
+    LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
+    AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
+  ])
+  CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
+  ;;
+esac
+
 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.
@@ -745,11 +778,10 @@ then
        case $w in
        -Werr*) WERROR_CFLAGS=-Werror ;;
        *) # Check that GCC accepts it
-           if $CC $w 2>&1 | grep 'unrecognized option' > /dev/null; then
-               :
-           else
-               WARN_CFLAGS="${WARN_CFLAGS} $w"
-           fi
+           saved_CFLAGS="$CFLAGS"
+           CFLAGS="$CFLAGS $w"
+           AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
+           CFLAGS="$saved_CFLAGS"
        esac
     done
     AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
@@ -941,6 +973,13 @@ configdir="unix"
 GDBTKLIBS=
 if test "${enable_gdbtk}" = "yes"; then
 
+    # Gdbtk must have an absolute path to srcdir in order to run
+    # properly when not installed.
+    here=`pwd`
+    cd ${srcdir}
+    GDBTK_SRC_DIR=`pwd`
+    cd $here
+
     CY_AC_PATH_TCLCONFIG
     if test -z "${no_tcl}"; then
        CY_AC_LOAD_TCLCONFIG
@@ -987,19 +1026,10 @@ if test "${enable_gdbtk}" = "yes"; then
 
           CY_AC_PATH_ITCLCONFIG
            if test -z "${no_itcl}"; then
-             CY_AC_LOAD_ITCLCONFIG
-            case "${host}" in
-            *-*-cygwin*)
-               itcldir=../itcl/itcl/win/
-               ;;
-            *)
-               itcldir=../itcl/itcl/unix/
-               ;;
-            esac
+             CY_AC_LOAD_ITCLCONFIG 
 
             ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
-            ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
+            ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
            fi
 
           
@@ -1008,17 +1038,8 @@ if test "${enable_gdbtk}" = "yes"; then
            if test -z "${no_itcl}"; then
              CY_AC_LOAD_ITKCONFIG
 
-            case "${host}" in
-              *-*-cygwin*)
-                itkdir=../itcl/itk/win/
-                ;;
-              *)
-                itkdir=../itcl/itk/unix/
-                ;;
-              esac 
-
             ITKLIB="${ITK_BUILD_LIB_SPEC}"
-            ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
+            ITK_DEPS="${ITK_LIB_FULL_PATH}"
            fi
 
           # now look for Tix library stuff
@@ -1080,6 +1101,7 @@ AC_SUBST(TIXLIB)
 AC_SUBST(TIX_DEPS)
 AC_SUBST(GDBTKLIBS)
 AC_SUBST(GDBTK_CFLAGS)
+AC_SUBST(GDBTK_SRC_DIR)
 
 AC_PATH_X
 
@@ -1200,7 +1222,14 @@ AC_SUBST(target_subdir)
 frags=
 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
 if test ! -f ${host_makefile_frag}; then
-AC_MSG_ERROR("*** Gdb does not support host ${host}")
+    # When building a native debuger the .mh file containing things
+    # like NATDEPFILES is needed.  Cross debuggers don't need .mh
+    # since it no longer contains anything useful.
+    if test "${target}" = "${host}"; then
+       AC_MSG_ERROR("*** Gdb does not support native target ${host}")
+    else
+       host_makefile_frag=/dev/null
+    fi
 fi
 frags="$frags $host_makefile_frag"
 
@@ -1227,16 +1256,12 @@ GDB_MULTI_ARCH=`sed -n '
 s/GDB_MULTI_ARCH[      ]*=[    ]*\([^  ]*\)[   ]*/\1/p
 ' ${target_makefile_frag}`
 
-# these really aren't orthogonal true/false values of the same condition,
-# but shells are slow enough that I like to reuse the test conditions
-# whenever possible
 if test "${target}" = "${host}"; then
+# We pick this up from the host configuration file (.mh) because we
+# do not have a native configuration Makefile fragment.
 nativefile=`sed -n '
 s/NAT_FILE[    ]*=[    ]*\([^  ]*\)/\1/p
 ' ${host_makefile_frag}`
-# else
-# GDBserver is only useful in a "native" environment
-# configdirs=`echo $configdirs | sed 's/gdbserver//'`
 fi
 changequote([,])
 
@@ -1267,12 +1292,23 @@ case "${GDB_MULTI_ARCH}" in
     *)  AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
 esac
 
-
 SUBDIRS="doc testsuite nlm"
 if test "${enable_multi_ice}" = "yes"; then
   SUBDIRS="${SUBDIRS} multi-ice"
 fi
 
+# ``gdbserver'' can only be built in a native configuration.
+if test x"${target}" = x"${host}"; then
+    AC_MSG_CHECKING(whether gdbserver is supported on this host)
+    if test x"${build_gdbserver}" = xyes ; then
+       configdirs="${configdirs} gdbserver"
+       SUBDIRS="${SUBDIRS} gdbserver"
+       AC_MSG_RESULT(yes)
+    else
+       AC_MSG_RESULT(no)
+    fi
+fi
+
 AC_SUBST(SUBDIRS)
 
 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
@@ -1329,8 +1365,11 @@ dnl Autoconf doesn't provide a mechanism for modifying definitions
 dnl provided by makefile fragments.
 dnl
 if test "${nativefile}" = ""; then
-sed -e '/^NATDEPFILES[[        ]]*=[[  ]]*/s//# NATDEPFILES=/' \
-       < Makefile > Makefile.tem
+        < Makefile \
+        sed -e '/^NATDEPFILES[[        ]]*=.*\\$/,/[[^\\]]$/s/^/# /' \
+            -e '/^NATDEPFILES[[        ]]*=/s/^/# /' \
+        | sed -e '/^\(NATDEPFILES[[    ]]*[[+]]=[[     ]]*\)/s//# \1/' \
+       > Makefile.tem
 mv -f Makefile.tem Makefile
 fi
 
This page took 0.027295 seconds and 4 git commands to generate.