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