OSDN Git Service

2011-03-08 Yao Qi <yao@codesourcery.com>
[pf3gnuchains/sourceware.git] / gdb / configure.ac
1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
3 dnl 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
4 dnl Free Software Foundation, Inc.
5 dnl
6 dnl This file is part of GDB.
7 dnl 
8 dnl This program is free software; you can redistribute it and/or modify
9 dnl it under the terms of the GNU General Public License as published by
10 dnl the Free Software Foundation; either version 3 of the License, or
11 dnl (at your option) any later version.
12 dnl
13 dnl This program is distributed in the hope that it will be useful,
14 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 dnl GNU General Public License for more details.
17 dnl
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
21 dnl Process this file with autoconf to produce a configure script.
22
23 AC_PREREQ(2.59)dnl
24 AC_INIT(main.c)
25 AC_CONFIG_HEADER(config.h:config.in)
26 AM_MAINTAINER_MODE
27
28 AC_PROG_CC
29 AC_USE_SYSTEM_EXTENSIONS
30 gl_EARLY
31 ACX_LARGEFILE
32 AM_PROG_CC_STDC
33
34 AC_CONFIG_AUX_DIR(..)
35 AC_CANONICAL_SYSTEM
36
37 # Dependency checking.
38 ZW_CREATE_DEPDIR
39 ZW_PROG_COMPILER_DEPENDENCIES([CC])
40
41 # Check for the 'make' the user wants to use.
42 AC_CHECK_PROGS(MAKE, make)
43 MAKE_IS_GNU=
44 case "`$MAKE --version 2>&1 | sed 1q`" in
45   *GNU*)
46     MAKE_IS_GNU=yes
47     ;;
48 esac
49 AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes)
50 AC_PROG_MAKE_SET
51
52 dnl List of object files and targets accumulated by configure.
53
54 CONFIG_OBS=
55 CONFIG_DEPS=
56 CONFIG_SRCS=
57 ENABLE_CFLAGS=
58
59 CONFIG_ALL=
60 CONFIG_CLEAN=
61 CONFIG_INSTALL=
62 CONFIG_UNINSTALL=
63
64 dnl Set up for gettext.
65 ZW_GNU_GETTEXT_SISTER_DIR
66
67 localedir='${datadir}/locale'
68 AC_SUBST(localedir)
69
70 if 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"
75 fi
76
77 gl_INIT
78
79 # For Makefile dependencies.
80 GNULIB_STDINT_H=
81 if test x"$STDINT_H" != x; then
82   GNULIB_STDINT_H=gnulib/$STDINT_H
83 fi
84 AC_SUBST(GNULIB_STDINT_H)
85
86 PACKAGE=gdb
87 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
88 AC_SUBST(PACKAGE)
89
90 # GDB does not use automake, but gnulib does.  This line lets us
91 # generate its Makefile.in.
92 AM_INIT_AUTOMAKE(gdb, UNUSED-VERSION, [no-define])
93
94 GDB_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
100 GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir,
101     [look for global separate data files in this path @<:@DATADIR/gdb@:>@],
102     [${datadir}/gdb])
103
104 AC_ARG_WITH(relocated-sources,
105 AS_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
111 AC_CONFIG_SUBDIRS(testsuite)
112 AC_CONFIG_SUBDIRS(common)
113
114 # Check whether to support alternative target configurations
115 AC_ARG_ENABLE(targets,
116 AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
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 ;;
122 esac])
123
124 # Check whether to enable 64-bit support on 32-bit hosts
125 AC_ARG_ENABLE(64-bit-bfd,
126 AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]),
127 [case "${enableval}" in
128   yes)  want64=true  ;;
129   no)   want64=false ;;
130   *)    AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
131 esac],[want64=false])dnl
132
133 # Provide defaults for some variables set by the per-host and per-target
134 # configuration.
135 gdb_host_obs=posix-hdep.o
136
137 if test "${target}" = "${host}"; then
138   gdb_native=yes
139 else
140   gdb_native=no
141 fi
142
143 . $srcdir/configure.host
144
145 # Accumulate some settings from configure.tgt over all enabled targets
146
147 TARGET_OBS=
148 all_targets=
149
150 for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
151 do
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
165     AS_IF([test -z "${gdb_target_obs}"],
166       [AC_MSG_ERROR([configuration ${targ} is unsupported.])])
167
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
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
182   fi
183 done
184
185 if test x${all_targets} = xtrue; then
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
207 fi
208
209 AC_SUBST(TARGET_OBS)
210
211 # For other settings, only the main target counts.
212 gdb_sim=
213 gdb_osabi=
214 build_gdbserver=
215 targ=$target; . ${srcdir}/configure.tgt
216
217 # Fetch the default architecture and default target vector from BFD.
218 targ=$target; . $srcdir/../bfd/config.bfd
219
220 # We only want the first architecture, so strip off the others if
221 # there is more than one.
222 targ_archs=`echo $targ_archs | sed 's/ .*//'`
223
224 if test "x$targ_archs" != x; then
225   AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
226     [Define to BFD's default architecture. ])
227 fi
228 if test "x$targ_defvec" != x; then
229   AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
230     [Define to BFD's default target vector. ])
231 fi
232
233 # The CLI cannot be disabled yet, but may be in the future.
234
235 # Enable CLI.
236 AC_ARG_ENABLE(gdbcli,
237 AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]),
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])
247 if 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)"
252     ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
253   fi
254 fi
255
256 # Enable MI.
257 AC_ARG_ENABLE(gdbmi,
258 AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]),
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])
266 if 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)"
271     ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
272   fi
273 fi
274
275 # Enable TUI.
276 AC_ARG_ENABLE(tui,
277 AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]),
278   [case $enableval in
279     yes | no | auto)
280       ;;
281     *)
282       AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
283   esac],enable_tui=auto)
284
285 # Enable gdbtk.
286 AC_ARG_ENABLE(gdbtk,
287 AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]),
288   [case $enableval in
289     yes | no)
290       ;;
291     *)
292       AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
293   esac],
294   [if test -d $srcdir/gdbtk; then
295     enable_gdbtk=yes
296   else
297     enable_gdbtk=no
298   fi])
299 # We unconditionally disable gdbtk tests on selected platforms.
300 case $host_os in
301   go32* | windows*)
302     AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
303     enable_gdbtk=no ;;
304 esac
305
306 # Libunwind support.
307 AC_ARG_WITH(libunwind,
308 AS_HELP_STRING([--with-libunwind], [use libunwind frame unwinding support]),
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) ;;
313 esac],[
314   AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
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    
320 if test x"$enable_libunwind" = xyes; then
321   AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
322   AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.])
323   CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
324   CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
325   CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
326 fi
327
328 opt_curses=no
329 AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
330
331 prefer_curses=no
332 if test "$opt_curses" = "yes"; then
333   prefer_curses=yes
334 fi
335
336 # Profiling support.
337 AC_ARG_ENABLE(profiling,
338 AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]),
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
347 AC_CHECK_FUNCS(monstartup _mcleanup)
348 AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
349 [AC_TRY_LINK(
350 [#include <stdlib.h>
351 extern char _etext;
352 ],
353 [free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
354 if test $ac_cv_var__etext = yes; then
355   AC_DEFINE(HAVE__ETEXT, 1,
356             [Define to 1 if your system has the _etext variable. ])
357 fi
358 AC_CACHE_CHECK([for etext], ac_cv_var_etext,
359 [AC_TRY_LINK(
360 [#include <stdlib.h>
361 extern char etext;
362 ],
363 [free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)])
364 if test $ac_cv_var_etext = yes; then
365   AC_DEFINE(HAVE_ETEXT, 1,
366             [Define to 1 if your system has the etext variable. ])
367 fi
368 if test "$enable_profiling" = yes ; then
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
372   PROFILE_CFLAGS=-pg
373   OLD_CFLAGS="$CFLAGS"
374   CFLAGS="$CFLAGS $PROFILE_CFLAGS"
375
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)])
379
380   if test $ac_cv_cc_supports_pg = no; then
381     AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
382   fi
383
384   CFLAGS="$OLD_CFLAGS"
385 fi
386
387 ACX_PKGVERSION([GDB])
388 ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
389 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
390 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
391
392 # --------------------- #
393 # Checks for programs.  #
394 # --------------------- #
395
396 AC_PROG_AWK
397 AC_PROG_INSTALL
398 AC_PROG_LN_S
399 AC_PROG_RANLIB
400 AC_PROG_YACC
401
402 AC_CHECK_TOOL(AR, ar)
403 AC_CHECK_TOOL(DLLTOOL, dlltool)
404 AC_CHECK_TOOL(WINDRES, windres)
405
406 # Needed for GNU/Hurd.
407 AC_CHECK_TOOL(MIG, mig)
408
409 # ---------------------- #
410 # Checks for libraries.  #
411 # ---------------------- #
412
413 # We might need to link with -lm; most simulators need it.
414 AC_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.
420 AC_CHECK_FUNC(wctype, [],
421   [AC_CHECK_LIB(w, wctype)])
422
423 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
424 AC_SEARCH_LIBS(gethostbyname, nsl)
425
426 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
427 AC_SEARCH_LIBS(socketpair, socket)
428
429 # Link in zlib if we can.  This allows us to read compressed debug sections.
430 AM_ZLIB
431
432 # On HP/UX we may need libxpdl for dlgetmodinfo (used by solib-pa64.c).
433 AC_SEARCH_LIBS(dlgetmodinfo, [dl xpdl])
434
435 AM_ICONV
436
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
453 case $host_os in
454   osf* )
455     if test x"$enable_tui" = xyes; then
456       AC_MSG_ERROR([Building GDB with TUI mode is not supported on this host])
457     fi
458     if test x"$enable_tui" = xauto; then
459       enable_tui=no
460     fi
461     ;;
462 esac
463
464 # For the TUI, we need enhanced curses functionality.
465 if test x"$enable_tui" != xno; then
466   prefer_curses=yes
467 fi
468
469 curses_found=no
470 if 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
483 fi
484
485 # Check whether we should enable the TUI, but only do so if we really
486 # can.
487 if test x"$enable_tui" != xno; then
488   if test -d $srcdir/tui; then
489     if test "$curses_found" != no; then
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
506 fi
507
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.
511
512 case $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 ;;
518   go32* | *djgpp*)
519     ac_cv_search_tgetent="none required"
520     ;;
521   *mingw32*)     
522     ac_cv_search_tgetent="none required"
523     CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
524     ;;
525 esac
526
527 # These are the libraries checked by Readline.
528 AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
529
530 if test "$ac_cv_search_tgetent" = no; then
531   AC_MSG_ERROR([no termcap library found])
532 fi
533
534 AC_ARG_WITH([system-readline],
535   [AS_HELP_STRING([--with-system-readline],
536                   [use installed readline library])])
537
538 if test "$with_system_readline" = yes; then
539   READLINE=-lreadline
540   READLINE_DEPS=
541   READLINE_CFLAGS=
542   READLINE_TEXI_INCFLAG=
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])
558 else
559   READLINE='$(READLINE_DIR)/libreadline.a'
560   READLINE_DEPS='$(READLINE)'
561   READLINE_CFLAGS='-I$(READLINE_SRC)/..'
562   READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
563 fi
564 AC_SUBST(READLINE)
565 AC_SUBST(READLINE_DEPS)
566 AC_SUBST(READLINE_CFLAGS)
567 AC_SUBST(READLINE_TEXI_INCFLAG)
568
569 AC_ARG_WITH(expat,
570   AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
571   [], [with_expat=auto])
572 AC_MSG_CHECKING([whether to use expat])
573 AC_MSG_RESULT([$with_expat])
574
575 if test "${with_expat}" = no; then
576   AC_MSG_WARN([expat support disabled; some features may be unavailable.])
577   HAVE_LIBEXPAT=no
578 else
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
593 fi
594
595 dnl Utility to simplify finding libpython.
596 dnl $1 = pythonX.Y
597 dnl $2 = the shell variable to assign the result to
598 dnl      If libpython is found we store $version here.
599 dnl $3 = additional flags to add to CPPFLAGS
600 dnl $4 = additional flags to add to LIBS
601
602 AC_DEFUN([AC_TRY_LIBPYTHON],
603 [
604   version=$1
605   define([have_libpython_var],$2)
606   new_CPPFLAGS=$3
607   new_LIBS=$4
608   AC_MSG_CHECKING([for ${version}])
609   save_CPPFLAGS=$CPPFLAGS
610   save_LIBS=$LIBS
611   CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
612   LIBS="$LIBS $new_LIBS"
613   found_usable_python=no
614   AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]],
615                                  [[Py_Initialize ();]]),
616                  [have_libpython_var=${version}
617                   found_usable_python=yes
618                   PYTHON_CPPFLAGS=$new_CPPFLAGS
619                   PYTHON_LIBS=$new_LIBS])
620   CPPFLAGS=$save_CPPFLAGS
621   LIBS=$save_LIBS
622   AC_MSG_RESULT([${found_usable_python}])
623 ])
624
625 dnl There are several different values for --with-python:
626 dnl
627 dnl no -   Don't include python support.
628 dnl yes -  Include python support, error if it's missing.
629 dnl        If we find python in $PATH, use it to fetch configure options,
630 dnl        otherwise assume the compiler can find it with no help from us.
631 dnl        Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
632 dnl auto - Same as "yes", but if python is missing from the system,
633 dnl        fall back to "no".
634 dnl /path/to/python/exec-prefix -
635 dnl        Use the python located in this directory.
636 dnl        If /path/to/python/exec-prefix/bin/python exists, use it to find
637 dnl        the compilation parameters.  Otherwise use
638 dnl        -I/path/to/python/exec-prefix/include,
639 dnl        -L/path/to/python/exec-prefix/lib.
640 dnl        Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
641 dnl        NOTE: This case is historical.  It is what was done for 7.0/7.1
642 dnl        but is deprecated.
643 dnl /path/to/python/executable -
644 dnl        Run python-config.py with this version of python to fetch the
645 dnl        compilation parameters.
646 dnl        NOTE: This needn't be the real python executable.
647 dnl        In a cross-compilation scenario (build != host), this could be
648 dnl        a shell script that provides what python-config.py provides for
649 dnl        --ldflags, --includes, --exec-prefix.
650 dnl python-executable -
651 dnl        Find python-executable in $PATH, and then handle the same as
652 dnl        /path/to/python/executable.
653 dnl
654 dnl If a python program is specified, it is used to run python-config.py and
655 dnl is passed --ldflags, --includes, --exec-prefix.
656
657 AC_ARG_WITH(python,
658   AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
659   [], [with_python=auto])
660 AC_MSG_CHECKING([whether to use python])
661 AC_MSG_RESULT([$with_python])
662
663 if test "${with_python}" = no; then
664   AC_MSG_WARN([python support disabled; some features may be unavailable.])
665   have_libpython=no
666 else
667   case "${with_python}" in
668   /*)
669     if test -d ${with_python}; then
670       # Assume the python binary is ${with_python}/bin/python.
671       python_prog="${with_python}/bin/python"
672       python_prefix=
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
680       if test ! -x "${python_prog}"; then
681         # Fall back to gdb 7.0/7.1 behaviour.
682         python_prog=missing
683         python_prefix=${with_python}
684       fi
685     elif test -x "${with_python}"; then
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.
689       python_prog=${with_python}
690       python_prefix=
691     else
692       AC_ERROR(invalid value for --with-python)
693     fi
694     ;;
695   */*)
696     # Disallow --with-python=foo/bar.
697     AC_ERROR(invalid value for --with-python)
698     ;;
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
729   esac
730
731   if test "${python_prog}" != missing; then
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
735     python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
736     if test $? != 0; then
737       have_python_config=failed
738       if test "${with_python}" != auto; then
739         AC_ERROR(failure running python-config --includes)
740       fi
741     fi
742     python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
743     if test $? != 0; then
744       have_python_config=failed
745       if test "${with_python}" != auto; then
746         AC_ERROR(failure running python-config --ldflags)
747       fi
748     fi
749     python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
750     if test $? != 0; then
751       have_python_config=failed
752       if test "${with_python}" != auto; then
753         AC_ERROR(failure running python-config --exec-prefix)
754       fi
755     fi
756   else
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=
764     have_python_config=no
765   fi
766
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
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.
788     python_version=`echo " ${python_libs} " \
789                          | sed -e 's,^.* -l\(python[[0-9]]*[[.]]*[[0-9]]*\).*$,\1,'`
790     case "${python_version}" in
791     python*)
792       AC_TRY_LIBPYTHON(${python_version}, have_libpython,
793                        ${python_includes}, ${python_libs})
794       ;;
795     *)
796       AC_MSG_ERROR([unable to determine python version from ${python_libs}])
797       ;;
798     esac
799   elif test "${have_python_config}" != failed; then
800     if test "${have_libpython}" = no; then
801       AC_TRY_LIBPYTHON(python2.7, have_libpython,
802                        ${python_includes}, "${python_libs} -lpython2.7")
803     fi
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")
815     fi
816   fi
817   if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then
818     AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.])
819   elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then
820     AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.])
821   elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then
822     AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.])
823   elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then
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
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
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
845   fi
846 fi
847
848 if test "${have_libpython}" != no; then
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)"
853   CONFIG_INSTALL="$CONFIG_INSTALL install-python"
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
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
891 else
892   # Even if Python support is not compiled in, we need to have these files
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"
897 fi
898 AC_SUBST(PYTHON_CFLAGS)
899 AC_SUBST(PYTHON_CPPFLAGS)
900 AC_SUBST(PYTHON_LIBS)
901
902 # ------------------------- #
903 # Checks for header files.  #
904 # ------------------------- #
905
906 AC_HEADER_DIRENT
907 AC_HEADER_STAT
908 AC_HEADER_STDC
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?
912 AC_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 \
919                   sgtty.h unistd.h elf_hp.h ctype.h time.h locale.h])
920 AC_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 ])
928 AC_CHECK_HEADERS(sys/proc.h, [], [],
929 [#if HAVE_SYS_PARAM_H
930 # include <sys/param.h>
931 #endif
932 ])
933 AC_CHECK_HEADERS(sys/user.h, [], [],
934 [#if HAVE_SYS_PARAM_H
935 # include <sys/param.h>
936 #endif
937 ])
938
939 # On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
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.
942 case $host_os in
943   solaris2.[[789]])
944     if test "$GCC" = yes; then
945       AC_DEFINE(_MSE_INT_H, 1,
946         [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
947    Solaris 2.[789] when using GCC. ])
948     fi ;;
949 esac
950 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
951 AC_CHECK_HEADERS(term.h, [], [],
952 [#if HAVE_CURSES_H
953 # include <curses.h>
954 #endif
955 ])
956
957 # ------------------------- #
958 # Checks for declarations.  #
959 # ------------------------- #
960
961 AC_CHECK_DECLS([free, malloc, realloc, strerror, strstr, getopt,
962                 snprintf, vsnprintf])
963 AM_LC_MESSAGES
964
965 # ----------------------- #
966 # Checks for structures.  #
967 # ----------------------- #
968
969 AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize])
970
971 # ------------------ #
972 # Checks for types.  #
973 # ------------------ #
974
975 AC_TYPE_SIGNAL
976 AC_CHECK_TYPES(socklen_t, [], [],
977 [#include <sys/types.h>
978 #include <sys/socket.h>
979 ])
980
981 # ------------------------------------- #
982 # Checks for compiler characteristics.  #
983 # ------------------------------------- #
984
985 AC_C_CONST
986 AC_C_INLINE
987 AC_C_BIGENDIAN
988
989 # ------------------------------ #
990 # Checks for library functions.  #
991 # ------------------------------ #
992
993 AC_FUNC_ALLOCA
994 AC_FUNC_MMAP
995 AC_FUNC_VFORK
996 AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid \
997                 getgid pipe poll pread64 resize_term sbrk setpgid setpgrp setsid \
998                 sigaction sigprocmask sigsetmask socketpair syscall \
999                 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
1000                 setrlimit getrlimit posix_madvise waitpid])
1001 AM_LANGINFO_CODESET
1002
1003 # Check the return and argument types of ptrace.  No canned test for
1004 # this, so roll our own.
1005 gdb_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.
1017 AC_CHECK_DECLS(ptrace, [], [
1018   : ${gdb_cv_func_ptrace_ret='int'}
1019   : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1020 ], $gdb_ptrace_headers)
1021 # Check return type.  Varargs (used on GNU/Linux) conflict with the
1022 # empty argument list, so check for that explicitly.
1023 AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
1024   AC_TRY_COMPILE($gdb_ptrace_headers,
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')))
1031 AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
1032   [Define as the return type of ptrace.])
1033 # Check argument types.
1034 AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
1035   AC_TRY_COMPILE($gdb_ptrace_headers,
1036     [extern long ptrace (enum __ptrace_request, ...);],
1037     [gdb_cv_func_ptrace_args='int,int,long,long'],[
1038 for gdb_arg1 in 'int' 'long'; do
1039  for gdb_arg2 in 'pid_t' 'int' 'long'; do
1040   for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do
1041    for gdb_arg4 in 'int' 'long'; do
1042      AC_TRY_COMPILE($gdb_ptrace_headers, [
1043 extern $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, [
1049 extern $gdb_cv_func_ptrace_ret
1050   ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
1051 ], [
1052 gdb_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
1058 done
1059 # Provide a safe default value.
1060 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1061 ])])
1062 ac_save_IFS=$IFS; IFS=','
1063 set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
1064 IFS=$ac_save_IFS
1065 shift
1066 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
1067   [Define to the type of arg 3 for ptrace.])
1068 if test -n "$[5]"; then
1069   AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
1070     [Define to the type of arg 5 for ptrace.])
1071 fi
1072
1073 dnl AC_FUNC_SETPGRP does not work when cross compiling
1074 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
1075 if test "$cross_compiling" = no; then
1076   AC_FUNC_SETPGRP
1077 else
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)])
1087 if test $ac_cv_func_setpgrp_void = yes; then
1088   AC_DEFINE(SETPGRP_VOID, 1)
1089 fi
1090 fi
1091
1092 # Check if sigsetjmp is available.  Using AC_CHECK_FUNCS won't do
1093 # since sigsetjmp might only be defined as a macro.
1094 AC_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);],
1098 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
1099 if test $gdb_cv_func_sigsetjmp = yes; then
1100   AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
1101 fi
1102
1103 # Assume we'll default to using the included libiberty regex.
1104 gdb_use_included_regex=yes
1105
1106 # However, if the system regex is GNU regex, then default to *not*
1107 # using the included regex.
1108 AC_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)])
1119 if test $gdb_cv_have_gnu_regex = yes; then
1120   gdb_use_included_regex=no
1121 fi
1122
1123 AC_ARG_WITH(included-regex,
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)]),
1125   gdb_with_regex=$withval,
1126   gdb_with_regex=$gdb_use_included_regex)
1127 if 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.])
1130 fi
1131
1132 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
1133 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
1134 [#include <sys/param.h>
1135 #include <sys/proc.h>
1136 ])
1137
1138 # See if <sys/lwp.h> defines `struct lwp`.
1139 AC_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;],
1142 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
1143 if test $gdb_cv_struct_lwp = yes; then
1144   AC_DEFINE(HAVE_STRUCT_LWP, 1,
1145             [Define to 1 if your system has struct lwp.])
1146 fi
1147
1148 # See if <machine/reg.h> degines `struct reg'.
1149 AC_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;],
1152 gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
1153 if 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>.])
1156 fi
1157
1158 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
1159 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
1160 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
1161                  [#include <machine/reg.h>])
1162
1163 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
1164 AC_MSG_CHECKING(for PTRACE_GETREGS)
1165 AC_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])])
1170 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
1171 if test $gdb_cv_have_ptrace_getregs = yes; then
1172   AC_DEFINE(HAVE_PTRACE_GETREGS, 1, 
1173   [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
1174 fi
1175
1176 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
1177 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
1178 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
1179 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1180                 [PTRACE_GETFPXREGS;],
1181                 [gdb_cv_have_ptrace_getfpxregs=yes],
1182                 [gdb_cv_have_ptrace_getfpxregs=no])])
1183 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
1184 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
1185   AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
1186   [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
1187 fi
1188
1189 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
1190 AC_MSG_CHECKING(for PT_GETDBREGS)
1191 AC_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])])
1197 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
1198 if test $gdb_cv_have_pt_getdbregs = yes; then
1199   AC_DEFINE(HAVE_PT_GETDBREGS, 1,
1200   [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
1201 fi
1202
1203 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
1204 AC_MSG_CHECKING(for PT_GETXMMREGS)
1205 AC_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])])
1211 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
1212 if test $gdb_cv_have_pt_getxmmregs = yes; then
1213   AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
1214   [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
1215 fi
1216
1217 # Detect which type of /proc is in use, such as for Unixware or Solaris.
1218
1219 if test "${target}" = "${host}"; then
1220   case "${host}" in
1221   *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
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).])
1225       ;;
1226   *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
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).])
1230       ;;
1231   mips-sgi-irix5*)
1232       # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
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.])
1236       ;;
1237   esac
1238 fi
1239
1240 if 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)
1245   BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
1246   BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
1247   BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
1248   BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
1249   BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
1250   BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
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)
1255
1256
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
1262   dnl around it in gdb_proc_service.h.
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
1279       AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
1280       [Define if the prfpregset_t type is broken.])
1281     fi
1282   fi
1283
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
1298     AC_DEFINE(HAVE_PROCFS_PIOCSET, 1,
1299     [Define if ioctl argument PIOCSET is available.])
1300   fi
1301 fi
1302
1303 dnl For native ports (host == target), check to see what kind of
1304 dnl legacy link.h support is needed.  (See solib-legacy.c.)
1305 if 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
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.)])
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
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.)])
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>
1346 #ifdef HAVE_NLIST_H
1347 #include <nlist.h>
1348 #endif
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
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.)])
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
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)])
1375   fi
1376 fi
1377
1378 # Check if the compiler supports the `long long' type.
1379
1380 AC_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)])
1386 if test $gdb_cv_c_long_long = yes; then
1387   AC_DEFINE(CC_HAS_LONG_LONG, 1,
1388             [Define to 1 if the compiler supports long long.])
1389 fi
1390
1391 # Check if the compiler and runtime support printing long longs.
1392
1393 AC_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];
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);
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)])
1407 if test $gdb_cv_printf_has_long_long = yes; then
1408   AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
1409             [Define to 1 if the "%ll" format works to print long longs.])
1410 fi
1411
1412 # Check if the compiler and runtime support printing decfloats.
1413
1414 AC_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)])
1426 if 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.])
1429 fi
1430
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.
1435
1436 AC_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)])
1440 if 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.])
1443 fi
1444
1445 # Check if the compiler and runtime support printing long doubles.
1446
1447 AC_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];
1451   long double f = 3.141592653;
1452   sprintf (buf, "%Lg", f);
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)])
1457 if test $gdb_cv_printf_has_long_double = yes; then
1458   AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1459             [Define to 1 if the "%Lg" format works to print long doubles.])
1460 fi
1461
1462 # Check if the compiler and runtime support scanning long doubles.
1463
1464 AC_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";
1469   long double f = 0;
1470   sscanf (buf, "%Lg", &f);
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)])
1475 if test $gdb_cv_scanf_has_long_double = yes; then
1476   AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1477             [Define to 1 if the "%Lg" format works to scan long doubles.])
1478 fi
1479
1480 case ${host_os} in
1481 aix*)
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=])
1492     LDFLAGS="${SAVE_LDFLAGS}"
1493   ])
1494   CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1495   ;;
1496 esac
1497
1498 AC_MSG_CHECKING(for the dynamic export flag)
1499 dynamic_list=false
1500 if test "${gdb_native}" = yes; then
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"
1527    fi
1528    LDFLAGS="$old_LDFLAGS"
1529 fi
1530 if $dynamic_list; then
1531   found="-Wl,--dynamic-list"
1532   RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
1533 else
1534   found="-rdynamic"
1535   RDYNAMIC="-rdynamic"
1536 fi
1537 AC_SUBST(RDYNAMIC)
1538 AC_MSG_RESULT($found)
1539
1540 dnl For certain native configurations, we need to check whether thread
1541 dnl support can be built in or not.
1542 dnl
1543 dnl Note that we only want this if we are both native (host == target),
1544 dnl and not doing a canadian cross build (build == host).
1545
1546 if test ${build} = ${host} -a ${host} = ${target} ; then
1547    case ${host_os} in
1548    solaris*)
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.
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)
1556          AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
1557          [Define if using Solaris thread debugging.])
1558          CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
1559          CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
1560          AC_CHECK_LIB(dl, dlopen)
1561          CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
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
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.])
1578          fi
1579       else
1580          AC_MSG_RESULT(no)
1581       fi
1582       ;;
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"
1595          CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1596          CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
1597       fi
1598       ;;
1599    esac
1600    AC_SUBST(CONFIG_LDFLAGS)
1601 fi
1602
1603 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1604 dnl other error codes.
1605 if 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    )
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    )
1633 fi
1634 if 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.])
1637 fi
1638 if 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.])
1641 fi
1642 if 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.])
1645 fi
1646
1647 dnl See if we have a sys/syscall header file that has __NR_tkill.
1648 if 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    )
1658 fi
1659 dnl See if we can issue tkill syscall.
1660 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
1661   AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
1662 fi
1663
1664 dnl Check if we can disable the virtual address space randomization.
1665 dnl The functionality of setarch -R.
1666 AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>])
1667 define([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])])
1675 AC_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])])
1681 if $have_personality
1682 then
1683     AC_DEFINE([HAVE_PERSONALITY], 1,
1684               [Define if you support the personality syscall.])
1685 fi
1686
1687 dnl Handle optional features that can be enabled.
1688
1689 target_sysroot_reloc=0
1690 AC_ARG_WITH(sysroot,
1691 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [search for usr/lib et al within DIR]),
1692 [
1693  case ${with_sysroot} in
1694  yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
1695  *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
1696  esac
1697
1698  TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
1699
1700  if test "x$prefix" = xNONE; then
1701   test_prefix=/usr/local
1702  else
1703   test_prefix=$prefix
1704  fi
1705  if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
1706   test_exec_prefix=$test_prefix
1707  else
1708   test_exec_prefix=$exec_prefix
1709  fi
1710  case ${TARGET_SYSTEM_ROOT} in
1711  "${test_prefix}"|"${test_prefix}/"*|\
1712  "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
1713  '${prefix}'|'${prefix}/'*|\
1714  '${exec_prefix}'|'${exec_prefix}/'*)
1715    target_sysroot_reloc=1
1716    ;;
1717  esac
1718 ], [
1719  TARGET_SYSTEM_ROOT=
1720  TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
1721 ])
1722 TARGET_SYSTEM_ROOT_DEFINE="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE=$target_sysroot_reloc"
1723 AC_SUBST(TARGET_SYSTEM_ROOT)
1724 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
1725
1726 GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
1727     [automatically load a system-wide gdbinit file],
1728     [])
1729
1730 AC_ARG_ENABLE(werror,
1731   AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
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
1739 if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
1740     ERROR_ON_WARNING=yes
1741 fi
1742
1743 WERROR_CFLAGS=""
1744 if test "${ERROR_ON_WARNING}" = yes ; then
1745     WERROR_CFLAGS="-Werror"
1746 fi
1747
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
1752 # gdb/doc/gdbint.texinfo.
1753 build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
1754 -Wformat-nonliteral -Wno-pointer-sign \
1755 -Wno-unused -Wunused-value -Wunused-function \
1756 -Wno-switch -Wno-char-subscripts"
1757
1758 # Enable -Wno-format by default when using gcc on mingw since many
1759 # GCC versions complain about %I64.
1760 case "${host}" in
1761   *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
1762 esac
1763
1764 AC_ARG_ENABLE(build-warnings,
1765 AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]),
1766 [case "${enableval}" in
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"`;;
1774 esac
1775 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1776   echo "Setting compiler warning flags = $build_warnings" 6>&1
1777 fi])dnl
1778 AC_ARG_ENABLE(gdb-build-warnings,
1779 AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]),
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"`;;
1788 esac
1789 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1790   echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1791 fi])dnl
1792 WARN_CFLAGS=""
1793 if test "x${build_warnings}" != x -a "x$GCC" = xyes
1794 then
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
1802             saved_CFLAGS="$CFLAGS"
1803             CFLAGS="$CFLAGS $w"
1804             AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1805             CFLAGS="$saved_CFLAGS"
1806         esac
1807     done
1808     AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
1809 fi
1810 AC_SUBST(WARN_CFLAGS)
1811 AC_SUBST(WERROR_CFLAGS)
1812
1813 # In the Cygwin environment, we need some additional flags.
1814 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1815 [AC_EGREP_CPP(lose, [
1816 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1817 lose
1818 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1819
1820
1821 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1822 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
1823 case ${host} in
1824   *go32* ) SER_HARDWIRE=ser-go32.o ;;
1825   *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1826   *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
1827 esac
1828 AC_SUBST(SER_HARDWIRE)
1829
1830 # libreadline needs libuser32.a in a cygwin environment
1831 WIN32LIBS=
1832 if test x$gdb_cv_os_cygwin = xyes; then
1833     WIN32LIBS="-luser32"
1834     case "${target}" in
1835         *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1836         ;;
1837     esac
1838 fi
1839
1840 # The ser-tcp.c module requires sockets.
1841 case ${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     ;;
1850 esac        
1851 AC_SUBST(WIN32LIBS)
1852
1853 # Add ELF support to GDB, but only if BFD includes ELF support.
1854 OLD_CFLAGS=$CFLAGS
1855 OLD_LDFLAGS=$LDFLAGS
1856 OLD_LIBS=$LIBS
1857 CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
1858 LDFLAGS="$LDFLAGS -L../bfd -L../libiberty"
1859 intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
1860 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1861 if test "$plugins" = "yes"; then
1862   LIBS="-ldl $LIBS"
1863 fi
1864 LIBS="-lbfd -liberty $intl $LIBS"
1865 AC_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); ],
1872 gdb_cv_var_elf=yes, gdb_cv_var_elf=no)])
1873 if 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.])
1877   # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1878   if test "$plugins" = "yes"; then
1879     OLD_LIBS="-ldl $OLD_LIBS"
1880   fi
1881 fi
1882 CFLAGS=$OLD_CFLAGS
1883 LDFLAGS=$OLD_LDFLAGS
1884 LIBS=$OLD_LIBS
1885
1886 # Add any host-specific objects to GDB.
1887 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1888
1889 LIBGUI="../libgui/src/libgui.a"
1890 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1891 AC_SUBST(LIBGUI)
1892 AC_SUBST(GUI_CFLAGS_X)
1893
1894 WIN32LDAPP=
1895 AC_SUBST(WIN32LIBS)
1896 AC_SUBST(WIN32LDAPP)
1897
1898 case "${host}" in
1899 *-*-cygwin* | *-*-mingw* )
1900     configdir="win"
1901     ;;
1902 *)
1903     configdir="unix"
1904     ;;
1905 esac
1906
1907 GDBTKLIBS=
1908 if test "${enable_gdbtk}" = "yes"; then
1909
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
1917     SC_PATH_TCLCONFIG
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
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)
1954
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"
2002         fi
2003
2004         AC_CONFIG_SUBDIRS(gdbtk)
2005     fi
2006 fi
2007
2008 AC_SUBST(X_CFLAGS)
2009 AC_SUBST(X_LDFLAGS)
2010 AC_SUBST(X_LIBS)
2011 AC_SUBST(GDBTKLIBS)
2012 AC_SUBST(GDBTK_CFLAGS)
2013 AC_SUBST(GDBTK_SRC_DIR)
2014
2015 AC_PATH_X
2016
2017 # Unlike the sim directory, whether a simulator is linked is controlled by 
2018 # presence of a gdb_sim definition in the target configure.tgt entry.  
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
2022 # not part of the source tree.
2023 #
2024 AC_ARG_ENABLE(sim,
2025 AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
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
2035 if test ! -d "${srcdir}/../sim"; then
2036   ignore_sim=true
2037 fi
2038
2039 SIM=
2040 SIM_OBS=
2041 if test "${ignore_sim}" = "false"; then
2042   if test x"${gdb_sim}" != x ; then
2043     SIM="${gdb_sim}"
2044     SIM_OBS="remote-sim.o"
2045     AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
2046   fi
2047 fi
2048 AC_SUBST(SIM)
2049 AC_SUBST(SIM_OBS)
2050
2051 AC_SUBST(ENABLE_CFLAGS)
2052 AC_SUBST(PROFILE_CFLAGS)
2053
2054 AC_SUBST(CONFIG_OBS)
2055 AC_SUBST(CONFIG_DEPS)
2056 AC_SUBST(CONFIG_SRCS)
2057 AC_SUBST(CONFIG_ALL)
2058 AC_SUBST(CONFIG_CLEAN)
2059 AC_SUBST(CONFIG_INSTALL)
2060 AC_SUBST(CONFIG_UNINSTALL)
2061
2062 # List of host floatformats.
2063 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
2064 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
2065 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
2066
2067 # target_subdir is used by the testsuite to find the target libraries.
2068 target_subdir=
2069 if test "${host}" != "${target}"; then
2070     target_subdir="${target_alias}/"
2071 fi
2072 AC_SUBST(target_subdir)
2073
2074 frags=
2075 if test "${gdb_native}" = "yes"; then
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"
2081 else
2082   host_makefile_frag=/dev/null
2083 fi
2084
2085 AC_SUBST_FILE(host_makefile_frag)
2086 AC_SUBST(frags)
2087
2088 changequote(,)dnl
2089 if test "${gdb_native}" = "yes"; then
2090 # We pick this up from the host configuration file (.mh) because we
2091 # do not have a native configuration Makefile fragment.
2092 nativefile=`sed -n '
2093 s/NAT_FILE[     ]*=[    ]*\([^  ]*\)/\1/p
2094 ' ${host_makefile_frag}`
2095 fi
2096 changequote([,])
2097
2098 if 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.])
2101 fi
2102
2103 # Enable multi-ice-gdb-server.
2104 AC_ARG_ENABLE(multi-ice,
2105 AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]),
2106   [case $enableval in
2107     yes | no)
2108       ;;
2109     *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
2110   esac])
2111 if test "x$enable_multi_ice" = xyes; then
2112    AC_CONFIG_SUBDIRS(multi-ice)
2113 fi
2114
2115 AC_ARG_ENABLE(gdbserver,
2116 AS_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) ;;
2121 esac],[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.
2125 if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then
2126   AC_MSG_CHECKING(whether gdbserver is supported on this host)
2127   if test "x$build_gdbserver" = xyes; then
2128     AC_MSG_RESULT(yes)
2129     AC_CONFIG_SUBDIRS(gdbserver)
2130     gdbserver_build_enabled=yes
2131   else
2132     AC_MSG_RESULT(no)
2133   fi
2134 fi
2135
2136 # If the user explicitly request the gdbserver to be built, verify that
2137 # we were in fact able to enable it.
2138 if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then
2139   AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration)
2140 fi
2141
2142 # If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
2143 # to an empty version.
2144
2145 files=
2146 links=
2147
2148 rm -f nm.h
2149 if test "${nativefile}" != ""; then
2150     case "${nativefile}" in
2151       nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
2152       * ) GDB_NM_FILE="${nativefile}"
2153     esac
2154     files="${files} ${GDB_NM_FILE}"
2155     links="${links} nm.h"
2156     AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
2157 fi
2158 AC_SUBST(GDB_NM_FILE)
2159
2160 AC_LINK_FILES($files, $links)
2161
2162 dnl Check for exe extension set on certain hosts (e.g. Win32)
2163 AC_EXEEXT
2164
2165 dnl  Detect the character set used by this host.
2166 dnl  At the moment, we just assume it's UTF-8.
2167 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
2168           [Define to be a string naming the default host character set.])
2169
2170 AC_OUTPUT(Makefile .gdbinit:gdbinit.in doc/Makefile gnulib/Makefile data-directory/Makefile,
2171 [
2172 case x$CONFIG_HEADERS in
2173 xconfig.h:config.in)
2174 echo > stamp-h ;;
2175 esac
2176 ])
2177
2178 exit 0