OSDN Git Service

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