configure.ac revision 1.5
1dnl Autoconf configure script for GDB, the GNU debugger. 2dnl Copyright (C) 1995-2015 Free Software Foundation, Inc. 3dnl 4dnl This file is part of GDB. 5dnl 6dnl This program is free software; you can redistribute it and/or modify 7dnl it under the terms of the GNU General Public License as published by 8dnl the Free Software Foundation; either version 3 of the License, or 9dnl (at your option) any later version. 10dnl 11dnl This program is distributed in the hope that it will be useful, 12dnl but WITHOUT ANY WARRANTY; without even the implied warranty of 13dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14dnl GNU General Public License for more details. 15dnl 16dnl You should have received a copy of the GNU General Public License 17dnl along with this program. If not, see <http://www.gnu.org/licenses/>. 18 19dnl Process this file with autoconf to produce a configure script. 20 21AC_PREREQ(2.59)dnl 22AC_INIT(main.c) 23AC_CONFIG_HEADER(config.h:config.in) 24AM_MAINTAINER_MODE 25 26# Set the 'development' global. 27. $srcdir/../bfd/development.sh 28 29AC_PROG_CC 30AC_USE_SYSTEM_EXTENSIONS 31ACX_LARGEFILE 32AM_PROG_CC_STDC 33AM_PROG_INSTALL_STRIP 34 35AC_CONFIG_AUX_DIR(..) 36AC_CANONICAL_SYSTEM 37AC_ARG_PROGRAM 38 39# Dependency checking. 40ZW_CREATE_DEPDIR 41ZW_PROG_COMPILER_DEPENDENCIES([CC]) 42 43# Check for the 'make' the user wants to use. 44AC_CHECK_PROGS(MAKE, make) 45MAKE_IS_GNU= 46case "`$MAKE --version 2>&1 | sed 1q`" in 47 *GNU*) 48 MAKE_IS_GNU=yes 49 ;; 50esac 51AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes) 52AC_PROG_MAKE_SET 53 54gnulib_extra_configure_args= 55# If large-file support is disabled, make sure gnulib does the same. 56if test "$enable_largefile" = no; then 57gnulib_extra_configure_args="$gnulib_extra_configure_args --disable-largefile" 58fi 59 60# Configure gnulib. We need to build gnulib under some other 61# directory not "gnulib", to avoid the problem of both GDB and 62# GDBserver wanting to build it in the same directory, when building 63# in the source dir. 64ACX_CONFIGURE_DIR(["gnulib"], ["build-gnulib"], 65 ["$gnulib_extra_configure_args"]) 66 67dnl List of object files and targets accumulated by configure. 68 69CONFIG_OBS= 70CONFIG_DEPS= 71CONFIG_SRCS= 72ENABLE_CFLAGS= 73 74CONFIG_ALL= 75CONFIG_CLEAN= 76CONFIG_INSTALL= 77CONFIG_UNINSTALL= 78 79dnl Set up for gettext. 80ZW_GNU_GETTEXT_SISTER_DIR 81 82localedir='${datadir}/locale' 83AC_SUBST(localedir) 84 85if test x"$USE_NLS" = xyes; then 86 CONFIG_ALL="$CONFIG_ALL all-po" 87 CONFIG_CLEAN="$CONFIG_CLEAN clean-po" 88 CONFIG_INSTALL="$CONFIG_INSTALL install-po" 89 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po" 90fi 91 92GNULIB=build-gnulib/import 93 94# For Makefile dependencies. 95GNULIB_STDINT_H= 96if test x"$STDINT_H" != x; then 97 GNULIB_STDINT_H=$GNULIB/$STDINT_H 98fi 99AC_SUBST(GNULIB_STDINT_H) 100 101PACKAGE=gdb 102AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ]) 103AC_SUBST(PACKAGE) 104 105# We never need to detect it in this sub-configure. 106# But preserve it for config.status --recheck. 107AC_ARG_VAR(MAKEINFO, 108 [Parent configure detects if it is of sufficient version.]) 109AC_ARG_VAR(MAKEINFOFLAGS, 110 [Parameters for MAKEINFO.]) 111 112MAKEINFO_EXTRA_FLAGS="" 113AC_CACHE_CHECK([whether $MAKEINFO supports @click], gdb_cv_have_makeinfo_click, 114 [echo '@clicksequence{a @click{} b}' >conftest.texinfo 115 if eval "$MAKEINFO conftest.texinfo >&5 2>&5"; then 116 gdb_cv_have_makeinfo_click=yes 117 else 118 gdb_cv_have_makeinfo_click=no 119 fi]) 120if test x"$gdb_cv_have_makeinfo_click" = xyes; then 121 MAKEINFO_EXTRA_FLAGS="$MAKEINFO_EXTRA_FLAGS -DHAVE_MAKEINFO_CLICK" 122fi 123AC_SUBST(MAKEINFO_EXTRA_FLAGS) 124 125GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir, 126 [look for global separate debug info in this path @<:@LIBDIR/debug@:>@], 127 [${libdir}/debug]) 128 129# We can't pass paths as command line arguments. 130# Mingw32 tries to be clever and will convert the paths for us. 131# For example -DBINDIR="/usr/local/bin" passed on the command line may get 132# converted to -DBINDIR="E:/msys/mingw32/msys/1.0/local/bin". 133# This breaks GDB's relocatable path conversions since paths passed in 134# config.h would not get so translated, the path prefixes no longer match. 135AC_DEFINE_DIR(BINDIR, bindir, [Directory of programs.]) 136 137# GDB's datadir relocation 138 139GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir, 140 [look for global separate data files in this path @<:@DATADIR/gdb@:>@], 141 [${datadir}/gdb]) 142 143AC_ARG_WITH(relocated-sources, 144AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]), 145[reloc_srcdir="${withval}" 146 AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir, 147 [Relocated directory for source files. ]) 148]) 149 150AC_MSG_CHECKING([for default auto-load directory]) 151AC_ARG_WITH(auto-load-dir, 152AS_HELP_STRING([--with-auto-load-dir=PATH], 153 [directories from which to load auto-loaded scripts @<:@$debugdir:$datadir/auto-load@:>@]),, 154 [with_auto_load_dir='$debugdir:$datadir/auto-load']) 155escape_dir=`echo $with_auto_load_dir | sed 's/[[$]]\(datadir\|debugdir\)\>/\\\\\\\\\\\\&/g'` 156AC_DEFINE_DIR(AUTO_LOAD_DIR, escape_dir, 157 [Directories from which to load auto-loaded scripts.]) 158AC_MSG_RESULT([$with_auto_load_dir]) 159 160AC_MSG_CHECKING([for default auto-load safe-path]) 161AC_ARG_WITH(auto-load-safe-path, 162AS_HELP_STRING([--with-auto-load-safe-path=PATH], 163 [directories safe to hold auto-loaded files @<:@--with-auto-load-dir@:>@]) 164AS_HELP_STRING([--without-auto-load-safe-path], 165 [do not restrict auto-loaded files locations]), 166 [if test "$with_auto_load_safe_path" = "no"; then 167 with_auto_load_safe_path="/" 168 fi], 169[with_auto_load_safe_path="$with_auto_load_dir"]) 170escape_dir=`echo $with_auto_load_safe_path | sed 's/[[$]]\(datadir\|debugdir\)\>/\\\\\\\\\\\\&/g'` 171AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir, 172 [Directories safe to hold auto-loaded files.]) 173AC_MSG_RESULT([$with_auto_load_safe_path]) 174 175AC_CONFIG_SUBDIRS(testsuite) 176 177# Check whether to support alternative target configurations 178AC_ARG_ENABLE(targets, 179AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]), 180[case "${enableval}" in 181 yes | "") AC_ERROR(enable-targets option must specify target names or 'all') 182 ;; 183 no) enable_targets= ;; 184 *) enable_targets=$enableval ;; 185esac]) 186 187# Check whether to enable 64-bit support on 32-bit hosts 188AC_ARG_ENABLE(64-bit-bfd, 189AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]), 190[case "${enableval}" in 191 yes) want64=true ;; 192 no) want64=false ;; 193 *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;; 194esac],[want64=false])dnl 195 196# Provide defaults for some variables set by the per-host and per-target 197# configuration. 198gdb_host_obs=posix-hdep.o 199 200if test "${target}" = "${host}"; then 201 gdb_native=yes 202else 203 gdb_native=no 204fi 205 206. $srcdir/configure.host 207 208# Accumulate some settings from configure.tgt over all enabled targets 209 210TARGET_OBS= 211all_targets= 212HAVE_NATIVE_GCORE_TARGET= 213 214for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'` 215do 216 if test "$targ_alias" = "all"; then 217 all_targets=true 218 else 219 # Canonicalize the secondary target names. 220 result=`$ac_config_sub $targ_alias 2>/dev/null` 221 if test -n "$result"; then 222 targ=$result 223 else 224 targ=$targ_alias 225 fi 226 227 . ${srcdir}/configure.tgt 228 229 AS_IF([test -z "${gdb_target_obs}"], 230 [AC_MSG_ERROR([configuration ${targ} is unsupported.])]) 231 232 # Target-specific object files 233 for i in ${gdb_target_obs}; do 234 case " $TARGET_OBS " in 235 *" ${i} "*) ;; 236 *) 237 TARGET_OBS="$TARGET_OBS ${i}" 238 ;; 239 esac 240 done 241 242 # Check whether this target needs 64-bit CORE_ADDR 243 if test x${want64} = xfalse; then 244 . ${srcdir}/../bfd/config.bfd 245 fi 246 247 # Check whether this target is native and supports gcore. 248 if test $gdb_native = yes -a "$targ_alias" = "$target_alias" \ 249 && $gdb_have_gcore; then 250 HAVE_NATIVE_GCORE_TARGET=1 251 fi 252 fi 253done 254 255if test x${all_targets} = xtrue; then 256 257 # We want all 64-bit targets if we either: 258 # - run on a 64-bit host or 259 # - already require 64-bit support for some other target or 260 # - the --enable-64-bit-bfd option was supplied 261 # Otherwise we only support all 32-bit targets. 262 # 263 # NOTE: This test must be in sync with the corresponding 264 # tests in BFD! 265 266 if test x${want64} = xfalse; then 267 AC_CHECK_SIZEOF(long) 268 if test "x${ac_cv_sizeof_long}" = "x8"; then 269 want64=true 270 fi 271 fi 272 if test x${want64} = xtrue; then 273 TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)' 274 else 275 TARGET_OBS='$(ALL_TARGET_OBS)' 276 fi 277fi 278 279AC_SUBST(TARGET_OBS) 280AC_SUBST(HAVE_NATIVE_GCORE_TARGET) 281 282# For other settings, only the main target counts. 283gdb_sim= 284gdb_osabi= 285build_gdbserver= 286targ=$target; . ${srcdir}/configure.tgt 287 288# Fetch the default architecture and default target vector from BFD. 289targ=$target; . $srcdir/../bfd/config.bfd 290 291# We only want the first architecture, so strip off the others if 292# there is more than one. 293targ_archs=`echo $targ_archs | sed 's/ .*//'` 294 295if test "x$targ_archs" != x; then 296 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs, 297 [Define to BFD's default architecture. ]) 298fi 299if test "x$targ_defvec" != x; then 300 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec, 301 [Define to BFD's default target vector. ]) 302fi 303 304# The CLI cannot be disabled yet, but may be in the future. 305 306# Enable CLI. 307AC_ARG_ENABLE(gdbcli, 308AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]), 309 [case $enableval in 310 yes) 311 ;; 312 no) 313 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;; 314 *) 315 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;; 316 esac], 317 [enable_gdbcli=yes]) 318if test x"$enable_gdbcli" = xyes; then 319 if test -d $srcdir/cli; then 320 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)" 321 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)" 322 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)" 323 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)" 324 fi 325fi 326 327# Enable MI. 328AC_ARG_ENABLE(gdbmi, 329AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]), 330 [case $enableval in 331 yes | no) 332 ;; 333 *) 334 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;; 335 esac], 336 [enable_gdbmi=yes]) 337if test x"$enable_gdbmi" = xyes; then 338 if test -d $srcdir/mi; then 339 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)" 340 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)" 341 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)" 342 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)" 343 fi 344fi 345 346# Enable TUI. 347AC_ARG_ENABLE(tui, 348AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]), 349 [case $enableval in 350 yes | no | auto) 351 ;; 352 *) 353 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;; 354 esac],enable_tui=auto) 355 356# Enable gdbtk. 357AC_ARG_ENABLE(gdbtk, 358AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]), 359 [case $enableval in 360 yes | no) 361 ;; 362 *) 363 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;; 364 esac], 365 [if test -d $srcdir/gdbtk; then 366 enable_gdbtk=yes 367 else 368 enable_gdbtk=no 369 fi]) 370# We unconditionally disable gdbtk tests on selected platforms. 371case $host_os in 372 go32* | windows*) 373 AC_MSG_WARN([gdbtk isn't supported on $host; disabling]) 374 enable_gdbtk=no ;; 375esac 376 377# Libunwind support for ia64. 378 379AC_ARG_WITH(libunwind-ia64, 380AS_HELP_STRING([--with-libunwind-ia64], 381 [use libunwind frame unwinding for ia64 targets]),, 382 [with_libunwind_ia64=auto]) 383 384# Backward compatibility option. 385if test "${with_libunwind+set}" = set; then 386 if test x"$with_libunwind_ia64" != xauto; then 387 AC_MSG_ERROR( 388 [option --with-libunwind is deprecated, use --with-libunwind-ia64]) 389 fi 390 AC_MSG_WARN([option --with-libunwind is deprecated, use --with-libunwind-ia64]) 391 with_libunwind_ia64="$with_libunwind" 392fi 393 394case "$with_libunwind_ia64" in 395 yes | no) 396 ;; 397 auto) 398 AC_CHECK_HEADERS(libunwind-ia64.h) 399 with_libunwind_ia64=$ac_cv_header_libunwind_ia64_h 400 ;; 401 *) 402 AC_MSG_ERROR( 403 [bad value $with_libunwind_ia64 for GDB --with-libunwind-ia64 option]) 404 ;; 405esac 406 407if test x"$with_libunwind_ia64" = xyes; then 408 AC_CHECK_HEADERS(libunwind-ia64.h) 409 if test x"$ac_cv_header_libunwind_ia64_h" != xyes; then 410 AC_MSG_ERROR([GDB option --with-libunwind-ia64 requires libunwind-ia64.h]) 411 fi 412 CONFIG_OBS="$CONFIG_OBS ia64-libunwind-tdep.o" 413 CONFIG_DEPS="$CONFIG_DEPS ia64-libunwind-tdep.o" 414 CONFIG_SRCS="$CONFIG_SRCS ia64-libunwind-tdep.c" 415fi 416 417opt_curses=no 418AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval) 419 420prefer_curses=no 421if test "$opt_curses" = "yes"; then 422 prefer_curses=yes 423fi 424 425# Profiling support. 426AC_ARG_ENABLE(profiling, 427AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]), 428 [case $enableval in 429 yes | no) 430 ;; 431 *) 432 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;; 433 esac], 434 [enable_profiling=no]) 435 436AC_CHECK_FUNCS(monstartup _mcleanup) 437AC_CACHE_CHECK([for _etext], ac_cv_var__etext, 438[AC_TRY_LINK( 439[#include <stdlib.h> 440extern char _etext; 441], 442[free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)]) 443if test $ac_cv_var__etext = yes; then 444 AC_DEFINE(HAVE__ETEXT, 1, 445 [Define to 1 if your system has the _etext variable. ]) 446fi 447AC_CACHE_CHECK([for etext], ac_cv_var_etext, 448[AC_TRY_LINK( 449[#include <stdlib.h> 450extern char etext; 451], 452[free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)]) 453if test $ac_cv_var_etext = yes; then 454 AC_DEFINE(HAVE_ETEXT, 1, 455 [Define to 1 if your system has the etext variable. ]) 456fi 457if test "$enable_profiling" = yes ; then 458 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then 459 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup) 460 fi 461 PROFILE_CFLAGS=-pg 462 OLD_CFLAGS="$CFLAGS" 463 CFLAGS="$CFLAGS $PROFILE_CFLAGS" 464 465 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg, 466 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes, 467 ac_cv_cc_supports_pg=no)]) 468 469 if test $ac_cv_cc_supports_pg = no; then 470 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg) 471 fi 472 473 CFLAGS="$OLD_CFLAGS" 474fi 475 476ACX_PKGVERSION([GDB]) 477ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/]) 478AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description]) 479AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address]) 480 481# --------------------- # 482# Checks for programs. # 483# --------------------- # 484 485AC_PROG_AWK 486AC_PROG_INSTALL 487AC_PROG_LN_S 488AC_PROG_RANLIB 489AC_PROG_YACC 490 491AC_CHECK_TOOL(AR, ar) 492AC_CHECK_TOOL(DLLTOOL, dlltool) 493AC_CHECK_TOOL(WINDRES, windres) 494 495case $host_os in 496 gnu*) 497 # Needed for GNU Hurd hosts. 498 AC_CHECK_TOOL(MIG, mig) 499 if test x"$MIG" = x; then 500 AC_MSG_ERROR([MIG not found but required for $host hosts]) 501 fi 502 ;; 503esac 504 505# ---------------------- # 506# Checks for libraries. # 507# ---------------------- # 508 509# We might need to link with -lm; most simulators need it. 510AC_CHECK_LIB(m, main) 511 512# We need to link with -lw to get `wctype' on Solaris before Solaris 513# 2.6. Solaris 2.6 and beyond have this function in libc, and have a 514# libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1 515# is known to have this problem). Therefore we avoid libw if we can. 516AC_CHECK_FUNC(wctype, [], 517 [AC_CHECK_LIB(w, wctype)]) 518 519# Some systems (e.g. Solaris) have `gethostbyname' in libnsl. 520AC_SEARCH_LIBS(gethostbyname, nsl) 521 522# Some systems (e.g. Solaris) have `socketpair' in libsocket. 523AC_SEARCH_LIBS(socketpair, socket) 524 525# Link in zlib if we can. This allows us to read compressed debug sections. 526AM_ZLIB 527 528# On HP/UX we may need libxpdl for dlgetmodinfo (used by solib-pa64.c). 529AC_SEARCH_LIBS(dlgetmodinfo, [dl xpdl]) 530 531AM_ICONV 532 533# GDB may fork/exec the iconv program to get the list of supported character 534# sets. Allow the user to specify where to find it. 535# There are several factors affecting the choice of option name: 536# - There is already --with-libiconv-prefix but we can't use it, it specifies 537# the build-time location of libiconv files. 538# - The program we need to find is iconv, which comes with glibc. The user 539# doesn't necessarily have libiconv installed. Therefore naming this 540# --with-libiconv-foo feels wrong. 541# - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is 542# defined to work on directories not files (though it really doesn't know 543# the difference). 544# - Calling this --with-iconv-prefix is perceived to cause too much confusion 545# with --with-libiconv-prefix. 546# Putting these together is why the option name is --with-iconv-bin. 547 548AC_ARG_WITH(iconv-bin, 549AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]), 550[iconv_bin="${withval}" 551 AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"], 552 [Path of directory of iconv program.]) 553 GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin}) 554]) 555 556# For the TUI, we need enhanced curses functionality. 557if test x"$enable_tui" != xno; then 558 prefer_curses=yes 559fi 560 561curses_found=no 562if test x"$prefer_curses" = xyes; then 563 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied 564 # curses library because the latter might not provide all the 565 # functionality we need. However, this leads to problems on systems 566 # where the linker searches /usr/local/lib, but the compiler doesn't 567 # search /usr/local/include, if ncurses is installed in /usr/local. A 568 # default installation of ncurses on alpha*-dec-osf* will lead to such 569 # a situation. 570 AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses]) 571 572 if test "$ac_cv_search_waddstr" != no; then 573 curses_found=yes 574 fi 575fi 576 577# Check whether we should enable the TUI, but only do so if we really 578# can. 579if test x"$enable_tui" != xno; then 580 if test -d $srcdir/tui; then 581 if test "$curses_found" != no; then 582 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)" 583 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)" 584 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)" 585 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)" 586 else 587 if test x"$enable_tui" = xyes; then 588 AC_MSG_ERROR([no enhanced curses library found; disable TUI]) 589 else 590 AC_MSG_WARN([no enhanced curses library found; disabling TUI]) 591 fi 592 fi 593 fi 594fi 595 596# Since GDB uses Readline, we need termcap functionality. In many 597# cases this will be provided by the curses library, but some systems 598# have a seperate termcap library, or no curses library at all. 599 600case $host_os in 601 cygwin*) 602 if test -d $srcdir/libtermcap; then 603 LIBS="../libtermcap/libtermcap.a $LIBS" 604 ac_cv_search_tgetent="../libtermcap/libtermcap.a" 605 fi ;; 606 go32* | *djgpp*) 607 ac_cv_search_tgetent="none required" 608 ;; 609 *mingw32*) 610 if test x"$curses_found" != xyes; then 611 ac_cv_search_tgetent="none required" 612 CONFIG_OBS="$CONFIG_OBS windows-termcap.o" 613 fi ;; 614esac 615 616# These are the libraries checked by Readline. 617AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses]) 618 619if test "$ac_cv_search_tgetent" = no; then 620 AC_MSG_ERROR([no termcap library found]) 621fi 622 623AC_ARG_WITH([system-readline], 624 [AS_HELP_STRING([--with-system-readline], 625 [use installed readline library])]) 626 627if test "$with_system_readline" = yes; then 628 READLINE=-lreadline 629 READLINE_DEPS= 630 READLINE_CFLAGS= 631 READLINE_TEXI_INCFLAG= 632else 633 READLINE='$(READLINE_DIR)/libreadline.a' 634 READLINE_DEPS='$(READLINE)' 635 READLINE_CFLAGS='-I$(READLINE_SRC)/..' 636 READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)' 637fi 638AC_SUBST(READLINE) 639AC_SUBST(READLINE_DEPS) 640AC_SUBST(READLINE_CFLAGS) 641AC_SUBST(READLINE_TEXI_INCFLAG) 642 643# Generate jit-reader.h 644 645# This is typedeffed to GDB_CORE_ADDR in jit-reader.h 646TARGET_PTR= 647 648AC_CHECK_SIZEOF(unsigned long long) 649AC_CHECK_SIZEOF(unsigned long) 650AC_CHECK_SIZEOF(unsigned __int128) 651 652if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then 653 TARGET_PTR="unsigned long" 654elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then 655 TARGET_PTR="unsigned long long" 656elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then 657 TARGET_PTR="unsigned __int128" 658else 659 TARGET_PTR="unsigned long" 660fi 661 662AC_SUBST(TARGET_PTR) 663AC_CONFIG_FILES([jit-reader.h:jit-reader.in]) 664 665AC_SEARCH_LIBS(dlopen, dl) 666 667GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir], 668 [directory to load the JIT readers from], 669 [${libdir}/gdb]) 670 671AC_ARG_WITH(expat, 672 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]), 673 [], [with_expat=auto]) 674AC_MSG_CHECKING([whether to use expat]) 675AC_MSG_RESULT([$with_expat]) 676 677if test "${with_expat}" = no; then 678 AC_MSG_WARN([expat support disabled; some features may be unavailable.]) 679 HAVE_LIBEXPAT=no 680else 681 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"], 682 [XML_Parser p = XML_ParserCreate (0);]) 683 if test "$HAVE_LIBEXPAT" != yes; then 684 if test "$with_expat" = yes; then 685 AC_MSG_ERROR([expat is missing or unusable]) 686 else 687 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.]) 688 fi 689 else 690 save_LIBS=$LIBS 691 LIBS="$LIBS $LIBEXPAT" 692 AC_CHECK_FUNCS(XML_StopParser) 693 LIBS=$save_LIBS 694 fi 695fi 696 697# --------------------- # 698# Check for libpython. # 699# --------------------- # 700 701dnl Utility to simplify finding libpython. 702dnl $1 = pythonX.Y 703dnl $2 = the shell variable to assign the result to 704dnl If libpython is found we store $version here. 705dnl $3 = additional flags to add to CPPFLAGS 706dnl $4 = additional flags to add to LIBS 707 708AC_DEFUN([AC_TRY_LIBPYTHON], 709[ 710 version=$1 711 define([have_libpython_var],$2) 712 new_CPPFLAGS=$3 713 new_LIBS=$4 714 AC_MSG_CHECKING([for ${version}]) 715 save_CPPFLAGS=$CPPFLAGS 716 save_LIBS=$LIBS 717 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" 718 LIBS="$LIBS $new_LIBS" 719 found_usable_python=no 720 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]], 721 [[Py_Initialize ();]]), 722 [have_libpython_var=${version} 723 found_usable_python=yes 724 PYTHON_CPPFLAGS=$new_CPPFLAGS 725 PYTHON_LIBS=$new_LIBS]) 726 CPPFLAGS=$save_CPPFLAGS 727 LIBS=$save_LIBS 728 AC_MSG_RESULT([${found_usable_python}]) 729]) 730 731dnl There are several different values for --with-python: 732dnl 733dnl no - Don't include python support. 734dnl yes - Include python support, error if it's missing. 735dnl If we find python in $PATH, use it to fetch configure options, 736dnl otherwise assume the compiler can find it with no help from us. 737dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn. 738dnl auto - Same as "yes", but if python is missing from the system, 739dnl fall back to "no". 740dnl /path/to/python/exec-prefix - 741dnl Use the python located in this directory. 742dnl If /path/to/python/exec-prefix/bin/python exists, use it to find 743dnl the compilation parameters. Otherwise use 744dnl -I/path/to/python/exec-prefix/include, 745dnl -L/path/to/python/exec-prefix/lib. 746dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn. 747dnl NOTE: This case is historical. It is what was done for 7.0/7.1 748dnl but is deprecated. 749dnl /path/to/python/executable - 750dnl Run python-config.py with this version of python to fetch the 751dnl compilation parameters. 752dnl NOTE: This needn't be the real python executable. 753dnl In a cross-compilation scenario (build != host), this could be 754dnl a shell script that provides what python-config.py provides for 755dnl --ldflags, --includes, --exec-prefix. 756dnl python-executable - 757dnl Find python-executable in $PATH, and then handle the same as 758dnl /path/to/python/executable. 759dnl 760dnl If a python program is specified, it is used to run python-config.py and 761dnl is passed --ldflags, --includes, --exec-prefix. 762 763AC_ARG_WITH(python, 764 AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]), 765 [], [with_python=auto]) 766AC_MSG_CHECKING([whether to use python]) 767AC_MSG_RESULT([$with_python]) 768 769if test "${with_python}" = no; then 770 AC_MSG_WARN([python support disabled; some features may be unavailable.]) 771 have_libpython=no 772else 773 case "${with_python}" in 774 [[\\/]]* | ?:[[\\/]]*) 775 if test -d ${with_python}; then 776 # Assume the python binary is ${with_python}/bin/python. 777 python_prog="${with_python}/bin/python" 778 python_prefix= 779 # If python does not exit ${with_python}/bin, then try in 780 # ${with_python}. On Windows/MinGW, this is where the Python 781 # executable is. 782 if test ! -x "${python_prog}"; then 783 python_prog="${with_python}/python" 784 python_prefix= 785 fi 786 if test ! -x "${python_prog}"; then 787 # Fall back to gdb 7.0/7.1 behaviour. 788 python_prog=missing 789 python_prefix=${with_python} 790 fi 791 elif test -x "${with_python}"; then 792 # While we can't run python compiled for $host (unless host == build), 793 # the user could write a script that provides the needed information, 794 # so we support that. 795 python_prog=${with_python} 796 python_prefix= 797 else 798 AC_ERROR(invalid value for --with-python) 799 fi 800 ;; 801 */*) 802 # Disallow --with-python=foo/bar. 803 AC_ERROR(invalid value for --with-python) 804 ;; 805 *) 806 # The user has either specified auto, yes, or the name of the python 807 # program assumed to be in $PATH. 808 python_prefix= 809 case "${with_python}" in 810 yes | auto) 811 if test ${build} = ${host}; then 812 AC_PATH_PROG(python_prog_path, python, missing) 813 if test "${python_prog_path}" = missing; then 814 python_prog=missing 815 else 816 python_prog=${python_prog_path} 817 fi 818 else 819 # Not much we can do except assume the cross-compiler will find the 820 # right files. 821 python_prog=missing 822 fi 823 ;; 824 *) 825 # While we can't run python compiled for $host (unless host == build), 826 # the user could write a script that provides the needed information, 827 # so we support that. 828 python_prog="${with_python}" 829 AC_PATH_PROG(python_prog_path, ${python_prog}, missing) 830 if test "${python_prog_path}" = missing; then 831 AC_ERROR(unable to find python program ${python_prog}) 832 fi 833 ;; 834 esac 835 esac 836 837 if test "${python_prog}" != missing; then 838 # We have a python program to use, but it may be too old. 839 # Don't flag an error for --with-python=auto (the default). 840 have_python_config=yes 841 python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes` 842 if test $? != 0; then 843 have_python_config=failed 844 if test "${with_python}" != auto; then 845 AC_ERROR(failure running python-config --includes) 846 fi 847 fi 848 python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags` 849 if test $? != 0; then 850 have_python_config=failed 851 if test "${with_python}" != auto; then 852 AC_ERROR(failure running python-config --ldflags) 853 fi 854 fi 855 python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix` 856 if test $? != 0; then 857 have_python_config=failed 858 if test "${with_python}" != auto; then 859 AC_ERROR(failure running python-config --exec-prefix) 860 fi 861 fi 862 else 863 # We do not have a python executable we can use to determine where 864 # to find the Python headers and libs. We cannot guess the include 865 # path from the python_prefix either, because that include path 866 # depends on the Python version. So, there is nothing much we can 867 # do except assume that the compiler will be able to find those files. 868 python_includes= 869 python_libs= 870 have_python_config=no 871 fi 872 873 # If we have python-config, only try the configuration it provides. 874 # Otherwise fallback on the old way of trying different versions of 875 # python in turn. 876 877 have_libpython=no 878 if test "${have_python_config}" = yes; then 879 # Determine the Python version by extracting "-lpython<version>" 880 # part of the python_libs. <version> is usually X.Y with X and Y 881 # being decimal numbers, but can also be XY (seen on Windows). 882 # 883 # The extraction is performed using sed with a regular expression. 884 # Initially, the regexp used was using the '?' quantifier to make 885 # the dot in the version number optional. Unfortunately, this 886 # does not work with non-GNU versions of sed because, because of 887 # what looks like a limitation (the '?' quantifier does not work 888 # with back-references). We work around this limitation by using 889 # the '*' quantifier instead. It means that, in theory, we might 890 # match unexpected version strings such as "-lpython2..7", but 891 # this seems unlikely in practice. And even if that happens, 892 # an error will be triggered later on, when checking that version 893 # number. 894 python_version=`echo " ${python_libs} " \ 895 | sed -e 's,^.* -l\(python[[0-9]]*[[.]]*[[0-9]]*\).*$,\1,'` 896 case "${python_version}" in 897 python*) 898 AC_TRY_LIBPYTHON(${python_version}, have_libpython, 899 ${python_includes}, ${python_libs}) 900 ;; 901 *) 902 AC_MSG_ERROR([unable to determine python version from ${python_libs}]) 903 ;; 904 esac 905 elif test "${have_python_config}" != failed; then 906 if test "${have_libpython}" = no; then 907 AC_TRY_LIBPYTHON(python2.7, have_libpython, 908 ${python_includes}, "${python_libs} -lpython2.7") 909 fi 910 if test "${have_libpython}" = no; then 911 AC_TRY_LIBPYTHON(python2.6, have_libpython, 912 ${python_includes}, "${python_libs} -lpython2.6") 913 fi 914 if test ${have_libpython} = no; then 915 AC_TRY_LIBPYTHON(python2.5, have_libpython, 916 ${python_includes}, "${python_libs} -lpython2.5") 917 fi 918 if test ${have_libpython} = no; then 919 AC_TRY_LIBPYTHON(python2.4, have_libpython, 920 ${python_includes}, "${python_libs} -lpython2.4") 921 fi 922 fi 923 if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then 924 AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.]) 925 elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then 926 AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.]) 927 elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then 928 AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.]) 929 elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then 930 AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.]) 931 fi 932 933 if test "${have_libpython}" = no; then 934 case "${with_python}" in 935 yes) 936 AC_MSG_ERROR([python is missing or unusable]) 937 ;; 938 auto) 939 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.]) 940 ;; 941 *) 942 AC_MSG_ERROR([no usable python found at ${with_python}]) 943 ;; 944 esac 945 else 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}) 950 fi 951 fi 952fi 953 954if test "${have_libpython}" != no; then 955 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.]) 956 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)" 957 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)" 958 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)" 959 CONFIG_INSTALL="$CONFIG_INSTALL install-python" 960 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)" 961 962 # Flags needed to compile Python code (taken from python-config --cflags). 963 # We cannot call python-config directly because it will output whatever was 964 # used when compiling the Python interpreter itself, including flags which 965 # would make the python-related objects be compiled differently from the 966 # rest of GDB (e.g., -O2 and -fPIC). 967 if test "${GCC}" = yes; then 968 tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv" 969 fi 970 971 if test "x${tentative_python_cflags}" != x; then 972 AC_MSG_CHECKING(compiler flags for python code) 973 for flag in ${tentative_python_cflags}; do 974 # Check that the compiler accepts it 975 saved_CFLAGS="$CFLAGS" 976 CFLAGS="$CFLAGS $flag" 977 AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",) 978 CFLAGS="$saved_CFLAGS" 979 done 980 AC_MSG_RESULT(${PYTHON_CFLAGS}) 981 fi 982 983 # On x64 Windows, Python's include headers, and pyconfig.h in 984 # particular, rely on MS_WIN64 macro to detect that it's a 64bit 985 # version of Windows. Unfortunately, MS_WIN64 is only defined if 986 # _MSC_VER, a Microsoft-specific macro, is defined. So, when 987 # building on x64 Windows with GCC, we define MS_WIN64 ourselves. 988 # The issue was reported to the Python community, but still isn't 989 # solved as of 2012-10-02 (http://bugs.python.org/issue4709). 990 991 case "$gdb_host" in 992 mingw64) 993 if test "${GCC}" = yes; then 994 CPPFLAGS="$CPPFLAGS -DMS_WIN64" 995 fi 996 ;; 997 esac 998 999 # Note that "python -m threading" cannot be used to check for 1000 # threading support due to a bug in Python 2.7.3 1001 # (http://bugs.python.org/issue15567). 1002 AC_MSG_CHECKING(whether python supports threads) 1003 saved_CPPFLAGS="${CPPFLAGS}" 1004 CPPFLAGS="${PYTHON_CPPFLAGS}" 1005 # Note that the test is reversed so that python_has_threads=yes on 1006 # unexpected failures. 1007 AC_PREPROC_IFELSE(AC_LANG_SOURCE([[ 1008#include <Python.h> 1009#ifdef WITH_THREAD 1010# error 1011#endif 1012 ]]), [python_has_threads=no], [python_has_threads=yes]) 1013 AC_MSG_RESULT(${python_has_threads}) 1014 CPPFLAGS="${saved_CPPFLAGS}" 1015else 1016 # Even if Python support is not compiled in, we need to have this file 1017 # included so that the "python" command, et.al., still exists. 1018 CONFIG_OBS="$CONFIG_OBS python.o" 1019 CONFIG_SRCS="$CONFIG_SRCS python/python.c" 1020fi 1021AC_SUBST(PYTHON_CFLAGS) 1022AC_SUBST(PYTHON_CPPFLAGS) 1023AC_SUBST(PYTHON_LIBS) 1024AM_CONDITIONAL(HAVE_PYTHON, test "${have_libpython}" != no) 1025 1026# -------------------- # 1027# Check for libguile. # 1028# -------------------- # 1029 1030dnl Utility to simplify finding libguile. 1031dnl $1 = pkg-config-program 1032dnl $2 = space-separate list of guile versions to try 1033dnl $3 = yes|no, indicating whether to flag errors or ignore them 1034dnl $4 = the shell variable to assign the result to 1035dnl If libguile is found we store "yes" here. 1036 1037AC_DEFUN([AC_TRY_LIBGUILE], 1038[ 1039 pkg_config=$1 1040 guile_version_list=$2 1041 flag_errors=$3 1042 define([have_libguile_var],$4) 1043 found_usable_guile=checking 1044 AC_MSG_CHECKING([for usable guile from ${pkg_config}]) 1045 for guile_version in ${guile_version_list}; do 1046 ${pkg_config} --exists ${guile_version} 2>/dev/null 1047 if test $? != 0; then 1048 continue 1049 fi 1050 dnl pkg-config says the package exists, so if we get an error now, 1051 dnl that's bad. 1052 new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}` 1053 if test $? != 0; then 1054 AC_MSG_ERROR([failure running pkg-config --cflags ${guile_version}]) 1055 fi 1056 new_LIBS=`${pkg_config} --libs ${guile_version}` 1057 if test $? != 0; then 1058 AC_MSG_ERROR([failure running pkg-config --libs ${guile_version}]) 1059 fi 1060 dnl If we get this far, great. 1061 found_usable_guile=${guile_version} 1062 break 1063 done 1064 if test "${found_usable_guile}" = "checking"; then 1065 if test "${flag_errors}" = "yes"; then 1066 AC_MSG_ERROR([unable to find usable guile version from "${guile_version_list}"]) 1067 else 1068 found_usable_guile=no 1069 fi 1070 fi 1071 dnl One final sanity check. 1072 dnl The user could have said --with-guile=python-2.7. 1073 if test "${found_usable_guile}" != no; then 1074 save_CPPFLAGS=$CPPFLAGS 1075 save_LIBS=$LIBS 1076 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" 1077 LIBS="$LIBS $new_LIBS" 1078 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "libguile.h"]], 1079 [[scm_init_guile ();]]), 1080 [have_libguile_var=yes 1081 GUILE_CPPFLAGS=$new_CPPFLAGS 1082 GUILE_LIBS=$new_LIBS], 1083 [found_usable_guile=no]) 1084 CPPFLAGS=$save_CPPFLAGS 1085 LIBS=$save_LIBS 1086 if test "${found_usable_guile}" = no; then 1087 if test "${flag_errors}" = yes; then 1088 AC_MSG_FAILURE([linking guile version ${guile_version} test program failed]) 1089 fi 1090 fi 1091 fi 1092 AC_MSG_RESULT([${found_usable_guile}]) 1093]) 1094 1095dnl There are several different values for --with-guile: 1096dnl 1097dnl no - Don't include guile support. 1098dnl yes - Include guile support, error if it's missing. 1099dnl The pkg-config program must be in $PATH. 1100dnl auto - Same as "yes", but if guile is missing from the system, 1101dnl fall back to "no". 1102dnl guile-version [guile-version-choice-2 ...] - 1103dnl A space-separated list of guile package versions to try. 1104dnl These are passed to pkg-config as-is. 1105dnl E.g., guile-2.0 or guile-2.2-uninstalled 1106dnl This requires making sure PKG_CONFIG_PATH is set appropriately. 1107dnl /path/to/pkg-config - 1108dnl Use this pkg-config program. 1109dnl NOTE: This needn't be the "real" pkg-config program. 1110dnl It could be a shell script. It is invoked as: 1111dnl pkg-config --exists $version 1112dnl pkg-config --cflags $version 1113dnl pkg-config --libs $version 1114dnl pkg-config --variable guild $version 1115dnl The script will be called with $version having each value in 1116dnl $try_guile_versions until --exists indicates success. 1117 1118AC_ARG_WITH(guile, 1119 AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no/<guile-version>/<pkg-config-program>)]), 1120 [], [with_guile=auto]) 1121AC_MSG_CHECKING([whether to use guile]) 1122AC_MSG_RESULT([$with_guile]) 1123 1124dnl We check guile with pkg-config. 1125AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing) 1126 1127try_guile_versions="guile-2.2 guile-2.0" 1128have_libguile=no 1129case "${with_guile}" in 1130no) 1131 AC_MSG_WARN([guile support disabled; some features will be unavailable.]) 1132 ;; 1133auto) 1134 if test "${pkg_config_prog_path}" = "missing"; then 1135 AC_MSG_WARN([pkg-config not found, guile support disabled]) 1136 else 1137 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, no, have_libguile) 1138 fi 1139 ;; 1140yes) 1141 if test "${pkg_config_prog_path}" = "missing"; then 1142 AC_MSG_ERROR([pkg-config not found]) 1143 fi 1144 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, yes, have_libguile) 1145 ;; 1146[[\\/]]* | ?:[[\\/]]*) 1147 if test -x "${with_guile}"; then 1148 AC_TRY_LIBGUILE(${with_guile}, ${try_guile_versions}, yes, have_libguile) 1149 else 1150 AC_MSG_ERROR([Guile config program not executable: ${with_guile}]) 1151 fi 1152 ;; 1153"" | */*) 1154 # Disallow --with=guile="" and --with-guile=foo/bar. 1155 AC_MSG_ERROR([invalid value for --with-guile]) 1156 ;; 1157*) 1158 # A space separate list of guile versions to try, in order. 1159 if test "${pkg_config_prog_path}" = "missing"; then 1160 AC_MSG_ERROR([pkg-config not found]) 1161 fi 1162 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${with_guile}, yes, have_libguile) 1163 ;; 1164esac 1165 1166if test "${have_libguile}" != no; then 1167 dnl Get the name of the 'guild' program. 1168 case "${with_guile}" in 1169 [[\\/]]* | ?:[[\\/]]*) 1170 GDB_GUILE_PROGRAM_NAMES(["${with_guile}"], ["${guile_version}"]) 1171 ;; 1172 *) 1173 GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"]) 1174 ;; 1175 esac 1176 1177 dnl Make sure guild can handle this host. 1178 GDB_TRY_GUILD([$srcdir/guile/lib/gdb/support.scm]) 1179 dnl If not, disable guile support. 1180 if test "$ac_cv_guild_ok" = no; then 1181 have_libguile=no 1182 AC_MSG_WARN(disabling guile support, $GUILD fails compiling for $host) 1183 fi 1184fi 1185 1186if test "${have_libguile}" != no; then 1187 AC_DEFINE(HAVE_GUILE, 1, [Define if Guile interpreter is being linked in.]) 1188 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_GUILE_OBS)" 1189 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_GUILE_DEPS)" 1190 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_GUILE_SRCS)" 1191 CONFIG_INSTALL="$CONFIG_INSTALL install-guile" 1192 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_GUILE_CFLAGS)" 1193 1194 dnl The 'scm_new_smob' function appeared in Guile 2.0.6. 1195 save_LIBS="$LIBS" 1196 save_CPPFLAGS="$CPPFLAGS" 1197 LIBS="$GUILE_LIBS" 1198 CPPFLAGS="$GUILE_CPPFLAGS" 1199 AC_CHECK_FUNCS([scm_new_smob]) 1200 LIBS="$save_LIBS" 1201 CPPFLAGS="$save_CPPFLAGS" 1202else 1203 # Even if Guile support is not compiled in, we need to have these files 1204 # included. 1205 CONFIG_OBS="$CONFIG_OBS guile.o" 1206 CONFIG_SRCS="$CONFIG_SRCS guile/guile.c" 1207fi 1208AC_SUBST(GUILE_CPPFLAGS) 1209AC_SUBST(GUILE_LIBS) 1210AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no) 1211 1212# --------------------- # 1213# Check for libmcheck. # 1214# --------------------- # 1215 1216# Enable -lmcheck by default (it provides cheap-enough memory mangling), 1217# but turn it off if Python is enabled with threads, since -lmcheck is 1218# not thread safe (http://sourceware.org/bugzilla/show_bug.cgi?id=9939), 1219# and for releases. 1220if test \( "${have_libpython}" = "no" -o "${python_has_threads}" = "no" \) \ 1221 && $development; then 1222 libmcheck_default=yes 1223else 1224 libmcheck_default=no 1225fi 1226GDB_AC_LIBMCHECK(${libmcheck_default}) 1227 1228if test "$ENABLE_LIBMCHECK" = "yes" \ 1229 -a "${have_libpython}" != "no" \ 1230 -a "${python_has_threads}" = "yes" ; then 1231 AC_MSG_WARN(--enable-libmcheck may lead to spurious crashes if threads are used in python) 1232fi 1233 1234# ------------------------- # 1235# Checks for header files. # 1236# ------------------------- # 1237 1238AC_HEADER_STDC 1239# elf_hp.h is for HP/UX 64-bit shared library support. 1240AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \ 1241 thread_db.h \ 1242 sys/fault.h \ 1243 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \ 1244 sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \ 1245 sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \ 1246 termios.h termio.h \ 1247 sgtty.h elf_hp.h \ 1248 dlfcn.h]) 1249AC_CHECK_HEADERS(sys/proc.h, [], [], 1250[#if HAVE_SYS_PARAM_H 1251# include <sys/param.h> 1252#endif 1253]) 1254AC_CHECK_HEADERS(sys/user.h, [], [], 1255[#if HAVE_SYS_PARAM_H 1256# include <sys/param.h> 1257#endif 1258]) 1259 1260# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash 1261# between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to 1262# think that we don't have <curses.h> if we're using GCC. 1263case $host_os in 1264 solaris2.[[789]]) 1265 if test "$GCC" = yes; then 1266 AC_DEFINE(_MSE_INT_H, 1, 1267 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on 1268 Solaris 2.[789] when using GCC. ]) 1269 fi ;; 1270esac 1271AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h) 1272AC_CHECK_HEADERS(term.h, [], [], 1273[#if HAVE_CURSES_H 1274# include <curses.h> 1275#endif 1276]) 1277 1278# ------------------------- # 1279# Checks for declarations. # 1280# ------------------------- # 1281 1282AC_CHECK_DECLS([free, malloc, realloc, snprintf]) 1283AM_LC_MESSAGES 1284 1285# ----------------------- # 1286# Checks for structures. # 1287# ----------------------- # 1288 1289AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize]) 1290 1291# ------------------ # 1292# Checks for types. # 1293# ------------------ # 1294 1295AC_TYPE_SIGNAL 1296AC_CHECK_TYPES(socklen_t, [], [], 1297[#include <sys/types.h> 1298#include <sys/socket.h> 1299]) 1300 1301# ------------------------------------- # 1302# Checks for compiler characteristics. # 1303# ------------------------------------- # 1304 1305AC_C_CONST 1306AC_C_INLINE 1307AC_C_BIGENDIAN 1308 1309# ------------------------------ # 1310# Checks for library functions. # 1311# ------------------------------ # 1312 1313AC_FUNC_MMAP 1314AC_FUNC_VFORK 1315AC_CHECK_FUNCS([getrusage getuid getgid \ 1316 pipe poll pread pread64 pwrite resize_term \ 1317 sbrk setpgid setpgrp setsid \ 1318 sigaction sigprocmask sigsetmask socketpair \ 1319 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \ 1320 setrlimit getrlimit posix_madvise waitpid \ 1321 ptrace64 sigaltstack mkdtemp]) 1322AM_LANGINFO_CODESET 1323GDB_AC_COMMON 1324 1325# Check the return and argument types of ptrace. No canned test for 1326# this, so roll our own. 1327gdb_ptrace_headers=' 1328#include <sys/types.h> 1329#if HAVE_SYS_PTRACE_H 1330# include <sys/ptrace.h> 1331#endif 1332#if HAVE_UNISTD_H 1333# include <unistd.h> 1334#endif 1335' 1336# There is no point in checking if we don't have a prototype. 1337AC_CHECK_DECLS(ptrace, [], [ 1338 : ${gdb_cv_func_ptrace_ret='int'} 1339 : ${gdb_cv_func_ptrace_args='int,int,long,long'} 1340], $gdb_ptrace_headers) 1341# Check return type. Varargs (used on GNU/Linux) conflict with the 1342# empty argument list, so check for that explicitly. 1343AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret, 1344 AC_TRY_COMPILE($gdb_ptrace_headers, 1345 [extern long ptrace (enum __ptrace_request, ...);], 1346 gdb_cv_func_ptrace_ret='long', 1347 AC_TRY_COMPILE($gdb_ptrace_headers, 1348 [extern int ptrace ();], 1349 gdb_cv_func_ptrace_ret='int', 1350 gdb_cv_func_ptrace_ret='long'))) 1351AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret, 1352 [Define as the return type of ptrace.]) 1353# Check argument types. 1354AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [ 1355 AC_TRY_COMPILE($gdb_ptrace_headers, 1356 [extern long ptrace (enum __ptrace_request, ...);], 1357 [gdb_cv_func_ptrace_args='int,int,long,long'],[ 1358for gdb_arg1 in 'int' 'long'; do 1359 for gdb_arg2 in 'pid_t' 'int' 'long'; do 1360 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do 1361 for gdb_arg4 in 'int' 'long' 'void *'; do 1362 AC_TRY_COMPILE($gdb_ptrace_headers, [ 1363extern $gdb_cv_func_ptrace_ret 1364 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4); 1365], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4"; 1366 break 4;]) 1367 for gdb_arg5 in 'int *' 'int' 'long'; do 1368 AC_TRY_COMPILE($gdb_ptrace_headers, [ 1369extern $gdb_cv_func_ptrace_ret 1370 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5); 1371], [ 1372gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5"; 1373 break 5;]) 1374 done 1375 done 1376 done 1377 done 1378done 1379# Provide a safe default value. 1380: ${gdb_cv_func_ptrace_args='int,int,long,long'} 1381])]) 1382ac_save_IFS=$IFS; IFS=',' 1383set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'` 1384IFS=$ac_save_IFS 1385shift 1386AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3], 1387 [Define to the type of arg 3 for ptrace.]) 1388AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG4, $[4], 1389 [Define to the type of arg 4 for ptrace.]) 1390if test -n "$[5]"; then 1391 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5], 1392 [Define to the type of arg 5 for ptrace.]) 1393fi 1394 1395dnl AC_FUNC_SETPGRP does not work when cross compiling 1396dnl Instead, assume we will have a prototype for setpgrp if cross compiling. 1397if test "$cross_compiling" = no; then 1398 AC_FUNC_SETPGRP 1399else 1400 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void, 1401 [AC_TRY_COMPILE([ 1402#include <unistd.h> 1403], [ 1404 if (setpgrp(1,1) == -1) 1405 exit (0); 1406 else 1407 exit (1); 1408], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)]) 1409if test $ac_cv_func_setpgrp_void = yes; then 1410 AC_DEFINE(SETPGRP_VOID, 1) 1411fi 1412fi 1413 1414# Assume we'll default to using the included libiberty regex. 1415gdb_use_included_regex=yes 1416 1417# However, if the system regex is GNU regex, then default to *not* 1418# using the included regex. 1419AC_CACHE_CHECK( 1420 [for GNU regex], 1421 [gdb_cv_have_gnu_regex], 1422 [AC_TRY_COMPILE( 1423 [#include <gnu-versions.h>], 1424 [#define REGEX_INTERFACE_VERSION 1 1425#if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION 1426# error "Version mismatch" 1427#endif], 1428 gdb_cv_have_gnu_regex=yes, 1429 gdb_cv_have_gnu_regex=no)]) 1430if test $gdb_cv_have_gnu_regex = yes; then 1431 gdb_use_included_regex=no 1432fi 1433 1434AC_ARG_WITH(included-regex, 1435 AS_HELP_STRING([--without-included-regex], [don't use included regex; this is the default on systems with version 2 of the GNU C library (use with caution on other system)]), 1436 gdb_with_regex=$withval, 1437 gdb_with_regex=$gdb_use_included_regex) 1438if test "$gdb_with_regex" = yes; then 1439 AC_DEFINE(USE_INCLUDED_REGEX, 1, 1440 [Define to 1 if the regex included in libiberty should be used.]) 1441fi 1442 1443# Check if <sys/proc.h> defines `struct thread' with a td_pcb member. 1444AC_CHECK_MEMBERS([struct thread.td_pcb], [], [], 1445[#include <sys/param.h> 1446#include <sys/proc.h> 1447]) 1448 1449# See if <sys/lwp.h> defines `struct lwp`. 1450AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp, 1451[AC_TRY_COMPILE([#include <sys/param.h> 1452#define _KMEMUSER 1453#include <sys/lwp.h>], [struct lwp l;], 1454gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)]) 1455if test $gdb_cv_struct_lwp = yes; then 1456 AC_DEFINE(HAVE_STRUCT_LWP, 1, 1457 [Define to 1 if your system has struct lwp.]) 1458fi 1459 1460# See if <machine/reg.h> degines `struct reg'. 1461AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg, 1462[AC_TRY_COMPILE([#include <sys/types.h> 1463#include <machine/reg.h>], [struct reg r;], 1464gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)]) 1465if test $gdb_cv_struct_reg = yes; then 1466 AC_DEFINE(HAVE_STRUCT_REG, 1, 1467 [Define to 1 if your system has struct reg in <machine/reg.h>.]) 1468fi 1469 1470# See if <machine/reg.h> supports the %fs and %gs i386 segment registers. 1471# Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'. 1472AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [], 1473 [#include <machine/reg.h>]) 1474 1475# See if <sys/user.h> supports the %fs_base and %gs_bas amd64 segment registers. 1476# Older amd64 Linux's don't have the fs_base and gs_base members of 1477# `struct user_regs_struct'. 1478AC_CHECK_MEMBERS([struct user_regs_struct.fs_base, struct user_regs_struct.gs_base], 1479 [], [], [#include <sys/user.h>]) 1480 1481# See if <sys/ptrace.h> provides the PTRACE_GETREGS request. 1482AC_MSG_CHECKING(for PTRACE_GETREGS) 1483AC_CACHE_VAL(gdb_cv_have_ptrace_getregs, 1484[AC_TRY_COMPILE([#include <sys/ptrace.h>], 1485 [PTRACE_GETREGS;], 1486 [gdb_cv_have_ptrace_getregs=yes], 1487 [gdb_cv_have_ptrace_getregs=no])]) 1488AC_MSG_RESULT($gdb_cv_have_ptrace_getregs) 1489if test $gdb_cv_have_ptrace_getregs = yes; then 1490 AC_DEFINE(HAVE_PTRACE_GETREGS, 1, 1491 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.]) 1492fi 1493 1494# See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request. 1495AC_MSG_CHECKING(for PTRACE_GETFPXREGS) 1496AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs, 1497[AC_TRY_COMPILE([#include <sys/ptrace.h>], 1498 [PTRACE_GETFPXREGS;], 1499 [gdb_cv_have_ptrace_getfpxregs=yes], 1500 [gdb_cv_have_ptrace_getfpxregs=no])]) 1501AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs) 1502if test $gdb_cv_have_ptrace_getfpxregs = yes; then 1503 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1, 1504 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.]) 1505fi 1506 1507# See if <sys/ptrace.h> provides the PT_GETDBREGS request. 1508AC_MSG_CHECKING(for PT_GETDBREGS) 1509AC_CACHE_VAL(gdb_cv_have_pt_getdbregs, 1510[AC_TRY_COMPILE([#include <sys/types.h> 1511#include <sys/ptrace.h>], 1512 [PT_GETDBREGS;], 1513 [gdb_cv_have_pt_getdbregs=yes], 1514 [gdb_cv_have_pt_getdbregs=no])]) 1515AC_MSG_RESULT($gdb_cv_have_pt_getdbregs) 1516if test $gdb_cv_have_pt_getdbregs = yes; then 1517 AC_DEFINE(HAVE_PT_GETDBREGS, 1, 1518 [Define if sys/ptrace.h defines the PT_GETDBREGS request.]) 1519fi 1520 1521# See if <sys/ptrace.h> provides the PT_GETXMMREGS request. 1522AC_MSG_CHECKING(for PT_GETXMMREGS) 1523AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs, 1524[AC_TRY_COMPILE([#include <sys/types.h> 1525#include <sys/ptrace.h>], 1526 [PT_GETXMMREGS;], 1527 [gdb_cv_have_pt_getxmmregs=yes], 1528 [gdb_cv_have_pt_getxmmregs=no])]) 1529AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs) 1530if test $gdb_cv_have_pt_getxmmregs = yes; then 1531 AC_DEFINE(HAVE_PT_GETXMMREGS, 1, 1532 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.]) 1533fi 1534 1535# Detect which type of /proc is in use, such as for Solaris. 1536 1537if test "${target}" = "${host}"; then 1538 case "${host}" in 1539 *-*-sysv4.2* | *-*-sysv5* ) 1540 AC_DEFINE(NEW_PROC_API, 1, 1541 [Define if you want to use new multi-fd /proc interface.]) 1542 ;; 1543 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*) 1544 AC_DEFINE(NEW_PROC_API, 1, 1545 [Define if you want to use new multi-fd /proc interface.]) 1546 ;; 1547 mips-sgi-irix5*) 1548 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5. 1549 AC_DEFINE([_KMEMUSER], 1, 1550 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works 1551 around a <sys/proc.h> problem on IRIX 5.]) 1552 ;; 1553 esac 1554fi 1555 1556if test "$ac_cv_header_sys_procfs_h" = yes; then 1557 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t) 1558 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t) 1559 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t) 1560 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t) 1561 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t) 1562 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t) 1563 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t) 1564 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t) 1565 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t) 1566 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t) 1567 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t) 1568 1569 1570 dnl Check for broken prfpregset_t type 1571 1572 dnl For Linux/i386, glibc 2.1.3 was released with a bogus 1573 dnl prfpregset_t type (it's a typedef for the pointer to a struct 1574 dnl instead of the struct itself). We detect this here, and work 1575 dnl around it in gdb_proc_service.h. 1576 1577 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then 1578 AC_MSG_CHECKING(whether prfpregset_t type is broken) 1579 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken, 1580 [AC_TRY_RUN([#include <sys/procfs.h> 1581 int main () 1582 { 1583 if (sizeof (prfpregset_t) == sizeof (void *)) 1584 return 1; 1585 return 0; 1586 }], 1587 gdb_cv_prfpregset_t_broken=no, 1588 gdb_cv_prfpregset_t_broken=yes, 1589 gdb_cv_prfpregset_t_broken=yes)]) 1590 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken) 1591 if test $gdb_cv_prfpregset_t_broken = yes; then 1592 AC_DEFINE(PRFPREGSET_T_BROKEN, 1, 1593 [Define if the prfpregset_t type is broken.]) 1594 fi 1595 fi 1596fi 1597 1598# Check if the compiler supports the `long long' type. 1599 1600AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long, 1601 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( 1602[[extern long long foo;]], 1603[[switch (foo & 2) { case 0: return 1; }]])], 1604 gdb_cv_c_long_long=yes, 1605 gdb_cv_c_long_long=no)]) 1606if test $gdb_cv_c_long_long != yes; then 1607 # libdecnumber requires long long. 1608 AC_MSG_ERROR([Compiler must support long long for GDB.]) 1609fi 1610 1611# Check if the compiler and runtime support printing long longs. 1612 1613AC_CACHE_CHECK([for long long support in printf], 1614 gdb_cv_printf_has_long_long, 1615 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], 1616[[char buf[32]; 1617 long long l = 0; 1618 l = (l << 16) + 0x0123; 1619 l = (l << 16) + 0x4567; 1620 l = (l << 16) + 0x89ab; 1621 l = (l << 16) + 0xcdef; 1622 sprintf (buf, "0x%016llx", l); 1623 return (strcmp ("0x0123456789abcdef", buf));]])], 1624 gdb_cv_printf_has_long_long=yes, 1625 gdb_cv_printf_has_long_long=no, 1626 gdb_cv_printf_has_long_long=no)]) 1627if test $gdb_cv_printf_has_long_long = yes; then 1628 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1, 1629 [Define to 1 if the "%ll" format works to print long longs.]) 1630fi 1631 1632# Check if the compiler and runtime support printing decfloats. 1633 1634AC_CACHE_CHECK([for decfloat support in printf], 1635 gdb_cv_printf_has_decfloat, 1636 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], 1637[[char buf[64]; 1638 _Decimal32 d32 = 1.2345df; 1639 _Decimal64 d64 = 1.2345dd; 1640 _Decimal128 d128 = 1.2345dl; 1641 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128); 1642 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])], 1643 gdb_cv_printf_has_decfloat=yes, 1644 gdb_cv_printf_has_decfloat=no, 1645 gdb_cv_printf_has_decfloat=no)]) 1646if test $gdb_cv_printf_has_decfloat = yes; then 1647 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1, 1648 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.]) 1649fi 1650 1651# Check if the compiler supports the `long double' type. We can't use 1652# AC_C_LONG_DOUBLE because that one does additional checks on the 1653# constants defined in <float.h> that fail on some systems, 1654# e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6. 1655 1656AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double, 1657 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])], 1658 gdb_cv_c_long_double=yes, 1659 gdb_cv_c_long_double=no)]) 1660if test $gdb_cv_c_long_double = yes; then 1661 AC_DEFINE(HAVE_LONG_DOUBLE, 1, 1662 [Define to 1 if the compiler supports long double.]) 1663fi 1664 1665# Check if the compiler and runtime support printing long doubles. 1666 1667AC_CACHE_CHECK([for long double support in printf], 1668 gdb_cv_printf_has_long_double, 1669 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], 1670[[char buf[16]; 1671 long double f = 3.141592653; 1672 sprintf (buf, "%Lg", f); 1673 return (strncmp ("3.14159", buf, 7));]])], 1674 gdb_cv_printf_has_long_double=yes, 1675 gdb_cv_printf_has_long_double=no, 1676 gdb_cv_printf_has_long_double=no)]) 1677if test $gdb_cv_printf_has_long_double = yes; then 1678 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1, 1679 [Define to 1 if the "%Lg" format works to print long doubles.]) 1680fi 1681 1682# Check if the compiler and runtime support scanning long doubles. 1683 1684AC_CACHE_CHECK([for long double support in scanf], 1685 gdb_cv_scanf_has_long_double, 1686 [AC_RUN_IFELSE([AC_LANG_PROGRAM( 1687[[#include <stdio.h>]], 1688[[char *buf = "3.141592653"; 1689 long double f = 0; 1690 sscanf (buf, "%Lg", &f); 1691 return !(f > 3.14159 && f < 3.14160);]])], 1692 gdb_cv_scanf_has_long_double=yes, 1693 gdb_cv_scanf_has_long_double=no, 1694 gdb_cv_scanf_has_long_double=no)]) 1695if test $gdb_cv_scanf_has_long_double = yes; then 1696 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1, 1697 [Define to 1 if the "%Lg" format works to scan long doubles.]) 1698fi 1699 1700case ${host_os} in 1701aix*) 1702 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [ 1703 SAVE_LDFLAGS=$LDFLAGS 1704 1705 case $GCC in 1706 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;; 1707 *) gdb_cv_bigtoc=-bbigtoc ;; 1708 esac 1709 1710 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc 1711 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=]) 1712 LDFLAGS="${SAVE_LDFLAGS}" 1713 ]) 1714 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}" 1715 ;; 1716esac 1717 1718AC_MSG_CHECKING(for the dynamic export flag) 1719dynamic_list=false 1720if test "${gdb_native}" = yes; then 1721 # The dynamically loaded libthread_db needs access to symbols in the gdb 1722 # executable. Older GNU ld supports --export-dynamic but --dynamic-list 1723 # may not be supported there. 1724 old_LDFLAGS="$LDFLAGS" 1725 # Older GNU ld supports --export-dynamic but --dynamic-list it does not. 1726 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list" 1727 LDFLAGS="$LDFLAGS $RDYNAMIC" 1728 if test "${have_libpython}" = no; then 1729 AC_TRY_LINK([], [], [dynamic_list=true]) 1730 else 1731 # Workaround http://bugs.python.org/issue4434 where static 1732 # libpythonX.Y.a would get its symbols required for 1733 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list. 1734 # Problem does not happen for the recommended libpythonX.Y.so linkage. 1735 old_CFLAGS="$CFLAGS" 1736 CFLAGS="$CFLAGS $PYTHON_CFLAGS" 1737 old_LIBS="$LIBS" 1738 LIBS="$LIBS $PYTHON_LIBS" 1739 AC_RUN_IFELSE( 1740 AC_LANG_PROGRAM( 1741 [#include "]${have_libpython}[/Python.h"], 1742 [int err; 1743 Py_Initialize (); 1744 err = PyRun_SimpleString ("import itertools\n"); 1745 Py_Finalize (); 1746 return err == 0 ? 0 : 1;]), 1747 [dynamic_list=true], [], [true]) 1748 LIBS="$old_LIBS" 1749 CFLAGS="$old_CFLAGS" 1750 fi 1751 LDFLAGS="$old_LDFLAGS" 1752fi 1753if $dynamic_list; then 1754 found="-Wl,--dynamic-list" 1755 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list' 1756else 1757 found="-rdynamic" 1758 RDYNAMIC="-rdynamic" 1759fi 1760AC_SUBST(RDYNAMIC) 1761AC_MSG_RESULT($found) 1762 1763dnl For certain native configurations, we need to check whether thread 1764dnl support can be built in or not. 1765dnl 1766dnl Note that we only want this if we are both native (host == target), 1767dnl and not doing a canadian cross build (build == host). 1768 1769if test ${build} = ${host} -a ${host} = ${target} ; then 1770 case ${host_os} in 1771 solaris*) 1772 # See if thread_db library is around for Solaris thread debugging. 1773 # Note that we must explicitly test for version 1 of the library 1774 # because version 0 (present on Solaris 2.4 or earlier) doesn't have 1775 # the same API. 1776 AC_MSG_CHECKING(for Solaris thread debugging library) 1777 if test -f /usr/lib/libthread_db.so.1 ; then 1778 AC_MSG_RESULT(yes) 1779 AC_DEFINE(HAVE_THREAD_DB_LIB, 1, 1780 [Define if using Solaris thread debugging.]) 1781 CONFIG_OBS="${CONFIG_OBS} sol-thread.o" 1782 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c" 1783 AC_CHECK_LIB(dl, dlopen) 1784 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC" 1785 # Sun randomly tweaked the prototypes in <proc_service.h> 1786 # at one point. 1787 AC_MSG_CHECKING(if <proc_service.h> is old) 1788 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[ 1789 AC_TRY_COMPILE([ 1790 #include <proc_service.h> 1791 ps_err_e ps_pdwrite 1792 (struct ps_prochandle*, psaddr_t, const void*, size_t); 1793 ],, gdb_cv_proc_service_is_old=no, 1794 gdb_cv_proc_service_is_old=yes) 1795 ]) 1796 AC_MSG_RESULT($gdb_cv_proc_service_is_old) 1797 if test $gdb_cv_proc_service_is_old = yes; then 1798 AC_DEFINE(PROC_SERVICE_IS_OLD, 1, 1799 [Define if <proc_service.h> on solaris uses int instead of 1800 size_t, and assorted other type changes.]) 1801 fi 1802 else 1803 AC_MSG_RESULT(no) 1804 fi 1805 ;; 1806 aix*) 1807 AC_MSG_CHECKING(for AiX thread debugging library) 1808 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug, 1809 [AC_TRY_COMPILE([#include <sys/pthdebug.h>], 1810 [#ifndef PTHDB_VERSION_3 1811 #error 1812 #endif], 1813 gdb_cv_have_aix_thread_debug=yes, 1814 gdb_cv_have_aix_thread_debug=no)]) 1815 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug) 1816 if test $gdb_cv_have_aix_thread_debug = yes; then 1817 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c" 1818 CONFIG_OBS="${CONFIG_OBS} aix-thread.o" 1819 LIBS="$LIBS -lpthdebug" 1820 1821 # Older versions of AIX do not provide the declaration for 1822 # the getthrds function (it appears that it was introduced 1823 # with AIX 6.x). 1824 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]]) 1825 fi 1826 ;; 1827 esac 1828 AC_SUBST(CONFIG_LDFLAGS) 1829fi 1830 1831dnl See if we have a thread_db header file that has TD_NOTALLOC and 1832dnl other error codes. 1833if test "x$ac_cv_header_thread_db_h" = "xyes"; then 1834 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC], 1835 gdb_cv_thread_db_h_has_td_notalloc, 1836 AC_TRY_COMPILE( 1837 [#include <thread_db.h>], 1838 [int i = TD_NOTALLOC;], 1839 gdb_cv_thread_db_h_has_td_notalloc=yes, 1840 gdb_cv_thread_db_h_has_td_notalloc=no 1841 ) 1842 ) 1843 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION], 1844 gdb_cv_thread_db_h_has_td_version, 1845 AC_TRY_COMPILE( 1846 [#include <thread_db.h>], 1847 [int i = TD_VERSION;], 1848 gdb_cv_thread_db_h_has_td_version=yes, 1849 gdb_cv_thread_db_h_has_td_version=no 1850 ) 1851 ) 1852 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS], 1853 gdb_cv_thread_db_h_has_td_notls, 1854 AC_TRY_COMPILE( 1855 [#include <thread_db.h>], 1856 [int i = TD_NOTLS;], 1857 gdb_cv_thread_db_h_has_td_notls=yes, 1858 gdb_cv_thread_db_h_has_td_notls=no 1859 ) 1860 ) 1861fi 1862if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then 1863 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1, 1864 [Define if <thread_db.h> has the TD_NOTALLOC error code.]) 1865fi 1866if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then 1867 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1, 1868 [Define if <thread_db.h> has the TD_VERSION error code.]) 1869fi 1870if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then 1871 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1, 1872 [Define if <thread_db.h> has the TD_NOTLS error code.]) 1873fi 1874 1875dnl See if we have a sys/syscall header file that has __NR_tkill. 1876if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then 1877 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill], 1878 gdb_cv_sys_syscall_h_has_tkill, 1879 AC_TRY_COMPILE( 1880 [#include <sys/syscall.h>], 1881 [int i = __NR_tkill;], 1882 gdb_cv_sys_syscall_h_has_tkill=yes, 1883 gdb_cv_sys_syscall_h_has_tkill=no 1884 ) 1885 ) 1886fi 1887dnl See if we can issue tkill syscall. 1888if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes"; then 1889 AC_CHECK_FUNC(syscall, 1890 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.]) 1891 ) 1892fi 1893 1894dnl Check if we can disable the virtual address space randomization. 1895dnl The functionality of setarch -R. 1896AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>]) 1897define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [ 1898# if !HAVE_DECL_ADDR_NO_RANDOMIZE 1899# define ADDR_NO_RANDOMIZE 0x0040000 1900# endif 1901 /* Test the flag could be set and stays set. */ 1902 personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE); 1903 if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE)) 1904 return 1])]) 1905AC_RUN_IFELSE([PERSONALITY_TEST], 1906 [have_personality=true], 1907 [have_personality=false], 1908 [AC_LINK_IFELSE([PERSONALITY_TEST], 1909 [have_personality=true], 1910 [have_personality=false])]) 1911if $have_personality 1912then 1913 AC_DEFINE([HAVE_PERSONALITY], 1, 1914 [Define if you support the personality syscall.]) 1915fi 1916 1917dnl Set the host's .gdbinit filename. 1918case $host_os in 1919 go32* | *djgpp*) 1920 gdbinit=gdb.ini 1921 ;; 1922 *) 1923 gdbinit=.gdbinit 1924 ;; 1925esac 1926AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.]) 1927 1928dnl Handle optional features that can be enabled. 1929 1930# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR, 1931# except that the argument to --with-sysroot is optional. 1932# --with-sysroot (or --with-sysroot=yes) sets the default sysroot path. 1933if test "x$with_sysroot" = xyes; then 1934 with_sysroot="${exec_prefix}/${target_alias}/sys-root" 1935fi 1936AC_ARG_WITH(sysroot, 1937 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], 1938 [search for usr/lib et al within DIR]), 1939 [TARGET_SYSTEM_ROOT=$withval], [TARGET_SYSTEM_ROOT=]) 1940AC_DEFINE_DIR(TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT, 1941 [search for usr/lib et al within DIR]) 1942AC_SUBST(TARGET_SYSTEM_ROOT) 1943GDB_AC_DEFINE_RELOCATABLE(TARGET_SYSTEM_ROOT, sysroot, ${ac_define_dir}) 1944 1945GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit, 1946 [automatically load a system-wide gdbinit file], 1947 []) 1948 1949AC_ARG_ENABLE(werror, 1950 AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]), 1951 [case "${enableval}" in 1952 yes | y) ERROR_ON_WARNING="yes" ;; 1953 no | n) ERROR_ON_WARNING="no" ;; 1954 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;; 1955 esac]) 1956 1957# Enable -Werror by default when using gcc. Turn it off for releases. 1958if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" && $development; then 1959 ERROR_ON_WARNING=yes 1960fi 1961 1962WERROR_CFLAGS="" 1963if test "${ERROR_ON_WARNING}" = yes ; then 1964 WERROR_CFLAGS="-Werror" 1965fi 1966 1967build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \ 1968-Wpointer-sign \ 1969-Wno-unused -Wunused-value -Wunused-function \ 1970-Wno-switch -Wno-char-subscripts -Wmissing-prototypes \ 1971-Wdeclaration-after-statement -Wempty-body -Wmissing-parameter-type \ 1972-Wold-style-declaration -Wold-style-definition" 1973 1974# Enable -Wno-format by default when using gcc on mingw since many 1975# GCC versions complain about %I64. 1976case "${host}" in 1977 *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;; 1978 *) build_warnings="$build_warnings -Wformat-nonliteral" ;; 1979esac 1980 1981AC_ARG_ENABLE(build-warnings, 1982AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]), 1983[case "${enableval}" in 1984 yes) ;; 1985 no) build_warnings="-w";; 1986 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` 1987 build_warnings="${build_warnings} ${t}";; 1988 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` 1989 build_warnings="${t} ${build_warnings}";; 1990 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; 1991esac 1992if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then 1993 echo "Setting compiler warning flags = $build_warnings" 6>&1 1994fi])dnl 1995AC_ARG_ENABLE(gdb-build-warnings, 1996AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]), 1997[case "${enableval}" in 1998 yes) ;; 1999 no) build_warnings="-w";; 2000 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` 2001 build_warnings="${build_warnings} ${t}";; 2002 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` 2003 build_warnings="${t} ${build_warnings}";; 2004 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; 2005esac 2006if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then 2007 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1 2008fi])dnl 2009WARN_CFLAGS="" 2010if test "x${build_warnings}" != x -a "x$GCC" = xyes 2011then 2012 AC_MSG_CHECKING(compiler warning flags) 2013 # Separate out the -Werror flag as some files just cannot be 2014 # compiled with it enabled. 2015 for w in ${build_warnings}; do 2016 case $w in 2017 -Werr*) WERROR_CFLAGS=-Werror ;; 2018 *) # Check that GCC accepts it 2019 saved_CFLAGS="$CFLAGS" 2020 CFLAGS="$CFLAGS $w" 2021 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",) 2022 CFLAGS="$saved_CFLAGS" 2023 esac 2024 done 2025 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS}) 2026fi 2027AC_SUBST(WARN_CFLAGS) 2028AC_SUBST(WERROR_CFLAGS) 2029 2030# In the Cygwin environment, we need some additional flags. 2031AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin, 2032[AC_EGREP_CPP(^lose$, [ 2033#if defined (__CYGWIN__) || defined (__CYGWIN32__) 2034lose 2035#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])]) 2036 2037 2038dnl Figure out which of the many generic ser-*.c files the _host_ supports. 2039SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o" 2040case ${host} in 2041 *go32* ) SER_HARDWIRE=ser-go32.o ;; 2042 *djgpp* ) SER_HARDWIRE=ser-go32.o ;; 2043 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;; 2044esac 2045AC_SUBST(SER_HARDWIRE) 2046 2047# libreadline needs libuser32.a in a cygwin environment 2048WIN32LIBS= 2049if test x$gdb_cv_os_cygwin = xyes; then 2050 WIN32LIBS="-luser32" 2051 case "${target}" in 2052 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp" 2053 ;; 2054 esac 2055fi 2056 2057# The ser-tcp.c module requires sockets. 2058case ${host} in 2059 *mingw32*) 2060 AC_DEFINE(USE_WIN32API, 1, 2061 [Define if we should use the Windows API, instead of the 2062 POSIX API. On Windows, we use the Windows API when 2063 building for MinGW, but the POSIX API when building 2064 for Cygwin.]) 2065 WIN32LIBS="$WIN32LIBS -lws2_32" 2066 ;; 2067esac 2068AC_SUBST(WIN32LIBS) 2069 2070# Add ELF support to GDB, but only if BFD includes ELF support. 2071GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_elf, 2072 [bfd_get_elf_phdr_upper_bound (NULL)], elf-bfd.h) 2073if test $gdb_cv_var_elf = yes; then 2074 CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o" 2075 AC_DEFINE(HAVE_ELF, 1, 2076 [Define if ELF support should be included.]) 2077 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>. 2078 if test "$plugins" = "yes"; then 2079 AC_SEARCH_LIBS(dlopen, dl) 2080 fi 2081fi 2082 2083# Add macho support to GDB, but only if BFD includes it. 2084GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_macho, 2085 [bfd_mach_o_lookup_command (NULL, 0, NULL)], mach-o.h) 2086if test $gdb_cv_var_macho = yes; then 2087 CONFIG_OBS="$CONFIG_OBS machoread.o" 2088fi 2089 2090# Add SOM support to GDB, but only if BFD includes it. 2091GDB_AC_CHECK_BFD([for SOM support in BFD], gdb_cv_var_som, 2092 [bfd_som_attach_aux_hdr (NULL, 0, NULL)], som.h) 2093if test $gdb_cv_var_som = yes; then 2094 CONFIG_OBS="$CONFIG_OBS somread.o" 2095fi 2096 2097# Add any host-specific objects to GDB. 2098CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}" 2099 2100# If building on ELF, look for lzma support for embedded compressed debug info. 2101if test $gdb_cv_var_elf = yes; then 2102 AC_ARG_WITH(lzma, 2103 AS_HELP_STRING([--with-lzma], [support lzma compression (auto/yes/no)]), 2104 [], [with_lzma=auto]) 2105 AC_MSG_CHECKING([whether to use lzma]) 2106 AC_MSG_RESULT([$with_lzma]) 2107 2108 if test "${with_lzma}" != no; then 2109 AC_LIB_HAVE_LINKFLAGS([lzma], [], [#include "lzma.h"], 2110 [lzma_index_iter iter; 2111 lzma_index_iter_init (&iter, 0); 2112 lzma_mf_is_supported (LZMA_MF_HC3);]) 2113 if test "$HAVE_LIBLZMA" != yes; then 2114 if test "$with_lzma" = yes; then 2115 AC_MSG_ERROR([missing liblzma for --with-lzma]) 2116 fi 2117 fi 2118 fi 2119fi 2120 2121LIBGUI="../libgui/src/libgui.a" 2122GUI_CFLAGS_X="-I${srcdir}/../libgui/src" 2123AC_SUBST(LIBGUI) 2124AC_SUBST(GUI_CFLAGS_X) 2125 2126WIN32LDAPP= 2127AC_SUBST(WIN32LIBS) 2128AC_SUBST(WIN32LDAPP) 2129 2130case "${host}" in 2131*-*-cygwin* | *-*-mingw* ) 2132 configdir="win" 2133 ;; 2134*) 2135 configdir="unix" 2136 ;; 2137esac 2138 2139GDBTKLIBS= 2140if test "${enable_gdbtk}" = "yes"; then 2141 2142 # Gdbtk must have an absolute path to srcdir in order to run 2143 # properly when not installed. 2144 here=`pwd` 2145 cd ${srcdir} 2146 GDBTK_SRC_DIR=`pwd` 2147 cd $here 2148 2149 SC_PATH_TCLCONFIG 2150 2151 # If $no_tk is nonempty, then we can't do Tk, and there is no 2152 # point to doing Tcl. 2153 SC_PATH_TKCONFIG 2154 2155 if test -z "${no_tcl}" -a -z "${no_tk}"; then 2156 SC_LOAD_TCLCONFIG 2157 2158 # Check for in-tree tcl 2159 here=`pwd` 2160 cd ${srcdir}/.. 2161 topdir=`pwd` 2162 cd ${here} 2163 2164 intree="no" 2165 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then 2166 intree="yes" 2167 fi 2168 2169 # Find Tcl private headers 2170 if test x"${intree}" = xno; then 2171 CY_AC_TCL_PRIVATE_HEADERS 2172 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}" 2173 TCL_LIBRARY="${TCL_LIB_SPEC}" 2174 TCL_DEPS="" 2175 else 2176 # If building tcl in the same src tree, private headers 2177 # are not needed, but we need to be sure to use the right 2178 # headers library 2179 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic" 2180 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}" 2181 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}" 2182 fi 2183 AC_SUBST(TCL_INCLUDE) 2184 AC_SUBST(TCL_LIBRARY) 2185 AC_SUBST(TCL_DEPS) 2186 2187 SC_LOAD_TKCONFIG 2188 2189 # Check for in-tree Tk 2190 intree="no" 2191 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then 2192 intree="yes" 2193 fi 2194 2195 # Find Tk private headers 2196 if test x"${intree}" = xno; then 2197 CY_AC_TK_PRIVATE_HEADERS 2198 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}" 2199 TK_LIBRARY=${TK_LIB_SPEC} 2200 TK_DEPS="" 2201 else 2202 TK_INCLUDE="-I${TK_SRC_DIR}/generic" 2203 TK_LIBRARY="${TK_BUILD_LIB_SPEC}" 2204 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}" 2205 fi 2206 AC_SUBST(TK_INCLUDE) 2207 AC_SUBST(TK_LIBRARY) 2208 AC_SUBST(TK_DEPS) 2209 AC_SUBST(TK_XINCLUDES) 2210 2211 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)" 2212 2213 # Include some libraries that Tcl and Tk want. 2214 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)' 2215 # Yes, the ordering seems wrong here. But it isn't. 2216 # TK_LIBS is the list of libraries that need to be linked 2217 # after Tcl/Tk. Note that this isn't put into LIBS. If it 2218 # were in LIBS then any link tests after this point would 2219 # try to include things like `$(LIBGUI)', which wouldn't work. 2220 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}" 2221 2222 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)" 2223 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)" 2224 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)" 2225 CONFIG_ALL="${CONFIG_ALL} all-gdbtk" 2226 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk" 2227 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk" 2228 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk" 2229 2230 if test x$gdb_cv_os_cygwin = xyes; then 2231 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32" 2232 WIN32LDAPP="-Wl,--subsystem,console" 2233 CONFIG_OBS="${CONFIG_OBS} gdbres.o" 2234 fi 2235 2236 AC_CONFIG_SUBDIRS(gdbtk) 2237 fi 2238fi 2239 2240AC_SUBST(X_CFLAGS) 2241AC_SUBST(X_LDFLAGS) 2242AC_SUBST(X_LIBS) 2243AC_SUBST(GDBTKLIBS) 2244AC_SUBST(GDBTK_CFLAGS) 2245AC_SUBST(GDBTK_SRC_DIR) 2246 2247AC_PATH_X 2248 2249# Unlike the sim directory, whether a simulator is linked is controlled by 2250# presence of a gdb_sim definition in the target configure.tgt entry. 2251# This code just checks for a few cases where we'd like to ignore those 2252# definitions, even when they're present in the '.mt' file. These cases 2253# are when --disable-sim is specified, or if the simulator directory is 2254# not part of the source tree. 2255# 2256AC_ARG_ENABLE(sim, 2257AS_HELP_STRING([--enable-sim], [link gdb with simulator]), 2258[echo "enable_sim = $enable_sim"; 2259 echo "enableval = ${enableval}"; 2260 case "${enableval}" in 2261 yes) ignore_sim=false ;; 2262 no) ignore_sim=true ;; 2263 *) ignore_sim=false ;; 2264 esac], 2265[ignore_sim=false]) 2266 2267if test ! -d "${srcdir}/../sim"; then 2268 ignore_sim=true 2269fi 2270 2271SIM= 2272SIM_OBS= 2273if test "${ignore_sim}" = "false"; then 2274 if test x"${gdb_sim}" != x ; then 2275 SIM="${gdb_sim}" 2276 SIM_OBS="remote-sim.o" 2277 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.]) 2278 fi 2279fi 2280AC_SUBST(SIM) 2281AC_SUBST(SIM_OBS) 2282 2283AC_SUBST(ENABLE_CFLAGS) 2284AC_SUBST(PROFILE_CFLAGS) 2285 2286AC_SUBST(CONFIG_OBS) 2287AC_SUBST(CONFIG_DEPS) 2288AC_SUBST(CONFIG_SRCS) 2289AC_SUBST(CONFIG_ALL) 2290AC_SUBST(CONFIG_CLEAN) 2291AC_SUBST(CONFIG_INSTALL) 2292AC_SUBST(CONFIG_UNINSTALL) 2293 2294# List of host floatformats. 2295AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat]) 2296AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat]) 2297AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat]) 2298 2299# target_subdir is used by the testsuite to find the target libraries. 2300target_subdir= 2301if test "${host}" != "${target}"; then 2302 target_subdir="${target_alias}/" 2303fi 2304AC_SUBST(target_subdir) 2305 2306frags= 2307if test "${gdb_native}" = "yes"; then 2308 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh 2309 if test ! -f ${host_makefile_frag}; then 2310 AC_MSG_ERROR("*** Gdb does not support native target ${host}") 2311 fi 2312 frags="$frags $host_makefile_frag" 2313else 2314 host_makefile_frag=/dev/null 2315fi 2316 2317AC_SUBST_FILE(host_makefile_frag) 2318AC_SUBST(frags) 2319 2320changequote(,)dnl 2321if test "${gdb_native}" = "yes"; then 2322# We pick this up from the host configuration file (.mh) because we 2323# do not have a native configuration Makefile fragment. 2324nativefile=`sed -n ' 2325s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p 2326' ${host_makefile_frag}` 2327fi 2328changequote([,]) 2329 2330if test x"${gdb_osabi}" != x ; then 2331 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi, 2332 [Define to the default OS ABI for this configuration.]) 2333fi 2334 2335# Enable multi-ice-gdb-server. 2336AC_ARG_ENABLE(multi-ice, 2337AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]), 2338 [case $enableval in 2339 yes | no) 2340 ;; 2341 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;; 2342 esac]) 2343if test "x$enable_multi_ice" = xyes; then 2344 AC_CONFIG_SUBDIRS(multi-ice) 2345fi 2346 2347AC_ARG_ENABLE(gdbserver, 2348AS_HELP_STRING([--enable-gdbserver], 2349 [automatically build gdbserver (yes/no/auto, default is auto)]), 2350[case "${enableval}" in 2351 yes| no|auto) ;; 2352 *) AC_MSG_ERROR(bad value ${enableval} for --enable-gdbserver option) ;; 2353esac],[enable_gdbserver=auto]) 2354 2355# We only build gdbserver automatically in a native configuration, and 2356# only if the user did not explicitly disable its build. 2357if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then 2358 AC_MSG_CHECKING(whether gdbserver is supported on this host) 2359 if test "x$build_gdbserver" = xyes; then 2360 AC_MSG_RESULT(yes) 2361 AC_CONFIG_SUBDIRS(gdbserver) 2362 gdbserver_build_enabled=yes 2363 else 2364 AC_MSG_RESULT(no) 2365 fi 2366fi 2367 2368# If the user explicitly request the gdbserver to be built, verify that 2369# we were in fact able to enable it. 2370if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then 2371 AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration) 2372fi 2373 2374# Check for babeltrace and babeltrace-ctf 2375AC_ARG_WITH(babeltrace, 2376 AC_HELP_STRING([--with-babeltrace], [include babeltrace support (auto/yes/no)]), 2377 [], [with_babeltrace=auto]) 2378AC_MSG_CHECKING([whether to use babeltrace]) 2379AC_MSG_RESULT([$with_babeltrace]) 2380 2381if test "x$with_babeltrace" = "xno"; then 2382 AC_MSG_WARN([babletrace support disabled; GDB is unable to read CTF data.]) 2383else 2384 # Append -Werror to CFLAGS so that configure can catch the warning 2385 # "assignment from incompatible pointer type", which is related to 2386 # the babeltrace change from 1.0.3 to 1.1.0. Babeltrace 1.1.0 works 2387 # in GDB, while babeltrace 1.0.3 is broken. 2388 # AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be 2389 # safe to save and restore CFLAGS here. 2390 saved_CFLAGS=$CFLAGS 2391 CFLAGS="$CFLAGS -Werror" 2392 AC_LIB_HAVE_LINKFLAGS([babeltrace], [babeltrace-ctf], 2393 [#include <babeltrace/babeltrace.h> 2394 #include <babeltrace/ctf/events.h> 2395 #include <babeltrace/ctf/iterator.h>], 2396 [struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL)); 2397 struct bt_ctf_event *event = NULL; 2398 const struct bt_definition *scope; 2399 2400 bt_iter_set_pos (bt_ctf_get_iter (NULL), pos); 2401 scope = bt_ctf_get_top_level_scope (event, 2402 BT_STREAM_EVENT_HEADER); 2403 bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id")); 2404 ]) 2405 CFLAGS=$saved_CFLAGS 2406 2407 if test "$HAVE_LIBBABELTRACE" != yes; then 2408 if test "$with_babeltrace" = yes; then 2409 AC_MSG_ERROR([babeltrace is missing or unusable]) 2410 else 2411 AC_MSG_WARN([babeltrace is missing or unusable; GDB is unable to read CTF data.]) 2412 fi 2413 fi 2414fi 2415 2416# If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link 2417# to an empty version. 2418 2419files= 2420links= 2421 2422rm -f nm.h 2423if test "${nativefile}" != ""; then 2424 case "${nativefile}" in 2425 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;; 2426 * ) GDB_NM_FILE="${nativefile}" 2427 esac 2428 files="${files} ${GDB_NM_FILE}" 2429 links="${links} nm.h" 2430 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile]) 2431fi 2432AC_SUBST(GDB_NM_FILE) 2433 2434AC_LINK_FILES($files, $links) 2435 2436dnl Check for exe extension set on certain hosts (e.g. Win32) 2437AC_EXEEXT 2438 2439dnl Detect the character set used by this host. 2440dnl At the moment, we just assume it's UTF-8. 2441AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8", 2442 [Define to be a string naming the default host character set.]) 2443 2444# Undo the $ec_script escaping suitable for Makefile. 2445transform=`echo "$program_transform_name" | sed -e 's/[\\$][\\$]/\\$/g'` 2446GDB_TRANSFORM_NAME=`echo gdb | sed -e "$transform"` 2447if test "x$GDB_TRANSFORM_NAME" = x; then 2448 GDB_TRANSFORM_NAME=gdb 2449fi 2450AC_SUBST(GDB_TRANSFORM_NAME) 2451GCORE_TRANSFORM_NAME=`echo gcore | sed -e "$transform"` 2452if test "x$GCORE_TRANSFORM_NAME" = x; then 2453 GCORE_TRANSFORM_NAME=gcore 2454fi 2455AC_SUBST(GCORE_TRANSFORM_NAME) 2456AC_CONFIG_FILES([gcore], [chmod +x gcore]) 2457 2458AC_OUTPUT(Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile, 2459[ 2460case x$CONFIG_HEADERS in 2461xconfig.h:config.in) 2462echo > stamp-h ;; 2463esac 2464]) 2465 2466exit 0 2467