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 # See if <sys/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 # See if <sys/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 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
178 AC_MSG_CHECKING(for PT_GETDBREGS)
179 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
180 [AC_TRY_COMPILE([#include <sys/types.h>
181 #include <sys/ptrace.h>],
183 [gdb_cv_have_pt_getdbregs=yes],
184 [gdb_cv_have_pt_getdbregs=no])])
185 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
186 if test $gdb_cv_have_pt_getdbregs = yes; then
187 AC_DEFINE(HAVE_PT_GETDBREGS)
191 AC_CHECK_LIB(socket, socketpair)
192 AC_CHECK_FUNCS(socketpair)
195 BFD_NEED_DECLARATION(malloc)
196 BFD_NEED_DECLARATION(realloc)
197 BFD_NEED_DECLARATION(free)
198 BFD_NEED_DECLARATION(strerror)
199 BFD_NEED_DECLARATION(strdup)
200 BFD_NEED_DECLARATION(strstr)
203 # The following save_state_t checkery is only necessary for HPUX
204 # versions earlier than 10.20. When those fade from memory, this
205 # could be expunged. --jsm 1999-03-22
207 AC_MSG_CHECKING(for HPUX save_state structure)
208 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
209 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
210 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
211 gdb_cv_hpux_sswide=no)
212 if test $gdb_cv_hpux_savestate = yes
214 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
216 if test $gdb_cv_hpux_sswide = yes
218 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
220 AC_MSG_RESULT($gdb_cv_hpux_sswide)
223 # If we are configured native on GNU/Linux, work around problems with
225 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
227 if test "${target}" = "${host}"; then
229 i[[3456]]86-*-linux*)
230 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
231 AC_DEFINE(sys_quotactl)
234 AC_DEFINE(NEW_PROC_API)
236 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
237 AC_DEFINE(NEW_PROC_API)
239 *-*-solaris2.[[678]])
240 AC_DEFINE(NEW_PROC_API)
245 if test "$ac_cv_header_sys_procfs_h" = yes; then
246 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
247 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
248 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
249 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
250 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
251 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
252 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
253 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
254 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
255 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
256 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
257 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
258 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
259 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
262 dnl Check for broken prfpregset_t type
264 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
265 dnl prfpregset_t type (it's a typedef for the pointer to a struct
266 dnl instead of the struct itself). We detect this here, and work
267 dnl around it in lin-thread.c.
269 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
270 AC_MSG_CHECKING(whether prfpregset_t type is broken)
271 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
272 [AC_TRY_RUN([#include <sys/procfs.h>
275 if (sizeof (prfpregset_t) == sizeof (void *))
279 gdb_cv_prfpregset_t_broken=no,
280 gdb_cv_prfpregset_t_broken=yes,
281 gdb_cv_prfpregset_t_broken=yes)])
282 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
283 if test $gdb_cv_prfpregset_t_broken = yes; then
284 AC_DEFINE(PRFPREGSET_T_BROKEN)
288 dnl Check for PIOCSET ioctl entry
290 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
291 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
292 [AC_TRY_COMPILE([#include <unistd.h>
293 #include <sys/types.h>
294 #include <sys/procfs.h>
297 dummy = ioctl(0, PIOCSET, &dummy);
299 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
300 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
301 if test $gdb_cv_have_procfs_piocset = yes; then
302 AC_DEFINE(HAVE_PROCFS_PIOCSET)
306 dnl For native ports (host == target), check to see what kind of
307 dnl legacy link.h support is needed. (See solib-legacy.c.)
308 if test ${host} = ${target} ; then
309 dnl Check for struct link_map with l_ members which are indicative
310 dnl of SVR4-like shared libraries
312 AC_MSG_CHECKING(for member l_addr in struct link_map)
313 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
314 [AC_TRY_COMPILE([#include <link.h>],
315 [struct link_map lm; (void) lm.l_addr;],
316 gdb_cv_have_struct_link_map_with_l_members=yes,
317 gdb_cv_have_struct_link_map_with_l_members=no)])
318 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
319 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
320 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS)
323 dnl Check for struct link_map with lm_ members which are indicative
324 dnl of SunOS-like shared libraries
326 AC_MSG_CHECKING(for member lm_addr in struct link_map)
327 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
328 [AC_TRY_COMPILE([#include <sys/types.h>
330 [struct link_map lm; (void) lm.lm_addr;],
331 gdb_cv_have_struct_link_map_with_lm_members=yes,
332 gdb_cv_have_struct_link_map_with_lm_members=no)])
333 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
334 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
335 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS)
338 dnl Check for struct so_map with som_ members which are found on
339 dnl some *BSD systems.
341 AC_MSG_CHECKING(for member som_addr in struct so_map)
342 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
343 [AC_TRY_COMPILE([#include <sys/types.h>
345 [struct so_map lm; (void) lm.som_addr;],
346 gdb_cv_have_struct_so_map_with_som_members=yes,
347 gdb_cv_have_struct_so_map_with_som_members=no)])
348 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
349 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
350 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS)
353 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
354 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
356 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
357 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
358 [AC_TRY_COMPILE([#define _SYSCALL32
359 #include <sys/link.h>], [struct link_map32 l;],
360 gdb_cv_have_struct_link_map32=yes,
361 gdb_cv_have_struct_link_map32=no)])
362 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
363 if test $gdb_cv_have_struct_link_map32 = yes; then
364 AC_DEFINE(HAVE_STRUCT_LINK_MAP32)
368 dnl See if host has libm. This is usually needed by simulators.
369 AC_CHECK_LIB(m, main)
371 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
373 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
374 dnl under Solaris 2.6 because it is some funky empty library.
375 dnl So only link in libw if we have to.
376 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
378 dnl See if compiler supports "long long" type.
380 AC_MSG_CHECKING(for long long support in compiler)
381 AC_CACHE_VAL(gdb_cv_c_long_long,
383 extern long long foo;
384 switch (foo & 2) { case 0: return 1; }
386 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
387 AC_MSG_RESULT($gdb_cv_c_long_long)
388 if test $gdb_cv_c_long_long = yes; then
389 AC_DEFINE(CC_HAS_LONG_LONG)
392 dnl See if the compiler and runtime support printing long long
394 AC_MSG_CHECKING(for long long support in printf)
395 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
400 l = (l << 16) + 0x0123;
401 l = (l << 16) + 0x4567;
402 l = (l << 16) + 0x89ab;
403 l = (l << 16) + 0xcdef;
404 sprintf (buf, "0x%016llx", l);
405 return (strcmp ("0x0123456789abcdef", buf));
407 gdb_cv_printf_has_long_long=yes,
408 gdb_cv_printf_has_long_long=no,
409 gdb_cv_printf_has_long_long=no)])
410 if test $gdb_cv_printf_has_long_long = yes; then
411 AC_DEFINE(PRINTF_HAS_LONG_LONG)
413 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
415 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
416 dnl because autoconf complains about cross-compilation issues. However, this
417 dnl code uses the same variables as the macro for compatibility.
419 AC_MSG_CHECKING(for long double support in compiler)
420 AC_CACHE_VAL(ac_cv_c_long_double,
421 [AC_TRY_COMPILE(, [long double foo;],
422 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
423 AC_MSG_RESULT($ac_cv_c_long_double)
424 if test $ac_cv_c_long_double = yes; then
425 AC_DEFINE(HAVE_LONG_DOUBLE)
428 dnl See if the compiler and runtime support printing long doubles
430 AC_MSG_CHECKING(for long double support in printf)
431 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
435 long double f = 3.141592653;
436 sprintf (buf, "%Lg", f);
437 return (strncmp ("3.14159", buf, 7));
439 gdb_cv_printf_has_long_double=yes,
440 gdb_cv_printf_has_long_double=no,
441 gdb_cv_printf_has_long_double=no)])
442 if test $gdb_cv_printf_has_long_double = yes; then
443 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
445 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
447 dnl See if the compiler and runtime support scanning long doubles
449 AC_MSG_CHECKING(for long double support in scanf)
450 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
453 char *buf = "3.141592653";
455 sscanf (buf, "%Lg", &f);
456 return !(f > 3.14159 && f < 3.14160);
458 gdb_cv_scanf_has_long_double=yes,
459 gdb_cv_scanf_has_long_double=no,
460 gdb_cv_scanf_has_long_double=no)])
461 if test $gdb_cv_scanf_has_long_double = yes; then
462 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
464 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
468 dnl See if thread_db library is around for Solaris thread debugging. Note that
469 dnl we must explicitly test for version 1 of the library because version 0
470 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
472 dnl Note that we only want this if we are both native (host == target), and
473 dnl not doing a canadian cross build (build == host).
475 if test ${build} = ${host} -a ${host} = ${target} ; then
478 AC_MSG_CHECKING(for HPUX/OSF thread support)
479 if test -f /usr/include/dce/cma_config.h ; then
480 if test "$GCC" = "yes" ; then
482 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
483 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} hpux-thread.o"
484 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
486 AC_MSG_RESULT(no (suppressed because you are not using GCC))
493 AC_MSG_CHECKING(for Solaris thread debugging library)
494 if test -f /usr/lib/libthread_db.so.1 ; then
496 AC_DEFINE(HAVE_THREAD_DB_LIB)
497 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} sol-thread.o"
498 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
499 AC_CHECK_LIB(dl, dlopen)
500 if test "$GCC" = "yes" ; then
501 # The GNU linker requires the -export-dynamic option to make
502 # all symbols visible in the dynamic symbol table.
503 hold_ldflags=$LDFLAGS
504 AC_MSG_CHECKING(for the ld -export-dynamic flag)
505 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
506 AC_TRY_LINK(, [int i;], found=yes, found=no)
507 LDFLAGS=$hold_ldflags
508 AC_MSG_RESULT($found)
509 if test $found = yes; then
510 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
513 # Sun randomly tweaked the prototypes in <proc_service.h>
515 AC_MSG_CHECKING(if <proc_service.h> is old)
516 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
518 #include <proc_service.h>
520 (struct ps_prochandle*, psaddr_t, const void*, size_t);
521 ],, gdb_cv_proc_service_is_old=no,
522 gdb_cv_proc_service_is_old=yes)
524 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
525 if test $gdb_cv_proc_service_is_old = yes; then
526 AC_DEFINE(PROC_SERVICE_IS_OLD)
533 AC_SUBST(CONFIG_LDFLAGS)
536 dnl The CLI cannot be disabled yet, but may be in the future
538 dnl Handle CLI sub-directory configury.
539 AC_ARG_ENABLE(gdbcli,
540 [ --enable-gdbcli Enable GDB-CLI interface],
542 case "${enableval}" in
543 yes) enable_gdbcli=yes ;;
544 "") enable_gdbcli=yes ;;
546 AC_MSG_ERROR(The CLI cannot be disabled yet)
549 AC_MSG_ERROR(Bad value for --enable-gdbcli: ${enableval})
554 case ${enable_gdbcli} in
556 if test -d "${srcdir}/cli" ; then
557 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_CLI_OBS)"
558 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_CLI_DEPS)"
559 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_CLI_SRCS)"
560 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_CLI_INITS)"
561 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_CLI_CFLAGS)"
562 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_CLI_ALL)"
563 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_CLI_CLEAN)"
564 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_CLI_INSTALL)"
565 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_CLI_UNINSTALL)"
570 dnl Handle optional features that can be enabled.
572 dnl Handle MI sub-directory configury.
574 [ --enable-gdbmi Enable GDB-MI interface],
576 case "${enable_gdbmi}" in
578 "") enable_gdbmi=yes ;;
580 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
584 case ${enable_gdbmi} in
586 if test -d "${srcdir}/mi" ; then
587 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
588 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
589 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_MI_SRCS)"
590 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
591 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
592 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
593 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
594 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
595 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
600 # Configure UI_OUT by default (before 5.2 it can be disabled)
601 # It must be configured if gdbmi is configured
604 AC_SUBST(UIOUT_CFLAGS)
607 [ --with-uiout Use new uiout functions instead of *printf's],
608 [case "${withval}" in
609 yes) want_uiout=true ;;
610 no) if test $enable_gdbmi = yes; then
611 AC_MSG_ERROR(uiout is needed for MI and cannot be disabled)
615 *) AC_MSG_ERROR(bad value ${withval} for GDB with-uiout option) ;;
617 [want_uiout=true])dnl
619 if test $want_uiout = true; then
620 UIOUT_CFLAGS="-DUI_OUT=1"
624 [ --enable-tui Enable full-screen terminal user interface],
626 case "${enable_tui}" in
628 "") enable_tui=yes ;;
630 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
634 case ${enable_tui} in
636 if test -d "${srcdir}/tui" ; then
637 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
638 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
639 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_TUI_SRCS)"
640 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
641 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
642 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
643 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
644 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
645 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
650 AC_ARG_ENABLE(netrom,
651 [ --enable-netrom Enable NetROM support],
652 [case "${enableval}" in
653 yes) enable_netrom=yes ;;
654 no) enable_netrom=no ;;
655 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
658 if test "${enable_netrom}" = "yes"; then
659 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} remote-nrom.o"
660 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
664 # NOTE: Don't add -Wall or -Wunused, they both include
665 # -Wunused-parameter which reports bogus warnings.
666 # NOTE: If you add to this list, remember to update
667 # gdb/doc/gdbint.texinfo.
668 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
669 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
670 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
671 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
672 # -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
673 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
674 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
675 # -Woverloaded-virtual -Winline -Werror"
676 AC_ARG_ENABLE(build-warnings,
677 [ --enable-build-warnings Enable 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 compiler warning flags = $build_warnings" 6>&1
690 AC_ARG_ENABLE(gdb-build-warnings,
691 [ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
692 [case "${enableval}" in
694 no) build_warnings="-w";;
695 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
696 build_warnings="${build_warnings} ${t}";;
697 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
698 build_warnings="${t} ${build_warnings}";;
699 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
701 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
702 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
706 if test "x${build_warnings}" != x -a "x$GCC" = xyes
708 AC_MSG_CHECKING(compiler warning flags)
709 # Separate out the -Werror flag as some files just cannot be
710 # compiled with it enabled.
711 for w in ${build_warnings}; do
713 -Werr*) WERROR_CFLAGS=-Werror ;;
714 *) # Check that GCC accepts it
715 if $CC $w 2>&1 | grep 'unrecognized option' > /dev/null; then
718 WARN_CFLAGS="${WARN_CFLAGS} $w"
722 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
724 AC_SUBST(WARN_CFLAGS)
725 AC_SUBST(WERROR_CFLAGS)
729 AC_SUBST(MMALLOC_CFLAGS)
733 [ --with-mmalloc Use memory mapped malloc package],
734 [case "${withval}" in
735 yes) want_mmalloc=true ;;
736 no) want_mmalloc=false;;
737 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
738 esac],[want_mmalloc=false])dnl
740 if test x$want_mmalloc = xtrue; then
741 AC_DEFINE(USE_MMALLOC)
742 AC_DEFINE(MMCHECK_FORCE)
743 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
744 MMALLOC='../mmalloc/libmmalloc.a'
747 AC_ARG_WITH(included-regex,
748 [ --with-included-regex Use included regex],
749 [case "${withval}" in
750 yes) want_included_regex=true ;;
751 no) want_included_regex=false;;
752 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
753 esac],[want_included_regex=true])dnl
755 if test $want_included_regex = false; then
756 AC_MSG_CHECKING(for GNU regex)
757 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
758 [AC_TRY_COMPILE([#include <gnu-versions.h>
759 #include <sys/types.h>
761 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
762 #error No valid GNU regex.
765 [gdb_cv_have_gnu_regex=yes],
766 [gdb_cv_have_gnu_regex=no])])
767 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
768 if test $gdb_cv_have_gnu_regex = no; then
769 want_included_regex=true
773 if test x${want_included_regex} = xtrue; then
775 AC_DEFINE(USE_INCLUDED_REGEX)
779 # In the Cygwin environment, we need some additional flags.
780 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
781 [AC_EGREP_CPP(lose, [
782 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
784 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
787 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
788 SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
790 *go32* ) SER_HARDWIRE=ser-go32.o ;;
791 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
793 AC_SUBST(SER_HARDWIRE)
796 dnl Figure out which term library to use.
797 if test x$gdb_host = xgo32; then
800 if test x$gdb_cv_os_cygwin = xyes; then
801 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
804 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
805 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
806 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
807 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
808 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
809 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
811 if test "x$TERM_LIB" = x
813 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
819 # libreadline needs libuser32.a in a cygwin environment
821 if test x$gdb_cv_os_cygwin = xyes; then
824 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
830 LIBGUI="../libgui/src/libgui.a"
831 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
833 AC_SUBST(GUI_CFLAGS_X)
836 [ --with-cpu=CPU Set the default CPU variant to debug],
838 powerpc-* | powerpcle-* )
839 ## It would be nice to keep this table in sync with the one in
841 case "${with_cpu}" in
842 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
844 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
846 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
847 ## These are all RS6000 variants, as far as GDB is concerned.
857 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
863 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
866 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
871 [ --enable-gdbtk Enable GDBTK GUI front end],
872 [case "${enableval}" in
876 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
879 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
887 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
890 # Default is on for everything but go32 and Cygwin
895 if test -d "${srcdir}/gdbtk" ; then
909 if test "${enable_gdbtk}" = "yes"; then
912 if test -z "${no_tcl}"; then
916 # If $no_tk is nonempty, then we can't do Tk, and there is no
917 # point to doing Tcl.
918 if test -z "${no_tk}"; then
926 # now look for Itcl library stuff
928 CY_AC_PATH_ITCLCONFIG
929 if test -z "${no_itcl}"; then
930 CY_AC_LOAD_ITCLCONFIG
933 itcldir=../itcl/itcl/win/
936 itcldir=../itcl/itcl/unix/
941 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
942 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
946 # now look for Itk library stuff
948 if test -z "${no_itcl}"; then
953 itkdir=../itcl/itk/win/
956 itkdir=../itcl/itk/unix/
960 ITKLIB="${ITK_BUILD_LIB_SPEC}"
961 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
964 # now look for Tix library stuff
966 if test -z "${no_tix}"; then
968 TIXLIB="${TIX_BUILD_LIB_SPEC}"
969 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
972 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
973 # Tcl/Tk 8.1 require -fwritable strings. I don't
974 # know whether 8.2 will or not, but I bet it will.
975 # I don't have to worry about 7.x since we don't support it.
977 if test "$GCC" = "yes"; then
978 if test "$TCL_VERSION" != "8.0" ; then
979 GDBTK_CFLAGS="-fwritable-strings"
983 # Include some libraries that Tcl and Tk want.
984 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
985 # Yes, the ordering seems wrong here. But it isn't.
986 # TK_LIBS is the list of libraries that need to be linked
987 # after Tcl/Tk. Note that this isn't put into LIBS. If it
988 # were in LIBS then any link tests after this point would
989 # try to include things like `$(LIBGUI)', which wouldn't work.
990 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
992 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
993 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
994 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
995 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
996 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
997 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
998 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
999 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
1001 if test x$gdb_cv_os_cygwin = xyes; then
1002 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1003 WIN32LDAPP="-Wl,--subsystem,console"
1004 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1020 AC_SUBST(GDBTK_CFLAGS)
1025 # Unlike the sim directory, whether a simulator is linked is controlled by
1026 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
1027 # This code just checks for a few cases where we'd like to ignore those
1028 # definitions, even when they're present in the '.mt' file. These cases
1029 # are when --disable-sim is specified, or if the simulator directory is
1030 # not part of the source tree.
1033 [ --enable-sim Link gdb with simulator],
1034 [echo "enable_sim = $enable_sim";
1035 echo "enableval = ${enableval}";
1036 case "${enableval}" in
1037 yes) ignore_sim=false ;;
1038 no) ignore_sim=true ;;
1039 *) ignore_sim=false ;;
1043 if test ! -d "${srcdir}/../sim"; then
1047 if test "${ignore_sim}" = "true"; then
1049 IGNORE_SIM_OBS="SIM_OBS="
1055 AC_SUBST(IGNORE_SIM)
1056 AC_SUBST(IGNORE_SIM_OBS)
1058 AC_SUBST(ENABLE_CFLAGS)
1060 AC_SUBST(CONFIG_OBS)
1061 AC_SUBST(CONFIG_LIB_OBS)
1062 AC_SUBST(CONFIG_DEPS)
1063 AC_SUBST(CONFIG_SRCS)
1064 AC_SUBST(CONFIG_INITS)
1065 AC_SUBST(CONFIG_ALL)
1066 AC_SUBST(CONFIG_CLEAN)
1067 AC_SUBST(CONFIG_INSTALL)
1068 AC_SUBST(CONFIG_UNINSTALL)
1070 # Begin stuff to support --enable-shared
1071 AC_ARG_ENABLE(shared,
1072 [ --enable-shared Use shared libraries],
1073 [case "${enableval}" in
1081 # If we have shared libraries, try to set rpath reasonably.
1082 if test "${shared}" = "true"; then
1085 HLDFLAGS='-Wl,+s,+b,$(libdir)'
1087 *-*-irix5* | *-*-irix6*)
1088 HLDFLAGS='-Wl,-rpath,$(libdir)'
1092 *-*-linux* | *-pc-linux-gnu*)
1093 HLDFLAGS='-Wl,-rpath,$(libdir)'
1096 HLDFLAGS='-R $(libdir)'
1099 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;'
1104 # On SunOS, if the linker supports the -rpath option, use it to
1105 # prevent ../bfd and ../opcodes from being included in the run time
1109 echo 'main () { }' > conftest.c
1110 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
1111 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
1113 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
1115 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
1117 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
1119 elif test "${shared}" = "true"; then
1120 HLDFLAGS='-Wl,-rpath=$(libdir)'
1122 HLDFLAGS='-Wl,-rpath='
1124 rm -f conftest.t conftest.c conftest
1129 # End stuff to support --enable-shared
1131 # target_subdir is used by the testsuite to find the target libraries.
1133 if test "${host}" != "${target}"; then
1134 target_subdir="${target_alias}/"
1136 AC_SUBST(target_subdir)
1139 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1140 if test ! -f ${host_makefile_frag}; then
1141 AC_MSG_ERROR("*** Gdb does not support host ${host}")
1143 frags="$frags $host_makefile_frag"
1145 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1146 if test ! -f ${target_makefile_frag}; then
1147 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1149 frags="$frags $target_makefile_frag"
1151 AC_SUBST_FILE(host_makefile_frag)
1152 AC_SUBST_FILE(target_makefile_frag)
1157 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1158 ' ${host_makefile_frag}`
1160 targetfile=`sed -n '
1161 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1162 ' ${target_makefile_frag}`
1164 GDB_MULTI_ARCH=`sed -n '
1165 s/GDB_MULTI_ARCH[ ]*=[ ]*\([^ ]*\)[ ]*/\1/p
1166 ' ${target_makefile_frag}`
1168 # these really aren't orthogonal true/false values of the same condition,
1169 # but shells are slow enough that I like to reuse the test conditions
1171 if test "${target}" = "${host}"; then
1172 nativefile=`sed -n '
1173 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1174 ' ${host_makefile_frag}`
1176 # GDBserver is only useful in a "native" environment
1177 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
1181 # New targets should just set gdb_multi_arch=yes in configure.tgt.
1182 # Old targets being converted can either do that or set GDB_MULTI_ARCH
1183 # in the target specific makefile frag. Eventually gdb_multi_arch=yes
1184 # will be the default.
1185 if test x"${GDB_MULTI_ARCH}" = x ; then
1186 case "${gdb_multi_arch}" in
1187 yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
1188 no ) GDB_MULTI_ARCH=0 ;;
1189 0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
1192 if test x"${GDB_MULTI_ARCH}" != x ; then
1193 AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
1195 # Warn the user when they use an old practice
1196 case "${GDB_MULTI_ARCH}" in
1198 0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
1199 AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
1200 GDB_MULTI_ARCH_PURE )
1201 if test x"${targetfile}" != x ; then
1202 AC_MSG_WARN("GDB: Ignoring TM_FILE in ${target_makefile_frag}")
1205 *) AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
1209 SUBDIRS="doc testsuite nlm"
1210 if test "${enable_multi_ice}" = "yes"; then
1211 SUBDIRS="${SUBDIRS} multi-ice"
1216 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1217 # (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1225 if test "${hostfile}" != ""; then
1227 GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1228 files="${files} ${GDB_XM_FILE}"
1229 links="${links} xm.h"
1230 AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
1236 if test "${targetfile}" != ""; then
1238 GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1239 files="${files} ${GDB_TM_FILE}"
1240 links="${links} tm.h"
1241 AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
1247 if test "${nativefile}" != ""; then
1249 GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1250 files="${files} ${GDB_NM_FILE}"
1251 links="${links} nm.h"
1252 AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
1258 AC_LINK_FILES($files, $links)
1260 dnl Check for exe extension set on certain hosts (e.g. Win32)
1263 AC_CONFIG_SUBDIRS($configdirs)
1264 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1266 dnl Autoconf doesn't provide a mechanism for modifying definitions
1267 dnl provided by makefile fragments.
1269 if test "${nativefile}" = ""; then
1270 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
1271 < Makefile > Makefile.tem
1272 mv -f Makefile.tem Makefile
1276 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1277 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1278 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1279 mv -f Makefile.tmp Makefile
1283 case x$CONFIG_HEADERS in
1284 xconfig.h:config.in)
1289 gdb_host_cpu=$gdb_host_cpu
1290 gdb_target_cpu=$gdb_target_cpu
1291 nativefile=$nativefile