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