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