OSDN Git Service

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