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