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