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