* Makefile.in (linuw_low_h): Move higher.
[binutils-gdb.git] / gdb / configure.ac
blobafc006d4e462044147d10532f1f7f1c741bc3bda
1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
3 dnl 2005, 2006, 2007, 2008, 2009
4 dnl Free Software Foundation, Inc.
5 dnl
6 dnl This file is part of GDB.
7 dnl 
8 dnl This program is free software; you can redistribute it and/or modify
9 dnl it under the terms of the GNU General Public License as published by
10 dnl the Free Software Foundation; either version 3 of the License, or
11 dnl (at your option) any later version.
12 dnl
13 dnl This program is distributed in the hope that it will be useful,
14 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 dnl GNU General Public License for more details.
17 dnl
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
21 dnl Process this file with autoconf to produce a configure script.
23 AC_PREREQ(2.59)dnl
24 AC_INIT(main.c)
25 AC_CONFIG_HEADER(config.h:config.in)
26 AM_MAINTAINER_MODE
28 AC_PROG_CC
29 AC_GNU_SOURCE
30 AC_AIX
31 AC_ISC_POSIX
32 gl_EARLY
33 AM_PROG_CC_STDC
35 AC_CONFIG_AUX_DIR(..)
36 AC_CANONICAL_SYSTEM
38 # Dependency checking.
39 ZW_CREATE_DEPDIR
40 ZW_PROG_COMPILER_DEPENDENCIES([CC])
42 # Check for the 'make' the user wants to use.
43 AC_CHECK_PROGS(MAKE, make)
44 MAKE_IS_GNU=
45 case "`$MAKE --version 2>&1 | sed 1q`" in
46   *GNU*)
47     MAKE_IS_GNU=yes
48     ;;
49 esac
50 AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes)
51 AC_PROG_MAKE_SET
53 dnl List of object files and targets accumulated by configure.
55 CONFIG_OBS=
56 CONFIG_DEPS=
57 CONFIG_SRCS=
58 ENABLE_CFLAGS=
60 CONFIG_ALL=
61 CONFIG_CLEAN=
62 CONFIG_INSTALL=
63 CONFIG_UNINSTALL=
65 dnl Set up for gettext.
66 ZW_GNU_GETTEXT_SISTER_DIR
68 localedir='${datadir}/locale'
69 AC_SUBST(localedir)
71 if test x"$USE_NLS" = xyes; then
72    CONFIG_ALL="$CONFIG_ALL all-po"
73    CONFIG_CLEAN="$CONFIG_CLEAN clean-po"                   
74    CONFIG_INSTALL="$CONFIG_INSTALL install-po"
75    CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
78 gl_INIT
80 # For Makefile dependencies.
81 GNULIB_STDINT_H=
82 if test x"$STDINT_H" != x; then
83   GNULIB_STDINT_H=gnulib/$STDINT_H
85 AC_SUBST(GNULIB_STDINT_H)
87 PACKAGE=gdb
88 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
89 AC_SUBST(PACKAGE)
91 # GDB does not use automake, but gnulib does.  This line lets us
92 # generate its Makefile.in.
93 AM_INIT_AUTOMAKE(gdb, UNUSED-VERSION, [no-define])
95 debugdir=${libdir}/debug
96          
97 AC_ARG_WITH(separate-debug-dir,
98 [  --with-separate-debug-dir=path   Look for global separate debug info in this path [LIBDIR/debug]],
99 [debugdir="${withval}"])
100         
101 AC_DEFINE_DIR(DEBUGDIR, debugdir,
102               [Global directory for separate debug files. ])
103 #AC_DEFINE_UNQUOTED(DEBUGDIR, "$debugdir"),
105 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
106   if test "x$prefix" = xNONE; then
107     test_prefix=/usr/local
108   else
109     test_prefix=$prefix
110   fi
111 else
112   test_prefix=$exec_prefix
114 case ${debugdir} in
115 "${test_prefix}"|"${test_prefix}/"*|\
116 '${exec_prefix}'|'${exec_prefix}/'*)
117   AC_DEFINE(DEBUGDIR_RELOCATABLE, 1, [Define if the debug directory should be relocated when GDB is moved.])
118   ;;
119 esac
121 AC_CONFIG_SUBDIRS(doc testsuite)
123 # Check whether to support alternative target configurations
124 AC_ARG_ENABLE(targets,
125 [  --enable-targets        alternative target configurations],
126 [case "${enableval}" in
127   yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
128             ;;
129   no)       enable_targets= ;;
130   *)        enable_targets=$enableval ;;
131 esac])
133 # Check whether to enable 64-bit support on 32-bit hosts
134 AC_ARG_ENABLE(64-bit-bfd,
135 [  --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)],
136 [case "${enableval}" in
137   yes)  want64=true  ;;
138   no)   want64=false ;;
139   *)    AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
140 esac],[want64=false])dnl
142 # Provide defaults for some variables set by the per-host and per-target
143 # configuration.
144 gdb_host_obs=posix-hdep.o
146 if test "${target}" = "${host}"; then
147   gdb_native=yes
148 else
149   gdb_native=no
152 . $srcdir/configure.host
154 # Accumulate some settings from configure.tgt over all enabled targets
156 TARGET_OBS=
157 all_targets=
159 for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
161   if test "$targ_alias" = "all"; then
162     all_targets=true
163   else
164     # Canonicalize the secondary target names.
165     result=`$ac_config_sub $targ_alias 2>/dev/null`
166     if test -n "$result"; then
167         targ=$result
168     else
169         targ=$targ_alias
170     fi
172     . ${srcdir}/configure.tgt
174     # Target-specific object files
175     for i in ${gdb_target_obs}; do
176         case " $TARGET_OBS " in
177         *" ${i} "*) ;;
178         *)
179           TARGET_OBS="$TARGET_OBS ${i}"
180           ;;
181         esac
182     done
184     # Check whether this target needs 64-bit CORE_ADDR
185     if test x${want64} = xfalse; then
186       . ${srcdir}/../bfd/config.bfd
187     fi
188   fi
189 done
191 if test x${all_targets} = xtrue; then
193   # We want all 64-bit targets if we either:
194   #  - run on a 64-bit host  or
195   #  - already require 64-bit support for some other target  or
196   #  - the --enable-64-bit-bfd option was supplied
197   # Otherwise we only support all 32-bit targets.
198   #
199   # NOTE: This test must be in sync with the corresponding
200   #       tests in BFD!
202   if test x${want64} = xfalse; then
203     AC_CHECK_SIZEOF(long)
204     if test "x${ac_cv_sizeof_long}" = "x8"; then
205       want64=true
206     fi
207   fi
208   if test x${want64} = xtrue; then
209     TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
210   else
211     TARGET_OBS='$(ALL_TARGET_OBS)'
212   fi
215 AC_SUBST(TARGET_OBS)
217 # For other settings, only the main target counts.
218 gdb_sim=
219 gdb_osabi=
220 build_gdbserver=
221 targ=$target; . ${srcdir}/configure.tgt
223 # Fetch the default architecture and default target vector from BFD.
224 targ=$target; . $srcdir/../bfd/config.bfd
226 # We only want the first architecture, so strip off the others if
227 # there is more than one.
228 targ_archs=`echo $targ_archs | sed 's/ .*//'`
230 if test "x$targ_archs" != x; then
231   AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
232     [Define to BFD's default architecture. ])
234 if test "x$targ_defvec" != x; then
235   AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
236     [Define to BFD's default target vector. ])
239 # The CLI cannot be disabled yet, but may be in the future.
241 # Enable CLI.
242 AC_ARG_ENABLE(gdbcli,
243 [  --disable-gdbcli        disable command-line interface (CLI)],
244   [case $enableval in
245     yes)
246       ;;
247     no)
248       AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
249     *)
250       AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
251   esac],
252   [enable_gdbcli=yes])
253 if test x"$enable_gdbcli" = xyes; then
254   if test -d $srcdir/cli; then
255     CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
256     CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
257     CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
258     ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
259   fi
262 # Enable MI.
263 AC_ARG_ENABLE(gdbmi,
264 [  --disable-gdbmi         disable machine-interface (MI)],
265   [case $enableval in
266     yes | no)
267       ;;
268     *)
269       AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
270   esac],
271   [enable_gdbmi=yes])
272 if test x"$enable_gdbmi" = xyes; then
273   if test -d $srcdir/mi; then
274     CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
275     CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
276     CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
277     ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
278   fi
281 # Enable TUI.
282 AC_ARG_ENABLE(tui,
283 [  --enable-tui            enable full-screen terminal user interface (TUI)],
284   [case $enableval in
285     yes | no | auto)
286       ;;
287     *)
288       AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
289   esac],enable_tui=auto)
291 # Enable gdbtk.
292 AC_ARG_ENABLE(gdbtk,
293 [  --enable-gdbtk          enable gdbtk graphical user interface (GUI)],
294   [case $enableval in
295     yes | no)
296       ;;
297     *)
298       AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
299   esac],
300   [if test -d $srcdir/gdbtk; then
301     enable_gdbtk=yes
302   else
303     enable_gdbtk=no
304   fi])
305 # We unconditionally disable gdbtk tests on selected platforms.
306 case $host_os in
307   go32* | windows*)
308     AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
309     enable_gdbtk=no ;;
310 esac
312 # Libunwind support.
313 AC_ARG_WITH(libunwind,
314 [  --with-libunwind            Use libunwind frame unwinding support],
315 [case "${withval}" in
316   yes)  enable_libunwind=yes ;;
317   no)   enable_libunwind=no ;;
318   *)    AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
319 esac],[
320   AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
321   if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
322     enable_libunwind=yes;
323   fi
325    
326 if test x"$enable_libunwind" = xyes; then
327   AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
328   AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.])
329   CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
330   CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
331   CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
334 # Profiling support.
335 AC_ARG_ENABLE(profiling,
336 [  --enable-profiling      enable profiling of GDB],
337   [case $enableval in
338     yes | no)
339       ;;
340     *)
341       AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
342   esac],
343  [enable_profiling=no])
345 AC_CHECK_FUNCS(monstartup _mcleanup)
346 AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
347 [AC_TRY_LINK(
348 [#include <stdlib.h>
349 extern char _etext;
351 [free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
352 if test $ac_cv_var__etext = yes; then
353   AC_DEFINE(HAVE__ETEXT, 1,
354             [Define to 1 if your system has the _etext variable. ])
356 AC_CACHE_CHECK([for etext], ac_cv_var_etext,
357 [AC_TRY_LINK(
358 [#include <stdlib.h>
359 extern char etext;
361 [free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)])
362 if test $ac_cv_var_etext = yes; then
363   AC_DEFINE(HAVE_ETEXT, 1,
364             [Define to 1 if your system has the etext variable. ])
366 if test "$enable_profiling" = yes ; then
367   if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
368     AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
369   fi
370   PROFILE_CFLAGS=-pg
371   OLD_CFLAGS="$CFLAGS"
372   CFLAGS="$CFLAGS $PROFILE_CFLAGS"
374   AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
375     [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
376      ac_cv_cc_supports_pg=no)])
378   if test $ac_cv_cc_supports_pg = no; then
379     AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
380   fi
382   CFLAGS="$OLD_CFLAGS"
385 ACX_PKGVERSION([GDB])
386 ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
387 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
388 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
390 # --------------------- #
391 # Checks for programs.  #
392 # --------------------- #
394 AC_PROG_AWK
395 AC_PROG_INSTALL
396 AC_PROG_LN_S
397 AC_PROG_RANLIB
398 AC_PROG_YACC
400 AC_CHECK_TOOL(AR, ar)
401 AC_CHECK_TOOL(DLLTOOL, dlltool)
402 AC_CHECK_TOOL(WINDRES, windres)
404 # Needed for GNU/Hurd.
405 AC_CHECK_TOOL(MIG, mig)
407 # ---------------------- #
408 # Checks for libraries.  #
409 # ---------------------- #
411 # We might need to link with -lm; most simulators need it.
412 AC_CHECK_LIB(m, main)
414 # We need to link with -lw to get `wctype' on Solaris before Solaris
415 # 2.6.  Solaris 2.6 and beyond have this function in libc, and have a
416 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
417 # is known to have this problem).  Therefore we avoid libw if we can.
418 AC_CHECK_FUNC(wctype, [],
419   [AC_CHECK_LIB(w, wctype)])
421 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
422 AC_SEARCH_LIBS(gethostbyname, nsl)
424 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
425 AC_SEARCH_LIBS(socketpair, socket)
427 # Link in zlib if we can.  This allows us to read compressed debug sections.
428 AC_SEARCH_LIBS(zlibVersion, z, [AC_CHECK_HEADERS(zlib.h)])
430 # On HP/UX we may need libxpdl for dlgetmodinfo (used by solib-pa64.c).
431 AC_SEARCH_LIBS(dlgetmodinfo, [dl xpdl])
433 AM_ICONV
435 # On alpha-osf, it appears that libtermcap and libcurses are not compatible.
436 # There is a very specific comment in /usr/include/curses.h explaining that
437 # termcap routines built into libcurses must not be used.
439 # The symptoms we observed so far is GDB unexpectedly changing
440 # the terminal settings when tgetent is called - this is particularly
441 # visible as the output is missing carriage returns, and so rapidly
442 # becomes very hard to read.
444 # The readline configure script has already decided that libtermcap
445 # was enough for its purposes, and so decided to build readline using
446 # libtermcap.  Since the TUI mode requires curses, building GDB with
447 # TUI enabled results in both libraries to be used at the same time,
448 # which is not allowed.  This basically means that GDB with TUI is
449 # broken on alpha-osf.
451 case $host_os in
452   alpha*-*-osf* )
453     if "$enable_tui" = "yes"; then
454       AC_MSG_ERROR([Building GDB with TUI mode is not supported on this host])
455     fi
456     if "$enable_tui" = "auto"; then
457       enable_tui=no
458     fi
459     ;;
460 esac
462 # Check whether we should enable the TUI, but only do so if we really
463 # can.
464 if test x"$enable_tui" != xno; then
465   if test -d $srcdir/tui; then
466     # For the TUI, we need enhanced curses functionality.
467     #
468     # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
469     # curses library because the latter might not provide all the
470     # functionality we need.  However, this leads to problems on systems
471     # where the linker searches /usr/local/lib, but the compiler doesn't
472     # search /usr/local/include, if ncurses is installed in /usr/local.  A
473     # default installation of ncurses on alpha*-dec-osf* will lead to such
474     # a situation.
475     AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
477     if test "$ac_cv_search_waddstr" != no; then
478       CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
479       CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
480       CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
481       ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
482       CONFIG_ALL="${CONFIG_ALL} all-tui"
483       CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui"
484       CONFIG_INSTALL="${CONFIG_INSTALL} install-tui"
485       CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui"
486     else
487       if test x"$enable_tui" = xyes; then
488         AC_MSG_ERROR([no enhanced curses library found; disable TUI])
489       else
490         AC_MSG_WARN([no enhanced curses library found; disabling TUI])
491       fi
492     fi
493   fi
496 # Since GDB uses Readline, we need termcap functionality.  In many
497 # cases this will be provided by the curses library, but some systems
498 # have a seperate termcap library, or no curses library at all.
500 case $host_os in
501   cygwin*)
502     if test -d $srcdir/libtermcap; then
503       LIBS="../libtermcap/libtermcap.a $LIBS"
504       ac_cv_search_tgetent="../libtermcap/libtermcap.a"
505     fi ;;
506   go32* | *djgpp*)
507     ac_cv_search_tgetent="none required"
508     ;;
509   *mingw32*)     
510     ac_cv_search_tgetent="none required"
511     CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
512     ;;
513 esac
515 # These are the libraries checked by Readline.
516 AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
518 if test "$ac_cv_search_tgetent" = no; then
519   AC_MSG_ERROR([no termcap library found])
522 AC_ARG_WITH([system-readline],
523   [AS_HELP_STRING([--with-system-readline],
524                   [use installed readline library])])
526 if test "$with_system_readline" = yes; then
527   READLINE=-lreadline
528   READLINE_DEPS=
529   READLINE_CFLAGS=
530 else
531   READLINE='$(READLINE_DIR)/libreadline.a'
532   READLINE_DEPS='$(READLINE)'
533   READLINE_CFLAGS='-I$(READLINE_SRC)/..'
535 AC_SUBST(READLINE)
536 AC_SUBST(READLINE_DEPS)
537 AC_SUBST(READLINE_CFLAGS)
539 AC_ARG_WITH(expat,
540   AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
541   [], [with_expat=auto])
542 AC_MSG_CHECKING([whether to use expat])
543 AC_MSG_RESULT([$with_expat])
545 if test "${with_expat}" = no; then
546   AC_MSG_WARN([expat support disabled; some features may be unavailable.])
547   HAVE_LIBEXPAT=no
548 else
549   AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
550                         [XML_Parser p = XML_ParserCreate (0);])
551   if test "$HAVE_LIBEXPAT" != yes; then
552     if test "$with_expat" = yes; then
553       AC_MSG_ERROR([expat is missing or unusable])
554     else
555       AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
556     fi
557   else
558     save_LIBS=$LIBS
559     LIBS="$LIBS $LIBEXPAT"
560     AC_CHECK_FUNCS(XML_StopParser)
561     LIBS=$save_LIBS
562   fi
565 dnl Utility to simplify finding libpython.
566 AC_DEFUN([AC_TRY_LIBPYTHON],
568   version=$1
569   define([have_libpython_var],$2)
570   define([VERSION],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
571                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
572   [HAVE_LIB]VERSION=no
573   AC_MSG_CHECKING([for ${version}])
574   save_LIBS=$LIBS
575   LIBS="$LIBS -l${version}"
576   AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "${version}/Python.h"]],
577                                  [[Py_Initialize ();]]),
578                  [[HAVE_LIB]VERSION=yes
579                   have_libpython_var=yes],
580                  [LIBS=$save_LIBS])
581   AC_MSG_RESULT([$[HAVE_LIB]VERSION])
584 AC_ARG_WITH(python,
585   AS_HELP_STRING([--with-python], [include python support (auto/yes/no/<path>)]),
586   [], [with_python=auto])
587 AC_MSG_CHECKING([whether to use python])
588 AC_MSG_RESULT([$with_python])
590 if test "${with_python}" = no; then
591   AC_MSG_WARN([python support disabled; some features may be unavailable.])
592   have_libpython=no
593 else
594   case "${with_python}" in
595   yes | auto)
596     # Leave as empty, use defaults.
597     python_includes=
598     python_libs=
599     ;;
600   /*)
601     python_includes="-I${with_python}/include"
602     python_libs="-L${with_python}/lib"
603     ;;
604   *)
605     AC_ERROR(invalid value for --with-python)
606     ;;
607   esac
609   save_CPPFLAGS=$CPPFLAGS
610   CPPFLAGS="$CPPFLAGS ${python_includes}"
611   save_LIBS=$LIBS
612   LIBS="$LIBS ${python_libs}"
613   have_libpython=no
614   if test "${have_libpython}" = no; then
615     AC_TRY_LIBPYTHON(python2.6, have_libpython)
616     if test "${HAVE_LIBPYTHON2_6}" = yes; then
617       AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.])
618     fi
619   fi
620   if test ${have_libpython} = no; then
621     AC_TRY_LIBPYTHON(python2.5, have_libpython)
622     if test "${HAVE_LIBPYTHON2_5}" = yes; then
623       AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.])
624     fi
625   fi
626   if test ${have_libpython} = no; then
627     AC_TRY_LIBPYTHON(python2.4, have_libpython)
628     if test "${HAVE_LIBPYTHON2_4}" = yes; then
629       AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.])
630     fi
631   fi
632   if test ${have_libpython} = no; then
633     case "${with_python}" in
634     yes)
635       AC_MSG_ERROR([python is missing or unusable])
636       ;;
637     auto)
638       AC_MSG_WARN([python is missing or unusable; some features may be unavailable.])
639       ;;
640     *)
641       AC_MSG_ERROR([no usable python found at ${with_python}])
642       ;;
643     esac
644     CPPFLAGS=$save_CPPFLAGS
645     LIBS=$save_LIBS
646   fi
649 if test "${have_libpython}" = yes; then
650   AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.])
651   CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
652   CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
653   CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
654   ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
656   # Flags needed to compile Python code (taken from python-config --cflags).
657   # We cannot call python-config directly because it will output whatever was
658   # used when compiling the Python interpreter itself, including flags which
659   # would make the python-related objects be compiled differently from the
660   # rest of GDB (e.g., -O2 and -fPIC).
661   if test "${GCC}" = yes; then
662     tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv"
663   fi
665   if test "x${tentative_python_cflags}" != x; then
666     AC_MSG_CHECKING(compiler flags for python code)
667     for flag in ${tentative_python_cflags}; do
668       # Check that the compiler accepts it
669       saved_CFLAGS="$CFLAGS"
670       CFLAGS="$CFLAGS $flag"
671       AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",)
672       CFLAGS="$saved_CFLAGS"
673     done
674     AC_MSG_RESULT(${PYTHON_CFLAGS})
675   fi
676 else
677   # Even if Python support is not compiled in, we need to have these files
678   # included in order to recognize the GDB command "python".
679   CONFIG_OBS="$CONFIG_OBS python.o python-value.o"
680   CONFIG_SRCS="$CONFIG_SRCS python/python.c python/python-value.c"
682 AC_SUBST(PYTHON_CFLAGS)
684 # ------------------------- #
685 # Checks for header files.  #
686 # ------------------------- #
688 AC_HEADER_DIRENT
689 AC_HEADER_STAT
690 AC_HEADER_STDC
691 # elf_hp.h is for HP/UX 64-bit shared library support.
692 # FIXME: kettenis/20030102: In most cases we include these (ctype.h, time.h)
693 # unconditionally, so what's the point in checking these?
694 AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
695                   thread_db.h gnu/libc-version.h signal.h stddef.h \
696                   stdlib.h string.h memory.h strings.h sys/fault.h \
697                   sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
698                   sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
699                   sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \
700                   sys/types.h sys/wait.h wait.h termios.h termio.h \
701                   sgtty.h unistd.h elf_hp.h ctype.h time.h locale.h])
702 AC_CHECK_HEADERS(link.h, [], [],
703 [#if HAVE_SYS_TYPES_H
704 # include <sys/types.h>
705 #endif
706 #if HAVE_NLIST_H
707 # include <nlist.h>
708 #endif
710 AC_CHECK_HEADERS(sys/proc.h, [], [],
711 [#if HAVE_SYS_PARAM_H
712 # include <sys/param.h>
713 #endif
715 AC_CHECK_HEADERS(sys/user.h, [], [],
716 [#if HAVE_SYS_PARAM_H
717 # include <sys/param.h>
718 #endif
721 # On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
722 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
723 # think that we don't have <curses.h> if we're using GCC.
724 case $host_os in
725   solaris2.[[789]])
726     if test "$GCC" = yes; then
727       AC_DEFINE(_MSE_INT_H, 1,
728         [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
729    Solaris 2.[789] when using GCC. ])
730     fi ;;
731 esac
732 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
733 AC_CHECK_HEADERS(term.h, [], [],
734 [#if HAVE_CURSES_H
735 # include <curses.h>
736 #endif
739 # ------------------------- #
740 # Checks for declarations.  #
741 # ------------------------- #
743 AC_CHECK_DECLS([free, malloc, realloc, strerror, strstr, getopt,
744                 snprintf, vsnprintf])
745 AM_LC_MESSAGES
747 # ----------------------- #
748 # Checks for structures.  #
749 # ----------------------- #
751 AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize])
753 # ------------------ #
754 # Checks for types.  #
755 # ------------------ #
757 AC_TYPE_SIGNAL
758 AC_CHECK_TYPES(socklen_t, [], [],
759 [#include <sys/types.h>
760 #include <sys/socket.h>
763 # ------------------------------------- #
764 # Checks for compiler characteristics.  #
765 # ------------------------------------- #
767 AC_C_CONST
768 AC_C_INLINE
769 AC_C_BIGENDIAN
771 # ------------------------------ #
772 # Checks for library functions.  #
773 # ------------------------------ #
775 AC_FUNC_ALLOCA
776 AC_FUNC_MMAP
777 AC_FUNC_VFORK
778 AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid \
779                 getgid poll pread64 sbrk setpgid setpgrp setsid \
780                 sigaction sigprocmask sigsetmask socketpair syscall \
781                 ttrace wborder setlocale iconvlist])
782 AM_LANGINFO_CODESET
784 # Check the return and argument types of ptrace.  No canned test for
785 # this, so roll our own.
786 gdb_ptrace_headers='
787 #if HAVE_SYS_TYPES_H
788 # include <sys/types.h>
789 #endif
790 #if HAVE_SYS_PTRACE_H
791 # include <sys/ptrace.h>
792 #endif
793 #if HAVE_UNISTD_H
794 # include <unistd.h>
795 #endif
797 # There is no point in checking if we don't have a prototype.
798 AC_CHECK_DECLS(ptrace, [], [
799   : ${gdb_cv_func_ptrace_ret='int'}
800   : ${gdb_cv_func_ptrace_args='int,int,long,long'}
801 ], $gdb_ptrace_headers)
802 # Check return type.  Varargs (used on GNU/Linux) conflict with the
803 # empty argument list, so check for that explicitly.
804 AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
805   AC_TRY_COMPILE($gdb_ptrace_headers,
806     [extern long ptrace (enum __ptrace_request, ...);],
807     gdb_cv_func_ptrace_ret='long',
808     AC_TRY_COMPILE($gdb_ptrace_headers,
809       [extern int ptrace ();],
810       gdb_cv_func_ptrace_ret='int',
811       gdb_cv_func_ptrace_ret='long')))
812 AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
813   [Define as the return type of ptrace.])
814 # Check argument types.
815 AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
816   AC_TRY_COMPILE($gdb_ptrace_headers,
817     [extern long ptrace (enum __ptrace_request, ...);],
818     [gdb_cv_func_ptrace_args='int,int,long,long'],[
819 for gdb_arg1 in 'int' 'long'; do
820  for gdb_arg2 in 'pid_t' 'int' 'long'; do
821   for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do
822    for gdb_arg4 in 'int' 'long'; do
823      AC_TRY_COMPILE($gdb_ptrace_headers, [
824 extern $gdb_cv_func_ptrace_ret
825   ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
826 ], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
827     break 4;])
828     for gdb_arg5 in 'int *' 'int' 'long'; do
829      AC_TRY_COMPILE($gdb_ptrace_headers, [
830 extern $gdb_cv_func_ptrace_ret
831   ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
832 ], [
833 gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
834     break 5;])
835     done
836    done
837   done
838  done
839 done
840 # Provide a safe default value.
841 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
842 ])])
843 ac_save_IFS=$IFS; IFS=','
844 set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
845 IFS=$ac_save_IFS
846 shift
847 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
848   [Define to the type of arg 3 for ptrace.])
849 if test -n "$[5]"; then
850   AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
851     [Define to the type of arg 5 for ptrace.])
854 dnl AC_FUNC_SETPGRP does not work when cross compiling
855 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
856 if test "$cross_compiling" = no; then
857   AC_FUNC_SETPGRP
858 else
859   AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
860     [AC_TRY_COMPILE([
861 #include <unistd.h>
862 ], [
863   if (setpgrp(1,1) == -1)
864     exit (0);
865   else
866     exit (1);
867 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
868 if test $ac_cv_func_setpgrp_void = yes; then
869   AC_DEFINE(SETPGRP_VOID, 1)
873 # Check if sigsetjmp is available.  Using AC_CHECK_FUNCS won't do
874 # since sigsetjmp might only be defined as a macro.
875 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
876 [AC_TRY_COMPILE([
877 #include <setjmp.h>
878 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
879 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
880 if test $gdb_cv_func_sigsetjmp = yes; then
881   AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
884 # Assume we'll default to using the included libiberty regex.
885 gdb_use_included_regex=yes
887 # However, if the system regex is GNU regex, then default to *not*
888 # using the included regex.
889 AC_CACHE_CHECK(
890   [for GNU regex],
891   [gdb_cv_have_gnu_regex],
892   [AC_TRY_COMPILE(
893     [#include <gnu-versions.h>],
894     [#define REGEX_INTERFACE_VERSION 1
895 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
896 # error "Version mismatch"
897 #endif],
898     gdb_cv_have_gnu_regex=yes,
899     gdb_cv_have_gnu_regex=no)])
900 if test $gdb_cv_have_gnu_regex = yes; then
901   gdb_use_included_regex=no
904 AC_ARG_WITH(included-regex,
905   [  --without-included-regex don't use included regex; this is the default
906                           on systems with version 2 of the GNU C library
907                           (use with caution on other system)],
908   gdb_with_regex=$withval,
909   gdb_with_regex=$gdb_use_included_regex)
910 if test "$gdb_with_regex" = yes; then
911   AC_DEFINE(USE_INCLUDED_REGEX, 1,
912     [Define to 1 if the regex included in libiberty should be used.])
915 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
916 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
917 [#include <sys/param.h>
918 #include <sys/proc.h>
921 # See if <sys/lwp.h> defines `struct lwp`.
922 AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
923 [AC_TRY_COMPILE([#include <sys/param.h>
924 #include <sys/lwp.h>], [struct lwp l;],
925 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
926 if test $gdb_cv_struct_lwp = yes; then
927   AC_DEFINE(HAVE_STRUCT_LWP, 1,
928             [Define to 1 if your system has struct lwp.])
931 # See if <machine/reg.h> degines `struct reg'.
932 AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
933 [AC_TRY_COMPILE([#include <sys/types.h>
934 #include <machine/reg.h>], [struct reg r;],
935 gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
936 if test $gdb_cv_struct_reg = yes; then
937   AC_DEFINE(HAVE_STRUCT_REG, 1,
938             [Define to 1 if your system has struct reg in <machine/reg.h>.])
941 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
942 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
943 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
944                  [#include <machine/reg.h>])
946 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
947 AC_MSG_CHECKING(for PTRACE_GETREGS)
948 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
949 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
950                 [PTRACE_GETREGS;],
951                 [gdb_cv_have_ptrace_getregs=yes],
952                 [gdb_cv_have_ptrace_getregs=no])])
953 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
954 if test $gdb_cv_have_ptrace_getregs = yes; then
955   AC_DEFINE(HAVE_PTRACE_GETREGS, 1, 
956   [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
959 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
960 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
961 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
962 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
963                 [PTRACE_GETFPXREGS;],
964                 [gdb_cv_have_ptrace_getfpxregs=yes],
965                 [gdb_cv_have_ptrace_getfpxregs=no])])
966 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
967 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
968   AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
969   [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
972 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
973 AC_MSG_CHECKING(for PT_GETDBREGS)
974 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
975 [AC_TRY_COMPILE([#include <sys/types.h>
976 #include <sys/ptrace.h>],
977                 [PT_GETDBREGS;],
978                 [gdb_cv_have_pt_getdbregs=yes],
979                 [gdb_cv_have_pt_getdbregs=no])])
980 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
981 if test $gdb_cv_have_pt_getdbregs = yes; then
982   AC_DEFINE(HAVE_PT_GETDBREGS, 1,
983   [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
986 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
987 AC_MSG_CHECKING(for PT_GETXMMREGS)
988 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
989 [AC_TRY_COMPILE([#include <sys/types.h>
990 #include <sys/ptrace.h>],
991                 [PT_GETXMMREGS;],
992                 [gdb_cv_have_pt_getxmmregs=yes],
993                 [gdb_cv_have_pt_getxmmregs=no])])
994 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
995 if test $gdb_cv_have_pt_getxmmregs = yes; then
996   AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
997   [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
1000 # Detect which type of /proc is in use, such as for Unixware or Solaris.
1002 if test "${target}" = "${host}"; then
1003   case "${host}" in
1004   *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
1005       AC_DEFINE(NEW_PROC_API, 1,
1006       [Define if you want to use new multi-fd /proc interface
1007        (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
1008       ;;
1009   *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
1010       AC_DEFINE(NEW_PROC_API, 1,
1011       [Define if you want to use new multi-fd /proc interface
1012        (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
1013       ;;
1014   mips-sgi-irix5*)
1015       # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
1016       AC_DEFINE([_KMEMUSER], 1,
1017       [Define to 1 so <sys/proc.h> gets a definition of anon_hdl.  Works
1018        around a <sys/proc.h> problem on IRIX 5.])
1019       ;;
1020   esac
1023 if test "$ac_cv_header_sys_procfs_h" = yes; then
1024   BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
1025   BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
1026   BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
1027   BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
1028   BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
1029   BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
1030   BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
1031   BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
1032   BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
1033   BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
1034   BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
1035   BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
1036   BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
1037   BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
1040   dnl Check for broken prfpregset_t type
1042   dnl For Linux/i386, glibc 2.1.3 was released with a bogus
1043   dnl prfpregset_t type (it's a typedef for the pointer to a struct
1044   dnl instead of the struct itself).  We detect this here, and work
1045   dnl around it in gdb_proc_service.h.
1047   if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
1048     AC_MSG_CHECKING(whether prfpregset_t type is broken)
1049     AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
1050       [AC_TRY_RUN([#include <sys/procfs.h>
1051        int main ()
1052        {
1053          if (sizeof (prfpregset_t) == sizeof (void *))
1054            return 1;
1055          return 0;
1056        }],
1057        gdb_cv_prfpregset_t_broken=no,
1058        gdb_cv_prfpregset_t_broken=yes,
1059        gdb_cv_prfpregset_t_broken=yes)])
1060     AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
1061     if test $gdb_cv_prfpregset_t_broken = yes; then
1062       AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
1063       [Define if the prfpregset_t type is broken.])
1064     fi
1065   fi
1067   dnl Check for PIOCSET ioctl entry 
1069   AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
1070   AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
1071   [AC_TRY_COMPILE([#include <unistd.h>
1072 #include <sys/types.h>
1073 #include <sys/procfs.h>
1074 ], [
1075     int dummy;;
1076     dummy = ioctl(0, PIOCSET, &dummy);
1077   ],
1078   gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
1079   AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
1080   if test $gdb_cv_have_procfs_piocset = yes; then
1081     AC_DEFINE(HAVE_PROCFS_PIOCSET, 1,
1082     [Define if ioctl argument PIOCSET is available.])
1083   fi
1086 dnl For native ports (host == target), check to see what kind of
1087 dnl legacy link.h support is needed.  (See solib-legacy.c.)
1088 if test ${host} = ${target} ; then
1089   dnl Check for struct link_map with l_ members which are indicative
1090   dnl of SVR4-like shared libraries
1092   AC_MSG_CHECKING(for member l_addr in struct link_map)
1093   AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
1094     [AC_TRY_COMPILE([#include <link.h>],
1095                     [struct link_map lm; (void) lm.l_addr;],
1096                     gdb_cv_have_struct_link_map_with_l_members=yes,
1097                     gdb_cv_have_struct_link_map_with_l_members=no)])
1098   AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
1099   if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
1100     AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS,1,
1101     [Define if <link.h> exists and defines struct link_map which has
1102      members with an ``l_'' prefix.  (For Solaris, SVR4, and
1103      SVR4-like systems.)])
1104   fi
1106   dnl Check for struct link_map with lm_ members which are indicative
1107   dnl of SunOS-like shared libraries
1109   AC_MSG_CHECKING(for member lm_addr in struct link_map)
1110   AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
1111     [AC_TRY_COMPILE([#include <sys/types.h>
1112 #include <link.h>],
1113                     [struct link_map lm; (void) lm.lm_addr;],
1114                     gdb_cv_have_struct_link_map_with_lm_members=yes,
1115                     gdb_cv_have_struct_link_map_with_lm_members=no)])
1116   AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
1117   if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
1118     AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS, 1,
1119     [Define if <link.h> exists and defines struct link_map which has
1120      members with an ``lm_'' prefix.  (For SunOS.)])
1121   fi
1123   dnl Check for struct so_map with som_ members which are found on 
1124   dnl some *BSD systems.
1126   AC_MSG_CHECKING(for member som_addr in struct so_map)
1127   AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
1128     [AC_TRY_COMPILE([#include <sys/types.h>
1129 #ifdef HAVE_NLIST_H
1130 #include <nlist.h>
1131 #endif
1132 #include <link.h>],
1133                     [struct so_map lm; (void) lm.som_addr;],
1134                     gdb_cv_have_struct_so_map_with_som_members=yes,
1135                     gdb_cv_have_struct_so_map_with_som_members=no)])
1136   AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
1137   if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
1138     AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS, 1,
1139     [Define if <link.h> exists and defines a struct so_map which has
1140      members with an ``som_'' prefix.  (Found on older *BSD systems.)])
1141   fi
1143   dnl Check for struct link_map32 type, which allows a 64-bit Solaris
1144   dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
1146   AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
1147   AC_CACHE_VAL(gdb_cv_have_struct_link_map32, 
1148     [AC_TRY_COMPILE([#define _SYSCALL32
1149 #include <sys/link.h>], [struct link_map32 l;],
1150      gdb_cv_have_struct_link_map32=yes,
1151      gdb_cv_have_struct_link_map32=no)])
1152   AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
1153   if test $gdb_cv_have_struct_link_map32 = yes; then
1154     AC_DEFINE(HAVE_STRUCT_LINK_MAP32, 1,
1155     [Define if <sys/link.h> has struct link_map32])
1156     AC_DEFINE(_SYSCALL32, 1,
1157     [Define if <sys/link.h> has link_map32 (solaris sparc-64 target)])
1158   fi
1161 # Check if the compiler supports the `long long' type.
1163 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
1164                [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1165 [[extern long long foo;]],
1166 [[switch (foo & 2) { case 0: return 1; }]])],
1167                                   gdb_cv_c_long_long=yes,
1168                                   gdb_cv_c_long_long=no)])
1169 if test $gdb_cv_c_long_long = yes; then
1170   AC_DEFINE(CC_HAS_LONG_LONG, 1,
1171             [Define to 1 if the compiler supports long long.])
1174 # Check if the compiler and runtime support printing long longs.
1176 AC_CACHE_CHECK([for long long support in printf],
1177                gdb_cv_printf_has_long_long,
1178                [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1179 [[char buf[32];
1180   long long l = 0;
1181   l = (l << 16) + 0x0123;
1182   l = (l << 16) + 0x4567;
1183   l = (l << 16) + 0x89ab;
1184   l = (l << 16) + 0xcdef;
1185   sprintf (buf, "0x%016llx", l);
1186   return (strcmp ("0x0123456789abcdef", buf));]])],
1187                               gdb_cv_printf_has_long_long=yes,
1188                               gdb_cv_printf_has_long_long=no,
1189                               gdb_cv_printf_has_long_long=no)])
1190 if test $gdb_cv_printf_has_long_long = yes; then
1191   AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
1192             [Define to 1 if the "%ll" format works to print long longs.])
1195 # Check if the compiler and runtime support printing decfloats.
1197 AC_CACHE_CHECK([for decfloat support in printf],
1198                gdb_cv_printf_has_decfloat,
1199                [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1200 [[char buf[64];
1201   _Decimal32 d32 = 1.2345df;
1202   _Decimal64 d64 = 1.2345dd;
1203   _Decimal128 d128 = 1.2345dl;
1204   sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
1205   return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
1206                               gdb_cv_printf_has_decfloat=yes,
1207                               gdb_cv_printf_has_decfloat=no,
1208                               gdb_cv_printf_has_decfloat=no)])
1209 if test $gdb_cv_printf_has_decfloat = yes; then
1210   AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
1211             [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
1214 # Check if the compiler supports the `long double' type.  We can't use
1215 # AC_C_LONG_DOUBLE because that one does additional checks on the
1216 # constants defined in <float.h> that fail on some systems,
1217 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
1219 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
1220                [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
1221                                   gdb_cv_c_long_double=yes,
1222                                   gdb_cv_c_long_double=no)])
1223 if test $gdb_cv_c_long_double = yes; then
1224   AC_DEFINE(HAVE_LONG_DOUBLE, 1,
1225            [Define to 1 if the compiler supports long double.])
1228 # Check if the compiler and runtime support printing long doubles.
1230 AC_CACHE_CHECK([for long double support in printf],
1231                gdb_cv_printf_has_long_double,
1232                [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1233 [[char buf[16];
1234   long double f = 3.141592653;
1235   sprintf (buf, "%Lg", f);
1236   return (strncmp ("3.14159", buf, 7));]])],
1237                               gdb_cv_printf_has_long_double=yes,
1238                               gdb_cv_printf_has_long_double=no,
1239                               gdb_cv_printf_has_long_double=no)])
1240 if test $gdb_cv_printf_has_long_double = yes; then
1241   AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1242             [Define to 1 if the "%Lg" format works to print long doubles.])
1245 # Check if the compiler and runtime support scanning long doubles.
1247 AC_CACHE_CHECK([for long double support in scanf], 
1248                gdb_cv_scanf_has_long_double,
1249                [AC_RUN_IFELSE([AC_LANG_PROGRAM(
1250 [[#include <stdio.h>]],
1251 [[char *buf = "3.141592653";
1252   long double f = 0;
1253   sscanf (buf, "%Lg", &f);
1254   return !(f > 3.14159 && f < 3.14160);]])],
1255                               gdb_cv_scanf_has_long_double=yes,
1256                               gdb_cv_scanf_has_long_double=no,
1257                               gdb_cv_scanf_has_long_double=no)])
1258 if test $gdb_cv_scanf_has_long_double = yes; then
1259   AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1260             [Define to 1 if the "%Lg" format works to scan long doubles.])
1263 case ${host_os} in
1264 aix*)
1265   AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1266     SAVE_LDFLAGS=$LDFLAGS
1268     case $GCC in
1269     yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1270     *) gdb_cv_bigtoc=-bbigtoc ;;
1271     esac
1273     LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1274     AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
1275     LDFLAGS="${SAVE_LDFLAGS}"
1276   ])
1277   CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1278   ;;
1279 esac
1282 dnl For certain native configurations, we need to check whether thread
1283 dnl support can be built in or not.
1285 dnl Note that we only want this if we are both native (host == target),
1286 dnl and not doing a canadian cross build (build == host).
1288 if test ${build} = ${host} -a ${host} = ${target} ; then
1289    case ${host_os} in
1290    hpux*)
1291       AC_MSG_CHECKING(for HPUX/OSF thread support)
1292       if test -f /usr/include/dce/cma_config.h ; then
1293          if test "$GCC" = "yes" ; then
1294             AC_MSG_RESULT(yes)
1295             AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT, 1,
1296             [Define if you have HPUX threads])
1297             CONFIG_OBS="${CONFIG_OBS} hpux-thread.o"
1298             CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
1299          else
1300             AC_MSG_RESULT(no (suppressed because you are not using GCC))
1301          fi
1302       else
1303          AC_MSG_RESULT(no)
1304       fi
1305       ;;
1306    solaris*)
1307       # See if thread_db library is around for Solaris thread debugging.
1308       # Note that we must explicitly test for version 1 of the library
1309       # because version 0 (present on Solaris 2.4 or earlier) doesn't have
1310       # the same API.
1311       AC_MSG_CHECKING(for Solaris thread debugging library)
1312       if test -f /usr/lib/libthread_db.so.1 ; then
1313          AC_MSG_RESULT(yes)
1314          AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
1315          [Define if using Solaris thread debugging.])
1316          CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
1317          CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
1318          AC_CHECK_LIB(dl, dlopen)
1319          if test "$GCC" = "yes" ; then
1320             # The GNU linker requires the -export-dynamic option to make
1321             # all symbols visible in the dynamic symbol table.
1322             hold_ldflags=$LDFLAGS
1323             AC_MSG_CHECKING(for the ld -export-dynamic flag)
1324             LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
1325             AC_TRY_LINK(, [int i;], found=yes, found=no)
1326             LDFLAGS=$hold_ldflags
1327             AC_MSG_RESULT($found)
1328             if test $found = yes; then
1329                CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
1330             fi
1331          fi
1332          # Sun randomly tweaked the prototypes in <proc_service.h>
1333          # at one point.
1334          AC_MSG_CHECKING(if <proc_service.h> is old)
1335          AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
1336             AC_TRY_COMPILE([
1337                 #include <proc_service.h>
1338                 ps_err_e ps_pdwrite
1339                     (struct ps_prochandle*, psaddr_t, const void*, size_t);
1340             ],, gdb_cv_proc_service_is_old=no,
1341                 gdb_cv_proc_service_is_old=yes)
1342          ])
1343          AC_MSG_RESULT($gdb_cv_proc_service_is_old)
1344          if test $gdb_cv_proc_service_is_old = yes; then
1345             AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
1346             [Define if <proc_service.h> on solaris uses int instead of
1347              size_t, and assorted other type changes.])
1348          fi
1349       else
1350          AC_MSG_RESULT(no)
1351       fi
1352       ;;
1353    aix*)
1354       AC_MSG_CHECKING(for AiX thread debugging library)
1355       AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1356                    [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1357                                    [#ifndef PTHDB_VERSION_3
1358                                     #error
1359                                     #endif],
1360                                    gdb_cv_have_aix_thread_debug=yes,
1361                                    gdb_cv_have_aix_thread_debug=no)])
1362       AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1363       if test $gdb_cv_have_aix_thread_debug = yes; then
1364          CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1365          CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1366          CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
1367       fi
1368       ;;
1369    esac
1370    AC_SUBST(CONFIG_LDFLAGS)
1373 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1374 dnl other error codes.
1375 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1376    AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1377                   gdb_cv_thread_db_h_has_td_notalloc,
1378      AC_TRY_COMPILE(
1379        [#include <thread_db.h>],
1380        [int i = TD_NOTALLOC;],
1381        gdb_cv_thread_db_h_has_td_notalloc=yes,
1382        gdb_cv_thread_db_h_has_td_notalloc=no
1383      )
1384    )
1385    AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
1386                   gdb_cv_thread_db_h_has_td_version,
1387      AC_TRY_COMPILE(
1388        [#include <thread_db.h>],
1389        [int i = TD_VERSION;],
1390        gdb_cv_thread_db_h_has_td_version=yes,
1391        gdb_cv_thread_db_h_has_td_version=no
1392      )
1393    )
1394    AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
1395                   gdb_cv_thread_db_h_has_td_notls,
1396      AC_TRY_COMPILE(
1397        [#include <thread_db.h>],
1398        [int i = TD_NOTLS;],
1399        gdb_cv_thread_db_h_has_td_notls=yes,
1400        gdb_cv_thread_db_h_has_td_notls=no
1401      )
1402    )
1404 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1405   AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1406             [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1408 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1409   AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1410             [Define if <thread_db.h> has the TD_VERSION error code.])
1412 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1413   AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1414             [Define if <thread_db.h> has the TD_NOTLS error code.])
1417 dnl See if we have a sys/syscall header file that has __NR_tkill.
1418 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1419    AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1420                   gdb_cv_sys_syscall_h_has_tkill,
1421      AC_TRY_COMPILE(
1422        [#include <sys/syscall.h>],
1423        [int i = __NR_tkill;],
1424        gdb_cv_sys_syscall_h_has_tkill=yes,
1425        gdb_cv_sys_syscall_h_has_tkill=no
1426      )
1427    )
1429 dnl See if we can issue tkill syscall.
1430 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
1431   AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
1434 dnl Check if we can disable the virtual address space randomization.
1435 dnl The functionality of setarch -R.
1436 AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>])
1437 define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [
1438 #      if !HAVE_DECL_ADDR_NO_RANDOMIZE
1439 #       define ADDR_NO_RANDOMIZE 0x0040000
1440 #      endif
1441        /* Test the flag could be set and stays set.  */
1442        personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE);
1443        if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE))
1444            return 1])])
1445 AC_RUN_IFELSE([PERSONALITY_TEST],
1446               [have_personality=true],
1447               [have_personality=false],
1448               [AC_LINK_IFELSE([PERSONALITY_TEST],
1449                               [have_personality=true],
1450                               [have_personality=false])])
1451 if $have_personality
1452 then
1453     AC_DEFINE([HAVE_PERSONALITY], 1,
1454               [Define if you support the personality syscall.])
1457 dnl Handle optional features that can be enabled.
1459 AC_ARG_WITH(sysroot,
1460 [  --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
1462  case ${with_sysroot} in
1463  yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
1464  *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
1465  esac
1467  TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
1469  if test "x$prefix" = xNONE; then
1470   test_prefix=/usr/local
1471  else
1472   test_prefix=$prefix
1473  fi
1474  if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
1475   test_exec_prefix=$test_prefix
1476  else
1477   test_exec_prefix=$exec_prefix
1478  fi
1479  case ${TARGET_SYSTEM_ROOT} in
1480  "${test_prefix}"|"${test_prefix}/"*|\
1481  "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
1482  '${prefix}'|'${prefix}/'*|\
1483  '${exec_prefix}'|'${exec_prefix}/'*)
1484    t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
1485    TARGET_SYSTEM_ROOT_DEFINE="$t"
1486    ;;
1487  esac
1488 ], [
1489  TARGET_SYSTEM_ROOT=
1490  TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
1492 AC_SUBST(TARGET_SYSTEM_ROOT)
1493 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
1495 system_gdbinit=
1496 AC_ARG_WITH(system-gdbinit,
1497 [  --with-system-gdbinit=file       Automatically load a system-wide gdbinit file],
1498 [system_gdbinit=${withval}])
1500 AC_DEFINE_DIR(SYSTEM_GDBINIT, system_gdbinit,
1501               [System-wide gdbinit file.])
1503 if test "x$prefix" = xNONE; then
1504   test_prefix=$ac_default_prefix
1505 else
1506   test_prefix=$prefix
1508 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
1509   test_exec_prefix=$test_prefix
1510 else
1511   test_exec_prefix=$exec_prefix
1513 case ${system_gdbinit} in
1514  "${test_prefix}"|"${test_prefix}/"*|\
1515  "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
1516  '${prefix}'|'${prefix}/'*|\
1517  '${exec_prefix}'|'${exec_prefix}/'*)
1518   AC_DEFINE(SYSTEM_GDBINIT_RELOCATABLE, 1,
1519             [Define if the system-wide gdbinit file should be relocated when GDB is moved.])
1520    ;;
1521 esac
1523 AC_ARG_ENABLE(werror,
1524   [  --enable-werror    treat compile warnings as errors],
1525   [case "${enableval}" in
1526      yes | y) ERROR_ON_WARNING="yes" ;;
1527      no | n)  ERROR_ON_WARNING="no" ;;
1528      *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
1529    esac])
1531 # Enable -Werror by default when using gcc
1532 if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
1533     ERROR_ON_WARNING=yes
1536 WERROR_CFLAGS=""
1537 if test "${ERROR_ON_WARNING}" = yes ; then
1538     WERROR_CFLAGS="-Werror"
1541 # The entries after -Wno-pointer-sign are disabled warnings which may
1542 # be enabled in the future, which can not currently be used to build
1543 # GDB.
1544 # NOTE: If you change this list, remember to update
1545 # gdb/doc/gdbint.texinfo.
1546 build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
1547 -Wformat-nonliteral -Wno-pointer-sign \
1548 -Wno-unused -Wno-switch -Wno-char-subscripts"
1550 # Enable -Wno-format by default when using gcc on mingw since many
1551 # GCC versions complain about %I64.
1552 case "${host}" in
1553   *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
1554 esac
1556 AC_ARG_ENABLE(build-warnings,
1557 [  --enable-build-warnings Enable build-time compiler warnings if gcc is used],
1558 [case "${enableval}" in
1559   yes)  ;;
1560   no)   build_warnings="-w";;
1561   ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
1562         build_warnings="${build_warnings} ${t}";;
1563   *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
1564         build_warnings="${t} ${build_warnings}";;
1565   *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1566 esac
1567 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1568   echo "Setting compiler warning flags = $build_warnings" 6>&1
1569 fi])dnl
1570 AC_ARG_ENABLE(gdb-build-warnings,
1571 [  --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
1572 [case "${enableval}" in
1573   yes)  ;;
1574   no)   build_warnings="-w";;
1575   ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
1576         build_warnings="${build_warnings} ${t}";;
1577   *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
1578         build_warnings="${t} ${build_warnings}";;
1579   *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1580 esac
1581 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1582   echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1583 fi])dnl
1584 WARN_CFLAGS=""
1585 if test "x${build_warnings}" != x -a "x$GCC" = xyes
1586 then
1587     AC_MSG_CHECKING(compiler warning flags)
1588     # Separate out the -Werror flag as some files just cannot be
1589     # compiled with it enabled.
1590     for w in ${build_warnings}; do
1591         case $w in
1592         -Werr*) WERROR_CFLAGS=-Werror ;;
1593         *) # Check that GCC accepts it
1594             saved_CFLAGS="$CFLAGS"
1595             CFLAGS="$CFLAGS $w"
1596             AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1597             CFLAGS="$saved_CFLAGS"
1598         esac
1599     done
1600     AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
1602 AC_SUBST(WARN_CFLAGS)
1603 AC_SUBST(WERROR_CFLAGS)
1605 # In the Cygwin environment, we need some additional flags.
1606 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1607 [AC_EGREP_CPP(lose, [
1608 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1609 lose
1610 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1613 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1614 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
1615 case ${host} in
1616   *go32* ) SER_HARDWIRE=ser-go32.o ;;
1617   *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1618   *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
1619 esac
1620 AC_SUBST(SER_HARDWIRE)
1622 # libreadline needs libuser32.a in a cygwin environment
1623 WIN32LIBS=
1624 if test x$gdb_cv_os_cygwin = xyes; then
1625     WIN32LIBS="-luser32"
1626     case "${target}" in
1627         *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1628         ;;
1629     esac
1632 # The ser-tcp.c module requires sockets.
1633 case ${host} in
1634   *mingw32*)
1635     AC_DEFINE(USE_WIN32API, 1,
1636               [Define if we should use the Windows API, instead of the 
1637                POSIX API.  On Windows, we use the Windows API when 
1638                building for MinGW, but the POSIX API when building 
1639                for Cygwin.])
1640     WIN32LIBS="$WIN32LIBS -lws2_32"
1641     ;;
1642 esac        
1643 AC_SUBST(WIN32LIBS)
1645 # Add ELF support to GDB, but only if BFD includes ELF support.
1646 OLD_CFLAGS=$CFLAGS
1647 OLD_LDFLAGS=$LDFLAGS
1648 OLD_LIBS=$LIBS
1649 CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
1650 LDFLAGS="$LDFLAGS -L../bfd -L../libiberty"
1651 intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
1652 LIBS="-lbfd -liberty $intl $LIBS"
1653 AC_CACHE_CHECK([for ELF support in BFD], gdb_cv_var_elf,
1654 [AC_TRY_LINK(
1655 [#include <stdlib.h>
1656 #include "bfd.h"
1657 #include "elf-bfd.h"
1659 [bfd *abfd = NULL; bfd_get_elf_phdr_upper_bound (abfd); ],
1660 gdb_cv_var_elf=yes, gdb_cv_var_elf=no)])
1661 if test $gdb_cv_var_elf = yes; then
1662   CONFIG_OBS="$CONFIG_OBS elfread.o"
1663   AC_DEFINE(HAVE_ELF, 1,
1664             [Define if ELF support should be included.])
1666 CFLAGS=$OLD_CFLAGS
1667 LDFLAGS=$OLD_LDFLAGS
1668 LIBS=$OLD_LIBS
1670 # Add any host-specific objects to GDB.
1671 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1673 LIBGUI="../libgui/src/libgui.a"
1674 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1675 AC_SUBST(LIBGUI)
1676 AC_SUBST(GUI_CFLAGS_X)
1678 WIN32LDAPP=
1679 AC_SUBST(WIN32LIBS)
1680 AC_SUBST(WIN32LDAPP)
1682 case "${host}" in
1683 *-*-cygwin* | *-*-mingw* )
1684     configdir="win"
1685     ;;
1687     configdir="unix"
1688     ;;
1689 esac
1691 GDBTKLIBS=
1692 if test "${enable_gdbtk}" = "yes"; then
1694     # Gdbtk must have an absolute path to srcdir in order to run
1695     # properly when not installed.
1696     here=`pwd`
1697     cd ${srcdir}
1698     GDBTK_SRC_DIR=`pwd`
1699     cd $here
1701     SC_PATH_TCLCONFIG
1703     # If $no_tk is nonempty, then we can't do Tk, and there is no
1704     # point to doing Tcl.
1705     SC_PATH_TKCONFIG
1707     if test -z "${no_tcl}" -a -z "${no_tk}"; then
1708         SC_LOAD_TCLCONFIG
1710         # Check for in-tree tcl
1711         here=`pwd`
1712         cd ${srcdir}/..
1713         topdir=`pwd`
1714         cd ${here}
1716         intree="no"
1717         if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
1718           intree="yes"
1719         fi
1721         # Find Tcl private headers
1722         if test x"${intree}" = xno; then
1723           CY_AC_TCL_PRIVATE_HEADERS
1724           TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
1725           TCL_LIBRARY="${TCL_LIB_SPEC}"
1726           TCL_DEPS=""
1727         else
1728           # If building tcl in the same src tree, private headers
1729           # are not needed, but we need to be sure to use the right
1730           # headers library
1731           TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"          
1732           TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
1733           TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
1734         fi
1735         AC_SUBST(TCL_INCLUDE)
1736         AC_SUBST(TCL_LIBRARY)
1737         AC_SUBST(TCL_DEPS)
1739         SC_LOAD_TKCONFIG
1741         # Check for in-tree Tk
1742         intree="no"
1743         if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
1744           intree="yes" 
1745         fi
1747         # Find Tk private headers
1748         if test x"${intree}" = xno; then
1749           CY_AC_TK_PRIVATE_HEADERS
1750           TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
1751           TK_LIBRARY=${TK_LIB_SPEC}
1752           TK_DEPS=""
1753         else
1754           TK_INCLUDE="-I${TK_SRC_DIR}/generic"
1755           TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
1756           TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
1757         fi
1758         AC_SUBST(TK_INCLUDE)
1759         AC_SUBST(TK_LIBRARY)
1760         AC_SUBST(TK_DEPS)
1761         AC_SUBST(TK_XINCLUDES)
1763         ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1765         # Include some libraries that Tcl and Tk want.
1766         TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1767         # Yes, the ordering seems wrong here.  But it isn't.
1768         # TK_LIBS is the list of libraries that need to be linked
1769         # after Tcl/Tk.  Note that this isn't put into LIBS.  If it
1770         # were in LIBS then any link tests after this point would
1771         # try to include things like `$(LIBGUI)', which wouldn't work.
1772         GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1774         CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1775         CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1776         CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1777         CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
1778         CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
1779         CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
1780         CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
1782         if test x$gdb_cv_os_cygwin = xyes; then
1783           WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1784           WIN32LDAPP="-Wl,--subsystem,console"
1785           CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1786         fi
1788         AC_CONFIG_SUBDIRS(gdbtk)
1789     fi
1792 AC_SUBST(X_CFLAGS)
1793 AC_SUBST(X_LDFLAGS)
1794 AC_SUBST(X_LIBS)
1795 AC_SUBST(GDBTKLIBS)
1796 AC_SUBST(GDBTK_CFLAGS)
1797 AC_SUBST(GDBTK_SRC_DIR)
1799 AC_PATH_X
1801 # Unlike the sim directory, whether a simulator is linked is controlled by 
1802 # presence of a gdb_sim definition in the target configure.tgt entry.  
1803 # This code just checks for a few cases where we'd like to ignore those
1804 # definitions, even when they're present in the '.mt' file.  These cases
1805 # are when --disable-sim is specified, or if the simulator directory is
1806 # not part of the source tree.
1808 AC_ARG_ENABLE(sim,
1809 [  --enable-sim            Link gdb with simulator],
1810 [echo "enable_sim = $enable_sim";
1811  echo "enableval = ${enableval}";
1812  case "${enableval}" in
1813   yes) ignore_sim=false ;;
1814   no)  ignore_sim=true ;;
1815   *)   ignore_sim=false ;;
1816  esac],
1817 [ignore_sim=false])
1819 if test ! -d "${srcdir}/../sim"; then
1820   ignore_sim=true
1823 SIM=
1824 SIM_OBS=
1825 if test "${ignore_sim}" = "false"; then
1826   if test x"${gdb_sim}" != x ; then
1827     SIM="${gdb_sim}"
1828     SIM_OBS="remote-sim.o"
1829     AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
1830   fi
1832 AC_SUBST(SIM)
1833 AC_SUBST(SIM_OBS)
1835 AC_SUBST(ENABLE_CFLAGS)
1836 AC_SUBST(PROFILE_CFLAGS)
1838 AC_SUBST(CONFIG_OBS)
1839 AC_SUBST(CONFIG_DEPS)
1840 AC_SUBST(CONFIG_SRCS)
1841 AC_SUBST(CONFIG_ALL)
1842 AC_SUBST(CONFIG_CLEAN)
1843 AC_SUBST(CONFIG_INSTALL)
1844 AC_SUBST(CONFIG_UNINSTALL)
1846 # List of host floatformats.
1847 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
1848 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
1849 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
1851 # target_subdir is used by the testsuite to find the target libraries.
1852 target_subdir=
1853 if test "${host}" != "${target}"; then
1854     target_subdir="${target_alias}/"
1856 AC_SUBST(target_subdir)
1858 frags=
1859 if test "${gdb_native}" = "yes"; then
1860   host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1861   if test ! -f ${host_makefile_frag}; then
1862     AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1863   fi
1864   frags="$frags $host_makefile_frag"
1865 else
1866   host_makefile_frag=/dev/null
1869 AC_SUBST_FILE(host_makefile_frag)
1870 AC_SUBST(frags)
1872 changequote(,)dnl
1873 if test "${gdb_native}" = "yes"; then
1874 # We pick this up from the host configuration file (.mh) because we
1875 # do not have a native configuration Makefile fragment.
1876 nativefile=`sed -n '
1877 s/NAT_FILE[     ]*=[    ]*\([^  ]*\)/\1/p
1878 ' ${host_makefile_frag}`
1880 changequote([,])
1882 if test x"${gdb_osabi}" != x ; then
1883     AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
1884                        [Define to the default OS ABI for this configuration.])
1887 # Enable multi-ice-gdb-server.
1888 AC_ARG_ENABLE(multi-ice,
1889 [  --enable-multi-ice      build the multi-ice-gdb-server],
1890   [case $enableval in
1891     yes | no)
1892       ;;
1893     *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
1894   esac])
1895 if test "x$enable_multi_ice" = xyes; then
1896    AC_CONFIG_SUBDIRS(multi-ice)
1899 # We only build gdbserver automatically in a native configuration. 
1900 if test "$gdb_native" = "yes"; then
1901   AC_MSG_CHECKING(whether gdbserver is supported on this host)
1902   if test "x$build_gdbserver" = xyes; then
1903     AC_MSG_RESULT(yes)
1904     AC_CONFIG_SUBDIRS(gdbserver)
1905   else
1906     AC_MSG_RESULT(no)
1907   fi
1910 # If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
1911 # to an empty version.
1913 files=
1914 links=
1916 rm -f nm.h
1917 nm_h=""
1918 if test "${nativefile}" != ""; then
1919     nm_h=nm.h
1920     case "${nativefile}" in
1921       nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
1922       * ) GDB_NM_FILE="${nativefile}"
1923     esac
1924     files="${files} ${GDB_NM_FILE}"
1925     links="${links} nm.h"
1926     AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
1928 AC_SUBST(nm_h)
1930 AC_LINK_FILES($files, $links)
1932 dnl Check for exe extension set on certain hosts (e.g. Win32)
1933 AC_EXEEXT
1935 dnl  Detect the character set used by this host.
1936 dnl  At the moment, we just assume it's UTF-8.
1937 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
1938           [Define to be a string naming the default host character set.])
1940 AC_OUTPUT(Makefile .gdbinit:gdbinit.in gnulib/Makefile,
1942 dnl Autoconf doesn't provide a mechanism for modifying definitions 
1943 dnl provided by makefile fragments.
1946 changequote(,)dnl
1947 sed -e '/^NAT_FILE[     ]*=/s,^NAT_FILE[        ]*=[    ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1948 mv -f Makefile.tmp Makefile
1949 changequote([,])dnl
1952 case x$CONFIG_HEADERS in
1953 xconfig.h:config.in)
1954 echo > stamp-h ;;
1955 esac
1958 gdb_host_cpu=$gdb_host_cpu
1959 nativefile=$nativefile
1962 exit 0