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