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