Change some uses of DW_STRING to string method
[deliverable/binutils-gdb.git] / gdb / configure.ac
CommitLineData
c906108c 1dnl Autoconf configure script for GDB, the GNU debugger.
b811d2c2 2dnl Copyright (C) 1995-2020 Free Software Foundation, Inc.
c906108c
SS
3dnl
4dnl This file is part of GDB.
4869db5e 5dnl
c906108c
SS
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
5a0e3bd0 8dnl the Free Software Foundation; either version 3 of the License, or
c906108c 9dnl (at your option) any later version.
5a0e3bd0 10dnl
c906108c
SS
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.
5a0e3bd0 15dnl
c906108c 16dnl You should have received a copy of the GNU General Public License
5a0e3bd0 17dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
c906108c
SS
18
19dnl Process this file with autoconf to produce a configure script.
20
0d79cdc4
AM
21m4_include(../config/debuginfod.m4)
22
c906108c 23AC_INIT(main.c)
c5adaa19 24AC_CONFIG_HEADERS(config.h:config.in, [echo > stamp-h])
413ccac7 25AM_MAINTAINER_MODE
c906108c
SS
26
27AC_PROG_CC
3bc3d82a
PA
28AC_PROG_CXX
29
c462b41b 30AC_USE_SYSTEM_EXTENSIONS
da2f07f1 31ACX_LARGEFILE
c906108c 32AM_PROG_CC_STDC
4869db5e 33AM_PROG_INSTALL_STRIP
c906108c 34
e28b3332 35AC_CONFIG_AUX_DIR(..)
c906108c 36AC_CANONICAL_SYSTEM
9009e1ae 37AC_ARG_PROGRAM
c906108c 38
0bcda685
PA
39# We require a C++11 compiler. Check if one is available, and if
40# necessary, set CXX_DIALECT to some -std=xxx switch.
41AX_CXX_COMPILE_STDCXX(11, , mandatory)
42
a417dc56
RW
43# Dependency checking.
44ZW_CREATE_DEPDIR
45ZW_PROG_COMPILER_DEPENDENCIES([CC])
46
ddc9cd0f
AC
47dnl List of object files and targets accumulated by configure.
48
49CONFIG_OBS=
50CONFIG_DEPS=
51CONFIG_SRCS=
52ENABLE_CFLAGS=
53
54CONFIG_ALL=
55CONFIG_CLEAN=
56CONFIG_INSTALL=
57CONFIG_UNINSTALL=
58
20e95c23
DJ
59dnl Set up for gettext.
60ZW_GNU_GETTEXT_SISTER_DIR
ddc9cd0f
AC
61
62localedir='${datadir}/locale'
63AC_SUBST(localedir)
64
20e95c23 65if test x"$USE_NLS" = xyes; then
ddc9cd0f 66 CONFIG_ALL="$CONFIG_ALL all-po"
4869db5e 67 CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
ddc9cd0f
AC
68 CONFIG_INSTALL="$CONFIG_INSTALL install-po"
69 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
70fi
71
72PACKAGE=gdb
73AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
74AC_SUBST(PACKAGE)
0fbb3da7 75
f06e05e0
JK
76# We never need to detect it in this sub-configure.
77# But preserve it for config.status --recheck.
78AC_ARG_VAR(MAKEINFO,
79 [Parent configure detects if it is of sufficient version.])
80AC_ARG_VAR(MAKEINFOFLAGS,
81 [Parameters for MAKEINFO.])
5048e516
JK
82
83MAKEINFO_EXTRA_FLAGS=""
84AC_CACHE_CHECK([whether $MAKEINFO supports @click], gdb_cv_have_makeinfo_click,
85 [echo '@clicksequence{a @click{} b}' >conftest.texinfo
86 if eval "$MAKEINFO conftest.texinfo >&5 2>&5"; then
87 gdb_cv_have_makeinfo_click=yes
88 else
89 gdb_cv_have_makeinfo_click=no
90 fi])
91if test x"$gdb_cv_have_makeinfo_click" = xyes; then
92 MAKEINFO_EXTRA_FLAGS="$MAKEINFO_EXTRA_FLAGS -DHAVE_MAKEINFO_CLICK"
93fi
94AC_SUBST(MAKEINFO_EXTRA_FLAGS)
95
b14b1491
TT
96GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir,
97 [look for global separate debug info in this path @<:@LIBDIR/debug@:>@],
98 [${libdir}/debug])
99
f83d8a90
DE
100# We can't pass paths as command line arguments.
101# Mingw32 tries to be clever and will convert the paths for us.
102# For example -DBINDIR="/usr/local/bin" passed on the command line may get
103# converted to -DBINDIR="E:/msys/mingw32/msys/1.0/local/bin".
104# This breaks GDB's relocatable path conversions since paths passed in
105# config.h would not get so translated, the path prefixes no longer match.
106AC_DEFINE_DIR(BINDIR, bindir, [Directory of programs.])
107
b14b1491
TT
108# GDB's datadir relocation
109
110GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir,
111 [look for global separate data files in this path @<:@DATADIR/gdb@:>@],
112 [${datadir}/gdb])
aa28a74e 113
29b0e8a2 114AC_ARG_WITH(relocated-sources,
d2596e2e 115AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]),
29b0e8a2
JM
116[reloc_srcdir="${withval}"
117 AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir,
118 [Relocated directory for source files. ])
119])
120
7349ff92
JK
121AC_MSG_CHECKING([for default auto-load directory])
122AC_ARG_WITH(auto-load-dir,
123AS_HELP_STRING([--with-auto-load-dir=PATH],
1564a261
JK
124 [directories from which to load auto-loaded scripts @<:@$debugdir:$datadir/auto-load@:>@]),,
125 [with_auto_load_dir='$debugdir:$datadir/auto-load'])
2861ee4f 126escape_dir=`echo $with_auto_load_dir | sed -e 's/[[$]]datadir\>/\\\\\\\\\\\\&/g' -e 's/[[$]]debugdir\>/\\\\\\\\\\\\&/g'`
7349ff92
JK
127AC_DEFINE_DIR(AUTO_LOAD_DIR, escape_dir,
128 [Directories from which to load auto-loaded scripts.])
129AC_MSG_RESULT([$with_auto_load_dir])
130
bccbefd2
JK
131AC_MSG_CHECKING([for default auto-load safe-path])
132AC_ARG_WITH(auto-load-safe-path,
6dea1fbd 133AS_HELP_STRING([--with-auto-load-safe-path=PATH],
aff139ff 134 [directories safe to hold auto-loaded files @<:@--with-auto-load-dir@:>@])
6dea1fbd
JK
135AS_HELP_STRING([--without-auto-load-safe-path],
136 [do not restrict auto-loaded files locations]),
137 [if test "$with_auto_load_safe_path" = "no"; then
138 with_auto_load_safe_path="/"
139 fi],
7349ff92 140[with_auto_load_safe_path="$with_auto_load_dir"])
2861ee4f 141escape_dir=`echo $with_auto_load_safe_path | sed -e 's/[[$]]datadir\>/\\\\\\\\\\\\&/g' -e 's/[[$]]debugdir\>/\\\\\\\\\\\\&/g'`
6dea1fbd 142AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir,
bccbefd2
JK
143 [Directories safe to hold auto-loaded files.])
144AC_MSG_RESULT([$with_auto_load_safe_path])
145
5ae98d25 146AC_CONFIG_SUBDIRS(testsuite)
96baa820 147
d0c678e6
UW
148# Check whether to support alternative target configurations
149AC_ARG_ENABLE(targets,
d2596e2e 150AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
d0c678e6
UW
151[case "${enableval}" in
152 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
153 ;;
154 no) enable_targets= ;;
155 *) enable_targets=$enableval ;;
156esac])
157
c0993dbe
UW
158# Check whether to enable 64-bit support on 32-bit hosts
159AC_ARG_ENABLE(64-bit-bfd,
d2596e2e 160AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]),
c0993dbe
UW
161[case "${enableval}" in
162 yes) want64=true ;;
163 no) want64=false ;;
164 *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
165esac],[want64=false])dnl
166
121ce6e5
DJ
167# Provide defaults for some variables set by the per-host and per-target
168# configuration.
169gdb_host_obs=posix-hdep.o
170
771b4502
UW
171if test "${target}" = "${host}"; then
172 gdb_native=yes
173else
174 gdb_native=no
175fi
176
27e9bf90 177. $srcdir/configure.host
c906108c 178
d0c678e6
UW
179# Accumulate some settings from configure.tgt over all enabled targets
180
181TARGET_OBS=
182all_targets=
b292c783 183HAVE_NATIVE_GCORE_TARGET=
d0c678e6
UW
184
185for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
186do
187 if test "$targ_alias" = "all"; then
188 all_targets=true
189 else
190 # Canonicalize the secondary target names.
191 result=`$ac_config_sub $targ_alias 2>/dev/null`
192 if test -n "$result"; then
193 targ=$result
194 else
195 targ=$targ_alias
196 fi
197
198 . ${srcdir}/configure.tgt
199
bf307134
JB
200 AS_IF([test -z "${gdb_target_obs}"],
201 [AC_MSG_ERROR([configuration ${targ} is unsupported.])])
202
d0c678e6
UW
203 # Target-specific object files
204 for i in ${gdb_target_obs}; do
205 case " $TARGET_OBS " in
206 *" ${i} "*) ;;
207 *)
208 TARGET_OBS="$TARGET_OBS ${i}"
209 ;;
210 esac
211 done
c0993dbe
UW
212
213 # Check whether this target needs 64-bit CORE_ADDR
214 if test x${want64} = xfalse; then
215 . ${srcdir}/../bfd/config.bfd
216 fi
b292c783
JK
217
218 # Check whether this target is native and supports gcore.
219 if test $gdb_native = yes -a "$targ_alias" = "$target_alias" \
220 && $gdb_have_gcore; then
221 HAVE_NATIVE_GCORE_TARGET=1
222 fi
d0c678e6
UW
223 fi
224done
225
226if test x${all_targets} = xtrue; then
c0993dbe
UW
227
228 # We want all 64-bit targets if we either:
229 # - run on a 64-bit host or
230 # - already require 64-bit support for some other target or
231 # - the --enable-64-bit-bfd option was supplied
232 # Otherwise we only support all 32-bit targets.
233 #
234 # NOTE: This test must be in sync with the corresponding
235 # tests in BFD!
236
237 if test x${want64} = xfalse; then
238 AC_CHECK_SIZEOF(long)
239 if test "x${ac_cv_sizeof_long}" = "x8"; then
240 want64=true
241 fi
242 fi
243 if test x${want64} = xtrue; then
244 TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
245 else
246 TARGET_OBS='$(ALL_TARGET_OBS)'
247 fi
d0c678e6
UW
248fi
249
250AC_SUBST(TARGET_OBS)
b292c783 251AC_SUBST(HAVE_NATIVE_GCORE_TARGET)
d0c678e6
UW
252
253# For other settings, only the main target counts.
254gdb_sim=
255gdb_osabi=
d0c678e6 256targ=$target; . ${srcdir}/configure.tgt
c906108c 257
27e9bf90
MK
258# Fetch the default architecture and default target vector from BFD.
259targ=$target; . $srcdir/../bfd/config.bfd
5c8cc331 260
27e9bf90
MK
261# We only want the first architecture, so strip off the others if
262# there is more than one.
263targ_archs=`echo $targ_archs | sed 's/ .*//'`
5c8cc331 264
27e9bf90
MK
265if test "x$targ_archs" != x; then
266 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
267 [Define to BFD's default architecture. ])
1ba607ad 268fi
27e9bf90
MK
269if test "x$targ_defvec" != x; then
270 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
271 [Define to BFD's default target vector. ])
1ba607ad
AC
272fi
273
627af7ea
MK
274# Enable MI.
275AC_ARG_ENABLE(gdbmi,
d2596e2e 276AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]),
627af7ea
MK
277 [case $enableval in
278 yes | no)
279 ;;
280 *)
281 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
282 esac],
283 [enable_gdbmi=yes])
284if test x"$enable_gdbmi" = xyes; then
0ad6b8ee 285 if test -d "$srcdir/mi"; then
627af7ea
MK
286 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
287 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
288 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
627af7ea 289 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
627af7ea
MK
290 fi
291fi
292
287c1a40
MK
293# Enable TUI.
294AC_ARG_ENABLE(tui,
d2596e2e 295AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]),
287c1a40 296 [case $enableval in
3ca64bd3 297 yes | no | auto)
287c1a40
MK
298 ;;
299 *)
300 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
3ca64bd3 301 esac],enable_tui=auto)
287c1a40 302
8ee53726
MK
303# Enable gdbtk.
304AC_ARG_ENABLE(gdbtk,
d2596e2e 305AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]),
8ee53726
MK
306 [case $enableval in
307 yes | no)
308 ;;
309 *)
310 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
311 esac],
0ad6b8ee 312 [if test -d "$srcdir/gdbtk"; then
8ee53726
MK
313 enable_gdbtk=yes
314 else
315 enable_gdbtk=no
316 fi])
317# We unconditionally disable gdbtk tests on selected platforms.
318case $host_os in
319 go32* | windows*)
320 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
321 enable_gdbtk=no ;;
322esac
323
0d79cdc4
AM
324# Handle optional debuginfod support
325AC_DEBUGINFOD
05e7c244 326
0d79cdc4 327# Libunwind support for ia64.
05e7c244
JK
328AC_ARG_WITH(libunwind-ia64,
329AS_HELP_STRING([--with-libunwind-ia64],
330 [use libunwind frame unwinding for ia64 targets]),,
331 [with_libunwind_ia64=auto])
332
333# Backward compatibility option.
334if test "${with_libunwind+set}" = set; then
335 if test x"$with_libunwind_ia64" != xauto; then
336 AC_MSG_ERROR(
337 [option --with-libunwind is deprecated, use --with-libunwind-ia64])
0e5d83e3 338 fi
05e7c244
JK
339 AC_MSG_WARN([option --with-libunwind is deprecated, use --with-libunwind-ia64])
340 with_libunwind_ia64="$with_libunwind"
341fi
342
343case "$with_libunwind_ia64" in
344 yes | no)
345 ;;
346 auto)
347 AC_CHECK_HEADERS(libunwind-ia64.h)
348 with_libunwind_ia64=$ac_cv_header_libunwind_ia64_h
349 ;;
350 *)
351 AC_MSG_ERROR(
352 [bad value $with_libunwind_ia64 for GDB --with-libunwind-ia64 option])
353 ;;
354esac
355
356if test x"$with_libunwind_ia64" = xyes; then
b54a8fd7 357 AC_CHECK_HEADERS(libunwind-ia64.h)
05e7c244
JK
358 if test x"$ac_cv_header_libunwind_ia64_h" != xyes; then
359 AC_MSG_ERROR([GDB option --with-libunwind-ia64 requires libunwind-ia64.h])
360 fi
361 CONFIG_OBS="$CONFIG_OBS ia64-libunwind-tdep.o"
362 CONFIG_DEPS="$CONFIG_DEPS ia64-libunwind-tdep.o"
363 CONFIG_SRCS="$CONFIG_SRCS ia64-libunwind-tdep.c"
0e5d83e3
JJ
364fi
365
cb01cfba 366opt_curses=no
d2596e2e 367AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
cb01cfba 368
76a39ba7 369prefer_curses=no
cb01cfba 370if test "$opt_curses" = "yes"; then
76a39ba7 371 prefer_curses=yes
cb01cfba
JB
372fi
373
d28f9cdf
DJ
374# Profiling support.
375AC_ARG_ENABLE(profiling,
d2596e2e 376AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]),
d28f9cdf
DJ
377 [case $enableval in
378 yes | no)
379 ;;
380 *)
381 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
382 esac],
383 [enable_profiling=no])
384
d9feb4e7 385AC_CHECK_FUNCS(monstartup _mcleanup)
b0b1c2c0
MK
386AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
387[AC_TRY_LINK(
388[#include <stdlib.h>
389extern char _etext;
390],
391[free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
0ad6b8ee 392if test "$ac_cv_var__etext" = yes; then
b0b1c2c0
MK
393 AC_DEFINE(HAVE__ETEXT, 1,
394 [Define to 1 if your system has the _etext variable. ])
395fi
01fe12f6
JB
396AC_CACHE_CHECK([for etext], ac_cv_var_etext,
397[AC_TRY_LINK(
398[#include <stdlib.h>
399extern char etext;
400],
401[free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)])
0ad6b8ee 402if test "$ac_cv_var_etext" = yes; then
01fe12f6
JB
403 AC_DEFINE(HAVE_ETEXT, 1,
404 [Define to 1 if your system has the etext variable. ])
405fi
d28f9cdf 406if test "$enable_profiling" = yes ; then
0ad6b8ee 407 if test "$ac_cv_func_monstartup" = no || test "$ac_cv_func__mcleanup" = no; then
d9feb4e7
DJ
408 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
409 fi
d28f9cdf
DJ
410 PROFILE_CFLAGS=-pg
411 OLD_CFLAGS="$CFLAGS"
412 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
413
d9feb4e7
DJ
414 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
415 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
416 ac_cv_cc_supports_pg=no)])
d28f9cdf 417
0ad6b8ee 418 if test "$ac_cv_cc_supports_pg" = no; then
d9feb4e7
DJ
419 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
420 fi
d28f9cdf
DJ
421
422 CFLAGS="$OLD_CFLAGS"
423fi
424
44cee4fd
TT
425CODESIGN_CERT=
426AC_ARG_ENABLE([codesign],
427 AS_HELP_STRING([--enable-codesign=CERT],
428 [sign gdb with 'codesign -s CERT']),
429 [CODESIGN_CERT=$enableval])
430AC_SUBST([CODESIGN_CERT])
431
c16158bc 432ACX_PKGVERSION([GDB])
112c22ed 433ACX_BUGURL([https://www.gnu.org/software/gdb/bugs/])
c16158bc
JM
434AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
435AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
436
8bb2c122
MK
437# --------------------- #
438# Checks for programs. #
439# --------------------- #
440
7a292a7a 441AC_PROG_AWK
c906108c 442AC_PROG_INSTALL
8bb2c122
MK
443AC_PROG_LN_S
444AC_PROG_RANLIB
445AC_PROG_YACC
446
c906108c 447AC_CHECK_TOOL(AR, ar)
95ca63c4
CF
448AC_CHECK_TOOL(DLLTOOL, dlltool)
449AC_CHECK_TOOL(WINDRES, windres)
c906108c 450
036c3acb
TS
451case $host_os in
452 gnu*)
453 # Needed for GNU Hurd hosts.
454 AC_CHECK_TOOL(MIG, mig)
455 if test x"$MIG" = x; then
456 AC_MSG_ERROR([MIG not found but required for $host hosts])
457 fi
458 ;;
459esac
75c6e08a 460
9a156167
MK
461# ---------------------- #
462# Checks for libraries. #
463# ---------------------- #
464
465# We might need to link with -lm; most simulators need it.
466AC_CHECK_LIB(m, main)
467
c890192f
MK
468# Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
469AC_SEARCH_LIBS(gethostbyname, nsl)
470
9a156167
MK
471# Some systems (e.g. Solaris) have `socketpair' in libsocket.
472AC_SEARCH_LIBS(socketpair, socket)
473
233a11ab 474# Link in zlib if we can. This allows us to read compressed debug sections.
b040ad30 475AM_ZLIB
233a11ab 476
6c7a06a3
TT
477AM_ICONV
478
478aac75
DE
479# GDB may fork/exec the iconv program to get the list of supported character
480# sets. Allow the user to specify where to find it.
481# There are several factors affecting the choice of option name:
482# - There is already --with-libiconv-prefix but we can't use it, it specifies
483# the build-time location of libiconv files.
484# - The program we need to find is iconv, which comes with glibc. The user
485# doesn't necessarily have libiconv installed. Therefore naming this
486# --with-libiconv-foo feels wrong.
487# - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is
488# defined to work on directories not files (though it really doesn't know
489# the difference).
490# - Calling this --with-iconv-prefix is perceived to cause too much confusion
491# with --with-libiconv-prefix.
492# Putting these together is why the option name is --with-iconv-bin.
493
494AC_ARG_WITH(iconv-bin,
495AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]),
496[iconv_bin="${withval}"
497 AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"],
498 [Path of directory of iconv program.])
499 GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin})
500])
501
cb01cfba 502# For the TUI, we need enhanced curses functionality.
bd8a8e1b 503if test x"$enable_tui" != xno; then
cb01cfba
JB
504 prefer_curses=yes
505fi
506
507curses_found=no
508if test x"$prefer_curses" = xyes; then
509 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
510 # curses library because the latter might not provide all the
511 # functionality we need. However, this leads to problems on systems
512 # where the linker searches /usr/local/lib, but the compiler doesn't
513 # search /usr/local/include, if ncurses is installed in /usr/local. A
514 # default installation of ncurses on alpha*-dec-osf* will lead to such
515 # a situation.
5007d765 516 AC_SEARCH_LIBS(waddstr, [ncursesw ncurses cursesX curses])
cb01cfba
JB
517
518 if test "$ac_cv_search_waddstr" != no; then
519 curses_found=yes
520 fi
521fi
522
77f120bf
JB
523# Check whether we should enable the TUI, but only do so if we really
524# can.
525if test x"$enable_tui" != xno; then
0ad6b8ee 526 if test -d "$srcdir/tui"; then
cb01cfba 527 if test "$curses_found" != no; then
77f120bf
JB
528 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
529 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
530 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
531 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
77f120bf
JB
532 else
533 if test x"$enable_tui" = xyes; then
534 AC_MSG_ERROR([no enhanced curses library found; disable TUI])
535 else
536 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
537 fi
538 fi
539 fi
540fi
541
4f0be353
MK
542# Since GDB uses Readline, we need termcap functionality. In many
543# cases this will be provided by the curses library, but some systems
96fe4562 544# have a separate termcap library, or no curses library at all.
287c1a40
MK
545
546case $host_os in
547 cygwin*)
0ad6b8ee 548 if test -d "$srcdir/libtermcap"; then
287c1a40
MK
549 LIBS="../libtermcap/libtermcap.a $LIBS"
550 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
551 fi ;;
228a417c 552 go32* | *djgpp*)
287c1a40
MK
553 ac_cv_search_tgetent="none required"
554 ;;
287c1a40
MK
555esac
556
4f0be353 557# These are the libraries checked by Readline.
2578ecb1 558AC_SEARCH_LIBS(tgetent, [termcap tinfow tinfo curses ncursesw ncurses])
287c1a40
MK
559
560if test "$ac_cv_search_tgetent" = no; then
7a85168d 561 CONFIG_OBS="$CONFIG_OBS stub-termcap.o"
287c1a40
MK
562fi
563
6a30b0a5
AS
564AC_ARG_WITH([system-readline],
565 [AS_HELP_STRING([--with-system-readline],
566 [use installed readline library])])
567
568if test "$with_system_readline" = yes; then
86c6b807
TT
569 AC_CACHE_CHECK([whether system readline is new enough],
570 [gdb_cv_readline_ok],
571 [AC_TRY_COMPILE(
572 [#include <stdio.h>
573#include <readline/readline.h>],
574 [#if RL_VERSION_MAJOR < 7
575# error "readline version 7 required"
576#endif],
577 gdb_cv_readline_ok=yes,
578 gdb_cv_readline_ok=no)])
579 if test "$gdb_cv_readline_ok" != yes; then
580 AC_MSG_ERROR([system readline is not new enough])
581 fi
582
6a30b0a5
AS
583 READLINE=-lreadline
584 READLINE_DEPS=
585 READLINE_CFLAGS=
39037522 586 READLINE_TEXI_INCFLAG=
6a30b0a5
AS
587else
588 READLINE='$(READLINE_DIR)/libreadline.a'
589 READLINE_DEPS='$(READLINE)'
590 READLINE_CFLAGS='-I$(READLINE_SRC)/..'
39037522 591 READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
6a30b0a5
AS
592fi
593AC_SUBST(READLINE)
594AC_SUBST(READLINE_DEPS)
595AC_SUBST(READLINE_CFLAGS)
39037522 596AC_SUBST(READLINE_TEXI_INCFLAG)
6a30b0a5 597
f997c383
SD
598# Generate jit-reader.h
599
600# This is typedeffed to GDB_CORE_ADDR in jit-reader.h
601TARGET_PTR=
602
603AC_CHECK_SIZEOF(unsigned long long)
604AC_CHECK_SIZEOF(unsigned long)
605AC_CHECK_SIZEOF(unsigned __int128)
606
607if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then
608 TARGET_PTR="unsigned long"
609elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then
610 TARGET_PTR="unsigned long long"
611elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then
612 TARGET_PTR="unsigned __int128"
613else
614 TARGET_PTR="unsigned long"
615fi
616
617AC_SUBST(TARGET_PTR)
618AC_CONFIG_FILES([jit-reader.h:jit-reader.in])
619
a2d08b9e
SD
620AC_SEARCH_LIBS(dlopen, dl)
621
b8e0a31c
SD
622GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir],
623 [directory to load the JIT readers from],
624 [${libdir}/gdb])
625
5c39566f
DJ
626AC_ARG_WITH(expat,
627 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
628 [], [with_expat=auto])
629AC_MSG_CHECKING([whether to use expat])
630AC_MSG_RESULT([$with_expat])
631
632if test "${with_expat}" = no; then
633 AC_MSG_WARN([expat support disabled; some features may be unavailable.])
634 HAVE_LIBEXPAT=no
ca4ca11e 635else
5c39566f
DJ
636 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
637 [XML_Parser p = XML_ParserCreate (0);])
638 if test "$HAVE_LIBEXPAT" != yes; then
639 if test "$with_expat" = yes; then
640 AC_MSG_ERROR([expat is missing or unusable])
641 else
642 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
643 fi
644 else
645 save_LIBS=$LIBS
646 LIBS="$LIBS $LIBEXPAT"
647 AC_CHECK_FUNCS(XML_StopParser)
648 LIBS=$save_LIBS
649 fi
7fa2210b
DJ
650fi
651
2400729e
UW
652AC_ARG_WITH(mpfr,
653 AS_HELP_STRING([--with-mpfr], [include MPFR support (auto/yes/no)]),
654 [], [with_mpfr=auto])
655AC_MSG_CHECKING([whether to use MPFR])
656AC_MSG_RESULT([$with_mpfr])
657
658if test "${with_mpfr}" = no; then
659 AC_MSG_WARN([MPFR support disabled; some features may be unavailable.])
660 HAVE_LIBMPFR=no
661else
da658607 662 AC_LIB_HAVE_LINKFLAGS([mpfr], [gmp], [#include <mpfr.h>],
2400729e
UW
663 [mpfr_exp_t exp; mpfr_t x;
664 mpfr_frexp (&exp, x, x, MPFR_RNDN);])
665 if test "$HAVE_LIBMPFR" != yes; then
666 if test "$with_mpfr" = yes; then
667 AC_MSG_ERROR([MPFR is missing or unusable])
668 else
669 AC_MSG_WARN([MPFR is missing or unusable; some features may be unavailable.])
670 fi
671 fi
672fi
673
d344e670
DE
674# --------------------- #
675# Check for libpython. #
676# --------------------- #
677
d57a3c85 678dnl Utility to simplify finding libpython.
71737c43 679dnl $1 = the shell variable to assign the result to
ec685c5e 680dnl If libpython is found we store $version here.
71737c43
CB
681dnl $2 = additional flags to add to CPPFLAGS
682dnl $3 = additional flags to add to LIBS
ec685c5e 683
d57a3c85
TJB
684AC_DEFUN([AC_TRY_LIBPYTHON],
685[
71737c43
CB
686 define([have_libpython_var],$1)
687 new_CPPFLAGS=$2
688 new_LIBS=$3
689 AC_MSG_CHECKING([for python])
ec685c5e 690 save_CPPFLAGS=$CPPFLAGS
d57a3c85 691 save_LIBS=$LIBS
ec685c5e 692 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
bf27f0e2 693 LIBS="$new_LIBS $LIBS"
ec685c5e 694 found_usable_python=no
d0ac1c44
SM
695 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "Python.h"]],
696 [[Py_Initialize ();]])],
71737c43 697 [have_libpython_var=yes
ac534cba
JB
698 found_usable_python=yes
699 PYTHON_CPPFLAGS=$new_CPPFLAGS
700 PYTHON_LIBS=$new_LIBS])
701 CPPFLAGS=$save_CPPFLAGS
702 LIBS=$save_LIBS
ec685c5e 703 AC_MSG_RESULT([${found_usable_python}])
d57a3c85
TJB
704])
705
0c4a4063
DE
706dnl There are several different values for --with-python:
707dnl
708dnl no - Don't include python support.
709dnl yes - Include python support, error if it's missing.
710dnl If we find python in $PATH, use it to fetch configure options,
711dnl otherwise assume the compiler can find it with no help from us.
6c28e44a 712dnl Python 2.7 and 2.6 are tried in turn.
0c4a4063
DE
713dnl auto - Same as "yes", but if python is missing from the system,
714dnl fall back to "no".
715dnl /path/to/python/exec-prefix -
716dnl Use the python located in this directory.
717dnl If /path/to/python/exec-prefix/bin/python exists, use it to find
718dnl the compilation parameters. Otherwise use
719dnl -I/path/to/python/exec-prefix/include,
720dnl -L/path/to/python/exec-prefix/lib.
6c28e44a 721dnl Python 2.7 and 2.6 are tried in turn.
0c4a4063
DE
722dnl NOTE: This case is historical. It is what was done for 7.0/7.1
723dnl but is deprecated.
724dnl /path/to/python/executable -
725dnl Run python-config.py with this version of python to fetch the
726dnl compilation parameters.
727dnl NOTE: This needn't be the real python executable.
728dnl In a cross-compilation scenario (build != host), this could be
729dnl a shell script that provides what python-config.py provides for
730dnl --ldflags, --includes, --exec-prefix.
731dnl python-executable -
732dnl Find python-executable in $PATH, and then handle the same as
733dnl /path/to/python/executable.
734dnl
735dnl If a python program is specified, it is used to run python-config.py and
736dnl is passed --ldflags, --includes, --exec-prefix.
737
d57a3c85 738AC_ARG_WITH(python,
0c4a4063 739 AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
d57a3c85
TJB
740 [], [with_python=auto])
741AC_MSG_CHECKING([whether to use python])
742AC_MSG_RESULT([$with_python])
743
744if test "${with_python}" = no; then
745 AC_MSG_WARN([python support disabled; some features may be unavailable.])
746 have_libpython=no
747else
748 case "${with_python}" in
8c85a4e2 749 [[\\/]]* | ?:[[\\/]]*)
0ad6b8ee 750 if test -d "${with_python}"; then
ec685c5e 751 # Assume the python binary is ${with_python}/bin/python.
ec685c5e 752 python_prog="${with_python}/bin/python"
0c4a4063 753 python_prefix=
9c4ea6c5
JB
754 # If python does not exit ${with_python}/bin, then try in
755 # ${with_python}. On Windows/MinGW, this is where the Python
756 # executable is.
757 if test ! -x "${python_prog}"; then
758 python_prog="${with_python}/python"
759 python_prefix=
760 fi
e7a30f46 761 if test ! -x "${python_prog}"; then
ec685c5e
DE
762 # Fall back to gdb 7.0/7.1 behaviour.
763 python_prog=missing
0c4a4063 764 python_prefix=${with_python}
ec685c5e 765 fi
e7a30f46 766 elif test -x "${with_python}"; then
ec685c5e
DE
767 # While we can't run python compiled for $host (unless host == build),
768 # the user could write a script that provides the needed information,
769 # so we support that.
ec685c5e 770 python_prog=${with_python}
0c4a4063 771 python_prefix=
ec685c5e
DE
772 else
773 AC_ERROR(invalid value for --with-python)
774 fi
d57a3c85 775 ;;
ec685c5e
DE
776 */*)
777 # Disallow --with-python=foo/bar.
d57a3c85
TJB
778 AC_ERROR(invalid value for --with-python)
779 ;;
ec685c5e
DE
780 *)
781 # The user has either specified auto, yes, or the name of the python
782 # program assumed to be in $PATH.
783 python_prefix=
784 case "${with_python}" in
785 yes | auto)
0ad6b8ee 786 if test "${build}" = "${host}"; then
ec685c5e
DE
787 AC_PATH_PROG(python_prog_path, python, missing)
788 if test "${python_prog_path}" = missing; then
789 python_prog=missing
790 else
791 python_prog=${python_prog_path}
792 fi
793 else
794 # Not much we can do except assume the cross-compiler will find the
795 # right files.
796 python_prog=missing
797 fi
798 ;;
799 *)
800 # While we can't run python compiled for $host (unless host == build),
801 # the user could write a script that provides the needed information,
802 # so we support that.
803 python_prog="${with_python}"
804 AC_PATH_PROG(python_prog_path, ${python_prog}, missing)
805 if test "${python_prog_path}" = missing; then
806 AC_ERROR(unable to find python program ${python_prog})
807 fi
808 ;;
809 esac
d57a3c85
TJB
810 esac
811
ec685c5e 812 if test "${python_prog}" != missing; then
e7a30f46
DE
813 # We have a python program to use, but it may be too old.
814 # Don't flag an error for --with-python=auto (the default).
815 have_python_config=yes
ec685c5e
DE
816 python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
817 if test $? != 0; then
e7a30f46
DE
818 have_python_config=failed
819 if test "${with_python}" != auto; then
820 AC_ERROR(failure running python-config --includes)
821 fi
d57a3c85 822 fi
ec685c5e
DE
823 python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
824 if test $? != 0; then
e7a30f46
DE
825 have_python_config=failed
826 if test "${with_python}" != auto; then
827 AC_ERROR(failure running python-config --ldflags)
828 fi
ec685c5e 829 fi
0c4a4063
DE
830 python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
831 if test $? != 0; then
e7a30f46
DE
832 have_python_config=failed
833 if test "${with_python}" != auto; then
834 AC_ERROR(failure running python-config --exec-prefix)
835 fi
0c4a4063 836 fi
ec685c5e 837 else
ac534cba
JB
838 # We do not have a python executable we can use to determine where
839 # to find the Python headers and libs. We cannot guess the include
840 # path from the python_prefix either, because that include path
841 # depends on the Python version. So, there is nothing much we can
842 # do except assume that the compiler will be able to find those files.
843 python_includes=
844 python_libs=
0c4a4063 845 have_python_config=no
d57a3c85 846 fi
ec685c5e 847
ec685c5e
DE
848 # If we have python-config, only try the configuration it provides.
849 # Otherwise fallback on the old way of trying different versions of
850 # python in turn.
851
852 have_libpython=no
853 if test "${have_python_config}" = yes; then
71737c43
CB
854 AC_TRY_LIBPYTHON(have_libpython,
855 ${python_includes}, ${python_libs})
e7a30f46 856 elif test "${have_python_config}" != failed; then
420697bb 857 if test "${have_libpython}" = no; then
71737c43 858 AC_TRY_LIBPYTHON(have_libpython,
bf27f0e2 859 ${python_includes}, "-lpython2.7 ${python_libs}")
420697bb 860 fi
ec685c5e 861 if test "${have_libpython}" = no; then
71737c43 862 AC_TRY_LIBPYTHON(have_libpython,
bf27f0e2 863 ${python_includes}, "-lpython2.6 ${python_libs}")
ec685c5e 864 fi
d57a3c85 865 fi
ec685c5e
DE
866
867 if test "${have_libpython}" = no; then
d57a3c85
TJB
868 case "${with_python}" in
869 yes)
870 AC_MSG_ERROR([python is missing or unusable])
871 ;;
872 auto)
873 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.])
874 ;;
875 *)
876 AC_MSG_ERROR([no usable python found at ${with_python}])
877 ;;
878 esac
0c4a4063
DE
879 else
880 if test -n "${python_prefix}"; then
881 AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}",
882 [Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.])
883 GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix})
884 fi
d57a3c85
TJB
885 fi
886fi
887
d13c7322
AB
888dnl Use --with-python-libdir to control where GDB looks for the Python
889dnl libraries.
890dnl
891dnl If this is not given then the default will be based on the value
892dnl passed to --with-python, which is in the python_prefix variable.
893dnl If the --with-python option wasn't given then the default value in
894dnl python_prefix is based on running the 'gdb/python/python-config
895dnl --exec-prefix' script.
896AC_ARG_WITH(python-libdir,
897 AS_HELP_STRING([--with-python-libdir@<:@=DIR@:>@], [search for python's libraries in DIR]),
898 [],[
899 # If no python libdir is specified then select one based on
900 # python's prefix path.
901 if test -n "${python_prefix}"; then
902 with_python_libdir=${python_prefix}/lib
903 fi
904 ])
905
ec685c5e 906if test "${have_libpython}" != no; then
d57a3c85
TJB
907 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.])
908 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
909 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
910 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
94f7449c 911 CONFIG_INSTALL="$CONFIG_INSTALL install-python"
d57a3c85
TJB
912 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
913
d13c7322
AB
914 if test -n "${with_python_libdir}"; then
915 AC_DEFINE_UNQUOTED(WITH_PYTHON_LIBDIR, "${with_python_libdir}",
916 [Directory containing Python's standard libraries from --with-python-libdir.])
917 GDB_AC_DEFINE_RELOCATABLE(PYTHON_LIBDIR, [python lib], ${with_python_libdir})
918 fi
919
d57a3c85
TJB
920 # Flags needed to compile Python code (taken from python-config --cflags).
921 # We cannot call python-config directly because it will output whatever was
922 # used when compiling the Python interpreter itself, including flags which
923 # would make the python-related objects be compiled differently from the
924 # rest of GDB (e.g., -O2 and -fPIC).
925 if test "${GCC}" = yes; then
ae292b3a
TT
926 tentative_python_cflags="-fno-strict-aliasing -fwrapv"
927 # Python headers recommend -DNDEBUG, but it's unclear if that just
928 # refers to building Python itself. In release mode, though, it
929 # doesn't hurt for the Python code in gdb to follow.
930 $development || tentative_python_cflags="$tentative_python_cflags -DNDEBUG"
d57a3c85
TJB
931 fi
932
933 if test "x${tentative_python_cflags}" != x; then
934 AC_MSG_CHECKING(compiler flags for python code)
935 for flag in ${tentative_python_cflags}; do
936 # Check that the compiler accepts it
937 saved_CFLAGS="$CFLAGS"
938 CFLAGS="$CFLAGS $flag"
939 AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",)
940 CFLAGS="$saved_CFLAGS"
941 done
942 AC_MSG_RESULT(${PYTHON_CFLAGS})
943 fi
043b6510 944
c83393b9
JB
945 # On x64 Windows, Python's include headers, and pyconfig.h in
946 # particular, rely on MS_WIN64 macro to detect that it's a 64bit
947 # version of Windows. Unfortunately, MS_WIN64 is only defined if
948 # _MSC_VER, a Microsoft-specific macro, is defined. So, when
949 # building on x64 Windows with GCC, we define MS_WIN64 ourselves.
950 # The issue was reported to the Python community, but still isn't
951 # solved as of 2012-10-02 (http://bugs.python.org/issue4709).
952
043b6510 953 case "$gdb_host" in
c83393b9
JB
954 mingw64)
955 if test "${GCC}" = yes; then
956 CPPFLAGS="$CPPFLAGS -DMS_WIN64"
957 fi
958 ;;
043b6510 959 esac
d57a3c85 960else
6dddc817
DE
961 # Even if Python support is not compiled in, we need to have this file
962 # included so that the "python" command, et.al., still exists.
8fd8d003 963 CONFIG_OBS="$CONFIG_OBS python/python.o"
6dddc817 964 CONFIG_SRCS="$CONFIG_SRCS python/python.c"
d57a3c85 965fi
a4a1c157
PA
966
967# Work around Python http://bugs.python.org/issue10112. See also
968# http://bugs.python.org/issue11410, otherwise -Wl,--dynamic-list has
969# no effect. Note that the only test after this that uses Python is
970# the -rdynamic/-Wl,--dynamic-list test, and we do want that one to be
971# run without -export-dynamic too.
972PYTHON_LIBS=`echo $PYTHON_LIBS | sed -e 's/-Xlinker -export-dynamic//'`
973
d57a3c85 974AC_SUBST(PYTHON_CFLAGS)
ac534cba
JB
975AC_SUBST(PYTHON_CPPFLAGS)
976AC_SUBST(PYTHON_LIBS)
4df42755 977AM_CONDITIONAL(HAVE_PYTHON, test "${have_libpython}" != no)
d57a3c85 978
ed3ef339
DE
979# -------------------- #
980# Check for libguile. #
981# -------------------- #
982
ed3ef339
DE
983dnl Utility to simplify finding libguile.
984dnl $1 = pkg-config-program
985dnl $2 = space-separate list of guile versions to try
986dnl $3 = yes|no, indicating whether to flag errors or ignore them
987dnl $4 = the shell variable to assign the result to
988dnl If libguile is found we store "yes" here.
989
990AC_DEFUN([AC_TRY_LIBGUILE],
991[
992 pkg_config=$1
993 guile_version_list=$2
994 flag_errors=$3
995 define([have_libguile_var],$4)
ed3ef339
DE
996 found_usable_guile=checking
997 AC_MSG_CHECKING([for usable guile from ${pkg_config}])
998 for guile_version in ${guile_version_list}; do
999 ${pkg_config} --exists ${guile_version} 2>/dev/null
1000 if test $? != 0; then
1001 continue
1002 fi
1003 dnl pkg-config says the package exists, so if we get an error now,
1004 dnl that's bad.
1005 new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}`
1006 if test $? != 0; then
e1402065 1007 AC_MSG_ERROR([failure running pkg-config --cflags ${guile_version}])
ed3ef339
DE
1008 fi
1009 new_LIBS=`${pkg_config} --libs ${guile_version}`
1010 if test $? != 0; then
e1402065 1011 AC_MSG_ERROR([failure running pkg-config --libs ${guile_version}])
ed3ef339
DE
1012 fi
1013 dnl If we get this far, great.
1014 found_usable_guile=${guile_version}
1015 break
1016 done
1017 if test "${found_usable_guile}" = "checking"; then
1018 if test "${flag_errors}" = "yes"; then
e1402065 1019 AC_MSG_ERROR([unable to find usable guile version from "${guile_version_list}"])
ed3ef339
DE
1020 else
1021 found_usable_guile=no
1022 fi
1023 fi
1024 dnl One final sanity check.
1025 dnl The user could have said --with-guile=python-2.7.
1026 if test "${found_usable_guile}" != no; then
1027 save_CPPFLAGS=$CPPFLAGS
1028 save_LIBS=$LIBS
1029 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
1030 LIBS="$LIBS $new_LIBS"
d0ac1c44
SM
1031 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "libguile.h"]],
1032 [[scm_init_guile ();]])],
ed3ef339
DE
1033 [have_libguile_var=yes
1034 GUILE_CPPFLAGS=$new_CPPFLAGS
1035 GUILE_LIBS=$new_LIBS],
1036 [found_usable_guile=no])
92fab5a6
AW
1037 dnl scm_set_automatic_finalization_enabled added in Guile 2.2.
1038 AC_CHECK_FUNC(scm_set_automatic_finalization_enabled,
1039 AC_DEFINE(HAVE_GUILE_MANUAL_FINALIZATION, 1,
1040 [Define if Guile supports manual finalization.])
1041 )
ed3ef339
DE
1042 CPPFLAGS=$save_CPPFLAGS
1043 LIBS=$save_LIBS
1044 if test "${found_usable_guile}" = no; then
1045 if test "${flag_errors}" = yes; then
e1402065 1046 AC_MSG_FAILURE([linking guile version ${guile_version} test program failed])
ed3ef339
DE
1047 fi
1048 fi
1049 fi
1050 AC_MSG_RESULT([${found_usable_guile}])
1051])
1052
1053dnl There are several different values for --with-guile:
1054dnl
1055dnl no - Don't include guile support.
1056dnl yes - Include guile support, error if it's missing.
1057dnl The pkg-config program must be in $PATH.
1058dnl auto - Same as "yes", but if guile is missing from the system,
1059dnl fall back to "no".
1060dnl guile-version [guile-version-choice-2 ...] -
1061dnl A space-separated list of guile package versions to try.
1062dnl These are passed to pkg-config as-is.
1063dnl E.g., guile-2.0 or guile-2.2-uninstalled
1064dnl This requires making sure PKG_CONFIG_PATH is set appropriately.
1065dnl /path/to/pkg-config -
1066dnl Use this pkg-config program.
1067dnl NOTE: This needn't be the "real" pkg-config program.
1068dnl It could be a shell script. It is invoked as:
1069dnl pkg-config --exists $version
1070dnl pkg-config --cflags $version
1071dnl pkg-config --libs $version
d342a0da
DE
1072dnl pkg-config --variable guild $version
1073dnl The script will be called with $version having each value in
1074dnl $try_guile_versions until --exists indicates success.
ed3ef339
DE
1075
1076AC_ARG_WITH(guile,
1077 AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no/<guile-version>/<pkg-config-program>)]),
1078 [], [with_guile=auto])
1079AC_MSG_CHECKING([whether to use guile])
1080AC_MSG_RESULT([$with_guile])
1081
e1402065
DE
1082dnl We check guile with pkg-config.
1083AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing)
1084
ae5369e7 1085try_guile_versions="guile-3.0 guile-2.2 guile-2.0"
ed3ef339
DE
1086have_libguile=no
1087case "${with_guile}" in
1088no)
1089 AC_MSG_WARN([guile support disabled; some features will be unavailable.])
1090 ;;
1091auto)
e1402065
DE
1092 if test "${pkg_config_prog_path}" = "missing"; then
1093 AC_MSG_WARN([pkg-config not found, guile support disabled])
1094 else
1095 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, no, have_libguile)
1096 fi
ed3ef339
DE
1097 ;;
1098yes)
e1402065
DE
1099 if test "${pkg_config_prog_path}" = "missing"; then
1100 AC_MSG_ERROR([pkg-config not found])
1101 fi
ed3ef339
DE
1102 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, yes, have_libguile)
1103 ;;
1104[[\\/]]* | ?:[[\\/]]*)
e1402065
DE
1105 if test -x "${with_guile}"; then
1106 AC_TRY_LIBGUILE(${with_guile}, ${try_guile_versions}, yes, have_libguile)
1107 else
1108 AC_MSG_ERROR([Guile config program not executable: ${with_guile}])
1109 fi
ed3ef339
DE
1110 ;;
1111"" | */*)
1112 # Disallow --with=guile="" and --with-guile=foo/bar.
e1402065 1113 AC_MSG_ERROR([invalid value for --with-guile])
ed3ef339
DE
1114 ;;
1115*)
1116 # A space separate list of guile versions to try, in order.
e1402065
DE
1117 if test "${pkg_config_prog_path}" = "missing"; then
1118 AC_MSG_ERROR([pkg-config not found])
1119 fi
ed3ef339
DE
1120 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${with_guile}, yes, have_libguile)
1121 ;;
1122esac
1123
e76c5d17
DE
1124if test "${have_libguile}" != no; then
1125 dnl Get the name of the 'guild' program.
d342a0da
DE
1126 case "${with_guile}" in
1127 [[\\/]]* | ?:[[\\/]]*)
1128 GDB_GUILE_PROGRAM_NAMES(["${with_guile}"], ["${guile_version}"])
1129 ;;
1130 *)
1131 GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"])
1132 ;;
1133 esac
e76c5d17
DE
1134
1135 dnl Make sure guild can handle this host.
1136 GDB_TRY_GUILD([$srcdir/guile/lib/gdb/support.scm])
1137 dnl If not, disable guile support.
1138 if test "$ac_cv_guild_ok" = no; then
1139 have_libguile=no
1140 AC_MSG_WARN(disabling guile support, $GUILD fails compiling for $host)
1141 fi
1142fi
1143
ed3ef339
DE
1144if test "${have_libguile}" != no; then
1145 AC_DEFINE(HAVE_GUILE, 1, [Define if Guile interpreter is being linked in.])
1146 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_GUILE_OBS)"
1147 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_GUILE_DEPS)"
1148 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_GUILE_SRCS)"
1149 CONFIG_INSTALL="$CONFIG_INSTALL install-guile"
1150 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_GUILE_CFLAGS)"
16954d5d
LC
1151
1152 dnl The 'scm_new_smob' function appeared in Guile 2.0.6.
1153 save_LIBS="$LIBS"
1154 save_CPPFLAGS="$CPPFLAGS"
1155 LIBS="$GUILE_LIBS"
1156 CPPFLAGS="$GUILE_CPPFLAGS"
1157 AC_CHECK_FUNCS([scm_new_smob])
1158 LIBS="$save_LIBS"
1159 CPPFLAGS="$save_CPPFLAGS"
ed3ef339
DE
1160else
1161 # Even if Guile support is not compiled in, we need to have these files
1162 # included.
bd810fff 1163 CONFIG_OBS="$CONFIG_OBS guile/guile.o"
ed3ef339
DE
1164 CONFIG_SRCS="$CONFIG_SRCS guile/guile.c"
1165fi
1166AC_SUBST(GUILE_CPPFLAGS)
1167AC_SUBST(GUILE_LIBS)
4df42755 1168AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no)
ed3ef339 1169
62f29fda
TT
1170# ---------------------------- #
1171# Check for source highlight. #
1172# ---------------------------- #
1173
1174SRCHIGH_LIBS=
1175SRCHIGH_CFLAGS=
189b8c2e
ST
1176
1177AC_ARG_ENABLE(source-highlight,
1178 AS_HELP_STRING([--enable-source-highlight],
1179 [enable source-highlight for source listings]),
1180 [case "${enableval}" in
1181 yes) enable_source_highlight=yes ;;
1182 no) enable_source_highlight=no ;;
1183 *) AC_MSG_ERROR(bad value ${enableval} for source-highlight option) ;;
1184esac],
1185[enable_source_highlight=auto])
1186
1187if test "${enable_source_highlight}" != "no"; then
1188 AC_MSG_CHECKING([for the source-highlight library])
1189 if test "${pkg_config_prog_path}" = "missing"; then
1190 AC_MSG_RESULT([no - pkg-config not found])
1191 if test "${enable_source_highlight}" = "yes"; then
1192 AC_MSG_ERROR([pkg-config was not found in your system])
1193 fi
1194 else
d806ea2d
TT
1195 case "$LDFLAGS" in
1196 *static-libstdc*)
1197 AC_MSG_ERROR([source highlight is incompatible with -static-libstdc++; dnl
1198either use --disable-source-highlight or dnl
1199--without-static-standard-libraries])
1200 ;;
1201 esac
1202
189b8c2e 1203 if ${pkg_config_prog_path} --exists source-highlight; then
62f29fda
TT
1204 SRCHIGH_CFLAGS=`${pkg_config_prog_path} --cflags source-highlight`
1205 SRCHIGH_LIBS=`${pkg_config_prog_path} --libs source-highlight`
1206 AC_DEFINE([HAVE_SOURCE_HIGHLIGHT], 1,
1207 [Define to 1 if the source-highlight library is available])
1208 AC_MSG_RESULT([yes])
189b8c2e 1209 else
62f29fda 1210 AC_MSG_RESULT([no])
189b8c2e
ST
1211 if test "${enable_source_highlight}" = "yes"; then
1212 AC_MSG_ERROR([source-highlight was not found in your system])
1213 fi
1214 fi
1215 fi
62f29fda
TT
1216fi
1217AC_SUBST(SRCHIGH_LIBS)
1218AC_SUBST(SRCHIGH_CFLAGS)
1219
5ee754fc
MK
1220# ------------------------- #
1221# Checks for header files. #
1222# ------------------------- #
c906108c
SS
1223
1224AC_HEADER_STDC
a9322a30 1225# elf_hp.h is for HP/UX 64-bit shared library support.
8ae8e197 1226AC_CHECK_HEADERS([nlist.h machine/reg.h \
05ea2a05 1227 thread_db.h \
a9322a30 1228 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
05ea2a05 1229 sys/resource.h sys/ptrace.h ptrace.h \
8ae8e197 1230 sys/reg.h sys/debugreg.h \
2d41fa11 1231 termios.h elf_hp.h])
7cb9022a
MK
1232AC_CHECK_HEADERS(sys/user.h, [], [],
1233[#if HAVE_SYS_PARAM_H
1234# include <sys/param.h>
1235#endif
1236])
5ee754fc 1237
5007d765 1238AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncursesw/ncurses.h ncurses/ncurses.h ncurses/term.h)
c401b55a
MK
1239AC_CHECK_HEADERS(term.h, [], [],
1240[#if HAVE_CURSES_H
1241# include <curses.h>
1242#endif
1243])
5ee754fc 1244
95420d30 1245AC_CHECK_HEADERS([sys/socket.h])
05a6b8c2
EZ
1246AC_CHECK_HEADERS([ws2tcpip.h])
1247
b9362cc7
AC
1248# ------------------------- #
1249# Checks for declarations. #
1250# ------------------------- #
1251
07697489
PA
1252libiberty_INIT
1253
29d17e47 1254AC_CHECK_DECLS([snprintf])
a8111142 1255AM_LC_MESSAGES
b9362cc7 1256
5ee754fc
MK
1257# ------------------ #
1258# Checks for types. #
1259# ------------------ #
c906108c 1260
f9f87d2c
MK
1261AC_CHECK_TYPES(socklen_t, [], [],
1262[#include <sys/types.h>
05a6b8c2
EZ
1263#if HAVE_SYS_SOCKET_H
1264# include <sys/socket.h>
1265#elif HAVE_WS2TCPIP_H
1266# include <ws2tcpip.h>
1267#endif
f9f87d2c 1268])
5ee754fc
MK
1269
1270# ------------------------------------- #
1271# Checks for compiler characteristics. #
1272# ------------------------------------- #
c906108c
SS
1273
1274AC_C_CONST
bce58c09 1275AC_C_INLINE
9b913628 1276AC_C_BIGENDIAN
c906108c 1277
5ee754fc
MK
1278# ------------------------------ #
1279# Checks for library functions. #
1280# ------------------------------ #
1281
05ea2a05 1282AC_CHECK_FUNCS([getuid getgid \
8ae8e197 1283 pipe pread pread64 pwrite resize_term \
05ea2a05 1284 getpgid setsid \
c12d372d 1285 sigaction sigsetmask socketpair \
110ed339 1286 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
3332aaf2 1287 setrlimit getrlimit posix_madvise waitpid \
05ea2a05 1288 use_default_colors])
6c7a06a3 1289AM_LANGINFO_CODESET
3266f10b 1290GDB_AC_COMMON
97bf5e38 1291
eb7aa561
PA
1292# Check the return and argument types of ptrace.
1293GDB_AC_PTRACE
086ec9eb 1294
72473524
DJ
1295dnl AC_FUNC_SETPGRP does not work when cross compiling
1296dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
1297if test "$cross_compiling" = no; then
1298 AC_FUNC_SETPGRP
1299else
1300 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
1301 [AC_TRY_COMPILE([
1302#include <unistd.h>
1303], [
1304 if (setpgrp(1,1) == -1)
1305 exit (0);
1306 else
1307 exit (1);
1308], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
0ad6b8ee 1309if test "$ac_cv_func_setpgrp_void" = yes; then
72473524
DJ
1310 AC_DEFINE(SETPGRP_VOID, 1)
1311fi
1312fi
c906108c 1313
db1ff28b
JK
1314# Assume we'll default to using the included libiberty regex.
1315gdb_use_included_regex=yes
1316
1317# However, if the system regex is GNU regex, then default to *not*
1318# using the included regex.
1319AC_CACHE_CHECK(
1320 [for GNU regex],
1321 [gdb_cv_have_gnu_regex],
1322 [AC_TRY_COMPILE(
1323 [#include <gnu-versions.h>],
1324 [#define REGEX_INTERFACE_VERSION 1
1325#if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
1326# error "Version mismatch"
1327#endif],
1328 gdb_cv_have_gnu_regex=yes,
1329 gdb_cv_have_gnu_regex=no)])
0ad6b8ee 1330if test "$gdb_cv_have_gnu_regex" = yes; then
db1ff28b
JK
1331 gdb_use_included_regex=no
1332fi
1333
1334AC_ARG_WITH(included-regex,
1335 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)]),
1336 gdb_with_regex=$withval,
1337 gdb_with_regex=$gdb_use_included_regex)
1338if test "$gdb_with_regex" = yes; then
1339 AC_DEFINE(USE_INCLUDED_REGEX, 1,
1340 [Define to 1 if the regex included in libiberty should be used.])
1341fi
1342
5c45e068
MK
1343# Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
1344AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
1345[#include <sys/param.h>
1346#include <sys/proc.h>
1347])
70f9f479 1348
da7d81e3
NW
1349# See if <sys/lwp.h> defines `struct lwp`.
1350AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
1351[AC_TRY_COMPILE([#include <sys/param.h>
c49fbc6c 1352#define _KMEMUSER
da7d81e3
NW
1353#include <sys/lwp.h>], [struct lwp l;],
1354gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
0ad6b8ee 1355if test "$gdb_cv_struct_lwp" = yes; then
da7d81e3
NW
1356 AC_DEFINE(HAVE_STRUCT_LWP, 1,
1357 [Define to 1 if your system has struct lwp.])
1358fi
1359
78434e59
MK
1360# See if <machine/reg.h> degines `struct reg'.
1361AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
1362[AC_TRY_COMPILE([#include <sys/types.h>
1363#include <machine/reg.h>], [struct reg r;],
1364gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
0ad6b8ee 1365if test "$gdb_cv_struct_reg" = yes; then
78434e59
MK
1366 AC_DEFINE(HAVE_STRUCT_REG, 1,
1367 [Define to 1 if your system has struct reg in <machine/reg.h>.])
1368fi
1369
0afdd437 1370# See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
7dfa765c 1371# Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
5c45e068 1372AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
a6e69c1f
JB
1373 [#include <sys/types.h>
1374#include <machine/reg.h>])
7dfa765c 1375
0afdd437 1376# See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
f60300e7
MK
1377AC_MSG_CHECKING(for PTRACE_GETREGS)
1378AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
1379[AC_TRY_COMPILE([#include <sys/ptrace.h>],
1380 [PTRACE_GETREGS;],
1381 [gdb_cv_have_ptrace_getregs=yes],
1382 [gdb_cv_have_ptrace_getregs=no])])
1383AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
0ad6b8ee 1384if test "$gdb_cv_have_ptrace_getregs" = yes; then
4869db5e 1385 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
60ca704f 1386 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
f60300e7
MK
1387fi
1388
0afdd437 1389# See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
6ce2ac0b
MK
1390AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
1391AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
5c44784c 1392[AC_TRY_COMPILE([#include <sys/ptrace.h>],
6ce2ac0b
MK
1393 [PTRACE_GETFPXREGS;],
1394 [gdb_cv_have_ptrace_getfpxregs=yes],
1395 [gdb_cv_have_ptrace_getfpxregs=no])])
1396AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
0ad6b8ee 1397if test "$gdb_cv_have_ptrace_getfpxregs" = yes; then
60ca704f
SE
1398 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
1399 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
5c44784c
JM
1400fi
1401
0afdd437
MK
1402# See if <sys/ptrace.h> provides the PT_GETDBREGS request.
1403AC_MSG_CHECKING(for PT_GETDBREGS)
1404AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
1405[AC_TRY_COMPILE([#include <sys/types.h>
1406#include <sys/ptrace.h>],
1407 [PT_GETDBREGS;],
1408 [gdb_cv_have_pt_getdbregs=yes],
1409 [gdb_cv_have_pt_getdbregs=no])])
1410AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
0ad6b8ee 1411if test "$gdb_cv_have_pt_getdbregs" = yes; then
60ca704f
SE
1412 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
1413 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
0afdd437
MK
1414fi
1415
7e89e357
JT
1416# See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
1417AC_MSG_CHECKING(for PT_GETXMMREGS)
1418AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
1419[AC_TRY_COMPILE([#include <sys/types.h>
1420#include <sys/ptrace.h>],
1421 [PT_GETXMMREGS;],
1422 [gdb_cv_have_pt_getxmmregs=yes],
1423 [gdb_cv_have_pt_getxmmregs=no])])
1424AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
0ad6b8ee 1425if test "$gdb_cv_have_pt_getxmmregs" = yes; then
60ca704f
SE
1426 AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
1427 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
7e89e357
JT
1428fi
1429
6e9567fe
JB
1430# See if <sys/ptrace.h> supports LWP names on FreeBSD
1431# Older FreeBSD versions don't have the pl_tdname member of
1432# `struct ptrace_lwpinfo'.
1433AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_tdname], [], [],
1434 [#include <sys/ptrace.h>])
1435
e6cdd38e
JB
1436# See if <sys/ptrace.h> supports syscall fields on FreeBSD. The
1437# pl_syscall_code member of `struct ptrace_lwpinfo' was added in
1438# FreeBSD 10.3.
1439AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_syscall_code], [], [],
1440 [#include <sys/ptrace.h>])
6e9567fe 1441
bc8bcb4b
MK
1442# Check if the compiler supports the `long long' type.
1443
1444AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
1445 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1446[[extern long long foo;]],
1447[[switch (foo & 2) { case 0: return 1; }]])],
1448 gdb_cv_c_long_long=yes,
1449 gdb_cv_c_long_long=no)])
0ad6b8ee 1450if test "$gdb_cv_c_long_long" != yes; then
74a0d9f6
JK
1451 # libdecnumber requires long long.
1452 AC_MSG_ERROR([Compiler must support long long for GDB.])
c906108c
SS
1453fi
1454
bc8bcb4b 1455# Check if the compiler and runtime support printing long longs.
c906108c 1456
bc8bcb4b
MK
1457AC_CACHE_CHECK([for long long support in printf],
1458 gdb_cv_printf_has_long_long,
1459 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1460[[char buf[32];
c906108c
SS
1461 long long l = 0;
1462 l = (l << 16) + 0x0123;
1463 l = (l << 16) + 0x4567;
1464 l = (l << 16) + 0x89ab;
1465 l = (l << 16) + 0xcdef;
1466 sprintf (buf, "0x%016llx", l);
bc8bcb4b
MK
1467 return (strcmp ("0x0123456789abcdef", buf));]])],
1468 gdb_cv_printf_has_long_long=yes,
1469 gdb_cv_printf_has_long_long=no,
1470 gdb_cv_printf_has_long_long=no)])
0ad6b8ee 1471if test "$gdb_cv_printf_has_long_long" = yes; then
bc8bcb4b
MK
1472 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
1473 [Define to 1 if the "%ll" format works to print long longs.])
c906108c 1474fi
c906108c 1475
1a619819
LM
1476# Check if the compiler and runtime support printing decfloats.
1477
1478AC_CACHE_CHECK([for decfloat support in printf],
1479 gdb_cv_printf_has_decfloat,
1480 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1481[[char buf[64];
1482 _Decimal32 d32 = 1.2345df;
1483 _Decimal64 d64 = 1.2345dd;
1484 _Decimal128 d128 = 1.2345dl;
1485 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
1486 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
1487 gdb_cv_printf_has_decfloat=yes,
1488 gdb_cv_printf_has_decfloat=no,
1489 gdb_cv_printf_has_decfloat=no)])
0ad6b8ee 1490if test "$gdb_cv_printf_has_decfloat" = yes; then
1a619819
LM
1491 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
1492 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
1493fi
1494
bc8bcb4b
MK
1495# Check if the compiler supports the `long double' type. We can't use
1496# AC_C_LONG_DOUBLE because that one does additional checks on the
1497# constants defined in <float.h> that fail on some systems,
1498# e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
c906108c 1499
bc8bcb4b
MK
1500AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
1501 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
1502 gdb_cv_c_long_double=yes,
1503 gdb_cv_c_long_double=no)])
0ad6b8ee 1504if test "$gdb_cv_c_long_double" = yes; then
bc8bcb4b
MK
1505 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
1506 [Define to 1 if the compiler supports long double.])
c906108c
SS
1507fi
1508
bc8bcb4b 1509# Check if the compiler and runtime support printing long doubles.
c906108c 1510
bc8bcb4b
MK
1511AC_CACHE_CHECK([for long double support in printf],
1512 gdb_cv_printf_has_long_double,
1513 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1514[[char buf[16];
c906108c
SS
1515 long double f = 3.141592653;
1516 sprintf (buf, "%Lg", f);
bc8bcb4b
MK
1517 return (strncmp ("3.14159", buf, 7));]])],
1518 gdb_cv_printf_has_long_double=yes,
1519 gdb_cv_printf_has_long_double=no,
1520 gdb_cv_printf_has_long_double=no)])
0ad6b8ee 1521if test "$gdb_cv_printf_has_long_double" = yes; then
bc8bcb4b
MK
1522 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1523 [Define to 1 if the "%Lg" format works to print long doubles.])
c906108c 1524fi
c906108c 1525
bc8bcb4b 1526# Check if the compiler and runtime support scanning long doubles.
c906108c 1527
4869db5e 1528AC_CACHE_CHECK([for long double support in scanf],
bc8bcb4b
MK
1529 gdb_cv_scanf_has_long_double,
1530 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
1531[[#include <stdio.h>]],
1532[[char *buf = "3.141592653";
c906108c
SS
1533 long double f = 0;
1534 sscanf (buf, "%Lg", &f);
bc8bcb4b
MK
1535 return !(f > 3.14159 && f < 3.14160);]])],
1536 gdb_cv_scanf_has_long_double=yes,
1537 gdb_cv_scanf_has_long_double=no,
1538 gdb_cv_scanf_has_long_double=no)])
0ad6b8ee 1539if test "$gdb_cv_scanf_has_long_double" = yes; then
bc8bcb4b
MK
1540 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1541 [Define to 1 if the "%Lg" format works to scan long doubles.])
c906108c 1542fi
c906108c 1543
438013df
AO
1544case ${host_os} in
1545aix*)
1546 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1547 SAVE_LDFLAGS=$LDFLAGS
1548
1549 case $GCC in
1550 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1551 *) gdb_cv_bigtoc=-bbigtoc ;;
1552 esac
1553
1554 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1555 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
ec76baa5 1556 LDFLAGS="${SAVE_LDFLAGS}"
438013df
AO
1557 ])
1558 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1559 ;;
1560esac
1561
38f6b338
JK
1562AC_MSG_CHECKING(for the dynamic export flag)
1563dynamic_list=false
0407b3f1 1564if test "${gdb_native}" = yes; then
38f6b338
JK
1565 # The dynamically loaded libthread_db needs access to symbols in the gdb
1566 # executable. Older GNU ld supports --export-dynamic but --dynamic-list
1567 # may not be supported there.
1568 old_LDFLAGS="$LDFLAGS"
1569 # Older GNU ld supports --export-dynamic but --dynamic-list it does not.
1570 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
1571 LDFLAGS="$LDFLAGS $RDYNAMIC"
1572 if test "${have_libpython}" = no; then
1573 AC_TRY_LINK([], [], [dynamic_list=true])
1574 else
1575 # Workaround http://bugs.python.org/issue4434 where static
1576 # libpythonX.Y.a would get its symbols required for
1577 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
1578 # Problem does not happen for the recommended libpythonX.Y.so linkage.
a4a1c157
PA
1579
1580 # Note the workaround for Python
1581 # http://bugs.python.org/issue10112 earlier has removed
1582 # -export-dynamic from PYTHON_LIBS. That's exactly what we want
1583 # here too, as otherwise it'd make this -Wl,--dynamic-list test
1584 # always pass.
38f6b338
JK
1585 old_CFLAGS="$CFLAGS"
1586 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
8c1fb155
JK
1587 old_LIBS="$LIBS"
1588 LIBS="$LIBS $PYTHON_LIBS"
1b4f615e
PA
1589 old_CPPFLAGS="$CPPFLAGS"
1590 CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS"
38f6b338 1591 AC_RUN_IFELSE(
d0ac1c44 1592 [AC_LANG_PROGRAM(
1b4f615e 1593 [#include "Python.h"],
38f6b338
JK
1594 [int err;
1595 Py_Initialize ();
1596 err = PyRun_SimpleString ("import itertools\n");
1597 Py_Finalize ();
d0ac1c44 1598 return err == 0 ? 0 : 1;])],
38f6b338 1599 [dynamic_list=true], [], [true])
8c1fb155 1600 LIBS="$old_LIBS"
38f6b338 1601 CFLAGS="$old_CFLAGS"
1b4f615e 1602 CPPFLAGS="$old_CPPFLAGS"
f6528abd 1603 fi
38f6b338
JK
1604 LDFLAGS="$old_LDFLAGS"
1605fi
1606if $dynamic_list; then
1607 found="-Wl,--dynamic-list"
1608 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
1609else
1610 found="-rdynamic"
1611 RDYNAMIC="-rdynamic"
0407b3f1 1612fi
38f6b338
JK
1613AC_SUBST(RDYNAMIC)
1614AC_MSG_RESULT($found)
0407b3f1
AS
1615
1616dnl For certain native configurations, we need to check whether thread
1617dnl support can be built in or not.
1618dnl
1619dnl Note that we only want this if we are both native (host == target),
1620dnl and not doing a canadian cross build (build == host).
f6528abd 1621
0ad6b8ee 1622if test "${build}" = "${host}" -a "${host}" = "${target}" ; then
c906108c 1623 case ${host_os} in
d92419e5
JB
1624 aix*)
1625 AC_MSG_CHECKING(for AiX thread debugging library)
1626 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1627 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1628 [#ifndef PTHDB_VERSION_3
1629 #error
1630 #endif],
1631 gdb_cv_have_aix_thread_debug=yes,
1632 gdb_cv_have_aix_thread_debug=no)])
1633 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
0ad6b8ee 1634 if test "$gdb_cv_have_aix_thread_debug" = yes; then
d92419e5 1635 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
3483b318 1636 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
7f533142 1637 LIBS="$LIBS -lpthdebug"
d645e32e
JB
1638
1639 # Older versions of AIX do not provide the declaration for
1640 # the getthrds function (it appears that it was introduced
1641 # with AIX 6.x).
1642 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]])
d92419e5
JB
1643 fi
1644 ;;
c906108c
SS
1645 esac
1646 AC_SUBST(CONFIG_LDFLAGS)
1647fi
1648
59f80f10
DJ
1649dnl See if we have a thread_db header file that has TD_NOTALLOC and
1650dnl other error codes.
3f47be5c
EZ
1651if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1652 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1653 gdb_cv_thread_db_h_has_td_notalloc,
1654 AC_TRY_COMPILE(
1655 [#include <thread_db.h>],
1656 [int i = TD_NOTALLOC;],
1657 gdb_cv_thread_db_h_has_td_notalloc=yes,
1658 gdb_cv_thread_db_h_has_td_notalloc=no
1659 )
1660 )
59f80f10
DJ
1661 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
1662 gdb_cv_thread_db_h_has_td_version,
1663 AC_TRY_COMPILE(
1664 [#include <thread_db.h>],
1665 [int i = TD_VERSION;],
1666 gdb_cv_thread_db_h_has_td_version=yes,
1667 gdb_cv_thread_db_h_has_td_version=no
1668 )
1669 )
1670 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
1671 gdb_cv_thread_db_h_has_td_notls,
1672 AC_TRY_COMPILE(
1673 [#include <thread_db.h>],
1674 [int i = TD_NOTLS;],
1675 gdb_cv_thread_db_h_has_td_notls=yes,
1676 gdb_cv_thread_db_h_has_td_notls=no
1677 )
1678 )
3f47be5c
EZ
1679fi
1680if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1681 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1682 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1683fi
59f80f10
DJ
1684if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1685 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1686 [Define if <thread_db.h> has the TD_VERSION error code.])
1687fi
1688if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1689 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1690 [Define if <thread_db.h> has the TD_NOTLS error code.])
1691fi
3f47be5c 1692
e655c1a2
PA
1693dnl Set the host's .gdbinit filename.
1694case $host_os in
1695 go32* | *djgpp*)
1696 gdbinit=gdb.ini
1697 ;;
1698 *)
1699 gdbinit=.gdbinit
1700 ;;
1701esac
1702AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
1703
c906108c 1704dnl Handle optional features that can be enabled.
fb40c209 1705
f83d8a90
DE
1706# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
1707# except that the argument to --with-sysroot is optional.
1708# --with-sysroot (or --with-sysroot=yes) sets the default sysroot path.
1709if test "x$with_sysroot" = xyes; then
1710 with_sysroot="${exec_prefix}/${target_alias}/sys-root"
1711fi
030292b7 1712AC_ARG_WITH(sysroot,
f83d8a90
DE
1713 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
1714 [search for usr/lib et al within DIR]),
1715 [TARGET_SYSTEM_ROOT=$withval], [TARGET_SYSTEM_ROOT=])
1716AC_DEFINE_DIR(TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT,
1717 [search for usr/lib et al within DIR])
030292b7 1718AC_SUBST(TARGET_SYSTEM_ROOT)
f83d8a90 1719GDB_AC_DEFINE_RELOCATABLE(TARGET_SYSTEM_ROOT, sysroot, ${ac_define_dir})
030292b7 1720
b14b1491
TT
1721GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
1722 [automatically load a system-wide gdbinit file],
1723 [])
ed2a2229
CB
1724GDB_AC_WITH_DIR(SYSTEM_GDBINIT_DIR, system-gdbinit-dir,
1725 [automatically load system-wide gdbinit files from this directory],
1726 [])
16e7150e 1727
b835bb52 1728AM_GDB_WARNINGS
f35d5ade 1729AM_GDB_UBSAN
3bc3d82a 1730
7a292a7a
SS
1731# In the Cygwin environment, we need some additional flags.
1732AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
92a021de 1733[AC_EGREP_CPP(^lose$, [
7a292a7a
SS
1734#if defined (__CYGWIN__) || defined (__CYGWIN32__)
1735lose
1736#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1737
aff38e61
AC
1738
1739dnl Figure out which of the many generic ser-*.c files the _host_ supports.
3eb25fda 1740SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
aff38e61 1741case ${host} in
95cbc983
AC
1742 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1743 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
0ea3f30e 1744 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
c1168a2f 1745 *) SER_HARDWIRE="$SER_HARDWIRE ser-uds.o" ;;
aff38e61
AC
1746esac
1747AC_SUBST(SER_HARDWIRE)
1748
cd0fc7c3
SS
1749# libreadline needs libuser32.a in a cygwin environment
1750WIN32LIBS=
0ad6b8ee 1751if test x"$gdb_cv_os_cygwin" = xyes; then
c5394b80
JM
1752 WIN32LIBS="-luser32"
1753 case "${target}" in
1754 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1755 ;;
1756 esac
cd0fc7c3 1757fi
b4505029
MM
1758
1759# The ser-tcp.c module requires sockets.
b2ceabe8
TT
1760# Note that WIN32APILIBS is set by GDB_AC_COMMON.
1761WIN32LIBS="$WIN32LIBS $WIN32APILIBS"
7a292a7a 1762
31d99776 1763# Add ELF support to GDB, but only if BFD includes ELF support.
def63ff0
TT
1764GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_elf,
1765 [bfd_get_elf_phdr_upper_bound (NULL)], elf-bfd.h)
0ad6b8ee 1766if test "$gdb_cv_var_elf" = yes; then
d4777acb 1767 CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o dtrace-probe.o"
31d99776
DJ
1768 AC_DEFINE(HAVE_ELF, 1,
1769 [Define if ELF support should be included.])
075ff26d
JK
1770 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1771 if test "$plugins" = "yes"; then
a48b32c0 1772 AC_SEARCH_LIBS(dlopen, dl)
075ff26d 1773 fi
31d99776 1774fi
31d99776 1775
4f05add4
TT
1776# Add macho support to GDB, but only if BFD includes it.
1777GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_macho,
1778 [bfd_mach_o_lookup_command (NULL, 0, NULL)], mach-o.h)
0ad6b8ee 1779if test "$gdb_cv_var_macho" = yes; then
4f05add4
TT
1780 CONFIG_OBS="$CONFIG_OBS machoread.o"
1781fi
1782
121ce6e5
DJ
1783# Add any host-specific objects to GDB.
1784CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1785
608e2dbb 1786# If building on ELF, look for lzma support for embedded compressed debug info.
0ad6b8ee 1787if test "$gdb_cv_var_elf" = yes; then
608e2dbb
TT
1788 AC_ARG_WITH(lzma,
1789 AS_HELP_STRING([--with-lzma], [support lzma compression (auto/yes/no)]),
1790 [], [with_lzma=auto])
1791 AC_MSG_CHECKING([whether to use lzma])
1792 AC_MSG_RESULT([$with_lzma])
1793
1794 if test "${with_lzma}" != no; then
1795 AC_LIB_HAVE_LINKFLAGS([lzma], [], [#include "lzma.h"],
1796 [lzma_index_iter iter;
1797 lzma_index_iter_init (&iter, 0);
1798 lzma_mf_is_supported (LZMA_MF_HC3);])
1799 if test "$HAVE_LIBLZMA" != yes; then
1800 if test "$with_lzma" = yes; then
1801 AC_MSG_ERROR([missing liblzma for --with-lzma])
1802 fi
1803 fi
1804 fi
1805fi
1806
3fc11d3e
JM
1807LIBGUI="../libgui/src/libgui.a"
1808GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1809AC_SUBST(LIBGUI)
1810AC_SUBST(GUI_CFLAGS_X)
7a292a7a 1811
3fc11d3e
JM
1812WIN32LDAPP=
1813AC_SUBST(WIN32LIBS)
1814AC_SUBST(WIN32LDAPP)
1815
d91670b9 1816case "${host}" in
686a5eed 1817*-*-cygwin* | *-*-mingw* )
d91670b9
CV
1818 configdir="win"
1819 ;;
1820*)
1821 configdir="unix"
1822 ;;
1823esac
3fc11d3e
JM
1824
1825GDBTKLIBS=
1826if test "${enable_gdbtk}" = "yes"; then
1827
d1c3b63a
KS
1828 # Gdbtk must have an absolute path to srcdir in order to run
1829 # properly when not installed.
1830 here=`pwd`
1831 cd ${srcdir}
1832 GDBTK_SRC_DIR=`pwd`
1833 cd $here
1834
5062cc19 1835 SC_PATH_TCLCONFIG
85541719
DE
1836
1837 # If $no_tk is nonempty, then we can't do Tk, and there is no
1838 # point to doing Tcl.
1839 SC_PATH_TKCONFIG
1840
1841 if test -z "${no_tcl}" -a -z "${no_tk}"; then
5062cc19
KS
1842 SC_LOAD_TCLCONFIG
1843
1844 # Check for in-tree tcl
1845 here=`pwd`
1846 cd ${srcdir}/..
1847 topdir=`pwd`
1848 cd ${here}
1849
1850 intree="no"
1851 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
1852 intree="yes"
1853 fi
1854
1855 # Find Tcl private headers
1856 if test x"${intree}" = xno; then
1857 CY_AC_TCL_PRIVATE_HEADERS
1858 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
1859 TCL_LIBRARY="${TCL_LIB_SPEC}"
1860 TCL_DEPS=""
1861 else
1862 # If building tcl in the same src tree, private headers
1863 # are not needed, but we need to be sure to use the right
1864 # headers library
4869db5e 1865 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"
5062cc19
KS
1866 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
1867 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
1868 fi
1869 AC_SUBST(TCL_INCLUDE)
1870 AC_SUBST(TCL_LIBRARY)
1871 AC_SUBST(TCL_DEPS)
dd2504ab 1872
85541719
DE
1873 SC_LOAD_TKCONFIG
1874
1875 # Check for in-tree Tk
1876 intree="no"
1877 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
4869db5e 1878 intree="yes"
85541719
DE
1879 fi
1880
1881 # Find Tk private headers
1882 if test x"${intree}" = xno; then
1883 CY_AC_TK_PRIVATE_HEADERS
1884 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
1885 TK_LIBRARY=${TK_LIB_SPEC}
1886 TK_DEPS=""
1887 else
1888 TK_INCLUDE="-I${TK_SRC_DIR}/generic"
1889 TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
1890 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
1891 fi
1892 AC_SUBST(TK_INCLUDE)
1893 AC_SUBST(TK_LIBRARY)
1894 AC_SUBST(TK_DEPS)
1895 AC_SUBST(TK_XINCLUDES)
1896
1897 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1898
1899 # Include some libraries that Tcl and Tk want.
1900 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1901 # Yes, the ordering seems wrong here. But it isn't.
1902 # TK_LIBS is the list of libraries that need to be linked
1903 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1904 # were in LIBS then any link tests after this point would
1905 # try to include things like `$(LIBGUI)', which wouldn't work.
1906 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1907
1908 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1909 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1910 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1911 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
1912 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
1913 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
1914 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
1915
0ad6b8ee 1916 if test x"$gdb_cv_os_cygwin" = xyes; then
85541719
DE
1917 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1918 WIN32LDAPP="-Wl,--subsystem,console"
1919 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
3fc11d3e 1920 fi
ffc6a242 1921
85541719
DE
1922 AC_CONFIG_SUBDIRS(gdbtk)
1923 fi
3fc11d3e
JM
1924fi
1925
3fc11d3e
JM
1926AC_SUBST(X_CFLAGS)
1927AC_SUBST(X_LDFLAGS)
1928AC_SUBST(X_LIBS)
3fc11d3e
JM
1929AC_SUBST(GDBTKLIBS)
1930AC_SUBST(GDBTK_CFLAGS)
d1c3b63a 1931AC_SUBST(GDBTK_SRC_DIR)
8b93c638 1932
c906108c
SS
1933AC_PATH_X
1934
4869db5e
RM
1935# Unlike the sim directory, whether a simulator is linked is controlled by
1936# presence of a gdb_sim definition in the target configure.tgt entry.
7a292a7a
SS
1937# This code just checks for a few cases where we'd like to ignore those
1938# definitions, even when they're present in the '.mt' file. These cases
1939# are when --disable-sim is specified, or if the simulator directory is
6c5cfe5b 1940# not part of the source tree.
7a292a7a
SS
1941#
1942AC_ARG_ENABLE(sim,
d2596e2e 1943AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
7a292a7a
SS
1944[echo "enable_sim = $enable_sim";
1945 echo "enableval = ${enableval}";
1946 case "${enableval}" in
1947 yes) ignore_sim=false ;;
1948 no) ignore_sim=true ;;
1949 *) ignore_sim=false ;;
1950 esac],
1951[ignore_sim=false])
1952
1953if test ! -d "${srcdir}/../sim"; then
1954 ignore_sim=true
1955fi
1956
9b624dbe
UW
1957SIM=
1958SIM_OBS=
1959if test "${ignore_sim}" = "false"; then
1960 if test x"${gdb_sim}" != x ; then
1961 SIM="${gdb_sim}"
1962 SIM_OBS="remote-sim.o"
60ca704f 1963 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
976102cd
PA
1964
1965 # Some tdep code should only be compiled in when the ppc sim is
1966 # built. PR sim/13418.
1967 case $target in
1968 powerpc*-*-*)
1969 AC_DEFINE(WITH_PPC_SIM, 1, [Define if the PPC simulator is being linked in.])
1970 ;;
1971 esac
9b624dbe 1972 fi
7a292a7a 1973fi
9b624dbe
UW
1974AC_SUBST(SIM)
1975AC_SUBST(SIM_OBS)
7a292a7a 1976
c906108c 1977AC_SUBST(ENABLE_CFLAGS)
d28f9cdf 1978AC_SUBST(PROFILE_CFLAGS)
c906108c
SS
1979
1980AC_SUBST(CONFIG_OBS)
1981AC_SUBST(CONFIG_DEPS)
1982AC_SUBST(CONFIG_SRCS)
b3a90332
AC
1983AC_SUBST(CONFIG_ALL)
1984AC_SUBST(CONFIG_CLEAN)
e56ac5c3
AC
1985AC_SUBST(CONFIG_INSTALL)
1986AC_SUBST(CONFIG_UNINSTALL)
c906108c 1987
c35f4ffc
AC
1988# List of host floatformats.
1989AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
1990AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
1991AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
1992
c906108c
SS
1993# target_subdir is used by the testsuite to find the target libraries.
1994target_subdir=
1995if test "${host}" != "${target}"; then
1996 target_subdir="${target_alias}/"
1997fi
1998AC_SUBST(target_subdir)
1999
21ea5acd 2000# Import nat definitions.
2b351b19 2001nat_makefile_frag=/dev/null
771b4502 2002if test "${gdb_native}" = "yes"; then
21ea5acd
SDJ
2003 . ${srcdir}/configure.nat
2004 nativefile=$NAT_FILE
c906108c 2005fi
c906108c 2006
21ea5acd
SDJ
2007AC_SUBST(NAT_FILE)
2008AC_SUBST(NATDEPFILES)
2009AC_SUBST(NAT_CDEPS)
2010AC_SUBST(LOADLIBES)
2011AC_SUBST(MH_CFLAGS)
2012AC_SUBST(XM_CLIBS)
2013AC_SUBST(NAT_GENERATED_FILES)
2014AC_SUBST(HAVE_NATIVE_GCORE_HOST)
2b351b19 2015AC_SUBST_FILE(nat_makefile_frag)
c906108c 2016
b00a8037
DJ
2017if test x"${gdb_osabi}" != x ; then
2018 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
2019 [Define to the default OS ABI for this configuration.])
2020fi
2021
393fd4c3
YQ
2022# Check for babeltrace and babeltrace-ctf
2023AC_ARG_WITH(babeltrace,
2024 AC_HELP_STRING([--with-babeltrace], [include babeltrace support (auto/yes/no)]),
2025 [], [with_babeltrace=auto])
2026AC_MSG_CHECKING([whether to use babeltrace])
2027AC_MSG_RESULT([$with_babeltrace])
2028
2029if test "x$with_babeltrace" = "xno"; then
2030 AC_MSG_WARN([babletrace support disabled; GDB is unable to read CTF data.])
2031else
2032 # Append -Werror to CFLAGS so that configure can catch the warning
2033 # "assignment from incompatible pointer type", which is related to
2034 # the babeltrace change from 1.0.3 to 1.1.0. Babeltrace 1.1.0 works
2035 # in GDB, while babeltrace 1.0.3 is broken.
2036 # AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be
2037 # safe to save and restore CFLAGS here.
2038 saved_CFLAGS=$CFLAGS
2039 CFLAGS="$CFLAGS -Werror"
2040 AC_LIB_HAVE_LINKFLAGS([babeltrace], [babeltrace-ctf],
2041 [#include <babeltrace/babeltrace.h>
2042 #include <babeltrace/ctf/events.h>
2043 #include <babeltrace/ctf/iterator.h>],
2044 [struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
2045 struct bt_ctf_event *event = NULL;
2046 const struct bt_definition *scope;
2047
13cdc2af 2048 pos->type = BT_SEEK_BEGIN;
65c749e7 2049 bt_iter_set_pos (bt_ctf_get_iter (NULL), pos);
4869db5e 2050 scope = bt_ctf_get_top_level_scope (event,
393fd4c3
YQ
2051 BT_STREAM_EVENT_HEADER);
2052 bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
2053 ])
2054 CFLAGS=$saved_CFLAGS
2055
2056 if test "$HAVE_LIBBABELTRACE" != yes; then
2057 if test "$with_babeltrace" = yes; then
2058 AC_MSG_ERROR([babeltrace is missing or unusable])
2059 else
2060 AC_MSG_WARN([babeltrace is missing or unusable; GDB is unable to read CTF data.])
2061 fi
2062 fi
2063fi
2064
ccb1ba62
CB
2065# Check for xxhash
2066AC_ARG_WITH(xxhash,
2067 AC_HELP_STRING([--with-xxhash], [use libxxhash for hashing (faster) (auto/yes/no)]),
2068 [], [with_xxhash=auto])
2069
1776e3e5
NA
2070GCC_ENABLE([libctf], [yes], [], [Handle .ctf type-info sections])
2071if test x${enable_static} = xno; then
2072 LIBCTF="-Wl,--rpath,../libctf/.libs ../libctf/.libs/libctf.so"
2073 CTF_DEPS="../libctf/.libs/libctf.so"
2074else
2075 LIBCTF="../libctf/.libs/libctf.a"
2076 CTF_DEPS="$LIBCTF"
2077fi
2078if test "${enable_libctf}" = yes; then
2079 AC_DEFINE(ENABLE_LIBCTF, 1, [Handle .ctf type-info sections])
2080else
2081 LIBCTF=
2082 CTF_DEPS=
2083fi
2084AC_SUBST(ENABLE_LIBCTF)
2085AC_SUBST(LIBCTF)
2086AC_SUBST(CTF_DEPS)
2087
2088# If nativefile (NAT_FILE) is not set in configure.nat, we link to an
2089# empty version.
2090
ccb1ba62
CB
2091if test "x$with_xxhash" != "xno"; then
2092 AC_LIB_HAVE_LINKFLAGS([xxhash], [],
2093 [#include <xxhash.h>],
2094 [XXH32("foo", 3, 0);
2095 ])
2096 if test "$HAVE_LIBXXHASH" != yes; then
2097 if test "$with_xxhash" = yes; then
2098 AC_MSG_ERROR([xxhash is missing or unusable])
2099 fi
2100 fi
2101 if test "x$with_xxhash" = "xauto"; then
2102 with_xxhash="$HAVE_LIBXXHASH"
2103 fi
2104fi
2105
2106AC_MSG_CHECKING([whether to use xxhash])
2107AC_MSG_RESULT([$with_xxhash])
2108
a0a461e5 2109NM_H=
c906108c
SS
2110rm -f nm.h
2111if test "${nativefile}" != ""; then
0f475e27
AC
2112 case "${nativefile}" in
2113 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
2114 * ) GDB_NM_FILE="${nativefile}"
2115 esac
a0a461e5
TT
2116 AC_CONFIG_LINKS([nm.h:$GDB_NM_FILE], [echo > stamp-nmh],
2117 [GDB_NM_FILE=$GDB_NM_FILE])
60ca704f 2118 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
a0a461e5 2119 NM_H=nm.h
c906108c 2120fi
cfd53605 2121AC_SUBST(GDB_NM_FILE)
a0a461e5 2122AC_SUBST(NM_H)
5a2402b8 2123
e3487908
GKB
2124dnl Add dependency for xsltproc if building with maintainer-mode enabled.
2125AC_PATH_PROGS(XSLTPROC, xsltproc, missing)
2126if test "x$USE_MAINTAINER_MODE" = xyes; then
2127 if test "${XSLTPROC}" = missing; then
2128 AC_ERROR(unable to find xsltproc. maintainer-mode requires xsltproc.)
2129 fi
2130fi
2131AC_SUBST(XSLTPROC)
2132
c906108c
SS
2133dnl Check for exe extension set on certain hosts (e.g. Win32)
2134AC_EXEEXT
2135
234b45d4 2136dnl Detect the character set used by this host.
6c7a06a3
TT
2137dnl At the moment, we just assume it's UTF-8.
2138AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
234b45d4
KB
2139 [Define to be a string naming the default host character set.])
2140
8ecfd7bd 2141GDB_AC_SELFTEST([
74cd3f9d
SM
2142 CONFIG_OBS="$CONFIG_OBS \$(SELFTESTS_OBS)"
2143 CONFIG_SRCS="$CONFIG_SRCS \$(SELFTESTS_SRCS)"
8ecfd7bd 2144])
dcd1f979 2145
f6a88844
JM
2146GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME])
2147GDB_AC_TRANSFORM([gcore], [GCORE_TRANSFORM_NAME])
b292c783 2148AC_CONFIG_FILES([gcore], [chmod +x gcore])
c5adaa19 2149AC_CONFIG_FILES([Makefile gdb-gdb.gdb gdb-gdb.py doc/Makefile data-directory/Makefile])
c906108c 2150
1e94266c 2151AC_OUTPUT
This page took 1.611501 seconds and 4 git commands to generate.