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