OSDN Git Service

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