configure.ac revision 1.3
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