1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001
3 dnl Free Software Foundation, Inc.
5 dnl This file is part of GDB.
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.
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.
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.
21 dnl Process this file with autoconf to produce a configure script.
25 AC_CONFIG_HEADER(config.h:config.in)
33 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
36 dnl gdb doesn't use gettext, but bfd does. We call this to ensure we
37 dnl link with the correct libraries.
41 dnl List of object files added by configure.
54 configdirs="doc testsuite"
56 AC_ARG_ENABLE(multi-ice,
57 [ --enable-multi-ice Build the multi-ice-gdb-server],
58 [case "${enableval}" in
59 yes ) enable_multi_ice="yes" ;;
60 no) enable_multi_ice="no" ;;
61 *) AC_MSG_ERROR(Bad value for --enable-multi-ice: ${enableval}) ;;
65 if test "${enable_multi_ice}" = "yes"; then
66 configdirs="${configdirs} multi-ice"
72 . ${srcdir}/configure.host
74 . ${srcdir}/configure.tgt
76 targ=${target} ; . ${srcdir}/../bfd/config.bfd
81 dnl use BFD to determine the default architecture and byte order
82 dnl (bfd_vec->byteorder provides the latter).
84 . ${srcdir}/../bfd/config.bfd
86 dnl We only want the first arch, if there is more than one.
87 targ_archs=`echo ${targ_archs} | sed -e 's/ .*//;'`
89 if test x"${targ_archs}" != x ; then
90 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, ${targ_archs})
92 if test x"${targ_defvec}" != x ; then
93 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, ${targ_defvec})
99 AC_CHECK_TOOL(RANLIB, ranlib, :)
100 AC_CHECK_TOOL(DLLTOOL, dlltool)
101 AC_CHECK_TOOL(WINDRES, windres)
104 dnl MiG is needed for the Hurd.
105 AC_CHECK_TOOL(MIG, mig)
113 dnl Solaris 7 needs _MSE_INT_H defined to avoid a clash between <widec.h>
114 dnl and <wchar.h> that causes AC_CHECK_HEADERS to think <curses.h> doesn't
117 case $host_os in solaris2.7 | solaris2.8) case "$GCC" in yes)
118 AC_DEFINE(_MSE_INT_H)
121 AC_CHECK_HEADERS(ctype.h endian.h nlist.h link.h thread_db.h proc_service.h \
122 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
123 string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
124 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
125 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
126 time.h sys/file.h sys/ioctl.h sys/user.h sys/fault.h sys/syscall.h \
127 dirent.h sys/ndir.h sys/dir.h ndir.h \
134 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
138 # See if machine/reg.h supports the %fs and %gs i386 segment registers.
139 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
140 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
141 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
142 gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
143 if test $gdb_cv_struct_reg_r_fs = yes; then
144 AC_DEFINE(HAVE_STRUCT_REG_R_FS)
146 AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
147 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
148 gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
149 if test $gdb_cv_struct_reg_r_gs = yes; then
150 AC_DEFINE(HAVE_STRUCT_REG_R_GS)
153 dnl See if ptrace.h provides the PTRACE_GETREGS request.
154 AC_MSG_CHECKING(for PTRACE_GETREGS)
155 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
156 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
158 [gdb_cv_have_ptrace_getregs=yes],
159 [gdb_cv_have_ptrace_getregs=no])])
160 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
161 if test $gdb_cv_have_ptrace_getregs = yes; then
162 AC_DEFINE(HAVE_PTRACE_GETREGS)
165 dnl See if ptrace.h provides the PTRACE_GETFPXREGS request.
166 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
167 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
168 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
169 [PTRACE_GETFPXREGS;],
170 [gdb_cv_have_ptrace_getfpxregs=yes],
171 [gdb_cv_have_ptrace_getfpxregs=no])])
172 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
173 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
174 AC_DEFINE(HAVE_PTRACE_GETFPXREGS)
177 AC_CHECK_LIB(socket, socketpair)
178 AC_CHECK_FUNCS(socketpair)
181 BFD_NEED_DECLARATION(malloc)
182 BFD_NEED_DECLARATION(realloc)
183 BFD_NEED_DECLARATION(free)
184 BFD_NEED_DECLARATION(strerror)
185 BFD_NEED_DECLARATION(strdup)
186 BFD_NEED_DECLARATION(strstr)
189 # The following save_state_t checkery is only necessary for HPUX
190 # versions earlier than 10.20. When those fade from memory, this
191 # could be expunged. --jsm 1999-03-22
193 AC_MSG_CHECKING(for HPUX save_state structure)
194 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
195 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
196 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
197 gdb_cv_hpux_sswide=no)
198 if test $gdb_cv_hpux_savestate = yes
200 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
202 if test $gdb_cv_hpux_sswide = yes
204 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
206 AC_MSG_RESULT($gdb_cv_hpux_sswide)
209 # If we are configured native on GNU/Linux, work around problems with
211 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
213 if test "${target}" = "${host}"; then
215 i[[3456]]86-*-linux*)
216 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
217 AC_DEFINE(sys_quotactl)
220 AC_DEFINE(NEW_PROC_API)
222 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
223 AC_DEFINE(NEW_PROC_API)
225 *-*-solaris2.[[678]])
226 AC_DEFINE(NEW_PROC_API)
231 if test "$ac_cv_header_sys_procfs_h" = yes; then
232 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
233 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
234 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
235 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
236 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
237 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
238 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
239 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
240 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
241 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
242 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
243 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
244 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
245 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
248 dnl Check for broken prfpregset_t type
250 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
251 dnl prfpregset_t type (it's a typedef for the pointer to a struct
252 dnl instead of the struct itself). We detect this here, and work
253 dnl around it in lin-thread.c.
255 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
256 AC_MSG_CHECKING(whether prfpregset_t type is broken)
257 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
258 [AC_TRY_RUN([#include <sys/procfs.h>
261 if (sizeof (prfpregset_t) == sizeof (void *))
265 gdb_cv_prfpregset_t_broken=no,
266 gdb_cv_prfpregset_t_broken=yes,
267 gdb_cv_prfpregset_t_broken=yes)])
268 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
269 if test $gdb_cv_prfpregset_t_broken = yes; then
270 AC_DEFINE(PRFPREGSET_T_BROKEN)
274 dnl Check for PIOCSET ioctl entry
276 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
277 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
278 [AC_TRY_COMPILE([#include <unistd.h>
279 #include <sys/types.h>
280 #include <sys/procfs.h>
283 dummy = ioctl(0, PIOCSET, &dummy);
285 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
286 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
287 if test $gdb_cv_have_procfs_piocset = yes; then
288 AC_DEFINE(HAVE_PROCFS_PIOCSET)
292 dnl For native ports (host == target), check to see what kind of
293 dnl legacy link.h support is needed. (See solib-legacy.c.)
294 if test ${host} = ${target} ; then
295 dnl Check for struct link_map with l_ members which are indicative
296 dnl of SVR4-like shared libraries
298 AC_MSG_CHECKING(for member l_addr in struct link_map)
299 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
300 [AC_TRY_COMPILE([#include <link.h>],
301 [struct link_map lm; (void) lm.l_addr;],
302 gdb_cv_have_struct_link_map_with_l_members=yes,
303 gdb_cv_have_struct_link_map_with_l_members=no)])
304 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
305 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
306 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS)
309 dnl Check for struct link_map with lm_ members which are indicative
310 dnl of SunOS-like shared libraries
312 AC_MSG_CHECKING(for member lm_addr in struct link_map)
313 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
314 [AC_TRY_COMPILE([#include <sys/types.h>
316 [struct link_map lm; (void) lm.lm_addr;],
317 gdb_cv_have_struct_link_map_with_lm_members=yes,
318 gdb_cv_have_struct_link_map_with_lm_members=no)])
319 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
320 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
321 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS)
324 dnl Check for struct so_map with som_ members which are found on
325 dnl some *BSD systems.
327 AC_MSG_CHECKING(for member som_addr in struct so_map)
328 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
329 [AC_TRY_COMPILE([#include <sys/types.h>
331 [struct so_map lm; (void) lm.som_addr;],
332 gdb_cv_have_struct_so_map_with_som_members=yes,
333 gdb_cv_have_struct_so_map_with_som_members=no)])
334 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
335 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
336 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS)
339 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
340 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
342 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
343 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
344 [AC_TRY_COMPILE([#define _SYSCALL32
345 #include <sys/link.h>], [struct link_map32 l;],
346 gdb_cv_have_struct_link_map32=yes,
347 gdb_cv_have_struct_link_map32=no)])
348 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
349 if test $gdb_cv_have_struct_link_map32 = yes; then
350 AC_DEFINE(HAVE_STRUCT_LINK_MAP32)
354 dnl See if host has libm. This is usually needed by simulators.
355 AC_CHECK_LIB(m, main)
357 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
359 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
360 dnl under Solaris 2.6 because it is some funky empty library.
361 dnl So only link in libw if we have to.
362 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
364 dnl See if compiler supports "long long" type.
366 AC_MSG_CHECKING(for long long support in compiler)
367 AC_CACHE_VAL(gdb_cv_c_long_long,
369 extern long long foo;
370 switch (foo & 2) { case 0: return 1; }
372 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
373 AC_MSG_RESULT($gdb_cv_c_long_long)
374 if test $gdb_cv_c_long_long = yes; then
375 AC_DEFINE(CC_HAS_LONG_LONG)
378 dnl See if the compiler and runtime support printing long long
380 AC_MSG_CHECKING(for long long support in printf)
381 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
386 l = (l << 16) + 0x0123;
387 l = (l << 16) + 0x4567;
388 l = (l << 16) + 0x89ab;
389 l = (l << 16) + 0xcdef;
390 sprintf (buf, "0x%016llx", l);
391 return (strcmp ("0x0123456789abcdef", buf));
393 gdb_cv_printf_has_long_long=yes,
394 gdb_cv_printf_has_long_long=no,
395 gdb_cv_printf_has_long_long=no)])
396 if test $gdb_cv_printf_has_long_long = yes; then
397 AC_DEFINE(PRINTF_HAS_LONG_LONG)
399 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
401 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
402 dnl because autoconf complains about cross-compilation issues. However, this
403 dnl code uses the same variables as the macro for compatibility.
405 AC_MSG_CHECKING(for long double support in compiler)
406 AC_CACHE_VAL(ac_cv_c_long_double,
407 [AC_TRY_COMPILE(, [long double foo;],
408 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
409 AC_MSG_RESULT($ac_cv_c_long_double)
410 if test $ac_cv_c_long_double = yes; then
411 AC_DEFINE(HAVE_LONG_DOUBLE)
414 dnl See if the compiler and runtime support printing long doubles
416 AC_MSG_CHECKING(for long double support in printf)
417 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
421 long double f = 3.141592653;
422 sprintf (buf, "%Lg", f);
423 return (strncmp ("3.14159", buf, 7));
425 gdb_cv_printf_has_long_double=yes,
426 gdb_cv_printf_has_long_double=no,
427 gdb_cv_printf_has_long_double=no)])
428 if test $gdb_cv_printf_has_long_double = yes; then
429 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
431 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
433 dnl See if the compiler and runtime support scanning long doubles
435 AC_MSG_CHECKING(for long double support in scanf)
436 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
439 char *buf = "3.141592653";
441 sscanf (buf, "%Lg", &f);
442 return !(f > 3.14159 && f < 3.14160);
444 gdb_cv_scanf_has_long_double=yes,
445 gdb_cv_scanf_has_long_double=no,
446 gdb_cv_scanf_has_long_double=no)])
447 if test $gdb_cv_scanf_has_long_double = yes; then
448 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
450 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
454 dnl See if thread_db library is around for Solaris thread debugging. Note that
455 dnl we must explicitly test for version 1 of the library because version 0
456 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
458 dnl Note that we only want this if we are both native (host == target), and
459 dnl not doing a canadian cross build (build == host).
461 if test ${build} = ${host} -a ${host} = ${target} ; then
464 AC_MSG_CHECKING(for HPUX/OSF thread support)
465 if test -f /usr/include/dce/cma_config.h ; then
466 if test "$GCC" = "yes" ; then
468 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
469 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} hpux-thread.o"
470 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
472 AC_MSG_RESULT(no (suppressed because you are not using GCC))
479 AC_MSG_CHECKING(for Solaris thread debugging library)
480 if test -f /usr/lib/libthread_db.so.1 ; then
482 AC_DEFINE(HAVE_THREAD_DB_LIB)
483 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} sol-thread.o"
484 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
485 AC_CHECK_LIB(dl, dlopen)
486 if test "$GCC" = "yes" ; then
487 # The GNU linker requires the -export-dynamic option to make
488 # all symbols visible in the dynamic symbol table.
489 hold_ldflags=$LDFLAGS
490 AC_MSG_CHECKING(for the ld -export-dynamic flag)
491 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
492 AC_TRY_LINK(, [int i;], found=yes, found=no)
493 LDFLAGS=$hold_ldflags
494 AC_MSG_RESULT($found)
495 if test $found = yes; then
496 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
499 # Sun randomly tweaked the prototypes in <proc_service.h>
501 AC_MSG_CHECKING(if <proc_service.h> is old)
502 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
504 #include <proc_service.h>
506 (struct ps_prochandle*, psaddr_t, const void*, size_t);
507 ],, gdb_cv_proc_service_is_old=no,
508 gdb_cv_proc_service_is_old=yes)
510 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
511 if test $gdb_cv_proc_service_is_old = yes; then
512 AC_DEFINE(PROC_SERVICE_IS_OLD)
519 AC_SUBST(CONFIG_LDFLAGS)
522 dnl The CLI cannot be disabled yet, but may be in the future
524 dnl Handle CLI sub-directory configury.
525 AC_ARG_ENABLE(gdbcli,
526 [ --enable-gdbcli Enable GDB-CLI interface],
528 case "${enableval}" in
529 yes) enable_gdbcli=yes ;;
530 "") enable_gdbcli=yes ;;
532 AC_MSG_ERROR(The CLI cannot be disabled yet)
535 AC_MSG_ERROR(Bad value for --enable-gdbcli: ${enableval})
540 case ${enable_gdbcli} in
542 if test -d "${srcdir}/cli" ; then
543 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_CLI_OBS)"
544 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_CLI_DEPS)"
545 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_CLI_SRCS)"
546 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_CLI_INITS)"
547 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_CLI_CFLAGS)"
548 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_CLI_ALL)"
549 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_CLI_CLEAN)"
550 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_CLI_INSTALL)"
551 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_CLI_UNINSTALL)"
556 dnl Handle optional features that can be enabled.
558 dnl Handle MI sub-directory configury.
560 [ --enable-gdbmi Enable GDB-MI interface],
562 case "${enable_gdbmi}" in
564 "") enable_gdbmi=yes ;;
566 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
570 case ${enable_gdbmi} in
572 if test -d "${srcdir}/mi" ; then
573 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
574 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
575 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_MI_SRCS)"
576 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
577 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
578 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
579 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
580 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
581 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
586 # Configure UI_OUT by default (before 5.2 it can be disabled)
587 # It must be configured if gdbmi is configured
590 AC_SUBST(UIOUT_CFLAGS)
593 [ --with-uiout Use new uiout functions instead of *printf's],
594 [case "${withval}" in
595 yes) want_uiout=true ;;
596 no) if test $enable_gdbmi = yes; then
597 AC_MSG_ERROR(uiout is needed for MI and cannot be disabled)
601 *) AC_MSG_ERROR(bad value ${withval} for GDB with-uiout option) ;;
603 [want_uiout=true])dnl
605 if test $want_uiout = true; then
606 UIOUT_CFLAGS="-DUI_OUT=1"
610 [ --enable-tui Enable full-screen terminal user interface],
612 case "${enable_tui}" in
614 "") enable_tui=yes ;;
616 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
620 case ${enable_tui} in
622 if test -d "${srcdir}/tui" ; then
623 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
624 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
625 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_TUI_SRCS)"
626 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
627 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
628 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
629 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
630 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
631 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
636 AC_ARG_ENABLE(netrom,
637 [ --enable-netrom Enable NetROM support],
638 [case "${enableval}" in
639 yes) enable_netrom=yes ;;
640 no) enable_netrom=no ;;
641 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
644 if test "${enable_netrom}" = "yes"; then
645 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} remote-nrom.o"
646 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
650 # NOTE: Don't add -Wall or -Wunused, they both include
651 # -Wunused-parameter which reports bogus warnings.
652 # NOTE: If you add to this list, remember to update
653 # gdb/doc/gdbint.texinfo.
654 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
655 -Wformat -Wparentheses -Wpointer-arith"
656 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
657 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
658 # -Wchar-subscripts -Wuninitialized -Wtraditional -Wshadow -Wcast-qual
659 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
660 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
661 # -Woverloaded-virtual -Winline -Werror"
662 AC_ARG_ENABLE(build-warnings,
663 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
664 [case "${enableval}" in
666 no) build_warnings="-w";;
667 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
668 build_warnings="${build_warnings} ${t}";;
669 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
670 build_warnings="${t} ${build_warnings}";;
671 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
673 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
674 echo "Setting compiler warning flags = $build_warnings" 6>&1
676 AC_ARG_ENABLE(gdb-build-warnings,
677 [ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
678 [case "${enableval}" in
680 no) build_warnings="-w";;
681 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
682 build_warnings="${build_warnings} ${t}";;
683 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
684 build_warnings="${t} ${build_warnings}";;
685 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
687 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
688 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
692 if test "x${build_warnings}" != x -a "x$GCC" = xyes
694 AC_MSG_CHECKING(compiler warning flags)
695 # Separate out the -Werror flag as some files just cannot be
696 # compiled with it enabled.
697 for w in ${build_warnings}; do
699 -Werr*) WERROR_CFLAGS=-Werror ;;
700 *) # Check that GCC accepts it
701 if $CC $w 2>&1 | grep 'unrecognized option' > /dev/null; then
704 WARN_CFLAGS="${WARN_CFLAGS} $w"
708 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
710 AC_SUBST(WARN_CFLAGS)
711 AC_SUBST(WERROR_CFLAGS)
715 AC_SUBST(MMALLOC_CFLAGS)
719 [ --with-mmalloc Use memory mapped malloc package],
720 [case "${withval}" in
721 yes) want_mmalloc=true ;;
722 no) want_mmalloc=false;;
723 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
724 esac],[want_mmalloc=false])dnl
726 if test x$want_mmalloc = xtrue; then
727 AC_DEFINE(USE_MMALLOC)
728 AC_DEFINE(MMCHECK_FORCE)
729 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
730 MMALLOC='../mmalloc/libmmalloc.a'
733 AC_ARG_WITH(included-regex,
734 [ --with-included-regex Use included regex],
735 [case "${withval}" in
736 yes) want_included_regex=true ;;
737 no) want_included_regex=false;;
738 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
739 esac],[want_included_regex=true])dnl
741 if test $want_included_regex = false; then
742 AC_MSG_CHECKING(for GNU regex)
743 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
744 [AC_TRY_COMPILE([#include <gnu-versions.h>
745 #include <sys/types.h>
747 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
748 #error No valid GNU regex.
751 [gdb_cv_have_gnu_regex=yes],
752 [gdb_cv_have_gnu_regex=no])])
753 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
754 if test $gdb_cv_have_gnu_regex = no; then
755 want_included_regex=true
759 if test x${want_included_regex} = xtrue; then
761 AC_DEFINE(USE_INCLUDED_REGEX)
765 # In the Cygwin environment, we need some additional flags.
766 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
767 [AC_EGREP_CPP(lose, [
768 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
770 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
773 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
774 SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
776 *go32* ) SER_HARDWIRE=ser-go32.o ;;
777 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
779 AC_SUBST(SER_HARDWIRE)
782 dnl Figure out which term library to use.
783 if test x$gdb_host = xgo32; then
786 if test x$gdb_cv_os_cygwin = xyes; then
787 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
790 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
791 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
792 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
793 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
794 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
795 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
797 if test "x$TERM_LIB" = x
799 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
805 # libreadline needs libuser32.a in a cygwin environment
807 if test x$gdb_cv_os_cygwin = xyes; then
810 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
816 LIBGUI="../libgui/src/libgui.a"
817 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
819 AC_SUBST(GUI_CFLAGS_X)
822 [ --with-cpu=CPU Set the default CPU variant to debug],
824 powerpc-* | powerpcle-* )
825 ## It would be nice to keep this table in sync with the one in
827 case "${with_cpu}" in
828 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
830 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
832 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
833 ## These are all RS6000 variants, as far as GDB is concerned.
843 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
849 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
852 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
857 [ --enable-gdbtk Enable GDBTK GUI front end],
858 [case "${enableval}" in
862 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
865 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
873 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
876 # Default is on for everything but go32 and Cygwin
881 if test -d "${srcdir}/gdbtk" ; then
895 if test "${enable_gdbtk}" = "yes"; then
898 if test -z "${no_tcl}"; then
902 # If $no_tk is nonempty, then we can't do Tk, and there is no
903 # point to doing Tcl.
904 if test -z "${no_tk}"; then
912 # now look for Itcl library stuff
914 CY_AC_PATH_ITCLCONFIG
915 if test -z "${no_itcl}"; then
916 CY_AC_LOAD_ITCLCONFIG
919 itcldir=../itcl/itcl/win/
922 itcldir=../itcl/itcl/unix/
927 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
928 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
932 # now look for Itk library stuff
934 if test -z "${no_itcl}"; then
939 itkdir=../itcl/itk/win/
942 itkdir=../itcl/itk/unix/
946 ITKLIB="${ITK_BUILD_LIB_SPEC}"
947 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
950 # now look for Tix library stuff
952 if test -z "${no_tix}"; then
954 TIXLIB="${TIX_BUILD_LIB_SPEC}"
955 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
958 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
959 # Tcl/Tk 8.1 require -fwritable strings. I don't
960 # know whether 8.2 will or not, but I bet it will.
961 # I don't have to worry about 7.x since we don't support it.
963 if test "$GCC" = "yes"; then
964 if test "$TCL_VERSION" != "8.0" ; then
965 GDBTK_CFLAGS="-fwritable-strings"
969 # Include some libraries that Tcl and Tk want.
970 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
971 # Yes, the ordering seems wrong here. But it isn't.
972 # TK_LIBS is the list of libraries that need to be linked
973 # after Tcl/Tk. Note that this isn't put into LIBS. If it
974 # were in LIBS then any link tests after this point would
975 # try to include things like `$(LIBGUI)', which wouldn't work.
976 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
978 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
979 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
980 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
981 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
982 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
983 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
984 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
985 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
987 if test x$gdb_cv_os_cygwin = xyes; then
988 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
989 WIN32LDAPP="-Wl,--subsystem,console"
990 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1006 AC_SUBST(GDBTK_CFLAGS)
1011 # Unlike the sim directory, whether a simulator is linked is controlled by
1012 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
1013 # This code just checks for a few cases where we'd like to ignore those
1014 # definitions, even when they're present in the '.mt' file. These cases
1015 # are when --disable-sim is specified, or if the simulator directory is
1016 # not part of the source tree.
1019 [ --enable-sim Link gdb with simulator],
1020 [echo "enable_sim = $enable_sim";
1021 echo "enableval = ${enableval}";
1022 case "${enableval}" in
1023 yes) ignore_sim=false ;;
1024 no) ignore_sim=true ;;
1025 *) ignore_sim=false ;;
1029 if test ! -d "${srcdir}/../sim"; then
1033 if test "${ignore_sim}" = "true"; then
1035 IGNORE_SIM_OBS="SIM_OBS="
1041 AC_SUBST(IGNORE_SIM)
1042 AC_SUBST(IGNORE_SIM_OBS)
1044 AC_SUBST(ENABLE_CFLAGS)
1046 AC_SUBST(CONFIG_OBS)
1047 AC_SUBST(CONFIG_LIB_OBS)
1048 AC_SUBST(CONFIG_DEPS)
1049 AC_SUBST(CONFIG_SRCS)
1050 AC_SUBST(CONFIG_INITS)
1051 AC_SUBST(CONFIG_ALL)
1052 AC_SUBST(CONFIG_CLEAN)
1053 AC_SUBST(CONFIG_INSTALL)
1054 AC_SUBST(CONFIG_UNINSTALL)
1056 # Begin stuff to support --enable-shared
1057 AC_ARG_ENABLE(shared,
1058 [ --enable-shared Use shared libraries],
1059 [case "${enableval}" in
1067 # If we have shared libraries, try to set rpath reasonably.
1068 if test "${shared}" = "true"; then
1071 HLDFLAGS='-Wl,+s,+b,$(libdir)'
1073 *-*-irix5* | *-*-irix6*)
1074 HLDFLAGS='-Wl,-rpath,$(libdir)'
1078 *-*-linux* | *-pc-linux-gnu*)
1079 HLDFLAGS='-Wl,-rpath,$(libdir)'
1082 HLDFLAGS='-R $(libdir)'
1085 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;'
1090 # On SunOS, if the linker supports the -rpath option, use it to
1091 # prevent ../bfd and ../opcodes from being included in the run time
1095 echo 'main () { }' > conftest.c
1096 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
1097 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
1099 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
1101 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
1103 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
1105 elif test "${shared}" = "true"; then
1106 HLDFLAGS='-Wl,-rpath=$(libdir)'
1108 HLDFLAGS='-Wl,-rpath='
1110 rm -f conftest.t conftest.c conftest
1115 # End stuff to support --enable-shared
1117 # target_subdir is used by the testsuite to find the target libraries.
1119 if test "${host}" != "${target}"; then
1120 target_subdir="${target_alias}/"
1122 AC_SUBST(target_subdir)
1125 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1126 if test ! -f ${host_makefile_frag}; then
1127 AC_MSG_ERROR("*** Gdb does not support host ${host}")
1129 frags="$frags $host_makefile_frag"
1131 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1132 if test ! -f ${target_makefile_frag}; then
1133 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1135 frags="$frags $target_makefile_frag"
1137 AC_SUBST_FILE(host_makefile_frag)
1138 AC_SUBST_FILE(target_makefile_frag)
1143 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1144 ' ${host_makefile_frag}`
1146 targetfile=`sed -n '
1147 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1148 ' ${target_makefile_frag}`
1150 GDB_MULTI_ARCH=`sed -n '
1151 s/GDB_MULTI_ARCH[ ]*=[ ]*\([^ ]*\)[ ]*/\1/p
1152 ' ${target_makefile_frag}`
1154 # these really aren't orthogonal true/false values of the same condition,
1155 # but shells are slow enough that I like to reuse the test conditions
1157 if test "${target}" = "${host}"; then
1158 nativefile=`sed -n '
1159 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1160 ' ${host_makefile_frag}`
1162 # GDBserver is only useful in a "native" environment
1163 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
1167 # New targets should just set gdb_multi_arch=yes in configure.tgt.
1168 # Old targets being converted can either do that or set GDB_MULTI_ARCH
1169 # in the target specific makefile frag. Eventually gdb_multi_arch=yes
1170 # will be the default.
1171 if test x"${GDB_MULTI_ARCH}" = x ; then
1172 case "${gdb_multi_arch}" in
1173 yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
1174 no ) GDB_MULTI_ARCH=0 ;;
1175 0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
1178 if test x"${GDB_MULTI_ARCH}" != x ; then
1179 AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
1181 # Warn the user when they use an old practice
1182 case "${GDB_MULTI_ARCH}" in
1184 0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
1185 AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
1186 GDB_MULTI_ARCH_PURE )
1187 if test x"${targetfile}" != x ; then
1188 AC_MSG_WARN("GDB: Ignoring TM_FILE in ${target_makefile_frag}")
1191 *) AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
1195 SUBDIRS="doc testsuite nlm"
1196 if test "${enable_multi_ice}" = "yes"; then
1197 SUBDIRS="${SUBDIRS} multi-ice"
1202 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1203 # (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1211 if test "${hostfile}" != ""; then
1213 GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1214 files="${files} ${GDB_XM_FILE}"
1215 links="${links} xm.h"
1216 AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
1222 if test "${targetfile}" != ""; then
1224 GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1225 files="${files} ${GDB_TM_FILE}"
1226 links="${links} tm.h"
1227 AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
1233 if test "${nativefile}" != ""; then
1235 GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1236 files="${files} ${GDB_NM_FILE}"
1237 links="${links} nm.h"
1238 AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
1244 AC_LINK_FILES($files, $links)
1246 dnl Check for exe extension set on certain hosts (e.g. Win32)
1249 AC_CONFIG_SUBDIRS($configdirs)
1250 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1252 dnl Autoconf doesn't provide a mechanism for modifying definitions
1253 dnl provided by makefile fragments.
1255 if test "${nativefile}" = ""; then
1256 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
1257 < Makefile > Makefile.tem
1258 mv -f Makefile.tem Makefile
1262 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1263 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1264 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1265 mv -f Makefile.tmp Makefile
1269 case x$CONFIG_HEADERS in
1270 xconfig.h:config.in)
1275 gdb_host_cpu=$gdb_host_cpu
1276 gdb_target_cpu=$gdb_target_cpu
1277 nativefile=$nativefile