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