1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright (C) 1995-2021 Free Software Foundation, Inc.
4 dnl This file is part of GDB.
6 dnl This program is free software; you can redistribute it and/or modify
7 dnl it under the terms of the GNU General Public License as published by
8 dnl the Free Software Foundation; either version 3 of the License, or
9 dnl (at your option) any later version.
11 dnl This program is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 dnl GNU General Public License for more details.
16 dnl You should have received a copy of the GNU General Public License
17 dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
19 dnl Process this file with autoconf to produce a configure script.
21 m4_include(../config/debuginfod.m4)
24 AC_CONFIG_SRCDIR([main.c])
25 AC_CONFIG_HEADERS(config.h:config.in, [echo > stamp-h])
31 AC_USE_SYSTEM_EXTENSIONS
37 # Set build, build_cpu, build_vendor and build_os.
40 # Set host, host_cpu, host_vendor, and host_os.
43 # Set target, target_cpu, target_vendor, and target_os.
48 # We require a C++11 compiler. Check if one is available, and if
49 # necessary, set CXX_DIALECT to some -std=xxx switch.
50 AX_CXX_COMPILE_STDCXX(11, , mandatory)
52 # Dependency checking.
54 ZW_PROG_COMPILER_DEPENDENCIES([CC])
56 dnl List of object files and targets accumulated by configure.
68 dnl Set up for gettext.
69 ZW_GNU_GETTEXT_SISTER_DIR
71 localedir='${datadir}/locale'
74 if test x"$USE_NLS" = xyes; then
75 CONFIG_ALL="$CONFIG_ALL all-po"
76 CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
77 CONFIG_INSTALL="$CONFIG_INSTALL install-po"
78 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
82 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
85 # We never need to detect it in this sub-configure.
86 # But preserve it for config.status --recheck.
88 [Parent configure detects if it is of sufficient version.])
89 AC_ARG_VAR(MAKEINFOFLAGS,
90 [Parameters for MAKEINFO.])
92 MAKEINFO_EXTRA_FLAGS=""
93 AC_CACHE_CHECK([whether $MAKEINFO supports @click], gdb_cv_have_makeinfo_click,
94 [echo '@clicksequence{a @click{} b}' >conftest.texinfo
95 if eval "$MAKEINFO conftest.texinfo >&5 2>&5"; then
96 gdb_cv_have_makeinfo_click=yes
98 gdb_cv_have_makeinfo_click=no
100 if test x"$gdb_cv_have_makeinfo_click" = xyes; then
101 MAKEINFO_EXTRA_FLAGS="$MAKEINFO_EXTRA_FLAGS -DHAVE_MAKEINFO_CLICK"
103 AC_SUBST(MAKEINFO_EXTRA_FLAGS)
105 GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir,
106 [look for global separate debug info in this path @<:@LIBDIR/debug@:>@],
109 # We can't pass paths as command line arguments.
110 # Mingw32 tries to be clever and will convert the paths for us.
111 # For example -DBINDIR="/usr/local/bin" passed on the command line may get
112 # converted to -DBINDIR="E:/msys/mingw32/msys/1.0/local/bin".
113 # This breaks GDB's relocatable path conversions since paths passed in
114 # config.h would not get so translated, the path prefixes no longer match.
115 AC_DEFINE_DIR(BINDIR, bindir, [Directory of programs.])
117 # GDB's datadir relocation
119 GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir,
120 [look for global separate data files in this path @<:@DATADIR/gdb@:>@],
123 AC_ARG_WITH(relocated-sources,
124 AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]),
125 [reloc_srcdir="${withval}"
126 AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir,
127 [Relocated directory for source files. ])
130 AC_MSG_CHECKING([for default auto-load directory])
131 AC_ARG_WITH(auto-load-dir,
132 AS_HELP_STRING([--with-auto-load-dir=PATH],
133 [directories from which to load auto-loaded scripts @<:@$debugdir:$datadir/auto-load@:>@]),,
134 [with_auto_load_dir='$debugdir:$datadir/auto-load'])
135 escape_dir=`echo $with_auto_load_dir | sed -e 's/[[$]]datadir\>/\\\\\\\\\\\\&/g' -e 's/[[$]]debugdir\>/\\\\\\\\\\\\&/g'`
136 AC_DEFINE_DIR(AUTO_LOAD_DIR, escape_dir,
137 [Directories from which to load auto-loaded scripts.])
138 AC_MSG_RESULT([$with_auto_load_dir])
140 AC_MSG_CHECKING([for default auto-load safe-path])
141 AC_ARG_WITH(auto-load-safe-path,
142 AS_HELP_STRING([--with-auto-load-safe-path=PATH],
143 [directories safe to hold auto-loaded files @<:@--with-auto-load-dir@:>@])
144 AS_HELP_STRING([--without-auto-load-safe-path],
145 [do not restrict auto-loaded files locations]),
146 [if test "$with_auto_load_safe_path" = "no"; then
147 with_auto_load_safe_path="/"
149 [with_auto_load_safe_path="$with_auto_load_dir"])
150 escape_dir=`echo $with_auto_load_safe_path | sed -e 's/[[$]]datadir\>/\\\\\\\\\\\\&/g' -e 's/[[$]]debugdir\>/\\\\\\\\\\\\&/g'`
151 AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir,
152 [Directories safe to hold auto-loaded files.])
153 AC_MSG_RESULT([$with_auto_load_safe_path])
155 # Enable shared libraries.
156 AC_ARG_ENABLE(shared,
157 AS_HELP_STRING([--enable-shared], [build shared libraries [default=yes]]),,
160 # If we have shared libraries, try to set RPATH_ENVVAR reasonably,
161 # such that we can find the shared libraries in the build tree.
162 if test $enable_shared = no; then
163 # The variable `RPATH_ENVVAR' itself is not likely to be used on any
165 RPATH_ENVVAR=RPATH_ENVVAR
167 # The variable `LD_LIBRARY_PATH' is used on most platforms.
168 RPATH_ENVVAR=LD_LIBRARY_PATH
169 # The following exceptions are taken from Libtool 1.4.3.
172 if test $host_cpu != ia64; then
176 RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
179 AC_SUBST(RPATH_ENVVAR)
181 # Check whether to support alternative target configurations
182 AC_ARG_ENABLE(targets,
183 AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
184 [case "${enableval}" in
185 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
187 no) enable_targets= ;;
188 *) enable_targets=$enableval ;;
191 # Check whether to enable 64-bit support on 32-bit hosts
192 AC_ARG_ENABLE(64-bit-bfd,
193 AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]),
194 [case "${enableval}" in
197 *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
198 esac],[want64=false])dnl
200 # Provide defaults for some variables set by the per-host and per-target
202 gdb_host_obs=posix-hdep.o
204 if test "${target}" = "${host}"; then
210 . $srcdir/configure.host
212 # Accumulate some settings from configure.tgt over all enabled targets
216 HAVE_NATIVE_GCORE_TARGET=
218 for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
220 if test "$targ_alias" = "all"; then
223 # Canonicalize the secondary target names.
224 result=`$ac_config_sub $targ_alias 2>/dev/null`
225 if test -n "$result"; then
231 . ${srcdir}/configure.tgt
233 AS_IF([test -z "${gdb_target_obs}"],
234 [AC_MSG_ERROR([configuration ${targ} is unsupported.])])
236 # Target-specific object files
237 for i in ${gdb_target_obs}; do
238 case " $TARGET_OBS " in
241 TARGET_OBS="$TARGET_OBS ${i}"
246 # Check whether this target needs 64-bit CORE_ADDR
247 if test x${want64} = xfalse; then
248 . ${srcdir}/../bfd/config.bfd
251 # Check whether this target is native and supports gcore.
252 if test $gdb_native = yes -a "$targ_alias" = "$target_alias" \
253 && $gdb_have_gcore; then
254 HAVE_NATIVE_GCORE_TARGET=1
259 if test x${all_targets} = xtrue; then
261 # We want all 64-bit targets if we either:
262 # - run on a 64-bit host or
263 # - already require 64-bit support for some other target or
264 # - the --enable-64-bit-bfd option was supplied
265 # Otherwise we only support all 32-bit targets.
267 # NOTE: This test must be in sync with the corresponding
270 if test x${want64} = xfalse; then
271 AC_CHECK_SIZEOF(long)
272 if test "x${ac_cv_sizeof_long}" = "x8"; then
276 if test x${want64} = xtrue; then
277 TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
279 TARGET_OBS='$(ALL_TARGET_OBS)'
284 AC_SUBST(HAVE_NATIVE_GCORE_TARGET)
286 # For other settings, only the main target counts.
289 targ=$target; . ${srcdir}/configure.tgt
291 # Fetch the default architecture and default target vector from BFD.
292 targ=$target; . $srcdir/../bfd/config.bfd
294 # We only want the first architecture, so strip off the others if
295 # there is more than one.
296 targ_archs=`echo $targ_archs | sed 's/ .*//'`
298 if test "x$targ_archs" != x; then
299 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
300 [Define to BFD's default architecture. ])
302 if test "x$targ_defvec" != x; then
303 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
304 [Define to BFD's default target vector. ])
309 AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]),
314 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
317 if test x"$enable_gdbmi" = xyes; then
318 if test -d "$srcdir/mi"; then
319 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
320 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
321 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
322 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
328 AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]),
333 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
334 esac],enable_tui=auto)
338 AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]),
343 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
345 [if test -d "$srcdir/gdbtk"; then
350 # We unconditionally disable gdbtk tests on selected platforms.
353 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
357 # Handle optional debuginfod support
360 # Libunwind support for ia64.
361 AC_ARG_WITH(libunwind-ia64,
362 AS_HELP_STRING([--with-libunwind-ia64],
363 [use libunwind frame unwinding for ia64 targets]),,
364 [with_libunwind_ia64=auto])
366 # Backward compatibility option.
367 if test "${with_libunwind+set}" = set; then
368 if test x"$with_libunwind_ia64" != xauto; then
370 [option --with-libunwind is deprecated, use --with-libunwind-ia64])
372 AC_MSG_WARN([option --with-libunwind is deprecated, use --with-libunwind-ia64])
373 with_libunwind_ia64="$with_libunwind"
376 case "$with_libunwind_ia64" in
380 AC_CHECK_HEADERS(libunwind-ia64.h)
381 with_libunwind_ia64=$ac_cv_header_libunwind_ia64_h
385 [bad value $with_libunwind_ia64 for GDB --with-libunwind-ia64 option])
389 if test x"$with_libunwind_ia64" = xyes; then
390 AC_CHECK_HEADERS(libunwind-ia64.h)
391 if test x"$ac_cv_header_libunwind_ia64_h" != xyes; then
392 AC_MSG_ERROR([GDB option --with-libunwind-ia64 requires libunwind-ia64.h])
394 CONFIG_OBS="$CONFIG_OBS ia64-libunwind-tdep.o"
395 CONFIG_DEPS="$CONFIG_DEPS ia64-libunwind-tdep.o"
396 CONFIG_SRCS="$CONFIG_SRCS ia64-libunwind-tdep.c"
400 AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
403 if test "$opt_curses" = "yes"; then
408 AC_ARG_ENABLE(profiling,
409 AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]),
414 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
416 [enable_profiling=no])
418 AC_CHECK_FUNCS(monstartup _mcleanup)
425 extern char _etext;],
428 [ac_cv_var__etext=yes],
429 [ac_cv_var__etext=no]
432 if test "$ac_cv_var__etext" = yes; then
433 AC_DEFINE(HAVE__ETEXT, 1,
434 [Define to 1 if your system has the _etext variable. ])
445 [ac_cv_var_etext=yes],
449 if test "$ac_cv_var_etext" = yes; then
450 AC_DEFINE(HAVE_ETEXT, 1,
451 [Define to 1 if your system has the etext variable. ])
453 if test "$enable_profiling" = yes ; then
454 if test "$ac_cv_func_monstartup" = no || test "$ac_cv_func__mcleanup" = no; then
455 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
459 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
462 [whether $CC supports -pg],
463 [ac_cv_cc_supports_pg],
465 [AC_LANG_PROGRAM([], [int x;])],
466 [ac_cv_cc_supports_pg=yes],
467 [ac_cv_cc_supports_pg=no]
471 if test "$ac_cv_cc_supports_pg" = no; then
472 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
479 AC_ARG_ENABLE([codesign],
480 AS_HELP_STRING([--enable-codesign=CERT],
481 [sign gdb with 'codesign -s CERT']),
482 [CODESIGN_CERT=$enableval])
483 AC_SUBST([CODESIGN_CERT])
485 ACX_PKGVERSION([GDB])
486 ACX_BUGURL([https://www.gnu.org/software/gdb/bugs/])
487 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
488 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
490 # --------------------- #
491 # Checks for programs. #
492 # --------------------- #
500 AC_CHECK_TOOL(AR, ar)
501 AC_CHECK_TOOL(DLLTOOL, dlltool)
502 AC_CHECK_TOOL(WINDRES, windres)
506 # Needed for GNU Hurd hosts.
507 AC_CHECK_TOOL(MIG, mig)
508 if test x"$MIG" = x; then
509 AC_MSG_ERROR([MIG not found but required for $host hosts])
514 # ---------------------- #
515 # Checks for libraries. #
516 # ---------------------- #
518 # We might need to link with -lm; most simulators need it.
519 AC_CHECK_LIB(m, main)
521 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
522 AC_SEARCH_LIBS(gethostbyname, nsl)
524 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
525 AC_SEARCH_LIBS(socketpair, socket)
527 # Link in zlib if we can. This allows us to read compressed debug sections.
532 # GDB may fork/exec the iconv program to get the list of supported character
533 # sets. Allow the user to specify where to find it.
534 # There are several factors affecting the choice of option name:
535 # - There is already --with-libiconv-prefix but we can't use it, it specifies
536 # the build-time location of libiconv files.
537 # - The program we need to find is iconv, which comes with glibc. The user
538 # doesn't necessarily have libiconv installed. Therefore naming this
539 # --with-libiconv-foo feels wrong.
540 # - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is
541 # defined to work on directories not files (though it really doesn't know
543 # - Calling this --with-iconv-prefix is perceived to cause too much confusion
544 # with --with-libiconv-prefix.
545 # Putting these together is why the option name is --with-iconv-bin.
547 AC_ARG_WITH(iconv-bin,
548 AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]),
549 [iconv_bin="${withval}"
550 AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"],
551 [Path of directory of iconv program.])
552 GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin})
555 # For the TUI, we need enhanced curses functionality.
556 if test x"$enable_tui" != xno; then
561 if test x"$prefer_curses" = xyes; then
562 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
563 # curses library because the latter might not provide all the
564 # functionality we need. However, this leads to problems on systems
565 # where the linker searches /usr/local/lib, but the compiler doesn't
566 # search /usr/local/include, if ncurses is installed in /usr/local. A
567 # default installation of ncurses on alpha*-dec-osf* will lead to such
569 AC_SEARCH_LIBS(waddstr, [ncursesw ncurses cursesX curses])
571 if test "$ac_cv_search_waddstr" != no; then
576 # Check whether we should enable the TUI, but only do so if we really
578 if test x"$enable_tui" != xno; then
579 if test -d "$srcdir/tui"; then
580 if test "$curses_found" != no; then
581 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
582 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
583 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
584 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
586 if test x"$enable_tui" = xyes; then
587 AC_MSG_ERROR([no enhanced curses library found; disable TUI])
589 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
595 # Since GDB uses Readline, we need termcap functionality. In many
596 # cases this will be provided by the curses library, but some systems
597 # have a separate termcap library, or no curses library at all.
601 if test -d "$srcdir/libtermcap"; then
602 LIBS="../libtermcap/libtermcap.a $LIBS"
603 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
606 ac_cv_search_tgetent="none required"
610 # These are the libraries checked by Readline.
611 AC_SEARCH_LIBS(tgetent, [termcap tinfow tinfo curses ncursesw ncurses])
613 if test "$ac_cv_search_tgetent" = no; then
614 CONFIG_OBS="$CONFIG_OBS stub-termcap.o"
617 AC_ARG_WITH([system-readline],
618 [AS_HELP_STRING([--with-system-readline],
619 [use installed readline library])])
621 if test "$with_system_readline" = yes; then
623 [whether system readline is new enough],
624 [gdb_cv_readline_ok],
628 #include <readline/readline.h>],
629 [#if RL_VERSION_MAJOR < 7
630 # error "readline version 7 required"
633 [gdb_cv_readline_ok=yes],
634 [gdb_cv_readline_ok=no]
637 if test "$gdb_cv_readline_ok" != yes; then
638 AC_MSG_ERROR([system readline is not new enough])
644 READLINE_TEXI_INCFLAG=
646 READLINE='$(READLINE_DIR)/libreadline.a'
647 READLINE_DEPS='$(READLINE)'
648 READLINE_CFLAGS='-I$(READLINE_SRC)/..'
649 READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
652 AC_SUBST(READLINE_DEPS)
653 AC_SUBST(READLINE_CFLAGS)
654 AC_SUBST(READLINE_TEXI_INCFLAG)
656 # Generate jit-reader.h
658 # This is typedeffed to GDB_CORE_ADDR in jit-reader.h
661 AC_CHECK_SIZEOF(unsigned long long)
662 AC_CHECK_SIZEOF(unsigned long)
663 AC_CHECK_SIZEOF(unsigned __int128)
665 if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then
666 TARGET_PTR="unsigned long"
667 elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then
668 TARGET_PTR="unsigned long long"
669 elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then
670 TARGET_PTR="unsigned __int128"
672 TARGET_PTR="unsigned long"
676 AC_CONFIG_FILES([jit-reader.h:jit-reader.in])
678 AC_SEARCH_LIBS(dlopen, dl)
680 GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir],
681 [directory to load the JIT readers from],
685 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
686 [], [with_expat=auto])
687 AC_MSG_CHECKING([whether to use expat])
688 AC_MSG_RESULT([$with_expat])
690 if test "${with_expat}" = no; then
691 AC_MSG_WARN([expat support disabled; some features may be unavailable.])
694 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
695 [XML_Parser p = XML_ParserCreate (0);])
696 if test "$HAVE_LIBEXPAT" != yes; then
697 if test "$with_expat" = yes; then
698 AC_MSG_ERROR([expat is missing or unusable])
700 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
704 LIBS="$LIBS $LIBEXPAT"
705 AC_CHECK_FUNCS(XML_StopParser)
710 # Verify that we have a usable GMP library.
711 AC_LIB_HAVE_LINKFLAGS([gmp], [], [#include <gmp.h>],
714 if test "$HAVE_LIBGMP" != yes; then
715 AC_MSG_ERROR([GMP is missing or unusable])
719 AS_HELP_STRING([--with-mpfr], [include MPFR support (auto/yes/no)]),
720 [], [with_mpfr=auto])
721 AC_MSG_CHECKING([whether to use MPFR])
722 AC_MSG_RESULT([$with_mpfr])
724 if test "${with_mpfr}" = no; then
725 AC_MSG_WARN([MPFR support disabled; some features may be unavailable.])
728 AC_LIB_HAVE_LINKFLAGS([mpfr], [gmp], [#include <mpfr.h>],
729 [mpfr_exp_t exp; mpfr_t x;
730 mpfr_frexp (&exp, x, x, MPFR_RNDN);])
731 if test "$HAVE_LIBMPFR" != yes; then
732 if test "$with_mpfr" = yes; then
733 AC_MSG_ERROR([MPFR is missing or unusable])
735 AC_MSG_WARN([MPFR is missing or unusable; some features may be unavailable.])
740 # --------------------- #
741 # Check for libpython. #
742 # --------------------- #
744 dnl Utility to simplify finding libpython.
745 dnl $1 = the shell variable to assign the result to
746 dnl If libpython is found we store $version here.
747 dnl $2 = additional flags to add to CPPFLAGS
748 dnl $3 = additional flags to add to LIBS
750 AC_DEFUN([AC_TRY_LIBPYTHON],
752 define([have_libpython_var],$1)
755 AC_MSG_CHECKING([for python])
756 save_CPPFLAGS=$CPPFLAGS
758 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
759 LIBS="$new_LIBS $LIBS"
760 found_usable_python=no
761 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "Python.h"]],
762 [[Py_Initialize ();]])],
763 [have_libpython_var=yes
764 found_usable_python=yes
765 PYTHON_CPPFLAGS=$new_CPPFLAGS
766 PYTHON_LIBS=$new_LIBS])
767 CPPFLAGS=$save_CPPFLAGS
769 AC_MSG_RESULT([${found_usable_python}])
772 dnl There are several different values for --with-python:
774 dnl no - Don't include python support.
775 dnl yes - Include python support, error if it's missing.
776 dnl If we find python in $PATH, use it to fetch configure options,
777 dnl otherwise assume the compiler can find it with no help from us.
778 dnl Python 2.7 and 2.6 are tried in turn.
779 dnl auto - Same as "yes", but if python is missing from the system,
780 dnl fall back to "no".
781 dnl /path/to/python/exec-prefix -
782 dnl Use the python located in this directory.
783 dnl If /path/to/python/exec-prefix/bin/python exists, use it to find
784 dnl the compilation parameters. Otherwise use
785 dnl -I/path/to/python/exec-prefix/include,
786 dnl -L/path/to/python/exec-prefix/lib.
787 dnl Python 2.7 and 2.6 are tried in turn.
788 dnl NOTE: This case is historical. It is what was done for 7.0/7.1
789 dnl but is deprecated.
790 dnl /path/to/python/executable -
791 dnl Run python-config.py with this version of python to fetch the
792 dnl compilation parameters.
793 dnl NOTE: This needn't be the real python executable.
794 dnl In a cross-compilation scenario (build != host), this could be
795 dnl a shell script that provides what python-config.py provides for
796 dnl --ldflags, --includes, --exec-prefix.
797 dnl python-executable -
798 dnl Find python-executable in $PATH, and then handle the same as
799 dnl /path/to/python/executable.
801 dnl If a python program is specified, it is used to run python-config.py and
802 dnl is passed --ldflags, --includes, --exec-prefix.
805 AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
806 [], [with_python=auto])
807 AC_MSG_CHECKING([whether to use python])
808 AC_MSG_RESULT([$with_python])
810 if test "${with_python}" = no; then
811 AC_MSG_WARN([python support disabled; some features may be unavailable.])
814 case "${with_python}" in
815 [[\\/]]* | ?:[[\\/]]*)
816 if test -d "${with_python}"; then
817 # Assume the python binary is ${with_python}/bin/python.
818 python_prog="${with_python}/bin/python"
820 # If python does not exit ${with_python}/bin, then try in
821 # ${with_python}. On Windows/MinGW, this is where the Python
823 if test ! -x "${python_prog}"; then
824 python_prog="${with_python}/python"
827 if test ! -x "${python_prog}"; then
828 # Fall back to gdb 7.0/7.1 behaviour.
830 python_prefix=${with_python}
832 elif test -x "${with_python}"; then
833 # While we can't run python compiled for $host (unless host == build),
834 # the user could write a script that provides the needed information,
835 # so we support that.
836 python_prog=${with_python}
839 AC_MSG_ERROR(invalid value for --with-python)
843 # Disallow --with-python=foo/bar.
844 AC_MSG_ERROR(invalid value for --with-python)
847 # The user has either specified auto, yes, or the name of the python
848 # program assumed to be in $PATH.
850 case "${with_python}" in
852 if test "${build}" = "${host}"; then
853 AC_PATH_PROG(python_prog_path, python, missing)
854 if test "${python_prog_path}" = missing; then
857 python_prog=${python_prog_path}
860 # Not much we can do except assume the cross-compiler will find the
866 # While we can't run python compiled for $host (unless host == build),
867 # the user could write a script that provides the needed information,
868 # so we support that.
869 python_prog="${with_python}"
870 AC_PATH_PROG(python_prog_path, ${python_prog}, missing)
871 if test "${python_prog_path}" = missing; then
872 AC_MSG_ERROR(unable to find python program ${python_prog})
878 if test "${python_prog}" != missing; then
879 # We have a python program to use, but it may be too old.
880 # Don't flag an error for --with-python=auto (the default).
881 have_python_config=yes
882 python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
883 if test $? != 0; then
884 have_python_config=failed
885 if test "${with_python}" != auto; then
886 AC_MSG_ERROR(failure running python-config --includes)
889 python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
890 if test $? != 0; then
891 have_python_config=failed
892 if test "${with_python}" != auto; then
893 AC_MSG_ERROR(failure running python-config --ldflags)
896 python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
897 if test $? != 0; then
898 have_python_config=failed
899 if test "${with_python}" != auto; then
900 AC_MSG_ERROR(failure running python-config --exec-prefix)
904 # We do not have a python executable we can use to determine where
905 # to find the Python headers and libs. We cannot guess the include
906 # path from the python_prefix either, because that include path
907 # depends on the Python version. So, there is nothing much we can
908 # do except assume that the compiler will be able to find those files.
911 have_python_config=no
914 # If we have python-config, only try the configuration it provides.
915 # Otherwise fallback on the old way of trying different versions of
919 if test "${have_python_config}" = yes; then
920 AC_TRY_LIBPYTHON(have_libpython,
921 ${python_includes}, ${python_libs})
922 elif test "${have_python_config}" != failed; then
923 if test "${have_libpython}" = no; then
924 AC_TRY_LIBPYTHON(have_libpython,
925 ${python_includes}, "-lpython2.7 ${python_libs}")
927 if test "${have_libpython}" = no; then
928 AC_TRY_LIBPYTHON(have_libpython,
929 ${python_includes}, "-lpython2.6 ${python_libs}")
933 if test "${have_libpython}" = no; then
934 case "${with_python}" in
936 AC_MSG_ERROR([python is missing or unusable])
939 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.])
942 AC_MSG_ERROR([no usable python found at ${with_python}])
946 if test -n "${python_prefix}"; then
947 AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}",
948 [Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.])
949 GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix})
954 dnl Use --with-python-libdir to control where GDB looks for the Python
957 dnl If this is not given then the default will be based on the value
958 dnl passed to --with-python, which is in the python_prefix variable.
959 dnl If the --with-python option wasn't given then the default value in
960 dnl python_prefix is based on running the 'gdb/python/python-config
961 dnl --exec-prefix' script.
962 AC_ARG_WITH(python-libdir,
963 AS_HELP_STRING([--with-python-libdir@<:@=DIR@:>@], [search for python's libraries in DIR]),
965 # If no python libdir is specified then select one based on
966 # python's prefix path.
967 if test -n "${python_prefix}"; then
968 with_python_libdir=${python_prefix}/lib
972 if test "${have_libpython}" != no; then
973 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.])
974 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
975 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
976 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
977 CONFIG_INSTALL="$CONFIG_INSTALL install-python"
978 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
980 if test -n "${with_python_libdir}"; then
981 AC_DEFINE_UNQUOTED(WITH_PYTHON_LIBDIR, "${with_python_libdir}",
982 [Directory containing Python's standard libraries from --with-python-libdir.])
983 GDB_AC_DEFINE_RELOCATABLE(PYTHON_LIBDIR, [python lib], ${with_python_libdir})
986 # Flags needed to compile Python code (taken from python-config --cflags).
987 # We cannot call python-config directly because it will output whatever was
988 # used when compiling the Python interpreter itself, including flags which
989 # would make the python-related objects be compiled differently from the
990 # rest of GDB (e.g., -O2 and -fPIC).
991 if test "${GCC}" = yes; then
992 tentative_python_cflags="-fno-strict-aliasing -fwrapv"
993 # Python headers recommend -DNDEBUG, but it's unclear if that just
994 # refers to building Python itself. In release mode, though, it
995 # doesn't hurt for the Python code in gdb to follow.
996 $development || tentative_python_cflags="$tentative_python_cflags -DNDEBUG"
999 if test "x${tentative_python_cflags}" != x; then
1000 AC_MSG_CHECKING(compiler flags for python code)
1001 for flag in ${tentative_python_cflags}; do
1002 # Check that the compiler accepts it
1003 saved_CFLAGS="$CFLAGS"
1004 CFLAGS="$CFLAGS $flag"
1006 [AC_LANG_PROGRAM([], [])],
1007 [PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag"],
1010 CFLAGS="$saved_CFLAGS"
1012 AC_MSG_RESULT(${PYTHON_CFLAGS})
1015 # On x64 Windows, Python's include headers, and pyconfig.h in
1016 # particular, rely on MS_WIN64 macro to detect that it's a 64bit
1017 # version of Windows. Unfortunately, MS_WIN64 is only defined if
1018 # _MSC_VER, a Microsoft-specific macro, is defined. So, when
1019 # building on x64 Windows with GCC, we define MS_WIN64 ourselves.
1020 # The issue was reported to the Python community, but still isn't
1021 # solved as of 2012-10-02 (http://bugs.python.org/issue4709).
1025 if test "${GCC}" = yes; then
1026 CPPFLAGS="$CPPFLAGS -DMS_WIN64"
1031 # Even if Python support is not compiled in, we need to have this file
1032 # included so that the "python" command, et.al., still exists.
1033 CONFIG_OBS="$CONFIG_OBS python/python.o"
1034 CONFIG_SRCS="$CONFIG_SRCS python/python.c"
1037 # Work around Python http://bugs.python.org/issue10112. See also
1038 # http://bugs.python.org/issue11410, otherwise -Wl,--dynamic-list has
1039 # no effect. Note that the only test after this that uses Python is
1040 # the -rdynamic/-Wl,--dynamic-list test, and we do want that one to be
1041 # run without -export-dynamic too.
1042 PYTHON_LIBS=`echo $PYTHON_LIBS | sed -e 's/-Xlinker -export-dynamic//'`
1044 AC_SUBST(PYTHON_CFLAGS)
1045 AC_SUBST(PYTHON_CPPFLAGS)
1046 AC_SUBST(PYTHON_LIBS)
1047 AM_CONDITIONAL(HAVE_PYTHON, test "${have_libpython}" != no)
1049 # -------------------- #
1050 # Check for libguile. #
1051 # -------------------- #
1053 dnl Utility to simplify finding libguile.
1054 dnl $1 = pkg-config-program
1055 dnl $2 = space-separate list of guile versions to try
1056 dnl $3 = yes|no, indicating whether to flag errors or ignore them
1057 dnl $4 = the shell variable to assign the result to
1058 dnl If libguile is found we store "yes" here.
1060 AC_DEFUN([AC_TRY_LIBGUILE],
1063 guile_version_list=$2
1065 define([have_libguile_var],$4)
1066 found_usable_guile=checking
1067 AC_MSG_CHECKING([for usable guile from ${pkg_config}])
1068 for guile_version in ${guile_version_list}; do
1069 ${pkg_config} --exists ${guile_version} 2>/dev/null
1070 if test $? != 0; then
1073 dnl pkg-config says the package exists, so if we get an error now,
1075 new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}`
1076 if test $? != 0; then
1077 AC_MSG_ERROR([failure running pkg-config --cflags ${guile_version}])
1079 new_LIBS=`${pkg_config} --libs ${guile_version}`
1080 if test $? != 0; then
1081 AC_MSG_ERROR([failure running pkg-config --libs ${guile_version}])
1083 dnl If we get this far, great.
1084 found_usable_guile=${guile_version}
1087 if test "${found_usable_guile}" = "checking"; then
1088 if test "${flag_errors}" = "yes"; then
1089 AC_MSG_ERROR([unable to find usable guile version from "${guile_version_list}"])
1091 found_usable_guile=no
1094 dnl One final sanity check.
1095 dnl The user could have said --with-guile=python-2.7.
1096 if test "${found_usable_guile}" != no; then
1097 save_CPPFLAGS=$CPPFLAGS
1099 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
1100 LIBS="$LIBS $new_LIBS"
1101 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "libguile.h"]],
1102 [[scm_init_guile ();]])],
1103 [have_libguile_var=yes
1104 GUILE_CPPFLAGS=$new_CPPFLAGS
1105 GUILE_LIBS=$new_LIBS],
1106 [found_usable_guile=no])
1107 dnl scm_set_automatic_finalization_enabled added in Guile 2.2.
1108 AC_CHECK_FUNC(scm_set_automatic_finalization_enabled,
1109 AC_DEFINE(HAVE_GUILE_MANUAL_FINALIZATION, 1,
1110 [Define if Guile supports manual finalization.])
1112 CPPFLAGS=$save_CPPFLAGS
1114 if test "${found_usable_guile}" = no; then
1115 if test "${flag_errors}" = yes; then
1116 AC_MSG_FAILURE([linking guile version ${guile_version} test program failed])
1120 AC_MSG_RESULT([${found_usable_guile}])
1123 dnl There are several different values for --with-guile:
1125 dnl no - Don't include guile support.
1126 dnl yes - Include guile support, error if it's missing.
1127 dnl The pkg-config program must be in $PATH.
1128 dnl auto - Same as "yes", but if guile is missing from the system,
1129 dnl fall back to "no".
1130 dnl guile-version [guile-version-choice-2 ...] -
1131 dnl A space-separated list of guile package versions to try.
1132 dnl These are passed to pkg-config as-is.
1133 dnl E.g., guile-2.0 or guile-2.2-uninstalled
1134 dnl This requires making sure PKG_CONFIG_PATH is set appropriately.
1135 dnl /path/to/pkg-config -
1136 dnl Use this pkg-config program.
1137 dnl NOTE: This needn't be the "real" pkg-config program.
1138 dnl It could be a shell script. It is invoked as:
1139 dnl pkg-config --exists $version
1140 dnl pkg-config --cflags $version
1141 dnl pkg-config --libs $version
1142 dnl pkg-config --variable guild $version
1143 dnl The script will be called with $version having each value in
1144 dnl $try_guile_versions until --exists indicates success.
1147 AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no/<guile-version>/<pkg-config-program>)]),
1148 [], [with_guile=auto])
1149 AC_MSG_CHECKING([whether to use guile])
1150 AC_MSG_RESULT([$with_guile])
1152 dnl We check guile with pkg-config.
1153 AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing)
1155 try_guile_versions="guile-3.0 guile-2.2 guile-2.0"
1157 case "${with_guile}" in
1159 AC_MSG_WARN([guile support disabled; some features will be unavailable.])
1162 if test "${pkg_config_prog_path}" = "missing"; then
1163 AC_MSG_WARN([pkg-config not found, guile support disabled])
1165 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, no, have_libguile)
1169 if test "${pkg_config_prog_path}" = "missing"; then
1170 AC_MSG_ERROR([pkg-config not found])
1172 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, yes, have_libguile)
1174 [[\\/]]* | ?:[[\\/]]*)
1175 if test -x "${with_guile}"; then
1176 AC_TRY_LIBGUILE(${with_guile}, ${try_guile_versions}, yes, have_libguile)
1178 AC_MSG_ERROR([Guile config program not executable: ${with_guile}])
1182 # Disallow --with=guile="" and --with-guile=foo/bar.
1183 AC_MSG_ERROR([invalid value for --with-guile])
1186 # A space separate list of guile versions to try, in order.
1187 if test "${pkg_config_prog_path}" = "missing"; then
1188 AC_MSG_ERROR([pkg-config not found])
1190 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${with_guile}, yes, have_libguile)
1194 if test "${have_libguile}" != no; then
1195 dnl Get the name of the 'guild' program.
1196 case "${with_guile}" in
1197 [[\\/]]* | ?:[[\\/]]*)
1198 GDB_GUILE_PROGRAM_NAMES(["${with_guile}"], ["${guile_version}"])
1201 GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"])
1205 dnl Make sure guild can handle this host.
1206 GDB_TRY_GUILD([$srcdir/guile/lib/gdb/support.scm])
1207 dnl If not, disable guile support.
1208 if test "$ac_cv_guild_ok" = no; then
1210 AC_MSG_WARN(disabling guile support, $GUILD fails compiling for $host)
1214 if test "${have_libguile}" != no; then
1215 AC_DEFINE(HAVE_GUILE, 1, [Define if Guile interpreter is being linked in.])
1216 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_GUILE_OBS)"
1217 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_GUILE_DEPS)"
1218 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_GUILE_SRCS)"
1219 CONFIG_INSTALL="$CONFIG_INSTALL install-guile"
1220 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_GUILE_CFLAGS)"
1222 dnl The 'scm_new_smob' function appeared in Guile 2.0.6.
1224 save_CPPFLAGS="$CPPFLAGS"
1226 CPPFLAGS="$GUILE_CPPFLAGS"
1227 AC_CHECK_FUNCS([scm_new_smob])
1229 CPPFLAGS="$save_CPPFLAGS"
1231 # Even if Guile support is not compiled in, we need to have these files
1233 CONFIG_OBS="$CONFIG_OBS guile/guile.o"
1234 CONFIG_SRCS="$CONFIG_SRCS guile/guile.c"
1236 AC_SUBST(GUILE_CPPFLAGS)
1237 AC_SUBST(GUILE_LIBS)
1238 AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no)
1240 # ---------------------------- #
1241 # Check for source highlight. #
1242 # ---------------------------- #
1247 AC_ARG_ENABLE(source-highlight,
1248 AS_HELP_STRING([--enable-source-highlight],
1249 [enable source-highlight for source listings]),
1250 [case "${enableval}" in
1251 yes) enable_source_highlight=yes ;;
1252 no) enable_source_highlight=no ;;
1253 *) AC_MSG_ERROR(bad value ${enableval} for source-highlight option) ;;
1255 [enable_source_highlight=auto])
1257 if test "${enable_source_highlight}" != "no"; then
1258 AC_MSG_CHECKING([for the source-highlight library])
1259 if test "${pkg_config_prog_path}" = "missing"; then
1260 AC_MSG_RESULT([no - pkg-config not found])
1261 if test "${enable_source_highlight}" = "yes"; then
1262 AC_MSG_ERROR([pkg-config was not found in your system])
1265 if ${pkg_config_prog_path} --exists source-highlight; then
1268 AC_MSG_ERROR([source highlight is incompatible with -static-libstdc++; dnl
1269 either use --disable-source-highlight or dnl
1270 --without-static-standard-libraries])
1274 SRCHIGH_CFLAGS=`${pkg_config_prog_path} --cflags source-highlight`
1275 SRCHIGH_LIBS=`${pkg_config_prog_path} --libs source-highlight`
1276 AC_DEFINE([HAVE_SOURCE_HIGHLIGHT], 1,
1277 [Define to 1 if the source-highlight library is available])
1278 AC_MSG_RESULT([yes])
1281 if test "${enable_source_highlight}" = "yes"; then
1282 AC_MSG_ERROR([source-highlight was not found in your system])
1287 AC_SUBST(SRCHIGH_LIBS)
1288 AC_SUBST(SRCHIGH_CFLAGS)
1290 # ------------------------- #
1291 # Checks for header files. #
1292 # ------------------------- #
1295 # elf_hp.h is for HP/UX 64-bit shared library support.
1296 AC_CHECK_HEADERS([nlist.h machine/reg.h \
1298 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
1299 sys/resource.h sys/ptrace.h ptrace.h \
1300 sys/reg.h sys/debugreg.h \
1301 termios.h elf_hp.h])
1302 AC_CHECK_HEADERS(sys/user.h, [], [],
1303 [#if HAVE_SYS_PARAM_H
1304 # include <sys/param.h>
1308 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncursesw/ncurses.h ncurses/ncurses.h ncurses/term.h)
1309 AC_CHECK_HEADERS(term.h, [], [],
1311 # include <curses.h>
1315 AC_CHECK_HEADERS([sys/socket.h])
1316 AC_CHECK_HEADERS([ws2tcpip.h])
1318 # ------------------------- #
1319 # Checks for declarations. #
1320 # ------------------------- #
1324 AC_CHECK_DECLS([snprintf])
1327 # ------------------ #
1328 # Checks for types. #
1329 # ------------------ #
1331 AC_CHECK_TYPES(socklen_t, [], [],
1332 [#include <sys/types.h>
1333 #if HAVE_SYS_SOCKET_H
1334 # include <sys/socket.h>
1335 #elif HAVE_WS2TCPIP_H
1336 # include <ws2tcpip.h>
1340 # ------------------------------------- #
1341 # Checks for compiler characteristics. #
1342 # ------------------------------------- #
1348 # ------------------------------ #
1349 # Checks for library functions. #
1350 # ------------------------------ #
1352 AC_CHECK_FUNCS([getuid getgid \
1353 pipe pread pread64 pwrite resize_term \
1355 sigaction sigsetmask socketpair \
1356 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
1357 setrlimit getrlimit posix_madvise waitpid \
1358 use_default_colors])
1362 # Check the return and argument types of ptrace.
1365 dnl AC_FUNC_SETPGRP does not work when cross compiling
1366 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
1367 if test "$cross_compiling" = no; then
1371 [whether setpgrp takes no argument],
1372 [ac_cv_func_setpgrp_void],
1375 [#include <unistd.h>],
1376 [if (setpgrp(1,1) == -1)
1381 [ac_cv_func_setpgrp_void=no],
1382 [ac_cv_func_setpgrp_void=yes]
1385 if test "$ac_cv_func_setpgrp_void" = yes; then
1386 AC_DEFINE(SETPGRP_VOID, 1)
1390 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
1391 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
1392 [#include <sys/param.h>
1393 #include <sys/proc.h>
1396 # See if <sys/lwp.h> defines `struct lwp`.
1399 [gdb_cv_struct_lwp],
1402 [#include <sys/param.h>
1404 #include <sys/lwp.h>],
1407 [gdb_cv_struct_lwp=yes],
1408 [gdb_cv_struct_lwp=no]
1411 if test "$gdb_cv_struct_lwp" = yes; then
1412 AC_DEFINE(HAVE_STRUCT_LWP, 1,
1413 [Define to 1 if your system has struct lwp.])
1416 # See if <machine/reg.h> degines `struct reg'.
1418 [for struct reg in machine/reg.h],
1419 [gdb_cv_struct_reg],
1422 [#include <sys/types.h>
1423 #include <machine/reg.h>],
1426 [gdb_cv_struct_reg=yes],
1427 [gdb_cv_struct_reg=no]
1430 if test "$gdb_cv_struct_reg" = yes; then
1431 AC_DEFINE(HAVE_STRUCT_REG, 1,
1432 [Define to 1 if your system has struct reg in <machine/reg.h>.])
1435 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
1436 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
1437 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
1438 [#include <sys/types.h>
1439 #include <machine/reg.h>])
1441 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
1442 AC_MSG_CHECKING(for PTRACE_GETREGS)
1444 [gdb_cv_have_ptrace_getregs],
1446 [AC_LANG_PROGRAM([#include <sys/ptrace.h>], [PTRACE_GETREGS;])],
1447 [gdb_cv_have_ptrace_getregs=yes],
1448 [gdb_cv_have_ptrace_getregs=no]
1451 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
1452 if test "$gdb_cv_have_ptrace_getregs" = yes; then
1453 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
1454 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
1457 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
1458 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
1460 [gdb_cv_have_ptrace_getfpxregs],
1462 [AC_LANG_PROGRAM([#include <sys/ptrace.h>], [PTRACE_GETFPXREGS;])],
1463 [gdb_cv_have_ptrace_getfpxregs=yes],
1464 [gdb_cv_have_ptrace_getfpxregs=no]
1467 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
1468 if test "$gdb_cv_have_ptrace_getfpxregs" = yes; then
1469 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
1470 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
1473 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
1474 AC_MSG_CHECKING(for PT_GETDBREGS)
1476 [gdb_cv_have_pt_getdbregs],
1479 [#include <sys/types.h>
1480 #include <sys/ptrace.h>],
1483 [gdb_cv_have_pt_getdbregs=yes],
1484 [gdb_cv_have_pt_getdbregs=no]
1487 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
1488 if test "$gdb_cv_have_pt_getdbregs" = yes; then
1489 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
1490 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
1493 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
1494 AC_MSG_CHECKING(for PT_GETXMMREGS)
1496 [gdb_cv_have_pt_getxmmregs],
1499 [#include <sys/types.h>
1500 #include <sys/ptrace.h>],
1503 [gdb_cv_have_pt_getxmmregs=yes],
1504 [gdb_cv_have_pt_getxmmregs=no]
1507 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
1508 if test "$gdb_cv_have_pt_getxmmregs" = yes; then
1509 AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
1510 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
1513 # See if <sys/ptrace.h> supports LWP names on FreeBSD
1514 # Older FreeBSD versions don't have the pl_tdname member of
1515 # `struct ptrace_lwpinfo'.
1516 AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_tdname], [], [],
1517 [#include <sys/ptrace.h>])
1519 # See if <sys/ptrace.h> supports syscall fields on FreeBSD. The
1520 # pl_syscall_code member of `struct ptrace_lwpinfo' was added in
1522 AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_syscall_code], [], [],
1523 [#include <sys/ptrace.h>])
1525 # Check if the compiler supports the `long long' type.
1527 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
1528 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1529 [[extern long long foo;]],
1530 [[switch (foo & 2) { case 0: return 1; }]])],
1531 gdb_cv_c_long_long=yes,
1532 gdb_cv_c_long_long=no)])
1533 if test "$gdb_cv_c_long_long" != yes; then
1534 # libdecnumber requires long long.
1535 AC_MSG_ERROR([Compiler must support long long for GDB.])
1538 # Check if the compiler and runtime support printing long longs.
1540 AC_CACHE_CHECK([for long long support in printf],
1541 gdb_cv_printf_has_long_long,
1542 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1545 l = (l << 16) + 0x0123;
1546 l = (l << 16) + 0x4567;
1547 l = (l << 16) + 0x89ab;
1548 l = (l << 16) + 0xcdef;
1549 sprintf (buf, "0x%016llx", l);
1550 return (strcmp ("0x0123456789abcdef", buf));]])],
1551 gdb_cv_printf_has_long_long=yes,
1552 gdb_cv_printf_has_long_long=no,
1553 gdb_cv_printf_has_long_long=no)])
1554 if test "$gdb_cv_printf_has_long_long" = yes; then
1555 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
1556 [Define to 1 if the "%ll" format works to print long longs.])
1559 # Check if the compiler and runtime support printing decfloats.
1561 AC_CACHE_CHECK([for decfloat support in printf],
1562 gdb_cv_printf_has_decfloat,
1563 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1565 _Decimal32 d32 = 1.2345df;
1566 _Decimal64 d64 = 1.2345dd;
1567 _Decimal128 d128 = 1.2345dl;
1568 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
1569 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
1570 gdb_cv_printf_has_decfloat=yes,
1571 gdb_cv_printf_has_decfloat=no,
1572 gdb_cv_printf_has_decfloat=no)])
1573 if test "$gdb_cv_printf_has_decfloat" = yes; then
1574 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
1575 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
1578 # Check if the compiler supports the `long double' type. We can't use
1579 # AC_C_LONG_DOUBLE because that one does additional checks on the
1580 # constants defined in <float.h> that fail on some systems,
1581 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
1583 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
1584 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
1585 gdb_cv_c_long_double=yes,
1586 gdb_cv_c_long_double=no)])
1587 if test "$gdb_cv_c_long_double" = yes; then
1588 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
1589 [Define to 1 if the compiler supports long double.])
1592 # Check if the compiler and runtime support printing long doubles.
1594 AC_CACHE_CHECK([for long double support in printf],
1595 gdb_cv_printf_has_long_double,
1596 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1598 long double f = 3.141592653;
1599 sprintf (buf, "%Lg", f);
1600 return (strncmp ("3.14159", buf, 7));]])],
1601 gdb_cv_printf_has_long_double=yes,
1602 gdb_cv_printf_has_long_double=no,
1603 gdb_cv_printf_has_long_double=no)])
1604 if test "$gdb_cv_printf_has_long_double" = yes; then
1605 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1606 [Define to 1 if the "%Lg" format works to print long doubles.])
1609 # Check if the compiler and runtime support scanning long doubles.
1611 AC_CACHE_CHECK([for long double support in scanf],
1612 gdb_cv_scanf_has_long_double,
1613 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
1614 [[#include <stdio.h>]],
1615 [[char *buf = "3.141592653";
1617 sscanf (buf, "%Lg", &f);
1618 return !(f > 3.14159 && f < 3.14160);]])],
1619 gdb_cv_scanf_has_long_double=yes,
1620 gdb_cv_scanf_has_long_double=no,
1621 gdb_cv_scanf_has_long_double=no)])
1622 if test "$gdb_cv_scanf_has_long_double" = yes; then
1623 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1624 [Define to 1 if the "%Lg" format works to scan long doubles.])
1630 [for -bbigtoc option], [gdb_cv_bigtoc],
1631 [SAVE_LDFLAGS=$LDFLAGS
1634 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1635 *) gdb_cv_bigtoc=-bbigtoc ;;
1638 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1640 [AC_LANG_PROGRAM([], [int i;])],
1644 LDFLAGS="${SAVE_LDFLAGS}"]
1646 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1650 AC_MSG_CHECKING(for the dynamic export flag)
1652 if test "${gdb_native}" = yes; then
1653 # The dynamically loaded libthread_db needs access to symbols in the gdb
1654 # executable. Older GNU ld supports --export-dynamic but --dynamic-list
1655 # may not be supported there.
1656 old_LDFLAGS="$LDFLAGS"
1657 # Older GNU ld supports --export-dynamic but --dynamic-list it does not.
1658 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
1659 LDFLAGS="$LDFLAGS $RDYNAMIC"
1660 if test "${have_libpython}" = no; then
1662 [AC_LANG_PROGRAM([], [])],
1663 [dynamic_list=true],
1667 # Workaround http://bugs.python.org/issue4434 where static
1668 # libpythonX.Y.a would get its symbols required for
1669 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
1670 # Problem does not happen for the recommended libpythonX.Y.so linkage.
1672 # Note the workaround for Python
1673 # http://bugs.python.org/issue10112 earlier has removed
1674 # -export-dynamic from PYTHON_LIBS. That's exactly what we want
1675 # here too, as otherwise it'd make this -Wl,--dynamic-list test
1677 old_CFLAGS="$CFLAGS"
1678 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
1680 LIBS="$LIBS $PYTHON_LIBS"
1681 old_CPPFLAGS="$CPPFLAGS"
1682 CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS"
1685 [#include "Python.h"],
1688 err = PyRun_SimpleString ("import ctypes\n");
1690 return err == 0 ? 0 : 1;])],
1691 [dynamic_list=true], [], [true])
1693 CFLAGS="$old_CFLAGS"
1694 CPPFLAGS="$old_CPPFLAGS"
1696 LDFLAGS="$old_LDFLAGS"
1698 if $dynamic_list; then
1699 found="-Wl,--dynamic-list"
1700 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
1703 RDYNAMIC="-rdynamic"
1706 AC_MSG_RESULT($found)
1708 dnl For certain native configurations, we need to check whether thread
1709 dnl support can be built in or not.
1711 dnl Note that we only want this if we are both native (host == target),
1712 dnl and not doing a canadian cross build (build == host).
1714 if test "${build}" = "${host}" -a "${host}" = "${target}" ; then
1717 AC_MSG_CHECKING(for AiX thread debugging library)
1719 [gdb_cv_have_aix_thread_debug],
1722 [#include <sys/pthdebug.h>],
1723 [#ifndef PTHDB_VERSION_3
1727 [gdb_cv_have_aix_thread_debug=yes],
1728 [gdb_cv_have_aix_thread_debug=no]
1731 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1732 if test "$gdb_cv_have_aix_thread_debug" = yes; then
1733 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1734 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1735 LIBS="$LIBS -lpthdebug"
1737 # Older versions of AIX do not provide the declaration for
1738 # the getthrds function (it appears that it was introduced
1740 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]])
1744 AC_SUBST(CONFIG_LDFLAGS)
1747 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1748 dnl other error codes.
1749 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1751 [whether <thread_db.h> has TD_NOTALLOC],
1752 [gdb_cv_thread_db_h_has_td_notalloc],
1755 [#include <thread_db.h>],
1756 [int i = TD_NOTALLOC;]
1758 [gdb_cv_thread_db_h_has_td_notalloc=yes],
1759 [gdb_cv_thread_db_h_has_td_notalloc=no]
1764 [whether <thread_db.h> has TD_VERSION],
1765 [gdb_cv_thread_db_h_has_td_version],
1768 [#include <thread_db.h>],
1769 [int i = TD_VERSION;]
1771 [gdb_cv_thread_db_h_has_td_version=yes],
1772 [gdb_cv_thread_db_h_has_td_version=no]
1777 [whether <thread_db.h> has TD_NOTLS],
1778 [gdb_cv_thread_db_h_has_td_notls],
1781 [#include <thread_db.h>],
1784 [gdb_cv_thread_db_h_has_td_notls=yes],
1785 [gdb_cv_thread_db_h_has_td_notls=no]
1789 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1790 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1791 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1793 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1794 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1795 [Define if <thread_db.h> has the TD_VERSION error code.])
1797 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1798 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1799 [Define if <thread_db.h> has the TD_NOTLS error code.])
1802 dnl Set the host's .gdbinit filename.
1811 AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
1813 dnl Set the host's .gdbearlyinit filename
1814 AC_DEFINE_UNQUOTED(GDBEARLYINIT,".gdbearlyinit",[The .gdbearlyinit filename.])
1816 dnl Handle optional features that can be enabled.
1818 # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
1819 # except that the argument to --with-sysroot is optional.
1820 # --with-sysroot (or --with-sysroot=yes) sets the default sysroot path.
1821 if test "x$with_sysroot" = xyes; then
1822 with_sysroot="${exec_prefix}/${target_alias}/sys-root"
1824 AC_ARG_WITH(sysroot,
1825 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
1826 [search for usr/lib et al within DIR]),
1827 [TARGET_SYSTEM_ROOT=$withval], [TARGET_SYSTEM_ROOT=])
1828 AC_DEFINE_DIR(TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT,
1829 [search for usr/lib et al within DIR])
1830 AC_SUBST(TARGET_SYSTEM_ROOT)
1831 GDB_AC_DEFINE_RELOCATABLE(TARGET_SYSTEM_ROOT, sysroot, ${ac_define_dir})
1833 GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
1834 [automatically load a system-wide gdbinit file],
1836 GDB_AC_WITH_DIR(SYSTEM_GDBINIT_DIR, system-gdbinit-dir,
1837 [automatically load system-wide gdbinit files from this directory],
1843 # In the Cygwin environment, we need some additional flags.
1844 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1845 [AC_EGREP_CPP(^lose$, [
1846 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1848 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1851 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1852 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
1854 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1855 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1856 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
1857 *) SER_HARDWIRE="$SER_HARDWIRE ser-uds.o" ;;
1859 AC_SUBST(SER_HARDWIRE)
1861 # libreadline needs libuser32.a in a cygwin environment
1863 if test x"$gdb_cv_os_cygwin" = xyes; then
1864 WIN32LIBS="-luser32"
1866 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1871 # The ser-tcp.c module requires sockets.
1872 # Note that WIN32APILIBS is set by GDB_AC_COMMON.
1873 WIN32LIBS="$WIN32LIBS $WIN32APILIBS"
1875 # Add ELF support to GDB, but only if BFD includes ELF support.
1876 GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_elf,
1877 [bfd_get_elf_phdr_upper_bound (NULL)], elf-bfd.h)
1878 if test "$gdb_cv_var_elf" = yes; then
1879 CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o dtrace-probe.o \
1880 gcore-elf.o elf-none-tdep.o"
1881 AC_DEFINE(HAVE_ELF, 1,
1882 [Define if ELF support should be included.])
1883 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1884 if test "$plugins" = "yes"; then
1885 AC_SEARCH_LIBS(dlopen, dl)
1889 # Add macho support to GDB, but only if BFD includes it.
1890 GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_macho,
1891 [bfd_mach_o_lookup_command (NULL, 0, NULL)], mach-o.h)
1892 if test "$gdb_cv_var_macho" = yes; then
1893 CONFIG_OBS="$CONFIG_OBS machoread.o"
1896 # Add any host-specific objects to GDB.
1897 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1899 # If building on ELF, look for lzma support for embedded compressed debug info.
1900 if test "$gdb_cv_var_elf" = yes; then
1902 AS_HELP_STRING([--with-lzma], [support lzma compression (auto/yes/no)]),
1903 [], [with_lzma=auto])
1904 AC_MSG_CHECKING([whether to use lzma])
1905 AC_MSG_RESULT([$with_lzma])
1907 if test "${with_lzma}" != no; then
1908 AC_LIB_HAVE_LINKFLAGS([lzma], [], [#include "lzma.h"],
1909 [lzma_index_iter iter;
1910 lzma_index_iter_init (&iter, 0);
1911 lzma_mf_is_supported (LZMA_MF_HC3);])
1912 if test "$HAVE_LIBLZMA" != yes; then
1913 if test "$with_lzma" = yes; then
1914 AC_MSG_ERROR([missing liblzma for --with-lzma])
1920 LIBGUI="../libgui/src/libgui.a"
1921 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1923 AC_SUBST(GUI_CFLAGS_X)
1927 AC_SUBST(WIN32LDAPP)
1930 *-*-cygwin* | *-*-mingw* )
1939 if test "${enable_gdbtk}" = "yes"; then
1941 # Gdbtk must have an absolute path to srcdir in order to run
1942 # properly when not installed.
1950 # If $no_tk is nonempty, then we can't do Tk, and there is no
1951 # point to doing Tcl.
1954 if test -z "${no_tcl}" -a -z "${no_tk}"; then
1957 # Check for in-tree tcl
1964 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
1968 # Find Tcl private headers
1969 if test x"${intree}" = xno; then
1970 CY_AC_TCL_PRIVATE_HEADERS
1971 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
1972 TCL_LIBRARY="${TCL_LIB_SPEC}"
1975 # If building tcl in the same src tree, private headers
1976 # are not needed, but we need to be sure to use the right
1978 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"
1979 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
1980 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
1982 AC_SUBST(TCL_INCLUDE)
1983 AC_SUBST(TCL_LIBRARY)
1988 # Check for in-tree Tk
1990 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
1994 # Find Tk private headers
1995 if test x"${intree}" = xno; then
1996 CY_AC_TK_PRIVATE_HEADERS
1997 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
1998 TK_LIBRARY=${TK_LIB_SPEC}
2001 TK_INCLUDE="-I${TK_SRC_DIR}/generic"
2002 TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
2003 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
2005 AC_SUBST(TK_INCLUDE)
2006 AC_SUBST(TK_LIBRARY)
2008 AC_SUBST(TK_XINCLUDES)
2010 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
2012 # Include some libraries that Tcl and Tk want.
2013 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
2014 # Yes, the ordering seems wrong here. But it isn't.
2015 # TK_LIBS is the list of libraries that need to be linked
2016 # after Tcl/Tk. Note that this isn't put into LIBS. If it
2017 # were in LIBS then any link tests after this point would
2018 # try to include things like `$(LIBGUI)', which wouldn't work.
2019 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
2021 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
2022 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
2023 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
2024 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
2025 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
2026 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
2027 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
2029 if test x"$gdb_cv_os_cygwin" = xyes; then
2030 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
2031 WIN32LDAPP="-Wl,--subsystem,console"
2032 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
2035 AC_CONFIG_SUBDIRS(gdbtk)
2043 AC_SUBST(GDBTK_CFLAGS)
2044 AC_SUBST(GDBTK_SRC_DIR)
2048 # Unlike the sim directory, whether a simulator is linked is controlled by
2049 # presence of a gdb_sim definition in the target configure.tgt entry.
2050 # This code just checks for a few cases where we'd like to ignore those
2051 # definitions, even when they're present in the '.mt' file. These cases
2052 # are when --disable-sim is specified, or if the simulator directory is
2053 # not part of the source tree.
2056 AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
2057 [echo "enable_sim = $enable_sim";
2058 echo "enableval = ${enableval}";
2059 case "${enableval}" in
2060 yes) ignore_sim=false ;;
2061 no) ignore_sim=true ;;
2062 *) ignore_sim=false ;;
2066 if test ! -d "${srcdir}/../sim"; then
2072 if test "${ignore_sim}" = "false"; then
2073 if test x"${gdb_sim}" != x ; then
2075 SIM_OBS="remote-sim.o"
2076 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
2078 # Some tdep code should only be compiled in when the ppc sim is
2079 # built. PR sim/13418.
2082 AC_DEFINE(WITH_PPC_SIM, 1, [Define if the PPC simulator is being linked in.])
2090 AC_SUBST(ENABLE_CFLAGS)
2091 AC_SUBST(PROFILE_CFLAGS)
2093 AC_SUBST(CONFIG_OBS)
2094 AC_SUBST(CONFIG_DEPS)
2095 AC_SUBST(CONFIG_SRCS)
2096 AC_SUBST(CONFIG_ALL)
2097 AC_SUBST(CONFIG_CLEAN)
2098 AC_SUBST(CONFIG_INSTALL)
2099 AC_SUBST(CONFIG_UNINSTALL)
2101 # List of host floatformats.
2102 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
2103 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
2104 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
2106 # target_subdir is used by the testsuite to find the target libraries.
2108 if test "${host}" != "${target}"; then
2109 target_subdir="${target_alias}/"
2111 AC_SUBST(target_subdir)
2113 # Import nat definitions.
2114 nat_makefile_frag=/dev/null
2115 if test "${gdb_native}" = "yes"; then
2116 . ${srcdir}/configure.nat
2117 nativefile=$NAT_FILE
2121 AC_SUBST(NATDEPFILES)
2126 AC_SUBST(NAT_GENERATED_FILES)
2127 AC_SUBST(HAVE_NATIVE_GCORE_HOST)
2128 AC_SUBST_FILE(nat_makefile_frag)
2130 if test x"${gdb_osabi}" != x ; then
2131 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
2132 [Define to the default OS ABI for this configuration.])
2135 # Check for babeltrace and babeltrace-ctf
2136 AC_ARG_WITH(babeltrace,
2137 AS_HELP_STRING([--with-babeltrace], [include babeltrace support (auto/yes/no)]),
2138 [], [with_babeltrace=auto])
2139 AC_MSG_CHECKING([whether to use babeltrace])
2140 AC_MSG_RESULT([$with_babeltrace])
2142 if test "x$with_babeltrace" = "xno"; then
2143 AC_MSG_WARN([babletrace support disabled; GDB is unable to read CTF data.])
2145 # Append -Werror to CFLAGS so that configure can catch the warning
2146 # "assignment from incompatible pointer type", which is related to
2147 # the babeltrace change from 1.0.3 to 1.1.0. Babeltrace 1.1.0 works
2148 # in GDB, while babeltrace 1.0.3 is broken.
2149 # AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be
2150 # safe to save and restore CFLAGS here.
2151 saved_CFLAGS=$CFLAGS
2152 CFLAGS="$CFLAGS -Werror"
2153 AC_LIB_HAVE_LINKFLAGS([babeltrace], [babeltrace-ctf],
2154 [#include <babeltrace/babeltrace.h>
2155 #include <babeltrace/ctf/events.h>
2156 #include <babeltrace/ctf/iterator.h>],
2157 [struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
2158 struct bt_ctf_event *event = NULL;
2159 const struct bt_definition *scope;
2161 pos->type = BT_SEEK_BEGIN;
2162 bt_iter_set_pos (bt_ctf_get_iter (NULL), pos);
2163 scope = bt_ctf_get_top_level_scope (event,
2164 BT_STREAM_EVENT_HEADER);
2165 bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
2167 CFLAGS=$saved_CFLAGS
2169 if test "$HAVE_LIBBABELTRACE" != yes; then
2170 if test "$with_babeltrace" = yes; then
2171 AC_MSG_ERROR([babeltrace is missing or unusable])
2173 AC_MSG_WARN([babeltrace is missing or unusable; GDB is unable to read CTF data.])
2180 AS_HELP_STRING([--with-xxhash], [use libxxhash for hashing (faster) (auto/yes/no)]),
2181 [], [with_xxhash=auto])
2183 GCC_ENABLE([libctf], [yes], [], [Handle .ctf type-info sections])
2184 if test x${enable_static} = xno; then
2185 LIBCTF="-Wl,--rpath,../libctf/.libs ../libctf/.libs/libctf.so"
2186 CTF_DEPS="../libctf/.libs/libctf.so"
2188 LIBCTF="../libctf/.libs/libctf.a"
2191 if test "${enable_libctf}" = yes; then
2192 AC_DEFINE(ENABLE_LIBCTF, 1, [Handle .ctf type-info sections])
2197 AC_SUBST(enable_libctf)
2201 # If nativefile (NAT_FILE) is not set in configure.nat, we link to an
2204 if test "x$with_xxhash" != "xno"; then
2205 AC_LIB_HAVE_LINKFLAGS([xxhash], [],
2206 [#include <xxhash.h>],
2207 [XXH32("foo", 3, 0);
2209 if test "$HAVE_LIBXXHASH" != yes; then
2210 if test "$with_xxhash" = yes; then
2211 AC_MSG_ERROR([xxhash is missing or unusable])
2214 if test "x$with_xxhash" = "xauto"; then
2215 with_xxhash="$HAVE_LIBXXHASH"
2219 AC_MSG_CHECKING([whether to use xxhash])
2220 AC_MSG_RESULT([$with_xxhash])
2224 if test "${nativefile}" != ""; then
2225 case "${nativefile}" in
2226 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
2227 * ) GDB_NM_FILE="${nativefile}"
2229 AC_CONFIG_LINKS([nm.h:$GDB_NM_FILE], [echo > stamp-nmh],
2230 [GDB_NM_FILE=$GDB_NM_FILE])
2231 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
2234 AC_SUBST(GDB_NM_FILE)
2237 dnl Add dependency for xsltproc if building with maintainer-mode enabled.
2238 AC_PATH_PROGS(XSLTPROC, xsltproc, missing)
2239 if test "x$USE_MAINTAINER_MODE" = xyes; then
2240 if test "${XSLTPROC}" = missing; then
2241 AC_MSG_ERROR(unable to find xsltproc. maintainer-mode requires xsltproc.)
2246 dnl Check for exe extension set on certain hosts (e.g. Win32)
2249 dnl Detect the character set used by this host.
2250 dnl At the moment, we just assume it's UTF-8.
2251 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
2252 [Define to be a string naming the default host character set.])
2255 CONFIG_OBS="$CONFIG_OBS \$(SELFTESTS_OBS)"
2256 CONFIG_SRCS="$CONFIG_SRCS \$(SELFTESTS_SRCS)"
2259 GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME])
2260 GDB_AC_TRANSFORM([gcore], [GCORE_TRANSFORM_NAME])
2261 AC_CONFIG_FILES([gcore], [chmod +x gcore])
2262 AC_CONFIG_FILES([Makefile gdb-gdb.gdb gdb-gdb.py doc/Makefile data-directory/Makefile])
2263 # Transform the name of some programs for the testsuite/lib/pdtrace
2265 GDB_AC_TRANSFORM(strip, STRIP_TRANSFORM_NAME)
2266 GDB_AC_TRANSFORM(readelf, READELF_TRANSFORM_NAME)
2267 GDB_AC_TRANSFORM(as, GAS_TRANSFORM_NAME)
2268 GDB_AC_TRANSFORM(nm, NM_TRANSFORM_NAME)
2269 AC_CONFIG_FILES([testsuite/lib/pdtrace], [chmod +x testsuite/lib/pdtrace])
2270 AC_CONFIG_FILES([testsuite/Makefile])