]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/configure.ac
gdb/
[thirdparty/binutils-gdb.git] / gdb / configure.ac
CommitLineData
c906108c 1dnl Autoconf configure script for GDB, the GNU debugger.
44944448
JB
2dnl Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
3dnl 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
b6ba6518 4dnl Free Software Foundation, Inc.
c906108c
SS
5dnl
6dnl This file is part of GDB.
7dnl
8dnl This program is free software; you can redistribute it and/or modify
9dnl it under the terms of the GNU General Public License as published by
5a0e3bd0 10dnl the Free Software Foundation; either version 3 of the License, or
c906108c 11dnl (at your option) any later version.
5a0e3bd0 12dnl
c906108c
SS
13dnl This program is distributed in the hope that it will be useful,
14dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16dnl GNU General Public License for more details.
5a0e3bd0 17dnl
c906108c 18dnl You should have received a copy of the GNU General Public License
5a0e3bd0 19dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
c906108c
SS
20
21dnl Process this file with autoconf to produce a configure script.
22
bec39cab 23AC_PREREQ(2.59)dnl
c906108c
SS
24AC_INIT(main.c)
25AC_CONFIG_HEADER(config.h:config.in)
413ccac7 26AM_MAINTAINER_MODE
c906108c
SS
27
28AC_PROG_CC
c462b41b 29AC_USE_SYSTEM_EXTENSIONS
e28b3332 30gl_EARLY
da2f07f1 31ACX_LARGEFILE
c906108c
SS
32AM_PROG_CC_STDC
33
e28b3332 34AC_CONFIG_AUX_DIR(..)
c906108c
SS
35AC_CANONICAL_SYSTEM
36
a417dc56
RW
37# Dependency checking.
38ZW_CREATE_DEPDIR
39ZW_PROG_COMPILER_DEPENDENCIES([CC])
40
41# Check for the 'make' the user wants to use.
42AC_CHECK_PROGS(MAKE, make)
43MAKE_IS_GNU=
44case "`$MAKE --version 2>&1 | sed 1q`" in
45 *GNU*)
46 MAKE_IS_GNU=yes
47 ;;
48esac
49AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes)
50AC_PROG_MAKE_SET
51
ddc9cd0f
AC
52dnl List of object files and targets accumulated by configure.
53
54CONFIG_OBS=
55CONFIG_DEPS=
56CONFIG_SRCS=
57ENABLE_CFLAGS=
58
59CONFIG_ALL=
60CONFIG_CLEAN=
61CONFIG_INSTALL=
62CONFIG_UNINSTALL=
63
20e95c23
DJ
64dnl Set up for gettext.
65ZW_GNU_GETTEXT_SISTER_DIR
ddc9cd0f
AC
66
67localedir='${datadir}/locale'
68AC_SUBST(localedir)
69
20e95c23 70if test x"$USE_NLS" = xyes; then
ddc9cd0f
AC
71 CONFIG_ALL="$CONFIG_ALL all-po"
72 CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
73 CONFIG_INSTALL="$CONFIG_INSTALL install-po"
74 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
75fi
76
e28b3332
DJ
77gl_INIT
78
d5af19ba
DJ
79# For Makefile dependencies.
80GNULIB_STDINT_H=
81if test x"$STDINT_H" != x; then
82 GNULIB_STDINT_H=gnulib/$STDINT_H
83fi
84AC_SUBST(GNULIB_STDINT_H)
85
ddc9cd0f
AC
86PACKAGE=gdb
87AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
88AC_SUBST(PACKAGE)
0fbb3da7 89
5048e516
JK
90# Do we have a single-tree copy of texinfo? Even if we do, we can't
91# rely on it - libiberty is built before texinfo.
92AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
93if test "x$MAKEINFO" = "x"; then
94 AC_ERROR([makeinfo is required for compilation])
95else
96 case "$MAKEINFO" in
97 */missing\ makeinfo*)
98 AC_ERROR([makeinfo is required for compilation])
99 ;;
100 esac
101fi
102AC_SUBST(MAKEINFO)
103
104# --split-size=5000000 may be already in $MAKEINFO from parent configure.
105# Re-running configure in gdb/ would lose it so ensure it stays present.
106MAKEINFOFLAGS=${MAKEINFOFLAGS---split-size=5000000}
107AC_SUBST(MAKEINFOFLAGS)
108
109MAKEINFO_EXTRA_FLAGS=""
110AC_CACHE_CHECK([whether $MAKEINFO supports @click], gdb_cv_have_makeinfo_click,
111 [echo '@clicksequence{a @click{} b}' >conftest.texinfo
112 if eval "$MAKEINFO conftest.texinfo >&5 2>&5"; then
113 gdb_cv_have_makeinfo_click=yes
114 else
115 gdb_cv_have_makeinfo_click=no
116 fi])
117if test x"$gdb_cv_have_makeinfo_click" = xyes; then
118 MAKEINFO_EXTRA_FLAGS="$MAKEINFO_EXTRA_FLAGS -DHAVE_MAKEINFO_CLICK"
119fi
120AC_SUBST(MAKEINFO_EXTRA_FLAGS)
121
e28b3332
DJ
122# GDB does not use automake, but gnulib does. This line lets us
123# generate its Makefile.in.
124AM_INIT_AUTOMAKE(gdb, UNUSED-VERSION, [no-define])
125
b14b1491
TT
126GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir,
127 [look for global separate debug info in this path @<:@LIBDIR/debug@:>@],
128 [${libdir}/debug])
129
130# GDB's datadir relocation
131
132GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir,
133 [look for global separate data files in this path @<:@DATADIR/gdb@:>@],
134 [${datadir}/gdb])
aa28a74e 135
29b0e8a2 136AC_ARG_WITH(relocated-sources,
d2596e2e 137AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]),
29b0e8a2
JM
138[reloc_srcdir="${withval}"
139 AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir,
140 [Relocated directory for source files. ])
141])
142
5ae98d25 143AC_CONFIG_SUBDIRS(testsuite)
96baa820 144
d0c678e6
UW
145# Check whether to support alternative target configurations
146AC_ARG_ENABLE(targets,
d2596e2e 147AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
d0c678e6
UW
148[case "${enableval}" in
149 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
150 ;;
151 no) enable_targets= ;;
152 *) enable_targets=$enableval ;;
153esac])
154
c0993dbe
UW
155# Check whether to enable 64-bit support on 32-bit hosts
156AC_ARG_ENABLE(64-bit-bfd,
d2596e2e 157AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]),
c0993dbe
UW
158[case "${enableval}" in
159 yes) want64=true ;;
160 no) want64=false ;;
161 *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
162esac],[want64=false])dnl
163
121ce6e5
DJ
164# Provide defaults for some variables set by the per-host and per-target
165# configuration.
166gdb_host_obs=posix-hdep.o
167
771b4502
UW
168if test "${target}" = "${host}"; then
169 gdb_native=yes
170else
171 gdb_native=no
172fi
173
27e9bf90 174. $srcdir/configure.host
c906108c 175
d0c678e6
UW
176# Accumulate some settings from configure.tgt over all enabled targets
177
178TARGET_OBS=
179all_targets=
180
181for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
182do
183 if test "$targ_alias" = "all"; then
184 all_targets=true
185 else
186 # Canonicalize the secondary target names.
187 result=`$ac_config_sub $targ_alias 2>/dev/null`
188 if test -n "$result"; then
189 targ=$result
190 else
191 targ=$targ_alias
192 fi
193
194 . ${srcdir}/configure.tgt
195
bf307134
JB
196 AS_IF([test -z "${gdb_target_obs}"],
197 [AC_MSG_ERROR([configuration ${targ} is unsupported.])])
198
d0c678e6
UW
199 # Target-specific object files
200 for i in ${gdb_target_obs}; do
201 case " $TARGET_OBS " in
202 *" ${i} "*) ;;
203 *)
204 TARGET_OBS="$TARGET_OBS ${i}"
205 ;;
206 esac
207 done
c0993dbe
UW
208
209 # Check whether this target needs 64-bit CORE_ADDR
210 if test x${want64} = xfalse; then
211 . ${srcdir}/../bfd/config.bfd
212 fi
d0c678e6
UW
213 fi
214done
215
216if test x${all_targets} = xtrue; then
c0993dbe
UW
217
218 # We want all 64-bit targets if we either:
219 # - run on a 64-bit host or
220 # - already require 64-bit support for some other target or
221 # - the --enable-64-bit-bfd option was supplied
222 # Otherwise we only support all 32-bit targets.
223 #
224 # NOTE: This test must be in sync with the corresponding
225 # tests in BFD!
226
227 if test x${want64} = xfalse; then
228 AC_CHECK_SIZEOF(long)
229 if test "x${ac_cv_sizeof_long}" = "x8"; then
230 want64=true
231 fi
232 fi
233 if test x${want64} = xtrue; then
234 TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
235 else
236 TARGET_OBS='$(ALL_TARGET_OBS)'
237 fi
d0c678e6
UW
238fi
239
240AC_SUBST(TARGET_OBS)
241
242# For other settings, only the main target counts.
243gdb_sim=
244gdb_osabi=
245build_gdbserver=
246targ=$target; . ${srcdir}/configure.tgt
c906108c 247
27e9bf90
MK
248# Fetch the default architecture and default target vector from BFD.
249targ=$target; . $srcdir/../bfd/config.bfd
5c8cc331 250
27e9bf90
MK
251# We only want the first architecture, so strip off the others if
252# there is more than one.
253targ_archs=`echo $targ_archs | sed 's/ .*//'`
5c8cc331 254
27e9bf90
MK
255if test "x$targ_archs" != x; then
256 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
257 [Define to BFD's default architecture. ])
1ba607ad 258fi
27e9bf90
MK
259if test "x$targ_defvec" != x; then
260 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
261 [Define to BFD's default target vector. ])
1ba607ad
AC
262fi
263
627af7ea
MK
264# The CLI cannot be disabled yet, but may be in the future.
265
266# Enable CLI.
267AC_ARG_ENABLE(gdbcli,
d2596e2e 268AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]),
627af7ea
MK
269 [case $enableval in
270 yes)
271 ;;
272 no)
273 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
274 *)
275 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
276 esac],
277 [enable_gdbcli=yes])
278if test x"$enable_gdbcli" = xyes; then
279 if test -d $srcdir/cli; then
280 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
281 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
282 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
627af7ea 283 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
627af7ea
MK
284 fi
285fi
286
287# Enable MI.
288AC_ARG_ENABLE(gdbmi,
d2596e2e 289AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]),
627af7ea
MK
290 [case $enableval in
291 yes | no)
292 ;;
293 *)
294 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
295 esac],
296 [enable_gdbmi=yes])
297if test x"$enable_gdbmi" = xyes; then
298 if test -d $srcdir/mi; then
299 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
300 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
301 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
627af7ea 302 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
627af7ea
MK
303 fi
304fi
305
287c1a40
MK
306# Enable TUI.
307AC_ARG_ENABLE(tui,
d2596e2e 308AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]),
287c1a40 309 [case $enableval in
3ca64bd3 310 yes | no | auto)
287c1a40
MK
311 ;;
312 *)
313 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
3ca64bd3 314 esac],enable_tui=auto)
287c1a40 315
8ee53726
MK
316# Enable gdbtk.
317AC_ARG_ENABLE(gdbtk,
d2596e2e 318AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]),
8ee53726
MK
319 [case $enableval in
320 yes | no)
321 ;;
322 *)
323 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
324 esac],
5062cc19 325 [if test -d $srcdir/gdbtk; then
8ee53726
MK
326 enable_gdbtk=yes
327 else
328 enable_gdbtk=no
329 fi])
330# We unconditionally disable gdbtk tests on selected platforms.
331case $host_os in
332 go32* | windows*)
333 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
334 enable_gdbtk=no ;;
335esac
336
0e5d83e3
JJ
337# Libunwind support.
338AC_ARG_WITH(libunwind,
d2596e2e 339AS_HELP_STRING([--with-libunwind], [use libunwind frame unwinding support]),
0e5d83e3
JJ
340[case "${withval}" in
341 yes) enable_libunwind=yes ;;
342 no) enable_libunwind=no ;;
343 *) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
344esac],[
a9322a30 345 AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
0e5d83e3
JJ
346 if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
347 enable_libunwind=yes;
348 fi
349])
350
351if test x"$enable_libunwind" = xyes; then
a9322a30 352 AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
60ca704f 353 AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.])
0e5d83e3
JJ
354 CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
355 CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
356 CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
357fi
358
cb01cfba 359opt_curses=no
d2596e2e 360AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
cb01cfba 361
76a39ba7 362prefer_curses=no
cb01cfba 363if test "$opt_curses" = "yes"; then
76a39ba7 364 prefer_curses=yes
cb01cfba
JB
365fi
366
d28f9cdf
DJ
367# Profiling support.
368AC_ARG_ENABLE(profiling,
d2596e2e 369AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]),
d28f9cdf
DJ
370 [case $enableval in
371 yes | no)
372 ;;
373 *)
374 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
375 esac],
376 [enable_profiling=no])
377
d9feb4e7 378AC_CHECK_FUNCS(monstartup _mcleanup)
b0b1c2c0
MK
379AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
380[AC_TRY_LINK(
381[#include <stdlib.h>
382extern char _etext;
383],
384[free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
385if test $ac_cv_var__etext = yes; then
386 AC_DEFINE(HAVE__ETEXT, 1,
387 [Define to 1 if your system has the _etext variable. ])
388fi
01fe12f6
JB
389AC_CACHE_CHECK([for etext], ac_cv_var_etext,
390[AC_TRY_LINK(
391[#include <stdlib.h>
392extern char etext;
393],
394[free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)])
395if test $ac_cv_var_etext = yes; then
396 AC_DEFINE(HAVE_ETEXT, 1,
397 [Define to 1 if your system has the etext variable. ])
398fi
d28f9cdf 399if test "$enable_profiling" = yes ; then
d9feb4e7
DJ
400 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
401 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
402 fi
d28f9cdf
DJ
403 PROFILE_CFLAGS=-pg
404 OLD_CFLAGS="$CFLAGS"
405 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
406
d9feb4e7
DJ
407 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
408 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
409 ac_cv_cc_supports_pg=no)])
d28f9cdf 410
d9feb4e7
DJ
411 if test $ac_cv_cc_supports_pg = no; then
412 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
413 fi
d28f9cdf
DJ
414
415 CFLAGS="$OLD_CFLAGS"
416fi
417
c16158bc
JM
418ACX_PKGVERSION([GDB])
419ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
420AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
421AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
422
8bb2c122
MK
423# --------------------- #
424# Checks for programs. #
425# --------------------- #
426
7a292a7a 427AC_PROG_AWK
c906108c 428AC_PROG_INSTALL
8bb2c122
MK
429AC_PROG_LN_S
430AC_PROG_RANLIB
431AC_PROG_YACC
432
c906108c 433AC_CHECK_TOOL(AR, ar)
95ca63c4
CF
434AC_CHECK_TOOL(DLLTOOL, dlltool)
435AC_CHECK_TOOL(WINDRES, windres)
c906108c 436
8bb2c122 437# Needed for GNU/Hurd.
75c6e08a
MK
438AC_CHECK_TOOL(MIG, mig)
439
9a156167
MK
440# ---------------------- #
441# Checks for libraries. #
442# ---------------------- #
443
444# We might need to link with -lm; most simulators need it.
445AC_CHECK_LIB(m, main)
446
447# We need to link with -lw to get `wctype' on Solaris before Solaris
448# 2.6. Solaris 2.6 and beyond have this function in libc, and have a
449# libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
450# is known to have this problem). Therefore we avoid libw if we can.
451AC_CHECK_FUNC(wctype, [],
452 [AC_CHECK_LIB(w, wctype)])
453
c890192f
MK
454# Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
455AC_SEARCH_LIBS(gethostbyname, nsl)
456
9a156167
MK
457# Some systems (e.g. Solaris) have `socketpair' in libsocket.
458AC_SEARCH_LIBS(socketpair, socket)
459
233a11ab 460# Link in zlib if we can. This allows us to read compressed debug sections.
b040ad30 461AM_ZLIB
233a11ab 462
d542061a
UW
463# On HP/UX we may need libxpdl for dlgetmodinfo (used by solib-pa64.c).
464AC_SEARCH_LIBS(dlgetmodinfo, [dl xpdl])
465
6c7a06a3
TT
466AM_ICONV
467
478aac75
DE
468# GDB may fork/exec the iconv program to get the list of supported character
469# sets. Allow the user to specify where to find it.
470# There are several factors affecting the choice of option name:
471# - There is already --with-libiconv-prefix but we can't use it, it specifies
472# the build-time location of libiconv files.
473# - The program we need to find is iconv, which comes with glibc. The user
474# doesn't necessarily have libiconv installed. Therefore naming this
475# --with-libiconv-foo feels wrong.
476# - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is
477# defined to work on directories not files (though it really doesn't know
478# the difference).
479# - Calling this --with-iconv-prefix is perceived to cause too much confusion
480# with --with-libiconv-prefix.
481# Putting these together is why the option name is --with-iconv-bin.
482
483AC_ARG_WITH(iconv-bin,
484AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]),
485[iconv_bin="${withval}"
486 AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"],
487 [Path of directory of iconv program.])
488 GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin})
489])
490
77f120bf
JB
491# On alpha-osf, it appears that libtermcap and libcurses are not compatible.
492# There is a very specific comment in /usr/include/curses.h explaining that
493# termcap routines built into libcurses must not be used.
494#
495# The symptoms we observed so far is GDB unexpectedly changing
496# the terminal settings when tgetent is called - this is particularly
497# visible as the output is missing carriage returns, and so rapidly
498# becomes very hard to read.
499#
500# The readline configure script has already decided that libtermcap
501# was enough for its purposes, and so decided to build readline using
502# libtermcap. Since the TUI mode requires curses, building GDB with
503# TUI enabled results in both libraries to be used at the same time,
504# which is not allowed. This basically means that GDB with TUI is
505# broken on alpha-osf.
506
507case $host_os in
6bcc772d
RO
508 osf* )
509 if test x"$enable_tui" = xyes; then
77f120bf
JB
510 AC_MSG_ERROR([Building GDB with TUI mode is not supported on this host])
511 fi
6bcc772d 512 if test x"$enable_tui" = xauto; then
77f120bf
JB
513 enable_tui=no
514 fi
515 ;;
516esac
517
cb01cfba 518# For the TUI, we need enhanced curses functionality.
bd8a8e1b 519if test x"$enable_tui" != xno; then
cb01cfba
JB
520 prefer_curses=yes
521fi
522
523curses_found=no
524if test x"$prefer_curses" = xyes; then
525 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
526 # curses library because the latter might not provide all the
527 # functionality we need. However, this leads to problems on systems
528 # where the linker searches /usr/local/lib, but the compiler doesn't
529 # search /usr/local/include, if ncurses is installed in /usr/local. A
530 # default installation of ncurses on alpha*-dec-osf* will lead to such
531 # a situation.
532 AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
533
534 if test "$ac_cv_search_waddstr" != no; then
535 curses_found=yes
536 fi
537fi
538
77f120bf
JB
539# Check whether we should enable the TUI, but only do so if we really
540# can.
541if test x"$enable_tui" != xno; then
542 if test -d $srcdir/tui; then
cb01cfba 543 if test "$curses_found" != no; then
77f120bf
JB
544 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
545 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
546 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
547 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
548 CONFIG_ALL="${CONFIG_ALL} all-tui"
549 CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui"
550 CONFIG_INSTALL="${CONFIG_INSTALL} install-tui"
551 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui"
552 else
553 if test x"$enable_tui" = xyes; then
554 AC_MSG_ERROR([no enhanced curses library found; disable TUI])
555 else
556 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
557 fi
558 fi
559 fi
560fi
561
4f0be353
MK
562# Since GDB uses Readline, we need termcap functionality. In many
563# cases this will be provided by the curses library, but some systems
564# have a seperate termcap library, or no curses library at all.
287c1a40
MK
565
566case $host_os in
567 cygwin*)
568 if test -d $srcdir/libtermcap; then
569 LIBS="../libtermcap/libtermcap.a $LIBS"
570 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
571 fi ;;
228a417c 572 go32* | *djgpp*)
287c1a40
MK
573 ac_cv_search_tgetent="none required"
574 ;;
7ef34f2c
MM
575 *mingw32*)
576 ac_cv_search_tgetent="none required"
31b060a2 577 CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
7ef34f2c 578 ;;
287c1a40
MK
579esac
580
4f0be353
MK
581# These are the libraries checked by Readline.
582AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
287c1a40
MK
583
584if test "$ac_cv_search_tgetent" = no; then
585 AC_MSG_ERROR([no termcap library found])
586fi
587
6a30b0a5
AS
588AC_ARG_WITH([system-readline],
589 [AS_HELP_STRING([--with-system-readline],
590 [use installed readline library])])
591
592if test "$with_system_readline" = yes; then
593 READLINE=-lreadline
594 READLINE_DEPS=
595 READLINE_CFLAGS=
39037522 596 READLINE_TEXI_INCFLAG=
6a30b0a5
AS
597else
598 READLINE='$(READLINE_DIR)/libreadline.a'
599 READLINE_DEPS='$(READLINE)'
600 READLINE_CFLAGS='-I$(READLINE_SRC)/..'
39037522 601 READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
6a30b0a5
AS
602fi
603AC_SUBST(READLINE)
604AC_SUBST(READLINE_DEPS)
605AC_SUBST(READLINE_CFLAGS)
39037522 606AC_SUBST(READLINE_TEXI_INCFLAG)
6a30b0a5 607
5c39566f
DJ
608AC_ARG_WITH(expat,
609 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
610 [], [with_expat=auto])
611AC_MSG_CHECKING([whether to use expat])
612AC_MSG_RESULT([$with_expat])
613
614if test "${with_expat}" = no; then
615 AC_MSG_WARN([expat support disabled; some features may be unavailable.])
616 HAVE_LIBEXPAT=no
ca4ca11e 617else
5c39566f
DJ
618 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
619 [XML_Parser p = XML_ParserCreate (0);])
620 if test "$HAVE_LIBEXPAT" != yes; then
621 if test "$with_expat" = yes; then
622 AC_MSG_ERROR([expat is missing or unusable])
623 else
624 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
625 fi
626 else
627 save_LIBS=$LIBS
628 LIBS="$LIBS $LIBEXPAT"
629 AC_CHECK_FUNCS(XML_StopParser)
630 LIBS=$save_LIBS
631 fi
7fa2210b
DJ
632fi
633
d57a3c85 634dnl Utility to simplify finding libpython.
ec685c5e
DE
635dnl $1 = pythonX.Y
636dnl $2 = the shell variable to assign the result to
637dnl If libpython is found we store $version here.
638dnl $3 = additional flags to add to CPPFLAGS
639dnl $4 = additional flags to add to LIBS
640
d57a3c85
TJB
641AC_DEFUN([AC_TRY_LIBPYTHON],
642[
643 version=$1
644 define([have_libpython_var],$2)
ec685c5e
DE
645 new_CPPFLAGS=$3
646 new_LIBS=$4
d57a3c85 647 AC_MSG_CHECKING([for ${version}])
ec685c5e 648 save_CPPFLAGS=$CPPFLAGS
d57a3c85 649 save_LIBS=$LIBS
ec685c5e
DE
650 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
651 LIBS="$LIBS $new_LIBS"
652 found_usable_python=no
ac534cba 653 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]],
d57a3c85 654 [[Py_Initialize ();]]),
ec685c5e 655 [have_libpython_var=${version}
ac534cba
JB
656 found_usable_python=yes
657 PYTHON_CPPFLAGS=$new_CPPFLAGS
658 PYTHON_LIBS=$new_LIBS])
659 CPPFLAGS=$save_CPPFLAGS
660 LIBS=$save_LIBS
ec685c5e 661 AC_MSG_RESULT([${found_usable_python}])
d57a3c85
TJB
662])
663
0c4a4063
DE
664dnl There are several different values for --with-python:
665dnl
666dnl no - Don't include python support.
667dnl yes - Include python support, error if it's missing.
668dnl If we find python in $PATH, use it to fetch configure options,
669dnl otherwise assume the compiler can find it with no help from us.
420697bb 670dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
0c4a4063
DE
671dnl auto - Same as "yes", but if python is missing from the system,
672dnl fall back to "no".
673dnl /path/to/python/exec-prefix -
674dnl Use the python located in this directory.
675dnl If /path/to/python/exec-prefix/bin/python exists, use it to find
676dnl the compilation parameters. Otherwise use
677dnl -I/path/to/python/exec-prefix/include,
678dnl -L/path/to/python/exec-prefix/lib.
420697bb 679dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
0c4a4063
DE
680dnl NOTE: This case is historical. It is what was done for 7.0/7.1
681dnl but is deprecated.
682dnl /path/to/python/executable -
683dnl Run python-config.py with this version of python to fetch the
684dnl compilation parameters.
685dnl NOTE: This needn't be the real python executable.
686dnl In a cross-compilation scenario (build != host), this could be
687dnl a shell script that provides what python-config.py provides for
688dnl --ldflags, --includes, --exec-prefix.
689dnl python-executable -
690dnl Find python-executable in $PATH, and then handle the same as
691dnl /path/to/python/executable.
692dnl
693dnl If a python program is specified, it is used to run python-config.py and
694dnl is passed --ldflags, --includes, --exec-prefix.
695
d57a3c85 696AC_ARG_WITH(python,
0c4a4063 697 AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
d57a3c85
TJB
698 [], [with_python=auto])
699AC_MSG_CHECKING([whether to use python])
700AC_MSG_RESULT([$with_python])
701
702if test "${with_python}" = no; then
703 AC_MSG_WARN([python support disabled; some features may be unavailable.])
704 have_libpython=no
705else
706 case "${with_python}" in
d57a3c85 707 /*)
ec685c5e
DE
708 if test -d ${with_python}; then
709 # Assume the python binary is ${with_python}/bin/python.
ec685c5e 710 python_prog="${with_python}/bin/python"
0c4a4063 711 python_prefix=
9c4ea6c5
JB
712 # If python does not exit ${with_python}/bin, then try in
713 # ${with_python}. On Windows/MinGW, this is where the Python
714 # executable is.
715 if test ! -x "${python_prog}"; then
716 python_prog="${with_python}/python"
717 python_prefix=
718 fi
e7a30f46 719 if test ! -x "${python_prog}"; then
ec685c5e
DE
720 # Fall back to gdb 7.0/7.1 behaviour.
721 python_prog=missing
0c4a4063 722 python_prefix=${with_python}
ec685c5e 723 fi
e7a30f46 724 elif test -x "${with_python}"; then
ec685c5e
DE
725 # While we can't run python compiled for $host (unless host == build),
726 # the user could write a script that provides the needed information,
727 # so we support that.
ec685c5e 728 python_prog=${with_python}
0c4a4063 729 python_prefix=
ec685c5e
DE
730 else
731 AC_ERROR(invalid value for --with-python)
732 fi
d57a3c85 733 ;;
ec685c5e
DE
734 */*)
735 # Disallow --with-python=foo/bar.
d57a3c85
TJB
736 AC_ERROR(invalid value for --with-python)
737 ;;
ec685c5e
DE
738 *)
739 # The user has either specified auto, yes, or the name of the python
740 # program assumed to be in $PATH.
741 python_prefix=
742 case "${with_python}" in
743 yes | auto)
744 if test ${build} = ${host}; then
745 AC_PATH_PROG(python_prog_path, python, missing)
746 if test "${python_prog_path}" = missing; then
747 python_prog=missing
748 else
749 python_prog=${python_prog_path}
750 fi
751 else
752 # Not much we can do except assume the cross-compiler will find the
753 # right files.
754 python_prog=missing
755 fi
756 ;;
757 *)
758 # While we can't run python compiled for $host (unless host == build),
759 # the user could write a script that provides the needed information,
760 # so we support that.
761 python_prog="${with_python}"
762 AC_PATH_PROG(python_prog_path, ${python_prog}, missing)
763 if test "${python_prog_path}" = missing; then
764 AC_ERROR(unable to find python program ${python_prog})
765 fi
766 ;;
767 esac
d57a3c85
TJB
768 esac
769
ec685c5e 770 if test "${python_prog}" != missing; then
e7a30f46
DE
771 # We have a python program to use, but it may be too old.
772 # Don't flag an error for --with-python=auto (the default).
773 have_python_config=yes
ec685c5e
DE
774 python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
775 if test $? != 0; then
e7a30f46
DE
776 have_python_config=failed
777 if test "${with_python}" != auto; then
778 AC_ERROR(failure running python-config --includes)
779 fi
d57a3c85 780 fi
ec685c5e
DE
781 python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
782 if test $? != 0; then
e7a30f46
DE
783 have_python_config=failed
784 if test "${with_python}" != auto; then
785 AC_ERROR(failure running python-config --ldflags)
786 fi
ec685c5e 787 fi
0c4a4063
DE
788 python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
789 if test $? != 0; then
e7a30f46
DE
790 have_python_config=failed
791 if test "${with_python}" != auto; then
792 AC_ERROR(failure running python-config --exec-prefix)
793 fi
0c4a4063 794 fi
ec685c5e 795 else
ac534cba
JB
796 # We do not have a python executable we can use to determine where
797 # to find the Python headers and libs. We cannot guess the include
798 # path from the python_prefix either, because that include path
799 # depends on the Python version. So, there is nothing much we can
800 # do except assume that the compiler will be able to find those files.
801 python_includes=
802 python_libs=
0c4a4063 803 have_python_config=no
d57a3c85 804 fi
ec685c5e 805
ec685c5e
DE
806 # If we have python-config, only try the configuration it provides.
807 # Otherwise fallback on the old way of trying different versions of
808 # python in turn.
809
810 have_libpython=no
811 if test "${have_python_config}" = yes; then
c1039e3c
JB
812 # Determine the Python version by extracting "-lpython<version>"
813 # part of the python_libs. <version> is usually X.Y with X and Y
814 # being decimal numbers, but can also be XY (seen on Windows).
815 #
816 # The extraction is performed using sed with a regular expression.
817 # Initially, the regexp used was using the '?' quantifier to make
818 # the dot in the version number optional. Unfortunately, this
819 # does not work with non-GNU versions of sed because, because of
820 # what looks like a limitation (the '?' quantifier does not work
821 # with back-references). We work around this limitation by using
822 # the '*' quantifier instead. It means that, in theory, we might
823 # match unexpected version strings such as "-lpython2..7", but
824 # this seems unlikely in practice. And even if that happens,
825 # an error will be triggered later on, when checking that version
826 # number.
ec685c5e 827 python_version=`echo " ${python_libs} " \
c1039e3c 828 | sed -e 's,^.* -l\(python[[0-9]]*[[.]]*[[0-9]]*\).*$,\1,'`
0c4a4063
DE
829 case "${python_version}" in
830 python*)
ec685c5e
DE
831 AC_TRY_LIBPYTHON(${python_version}, have_libpython,
832 ${python_includes}, ${python_libs})
0c4a4063
DE
833 ;;
834 *)
ec685c5e 835 AC_MSG_ERROR([unable to determine python version from ${python_libs}])
0c4a4063
DE
836 ;;
837 esac
e7a30f46 838 elif test "${have_python_config}" != failed; then
420697bb
TT
839 if test "${have_libpython}" = no; then
840 AC_TRY_LIBPYTHON(python2.7, have_libpython,
841 ${python_includes}, "${python_libs} -lpython2.7")
842 fi
ec685c5e
DE
843 if test "${have_libpython}" = no; then
844 AC_TRY_LIBPYTHON(python2.6, have_libpython,
845 ${python_includes}, "${python_libs} -lpython2.6")
846 fi
847 if test ${have_libpython} = no; then
848 AC_TRY_LIBPYTHON(python2.5, have_libpython,
849 ${python_includes}, "${python_libs} -lpython2.5")
850 fi
851 if test ${have_libpython} = no; then
852 AC_TRY_LIBPYTHON(python2.4, have_libpython,
853 ${python_includes}, "${python_libs} -lpython2.4")
d57a3c85
TJB
854 fi
855 fi
9c4ea6c5 856 if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then
11763c18 857 AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.])
9c4ea6c5 858 elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then
ec685c5e 859 AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.])
9c4ea6c5 860 elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then
ec685c5e 861 AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.])
9c4ea6c5 862 elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then
ec685c5e
DE
863 AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.])
864 fi
865
866 if test "${have_libpython}" = no; then
d57a3c85
TJB
867 case "${with_python}" in
868 yes)
869 AC_MSG_ERROR([python is missing or unusable])
870 ;;
871 auto)
872 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.])
873 ;;
874 *)
875 AC_MSG_ERROR([no usable python found at ${with_python}])
876 ;;
877 esac
0c4a4063
DE
878 else
879 if test -n "${python_prefix}"; then
880 AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}",
881 [Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.])
882 GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix})
883 fi
d57a3c85
TJB
884 fi
885fi
886
ec685c5e 887if test "${have_libpython}" != no; then
d57a3c85
TJB
888 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.])
889 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
890 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
891 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
94f7449c 892 CONFIG_INSTALL="$CONFIG_INSTALL install-python"
d57a3c85
TJB
893 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
894
895 # Flags needed to compile Python code (taken from python-config --cflags).
896 # We cannot call python-config directly because it will output whatever was
897 # used when compiling the Python interpreter itself, including flags which
898 # would make the python-related objects be compiled differently from the
899 # rest of GDB (e.g., -O2 and -fPIC).
900 if test "${GCC}" = yes; then
901 tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv"
902 fi
903
904 if test "x${tentative_python_cflags}" != x; then
905 AC_MSG_CHECKING(compiler flags for python code)
906 for flag in ${tentative_python_cflags}; do
907 # Check that the compiler accepts it
908 saved_CFLAGS="$CFLAGS"
909 CFLAGS="$CFLAGS $flag"
910 AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",)
911 CFLAGS="$saved_CFLAGS"
912 done
913 AC_MSG_RESULT(${PYTHON_CFLAGS})
914 fi
043b6510
JB
915
916 # On IRIX, type siginfo is not defined. Instead, sys/siginfo.h provides:
917 # #if _SGIAPI
918 # #define siginfo __siginfo
919 # #endif
920 # The problem is that including Python causes some XOPEN macros to be
921 # unilaterally defined, and that in turn causes _SGIAPI to evaluate
922 # to false. So, we work around this issue by defining siginfo ourself
923 # though the command-line.
924 case "$gdb_host" in
925 irix*) if test "${GCC}" = yes; then
926 CPPFLAGS="$CPPFLAGS -Dsiginfo=__siginfo"
927 fi
928 ;;
929 esac
d57a3c85 930else
a08702d6 931 # Even if Python support is not compiled in, we need to have these files
88a1906b
DE
932 # included.
933 CONFIG_OBS="$CONFIG_OBS python.o py-value.o py-prettyprint.o py-auto-load.o"
934 CONFIG_SRCS="$CONFIG_SRCS python/python.c python/py-value.c \
935 python/py-prettyprint.c python/py-auto-load.c"
d57a3c85
TJB
936fi
937AC_SUBST(PYTHON_CFLAGS)
ac534cba
JB
938AC_SUBST(PYTHON_CPPFLAGS)
939AC_SUBST(PYTHON_LIBS)
d57a3c85 940
5ee754fc
MK
941# ------------------------- #
942# Checks for header files. #
943# ------------------------- #
c906108c 944
9608ab8b 945AC_HEADER_DIRENT
5ee754fc 946AC_HEADER_STAT
c906108c 947AC_HEADER_STDC
a9322a30
TT
948# elf_hp.h is for HP/UX 64-bit shared library support.
949# FIXME: kettenis/20030102: In most cases we include these (ctype.h, time.h)
950# unconditionally, so what's the point in checking these?
951AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
952 thread_db.h gnu/libc-version.h signal.h stddef.h \
953 stdlib.h string.h memory.h strings.h sys/fault.h \
954 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
955 sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
956 sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \
957 sys/types.h sys/wait.h wait.h termios.h termio.h \
a8111142 958 sgtty.h unistd.h elf_hp.h ctype.h time.h locale.h])
7cb9022a
MK
959AC_CHECK_HEADERS(link.h, [], [],
960[#if HAVE_SYS_TYPES_H
961# include <sys/types.h>
962#endif
963#if HAVE_NLIST_H
964# include <nlist.h>
965#endif
966])
7cb9022a
MK
967AC_CHECK_HEADERS(sys/proc.h, [], [],
968[#if HAVE_SYS_PARAM_H
969# include <sys/param.h>
970#endif
971])
7cb9022a
MK
972AC_CHECK_HEADERS(sys/user.h, [], [],
973[#if HAVE_SYS_PARAM_H
974# include <sys/param.h>
975#endif
976])
5ee754fc 977
b1d19a62 978# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
5ee754fc
MK
979# between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
980# think that we don't have <curses.h> if we're using GCC.
981case $host_os in
b1d19a62 982 solaris2.[[789]])
5ee754fc
MK
983 if test "$GCC" = yes; then
984 AC_DEFINE(_MSE_INT_H, 1,
ba1e897e
EZ
985 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
986 Solaris 2.[789] when using GCC. ])
5ee754fc
MK
987 fi ;;
988esac
a9322a30 989AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
c401b55a
MK
990AC_CHECK_HEADERS(term.h, [], [],
991[#if HAVE_CURSES_H
992# include <curses.h>
993#endif
994])
5ee754fc 995
b9362cc7
AC
996# ------------------------- #
997# Checks for declarations. #
998# ------------------------- #
999
a9322a30
TT
1000AC_CHECK_DECLS([free, malloc, realloc, strerror, strstr, getopt,
1001 snprintf, vsnprintf])
a8111142 1002AM_LC_MESSAGES
b9362cc7 1003
666ec76f
MK
1004# ----------------------- #
1005# Checks for structures. #
1006# ----------------------- #
1007
a9322a30 1008AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize])
666ec76f 1009
5ee754fc
MK
1010# ------------------ #
1011# Checks for types. #
1012# ------------------ #
c906108c 1013
5ee754fc 1014AC_TYPE_SIGNAL
f9f87d2c
MK
1015AC_CHECK_TYPES(socklen_t, [], [],
1016[#include <sys/types.h>
1017#include <sys/socket.h>
1018])
5ee754fc
MK
1019
1020# ------------------------------------- #
1021# Checks for compiler characteristics. #
1022# ------------------------------------- #
c906108c
SS
1023
1024AC_C_CONST
bce58c09 1025AC_C_INLINE
9b913628 1026AC_C_BIGENDIAN
c906108c 1027
5ee754fc
MK
1028# ------------------------------ #
1029# Checks for library functions. #
1030# ------------------------------ #
1031
c906108c 1032AC_FUNC_ALLOCA
97bf5e38 1033AC_FUNC_MMAP
46711df8 1034AC_FUNC_VFORK
a9322a30 1035AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid \
db5e03ae 1036 getgid pipe poll pread64 resize_term sbrk setpgid setpgrp setsid \
a9322a30 1037 sigaction sigprocmask sigsetmask socketpair syscall \
110ed339 1038 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
0a4f61e3 1039 setrlimit getrlimit posix_madvise waitpid])
6c7a06a3 1040AM_LANGINFO_CODESET
97bf5e38 1041
086ec9eb
MK
1042# Check the return and argument types of ptrace. No canned test for
1043# this, so roll our own.
1044gdb_ptrace_headers='
1045#if HAVE_SYS_TYPES_H
1046# include <sys/types.h>
1047#endif
1048#if HAVE_SYS_PTRACE_H
1049# include <sys/ptrace.h>
1050#endif
1051#if HAVE_UNISTD_H
1052# include <unistd.h>
1053#endif
1054'
1055# There is no point in checking if we don't have a prototype.
a3828db0 1056AC_CHECK_DECLS(ptrace, [], [
086ec9eb
MK
1057 : ${gdb_cv_func_ptrace_ret='int'}
1058 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1059], $gdb_ptrace_headers)
064ef605
DJ
1060# Check return type. Varargs (used on GNU/Linux) conflict with the
1061# empty argument list, so check for that explicitly.
086ec9eb
MK
1062AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
1063 AC_TRY_COMPILE($gdb_ptrace_headers,
064ef605
DJ
1064 [extern long ptrace (enum __ptrace_request, ...);],
1065 gdb_cv_func_ptrace_ret='long',
1066 AC_TRY_COMPILE($gdb_ptrace_headers,
1067 [extern int ptrace ();],
1068 gdb_cv_func_ptrace_ret='int',
1069 gdb_cv_func_ptrace_ret='long')))
086ec9eb
MK
1070AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
1071 [Define as the return type of ptrace.])
1072# Check argument types.
1073AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
064ef605
DJ
1074 AC_TRY_COMPILE($gdb_ptrace_headers,
1075 [extern long ptrace (enum __ptrace_request, ...);],
1076 [gdb_cv_func_ptrace_args='int,int,long,long'],[
086ec9eb
MK
1077for gdb_arg1 in 'int' 'long'; do
1078 for gdb_arg2 in 'pid_t' 'int' 'long'; do
5ed10e6e 1079 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do
086ec9eb
MK
1080 for gdb_arg4 in 'int' 'long'; do
1081 AC_TRY_COMPILE($gdb_ptrace_headers, [
1082extern $gdb_cv_func_ptrace_ret
1083 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
1084], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
1085 break 4;])
1086 for gdb_arg5 in 'int *' 'int' 'long'; do
1087 AC_TRY_COMPILE($gdb_ptrace_headers, [
1088extern $gdb_cv_func_ptrace_ret
1089 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
1090], [
1091gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
1092 break 5;])
1093 done
1094 done
1095 done
1096 done
1097done
1098# Provide a safe default value.
1099: ${gdb_cv_func_ptrace_args='int,int,long,long'}
064ef605 1100])])
086ec9eb
MK
1101ac_save_IFS=$IFS; IFS=','
1102set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
1103IFS=$ac_save_IFS
1104shift
64218d3e 1105AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
086ec9eb
MK
1106 [Define to the type of arg 3 for ptrace.])
1107if test -n "$[5]"; then
64218d3e 1108 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
086ec9eb
MK
1109 [Define to the type of arg 5 for ptrace.])
1110fi
1111
72473524
DJ
1112dnl AC_FUNC_SETPGRP does not work when cross compiling
1113dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
1114if test "$cross_compiling" = no; then
1115 AC_FUNC_SETPGRP
1116else
1117 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
1118 [AC_TRY_COMPILE([
1119#include <unistd.h>
1120], [
1121 if (setpgrp(1,1) == -1)
1122 exit (0);
1123 else
1124 exit (1);
1125], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
1126if test $ac_cv_func_setpgrp_void = yes; then
1127 AC_DEFINE(SETPGRP_VOID, 1)
1128fi
1129fi
c906108c 1130
2b2d558c
MK
1131# Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
1132# since sigsetjmp might only be defined as a macro.
1133AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
1134[AC_TRY_COMPILE([
1135#include <setjmp.h>
1136], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
1137gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
1138if test $gdb_cv_func_sigsetjmp = yes; then
1139 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
1140fi
1141
06825bd1
MK
1142# Assume we'll default to using the included libiberty regex.
1143gdb_use_included_regex=yes
1144
1145# However, if the system regex is GNU regex, then default to *not*
1146# using the included regex.
1147AC_CACHE_CHECK(
1148 [for GNU regex],
1149 [gdb_cv_have_gnu_regex],
1150 [AC_TRY_COMPILE(
1151 [#include <gnu-versions.h>],
1152 [#define REGEX_INTERFACE_VERSION 1
1153#if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
1154# error "Version mismatch"
1155#endif],
1156 gdb_cv_have_gnu_regex=yes,
1157 gdb_cv_have_gnu_regex=no)])
1158if test $gdb_cv_have_gnu_regex = yes; then
1159 gdb_use_included_regex=no
1160fi
1161
1162AC_ARG_WITH(included-regex,
d2596e2e 1163 AS_HELP_STRING([--without-included-regex], [don't use included regex; this is the default on systems with version 2 of the GNU C library (use with caution on other system)]),
06825bd1
MK
1164 gdb_with_regex=$withval,
1165 gdb_with_regex=$gdb_use_included_regex)
1166if test "$gdb_with_regex" = yes; then
1167 AC_DEFINE(USE_INCLUDED_REGEX, 1,
1168 [Define to 1 if the regex included in libiberty should be used.])
1169fi
1170
5c45e068
MK
1171# Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
1172AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
1173[#include <sys/param.h>
1174#include <sys/proc.h>
1175])
70f9f479 1176
da7d81e3
NW
1177# See if <sys/lwp.h> defines `struct lwp`.
1178AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
1179[AC_TRY_COMPILE([#include <sys/param.h>
1180#include <sys/lwp.h>], [struct lwp l;],
1181gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
1182if test $gdb_cv_struct_lwp = yes; then
1183 AC_DEFINE(HAVE_STRUCT_LWP, 1,
1184 [Define to 1 if your system has struct lwp.])
1185fi
1186
78434e59
MK
1187# See if <machine/reg.h> degines `struct reg'.
1188AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
1189[AC_TRY_COMPILE([#include <sys/types.h>
1190#include <machine/reg.h>], [struct reg r;],
1191gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
1192if test $gdb_cv_struct_reg = yes; then
1193 AC_DEFINE(HAVE_STRUCT_REG, 1,
1194 [Define to 1 if your system has struct reg in <machine/reg.h>.])
1195fi
1196
0afdd437 1197# See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
7dfa765c 1198# Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
5c45e068
MK
1199AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
1200 [#include <machine/reg.h>])
7dfa765c 1201
0afdd437 1202# See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
f60300e7
MK
1203AC_MSG_CHECKING(for PTRACE_GETREGS)
1204AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
1205[AC_TRY_COMPILE([#include <sys/ptrace.h>],
1206 [PTRACE_GETREGS;],
1207 [gdb_cv_have_ptrace_getregs=yes],
1208 [gdb_cv_have_ptrace_getregs=no])])
1209AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
1210if test $gdb_cv_have_ptrace_getregs = yes; then
60ca704f
SE
1211 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
1212 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
f60300e7
MK
1213fi
1214
0afdd437 1215# See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
6ce2ac0b
MK
1216AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
1217AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
5c44784c 1218[AC_TRY_COMPILE([#include <sys/ptrace.h>],
6ce2ac0b
MK
1219 [PTRACE_GETFPXREGS;],
1220 [gdb_cv_have_ptrace_getfpxregs=yes],
1221 [gdb_cv_have_ptrace_getfpxregs=no])])
1222AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
1223if test $gdb_cv_have_ptrace_getfpxregs = yes; then
60ca704f
SE
1224 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
1225 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
5c44784c
JM
1226fi
1227
0afdd437
MK
1228# See if <sys/ptrace.h> provides the PT_GETDBREGS request.
1229AC_MSG_CHECKING(for PT_GETDBREGS)
1230AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
1231[AC_TRY_COMPILE([#include <sys/types.h>
1232#include <sys/ptrace.h>],
1233 [PT_GETDBREGS;],
1234 [gdb_cv_have_pt_getdbregs=yes],
1235 [gdb_cv_have_pt_getdbregs=no])])
1236AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
1237if test $gdb_cv_have_pt_getdbregs = yes; then
60ca704f
SE
1238 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
1239 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
0afdd437
MK
1240fi
1241
7e89e357
JT
1242# See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
1243AC_MSG_CHECKING(for PT_GETXMMREGS)
1244AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
1245[AC_TRY_COMPILE([#include <sys/types.h>
1246#include <sys/ptrace.h>],
1247 [PT_GETXMMREGS;],
1248 [gdb_cv_have_pt_getxmmregs=yes],
1249 [gdb_cv_have_pt_getxmmregs=no])])
1250AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
1251if test $gdb_cv_have_pt_getxmmregs = yes; then
60ca704f
SE
1252 AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
1253 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
7e89e357
JT
1254fi
1255
eb368090 1256# Detect which type of /proc is in use, such as for Unixware or Solaris.
c906108c
SS
1257
1258if test "${target}" = "${host}"; then
1259 case "${host}" in
1045b512 1260 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
60ca704f
SE
1261 AC_DEFINE(NEW_PROC_API, 1,
1262 [Define if you want to use new multi-fd /proc interface
1263 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
c3f6f71d 1264 ;;
c162e8c9 1265 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
60ca704f
SE
1266 AC_DEFINE(NEW_PROC_API, 1,
1267 [Define if you want to use new multi-fd /proc interface
1268 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
c3f6f71d 1269 ;;
c960c18f
AC
1270 mips-sgi-irix5*)
1271 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
60ca704f
SE
1272 AC_DEFINE([_KMEMUSER], 1,
1273 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works
1274 around a <sys/proc.h> problem on IRIX 5.])
c960c18f 1275 ;;
c906108c 1276 esac
c906108c
SS
1277fi
1278
1279if test "$ac_cv_header_sys_procfs_h" = yes; then
1280 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
1281 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
1282 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
1283 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
83d37ec8
MK
1284 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
1285 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
23e04971
MS
1286 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
1287 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
83d37ec8
MK
1288 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
1289 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
596c9d4b
KB
1290 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
1291 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
1292 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
1293 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
c906108c 1294
23e04971 1295
d84dd0c5
MK
1296 dnl Check for broken prfpregset_t type
1297
1298 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
1299 dnl prfpregset_t type (it's a typedef for the pointer to a struct
1300 dnl instead of the struct itself). We detect this here, and work
a3007b6f 1301 dnl around it in gdb_proc_service.h.
d84dd0c5
MK
1302
1303 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
1304 AC_MSG_CHECKING(whether prfpregset_t type is broken)
1305 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
1306 [AC_TRY_RUN([#include <sys/procfs.h>
1307 int main ()
1308 {
1309 if (sizeof (prfpregset_t) == sizeof (void *))
1310 return 1;
1311 return 0;
1312 }],
1313 gdb_cv_prfpregset_t_broken=no,
1314 gdb_cv_prfpregset_t_broken=yes,
1315 gdb_cv_prfpregset_t_broken=yes)])
1316 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
1317 if test $gdb_cv_prfpregset_t_broken = yes; then
60ca704f
SE
1318 AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
1319 [Define if the prfpregset_t type is broken.])
d84dd0c5
MK
1320 fi
1321 fi
1322
c906108c
SS
1323 dnl Check for PIOCSET ioctl entry
1324
1325 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
1326 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
1327 [AC_TRY_COMPILE([#include <unistd.h>
1328#include <sys/types.h>
1329#include <sys/procfs.h>
1330], [
1331 int dummy;;
1332 dummy = ioctl(0, PIOCSET, &dummy);
1333 ],
1334 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
1335 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
1336 if test $gdb_cv_have_procfs_piocset = yes; then
60ca704f
SE
1337 AC_DEFINE(HAVE_PROCFS_PIOCSET, 1,
1338 [Define if ioctl argument PIOCSET is available.])
c906108c
SS
1339 fi
1340fi
1341
d45fe813
KB
1342dnl For native ports (host == target), check to see what kind of
1343dnl legacy link.h support is needed. (See solib-legacy.c.)
1344if test ${host} = ${target} ; then
1345 dnl Check for struct link_map with l_ members which are indicative
1346 dnl of SVR4-like shared libraries
1347
1348 AC_MSG_CHECKING(for member l_addr in struct link_map)
1349 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
1350 [AC_TRY_COMPILE([#include <link.h>],
1351 [struct link_map lm; (void) lm.l_addr;],
1352 gdb_cv_have_struct_link_map_with_l_members=yes,
1353 gdb_cv_have_struct_link_map_with_l_members=no)])
1354 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
1355 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
60ca704f
SE
1356 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS,1,
1357 [Define if <link.h> exists and defines struct link_map which has
1358 members with an ``l_'' prefix. (For Solaris, SVR4, and
1359 SVR4-like systems.)])
d45fe813
KB
1360 fi
1361
1362 dnl Check for struct link_map with lm_ members which are indicative
1363 dnl of SunOS-like shared libraries
1364
1365 AC_MSG_CHECKING(for member lm_addr in struct link_map)
1366 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
1367 [AC_TRY_COMPILE([#include <sys/types.h>
1368#include <link.h>],
1369 [struct link_map lm; (void) lm.lm_addr;],
1370 gdb_cv_have_struct_link_map_with_lm_members=yes,
1371 gdb_cv_have_struct_link_map_with_lm_members=no)])
1372 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
1373 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
60ca704f
SE
1374 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS, 1,
1375 [Define if <link.h> exists and defines struct link_map which has
1376 members with an ``lm_'' prefix. (For SunOS.)])
d45fe813
KB
1377 fi
1378
1379 dnl Check for struct so_map with som_ members which are found on
1380 dnl some *BSD systems.
1381
1382 AC_MSG_CHECKING(for member som_addr in struct so_map)
1383 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
1384 [AC_TRY_COMPILE([#include <sys/types.h>
39812ceb
C
1385#ifdef HAVE_NLIST_H
1386#include <nlist.h>
1387#endif
d45fe813
KB
1388#include <link.h>],
1389 [struct so_map lm; (void) lm.som_addr;],
1390 gdb_cv_have_struct_so_map_with_som_members=yes,
1391 gdb_cv_have_struct_so_map_with_som_members=no)])
1392 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
1393 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
60ca704f
SE
1394 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS, 1,
1395 [Define if <link.h> exists and defines a struct so_map which has
1396 members with an ``som_'' prefix. (Found on older *BSD systems.)])
d45fe813
KB
1397 fi
1398
1399 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
1400 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
1401
1402 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
1403 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
1404 [AC_TRY_COMPILE([#define _SYSCALL32
1405#include <sys/link.h>], [struct link_map32 l;],
1406 gdb_cv_have_struct_link_map32=yes,
1407 gdb_cv_have_struct_link_map32=no)])
1408 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
1409 if test $gdb_cv_have_struct_link_map32 = yes; then
60ca704f
SE
1410 AC_DEFINE(HAVE_STRUCT_LINK_MAP32, 1,
1411 [Define if <sys/link.h> has struct link_map32])
1412 AC_DEFINE(_SYSCALL32, 1,
1413 [Define if <sys/link.h> has link_map32 (solaris sparc-64 target)])
d45fe813
KB
1414 fi
1415fi
1416
bc8bcb4b
MK
1417# Check if the compiler supports the `long long' type.
1418
1419AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
1420 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1421[[extern long long foo;]],
1422[[switch (foo & 2) { case 0: return 1; }]])],
1423 gdb_cv_c_long_long=yes,
1424 gdb_cv_c_long_long=no)])
c906108c 1425if test $gdb_cv_c_long_long = yes; then
bc8bcb4b
MK
1426 AC_DEFINE(CC_HAS_LONG_LONG, 1,
1427 [Define to 1 if the compiler supports long long.])
c906108c
SS
1428fi
1429
bc8bcb4b 1430# Check if the compiler and runtime support printing long longs.
c906108c 1431
bc8bcb4b
MK
1432AC_CACHE_CHECK([for long long support in printf],
1433 gdb_cv_printf_has_long_long,
1434 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1435[[char buf[32];
c906108c
SS
1436 long long l = 0;
1437 l = (l << 16) + 0x0123;
1438 l = (l << 16) + 0x4567;
1439 l = (l << 16) + 0x89ab;
1440 l = (l << 16) + 0xcdef;
1441 sprintf (buf, "0x%016llx", l);
bc8bcb4b
MK
1442 return (strcmp ("0x0123456789abcdef", buf));]])],
1443 gdb_cv_printf_has_long_long=yes,
1444 gdb_cv_printf_has_long_long=no,
1445 gdb_cv_printf_has_long_long=no)])
c906108c 1446if test $gdb_cv_printf_has_long_long = yes; then
bc8bcb4b
MK
1447 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
1448 [Define to 1 if the "%ll" format works to print long longs.])
c906108c 1449fi
c906108c 1450
1a619819
LM
1451# Check if the compiler and runtime support printing decfloats.
1452
1453AC_CACHE_CHECK([for decfloat support in printf],
1454 gdb_cv_printf_has_decfloat,
1455 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1456[[char buf[64];
1457 _Decimal32 d32 = 1.2345df;
1458 _Decimal64 d64 = 1.2345dd;
1459 _Decimal128 d128 = 1.2345dl;
1460 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
1461 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
1462 gdb_cv_printf_has_decfloat=yes,
1463 gdb_cv_printf_has_decfloat=no,
1464 gdb_cv_printf_has_decfloat=no)])
1465if test $gdb_cv_printf_has_decfloat = yes; then
1466 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
1467 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
1468fi
1469
bc8bcb4b
MK
1470# Check if the compiler supports the `long double' type. We can't use
1471# AC_C_LONG_DOUBLE because that one does additional checks on the
1472# constants defined in <float.h> that fail on some systems,
1473# e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
c906108c 1474
bc8bcb4b
MK
1475AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
1476 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
1477 gdb_cv_c_long_double=yes,
1478 gdb_cv_c_long_double=no)])
1479if test $gdb_cv_c_long_double = yes; then
1480 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
1481 [Define to 1 if the compiler supports long double.])
c906108c
SS
1482fi
1483
bc8bcb4b 1484# Check if the compiler and runtime support printing long doubles.
c906108c 1485
bc8bcb4b
MK
1486AC_CACHE_CHECK([for long double support in printf],
1487 gdb_cv_printf_has_long_double,
1488 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1489[[char buf[16];
c906108c
SS
1490 long double f = 3.141592653;
1491 sprintf (buf, "%Lg", f);
bc8bcb4b
MK
1492 return (strncmp ("3.14159", buf, 7));]])],
1493 gdb_cv_printf_has_long_double=yes,
1494 gdb_cv_printf_has_long_double=no,
1495 gdb_cv_printf_has_long_double=no)])
c906108c 1496if test $gdb_cv_printf_has_long_double = yes; then
bc8bcb4b
MK
1497 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1498 [Define to 1 if the "%Lg" format works to print long doubles.])
c906108c 1499fi
c906108c 1500
bc8bcb4b 1501# Check if the compiler and runtime support scanning long doubles.
c906108c 1502
bc8bcb4b
MK
1503AC_CACHE_CHECK([for long double support in scanf],
1504 gdb_cv_scanf_has_long_double,
1505 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
1506[[#include <stdio.h>]],
1507[[char *buf = "3.141592653";
c906108c
SS
1508 long double f = 0;
1509 sscanf (buf, "%Lg", &f);
bc8bcb4b
MK
1510 return !(f > 3.14159 && f < 3.14160);]])],
1511 gdb_cv_scanf_has_long_double=yes,
1512 gdb_cv_scanf_has_long_double=no,
1513 gdb_cv_scanf_has_long_double=no)])
c906108c 1514if test $gdb_cv_scanf_has_long_double = yes; then
bc8bcb4b
MK
1515 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1516 [Define to 1 if the "%Lg" format works to scan long doubles.])
c906108c 1517fi
c906108c 1518
438013df
AO
1519case ${host_os} in
1520aix*)
1521 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1522 SAVE_LDFLAGS=$LDFLAGS
1523
1524 case $GCC in
1525 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1526 *) gdb_cv_bigtoc=-bbigtoc ;;
1527 esac
1528
1529 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1530 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
ec76baa5 1531 LDFLAGS="${SAVE_LDFLAGS}"
438013df
AO
1532 ])
1533 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1534 ;;
1535esac
1536
38f6b338
JK
1537AC_MSG_CHECKING(for the dynamic export flag)
1538dynamic_list=false
0407b3f1 1539if test "${gdb_native}" = yes; then
38f6b338
JK
1540 # The dynamically loaded libthread_db needs access to symbols in the gdb
1541 # executable. Older GNU ld supports --export-dynamic but --dynamic-list
1542 # may not be supported there.
1543 old_LDFLAGS="$LDFLAGS"
1544 # Older GNU ld supports --export-dynamic but --dynamic-list it does not.
1545 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
1546 LDFLAGS="$LDFLAGS $RDYNAMIC"
1547 if test "${have_libpython}" = no; then
1548 AC_TRY_LINK([], [], [dynamic_list=true])
1549 else
1550 # Workaround http://bugs.python.org/issue4434 where static
1551 # libpythonX.Y.a would get its symbols required for
1552 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
1553 # Problem does not happen for the recommended libpythonX.Y.so linkage.
1554 old_CFLAGS="$CFLAGS"
1555 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
1556 AC_RUN_IFELSE(
1557 AC_LANG_PROGRAM(
1558 [#include "]${have_libpython}[/Python.h"],
1559 [int err;
1560 Py_Initialize ();
1561 err = PyRun_SimpleString ("import itertools\n");
1562 Py_Finalize ();
1563 return err == 0 ? 0 : 1;]),
1564 [dynamic_list=true], [], [true])
1565 CFLAGS="$old_CFLAGS"
f6528abd 1566 fi
38f6b338
JK
1567 LDFLAGS="$old_LDFLAGS"
1568fi
1569if $dynamic_list; then
1570 found="-Wl,--dynamic-list"
1571 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
1572else
1573 found="-rdynamic"
1574 RDYNAMIC="-rdynamic"
0407b3f1 1575fi
38f6b338
JK
1576AC_SUBST(RDYNAMIC)
1577AC_MSG_RESULT($found)
0407b3f1
AS
1578
1579dnl For certain native configurations, we need to check whether thread
1580dnl support can be built in or not.
1581dnl
1582dnl Note that we only want this if we are both native (host == target),
1583dnl and not doing a canadian cross build (build == host).
f6528abd 1584
0407b3f1 1585if test ${build} = ${host} -a ${host} = ${target} ; then
c906108c 1586 case ${host_os} in
c906108c 1587 solaris*)
d92419e5
JB
1588 # See if thread_db library is around for Solaris thread debugging.
1589 # Note that we must explicitly test for version 1 of the library
1590 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
1591 # the same API.
c906108c
SS
1592 AC_MSG_CHECKING(for Solaris thread debugging library)
1593 if test -f /usr/lib/libthread_db.so.1 ; then
1594 AC_MSG_RESULT(yes)
60ca704f
SE
1595 AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
1596 [Define if using Solaris thread debugging.])
3483b318 1597 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
c906108c
SS
1598 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
1599 AC_CHECK_LIB(dl, dlopen)
f6528abd 1600 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
c906108c
SS
1601 # Sun randomly tweaked the prototypes in <proc_service.h>
1602 # at one point.
1603 AC_MSG_CHECKING(if <proc_service.h> is old)
1604 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
1605 AC_TRY_COMPILE([
1606 #include <proc_service.h>
1607 ps_err_e ps_pdwrite
1608 (struct ps_prochandle*, psaddr_t, const void*, size_t);
1609 ],, gdb_cv_proc_service_is_old=no,
1610 gdb_cv_proc_service_is_old=yes)
1611 ])
1612 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
1613 if test $gdb_cv_proc_service_is_old = yes; then
60ca704f
SE
1614 AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
1615 [Define if <proc_service.h> on solaris uses int instead of
1616 size_t, and assorted other type changes.])
c906108c
SS
1617 fi
1618 else
1619 AC_MSG_RESULT(no)
1620 fi
1621 ;;
d92419e5
JB
1622 aix*)
1623 AC_MSG_CHECKING(for AiX thread debugging library)
1624 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1625 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1626 [#ifndef PTHDB_VERSION_3
1627 #error
1628 #endif],
1629 gdb_cv_have_aix_thread_debug=yes,
1630 gdb_cv_have_aix_thread_debug=no)])
1631 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1632 if test $gdb_cv_have_aix_thread_debug = yes; then
1633 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
3483b318 1634 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
d92419e5 1635 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
d645e32e
JB
1636
1637 # Older versions of AIX do not provide the declaration for
1638 # the getthrds function (it appears that it was introduced
1639 # with AIX 6.x).
1640 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]])
d92419e5
JB
1641 fi
1642 ;;
c906108c
SS
1643 esac
1644 AC_SUBST(CONFIG_LDFLAGS)
1645fi
1646
59f80f10
DJ
1647dnl See if we have a thread_db header file that has TD_NOTALLOC and
1648dnl other error codes.
3f47be5c
EZ
1649if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1650 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1651 gdb_cv_thread_db_h_has_td_notalloc,
1652 AC_TRY_COMPILE(
1653 [#include <thread_db.h>],
1654 [int i = TD_NOTALLOC;],
1655 gdb_cv_thread_db_h_has_td_notalloc=yes,
1656 gdb_cv_thread_db_h_has_td_notalloc=no
1657 )
1658 )
59f80f10
DJ
1659 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
1660 gdb_cv_thread_db_h_has_td_version,
1661 AC_TRY_COMPILE(
1662 [#include <thread_db.h>],
1663 [int i = TD_VERSION;],
1664 gdb_cv_thread_db_h_has_td_version=yes,
1665 gdb_cv_thread_db_h_has_td_version=no
1666 )
1667 )
1668 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
1669 gdb_cv_thread_db_h_has_td_notls,
1670 AC_TRY_COMPILE(
1671 [#include <thread_db.h>],
1672 [int i = TD_NOTLS;],
1673 gdb_cv_thread_db_h_has_td_notls=yes,
1674 gdb_cv_thread_db_h_has_td_notls=no
1675 )
1676 )
3f47be5c
EZ
1677fi
1678if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1679 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1680 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1681fi
59f80f10
DJ
1682if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1683 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1684 [Define if <thread_db.h> has the TD_VERSION error code.])
1685fi
1686if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1687 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1688 [Define if <thread_db.h> has the TD_NOTLS error code.])
1689fi
3f47be5c 1690
b757528f
JJ
1691dnl See if we have a sys/syscall header file that has __NR_tkill.
1692if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1693 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1694 gdb_cv_sys_syscall_h_has_tkill,
1695 AC_TRY_COMPILE(
1696 [#include <sys/syscall.h>],
1697 [int i = __NR_tkill;],
1698 gdb_cv_sys_syscall_h_has_tkill=yes,
1699 gdb_cv_sys_syscall_h_has_tkill=no
1700 )
1701 )
1702fi
1703dnl See if we can issue tkill syscall.
1704if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
60ca704f 1705 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
b757528f
JJ
1706fi
1707
10568435
JK
1708dnl Check if we can disable the virtual address space randomization.
1709dnl The functionality of setarch -R.
1710AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>])
1711define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [
1712# if !HAVE_DECL_ADDR_NO_RANDOMIZE
1713# define ADDR_NO_RANDOMIZE 0x0040000
1714# endif
1715 /* Test the flag could be set and stays set. */
1716 personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE);
1717 if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE))
1718 return 1])])
1719AC_RUN_IFELSE([PERSONALITY_TEST],
1720 [have_personality=true],
1721 [have_personality=false],
1722 [AC_LINK_IFELSE([PERSONALITY_TEST],
1723 [have_personality=true],
1724 [have_personality=false])])
1725if $have_personality
1726then
1727 AC_DEFINE([HAVE_PERSONALITY], 1,
1728 [Define if you support the personality syscall.])
1729fi
1730
c906108c 1731dnl Handle optional features that can be enabled.
fb40c209 1732
b14b1491 1733target_sysroot_reloc=0
030292b7 1734AC_ARG_WITH(sysroot,
d2596e2e 1735AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [search for usr/lib et al within DIR]),
030292b7
DJ
1736[
1737 case ${with_sysroot} in
715d1656 1738 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
030292b7
DJ
1739 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
1740 esac
1741
1742 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
1743
07abfebf
RS
1744 if test "x$prefix" = xNONE; then
1745 test_prefix=/usr/local
1746 else
1747 test_prefix=$prefix
1748 fi
aa28a74e 1749 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
07abfebf 1750 test_exec_prefix=$test_prefix
030292b7 1751 else
07abfebf 1752 test_exec_prefix=$exec_prefix
030292b7
DJ
1753 fi
1754 case ${TARGET_SYSTEM_ROOT} in
715d1656 1755 "${test_prefix}"|"${test_prefix}/"*|\
07abfebf
RS
1756 "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
1757 '${prefix}'|'${prefix}/'*|\
715d1656 1758 '${exec_prefix}'|'${exec_prefix}/'*)
b14b1491 1759 target_sysroot_reloc=1
030292b7
DJ
1760 ;;
1761 esac
1762], [
1763 TARGET_SYSTEM_ROOT=
1764 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
1765])
b14b1491 1766TARGET_SYSTEM_ROOT_DEFINE="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE=$target_sysroot_reloc"
030292b7
DJ
1767AC_SUBST(TARGET_SYSTEM_ROOT)
1768AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
1769
b14b1491
TT
1770GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
1771 [automatically load a system-wide gdbinit file],
1772 [])
16e7150e 1773
094a342e 1774AC_ARG_ENABLE(werror,
d2596e2e 1775 AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
094a342e
MK
1776 [case "${enableval}" in
1777 yes | y) ERROR_ON_WARNING="yes" ;;
1778 no | n) ERROR_ON_WARNING="no" ;;
1779 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
1780 esac])
1781
1782# Enable -Werror by default when using gcc
1783if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
1784 ERROR_ON_WARNING=yes
1785fi
1786
1787WERROR_CFLAGS=""
1788if test "${ERROR_ON_WARNING}" = yes ; then
1789 WERROR_CFLAGS="-Werror"
1790fi
1791
aa79a185
DJ
1792# The entries after -Wno-pointer-sign are disabled warnings which may
1793# be enabled in the future, which can not currently be used to build
1794# GDB.
1795# NOTE: If you change this list, remember to update
3b851bce 1796# gdb/doc/gdbint.texinfo.
aa79a185
DJ
1797build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
1798-Wformat-nonliteral -Wno-pointer-sign \
1cb5e2a4
JB
1799-Wno-unused -Wunused-value -Wunused-function \
1800-Wno-switch -Wno-char-subscripts"
a3b362c4 1801
3526781e
DJ
1802# Enable -Wno-format by default when using gcc on mingw since many
1803# GCC versions complain about %I64.
1804case "${host}" in
1805 *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
1806esac
1807
c906108c 1808AC_ARG_ENABLE(build-warnings,
d2596e2e 1809AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]),
1decb323 1810[case "${enableval}" in
c906108c
SS
1811 yes) ;;
1812 no) build_warnings="-w";;
1813 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1814 build_warnings="${build_warnings} ${t}";;
1815 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1816 build_warnings="${t} ${build_warnings}";;
1817 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
d4f3574e
SS
1818esac
1819if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
746a987d 1820 echo "Setting compiler warning flags = $build_warnings" 6>&1
1decb323 1821fi])dnl
3b851bce 1822AC_ARG_ENABLE(gdb-build-warnings,
d2596e2e 1823AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]),
3b851bce
AC
1824[case "${enableval}" in
1825 yes) ;;
1826 no) build_warnings="-w";;
1827 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1828 build_warnings="${build_warnings} ${t}";;
1829 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1830 build_warnings="${t} ${build_warnings}";;
1831 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1832esac
1833if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1834 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1835fi])dnl
104c1213 1836WARN_CFLAGS=""
c906108c
SS
1837if test "x${build_warnings}" != x -a "x$GCC" = xyes
1838then
746a987d
AC
1839 AC_MSG_CHECKING(compiler warning flags)
1840 # Separate out the -Werror flag as some files just cannot be
1841 # compiled with it enabled.
1842 for w in ${build_warnings}; do
1843 case $w in
1844 -Werr*) WERROR_CFLAGS=-Werror ;;
1845 *) # Check that GCC accepts it
4536bbc6
AC
1846 saved_CFLAGS="$CFLAGS"
1847 CFLAGS="$CFLAGS $w"
1848 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1849 CFLAGS="$saved_CFLAGS"
746a987d
AC
1850 esac
1851 done
aa79a185 1852 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
1decb323 1853fi
c906108c 1854AC_SUBST(WARN_CFLAGS)
104c1213 1855AC_SUBST(WERROR_CFLAGS)
c906108c 1856
7a292a7a
SS
1857# In the Cygwin environment, we need some additional flags.
1858AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1859[AC_EGREP_CPP(lose, [
1860#if defined (__CYGWIN__) || defined (__CYGWIN32__)
1861lose
1862#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1863
aff38e61
AC
1864
1865dnl Figure out which of the many generic ser-*.c files the _host_ supports.
3eb25fda 1866SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
aff38e61 1867case ${host} in
95cbc983
AC
1868 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1869 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
0ea3f30e 1870 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
aff38e61
AC
1871esac
1872AC_SUBST(SER_HARDWIRE)
1873
cd0fc7c3
SS
1874# libreadline needs libuser32.a in a cygwin environment
1875WIN32LIBS=
1876if test x$gdb_cv_os_cygwin = xyes; then
c5394b80
JM
1877 WIN32LIBS="-luser32"
1878 case "${target}" in
1879 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1880 ;;
1881 esac
cd0fc7c3 1882fi
b4505029
MM
1883
1884# The ser-tcp.c module requires sockets.
1885case ${host} in
1886 *mingw32*)
1887 AC_DEFINE(USE_WIN32API, 1,
1888 [Define if we should use the Windows API, instead of the
1889 POSIX API. On Windows, we use the Windows API when
1890 building for MinGW, but the POSIX API when building
1891 for Cygwin.])
1892 WIN32LIBS="$WIN32LIBS -lws2_32"
1893 ;;
1894esac
cd0fc7c3 1895AC_SUBST(WIN32LIBS)
7a292a7a 1896
31d99776
DJ
1897# Add ELF support to GDB, but only if BFD includes ELF support.
1898OLD_CFLAGS=$CFLAGS
1899OLD_LDFLAGS=$LDFLAGS
1900OLD_LIBS=$LIBS
cab58a69 1901CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
31d99776 1902LDFLAGS="$LDFLAGS -L../bfd -L../libiberty"
7b3200f9 1903intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
075ff26d
JK
1904# -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1905if test "$plugins" = "yes"; then
1906 LIBS="-ldl $LIBS"
1907fi
0f72fb1c 1908LIBS="-lbfd -liberty $intl $LIBS"
31d99776
DJ
1909AC_CACHE_CHECK([for ELF support in BFD], gdb_cv_var_elf,
1910[AC_TRY_LINK(
1911[#include <stdlib.h>
1912#include "bfd.h"
1913#include "elf-bfd.h"
1914],
1915[bfd *abfd = NULL; bfd_get_elf_phdr_upper_bound (abfd); ],
1916gdb_cv_var_elf=yes, gdb_cv_var_elf=no)])
1917if test $gdb_cv_var_elf = yes; then
1918 CONFIG_OBS="$CONFIG_OBS elfread.o"
1919 AC_DEFINE(HAVE_ELF, 1,
1920 [Define if ELF support should be included.])
075ff26d
JK
1921 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1922 if test "$plugins" = "yes"; then
1923 OLD_LIBS="-ldl $OLD_LIBS"
1924 fi
31d99776
DJ
1925fi
1926CFLAGS=$OLD_CFLAGS
1927LDFLAGS=$OLD_LDFLAGS
1928LIBS=$OLD_LIBS
1929
121ce6e5
DJ
1930# Add any host-specific objects to GDB.
1931CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1932
3fc11d3e
JM
1933LIBGUI="../libgui/src/libgui.a"
1934GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1935AC_SUBST(LIBGUI)
1936AC_SUBST(GUI_CFLAGS_X)
7a292a7a 1937
3fc11d3e
JM
1938WIN32LDAPP=
1939AC_SUBST(WIN32LIBS)
1940AC_SUBST(WIN32LDAPP)
1941
d91670b9 1942case "${host}" in
686a5eed 1943*-*-cygwin* | *-*-mingw* )
d91670b9
CV
1944 configdir="win"
1945 ;;
1946*)
1947 configdir="unix"
1948 ;;
1949esac
3fc11d3e
JM
1950
1951GDBTKLIBS=
1952if test "${enable_gdbtk}" = "yes"; then
1953
d1c3b63a
KS
1954 # Gdbtk must have an absolute path to srcdir in order to run
1955 # properly when not installed.
1956 here=`pwd`
1957 cd ${srcdir}
1958 GDBTK_SRC_DIR=`pwd`
1959 cd $here
1960
5062cc19 1961 SC_PATH_TCLCONFIG
85541719
DE
1962
1963 # If $no_tk is nonempty, then we can't do Tk, and there is no
1964 # point to doing Tcl.
1965 SC_PATH_TKCONFIG
1966
1967 if test -z "${no_tcl}" -a -z "${no_tk}"; then
5062cc19
KS
1968 SC_LOAD_TCLCONFIG
1969
1970 # Check for in-tree tcl
1971 here=`pwd`
1972 cd ${srcdir}/..
1973 topdir=`pwd`
1974 cd ${here}
1975
1976 intree="no"
1977 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
1978 intree="yes"
1979 fi
1980
1981 # Find Tcl private headers
1982 if test x"${intree}" = xno; then
1983 CY_AC_TCL_PRIVATE_HEADERS
1984 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
1985 TCL_LIBRARY="${TCL_LIB_SPEC}"
1986 TCL_DEPS=""
1987 else
1988 # If building tcl in the same src tree, private headers
1989 # are not needed, but we need to be sure to use the right
1990 # headers library
1991 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"
1992 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
1993 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
1994 fi
1995 AC_SUBST(TCL_INCLUDE)
1996 AC_SUBST(TCL_LIBRARY)
1997 AC_SUBST(TCL_DEPS)
dd2504ab 1998
85541719
DE
1999 SC_LOAD_TKCONFIG
2000
2001 # Check for in-tree Tk
2002 intree="no"
2003 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
2004 intree="yes"
2005 fi
2006
2007 # Find Tk private headers
2008 if test x"${intree}" = xno; then
2009 CY_AC_TK_PRIVATE_HEADERS
2010 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
2011 TK_LIBRARY=${TK_LIB_SPEC}
2012 TK_DEPS=""
2013 else
2014 TK_INCLUDE="-I${TK_SRC_DIR}/generic"
2015 TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
2016 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
2017 fi
2018 AC_SUBST(TK_INCLUDE)
2019 AC_SUBST(TK_LIBRARY)
2020 AC_SUBST(TK_DEPS)
2021 AC_SUBST(TK_XINCLUDES)
2022
2023 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
2024
2025 # Include some libraries that Tcl and Tk want.
2026 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
2027 # Yes, the ordering seems wrong here. But it isn't.
2028 # TK_LIBS is the list of libraries that need to be linked
2029 # after Tcl/Tk. Note that this isn't put into LIBS. If it
2030 # were in LIBS then any link tests after this point would
2031 # try to include things like `$(LIBGUI)', which wouldn't work.
2032 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
2033
2034 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
2035 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
2036 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
2037 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
2038 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
2039 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
2040 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
2041
2042 if test x$gdb_cv_os_cygwin = xyes; then
2043 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
2044 WIN32LDAPP="-Wl,--subsystem,console"
2045 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
3fc11d3e 2046 fi
ffc6a242 2047
85541719
DE
2048 AC_CONFIG_SUBDIRS(gdbtk)
2049 fi
3fc11d3e
JM
2050fi
2051
3fc11d3e
JM
2052AC_SUBST(X_CFLAGS)
2053AC_SUBST(X_LDFLAGS)
2054AC_SUBST(X_LIBS)
3fc11d3e
JM
2055AC_SUBST(GDBTKLIBS)
2056AC_SUBST(GDBTK_CFLAGS)
d1c3b63a 2057AC_SUBST(GDBTK_SRC_DIR)
8b93c638 2058
c906108c
SS
2059AC_PATH_X
2060
7a292a7a 2061# Unlike the sim directory, whether a simulator is linked is controlled by
9b624dbe 2062# presence of a gdb_sim definition in the target configure.tgt entry.
7a292a7a
SS
2063# This code just checks for a few cases where we'd like to ignore those
2064# definitions, even when they're present in the '.mt' file. These cases
2065# are when --disable-sim is specified, or if the simulator directory is
6c5cfe5b 2066# not part of the source tree.
7a292a7a
SS
2067#
2068AC_ARG_ENABLE(sim,
d2596e2e 2069AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
7a292a7a
SS
2070[echo "enable_sim = $enable_sim";
2071 echo "enableval = ${enableval}";
2072 case "${enableval}" in
2073 yes) ignore_sim=false ;;
2074 no) ignore_sim=true ;;
2075 *) ignore_sim=false ;;
2076 esac],
2077[ignore_sim=false])
2078
2079if test ! -d "${srcdir}/../sim"; then
2080 ignore_sim=true
2081fi
2082
9b624dbe
UW
2083SIM=
2084SIM_OBS=
2085if test "${ignore_sim}" = "false"; then
2086 if test x"${gdb_sim}" != x ; then
2087 SIM="${gdb_sim}"
2088 SIM_OBS="remote-sim.o"
60ca704f 2089 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
9b624dbe 2090 fi
7a292a7a 2091fi
9b624dbe
UW
2092AC_SUBST(SIM)
2093AC_SUBST(SIM_OBS)
7a292a7a 2094
c906108c 2095AC_SUBST(ENABLE_CFLAGS)
d28f9cdf 2096AC_SUBST(PROFILE_CFLAGS)
c906108c
SS
2097
2098AC_SUBST(CONFIG_OBS)
2099AC_SUBST(CONFIG_DEPS)
2100AC_SUBST(CONFIG_SRCS)
b3a90332
AC
2101AC_SUBST(CONFIG_ALL)
2102AC_SUBST(CONFIG_CLEAN)
e56ac5c3
AC
2103AC_SUBST(CONFIG_INSTALL)
2104AC_SUBST(CONFIG_UNINSTALL)
c906108c 2105
c35f4ffc
AC
2106# List of host floatformats.
2107AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
2108AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
2109AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
2110
c906108c
SS
2111# target_subdir is used by the testsuite to find the target libraries.
2112target_subdir=
2113if test "${host}" != "${target}"; then
2114 target_subdir="${target_alias}/"
2115fi
2116AC_SUBST(target_subdir)
2117
2118frags=
771b4502 2119if test "${gdb_native}" = "yes"; then
0dad8a66
MK
2120 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
2121 if test ! -f ${host_makefile_frag}; then
2122 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
2123 fi
2124 frags="$frags $host_makefile_frag"
2125else
2126 host_makefile_frag=/dev/null
c906108c 2127fi
c906108c 2128
c906108c 2129AC_SUBST_FILE(host_makefile_frag)
c906108c
SS
2130AC_SUBST(frags)
2131
2132changequote(,)dnl
771b4502 2133if test "${gdb_native}" = "yes"; then
a85f51e7
DJ
2134# We pick this up from the host configuration file (.mh) because we
2135# do not have a native configuration Makefile fragment.
c906108c
SS
2136nativefile=`sed -n '
2137s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
2138' ${host_makefile_frag}`
c906108c
SS
2139fi
2140changequote([,])
2141
b00a8037
DJ
2142if test x"${gdb_osabi}" != x ; then
2143 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
2144 [Define to the default OS ABI for this configuration.])
2145fi
2146
8dcde887
MK
2147# Enable multi-ice-gdb-server.
2148AC_ARG_ENABLE(multi-ice,
d2596e2e 2149AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]),
8dcde887
MK
2150 [case $enableval in
2151 yes | no)
2152 ;;
2153 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
2154 esac])
2155if test "x$enable_multi_ice" = xyes; then
3ace7edb 2156 AC_CONFIG_SUBDIRS(multi-ice)
96baa820
JM
2157fi
2158
496c0e1b
JB
2159AC_ARG_ENABLE(gdbserver,
2160AS_HELP_STRING([--enable-gdbserver],
2161 [automatically build gdbserver (yes/no/auto, default is auto)]),
2162[case "${enableval}" in
2163 yes| no|auto) ;;
2164 *) AC_MSG_ERROR(bad value ${enableval} for --enable-gdbserver option) ;;
2165esac],[enable_gdbserver=auto])
2166
2167# We only build gdbserver automatically in a native configuration, and
2168# only if the user did not explicitly disable its build.
2169if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then
8dcde887
MK
2170 AC_MSG_CHECKING(whether gdbserver is supported on this host)
2171 if test "x$build_gdbserver" = xyes; then
8dcde887 2172 AC_MSG_RESULT(yes)
3ace7edb 2173 AC_CONFIG_SUBDIRS(gdbserver)
496c0e1b 2174 gdbserver_build_enabled=yes
8dcde887
MK
2175 else
2176 AC_MSG_RESULT(no)
2177 fi
a85f51e7
DJ
2178fi
2179
496c0e1b
JB
2180# If the user explicitly request the gdbserver to be built, verify that
2181# we were in fact able to enable it.
2182if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then
2183 AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration)
2184fi
2185
db985757 2186# If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
2c0fc042 2187# to an empty version.
c906108c
SS
2188
2189files=
2190links=
5a2402b8 2191
c906108c
SS
2192rm -f nm.h
2193if test "${nativefile}" != ""; then
0f475e27
AC
2194 case "${nativefile}" in
2195 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
2196 * ) GDB_NM_FILE="${nativefile}"
2197 esac
5a2402b8
AC
2198 files="${files} ${GDB_NM_FILE}"
2199 links="${links} nm.h"
60ca704f 2200 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
c906108c 2201fi
cfd53605 2202AC_SUBST(GDB_NM_FILE)
5a2402b8 2203
c906108c
SS
2204AC_LINK_FILES($files, $links)
2205
2206dnl Check for exe extension set on certain hosts (e.g. Win32)
2207AC_EXEEXT
2208
234b45d4 2209dnl Detect the character set used by this host.
6c7a06a3
TT
2210dnl At the moment, we just assume it's UTF-8.
2211AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
234b45d4
KB
2212 [Define to be a string naming the default host character set.])
2213
5ae98d25 2214AC_OUTPUT(Makefile .gdbinit:gdbinit.in doc/Makefile gnulib/Makefile data-directory/Makefile,
c906108c 2215[
c906108c
SS
2216case x$CONFIG_HEADERS in
2217xconfig.h:config.in)
2218echo > stamp-h ;;
2219esac
c906108c
SS
2220])
2221
2222exit 0