X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fconfigure.ac;h=73decd08cc92ea7138fcb0966e8b90a4aa4fd1ab;hb=ed3ef33944c39d9a3cea72b9a7cef3c20f0e3461;hp=6025e8938e6297f57fe388e7a1742d9ddb48e836;hpb=2978b11100a6318e05b8bc2d7923d9f735ef5c6e;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/configure.ac b/gdb/configure.ac index 6025e8938e..73decd08cc 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -1,8 +1,8 @@ dnl Autoconf configure script for GDB, the GNU debugger. -dnl Copyright (C) 1995-2013 Free Software Foundation, Inc. +dnl Copyright (C) 1995-2014 Free Software Foundation, Inc. dnl dnl This file is part of GDB. -dnl +dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 3 of the License, or @@ -30,6 +30,7 @@ AC_PROG_CC AC_USE_SYSTEM_EXTENSIONS ACX_LARGEFILE AM_PROG_CC_STDC +AM_PROG_INSTALL_STRIP AC_CONFIG_AUX_DIR(..) AC_CANONICAL_SYSTEM @@ -76,7 +77,7 @@ AC_SUBST(localedir) if test x"$USE_NLS" = xyes; then CONFIG_ALL="$CONFIG_ALL all-po" - CONFIG_CLEAN="$CONFIG_CLEAN clean-po" + CONFIG_CLEAN="$CONFIG_CLEAN clean-po" CONFIG_INSTALL="$CONFIG_INSTALL install-po" CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po" fi @@ -548,7 +549,7 @@ AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program # On alpha-osf, it appears that libtermcap and libcurses are not compatible. # There is a very specific comment in /usr/include/curses.h explaining that # termcap routines built into libcurses must not be used. -# +# # The symptoms we observed so far is GDB unexpectedly changing # the terminal settings when tgetent is called - this is particularly # visible as the output is missing carriage returns, and so rapidly @@ -625,7 +626,7 @@ case $host_os in go32* | *djgpp*) ac_cv_search_tgetent="none required" ;; - *mingw32*) + *mingw32*) ac_cv_search_tgetent="none required" CONFIG_OBS="$CONFIG_OBS windows-termcap.o" ;; @@ -712,6 +713,10 @@ else fi fi +# --------------------- # +# Check for libpython. # +# --------------------- # + dnl Utility to simplify finding libpython. dnl $1 = pythonX.Y dnl $2 = the shell variable to assign the result to @@ -1040,16 +1045,167 @@ if test "${have_libpython}" != no; then AC_MSG_RESULT(${python_has_threads}) CPPFLAGS="${saved_CPPFLAGS}" else - # Even if Python support is not compiled in, we need to have these files - # included. - CONFIG_OBS="$CONFIG_OBS python.o py-value.o py-prettyprint.o py-auto-load.o" - CONFIG_SRCS="$CONFIG_SRCS python/python.c python/py-value.c \ - python/py-prettyprint.c python/py-auto-load.c" + # Even if Python support is not compiled in, we need to have this file + # included so that the "python" command, et.al., still exists. + CONFIG_OBS="$CONFIG_OBS python.o" + CONFIG_SRCS="$CONFIG_SRCS python/python.c" fi AC_SUBST(PYTHON_CFLAGS) AC_SUBST(PYTHON_CPPFLAGS) AC_SUBST(PYTHON_LIBS) +# -------------------- # +# Check for libguile. # +# -------------------- # + +dnl We check guile with pkg-config. + +AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing) + +dnl Utility to simplify finding libguile. +dnl $1 = pkg-config-program +dnl $2 = space-separate list of guile versions to try +dnl $3 = yes|no, indicating whether to flag errors or ignore them +dnl $4 = the shell variable to assign the result to +dnl If libguile is found we store "yes" here. + +AC_DEFUN([AC_TRY_LIBGUILE], +[ + pkg_config=$1 + guile_version_list=$2 + flag_errors=$3 + define([have_libguile_var],$4) + if test "${pkg_config}" = "missing"; then + AC_ERROR(pkg-config program not found) + fi + if test ! -f "${pkg_config}"; then + AC_ERROR(pkg-config program ${pkg_config} not found) + fi + found_usable_guile=checking + AC_MSG_CHECKING([for usable guile from ${pkg_config}]) + for guile_version in ${guile_version_list}; do + ${pkg_config} --exists ${guile_version} 2>/dev/null + if test $? != 0; then + continue + fi + dnl pkg-config says the package exists, so if we get an error now, + dnl that's bad. + new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}` + if test $? != 0; then + AC_ERROR(failure running pkg-config --cflags ${guile_version}) + fi + new_LIBS=`${pkg_config} --libs ${guile_version}` + if test $? != 0; then + AC_ERROR(failure running pkg-config --libs ${guile_version}) + fi + dnl If we get this far, great. + found_usable_guile=${guile_version} + break + done + if test "${found_usable_guile}" = "checking"; then + if test "${flag_errors}" = "yes"; then + AC_ERROR(unable to find usable guile version from "${guile_version_list}") + else + found_usable_guile=no + fi + fi + dnl One final sanity check. + dnl The user could have said --with-guile=python-2.7. + if test "${found_usable_guile}" != no; then + save_CPPFLAGS=$CPPFLAGS + save_LIBS=$LIBS + CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" + LIBS="$LIBS $new_LIBS" + AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "libguile.h"]], + [[scm_init_guile ();]]), + [have_libguile_var=yes + GUILE_CPPFLAGS=$new_CPPFLAGS + GUILE_LIBS=$new_LIBS], + [found_usable_guile=no]) + CPPFLAGS=$save_CPPFLAGS + LIBS=$save_LIBS + if test "${found_usable_guile}" = no; then + if test "${flag_errors}" = yes; then + AC_MSG_FAILURE(linking guile version ${guile_version} test program failed) + fi + fi + fi + AC_MSG_RESULT([${found_usable_guile}]) +]) + +dnl There are several different values for --with-guile: +dnl +dnl no - Don't include guile support. +dnl yes - Include guile support, error if it's missing. +dnl The pkg-config program must be in $PATH. +dnl auto - Same as "yes", but if guile is missing from the system, +dnl fall back to "no". +dnl guile-version [guile-version-choice-2 ...] - +dnl A space-separated list of guile package versions to try. +dnl These are passed to pkg-config as-is. +dnl E.g., guile-2.0 or guile-2.2-uninstalled +dnl This requires making sure PKG_CONFIG_PATH is set appropriately. +dnl /path/to/pkg-config - +dnl Use this pkg-config program. +dnl NOTE: This needn't be the "real" pkg-config program. +dnl It could be a shell script. It is invoked as: +dnl pkg-config --exists $version +dnl pkg-config --cflags $version +dnl pkg-config --libs $version +dnl $version will be the default guile version (currently guile-2.0), +dnl but the program is free to ignore this. + +AC_ARG_WITH(guile, + AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no//)]), + [], [with_guile=auto]) +AC_MSG_CHECKING([whether to use guile]) +AC_MSG_RESULT([$with_guile]) + +try_guile_versions="guile-2.0" +have_libguile=no +case "${with_guile}" in +no) + AC_MSG_WARN([guile support disabled; some features will be unavailable.]) + ;; +auto) + AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, no, have_libguile) + ;; +yes) + AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, yes, have_libguile) + ;; +[[\\/]]* | ?:[[\\/]]*) + AC_TRY_LIBGUILE(${with_guile}, ${try_guile_versions}, yes, have_libguile) + ;; +"" | */*) + # Disallow --with=guile="" and --with-guile=foo/bar. + AC_ERROR(invalid value for --with-guile) + ;; +*) + # A space separate list of guile versions to try, in order. + AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${with_guile}, yes, have_libguile) + ;; +esac + +if test "${have_libguile}" != no; then + AC_DEFINE(HAVE_GUILE, 1, [Define if Guile interpreter is being linked in.]) + CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_GUILE_OBS)" + CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_GUILE_DEPS)" + CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_GUILE_SRCS)" + CONFIG_INSTALL="$CONFIG_INSTALL install-guile" + ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_GUILE_CFLAGS)" +else + # Even if Guile support is not compiled in, we need to have these files + # included. + CONFIG_OBS="$CONFIG_OBS guile.o" + CONFIG_SRCS="$CONFIG_SRCS guile/guile.c" +fi +AC_SUBST(GUILE_CPPFLAGS) +AC_SUBST(GUILE_LIBS) + +# --------------------- # +# Check for libmcheck. # +# --------------------- # + # Enable -lmcheck by default (it provides cheap-enough memory mangling), # but turn it off if Python is enabled with threads, since -lmcheck is # not thread safe (http://sourceware.org/bugzilla/show_bug.cgi?id=9939), @@ -1075,13 +1231,13 @@ fi AC_HEADER_STDC # elf_hp.h is for HP/UX 64-bit shared library support. AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \ - thread_db.h stddef.h \ - stdlib.h sys/fault.h \ + thread_db.h \ + sys/fault.h \ sys/file.h sys/filio.h sys/ioctl.h sys/param.h \ sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \ sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \ termios.h termio.h \ - sgtty.h unistd.h elf_hp.h \ + sgtty.h elf_hp.h \ dlfcn.h]) AC_CHECK_HEADERS(sys/proc.h, [], [], [#if HAVE_SYS_PARAM_H @@ -1163,9 +1319,7 @@ GDB_AC_COMMON # Check the return and argument types of ptrace. No canned test for # this, so roll our own. gdb_ptrace_headers=' -#if HAVE_SYS_TYPES_H -# include -#endif +#include #if HAVE_SYS_PTRACE_H # include #endif @@ -1337,7 +1491,7 @@ AC_CACHE_VAL(gdb_cv_have_ptrace_getregs, [gdb_cv_have_ptrace_getregs=no])]) AC_MSG_RESULT($gdb_cv_have_ptrace_getregs) if test $gdb_cv_have_ptrace_getregs = yes; then - AC_DEFINE(HAVE_PTRACE_GETREGS, 1, + AC_DEFINE(HAVE_PTRACE_GETREGS, 1, [Define if sys/ptrace.h defines the PTRACE_GETREGS request.]) fi @@ -1531,7 +1685,7 @@ fi # Check if the compiler and runtime support scanning long doubles. -AC_CACHE_CHECK([for long double support in scanf], +AC_CACHE_CHECK([for long double support in scanf], gdb_cv_scanf_has_long_double, [AC_RUN_IFELSE([AC_LANG_PROGRAM( [[#include ]], @@ -1879,7 +2033,7 @@ AC_SUBST(WERROR_CFLAGS) # In the Cygwin environment, we need some additional flags. AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin, -[AC_EGREP_CPP(lose, [ +[AC_EGREP_CPP(^lose$, [ #if defined (__CYGWIN__) || defined (__CYGWIN32__) lose #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])]) @@ -1908,13 +2062,13 @@ fi case ${host} in *mingw32*) AC_DEFINE(USE_WIN32API, 1, - [Define if we should use the Windows API, instead of the - POSIX API. On Windows, we use the Windows API when - building for MinGW, but the POSIX API when building + [Define if we should use the Windows API, instead of the + POSIX API. On Windows, we use the Windows API when + building for MinGW, but the POSIX API when building for Cygwin.]) WIN32LIBS="$WIN32LIBS -lws2_32" ;; -esac +esac AC_SUBST(WIN32LIBS) # Add ELF support to GDB, but only if BFD includes ELF support. @@ -2026,7 +2180,7 @@ if test "${enable_gdbtk}" = "yes"; then # If building tcl in the same src tree, private headers # are not needed, but we need to be sure to use the right # headers library - TCL_INCLUDE="-I${TCL_SRC_DIR}/generic" + TCL_INCLUDE="-I${TCL_SRC_DIR}/generic" TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}" TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}" fi @@ -2039,7 +2193,7 @@ if test "${enable_gdbtk}" = "yes"; then # Check for in-tree Tk intree="no" if test "${TK_SRC_DIR}" = "${topdir}/tk"; then - intree="yes" + intree="yes" fi # Find Tk private headers @@ -2096,8 +2250,8 @@ AC_SUBST(GDBTK_SRC_DIR) AC_PATH_X -# Unlike the sim directory, whether a simulator is linked is controlled by -# presence of a gdb_sim definition in the target configure.tgt entry. +# Unlike the sim directory, whether a simulator is linked is controlled by +# presence of a gdb_sim definition in the target configure.tgt entry. # This code just checks for a few cases where we'd like to ignore those # definitions, even when they're present in the '.mt' file. These cases # are when --disable-sim is specified, or if the simulator directory is @@ -2247,7 +2401,7 @@ else struct bt_ctf_event *event = NULL; const struct bt_definition *scope; - scope = bt_ctf_get_top_level_scope (event, + scope = bt_ctf_get_top_level_scope (event, BT_STREAM_EVENT_HEADER); bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id")); ])