1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
4 dnl This file is part of GDB.
6 dnl This program is free software; you can redistribute it and/or modify
7 dnl it under the terms of the GNU General Public License as published by
8 dnl the Free Software Foundation; either version 2 of the License, or
9 dnl (at your option) any later version.
11 dnl This program is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 dnl GNU General Public License for more details.
16 dnl You should have received a copy of the GNU General Public License
17 dnl along with this program; if not, write to the Free Software
18 dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 dnl Process this file with autoconf to produce a configure script.
24 AC_CONFIG_HEADER(config.h:config.in)
32 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
35 dnl gdb doesn't use gettext, but bfd does. We call this to ensure we
36 dnl link with the correct libraries.
40 dnl List of object files added by configure.
53 configdirs="doc testsuite"
55 AC_ARG_ENABLE(multi-ice,
56 [ --enable-multi-ice Build the multi-ice-gdb-server],
57 [case "${enableval}" in
58 yes ) enable_multi_ice="yes" ;;
59 no) enable_multi_ice="no" ;;
60 *) AC_MSG_ERROR(Bad value for --enable-multi-ice: ${enableval}) ;;
64 if test "${enable_multi_ice}" = "yes"; then
65 configdirs="${configdirs} multi-ice"
71 . ${srcdir}/configure.host
73 . ${srcdir}/configure.tgt
75 targ=${target} ; . ${srcdir}/../bfd/config.bfd
80 dnl use BFD to determine the default architecture and byte order
81 dnl (bfd_vec->byteorder provides the latter).
83 . ${srcdir}/../bfd/config.bfd
85 dnl We only want the first arch, if there is more than one.
86 targ_archs=`echo ${targ_archs} | sed -e 's/ .*//;'`
88 if test x"${targ_archs}" != x ; then
89 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, ${targ_archs})
91 if test x"${targ_defvec}" != x ; then
92 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, ${targ_defvec})
98 AC_CHECK_TOOL(RANLIB, ranlib, :)
99 AC_CHECK_TOOL(DLLTOOL, dlltool)
100 AC_CHECK_TOOL(WINDRES, windres)
103 dnl MiG is needed for the Hurd.
104 AC_CHECK_TOOL(MIG, mig)
112 dnl Solaris 7 needs _MSE_INT_H defined to avoid a clash between <widec.h>
113 dnl and <wchar.h> that causes AC_CHECK_HEADERS to think <curses.h> doesn't
116 case $host_os in solaris2.7 | solaris2.8) case "$GCC" in yes)
117 AC_DEFINE(_MSE_INT_H)
120 AC_CHECK_HEADERS(ctype.h endian.h link.h thread_db.h proc_service.h \
121 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
122 string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
123 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
124 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
125 time.h sys/ioctl.h sys/user.h \
126 dirent.h sys/ndir.h sys/dir.h ndir.h \
133 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
137 # See if machine/reg.h supports the %fs and %gs i386 segment registers.
138 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
139 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
140 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
141 gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
142 if test $gdb_cv_struct_reg_r_fs = yes; then
143 AC_DEFINE(HAVE_STRUCT_REG_R_FS)
145 AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
146 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
147 gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
148 if test $gdb_cv_struct_reg_r_gs = yes; then
149 AC_DEFINE(HAVE_STRUCT_REG_R_GS)
152 dnl See if ptrace.h provides the PTRACE_GETREGS request.
153 AC_MSG_CHECKING(for PTRACE_GETREGS)
154 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
155 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
157 [gdb_cv_have_ptrace_getregs=yes],
158 [gdb_cv_have_ptrace_getregs=no])])
159 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
160 if test $gdb_cv_have_ptrace_getregs = yes; then
161 AC_DEFINE(HAVE_PTRACE_GETREGS)
164 dnl See if ptrace.h provides the PTRACE_GETFPXREGS request.
165 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
166 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
167 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
168 [PTRACE_GETFPXREGS;],
169 [gdb_cv_have_ptrace_getfpxregs=yes],
170 [gdb_cv_have_ptrace_getfpxregs=no])])
171 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
172 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
173 AC_DEFINE(HAVE_PTRACE_GETFPXREGS)
176 AC_CHECK_LIB(socket, socketpair)
177 AC_CHECK_FUNCS(socketpair)
180 BFD_NEED_DECLARATION(malloc)
181 BFD_NEED_DECLARATION(realloc)
182 BFD_NEED_DECLARATION(free)
183 BFD_NEED_DECLARATION(strerror)
184 BFD_NEED_DECLARATION(strdup)
185 BFD_NEED_DECLARATION(strstr)
188 # The following save_state_t checkery is only necessary for HPUX
189 # versions earlier than 10.20. When those fade from memory, this
190 # could be expunged. --jsm 1999-03-22
192 AC_MSG_CHECKING(for HPUX save_state structure)
193 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
194 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
195 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
196 gdb_cv_hpux_sswide=no)
197 if test $gdb_cv_hpux_savestate = yes
199 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
201 if test $gdb_cv_hpux_sswide = yes
203 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
205 AC_MSG_RESULT($gdb_cv_hpux_sswide)
208 # If we are configured native on GNU/Linux, work around problems with
210 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
212 if test "${target}" = "${host}"; then
214 i[[3456]]86-*-linux*)
215 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
216 AC_DEFINE(sys_quotactl)
218 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
219 AC_DEFINE(NEW_PROC_API)
221 *-*-solaris2.[[678]])
222 AC_DEFINE(NEW_PROC_API)
227 if test "$ac_cv_header_sys_procfs_h" = yes; then
228 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
229 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
230 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
231 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
232 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
233 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
234 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
235 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
236 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
237 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
239 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
240 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
242 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
243 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
244 [AC_TRY_COMPILE([#define _SYSCALL32
245 #include <sys/link.h>], [struct link_map32 l;],
246 gdb_cv_have_struct_link_map32=yes,
247 gdb_cv_have_struct_link_map32=no)])
248 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
249 if test $gdb_cv_have_struct_link_map32 = yes; then
250 AC_DEFINE(HAVE_STRUCT_LINK_MAP32)
253 dnl Check for broken prfpregset_t type
255 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
256 dnl prfpregset_t type (it's a typedef for the pointer to a struct
257 dnl instead of the struct itself). We detect this here, and work
258 dnl around it in lin-thread.c.
260 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
261 AC_MSG_CHECKING(whether prfpregset_t type is broken)
262 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
263 [AC_TRY_RUN([#include <sys/procfs.h>
266 if (sizeof (prfpregset_t) == sizeof (void *))
270 gdb_cv_prfpregset_t_broken=no,
271 gdb_cv_prfpregset_t_broken=yes,
272 gdb_cv_prfpregset_t_broken=yes)])
273 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
274 if test $gdb_cv_prfpregset_t_broken = yes; then
275 AC_DEFINE(PRFPREGSET_T_BROKEN)
279 dnl Check for PIOCSET ioctl entry
281 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
282 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
283 [AC_TRY_COMPILE([#include <unistd.h>
284 #include <sys/types.h>
285 #include <sys/procfs.h>
288 dummy = ioctl(0, PIOCSET, &dummy);
290 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
291 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
292 if test $gdb_cv_have_procfs_piocset = yes; then
293 AC_DEFINE(HAVE_PROCFS_PIOCSET)
297 dnl See if host has libm. This is usually needed by simulators.
298 AC_CHECK_LIB(m, main)
300 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
302 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
303 dnl under Solaris 2.6 because it is some funky empty library.
304 dnl So only link in libw if we have to.
305 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
307 dnl See if compiler supports "long long" type.
309 AC_MSG_CHECKING(for long long support in compiler)
310 AC_CACHE_VAL(gdb_cv_c_long_long,
312 extern long long foo;
313 switch (foo & 2) { case 0: return 1; }
315 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
316 AC_MSG_RESULT($gdb_cv_c_long_long)
317 if test $gdb_cv_c_long_long = yes; then
318 AC_DEFINE(CC_HAS_LONG_LONG)
321 dnl See if the compiler and runtime support printing long long
323 AC_MSG_CHECKING(for long long support in printf)
324 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
329 l = (l << 16) + 0x0123;
330 l = (l << 16) + 0x4567;
331 l = (l << 16) + 0x89ab;
332 l = (l << 16) + 0xcdef;
333 sprintf (buf, "0x%016llx", l);
334 return (strcmp ("0x0123456789abcdef", buf));
336 gdb_cv_printf_has_long_long=yes,
337 gdb_cv_printf_has_long_long=no,
338 gdb_cv_printf_has_long_long=no)])
339 if test $gdb_cv_printf_has_long_long = yes; then
340 AC_DEFINE(PRINTF_HAS_LONG_LONG)
342 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
344 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
345 dnl because autoconf complains about cross-compilation issues. However, this
346 dnl code uses the same variables as the macro for compatibility.
348 AC_MSG_CHECKING(for long double support in compiler)
349 AC_CACHE_VAL(ac_cv_c_long_double,
350 [AC_TRY_COMPILE(, [long double foo;],
351 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
352 AC_MSG_RESULT($ac_cv_c_long_double)
353 if test $ac_cv_c_long_double = yes; then
354 AC_DEFINE(HAVE_LONG_DOUBLE)
357 dnl See if the compiler and runtime support printing long doubles
359 AC_MSG_CHECKING(for long double support in printf)
360 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
364 long double f = 3.141592653;
365 sprintf (buf, "%Lg", f);
366 return (strncmp ("3.14159", buf, 7));
368 gdb_cv_printf_has_long_double=yes,
369 gdb_cv_printf_has_long_double=no,
370 gdb_cv_printf_has_long_double=no)])
371 if test $gdb_cv_printf_has_long_double = yes; then
372 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
374 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
376 dnl See if the compiler and runtime support scanning long doubles
378 AC_MSG_CHECKING(for long double support in scanf)
379 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
382 char *buf = "3.141592653";
384 sscanf (buf, "%Lg", &f);
385 return !(f > 3.14159 && f < 3.14160);
387 gdb_cv_scanf_has_long_double=yes,
388 gdb_cv_scanf_has_long_double=no,
389 gdb_cv_scanf_has_long_double=no)])
390 if test $gdb_cv_scanf_has_long_double = yes; then
391 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
393 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
397 dnl See if thread_db library is around for Solaris thread debugging. Note that
398 dnl we must explicitly test for version 1 of the library because version 0
399 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
401 dnl Note that we only want this if we are both native (host == target), and
402 dnl not doing a canadian cross build (build == host).
404 if test ${build} = ${host} -a ${host} = ${target} ; then
407 AC_MSG_CHECKING(for HPUX/OSF thread support)
408 if test -f /usr/include/dce/cma_config.h ; then
409 if test "$GCC" = "yes" ; then
411 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
412 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} hpux-thread.o"
413 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
415 AC_MSG_RESULT(no (suppressed because you are not using GCC))
422 AC_MSG_CHECKING(for Solaris thread debugging library)
423 if test -f /usr/lib/libthread_db.so.1 ; then
425 AC_DEFINE(HAVE_THREAD_DB_LIB)
426 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} sol-thread.o"
427 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
428 AC_CHECK_LIB(dl, dlopen)
429 if test "$GCC" = "yes" ; then
430 # The GNU linker requires the -export-dynamic option to make
431 # all symbols visible in the dynamic symbol table.
432 hold_ldflags=$LDFLAGS
433 AC_MSG_CHECKING(for the ld -export-dynamic flag)
434 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
435 AC_TRY_LINK(, [int i;], found=yes, found=no)
436 LDFLAGS=$hold_ldflags
437 AC_MSG_RESULT($found)
438 if test $found = yes; then
439 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
442 # Sun randomly tweaked the prototypes in <proc_service.h>
444 AC_MSG_CHECKING(if <proc_service.h> is old)
445 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
447 #include <proc_service.h>
449 (struct ps_prochandle*, psaddr_t, const void*, size_t);
450 ],, gdb_cv_proc_service_is_old=no,
451 gdb_cv_proc_service_is_old=yes)
453 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
454 if test $gdb_cv_proc_service_is_old = yes; then
455 AC_DEFINE(PROC_SERVICE_IS_OLD)
462 AC_SUBST(CONFIG_LDFLAGS)
465 dnl The CLI cannot be disabled yet, but may be in the future
467 dnl Handle CLI sub-directory configury.
468 AC_ARG_ENABLE(gdbcli,
469 [ --enable-gdbcli Enable GDB-CLI interface],
471 case "${enableval}" in
472 yes) enable_gdbcli=yes ;;
473 "") enable_gdbcli=yes ;;
475 AC_MSG_ERROR(The CLI cannot be disabled yet)
478 AC_MSG_ERROR(Bad value for --enable-gdbcli: ${enableval})
483 case ${enable_gdbcli} in
485 if test -d "${srcdir}/cli" ; then
486 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_CLI_OBS)"
487 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_CLI_DEPS)"
488 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_CLI_SRCS)"
489 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_CLI_INITS)"
490 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_CLI_CFLAGS)"
491 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_CLI_ALL)"
492 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_CLI_CLEAN)"
493 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_CLI_INSTALL)"
494 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_CLI_UNINSTALL)"
499 dnl Handle optional features that can be enabled.
501 dnl Handle MI sub-directory configury.
503 [ --enable-gdbmi Enable GDB-MI interface],
505 case "${enable_gdbmi}" in
507 "") enable_gdbmi=yes ;;
509 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
513 case ${enable_gdbmi} in
515 if test -d "${srcdir}/mi" ; then
516 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
517 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
518 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_MI_SRCS)"
519 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
520 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
521 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
522 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
523 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
524 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
529 # Configure UI_OUT by default (before 5.2 it can be disabled)
530 # It must be configured if gdbmi is configured
533 AC_SUBST(UIOUT_CFLAGS)
536 [ --with-uiout Use new uiout functions intead of *printf's],
537 [case "${withval}" in
538 yes) want_uiout=true ;;
539 no) if test $enable_gdbmi = yes; then
540 AC_MSG_ERROR(uiout is needed for MI and cannot be disabled)
544 *) AC_MSG_ERROR(bad value ${withval} for GDB with-uiout option) ;;
546 [want_uiout=true])dnl
548 if test $want_uiout = true; then
549 UIOUT_CFLAGS="-DUI_OUT=1"
553 [ --enable-tui Enable full-screen terminal user interface],
555 case "${enable_tui}" in
557 "") enable_tui=yes ;;
559 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
563 case ${enable_tui} in
565 if test -d "${srcdir}/tui" ; then
566 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
567 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
568 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_TUI_SRCS)"
569 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
570 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
571 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
572 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
573 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
574 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
579 AC_ARG_ENABLE(netrom,
580 [ --enable-netrom Enable NetROM support],
581 [case "${enableval}" in
582 yes) enable_netrom=yes ;;
583 no) enable_netrom=no ;;
584 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
587 if test "${enable_netrom}" = "yes"; then
588 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} remote-nrom.o"
589 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
593 # NOTE: Don't add -Wall or -Wunused, they both include
594 # -Wunused-parameter which reports bogus warnings.
595 # NOTE: If you add to this list, remember to update
596 # gdb/doc/gdbint.texinfo.
597 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
598 -Wformat -Wparentheses -Wpointer-arith"
599 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
600 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
601 # -Wchar-subscripts -Wuninitialized -Wtraditional -Wshadow -Wcast-qual
602 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
603 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
604 # -Woverloaded-virtual -Winline -Werror"
605 AC_ARG_ENABLE(build-warnings,
606 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
607 [case "${enableval}" in
609 no) build_warnings="-w";;
610 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
611 build_warnings="${build_warnings} ${t}";;
612 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
613 build_warnings="${t} ${build_warnings}";;
614 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
616 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
617 echo "Setting compiler warning flags = $build_warnings" 6>&1
619 AC_ARG_ENABLE(gdb-build-warnings,
620 [ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
621 [case "${enableval}" in
623 no) build_warnings="-w";;
624 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
625 build_warnings="${build_warnings} ${t}";;
626 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
627 build_warnings="${t} ${build_warnings}";;
628 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
630 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
631 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
635 if test "x${build_warnings}" != x -a "x$GCC" = xyes
637 AC_MSG_CHECKING(compiler warning flags)
638 # Separate out the -Werror flag as some files just cannot be
639 # compiled with it enabled.
640 for w in ${build_warnings}; do
642 -Werr*) WERROR_CFLAGS=-Werror ;;
643 *) # Check that GCC accepts it
644 if $CC $w 2>&1 | grep 'unrecognized option' > /dev/null; then
647 WARN_CFLAGS="${WARN_CFLAGS} $w"
651 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
653 AC_SUBST(WARN_CFLAGS)
654 AC_SUBST(WERROR_CFLAGS)
658 AC_SUBST(MMALLOC_CFLAGS)
662 [ --with-mmalloc Use memory mapped malloc package],
663 [case "${withval}" in
664 yes) want_mmalloc=true ;;
665 no) want_mmalloc=false;;
666 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
667 esac],[want_mmalloc=false])dnl
669 if test x$want_mmalloc = xtrue; then
670 AC_DEFINE(USE_MMALLOC)
671 AC_DEFINE(MMCHECK_FORCE)
672 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
673 MMALLOC='../mmalloc/libmmalloc.a'
676 AC_ARG_WITH(included-regex,
677 [ --with-included-regex Use included regex],
678 [case "${withval}" in
679 yes) want_included_regex=true ;;
680 no) want_included_regex=false;;
681 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
682 esac],[want_included_regex=true])dnl
684 if test $want_included_regex = false; then
685 AC_MSG_CHECKING(for GNU regex)
686 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
687 [AC_TRY_COMPILE([#include <gnu-versions.h>
688 #include <sys/types.h>
690 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
691 #error No valid GNU regex.
694 [gdb_cv_have_gnu_regex=yes],
695 [gdb_cv_have_gnu_regex=no])])
696 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
697 if test $gdb_cv_have_gnu_regex = no; then
698 want_included_regex=true
702 if test x${want_included_regex} = xtrue; then
704 AC_DEFINE(USE_INCLUDED_REGEX)
708 # In the Cygwin environment, we need some additional flags.
709 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
710 [AC_EGREP_CPP(lose, [
711 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
713 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
716 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
717 SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
719 *go32* ) SER_HARDWIRE=ser-go32.o ;;
720 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
722 AC_SUBST(SER_HARDWIRE)
725 dnl Figure out which term library to use.
726 if test x$gdb_host = xgo32; then
729 if test x$gdb_cv_os_cygwin = xyes; then
730 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
733 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
734 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
735 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
736 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
737 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
738 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
740 if test "x$TERM_LIB" = x
742 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
748 # libreadline needs libuser32.a in a cygwin environment
750 if test x$gdb_cv_os_cygwin = xyes; then
753 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
759 LIBGUI="../libgui/src/libgui.a"
760 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
762 AC_SUBST(GUI_CFLAGS_X)
765 [ --with-cpu=CPU Set the default CPU variant to debug],
767 powerpc-* | powerpcle-* )
768 ## It would be nice to keep this table in sync with the one in
770 case "${with_cpu}" in
771 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
773 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
775 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
776 ## These are all RS6000 variants, as far as GDB is concerned.
786 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
792 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
795 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
800 [ --enable-gdbtk Enable GDBTK GUI front end],
801 [case "${enableval}" in
805 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
808 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
816 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
819 # Default is on for everything but go32 and Cygwin
824 if test -d "${srcdir}/gdbtk" ; then
838 if test "${enable_gdbtk}" = "yes"; then
841 if test -z "${no_tcl}"; then
845 # If $no_tk is nonempty, then we can't do Tk, and there is no
846 # point to doing Tcl.
847 if test -z "${no_tk}"; then
855 # now look for Itcl library stuff
857 CY_AC_PATH_ITCLCONFIG
858 if test -z "${no_itcl}"; then
859 CY_AC_LOAD_ITCLCONFIG
862 itcldir=../itcl/itcl/win/
865 itcldir=../itcl/itcl/unix/
870 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
871 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
875 # now look for Itk library stuff
877 if test -z "${no_itcl}"; then
882 itkdir=../itcl/itk/win/
885 itkdir=../itcl/itk/unix/
889 ITKLIB="${ITK_BUILD_LIB_SPEC}"
890 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
893 # now look for Tix library stuff
895 if test -z "${no_tix}"; then
897 TIXLIB="${TIX_BUILD_LIB_SPEC}"
898 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
901 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
902 # Tcl/Tk 8.1 require -fwritable strings. I don't
903 # know whether 8.2 will or not, but I bet it will.
904 # I don't have to worry about 7.x since we don't support it.
906 if test "$GCC" = "yes"; then
907 if test "$TCL_VERSION" != "8.0" ; then
908 GDBTK_CFLAGS="-fwritable-strings"
912 # Include some libraries that Tcl and Tk want.
913 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
914 # Yes, the ordering seems wrong here. But it isn't.
915 # TK_LIBS is the list of libraries that need to be linked
916 # after Tcl/Tk. Note that this isn't put into LIBS. If it
917 # were in LIBS then any link tests after this point would
918 # try to include things like `$(LIBGUI)', which wouldn't work.
919 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
921 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
922 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
923 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
924 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
925 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
926 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
927 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
928 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
930 if test x$gdb_cv_os_cygwin = xyes; then
931 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
932 WIN32LDAPP="-Wl,--subsystem,console"
933 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
949 AC_SUBST(GDBTK_CFLAGS)
954 # Unlike the sim directory, whether a simulator is linked is controlled by
955 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
956 # This code just checks for a few cases where we'd like to ignore those
957 # definitions, even when they're present in the '.mt' file. These cases
958 # are when --disable-sim is specified, or if the simulator directory is
959 # not part of the soruce tree.
962 [ --enable-sim Link gdb with simulator],
963 [echo "enable_sim = $enable_sim";
964 echo "enableval = ${enableval}";
965 case "${enableval}" in
966 yes) ignore_sim=false ;;
967 no) ignore_sim=true ;;
968 *) ignore_sim=false ;;
972 if test ! -d "${srcdir}/../sim"; then
976 if test "${ignore_sim}" = "true"; then
978 IGNORE_SIM_OBS="SIM_OBS="
985 AC_SUBST(IGNORE_SIM_OBS)
987 AC_SUBST(ENABLE_CFLAGS)
990 AC_SUBST(CONFIG_LIB_OBS)
991 AC_SUBST(CONFIG_DEPS)
992 AC_SUBST(CONFIG_SRCS)
993 AC_SUBST(CONFIG_INITS)
995 AC_SUBST(CONFIG_CLEAN)
996 AC_SUBST(CONFIG_INSTALL)
997 AC_SUBST(CONFIG_UNINSTALL)
999 # Begin stuff to support --enable-shared
1000 AC_ARG_ENABLE(shared,
1001 [ --enable-shared Use shared libraries],
1002 [case "${enableval}" in
1010 # If we have shared libraries, try to set rpath reasonably.
1011 if test "${shared}" = "true"; then
1014 HLDFLAGS='-Wl,+s,+b,$(libdir)'
1016 *-*-irix5* | *-*-irix6*)
1017 HLDFLAGS='-Wl,-rpath,$(libdir)'
1021 *-*-linux* | *-pc-linux-gnu*)
1022 HLDFLAGS='-Wl,-rpath,$(libdir)'
1025 HLDFLAGS='-R $(libdir)'
1028 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;'
1033 # On SunOS, if the linker supports the -rpath option, use it to
1034 # prevent ../bfd and ../opcodes from being included in the run time
1038 echo 'main () { }' > conftest.c
1039 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
1040 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
1042 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
1044 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
1046 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
1048 elif test "${shared}" = "true"; then
1049 HLDFLAGS='-Wl,-rpath=$(libdir)'
1051 HLDFLAGS='-Wl,-rpath='
1053 rm -f conftest.t conftest.c conftest
1058 # End stuff to support --enable-shared
1060 # target_subdir is used by the testsuite to find the target libraries.
1062 if test "${host}" != "${target}"; then
1063 target_subdir="${target_alias}/"
1065 AC_SUBST(target_subdir)
1068 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1069 if test ! -f ${host_makefile_frag}; then
1070 AC_MSG_ERROR("*** Gdb does not support host ${host}")
1072 frags="$frags $host_makefile_frag"
1074 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1075 if test ! -f ${target_makefile_frag}; then
1076 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1078 frags="$frags $target_makefile_frag"
1080 AC_SUBST_FILE(host_makefile_frag)
1081 AC_SUBST_FILE(target_makefile_frag)
1086 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1087 ' ${host_makefile_frag}`
1089 targetfile=`sed -n '
1090 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1091 ' ${target_makefile_frag}`
1093 GDB_MULTI_ARCH=`sed -n '
1094 s/GDB_MULTI_ARCH[ ]*=[ ]*\([^ ]*\)[ ]*/\1/p
1095 ' ${target_makefile_frag}`
1097 # these really aren't orthogonal true/false values of the same condition,
1098 # but shells are slow enough that I like to reuse the test conditions
1100 if test "${target}" = "${host}"; then
1101 nativefile=`sed -n '
1102 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1103 ' ${host_makefile_frag}`
1105 # GDBserver is only useful in a "native" enviroment
1106 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
1110 # New targets should just set gdb_multi_arch=yes in configure.tgt.
1111 # Old targets being converted can either do that or set GDB_MULTI_ARCH
1112 # in the target specific makefile frag. Eventually gdb_multi_arch=yes
1113 # will be the default.
1114 if test x"${GDB_MULTI_ARCH}" = x ; then
1115 case "${gdb_multi_arch}" in
1116 yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
1117 no ) GDB_MULTI_ARCH=0 ;;
1118 0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
1121 if test x"${GDB_MULTI_ARCH}" != x ; then
1122 AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
1124 # Warn the user when they use an old pratice
1125 case "${GDB_MULTI_ARCH}" in
1127 0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
1128 AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
1129 GDB_MULTI_ARCH_PURE )
1130 if test x"${targetfile}" != x ; then
1131 AC_MSG_WARN("GDB: Ingoring TM_FILE in ${target_makefile_frag}")
1134 *) AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
1138 SUBDIRS="doc testsuite nlm"
1139 if test "${enable_multi_ice}" = "yes"; then
1140 SUBDIRS="${SUBDIRS} multi-ice"
1145 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1146 # (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1154 if test "${hostfile}" != ""; then
1156 GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1157 files="${files} ${GDB_XM_FILE}"
1158 links="${links} xm.h"
1159 AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
1165 if test "${targetfile}" != ""; then
1167 GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1168 files="${files} ${GDB_TM_FILE}"
1169 links="${links} tm.h"
1170 AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
1176 if test "${nativefile}" != ""; then
1178 GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1179 files="${files} ${GDB_NM_FILE}"
1180 links="${links} nm.h"
1181 AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
1187 AC_LINK_FILES($files, $links)
1189 dnl Check for exe extension set on certain hosts (e.g. Win32)
1192 AC_CONFIG_SUBDIRS($configdirs)
1193 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1195 dnl Autoconf doesn't provide a mechanism for modifying definitions
1196 dnl provided by makefile fragments.
1198 if test "${nativefile}" = ""; then
1199 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
1200 < Makefile > Makefile.tem
1201 mv -f Makefile.tem Makefile
1205 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1206 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1207 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1208 mv -f Makefile.tmp Makefile
1212 case x$CONFIG_HEADERS in
1213 xconfig.h:config.in)
1218 gdb_host_cpu=$gdb_host_cpu
1219 gdb_target_cpu=$gdb_target_cpu
1220 nativefile=$nativefile