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