* acconfig.h (DEFAULT_BFD_ARCH, DEFAULT_BFD_VEC): Remove.
[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_WITH(cpu,
990 [  --with-cpu=CPU          Set the default CPU variant to debug],
991 [case "${target}" in
992   powerpc-* | powerpcle-* )
993     ## It would be nice to keep this table in sync with the one in
994     ## gcc/configure.
995     case "${with_cpu}" in
996       ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
997       | 604 | 750 )
998         ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
999       ;;
1000       common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 ) 
1001         ## These are all RS6000 variants, as far as GDB is concerned.
1002         with_cpu=rs6000
1003       ;;
1004       603e | ec603e )
1005         with_cpu=603
1006       ;;
1007       604e )
1008         with_cpu=604
1009       ;;
1010       * )
1011         AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
1012         with_cpu=ppc-uisa
1013       ;;
1014     esac
1015   ;;
1016   * )
1017     AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
1018   ;;
1019 esac
1020 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
1021 ],)
1022
1023
1024 AC_ARG_ENABLE(gdbtk,
1025 [  --enable-gdbtk          Enable GDBTK GUI front end],
1026 [case "${enableval}" in
1027     yes)
1028         case "$host" in
1029         *go32*)
1030             AC_MSG_WARN([GDB does not support GDBtk on host ${host}.  GDBtk will be disabled.])
1031             enable_gdbtk=no ;;
1032         *windows*)
1033             AC_MSG_WARN([GDB does not support GDBtk on host ${host}.  GDBtk will be disabled.])
1034             enable_gdbtk=no ;;
1035         *)
1036             enable_gdbtk=yes ;;
1037         esac ;;
1038     no)
1039         enable_gdbtk=no  ;;
1040     *)
1041         AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
1042 esac],
1043 [
1044 # Default is on for everything but go32 and Cygwin
1045 case "$host" in
1046     *go32* | *windows*)
1047         ;;
1048     *)
1049         if test -d "${srcdir}/gdbtk" ; then
1050             enable_gdbtk=yes
1051         fi
1052         ;;
1053 esac
1054 ])
1055
1056 WIN32LDAPP=
1057 AC_SUBST(WIN32LIBS)
1058 AC_SUBST(WIN32LDAPP)
1059
1060 configdir="unix"
1061
1062 GDBTKLIBS=
1063 if test "${enable_gdbtk}" = "yes"; then
1064
1065     # Gdbtk must have an absolute path to srcdir in order to run
1066     # properly when not installed.
1067     here=`pwd`
1068     cd ${srcdir}
1069     GDBTK_SRC_DIR=`pwd`
1070     cd $here
1071
1072     CY_AC_PATH_TCLCONFIG
1073     if test -z "${no_tcl}"; then
1074         CY_AC_LOAD_TCLCONFIG
1075         CY_AC_PATH_TKCONFIG
1076
1077         # now look for Tcl library stuff
1078
1079         case "${host}" in
1080         *-*-cygwin*)
1081             tcldir=../tcl/win/
1082             ;;
1083         *)
1084             tcldir=../tcl/unix/
1085             ;;
1086         esac
1087
1088         TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1089
1090         # If $no_tk is nonempty, then we can't do Tk, and there is no
1091         # point to doing Tcl.
1092         if test -z "${no_tk}"; then
1093            CY_AC_LOAD_TKCONFIG
1094            CY_AC_PATH_TCLH
1095            CY_AC_PATH_TKH
1096            CY_AC_PATH_ITCLH
1097            CY_AC_PATH_ITKH
1098
1099
1100            # now look for Tk library stuff
1101
1102            case "${host}" in
1103            *-*-cygwin*)
1104                tkdir=../tk/win/
1105                ;;
1106            *)
1107                tkdir=../tk/unix/
1108                ;;
1109            esac
1110
1111            TK_DEPS="${tkdir}${TK_LIB_FILE}"
1112
1113            # now look for Itcl library stuff
1114
1115            CY_AC_PATH_ITCLCONFIG
1116            if test -z "${no_itcl}"; then
1117              CY_AC_LOAD_ITCLCONFIG 
1118
1119              ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1120              ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1121            fi
1122
1123            
1124            # now look for Itk library stuff
1125            CY_AC_PATH_ITKCONFIG
1126            if test -z "${no_itcl}"; then
1127              CY_AC_LOAD_ITKCONFIG
1128
1129              ITKLIB="${ITK_BUILD_LIB_SPEC}"
1130              ITK_DEPS="${ITK_LIB_FULL_PATH}"
1131            fi
1132
1133            ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1134            # Tcl/Tk 8.1 require -fwritable strings.  I don't
1135            # know whether 8.2 will or not, but I bet it will.
1136            # I don't have to worry about 7.x since we don't support it.
1137            GDBTK_CFLAGS=""
1138            if test "$GCC" = "yes"; then
1139                if test "$TCL_VERSION" != "8.0" ; then
1140                    GDBTK_CFLAGS="-fwritable-strings"
1141                fi
1142            fi
1143
1144            # Include some libraries that Tcl and Tk want.
1145            TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1146            # Yes, the ordering seems wrong here.  But it isn't.
1147            # TK_LIBS is the list of libraries that need to be linked
1148            # after Tcl/Tk.  Note that this isn't put into LIBS.  If it
1149            # were in LIBS then any link tests after this point would
1150            # try to include things like `$(LIBGUI)', which wouldn't work.
1151            GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1152
1153            CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1154            CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1155            CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1156            CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
1157            CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
1158            CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
1159            CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
1160            CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
1161
1162            if test x$gdb_cv_os_cygwin = xyes; then
1163               WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1164               WIN32LDAPP="-Wl,--subsystem,console"
1165               CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1166            fi
1167         fi
1168     fi
1169
1170     SUBDIRS="${SUBDIRS} gdbtk"
1171     configdirs="${configdirs} gdbtk"
1172 fi
1173
1174 AC_SUBST(X_CFLAGS)
1175 AC_SUBST(X_LDFLAGS)
1176 AC_SUBST(X_LIBS)
1177 AC_SUBST(TCL_DEPS)
1178 AC_SUBST(TK_DEPS)
1179 AC_SUBST(ITCLLIB)
1180 AC_SUBST(ITCL_DEPS)
1181 AC_SUBST(ITKLIB)
1182 AC_SUBST(ITK_DEPS)
1183 AC_SUBST(GDBTKLIBS)
1184 AC_SUBST(GDBTK_CFLAGS)
1185 AC_SUBST(GDBTK_SRC_DIR)
1186
1187 AC_PATH_X
1188
1189  
1190 # Unlike the sim directory, whether a simulator is linked is controlled by 
1191 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.  
1192 # This code just checks for a few cases where we'd like to ignore those
1193 # definitions, even when they're present in the '.mt' file.  These cases
1194 # are when --disable-sim is specified, or if the simulator directory is
1195 # not part of the source tree.
1196 #
1197 AC_ARG_ENABLE(sim,
1198 [  --enable-sim            Link gdb with simulator],
1199 [echo "enable_sim = $enable_sim";
1200  echo "enableval = ${enableval}";
1201  case "${enableval}" in
1202   yes) ignore_sim=false ;;
1203   no)  ignore_sim=true ;;
1204   *)   ignore_sim=false ;;
1205  esac],
1206 [ignore_sim=false])
1207
1208 if test ! -d "${srcdir}/../sim"; then
1209   ignore_sim=true
1210 fi
1211
1212 if test "${ignore_sim}" = "true"; then
1213     IGNORE_SIM="SIM="
1214     IGNORE_SIM_OBS="SIM_OBS="
1215 else
1216     IGNORE_SIM=""
1217     IGNORE_SIM_OBS=""
1218     AC_DEFINE(WITH_SIM)
1219 fi
1220 AC_SUBST(IGNORE_SIM)
1221 AC_SUBST(IGNORE_SIM_OBS)
1222
1223 AC_SUBST(ENABLE_CFLAGS)
1224
1225 AC_SUBST(CONFIG_OBS)
1226 AC_SUBST(CONFIG_LIB_OBS)
1227 AC_SUBST(CONFIG_DEPS)
1228 AC_SUBST(CONFIG_SRCS)
1229 AC_SUBST(CONFIG_INITS)
1230 AC_SUBST(CONFIG_ALL)
1231 AC_SUBST(CONFIG_CLEAN)
1232 AC_SUBST(CONFIG_INSTALL)
1233 AC_SUBST(CONFIG_UNINSTALL)
1234
1235 # Begin stuff to support --enable-shared
1236 AC_ARG_ENABLE(shared,
1237 [  --enable-shared         Use shared libraries],
1238 [case "${enableval}" in
1239   yes) shared=true ;;
1240   no)  shared=false ;;
1241   *) shared=true ;;
1242 esac])dnl
1243
1244 HLDFLAGS=
1245 HLDENV=
1246 # If we have shared libraries, try to set rpath reasonably.
1247 if test "${shared}" = "true"; then
1248   case "${host}" in
1249   *-*-hpux*)
1250     HLDFLAGS='-Wl,+s,+b,$(libdir)'
1251     ;;
1252   *-*-irix5* | *-*-irix6*)
1253     HLDFLAGS='-Wl,-rpath,$(libdir)'
1254     ;;
1255   *-*-linux*aout*)
1256     ;;
1257   *-*-linux* | *-pc-linux-gnu*)
1258     HLDFLAGS='-Wl,-rpath,$(libdir)'
1259     ;;
1260   *-*-solaris*)
1261     HLDFLAGS='-R $(libdir)'
1262     ;;
1263   *-*-sysv4*)
1264     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;'
1265     ;;
1266   esac
1267 fi
1268
1269 # On SunOS, if the linker supports the -rpath option, use it to
1270 # prevent ../bfd and ../opcodes from being included in the run time
1271 # search path.
1272 case "${host}" in
1273   *-*-sunos*)
1274     echo 'main () { }' > conftest.c
1275     ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
1276     if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
1277       :
1278     elif grep 'No such file' conftest.t >/dev/null 2>&1; then
1279       :
1280     elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
1281       :
1282     elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
1283       :
1284     elif test "${shared}" = "true"; then
1285       HLDFLAGS='-Wl,-rpath=$(libdir)'
1286     else
1287       HLDFLAGS='-Wl,-rpath='
1288     fi
1289     rm -f conftest.t conftest.c conftest
1290     ;;
1291 esac
1292 AC_SUBST(HLDFLAGS)
1293 AC_SUBST(HLDENV)
1294 # End stuff to support --enable-shared
1295
1296 # target_subdir is used by the testsuite to find the target libraries.
1297 target_subdir=
1298 if test "${host}" != "${target}"; then
1299     target_subdir="${target_alias}/"
1300 fi
1301 AC_SUBST(target_subdir)
1302
1303 frags=
1304 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1305 if test ! -f ${host_makefile_frag}; then
1306     # When building a native debuger the .mh file containing things
1307     # like NATDEPFILES is needed.  Cross debuggers don't need .mh
1308     # since it no longer contains anything useful.
1309     if test "${target}" = "${host}"; then
1310         AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1311     else
1312         host_makefile_frag=/dev/null
1313     fi
1314 fi
1315 frags="$frags $host_makefile_frag"
1316
1317 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1318 if test ! -f ${target_makefile_frag}; then
1319 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1320 fi
1321 frags="$frags $target_makefile_frag"
1322
1323 AC_SUBST_FILE(host_makefile_frag)
1324 AC_SUBST_FILE(target_makefile_frag)
1325 AC_SUBST(frags)
1326
1327 changequote(,)dnl
1328 hostfile=`sed -n '
1329 s/XM_FILE[      ]*=[    ]*\([^  ]*\)/\1/p
1330 ' ${host_makefile_frag}`
1331
1332 targetfile=`sed -n '
1333 s/TM_FILE[      ]*=[    ]*\([^  ]*\)/\1/p
1334 ' ${target_makefile_frag}`
1335
1336 GDB_MULTI_ARCH=`sed -n '
1337 s/GDB_MULTI_ARCH[       ]*=[    ]*\([^  ]*\)[   ]*/\1/p
1338 ' ${target_makefile_frag}`
1339
1340 if test "${target}" = "${host}"; then
1341 # We pick this up from the host configuration file (.mh) because we
1342 # do not have a native configuration Makefile fragment.
1343 nativefile=`sed -n '
1344 s/NAT_FILE[     ]*=[    ]*\([^  ]*\)/\1/p
1345 ' ${host_makefile_frag}`
1346 fi
1347 changequote([,])
1348
1349 # New targets should just set gdb_multi_arch=yes in configure.tgt.
1350 # Old targets being converted can either do that or set GDB_MULTI_ARCH
1351 # in the target specific makefile frag.  Eventually gdb_multi_arch=yes
1352 # will be the default.
1353 if test x"${GDB_MULTI_ARCH}" = x ; then
1354     case "${gdb_multi_arch}" in
1355     yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
1356     no ) GDB_MULTI_ARCH=0 ;;
1357     0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
1358     esac
1359 fi
1360 if test x"${GDB_MULTI_ARCH}" != x ; then
1361     AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
1362 fi
1363 # Warn the user when they use an old practice
1364 case "${GDB_MULTI_ARCH}" in
1365     "" ) ;;
1366     0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
1367         AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
1368     GDB_MULTI_ARCH_PURE )
1369         if test x"${targetfile}" != x ; then
1370             AC_MSG_WARN("GDB: Ignoring TM_FILE in ${target_makefile_frag}")
1371             targetfile=""
1372         fi ;;
1373     *)  AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
1374 esac
1375
1376 if test "${enable_multi_ice}" = "yes"; then
1377   SUBDIRS="${SUBDIRS} multi-ice"
1378 fi
1379
1380 # ``gdbserver'' can only be built in a native configuration.
1381 if test x"${target}" = x"${host}"; then
1382     AC_MSG_CHECKING(whether gdbserver is supported on this host)
1383     if test x"${build_gdbserver}" = xyes ; then
1384         configdirs="${configdirs} gdbserver"
1385         SUBDIRS="${SUBDIRS} gdbserver"
1386         AC_MSG_RESULT(yes)
1387     else
1388         AC_MSG_RESULT(no)
1389     fi
1390 fi
1391
1392 AC_SUBST(SUBDIRS)
1393
1394 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1395 # (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1396 # version.
1397
1398 files=
1399 links=
1400
1401 rm -f xm.h
1402 xm_h=""
1403 if test "${hostfile}" != ""; then
1404     xm_h=xm.h
1405     GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1406     files="${files} ${GDB_XM_FILE}"
1407     links="${links} xm.h"
1408     AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
1409 fi
1410 AC_SUBST(xm_h)
1411
1412 rm -f tm.h
1413 tm_h=""
1414 if test "${targetfile}" != ""; then
1415     tm_h=tm.h
1416     GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1417     files="${files} ${GDB_TM_FILE}"
1418     links="${links} tm.h"
1419     AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
1420 fi
1421 AC_SUBST(tm_h)
1422
1423 rm -f nm.h
1424 nm_h=""
1425 if test "${nativefile}" != ""; then
1426     nm_h=nm.h
1427     GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1428     files="${files} ${GDB_NM_FILE}"
1429     links="${links} nm.h"
1430     AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
1431 fi
1432 AC_SUBST(nm_h)
1433
1434 AC_LINK_FILES($files, $links)
1435
1436 dnl Check for exe extension set on certain hosts (e.g. Win32)
1437 AC_EXEEXT
1438
1439 dnl  Detect the character set used by this host.
1440
1441 dnl  At the moment, we just assume it's ISO-8859-1 (which is a
1442 dnl  superset of ASCII containing the characters needed for French,
1443 dnl  German, Spanish, Italian, and possibly others), but if were
1444 dnl  *were* to support any host character sets other than ISO-8859-1,
1445 dnl  here's where we'd detect it.
1446 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1447           [Define to be a string naming the default host character set.])
1448
1449 AM_ICONV
1450
1451 AC_CONFIG_SUBDIRS($configdirs)
1452 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1453 [
1454 dnl Autoconf doesn't provide a mechanism for modifying definitions 
1455 dnl provided by makefile fragments.
1456 dnl
1457 if test "${nativefile}" = ""; then
1458         < Makefile \
1459         sed -e '/^NATDEPFILES[[         ]]*=.*\\$/,/[[^\\]]$/s/^/# /' \
1460             -e '/^NATDEPFILES[[         ]]*=/s/^/# /' \
1461         | sed -e '/^\(NATDEPFILES[[     ]]*[[+]]=[[     ]]*\)/s//# \1/' \
1462         > Makefile.tem
1463 mv -f Makefile.tem Makefile
1464 fi
1465
1466 changequote(,)dnl
1467 sed -e '/^TM_FILE[      ]*=/s,^TM_FILE[         ]*=[    ]*,&config/'"${gdb_target_cpu}"'/,
1468 /^XM_FILE[      ]*=/s,^XM_FILE[         ]*=[    ]*,&config/'"${gdb_host_cpu}"'/,
1469 /^NAT_FILE[     ]*=/s,^NAT_FILE[        ]*=[    ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1470 mv -f Makefile.tmp Makefile
1471 changequote([,])dnl
1472
1473
1474 case x$CONFIG_HEADERS in
1475 xconfig.h:config.in)
1476 echo > stamp-h ;;
1477 esac
1478 ],
1479 [
1480 gdb_host_cpu=$gdb_host_cpu
1481 gdb_target_cpu=$gdb_target_cpu
1482 nativefile=$nativefile
1483 ])
1484
1485 exit 0