OSDN Git Service

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