* configure.in: Remove --with-cpu 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 AC_ARG_ENABLE(netrom,
862 [  --enable-netrom         Enable NetROM support],
863 [case "${enableval}" in
864 yes)    enable_netrom=yes ;;
865 no)     enable_netrom=no ;;
866 *)      AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
867 esac])
868
869 if test "${enable_netrom}" = "yes"; then
870         CONFIG_LIB_OBS="${CONFIG_LIB_OBS} remote-nrom.o" 
871         CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
872 fi
873
874
875 # NOTE: Don't add -Wall or -Wunused, they both include
876 # -Wunused-parameter which reports bogus warnings.
877 # NOTE: If you add to this list, remember to update
878 # gdb/doc/gdbint.texinfo.
879 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
880 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
881 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
882 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
883 # -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
884 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
885 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
886 # -Woverloaded-virtual -Winline -Werror"
887 AC_ARG_ENABLE(build-warnings,
888 [  --enable-build-warnings Enable 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 compiler warning flags = $build_warnings" 6>&1
900 fi])dnl
901 AC_ARG_ENABLE(gdb-build-warnings,
902 [  --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
903 [case "${enableval}" in
904   yes)  ;;
905   no)   build_warnings="-w";;
906   ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
907         build_warnings="${build_warnings} ${t}";;
908   *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
909         build_warnings="${t} ${build_warnings}";;
910   *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
911 esac
912 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
913   echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
914 fi])dnl
915 WARN_CFLAGS=""
916 WERROR_CFLAGS=""
917 if test "x${build_warnings}" != x -a "x$GCC" = xyes
918 then
919     AC_MSG_CHECKING(compiler warning flags)
920     # Separate out the -Werror flag as some files just cannot be
921     # compiled with it enabled.
922     for w in ${build_warnings}; do
923         case $w in
924         -Werr*) WERROR_CFLAGS=-Werror ;;
925         *) # Check that GCC accepts it
926             saved_CFLAGS="$CFLAGS"
927             CFLAGS="$CFLAGS $w"
928             AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
929             CFLAGS="$saved_CFLAGS"
930         esac
931     done
932     AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
933 fi
934 AC_SUBST(WARN_CFLAGS)
935 AC_SUBST(WERROR_CFLAGS)
936
937 MMALLOC_CFLAGS=
938 MMALLOC=
939 AC_SUBST(MMALLOC_CFLAGS)
940 AC_SUBST(MMALLOC)
941
942 AC_ARG_WITH(mmalloc,
943 [  --with-mmalloc          Use memory mapped malloc package],
944 [case "${withval}" in
945   yes)  want_mmalloc=true ;;
946   no)   want_mmalloc=false;;
947   *)    AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
948 esac],[want_mmalloc=false])dnl
949
950 if test x$want_mmalloc = xtrue; then
951    AC_DEFINE(USE_MMALLOC)
952    AC_DEFINE(MMCHECK_FORCE)
953    MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
954    MMALLOC='../mmalloc/libmmalloc.a'
955 fi
956
957 # In the Cygwin environment, we need some additional flags.
958 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
959 [AC_EGREP_CPP(lose, [
960 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
961 lose
962 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
963
964
965 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
966 SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
967 case ${host} in
968   *go32* ) SER_HARDWIRE=ser-go32.o ;;
969   *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
970 esac
971 AC_SUBST(SER_HARDWIRE)
972
973 # libreadline needs libuser32.a in a cygwin environment
974 WIN32LIBS=
975 if test x$gdb_cv_os_cygwin = xyes; then
976     WIN32LIBS="-luser32"
977     case "${target}" in
978         *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
979         ;;
980     esac
981 fi
982 AC_SUBST(WIN32LIBS)
983
984 LIBGUI="../libgui/src/libgui.a"
985 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
986 AC_SUBST(LIBGUI)
987 AC_SUBST(GUI_CFLAGS_X)
988
989 AC_ARG_ENABLE(gdbtk,
990 [  --enable-gdbtk          Enable GDBTK GUI front end],
991 [case "${enableval}" in
992     yes)
993         case "$host" in
994         *go32*)
995             AC_MSG_WARN([GDB does not support GDBtk on host ${host}.  GDBtk will be disabled.])
996             enable_gdbtk=no ;;
997         *windows*)
998             AC_MSG_WARN([GDB does not support GDBtk on host ${host}.  GDBtk will be disabled.])
999             enable_gdbtk=no ;;
1000         *)
1001             enable_gdbtk=yes ;;
1002         esac ;;
1003     no)
1004         enable_gdbtk=no  ;;
1005     *)
1006         AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
1007 esac],
1008 [
1009 # Default is on for everything but go32 and Cygwin
1010 case "$host" in
1011     *go32* | *windows*)
1012         ;;
1013     *)
1014         if test -d "${srcdir}/gdbtk" ; then
1015             enable_gdbtk=yes
1016         fi
1017         ;;
1018 esac
1019 ])
1020
1021 WIN32LDAPP=
1022 AC_SUBST(WIN32LIBS)
1023 AC_SUBST(WIN32LDAPP)
1024
1025 configdir="unix"
1026
1027 GDBTKLIBS=
1028 if test "${enable_gdbtk}" = "yes"; then
1029
1030     # Gdbtk must have an absolute path to srcdir in order to run
1031     # properly when not installed.
1032     here=`pwd`
1033     cd ${srcdir}
1034     GDBTK_SRC_DIR=`pwd`
1035     cd $here
1036
1037     CY_AC_PATH_TCLCONFIG
1038     if test -z "${no_tcl}"; then
1039         CY_AC_LOAD_TCLCONFIG
1040         CY_AC_PATH_TKCONFIG
1041
1042         # now look for Tcl library stuff
1043
1044         case "${host}" in
1045         *-*-cygwin*)
1046             tcldir=../tcl/win/
1047             ;;
1048         *)
1049             tcldir=../tcl/unix/
1050             ;;
1051         esac
1052
1053         TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1054
1055         # If $no_tk is nonempty, then we can't do Tk, and there is no
1056         # point to doing Tcl.
1057         if test -z "${no_tk}"; then
1058            CY_AC_LOAD_TKCONFIG
1059            CY_AC_PATH_TCLH
1060            CY_AC_PATH_TKH
1061            CY_AC_PATH_ITCLH
1062            CY_AC_PATH_ITKH
1063
1064
1065            # now look for Tk library stuff
1066
1067            case "${host}" in
1068            *-*-cygwin*)
1069                tkdir=../tk/win/
1070                ;;
1071            *)
1072                tkdir=../tk/unix/
1073                ;;
1074            esac
1075
1076            TK_DEPS="${tkdir}${TK_LIB_FILE}"
1077
1078            # now look for Itcl library stuff
1079
1080            CY_AC_PATH_ITCLCONFIG
1081            if test -z "${no_itcl}"; then
1082              CY_AC_LOAD_ITCLCONFIG 
1083
1084              ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1085              ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1086            fi
1087
1088            
1089            # now look for Itk library stuff
1090            CY_AC_PATH_ITKCONFIG
1091            if test -z "${no_itcl}"; then
1092              CY_AC_LOAD_ITKCONFIG
1093
1094              ITKLIB="${ITK_BUILD_LIB_SPEC}"
1095              ITK_DEPS="${ITK_LIB_FULL_PATH}"
1096            fi
1097
1098            ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1099            # Tcl/Tk 8.1 require -fwritable strings.  I don't
1100            # know whether 8.2 will or not, but I bet it will.
1101            # I don't have to worry about 7.x since we don't support it.
1102            GDBTK_CFLAGS=""
1103            if test "$GCC" = "yes"; then
1104                if test "$TCL_VERSION" != "8.0" ; then
1105                    GDBTK_CFLAGS="-fwritable-strings"
1106                fi
1107            fi
1108
1109            # Include some libraries that Tcl and Tk want.
1110            TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1111            # Yes, the ordering seems wrong here.  But it isn't.
1112            # TK_LIBS is the list of libraries that need to be linked
1113            # after Tcl/Tk.  Note that this isn't put into LIBS.  If it
1114            # were in LIBS then any link tests after this point would
1115            # try to include things like `$(LIBGUI)', which wouldn't work.
1116            GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1117
1118            CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1119            CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1120            CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1121            CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
1122            CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
1123            CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
1124            CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
1125            CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
1126
1127            if test x$gdb_cv_os_cygwin = xyes; then
1128               WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1129               WIN32LDAPP="-Wl,--subsystem,console"
1130               CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1131            fi
1132         fi
1133     fi
1134
1135     SUBDIRS="${SUBDIRS} gdbtk"
1136     configdirs="${configdirs} gdbtk"
1137 fi
1138
1139 AC_SUBST(X_CFLAGS)
1140 AC_SUBST(X_LDFLAGS)
1141 AC_SUBST(X_LIBS)
1142 AC_SUBST(TCL_DEPS)
1143 AC_SUBST(TK_DEPS)
1144 AC_SUBST(ITCLLIB)
1145 AC_SUBST(ITCL_DEPS)
1146 AC_SUBST(ITKLIB)
1147 AC_SUBST(ITK_DEPS)
1148 AC_SUBST(GDBTKLIBS)
1149 AC_SUBST(GDBTK_CFLAGS)
1150 AC_SUBST(GDBTK_SRC_DIR)
1151
1152 AC_PATH_X
1153
1154  
1155 # Unlike the sim directory, whether a simulator is linked is controlled by 
1156 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.  
1157 # This code just checks for a few cases where we'd like to ignore those
1158 # definitions, even when they're present in the '.mt' file.  These cases
1159 # are when --disable-sim is specified, or if the simulator directory is
1160 # not part of the source tree.
1161 #
1162 AC_ARG_ENABLE(sim,
1163 [  --enable-sim            Link gdb with simulator],
1164 [echo "enable_sim = $enable_sim";
1165  echo "enableval = ${enableval}";
1166  case "${enableval}" in
1167   yes) ignore_sim=false ;;
1168   no)  ignore_sim=true ;;
1169   *)   ignore_sim=false ;;
1170  esac],
1171 [ignore_sim=false])
1172
1173 if test ! -d "${srcdir}/../sim"; then
1174   ignore_sim=true
1175 fi
1176
1177 if test "${ignore_sim}" = "true"; then
1178     IGNORE_SIM="SIM="
1179     IGNORE_SIM_OBS="SIM_OBS="
1180 else
1181     IGNORE_SIM=""
1182     IGNORE_SIM_OBS=""
1183     AC_DEFINE(WITH_SIM)
1184 fi
1185 AC_SUBST(IGNORE_SIM)
1186 AC_SUBST(IGNORE_SIM_OBS)
1187
1188 AC_SUBST(ENABLE_CFLAGS)
1189
1190 AC_SUBST(CONFIG_OBS)
1191 AC_SUBST(CONFIG_LIB_OBS)
1192 AC_SUBST(CONFIG_DEPS)
1193 AC_SUBST(CONFIG_SRCS)
1194 AC_SUBST(CONFIG_INITS)
1195 AC_SUBST(CONFIG_ALL)
1196 AC_SUBST(CONFIG_CLEAN)
1197 AC_SUBST(CONFIG_INSTALL)
1198 AC_SUBST(CONFIG_UNINSTALL)
1199
1200 # Begin stuff to support --enable-shared
1201 AC_ARG_ENABLE(shared,
1202 [  --enable-shared         Use shared libraries],
1203 [case "${enableval}" in
1204   yes) shared=true ;;
1205   no)  shared=false ;;
1206   *) shared=true ;;
1207 esac])dnl
1208
1209 HLDFLAGS=
1210 HLDENV=
1211 # If we have shared libraries, try to set rpath reasonably.
1212 if test "${shared}" = "true"; then
1213   case "${host}" in
1214   *-*-hpux*)
1215     HLDFLAGS='-Wl,+s,+b,$(libdir)'
1216     ;;
1217   *-*-irix5* | *-*-irix6*)
1218     HLDFLAGS='-Wl,-rpath,$(libdir)'
1219     ;;
1220   *-*-linux*aout*)
1221     ;;
1222   *-*-linux* | *-pc-linux-gnu*)
1223     HLDFLAGS='-Wl,-rpath,$(libdir)'
1224     ;;
1225   *-*-solaris*)
1226     HLDFLAGS='-R $(libdir)'
1227     ;;
1228   *-*-sysv4*)
1229     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;'
1230     ;;
1231   esac
1232 fi
1233
1234 # On SunOS, if the linker supports the -rpath option, use it to
1235 # prevent ../bfd and ../opcodes from being included in the run time
1236 # search path.
1237 case "${host}" in
1238   *-*-sunos*)
1239     echo 'main () { }' > conftest.c
1240     ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
1241     if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
1242       :
1243     elif grep 'No such file' conftest.t >/dev/null 2>&1; then
1244       :
1245     elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
1246       :
1247     elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
1248       :
1249     elif test "${shared}" = "true"; then
1250       HLDFLAGS='-Wl,-rpath=$(libdir)'
1251     else
1252       HLDFLAGS='-Wl,-rpath='
1253     fi
1254     rm -f conftest.t conftest.c conftest
1255     ;;
1256 esac
1257 AC_SUBST(HLDFLAGS)
1258 AC_SUBST(HLDENV)
1259 # End stuff to support --enable-shared
1260
1261 # target_subdir is used by the testsuite to find the target libraries.
1262 target_subdir=
1263 if test "${host}" != "${target}"; then
1264     target_subdir="${target_alias}/"
1265 fi
1266 AC_SUBST(target_subdir)
1267
1268 frags=
1269 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1270 if test ! -f ${host_makefile_frag}; then
1271     # When building a native debuger the .mh file containing things
1272     # like NATDEPFILES is needed.  Cross debuggers don't need .mh
1273     # since it no longer contains anything useful.
1274     if test "${target}" = "${host}"; then
1275         AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1276     else
1277         host_makefile_frag=/dev/null
1278     fi
1279 fi
1280 frags="$frags $host_makefile_frag"
1281
1282 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1283 if test ! -f ${target_makefile_frag}; then
1284 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1285 fi
1286 frags="$frags $target_makefile_frag"
1287
1288 AC_SUBST_FILE(host_makefile_frag)
1289 AC_SUBST_FILE(target_makefile_frag)
1290 AC_SUBST(frags)
1291
1292 changequote(,)dnl
1293 hostfile=`sed -n '
1294 s/XM_FILE[      ]*=[    ]*\([^  ]*\)/\1/p
1295 ' ${host_makefile_frag}`
1296
1297 targetfile=`sed -n '
1298 s/TM_FILE[      ]*=[    ]*\([^  ]*\)/\1/p
1299 ' ${target_makefile_frag}`
1300
1301 GDB_MULTI_ARCH=`sed -n '
1302 s/GDB_MULTI_ARCH[       ]*=[    ]*\([^  ]*\)[   ]*/\1/p
1303 ' ${target_makefile_frag}`
1304
1305 if test "${target}" = "${host}"; then
1306 # We pick this up from the host configuration file (.mh) because we
1307 # do not have a native configuration Makefile fragment.
1308 nativefile=`sed -n '
1309 s/NAT_FILE[     ]*=[    ]*\([^  ]*\)/\1/p
1310 ' ${host_makefile_frag}`
1311 fi
1312 changequote([,])
1313
1314 # New targets should just set gdb_multi_arch=yes in configure.tgt.
1315 # Old targets being converted can either do that or set GDB_MULTI_ARCH
1316 # in the target specific makefile frag.  Eventually gdb_multi_arch=yes
1317 # will be the default.
1318 if test x"${GDB_MULTI_ARCH}" = x ; then
1319     case "${gdb_multi_arch}" in
1320     yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
1321     no ) GDB_MULTI_ARCH=0 ;;
1322     0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
1323     esac
1324 fi
1325 if test x"${GDB_MULTI_ARCH}" != x ; then
1326     AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
1327 fi
1328 # Warn the user when they use an old practice
1329 case "${GDB_MULTI_ARCH}" in
1330     "" ) ;;
1331     0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
1332         AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
1333     GDB_MULTI_ARCH_PURE )
1334         if test x"${targetfile}" != x ; then
1335             AC_MSG_WARN("GDB: Ignoring TM_FILE in ${target_makefile_frag}")
1336             targetfile=""
1337         fi ;;
1338     *)  AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
1339 esac
1340
1341 if test "${enable_multi_ice}" = "yes"; then
1342   SUBDIRS="${SUBDIRS} multi-ice"
1343 fi
1344
1345 # ``gdbserver'' can only be built in a native configuration.
1346 if test x"${target}" = x"${host}"; then
1347     AC_MSG_CHECKING(whether gdbserver is supported on this host)
1348     if test x"${build_gdbserver}" = xyes ; then
1349         configdirs="${configdirs} gdbserver"
1350         SUBDIRS="${SUBDIRS} gdbserver"
1351         AC_MSG_RESULT(yes)
1352     else
1353         AC_MSG_RESULT(no)
1354     fi
1355 fi
1356
1357 AC_SUBST(SUBDIRS)
1358
1359 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1360 # (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1361 # version.
1362
1363 files=
1364 links=
1365
1366 rm -f xm.h
1367 xm_h=""
1368 if test "${hostfile}" != ""; then
1369     xm_h=xm.h
1370     GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1371     files="${files} ${GDB_XM_FILE}"
1372     links="${links} xm.h"
1373     AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
1374 fi
1375 AC_SUBST(xm_h)
1376
1377 rm -f tm.h
1378 tm_h=""
1379 if test "${targetfile}" != ""; then
1380     tm_h=tm.h
1381     GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1382     files="${files} ${GDB_TM_FILE}"
1383     links="${links} tm.h"
1384     AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
1385 fi
1386 AC_SUBST(tm_h)
1387
1388 rm -f nm.h
1389 nm_h=""
1390 if test "${nativefile}" != ""; then
1391     nm_h=nm.h
1392     GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1393     files="${files} ${GDB_NM_FILE}"
1394     links="${links} nm.h"
1395     AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
1396 fi
1397 AC_SUBST(nm_h)
1398
1399 AC_LINK_FILES($files, $links)
1400
1401 dnl Check for exe extension set on certain hosts (e.g. Win32)
1402 AC_EXEEXT
1403
1404 dnl  Detect the character set used by this host.
1405
1406 dnl  At the moment, we just assume it's ISO-8859-1 (which is a
1407 dnl  superset of ASCII containing the characters needed for French,
1408 dnl  German, Spanish, Italian, and possibly others), but if were
1409 dnl  *were* to support any host character sets other than ISO-8859-1,
1410 dnl  here's where we'd detect it.
1411 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1412           [Define to be a string naming the default host character set.])
1413
1414 AM_ICONV
1415
1416 AC_CONFIG_SUBDIRS($configdirs)
1417 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1418 [
1419 dnl Autoconf doesn't provide a mechanism for modifying definitions 
1420 dnl provided by makefile fragments.
1421 dnl
1422 if test "${nativefile}" = ""; then
1423         < Makefile \
1424         sed -e '/^NATDEPFILES[[         ]]*=.*\\$/,/[[^\\]]$/s/^/# /' \
1425             -e '/^NATDEPFILES[[         ]]*=/s/^/# /' \
1426         | sed -e '/^\(NATDEPFILES[[     ]]*[[+]]=[[     ]]*\)/s//# \1/' \
1427         > Makefile.tem
1428 mv -f Makefile.tem Makefile
1429 fi
1430
1431 changequote(,)dnl
1432 sed -e '/^TM_FILE[      ]*=/s,^TM_FILE[         ]*=[    ]*,&config/'"${gdb_target_cpu}"'/,
1433 /^XM_FILE[      ]*=/s,^XM_FILE[         ]*=[    ]*,&config/'"${gdb_host_cpu}"'/,
1434 /^NAT_FILE[     ]*=/s,^NAT_FILE[        ]*=[    ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1435 mv -f Makefile.tmp Makefile
1436 changequote([,])dnl
1437
1438
1439 case x$CONFIG_HEADERS in
1440 xconfig.h:config.in)
1441 echo > stamp-h ;;
1442 esac
1443 ],
1444 [
1445 gdb_host_cpu=$gdb_host_cpu
1446 gdb_target_cpu=$gdb_target_cpu
1447 nativefile=$nativefile
1448 ])
1449
1450 exit 0