> * gdb.texinfo (hbreak, watch): Fix typo, "date" -> "data".
[deliverable/binutils-gdb.git] / gdb / configure.in
index 4742f24a382e21895bf2821c861854f851e4dc9d..a2c3508b7cbb7e5dad4abf368716e67eafe155f1 100644 (file)
@@ -28,12 +28,17 @@ AC_AIX
 AC_MINIX
 AC_ISC_POSIX
 
+DLLTOOL=${DLLTOOL-dlltool}
+AC_SUBST(DLLTOOL)
+
 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
 AC_CANONICAL_SYSTEM
 
 dnl List of object files added by configure.
 
 CONFIG_OBS=
+CONFIG_DEPS=
+CONFIG_SRCS=
 
 configdirs="doc testsuite"
 
@@ -55,19 +60,21 @@ AC_PROG_AWK
 
 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 objlist.h)
 AC_HEADER_STAT
 
 AC_C_CONST
 
-AC_CHECK_FUNCS(setpgid sbrk select poll)
+AC_CHECK_FUNCS(setpgid sbrk select poll sigaction)
 
 # If we are configured native on 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
@@ -114,10 +121,14 @@ AC_MSG_CHECKING(for long long support in printf)
 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,
@@ -159,6 +170,25 @@ if test $gdb_cv_printf_has_long_double = yes; then
 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)
@@ -173,37 +203,49 @@ dnl Note that we only want this if we are both native (host == target), and
 dnl not doing a canadian cross build (build == host).
 
 if test ${build} = ${host} -a ${host} = ${target} ; then
-       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"
-                       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"
-                       AC_CHECK_LIB(dl, dlopen)
-                       if test "$GCC" = "yes" ; then
-                               CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Xlinker -export-dynamic"
-                       fi
-               else
-                       AC_MSG_RESULT(no)
-               fi
-               ;;
-       esac
-       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.
@@ -219,24 +261,40 @@ esac])
 
 if test "${enable_netrom}" = "yes"; then
        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)   CONFIG_OBS="${CONFIG_OBS} gmagic.o"
-       ENABLE_CFLAGS=-DGENERAL_MAGIC
-       ;;
-no)    ;;
-*)     AC_MSG_ERROR(bad value ${enableval} given for gm option) ;;
-esac])
-
-# end-sanitize-gm
+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,
@@ -268,14 +326,28 @@ case "$host" in
     esac
 ])
 
-case "${target}" in
-*-cygwin32)
-       configdir="win"
-       ;;
-*)
-       configdir="unix"
-       ;;
-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"
 
 if test "${enable_gdbtk}" = "yes"; then
 
@@ -290,16 +362,63 @@ if test "${enable_gdbtk}" = "yes"; then
           CY_AC_LOAD_TKCONFIG
           CY_AC_PATH_TCLH
           CY_AC_PATH_TKH
+          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
 
           # Include some libraries that Tcl and Tk want.
-          TCL_LIBS='$(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
+          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.
           LIBS="${LIBS} ${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
@@ -308,11 +427,32 @@ AC_SUBST(ENABLE_GDBTK)
 AC_SUBST(X_CFLAGS)
 AC_SUBST(X_LDFLAGS)
 AC_SUBST(X_LIBS)
+AC_SUBST(TIXLIB)
+AC_SUBST(TIX_DEPS)
 # 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
+# end-sanitize-sky
+
 AC_SUBST(ENABLE_CFLAGS)
 
 AC_SUBST(CONFIG_OBS)
+AC_SUBST(CONFIG_DEPS)
+AC_SUBST(CONFIG_SRCS)
 
 # Begin stuff to support --enable-shared
 AC_ARG_ENABLE(shared,
@@ -449,16 +589,24 @@ files="${files} config/nm-empty.h"
 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 .gdbinit:gdbinit.in,
 [
This page took 0.028814 seconds and 4 git commands to generate.