* configure.in: Remove redundant AC_MSG_RESULT in check for
[platform/upstream/binutils.git] / gdb / configure.in
1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
3 dnl Free Software Foundation, Inc.
4 dnl
5 dnl This file is part of GDB.
6 dnl 
7 dnl This program is free software; you can redistribute it and/or modify
8 dnl it under the terms of the GNU General Public License as published by
9 dnl the Free Software Foundation; either version 2 of the License, or
10 dnl (at your option) any later version.
11 dnl 
12 dnl This program is distributed in the hope that it will be useful,
13 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
14 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 dnl GNU General Public License for more details.
16 dnl 
17 dnl You should have received a copy of the GNU General Public License
18 dnl along with this program; if not, write to the Free Software
19 dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20
21 dnl Process this file with autoconf to produce a configure script.
22
23 AC_PREREQ(2.13)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 # FIXME: kettenis/20030102: The AC_PROG_RANLIB from Autoconf 2.13
38 # doesn't support cross-compilation, but the one from Autoconf 2.5x
39 # does.  Override RANLIB here (i.e. before running AC_PROG_RANLIB) to
40 # deal with the lossage.  Note that CY_GNU_GETTEXT currently calls
41 # AC_PROG_RANLIB.  This can be removed when we switch to Autoconf
42 # 2.5x.
43 AC_CHECK_TOOL(RANLIB, ranlib, :)
44
45 dnl Set up for gettext.  PACKAGE is used when we call bindtextdomain.
46 ALL_LINGUAS=
47 CY_GNU_GETTEXT
48 AC_DEFINE(PACKAGE, "gdb", [Name of this package. ])
49
50 debugdir=${libdir}/debug
51          
52 AC_ARG_WITH(separate-debug-dir,
53 [  --with-separate-debug-dir=path   Look for global separate debug info in this path [LIBDIR/debug]],
54 [debugdir="${withval}"])
55         
56 AC_DEFINE_DIR(DEBUGDIR, debugdir,
57               [Global directory for separate debug files. ])
58 #AC_DEFINE_UNQUOTED(DEBUGDIR, "$debugdir"),
59
60 dnl List of object files added by configure.
61
62 CONFIG_OBS=
63 CONFIG_LIB_OBS=
64 CONFIG_DEPS=
65 CONFIG_SRCS=
66 CONFIG_INITS=
67 ENABLE_CFLAGS=
68 CONFIG_ALL=
69 CONFIG_CLEAN=
70 CONFIG_INSTALL=
71 CONFIG_UNINSTALL=
72
73 AC_CONFIG_SUBDIRS(doc testsuite)
74 configdirs=
75
76 . $srcdir/configure.host
77
78 . $srcdir/configure.tgt
79
80 # Fetch the default architecture and default target vector from BFD.
81 targ=$target; . $srcdir/../bfd/config.bfd
82
83 # We only want the first architecture, so strip off the others if
84 # there is more than one.
85 targ_archs=`echo $targ_archs | sed 's/ .*//'`
86
87 if test "x$targ_archs" != x; then
88   AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
89     [Define to BFD's default architecture. ])
90 fi
91 if test "x$targ_defvec" != x; then
92   AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
93     [Define to BFD's default target vector. ])
94 fi
95
96 AC_ARG_PROGRAM
97
98 # The CLI cannot be disabled yet, but may be in the future.
99
100 # Enable CLI.
101 AC_ARG_ENABLE(gdbcli,
102 [  --disable-gdbcli        disable command-line interface (CLI)],
103   [case $enableval in
104     yes)
105       ;;
106     no)
107       AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
108     *)
109       AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
110   esac],
111   [enable_gdbcli=yes])
112 if test x"$enable_gdbcli" = xyes; then
113   if test -d $srcdir/cli; then
114     CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
115     CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
116     CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
117     CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_CLI_INITS)"
118     ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
119     CONFIG_ALL="$CONFIG_ALL \$(SUBDIR_CLI_ALL)"
120     CONFIG_CLEAN="$CONFIG_CLEAN \$(SUBDIR_CLI_CLEAN)"
121     CONFIG_INSTALL="$CONFIG_INSTALL \$(SUBDIR_CLI_INSTALL)"
122     CONFIG_UNINSTALL="$CONFIG_UNINSTALL \$(SUBDIR_CLI_UNINSTALL)"
123   fi
124 fi
125
126 # Enable MI.
127 AC_ARG_ENABLE(gdbmi,
128 [  --disable-gdbmi         disable machine-interface (MI)],
129   [case $enableval in
130     yes | no)
131       ;;
132     *)
133       AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
134   esac],
135   [enable_gdbmi=yes])
136 if test x"$enable_gdbmi" = xyes; then
137   if test -d $srcdir/mi; then
138     CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
139     CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
140     CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
141     CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_MI_INITS)"
142     ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
143     CONFIG_ALL="$CONFIG_ALL \$(SUBDIR_MI_ALL)"
144     CONFIG_CLEAN="$CONFIG_CLEAN \$(SUBDIR_MI_CLEAN)"
145     CONFIG_INSTALL="$CONFIG_INSTALL \$(SUBDIR_MI_INSTALL)"
146     CONFIG_UNINSTALL="$CONFIG_UNINSTALL \$(SUBDIR_MI_UNINSTALL)"
147   fi
148 fi
149
150 # Enable TUI.
151 AC_ARG_ENABLE(tui,
152 [  --enable-tui            enable full-screen terminal user interface (TUI)],
153   [case $enableval in
154     yes | no)
155       ;;
156     *)
157       AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
158   esac])
159 if test x"$enable_tui" = xyes; then
160   if test -d $srcdir/tui; then
161     CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
162     CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
163     CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
164     CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_TUI_INITS)"
165     ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
166     CONFIG_ALL="$CONFIG_ALL \$(SUBDIR_TUI_ALL)"
167     CONFIG_CLEAN="$CONFIG_CLEAN \$(SUBDIR_TUI_CLEAN)"
168     CONFIG_INSTALL="$CONFIG_INSTALL \$(SUBDIR_TUI_INSTALL)"
169     CONFIG_UNINSTALL="$CONFIG_UNINSTALL \$(SUBDIR_TUI_UNINSTALL)"
170     need_curses=yes
171   fi
172 fi
173
174 # Enable gdbtk.
175 AC_ARG_ENABLE(gdbtk,
176 [  --enable-gdbtk          enable gdbtk graphical user interface (GUI)],
177   [case $enableval in
178     yes | no)
179       ;;
180     *)
181       AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
182   esac],
183   [if test -d $srcdir/gdbtk; then
184     enable_gdbtk=yes
185   else
186     enable_gdbtk=no
187   fi])
188 # We unconditionally disable gdbtk tests on selected platforms.
189 case $host_os in
190   go32* | windows*)
191     AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
192     enable_gdbtk=no ;;
193 esac
194
195 # Profiling support.
196 AC_ARG_ENABLE(profiling,
197 [  --enable-profiling      enable profiling of GDB],
198   [case $enableval in
199     yes | no)
200       ;;
201     *)
202       AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
203   esac],
204  [enable_profiling=no])
205
206 AC_CHECK_FUNCS(monstartup _mcleanup)
207 AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
208 [AC_TRY_LINK(
209 [#include <stdlib.h>
210 extern char _etext;
211 ],
212 [free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
213 if test $ac_cv_var__etext = yes; then
214   AC_DEFINE(HAVE__ETEXT, 1,
215             [Define to 1 if your system has the _etext variable. ])
216 fi
217 if test "$enable_profiling" = yes ; then
218   if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
219     AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
220   fi
221   PROFILE_CFLAGS=-pg
222   OLD_CFLAGS="$CFLAGS"
223   CFLAGS="$CFLAGS $PROFILE_CFLAGS"
224
225   AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
226     [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
227      ac_cv_cc_supports_pg=no)])
228
229   if test $ac_cv_cc_supports_pg = no; then
230     AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
231   fi
232
233   CFLAGS="$OLD_CFLAGS"
234 fi
235
236 # --------------------- #
237 # Checks for programs.  #
238 # --------------------- #
239
240 AC_PROG_AWK
241 AC_PROG_INSTALL
242 AC_PROG_LN_S
243 AC_PROG_RANLIB
244 AC_PROG_YACC
245
246 AC_CHECK_TOOL(AR, ar)
247 AC_CHECK_TOOL(DLLTOOL, dlltool)
248 AC_CHECK_TOOL(WINDRES, windres)
249
250 # Needed for GNU/Hurd.
251 AC_CHECK_TOOL(MIG, mig)
252
253 # ---------------------- #
254 # Checks for libraries.  #
255 # ---------------------- #
256
257 # We might need to link with -lm; most simulators need it.
258 AC_CHECK_LIB(m, main)
259
260 # We need to link with -lw to get `wctype' on Solaris before Solaris
261 # 2.6.  Solaris 2.6 and beyond have this function in libc, and have a
262 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
263 # is known to have this problem).  Therefore we avoid libw if we can.
264 AC_CHECK_FUNC(wctype, [],
265   [AC_CHECK_LIB(w, wctype)])
266
267 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
268 AC_SEARCH_LIBS(socketpair, socket)
269
270 # Since GDB uses Readline, we need termcap functionality, so we need
271 # to find a library that provides that.  When GDB is configured with
272 # --enable-tui, we need full curses functionality.
273 #
274 # FIXME: kettenis/20030102: We seem to prefer HP curses (Hcurses) over
275 # Xcurses on HP-UX; see the `-D__HP_CURSES' in the relevant host
276 # Makefile fragments.  That's why we need to have `Hcurses' before
277 # `curses'.  I don't see why we should use HP curses if a more
278 # standard curses is available, except that according to HP's
279 # documentation one needs to compile `-D_XOPEN_SOURCE_EXTENDED' on
280 # HP-UX 10.10 and 10.20.
281
282 if test "$need_curses" = yes; then
283   AC_SEARCH_LIBS(initscr, [ncurses Hcurses curses], [],
284     [AC_MSG_ERROR([no curses library found])])
285 fi
286
287 case $host_os in
288   cygwin*)
289     if test -d $srcdir/libtermcap; then
290       LIBS="../libtermcap/libtermcap.a $LIBS"
291       ac_cv_search_tgetent="../libtermcap/libtermcap.a"
292     fi ;;
293   go32*)
294     # ??? Is this really true?
295     ac_cv_search_tgetent="none required"
296     ;;
297   aix*)
298     # Readline prefers curses over termcap on AIX.
299     # ??? Why?
300     AC_SEARCH_LIBS(tgetent, [tinfo ncurses curses termcap])
301     ;;
302 esac
303
304 # Note: We used to check for libtermlib and libterminfo too, but
305 # Readline doesn't, so I think we're safe with leaving them out.
306 AC_SEARCH_LIBS(tgetent, [termcap tinfo ncurses Hcurses curses])
307
308 if test "$ac_cv_search_tgetent" = no; then
309   AC_MSG_ERROR([no termcap library found])
310 fi
311
312 # ------------------------- #
313 # Checks for header files.  #
314 # ------------------------- #
315
316 AC_HEADER_DIRENT
317 AC_HEADER_STAT
318 AC_HEADER_STDC
319 AC_CHECK_HEADERS(link.h)
320 AC_CHECK_HEADERS(nlist.h)
321 AC_CHECK_HEADERS(poll.h sys/poll.h)
322 AC_CHECK_HEADERS(proc_service.h thread_db.h)
323 AC_CHECK_HEADERS(stddef.h)
324 AC_CHECK_HEADERS(stdlib.h)
325 AC_CHECK_HEADERS(stdint.h)
326 AC_CHECK_HEADERS(string.h memory.h strings.h)
327 AC_CHECK_HEADERS(sys/fault.h)
328 AC_CHECK_HEADERS(sys/file.h)
329 AC_CHECK_HEADERS(sys/filio.h)
330 AC_CHECK_HEADERS(sys/ioctl.h)
331 AC_CHECK_HEADERS(sys/param.h)
332 AC_CHECK_HEADERS(sys/proc.h)
333 AC_CHECK_HEADERS(sys/procfs.h)
334 AC_CHECK_HEADERS(sys/ptrace.h ptrace.h)
335 AC_CHECK_HEADERS(sys/reg.h sys/debugreg.h)
336 AC_CHECK_HEADERS(sys/select.h)
337 AC_CHECK_HEADERS(sys/syscall.h)
338 AC_CHECK_HEADERS(sys/user.h)
339 AC_CHECK_HEADERS(sys/wait.h wait.h)
340 AC_CHECK_HEADERS(termios.h termio.h sgtty.h)
341 AC_CHECK_HEADERS(unistd.h)
342
343 # On Solaris 2.[78], we need to define _MSE_INT_H to avoid a clash
344 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
345 # think that we don't have <curses.h> if we're using GCC.
346 case $host_os in
347   solaris2.[[78]])
348     if test "$GCC" = yes; then
349       AC_DEFINE(_MSE_INT_H, 1,
350         [[Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
351    Solaris 2.[78] when using GCC. ]])
352     fi ;;
353 esac
354 AC_CHECK_HEADERS(curses.h ncurses.h term.h)
355
356 # FIXME: kettenis/20030102: In most cases we include these
357 # unconditionally, so what's the point in checking these?
358 AC_CHECK_HEADERS(ctype.h time.h)
359
360 # ------------------------- #
361 # Checks for declarations.  #
362 # ------------------------- #
363
364 gcc_AC_CHECK_DECLS(getopt)
365
366 # ------------------ #
367 # Checks for types.  #
368 # ------------------ #
369
370 AC_TYPE_SIGNAL
371
372 # ------------------------------------- #
373 # Checks for compiler characteristics.  #
374 # ------------------------------------- #
375
376 AC_C_CONST
377 AC_C_INLINE
378
379 # ------------------------------ #
380 # Checks for library functions.  #
381 # ------------------------------ #
382
383 AC_FUNC_ALLOCA
384 AC_FUNC_MMAP
385 AC_FUNC_VFORK
386 AC_CHECK_FUNCS(canonicalize_file_name realpath)
387 AC_CHECK_FUNCS(poll)
388 AC_CHECK_FUNCS(pread64)
389 AC_CHECK_FUNCS(sbrk)
390 AC_CHECK_FUNCS(setpgid setpgrp)
391 AC_CHECK_FUNCS(sigaction sigprocmask sigsetmask)
392 AC_CHECK_FUNCS(socketpair)
393 AC_CHECK_FUNCS(syscall)
394
395 dnl AC_FUNC_SETPGRP does not work when cross compiling
396 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
397 if test "$cross_compiling" = no; then
398   AC_FUNC_SETPGRP
399 else
400   AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
401     [AC_TRY_COMPILE([
402 #include <unistd.h>
403 ], [
404   if (setpgrp(1,1) == -1)
405     exit (0);
406   else
407     exit (1);
408 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
409 if test $ac_cv_func_setpgrp_void = yes; then
410   AC_DEFINE(SETPGRP_VOID, 1)
411 fi
412 fi
413
414 # Check if sigsetjmp is available.  Using AC_CHECK_FUNCS won't do
415 # since sigsetjmp might only be defined as a macro.
416 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
417 [AC_TRY_COMPILE([
418 #include <setjmp.h>
419 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
420 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
421 if test $gdb_cv_func_sigsetjmp = yes; then
422   AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
423 fi
424
425 # Assume we'll default to using the included libiberty regex.
426 gdb_use_included_regex=yes
427
428 # However, if the system regex is GNU regex, then default to *not*
429 # using the included regex.
430 AC_CACHE_CHECK(
431   [for GNU regex],
432   [gdb_cv_have_gnu_regex],
433   [AC_TRY_COMPILE(
434     [#include <gnu-versions.h>],
435     [#define REGEX_INTERFACE_VERSION 1
436 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
437 # error "Version mismatch"
438 #endif],
439     gdb_cv_have_gnu_regex=yes,
440     gdb_cv_have_gnu_regex=no)])
441 if test $gdb_cv_have_gnu_regex = yes; then
442   gdb_use_included_regex=no
443 fi
444
445 AC_ARG_WITH(included-regex,
446   [  --without-included-regex don't use included regex; this is the default
447                           on systems with version 2 of the GNU C library
448                           (use with caution on other system)],
449   gdb_with_regex=$withval,
450   gdb_with_regex=$gdb_use_included_regex)
451 if test "$gdb_with_regex" = yes; then
452   AC_DEFINE(USE_INCLUDED_REGEX, 1,
453     [Define to 1 if the regex included in libiberty should be used.])
454 fi
455
456 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
457 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
458 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
459 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
460 gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
461 if test $gdb_cv_struct_reg_r_fs = yes; then
462   AC_DEFINE(HAVE_STRUCT_REG_R_FS)
463 fi
464 AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
465 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
466 gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
467 if test $gdb_cv_struct_reg_r_gs = yes; then
468   AC_DEFINE(HAVE_STRUCT_REG_R_GS)
469 fi
470
471 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
472 AC_MSG_CHECKING(for PTRACE_GETREGS)
473 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
474 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
475                 [PTRACE_GETREGS;],
476                 [gdb_cv_have_ptrace_getregs=yes],
477                 [gdb_cv_have_ptrace_getregs=no])])
478 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
479 if test $gdb_cv_have_ptrace_getregs = yes; then
480   AC_DEFINE(HAVE_PTRACE_GETREGS)
481 fi
482
483 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
484 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
485 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
486 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
487                 [PTRACE_GETFPXREGS;],
488                 [gdb_cv_have_ptrace_getfpxregs=yes],
489                 [gdb_cv_have_ptrace_getfpxregs=no])])
490 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
491 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
492   AC_DEFINE(HAVE_PTRACE_GETFPXREGS)
493 fi
494
495 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
496 AC_MSG_CHECKING(for PT_GETDBREGS)
497 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
498 [AC_TRY_COMPILE([#include <sys/types.h>
499 #include <sys/ptrace.h>],
500                 [PT_GETDBREGS;],
501                 [gdb_cv_have_pt_getdbregs=yes],
502                 [gdb_cv_have_pt_getdbregs=no])])
503 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
504 if test $gdb_cv_have_pt_getdbregs = yes; then
505   AC_DEFINE(HAVE_PT_GETDBREGS)
506 fi
507
508 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
509 AC_MSG_CHECKING(for PT_GETXMMREGS)
510 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
511 [AC_TRY_COMPILE([#include <sys/types.h>
512 #include <sys/ptrace.h>],
513                 [PT_GETXMMREGS;],
514                 [gdb_cv_have_pt_getxmmregs=yes],
515                 [gdb_cv_have_pt_getxmmregs=no])])
516 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
517 if test $gdb_cv_have_pt_getxmmregs = yes; then
518   AC_DEFINE(HAVE_PT_GETXMMREGS)
519 fi
520
521 # See if stdint.h provides the uintptr_t type.
522 # Autoconf 2.5X has an improved AC_CHECK_TYPE which will simplify this.
523 AC_CACHE_CHECK([for uintptr_t in stdint.h], gdb_cv_have_uintptr_t,
524   [AC_TRY_COMPILE(
525     [#include <stdint.h>],
526     [uintptr_t foo = 0;],
527     gdb_cv_have_uintptr_t=yes,
528     gdb_cv_have_uintptr_t=no)])
529 if test $gdb_cv_have_uintptr_t = yes; then
530   AC_DEFINE(HAVE_UINTPTR_T, 1, [Define if <stdint.h> provides the uintptr_t type.])
531 fi
532
533 BFD_NEED_DECLARATION(malloc)
534 BFD_NEED_DECLARATION(realloc)
535 BFD_NEED_DECLARATION(free)
536 BFD_NEED_DECLARATION(strerror)
537 BFD_NEED_DECLARATION(strdup)
538 BFD_NEED_DECLARATION(strstr)
539 BFD_NEED_DECLARATION(canonicalize_file_name)
540
541 # The following save_state_t checkery is only necessary for HPUX 
542 # versions earlier than 10.20.  When those fade from memory, this 
543 # could be expunged. --jsm 1999-03-22
544
545 AC_MSG_CHECKING(for HPUX save_state structure)
546 AC_EGREP_HEADER(save_state_t, machine/save_state.h, 
547                 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
548 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
549                 gdb_cv_hpux_sswide=no)
550 if test $gdb_cv_hpux_savestate = yes
551 then
552   AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
553 fi
554 if test $gdb_cv_hpux_sswide = yes
555 then
556   AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
557 fi
558 AC_MSG_RESULT($gdb_cv_hpux_sswide)
559
560
561 # If we are configured native on GNU/Linux, work around problems with
562 # sys/procfs.h
563 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
564
565 if test "${target}" = "${host}"; then
566   case "${host}" in
567   i[[3456]]86-*-linux*)
568         AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
569         AC_DEFINE(sys_quotactl)
570         ;;
571   ia64-*-aix*)
572       AC_DEFINE(NEW_PROC_API)
573       ;;
574   *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
575       AC_DEFINE(NEW_PROC_API)
576       ;;
577   *-*-solaris2.[[678]])
578       AC_DEFINE(NEW_PROC_API)
579       ;;
580   esac
581 fi
582
583 if test "$ac_cv_header_sys_procfs_h" = yes; then
584   BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
585   BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
586   BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
587   BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
588   BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
589   BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
590   BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
591   BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
592   BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
593   BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
594   BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
595   BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
596   BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
597   BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
598
599
600   dnl Check for broken prfpregset_t type
601
602   dnl For Linux/i386, glibc 2.1.3 was released with a bogus
603   dnl prfpregset_t type (it's a typedef for the pointer to a struct
604   dnl instead of the struct itself).  We detect this here, and work
605   dnl around it in gdb_proc_service.h.
606
607   if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
608     AC_MSG_CHECKING(whether prfpregset_t type is broken)
609     AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
610       [AC_TRY_RUN([#include <sys/procfs.h>
611        int main ()
612        {
613          if (sizeof (prfpregset_t) == sizeof (void *))
614            return 1;
615          return 0;
616        }],
617        gdb_cv_prfpregset_t_broken=no,
618        gdb_cv_prfpregset_t_broken=yes,
619        gdb_cv_prfpregset_t_broken=yes)])
620     AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
621     if test $gdb_cv_prfpregset_t_broken = yes; then
622       AC_DEFINE(PRFPREGSET_T_BROKEN)
623     fi
624   fi
625
626   dnl Check for PIOCSET ioctl entry 
627
628   AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
629   AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
630   [AC_TRY_COMPILE([#include <unistd.h>
631 #include <sys/types.h>
632 #include <sys/procfs.h>
633 ], [
634     int dummy;;
635     dummy = ioctl(0, PIOCSET, &dummy);
636   ],
637   gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
638   AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
639   if test $gdb_cv_have_procfs_piocset = yes; then
640     AC_DEFINE(HAVE_PROCFS_PIOCSET)
641   fi
642 fi
643
644 dnl For native ports (host == target), check to see what kind of
645 dnl legacy link.h support is needed.  (See solib-legacy.c.)
646 if test ${host} = ${target} ; then
647   dnl Check for struct link_map with l_ members which are indicative
648   dnl of SVR4-like shared libraries
649
650   AC_MSG_CHECKING(for member l_addr in struct link_map)
651   AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
652     [AC_TRY_COMPILE([#include <link.h>],
653                     [struct link_map lm; (void) lm.l_addr;],
654                     gdb_cv_have_struct_link_map_with_l_members=yes,
655                     gdb_cv_have_struct_link_map_with_l_members=no)])
656   AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
657   if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
658     AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS)
659   fi
660
661   dnl Check for struct link_map with lm_ members which are indicative
662   dnl of SunOS-like shared libraries
663
664   AC_MSG_CHECKING(for member lm_addr in struct link_map)
665   AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
666     [AC_TRY_COMPILE([#include <sys/types.h>
667 #include <link.h>],
668                     [struct link_map lm; (void) lm.lm_addr;],
669                     gdb_cv_have_struct_link_map_with_lm_members=yes,
670                     gdb_cv_have_struct_link_map_with_lm_members=no)])
671   AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
672   if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
673     AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS)
674   fi
675
676   dnl Check for struct so_map with som_ members which are found on 
677   dnl some *BSD systems.
678
679   AC_MSG_CHECKING(for member som_addr in struct so_map)
680   AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
681     [AC_TRY_COMPILE([#include <sys/types.h>
682 #ifdef HAVE_NLIST_H
683 #include <nlist.h>
684 #endif
685 #include <link.h>],
686                     [struct so_map lm; (void) lm.som_addr;],
687                     gdb_cv_have_struct_so_map_with_som_members=yes,
688                     gdb_cv_have_struct_so_map_with_som_members=no)])
689   AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
690   if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
691     AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS)
692   fi
693
694   dnl Check for struct link_map32 type, which allows a 64-bit Solaris
695   dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
696
697   AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
698   AC_CACHE_VAL(gdb_cv_have_struct_link_map32, 
699     [AC_TRY_COMPILE([#define _SYSCALL32
700 #include <sys/link.h>], [struct link_map32 l;],
701      gdb_cv_have_struct_link_map32=yes,
702      gdb_cv_have_struct_link_map32=no)])
703   AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
704   if test $gdb_cv_have_struct_link_map32 = yes; then
705     AC_DEFINE(HAVE_STRUCT_LINK_MAP32)
706     AC_DEFINE(_SYSCALL32)
707   fi
708 fi
709
710 dnl See if compiler supports "long long" type.
711
712 AC_MSG_CHECKING(for long long support in compiler)
713 AC_CACHE_VAL(gdb_cv_c_long_long,
714 [AC_TRY_COMPILE(, [
715   extern long long foo;
716   switch (foo & 2) { case 0: return 1; }
717 ],
718 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
719 AC_MSG_RESULT($gdb_cv_c_long_long)
720 if test $gdb_cv_c_long_long = yes; then
721   AC_DEFINE(CC_HAS_LONG_LONG)
722 fi
723
724 dnl See if the compiler and runtime support printing long long
725
726 AC_MSG_CHECKING(for long long support in printf)
727 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
728 [AC_TRY_RUN([
729 int main () {
730   char buf[32];
731   long long l = 0;
732   l = (l << 16) + 0x0123;
733   l = (l << 16) + 0x4567;
734   l = (l << 16) + 0x89ab;
735   l = (l << 16) + 0xcdef;
736   sprintf (buf, "0x%016llx", l);
737   return (strcmp ("0x0123456789abcdef", buf));
738 }],
739 gdb_cv_printf_has_long_long=yes,
740 gdb_cv_printf_has_long_long=no,
741 gdb_cv_printf_has_long_long=no)])
742 if test $gdb_cv_printf_has_long_long = yes; then
743   AC_DEFINE(PRINTF_HAS_LONG_LONG)
744 fi
745 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
746
747 dnl See if compiler supports "long double" type.  Can't use AC_C_LONG_DOUBLE
748 dnl because autoconf complains about cross-compilation issues.  However, this
749 dnl code uses the same variables as the macro for compatibility.
750
751 AC_MSG_CHECKING(for long double support in compiler)
752 AC_CACHE_VAL(ac_cv_c_long_double,
753 [AC_TRY_COMPILE(, [long double foo;],
754 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
755 AC_MSG_RESULT($ac_cv_c_long_double)
756 if test $ac_cv_c_long_double = yes; then
757   AC_DEFINE(HAVE_LONG_DOUBLE)
758 fi
759
760 dnl See if the compiler and runtime support printing long doubles
761
762 AC_MSG_CHECKING(for long double support in printf)
763 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
764 [AC_TRY_RUN([
765 int main () {
766   char buf[16];
767   long double f = 3.141592653;
768   sprintf (buf, "%Lg", f);
769   return (strncmp ("3.14159", buf, 7));
770 }],
771 gdb_cv_printf_has_long_double=yes,
772 gdb_cv_printf_has_long_double=no,
773 gdb_cv_printf_has_long_double=no)])
774 if test $gdb_cv_printf_has_long_double = yes; then
775   AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
776 fi
777 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
778
779 dnl See if the compiler and runtime support scanning long doubles
780
781 AC_MSG_CHECKING(for long double support in scanf)
782 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
783 [AC_TRY_RUN([
784 int main () {
785   char *buf = "3.141592653";
786   long double f = 0;
787   sscanf (buf, "%Lg", &f);
788   return !(f > 3.14159 && f < 3.14160);
789 }],
790 gdb_cv_scanf_has_long_double=yes,
791 gdb_cv_scanf_has_long_double=no,
792 gdb_cv_scanf_has_long_double=no)])
793 if test $gdb_cv_scanf_has_long_double = yes; then
794   AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
795 fi
796 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
797
798 case ${host_os} in
799 aix*)
800   AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
801     SAVE_LDFLAGS=$LDFLAGS
802
803     case $GCC in
804     yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
805     *) gdb_cv_bigtoc=-bbigtoc ;;
806     esac
807
808     LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
809     AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
810   ])
811   CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
812   ;;
813 esac
814
815
816 dnl For certain native configurations, we need to check whether thread
817 dnl support can be built in or not.
818 dnl
819 dnl Note that we only want this if we are both native (host == target),
820 dnl and not doing a canadian cross build (build == host).
821
822 if test ${build} = ${host} -a ${host} = ${target} ; then
823    case ${host_os} in
824    hpux*)
825       AC_MSG_CHECKING(for HPUX/OSF thread support)
826       if test -f /usr/include/dce/cma_config.h ; then
827          if test "$GCC" = "yes" ; then
828             AC_MSG_RESULT(yes)
829             AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
830             CONFIG_LIB_OBS="${CONFIG_LIB_OBS} hpux-thread.o"
831             CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
832          else
833             AC_MSG_RESULT(no (suppressed because you are not using GCC))
834          fi
835       else
836          AC_MSG_RESULT(no)
837       fi
838       ;;
839    solaris*)
840       # See if thread_db library is around for Solaris thread debugging.
841       # Note that we must explicitly test for version 1 of the library
842       # because version 0 (present on Solaris 2.4 or earlier) doesn't have
843       # the same API.
844       AC_MSG_CHECKING(for Solaris thread debugging library)
845       if test -f /usr/lib/libthread_db.so.1 ; then
846          AC_MSG_RESULT(yes)
847          AC_DEFINE(HAVE_THREAD_DB_LIB)
848          CONFIG_LIB_OBS="${CONFIG_LIB_OBS} sol-thread.o"
849          CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
850          AC_CHECK_LIB(dl, dlopen)
851          if test "$GCC" = "yes" ; then
852             # The GNU linker requires the -export-dynamic option to make
853             # all symbols visible in the dynamic symbol table.
854             hold_ldflags=$LDFLAGS
855             AC_MSG_CHECKING(for the ld -export-dynamic flag)
856             LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
857             AC_TRY_LINK(, [int i;], found=yes, found=no)
858             LDFLAGS=$hold_ldflags
859             AC_MSG_RESULT($found)
860             if test $found = yes; then
861                CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
862             fi
863          fi
864          # Sun randomly tweaked the prototypes in <proc_service.h>
865          # at one point.
866          AC_MSG_CHECKING(if <proc_service.h> is old)
867          AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
868             AC_TRY_COMPILE([
869                 #include <proc_service.h>
870                 ps_err_e ps_pdwrite
871                     (struct ps_prochandle*, psaddr_t, const void*, size_t);
872             ],, gdb_cv_proc_service_is_old=no,
873                 gdb_cv_proc_service_is_old=yes)
874          ])
875          AC_MSG_RESULT($gdb_cv_proc_service_is_old)
876          if test $gdb_cv_proc_service_is_old = yes; then
877             AC_DEFINE(PROC_SERVICE_IS_OLD)
878          fi
879       else
880          AC_MSG_RESULT(no)
881       fi
882       ;;
883    aix*)
884       AC_MSG_CHECKING(for AiX thread debugging library)
885       AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
886                    [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
887                                    [#ifndef PTHDB_VERSION_3
888                                     #error
889                                     #endif],
890                                    gdb_cv_have_aix_thread_debug=yes,
891                                    gdb_cv_have_aix_thread_debug=no)])
892       AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
893       if test $gdb_cv_have_aix_thread_debug = yes; then
894          CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
895          CONFIG_LIB_OBS="${CONFIG_LIB_OBS} aix-thread.o"
896          CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
897       fi
898       ;;
899    esac
900    AC_SUBST(CONFIG_LDFLAGS)
901 fi
902
903 dnl See if we have a thread_db header file that has TD_NOTALLOC.
904 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
905    AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
906                   gdb_cv_thread_db_h_has_td_notalloc,
907      AC_TRY_COMPILE(
908        [#include <thread_db.h>],
909        [int i = TD_NOTALLOC;],
910        gdb_cv_thread_db_h_has_td_notalloc=yes,
911        gdb_cv_thread_db_h_has_td_notalloc=no
912      )
913    )
914 fi
915 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
916   AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
917             [Define if <thread_db.h> has the TD_NOTALLOC error code.])
918 fi
919
920 dnl See if we have a sys/syscall header file that has __NR_tkill.
921 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
922    AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
923                   gdb_cv_sys_syscall_h_has_tkill,
924      AC_TRY_COMPILE(
925        [#include <sys/syscall.h>],
926        [int i = __NR_tkill;],
927        gdb_cv_sys_syscall_h_has_tkill=yes,
928        gdb_cv_sys_syscall_h_has_tkill=no
929      )
930    )
931 fi
932 dnl See if we can issue tkill syscall.
933 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
934   AC_DEFINE(HAVE_TKILL_SYSCALL, 1,
935             [Define if we can use the tkill syscall.])
936 fi
937
938 dnl Handle optional features that can be enabled.
939
940 AC_ARG_WITH(sysroot,
941 [  --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
942 [
943  case ${with_sysroot} in
944  yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
945  *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
946  esac
947
948  TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
949
950  if test "x$exec_prefix" = xNONE; then
951   if test "x$prefix" = xNONE; then
952    test_prefix=/usr/local
953   else
954    test_prefix=$prefix
955   fi
956  else
957   test_prefix=$exec_prefix
958  fi
959  case ${TARGET_SYSTEM_ROOT} in
960  "${test_prefix}"|"${test_prefix}/"*|\
961  '${exec_prefix}'|'${exec_prefix}/'*)
962    t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
963    TARGET_SYSTEM_ROOT_DEFINE="$t"
964    ;;
965  esac
966 ], [
967  TARGET_SYSTEM_ROOT=
968  TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
969 ])
970 AC_SUBST(TARGET_SYSTEM_ROOT)
971 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
972
973 # NOTE: Don't add -Wall or -Wunused, they both include
974 # -Wunused-parameter which reports bogus warnings.
975 # NOTE: If you add to this list, remember to update
976 # gdb/doc/gdbint.texinfo.
977 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
978 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized -Wformat-nonliteral"
979 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
980 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
981 # -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
982 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
983 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
984 # -Woverloaded-virtual -Winline -Werror"
985 AC_ARG_ENABLE(build-warnings,
986 [  --enable-build-warnings Enable build-time compiler warnings if gcc is used],
987 [case "${enableval}" in
988   yes)  ;;
989   no)   build_warnings="-w";;
990   ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
991         build_warnings="${build_warnings} ${t}";;
992   *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
993         build_warnings="${t} ${build_warnings}";;
994   *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
995 esac
996 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
997   echo "Setting compiler warning flags = $build_warnings" 6>&1
998 fi])dnl
999 AC_ARG_ENABLE(gdb-build-warnings,
1000 [  --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
1001 [case "${enableval}" in
1002   yes)  ;;
1003   no)   build_warnings="-w";;
1004   ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
1005         build_warnings="${build_warnings} ${t}";;
1006   *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
1007         build_warnings="${t} ${build_warnings}";;
1008   *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1009 esac
1010 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1011   echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1012 fi])dnl
1013 WARN_CFLAGS=""
1014 WERROR_CFLAGS=""
1015 if test "x${build_warnings}" != x -a "x$GCC" = xyes
1016 then
1017     AC_MSG_CHECKING(compiler warning flags)
1018     # Separate out the -Werror flag as some files just cannot be
1019     # compiled with it enabled.
1020     for w in ${build_warnings}; do
1021         case $w in
1022         -Werr*) WERROR_CFLAGS=-Werror ;;
1023         *) # Check that GCC accepts it
1024             saved_CFLAGS="$CFLAGS"
1025             CFLAGS="$CFLAGS $w"
1026             AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1027             CFLAGS="$saved_CFLAGS"
1028         esac
1029     done
1030     AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
1031 fi
1032 AC_SUBST(WARN_CFLAGS)
1033 AC_SUBST(WERROR_CFLAGS)
1034
1035 MMALLOC_CFLAGS=
1036 MMALLOC=
1037 AC_SUBST(MMALLOC_CFLAGS)
1038 AC_SUBST(MMALLOC)
1039
1040 AC_ARG_WITH(mmalloc,
1041 [  --with-mmalloc          Use memory mapped malloc package],
1042 [case "${withval}" in
1043   yes)  want_mmalloc=true ;;
1044   no)   want_mmalloc=false;;
1045   *)    AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
1046 esac],[want_mmalloc=false])dnl
1047
1048 if test x$want_mmalloc = xtrue; then
1049    AC_DEFINE(USE_MMALLOC)
1050    AC_DEFINE(MMCHECK_FORCE)
1051    MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
1052    MMALLOC='../mmalloc/libmmalloc.a'
1053 fi
1054
1055 # In the Cygwin environment, we need some additional flags.
1056 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1057 [AC_EGREP_CPP(lose, [
1058 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1059 lose
1060 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1061
1062
1063 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1064 SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
1065 case ${host} in
1066   *go32* ) SER_HARDWIRE=ser-go32.o ;;
1067   *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1068 esac
1069 AC_SUBST(SER_HARDWIRE)
1070
1071 # libreadline needs libuser32.a in a cygwin environment
1072 WIN32LIBS=
1073 if test x$gdb_cv_os_cygwin = xyes; then
1074     WIN32LIBS="-luser32"
1075     case "${target}" in
1076         *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1077         ;;
1078     esac
1079 fi
1080 AC_SUBST(WIN32LIBS)
1081
1082 LIBGUI="../libgui/src/libgui.a"
1083 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1084 AC_SUBST(LIBGUI)
1085 AC_SUBST(GUI_CFLAGS_X)
1086
1087 WIN32LDAPP=
1088 AC_SUBST(WIN32LIBS)
1089 AC_SUBST(WIN32LDAPP)
1090
1091 configdir="unix"
1092
1093 GDBTKLIBS=
1094 if test "${enable_gdbtk}" = "yes"; then
1095
1096     # Gdbtk must have an absolute path to srcdir in order to run
1097     # properly when not installed.
1098     here=`pwd`
1099     cd ${srcdir}
1100     GDBTK_SRC_DIR=`pwd`
1101     cd $here
1102
1103     CY_AC_PATH_TCLCONFIG
1104     if test -z "${no_tcl}"; then
1105         CY_AC_LOAD_TCLCONFIG
1106         CY_AC_PATH_TKCONFIG
1107
1108         # now look for Tcl library stuff
1109
1110         case "${host}" in
1111         *-*-cygwin*)
1112             tcldir=../tcl/win/
1113             ;;
1114         *)
1115             tcldir=../tcl/unix/
1116             ;;
1117         esac
1118
1119         TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1120
1121         # If $no_tk is nonempty, then we can't do Tk, and there is no
1122         # point to doing Tcl.
1123         if test -z "${no_tk}"; then
1124            CY_AC_LOAD_TKCONFIG
1125            CY_AC_PATH_TCLH
1126            CY_AC_PATH_TKH
1127            CY_AC_PATH_ITCLH
1128            CY_AC_PATH_ITKH
1129
1130
1131            # now look for Tk library stuff
1132
1133            case "${host}" in
1134            *-*-cygwin*)
1135                tkdir=../tk/win/
1136                ;;
1137            *)
1138                tkdir=../tk/unix/
1139                ;;
1140            esac
1141
1142            TK_DEPS="${tkdir}${TK_LIB_FILE}"
1143
1144            # now look for Itcl library stuff
1145
1146            CY_AC_PATH_ITCLCONFIG
1147            if test -z "${no_itcl}"; then
1148              CY_AC_LOAD_ITCLCONFIG 
1149
1150              ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1151              ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1152            fi
1153
1154            
1155            # now look for Itk library stuff
1156            CY_AC_PATH_ITKCONFIG
1157            if test -z "${no_itcl}"; then
1158              CY_AC_LOAD_ITKCONFIG
1159
1160              ITKLIB="${ITK_BUILD_LIB_SPEC}"
1161              ITK_DEPS="${ITK_LIB_FULL_PATH}"
1162            fi
1163
1164            ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1165            # Tcl/Tk 8.1 require -fwritable strings.  I don't
1166            # know whether 8.2 will or not, but I bet it will.
1167            # I don't have to worry about 7.x since we don't support it.
1168            GDBTK_CFLAGS=""
1169            if test "$GCC" = "yes"; then
1170                if test "$TCL_VERSION" != "8.0" ; then
1171                    GDBTK_CFLAGS="-fwritable-strings"
1172                fi
1173            fi
1174
1175            # Include some libraries that Tcl and Tk want.
1176            TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1177            # Yes, the ordering seems wrong here.  But it isn't.
1178            # TK_LIBS is the list of libraries that need to be linked
1179            # after Tcl/Tk.  Note that this isn't put into LIBS.  If it
1180            # were in LIBS then any link tests after this point would
1181            # try to include things like `$(LIBGUI)', which wouldn't work.
1182            GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1183
1184            CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1185            CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1186            CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1187            CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
1188            CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
1189            CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
1190            CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
1191            CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
1192
1193            if test x$gdb_cv_os_cygwin = xyes; then
1194               WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1195               WIN32LDAPP="-Wl,--subsystem,console"
1196               CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1197            fi
1198         fi
1199     fi
1200
1201     configdirs="${configdirs} gdbtk"
1202 fi
1203
1204 AC_SUBST(X_CFLAGS)
1205 AC_SUBST(X_LDFLAGS)
1206 AC_SUBST(X_LIBS)
1207 AC_SUBST(TCL_DEPS)
1208 AC_SUBST(TK_DEPS)
1209 AC_SUBST(ITCLLIB)
1210 AC_SUBST(ITCL_DEPS)
1211 AC_SUBST(ITKLIB)
1212 AC_SUBST(ITK_DEPS)
1213 AC_SUBST(GDBTKLIBS)
1214 AC_SUBST(GDBTK_CFLAGS)
1215 AC_SUBST(GDBTK_SRC_DIR)
1216
1217 AC_PATH_X
1218
1219  
1220 # Unlike the sim directory, whether a simulator is linked is controlled by 
1221 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.  
1222 # This code just checks for a few cases where we'd like to ignore those
1223 # definitions, even when they're present in the '.mt' file.  These cases
1224 # are when --disable-sim is specified, or if the simulator directory is
1225 # not part of the source tree.
1226 #
1227 AC_ARG_ENABLE(sim,
1228 [  --enable-sim            Link gdb with simulator],
1229 [echo "enable_sim = $enable_sim";
1230  echo "enableval = ${enableval}";
1231  case "${enableval}" in
1232   yes) ignore_sim=false ;;
1233   no)  ignore_sim=true ;;
1234   *)   ignore_sim=false ;;
1235  esac],
1236 [ignore_sim=false])
1237
1238 if test ! -d "${srcdir}/../sim"; then
1239   ignore_sim=true
1240 fi
1241
1242 if test "${ignore_sim}" = "true"; then
1243     IGNORE_SIM="SIM="
1244     IGNORE_SIM_OBS="SIM_OBS="
1245 else
1246     IGNORE_SIM=""
1247     IGNORE_SIM_OBS=""
1248     AC_DEFINE(WITH_SIM)
1249 fi
1250 AC_SUBST(IGNORE_SIM)
1251 AC_SUBST(IGNORE_SIM_OBS)
1252
1253 AC_SUBST(ENABLE_CFLAGS)
1254 AC_SUBST(PROFILE_CFLAGS)
1255
1256 AC_SUBST(CONFIG_OBS)
1257 AC_SUBST(CONFIG_LIB_OBS)
1258 AC_SUBST(CONFIG_DEPS)
1259 AC_SUBST(CONFIG_SRCS)
1260 AC_SUBST(CONFIG_INITS)
1261 AC_SUBST(CONFIG_ALL)
1262 AC_SUBST(CONFIG_CLEAN)
1263 AC_SUBST(CONFIG_INSTALL)
1264 AC_SUBST(CONFIG_UNINSTALL)
1265
1266 # target_subdir is used by the testsuite to find the target libraries.
1267 target_subdir=
1268 if test "${host}" != "${target}"; then
1269     target_subdir="${target_alias}/"
1270 fi
1271 AC_SUBST(target_subdir)
1272
1273 frags=
1274 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1275 if test ! -f ${host_makefile_frag}; then
1276     # When building a native debuger the .mh file containing things
1277     # like NATDEPFILES is needed.  Cross debuggers don't need .mh
1278     # since it no longer contains anything useful.
1279     if test "${target}" = "${host}"; then
1280         AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1281     else
1282         host_makefile_frag=/dev/null
1283     fi
1284 fi
1285 frags="$frags $host_makefile_frag"
1286
1287 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1288 if test ! -f ${target_makefile_frag}; then
1289 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1290 fi
1291 frags="$frags $target_makefile_frag"
1292
1293 AC_SUBST_FILE(host_makefile_frag)
1294 AC_SUBST_FILE(target_makefile_frag)
1295 AC_SUBST(frags)
1296
1297 changequote(,)dnl
1298 hostfile=`sed -n '
1299 s/XM_FILE[      ]*=[    ]*\([^  ]*\)/\1/p
1300 ' ${host_makefile_frag}`
1301
1302 targetfile=`sed -n '
1303 s/TM_FILE[      ]*=[    ]*\([^  ]*\)/\1/p
1304 ' ${target_makefile_frag}`
1305
1306 GDB_MULTI_ARCH=`sed -n '
1307 s/GDB_MULTI_ARCH[       ]*=[    ]*\([^  ]*\)[   ]*/\1/p
1308 ' ${target_makefile_frag}`
1309
1310 if test "${target}" = "${host}"; then
1311 # We pick this up from the host configuration file (.mh) because we
1312 # do not have a native configuration Makefile fragment.
1313 nativefile=`sed -n '
1314 s/NAT_FILE[     ]*=[    ]*\([^  ]*\)/\1/p
1315 ' ${host_makefile_frag}`
1316 fi
1317 changequote([,])
1318
1319 # New targets should just set gdb_multi_arch=yes in configure.tgt.
1320 # Old targets being converted can either do that or set GDB_MULTI_ARCH
1321 # in the target specific makefile frag.  Eventually gdb_multi_arch=yes
1322 # will be the default.
1323 if test x"${GDB_MULTI_ARCH}" = x ; then
1324     case "${gdb_multi_arch}" in
1325     yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
1326     no ) GDB_MULTI_ARCH=0 ;;
1327     0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
1328     esac
1329 fi
1330 if test x"${GDB_MULTI_ARCH}" != x ; then
1331     AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
1332 fi
1333 # Warn the user when they use an old practice
1334 case "${GDB_MULTI_ARCH}" in
1335     "" ) ;;
1336     0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
1337         AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
1338     GDB_MULTI_ARCH_PURE )
1339         if test x"${targetfile}" != x ; then
1340             AC_MSG_WARN("GDB: Ignoring TM_FILE in ${target_makefile_frag}")
1341             targetfile=""
1342         fi ;;
1343     *)  AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
1344 esac
1345
1346 if test x"${gdb_osabi}" != x ; then
1347     AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
1348                        [Define to the default OS ABI for this configuration.])
1349 fi
1350
1351 # Enable multi-ice-gdb-server.
1352 AC_ARG_ENABLE(multi-ice,
1353 [  --enable-multi-ice      build the multi-ice-gdb-server],
1354   [case $enableval in
1355     yes | no)
1356       ;;
1357     *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
1358   esac])
1359 if test "x$enable_multi_ice" = xyes; then
1360   configdirs="$configdirs multi-ice"
1361 fi
1362
1363 # We only build gdbserver automatically if host and target are the same.
1364 if test "x$target" = "x$host"; then
1365   AC_MSG_CHECKING(whether gdbserver is supported on this host)
1366   if test "x$build_gdbserver" = xyes; then
1367     configdirs="$configdirs gdbserver"
1368     AC_MSG_RESULT(yes)
1369   else
1370     AC_MSG_RESULT(no)
1371   fi
1372 fi
1373
1374 AC_CONFIG_SUBDIRS($configdirs)
1375
1376 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1377 # (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1378 # version.
1379
1380 files=
1381 links=
1382
1383 rm -f xm.h
1384 xm_h=""
1385 if test "${hostfile}" != ""; then
1386     xm_h=xm.h
1387     GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1388     files="${files} ${GDB_XM_FILE}"
1389     links="${links} xm.h"
1390     AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
1391 fi
1392 AC_SUBST(xm_h)
1393
1394 rm -f tm.h
1395 tm_h=""
1396 if test "${targetfile}" != ""; then
1397     tm_h=tm.h
1398     GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1399     files="${files} ${GDB_TM_FILE}"
1400     links="${links} tm.h"
1401     AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
1402 fi
1403 AC_SUBST(tm_h)
1404
1405 rm -f nm.h
1406 nm_h=""
1407 if test "${nativefile}" != ""; then
1408     nm_h=nm.h
1409     GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1410     files="${files} ${GDB_NM_FILE}"
1411     links="${links} nm.h"
1412     AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
1413 fi
1414 AC_SUBST(nm_h)
1415
1416 AC_LINK_FILES($files, $links)
1417
1418 dnl Check for exe extension set on certain hosts (e.g. Win32)
1419 AC_EXEEXT
1420
1421 dnl  Detect the character set used by this host.
1422
1423 dnl  At the moment, we just assume it's ISO-8859-1 (which is a
1424 dnl  superset of ASCII containing the characters needed for French,
1425 dnl  German, Spanish, Italian, and possibly others), but if were
1426 dnl  *were* to support any host character sets other than ISO-8859-1,
1427 dnl  here's where we'd detect it.
1428 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1429           [Define to be a string naming the default host character set.])
1430
1431 AM_ICONV
1432
1433 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1434 [
1435 dnl Autoconf doesn't provide a mechanism for modifying definitions 
1436 dnl provided by makefile fragments.
1437 dnl
1438 if test "${nativefile}" = ""; then
1439         < Makefile \
1440         sed -e '/^NATDEPFILES[[         ]]*=.*\\$/,/[[^\\]]$/s/^/# /' \
1441             -e '/^NATDEPFILES[[         ]]*=/s/^/# /' \
1442         | sed -e '/^\(NATDEPFILES[[     ]]*[[+]]=[[     ]]*\)/s//# \1/' \
1443         > Makefile.tem
1444 mv -f Makefile.tem Makefile
1445 fi
1446
1447 changequote(,)dnl
1448 sed -e '/^TM_FILE[      ]*=/s,^TM_FILE[         ]*=[    ]*,&config/'"${gdb_target_cpu}"'/,
1449 /^XM_FILE[      ]*=/s,^XM_FILE[         ]*=[    ]*,&config/'"${gdb_host_cpu}"'/,
1450 /^NAT_FILE[     ]*=/s,^NAT_FILE[        ]*=[    ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1451 mv -f Makefile.tmp Makefile
1452 changequote([,])dnl
1453
1454
1455 case x$CONFIG_HEADERS in
1456 xconfig.h:config.in)
1457 echo > stamp-h ;;
1458 esac
1459 ],
1460 [
1461 gdb_host_cpu=$gdb_host_cpu
1462 gdb_target_cpu=$gdb_target_cpu
1463 nativefile=$nativefile
1464 ])
1465
1466 exit 0