1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright 1995, 1996, 1997, 1998, 1999 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.
52 configdirs="doc testsuite"
54 AC_ARG_ENABLE(multi-ice,
55 [ --enable-multi-ice Build the multi-ice-gdb-server],
56 [case "${enableval}" in
57 yes ) enable_multi_ice="yes" ;;
58 no) enable_multi_ice="no" ;;
59 *) AC_MSG_ERROR(Bad value for --enable-multi-ice: ${enableval}) ;;
63 if test "${enable_multi_ice}" = "yes"; then
64 configdirs="${configdirs} multi-ice"
70 . ${srcdir}/configure.host
72 . ${srcdir}/configure.tgt
80 AC_CHECK_TOOL(RANLIB, ranlib, :)
81 AC_CHECK_TOOL(DLLTOOL, dlltool)
82 AC_CHECK_TOOL(WINDRES, windres)
85 dnl MiG is needed for the Hurd.
86 AC_CHECK_TOOL(MIG, mig)
94 dnl Solaris 7 needs _MSE_INT_H defined to avoid a clash between <widec.h>
95 dnl and <wchar.h> that causes AC_CHECK_HEADERS to think <curses.h> doesn't
98 case $host_os in solaris2.7) case "$GCC" in yes)
102 AC_CHECK_HEADERS(ctype.h endian.h link.h thread_db.h proc_service.h \
103 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
104 string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
105 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
106 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
107 time.h sys/ioctl.h sys/user.h \
108 dirent.h sys/ndir.h sys/dir.h ndir.h \
114 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
117 # See if machine/reg.h supports the %fs and %gs i386 segment registers.
118 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
119 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_r_fs,
120 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
121 gdb_cv_struct_r_fs=yes, gdb_cv_struct_r_fs=no)])
122 if test $gdb_cv_struct_r_fs = yes; then
125 AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_r_gs,
126 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
127 gdb_cv_struct_r_gs=yes, gdb_cv_struct_r_gs=no)])
128 if test $gdb_cv_struct_r_gs = yes; then
132 dnl See if ptrace.h provides the PTRACE_GETREGS request.
133 AC_MSG_CHECKING(for PTRACE_GETREGS)
134 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
135 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
137 [gdb_cv_have_ptrace_getregs=yes],
138 [gdb_cv_have_ptrace_getregs=no])])
139 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
140 if test $gdb_cv_have_ptrace_getregs = yes; then
141 AC_DEFINE(HAVE_PTRACE_GETREGS)
144 dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
145 dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
146 dnl Linux kernel patch for SSE support. That patch may or may not
147 dnl actually make it into the official distribution. If you find that
148 dnl years have gone by since this configure test was added, and Linux
149 dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
150 dnl make it, and you can delete this code.
151 AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
152 AC_CACHE_VAL(gdb_cv_have_ptrace_getxfpregs,
153 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
154 [PTRACE_GETXFPREGS;],
155 [gdb_cv_have_ptrace_getxfpregs=yes],
156 [gdb_cv_have_ptrace_getxfpregs=no])])
157 AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
158 if test $gdb_cv_have_ptrace_getxfpregs = yes; then
159 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
162 AC_CHECK_LIB(socket, socketpair)
163 AC_CHECK_FUNCS(socketpair)
166 BFD_NEED_DECLARATION(malloc)
167 BFD_NEED_DECLARATION(realloc)
168 BFD_NEED_DECLARATION(free)
169 BFD_NEED_DECLARATION(strerror)
170 BFD_NEED_DECLARATION(strdup)
171 BFD_NEED_DECLARATION(strstr)
174 # The following save_state_t checkery is only necessary for HPUX
175 # versions earlier than 10.20. When those fade from memory, this
176 # could be expunged. --jsm 1999-03-22
178 AC_MSG_CHECKING(for HPUX save_state structure)
179 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
180 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
181 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
182 gdb_cv_hpux_sswide=no)
183 if test $gdb_cv_hpux_savestate = yes
185 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
187 if test $gdb_cv_hpux_sswide = yes
189 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
191 AC_MSG_RESULT($gdb_cv_hpux_sswide)
194 # If we are configured native on GNU/Linux, work around problems with
196 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
198 if test "${target}" = "${host}"; then
200 i[[3456]]86-*-linux*)
201 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
202 AC_DEFINE(sys_quotactl)
204 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
205 AC_DEFINE(NEW_PROC_API)
207 *-*-solaris2.[[678]])
208 AC_DEFINE(NEW_PROC_API)
213 if test "$ac_cv_header_sys_procfs_h" = yes; then
214 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
215 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
216 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
217 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
218 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
219 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
220 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
221 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
223 dnl Check for broken prfpregset_t type
225 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
226 dnl prfpregset_t type (it's a typedef for the pointer to a struct
227 dnl instead of the struct itself). We detect this here, and work
228 dnl around it in lin-thread.c.
230 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
231 AC_MSG_CHECKING(whether prfpregset_t type is broken)
232 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
233 [AC_TRY_RUN([#include <sys/procfs.h>
236 if (sizeof (prfpregset_t) == sizeof (void *))
240 gdb_cv_prfpregset_t_broken=no,
241 gdb_cv_prfpregset_t_broken=yes,
242 gdb_cv_prfpregset_t_broken=yes)])
243 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
244 if test $gdb_cv_prfpregset_t_broken = yes; then
245 AC_DEFINE(PRFPREGSET_T_BROKEN)
249 dnl Check for PIOCSET ioctl entry
251 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
252 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
253 [AC_TRY_COMPILE([#include <unistd.h>
254 #include <sys/types.h>
255 #include <sys/procfs.h>
258 dummy = ioctl(0, PIOCSET, &dummy);
260 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
261 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
262 if test $gdb_cv_have_procfs_piocset = yes; then
263 AC_DEFINE(HAVE_PROCFS_PIOCSET)
267 dnl See if host has libm. This is usually needed by simulators.
268 AC_CHECK_LIB(m, main)
270 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
272 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
273 dnl under Solaris 2.6 because it is some funky empty library.
274 dnl So only link in libw if we have to.
275 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
277 dnl See if compiler supports "long long" type.
279 AC_MSG_CHECKING(for long long support in compiler)
280 AC_CACHE_VAL(gdb_cv_c_long_long,
282 extern long long foo;
283 switch (foo & 2) { case 0: return 1; }
285 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
286 AC_MSG_RESULT($gdb_cv_c_long_long)
287 if test $gdb_cv_c_long_long = yes; then
288 AC_DEFINE(CC_HAS_LONG_LONG)
291 dnl See if the compiler and runtime support printing long long
293 AC_MSG_CHECKING(for long long support in printf)
294 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
299 l = (l << 16) + 0x0123;
300 l = (l << 16) + 0x4567;
301 l = (l << 16) + 0x89ab;
302 l = (l << 16) + 0xcdef;
303 sprintf (buf, "0x%016llx", l);
304 return (strcmp ("0x0123456789abcdef", buf));
306 gdb_cv_printf_has_long_long=yes,
307 gdb_cv_printf_has_long_long=no,
308 gdb_cv_printf_has_long_long=no)])
309 if test $gdb_cv_printf_has_long_long = yes; then
310 AC_DEFINE(PRINTF_HAS_LONG_LONG)
312 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
314 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
315 dnl because autoconf complains about cross-compilation issues. However, this
316 dnl code uses the same variables as the macro for compatibility.
318 AC_MSG_CHECKING(for long double support in compiler)
319 AC_CACHE_VAL(ac_cv_c_long_double,
320 [AC_TRY_COMPILE(, [long double foo;],
321 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
322 AC_MSG_RESULT($ac_cv_c_long_double)
323 if test $ac_cv_c_long_double = yes; then
324 AC_DEFINE(HAVE_LONG_DOUBLE)
327 dnl See if the compiler and runtime support printing long doubles
329 AC_MSG_CHECKING(for long double support in printf)
330 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
334 long double f = 3.141592653;
335 sprintf (buf, "%Lg", f);
336 return (strncmp ("3.14159", buf, 7));
338 gdb_cv_printf_has_long_double=yes,
339 gdb_cv_printf_has_long_double=no,
340 gdb_cv_printf_has_long_double=no)])
341 if test $gdb_cv_printf_has_long_double = yes; then
342 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
344 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
346 dnl See if the compiler and runtime support scanning long doubles
348 AC_MSG_CHECKING(for long double support in scanf)
349 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
352 char *buf = "3.141592653";
354 sscanf (buf, "%Lg", &f);
355 return !(f > 3.14159 && f < 3.14160);
357 gdb_cv_scanf_has_long_double=yes,
358 gdb_cv_scanf_has_long_double=no,
359 gdb_cv_scanf_has_long_double=no)])
360 if test $gdb_cv_scanf_has_long_double = yes; then
361 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
363 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
367 dnl See if thread_db library is around for Solaris thread debugging. Note that
368 dnl we must explicitly test for version 1 of the library because version 0
369 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
371 dnl Note that we only want this if we are both native (host == target), and
372 dnl not doing a canadian cross build (build == host).
374 if test ${build} = ${host} -a ${host} = ${target} ; then
377 AC_MSG_CHECKING(for HPUX/OSF thread support)
378 if test -f /usr/include/dce/cma_config.h ; then
379 if test "$GCC" = "yes" ; then
381 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
382 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
383 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
385 AC_MSG_RESULT(no (suppressed because you are not using GCC))
392 AC_MSG_CHECKING(for Solaris thread debugging library)
393 if test -f /usr/lib/libthread_db.so.1 ; then
395 AC_DEFINE(HAVE_THREAD_DB_LIB)
396 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
397 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
398 AC_CHECK_LIB(dl, dlopen)
399 if test "$GCC" = "yes" ; then
400 # The GNU linker requires the -export-dynamic option to make
401 # all symbols visible in the dynamic symbol table.
402 hold_ldflags=$LDFLAGS
403 AC_MSG_CHECKING(for the ld -export-dynamic flag)
404 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
405 AC_TRY_LINK(, [int i;], found=yes, found=no)
406 LDFLAGS=$hold_ldflags
407 AC_MSG_RESULT($found)
408 if test $found = yes; then
409 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
412 # Sun randomly tweaked the prototypes in <proc_service.h>
414 AC_MSG_CHECKING(if <proc_service.h> is old)
415 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
417 #include <proc_service.h>
419 (struct ps_prochandle*, psaddr_t, const void*, size_t);
420 ],, gdb_cv_proc_service_is_old=no,
421 gdb_cv_proc_service_is_old=yes)
423 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
424 if test $gdb_cv_proc_service_is_old = yes; then
425 AC_DEFINE(PROC_SERVICE_IS_OLD)
432 AC_SUBST(CONFIG_LDFLAGS)
435 dnl Handle optional features that can be enabled.
437 dnl Handle MI sub-directory configury.
439 [ --enable-gdbmi Enable GDB-MI interface],
441 case "${enable_gdbmi}" in
443 "") enable_gdbmi=yes ;;
445 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
449 case ${enable_gdbmi} in
451 if test -d "${srcdir}/mi" ; then
452 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
453 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
454 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_MI_SRCS)"
455 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
456 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
457 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
458 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
459 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
460 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
466 [ --enable-tui Enable full-screen terminal user interface],
468 case "${enable_tui}" in
470 "") enable_tui=yes ;;
472 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
476 case ${enable_tui} in
478 if test -d "${srcdir}/tui" ; then
479 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
480 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
481 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_TUI_SRCS)"
482 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
483 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
484 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
485 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
486 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
487 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
492 AC_ARG_ENABLE(netrom,
493 [ --enable-netrom Enable NetROM support],
494 [case "${enableval}" in
495 yes) enable_netrom=yes ;;
496 no) enable_netrom=no ;;
497 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
500 if test "${enable_netrom}" = "yes"; then
501 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
502 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
506 # Don't add -Wall or -Wunused, they include -Wunused-parameter which
508 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
509 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
510 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
511 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
512 # -Wchar-subscripts -Wuninitialized -Wtraditional -Wshadow -Wcast-qual
513 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
514 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
515 # -Woverloaded-virtual -Winline -Werror"
516 AC_ARG_ENABLE(build-warnings,
517 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
518 [case "${enableval}" in
520 no) build_warnings="-w";;
521 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
522 build_warnings="${build_warnings} ${t}";;
523 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
524 build_warnings="${t} ${build_warnings}";;
525 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
527 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
528 echo "Setting compiler warning flags = $build_warnings" 6>&1
532 if test "x${build_warnings}" != x -a "x$GCC" = xyes
534 AC_MSG_CHECKING(compiler warning flags)
535 # Separate out the -Werror flag as some files just cannot be
536 # compiled with it enabled.
537 for w in ${build_warnings}; do
539 -Werr*) WERROR_CFLAGS=-Werror ;;
540 *) # Check that GCC accepts it
541 if $CC $w 2>&1 | grep 'unrecognized option' > /dev/null; then
544 WARN_CFLAGS="${WARN_CFLAGS} $w"
548 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
550 AC_SUBST(WARN_CFLAGS)
551 AC_SUBST(WERROR_CFLAGS)
555 AC_SUBST(MMALLOC_CFLAGS)
559 [ --with-mmalloc Use memory mapped malloc package],
560 [case "${withval}" in
561 yes) want_mmalloc=true ;;
562 no) want_mmalloc=false;;
563 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
564 esac],[want_mmalloc=false])dnl
566 if test x$want_mmalloc = xtrue; then
567 AC_DEFINE(USE_MMALLOC)
568 AC_DEFINE(MMCHECK_FORCE)
569 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
570 MMALLOC='../mmalloc/libmmalloc.a'
573 AC_ARG_WITH(included-regex,
574 [ --with-included-regex Use included regex],
575 [case "${withval}" in
576 yes) want_included_regex=true ;;
577 no) want_included_regex=false;;
578 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
579 esac],[want_included_regex=true])dnl
581 if test $want_included_regex = false; then
582 AC_MSG_CHECKING(for GNU regex)
583 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
584 [AC_TRY_COMPILE([#include <gnu-versions.h>
585 #include <sys/types.h>
587 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
588 #error No valid GNU regex.
591 [gdb_cv_have_gnu_regex=yes],
592 [gdb_cv_have_gnu_regex=no])])
593 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
594 if test $gdb_cv_have_gnu_regex = no; then
595 want_included_regex=true
599 if test x${want_included_regex} = xtrue; then
601 AC_DEFINE(USE_INCLUDED_REGEX)
605 # In the Cygwin environment, we need some additional flags.
606 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
607 [AC_EGREP_CPP(lose, [
608 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
610 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
612 DLLTOOL=${DLLTOOL-dlltool}
613 WINDRES=${WINDRES-windres}
617 dnl Figure out which term library to use.
618 if test x$gdb_host = xgo32; then
621 if test x$gdb_cv_os_cygwin = xyes; then
622 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
625 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
626 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
627 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
628 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
629 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
630 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
632 if test "x$TERM_LIB" = x
634 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
640 # libreadline needs libuser32.a in a cygwin environment
642 if test x$gdb_cv_os_cygwin = xyes; then
645 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
651 LIBGUI="../libgui/src/libgui.a"
652 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
654 AC_SUBST(GUI_CFLAGS_X)
657 [ --with-cpu=CPU Set the default CPU variant to debug],
659 powerpc-* | powerpcle-* )
660 ## It would be nice to keep this table in sync with the one in
662 case "${with_cpu}" in
663 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
665 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
667 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
668 ## These are all RS6000 variants, as far as GDB is concerned.
678 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
684 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
687 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
692 [ --enable-gdbtk Enable GDBTK GUI front end],
693 [case "${enableval}" in
697 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
700 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
708 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
711 # Default is on for everything but go32 and Cygwin
716 if test -d "${srcdir}/gdbtk" ; then
730 if test "${enable_gdbtk}" = "yes"; then
733 if test -z "${no_tcl}"; then
737 # If $no_tk is nonempty, then we can't do Tk, and there is no
738 # point to doing Tcl.
739 if test -z "${no_tk}"; then
747 # now look for Itcl library stuff
749 CY_AC_PATH_ITCLCONFIG
750 if test -z "${no_itcl}"; then
751 CY_AC_LOAD_ITCLCONFIG
754 itcldir=../itcl/itcl/win/
757 itcldir=../itcl/itcl/unix/
762 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
763 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
767 # now look for Itk library stuff
769 if test -z "${no_itcl}"; then
774 itkdir=../itcl/itk/win/
777 itkdir=../itcl/itk/unix/
781 ITKLIB="${ITK_BUILD_LIB_SPEC}"
782 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
785 # now look for Tix library stuff
787 if test -z "${no_tix}"; then
789 TIXLIB="${TIX_BUILD_LIB_SPEC}"
790 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
793 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
794 # Tcl/Tk 8.1 require -fwritable strings. I don't
795 # know whether 8.2 will or not, but I bet it will.
796 # I don't have to worry about 7.x since we don't support it.
798 if test "$GCC" = "yes"; then
799 if test "$TCL_VERSION" != "8.0" ; then
800 GDBTK_CFLAGS="-fwritable-strings"
804 # Include some libraries that Tcl and Tk want.
805 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
806 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
807 # Yes, the ordering seems wrong here. But it isn't.
808 # TK_LIBS is the list of libraries that need to be linked
809 # after Tcl/Tk. Note that this isn't put into LIBS. If it
810 # were in LIBS then any link tests after this point would
811 # try to include things like `$(LIBGUI)', which wouldn't work.
812 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
813 CONFIG_SRCS="${CONFIG_SRCS} gdbtk/generic/gdbtk.c gdbtk/generic/gdbtk-cmds.c gdbtk/generic/gdbtk-hooks.c gdbtk/generic/gdbtk-varobj.c gdbtk/generic/gdbtk-wrapper.c"
814 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
815 CONFIG_INITS="${CONFIG_INITS} gdbtk/generic/gdbtk.c gdbtk/generic/gdbtk-cmds.c gdbtk/generic/gdbtk-hooks.c gdbtk/generic/gdbtk-varobj.c gdbtk/generic/gdbtk-wrapper.c"
816 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
817 CONFIG_CLEAN="${CONFIG_ALL} \$(SUBDIR_GDBTK_CLEAN)"
818 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
819 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
821 if test x$gdb_cv_os_cygwin = xyes; then
822 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
823 WIN32LDAPP="-Wl,--subsystem,console"
824 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
840 AC_SUBST(GDBTK_CFLAGS)
845 # Unlike the sim directory, whether a simulator is linked is controlled by
846 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
847 # This code just checks for a few cases where we'd like to ignore those
848 # definitions, even when they're present in the '.mt' file. These cases
849 # are when --disable-sim is specified, or if the simulator directory is
850 # not part of the soruce tree.
853 [ --enable-sim Link gdb with simulator],
854 [echo "enable_sim = $enable_sim";
855 echo "enableval = ${enableval}";
856 case "${enableval}" in
857 yes) ignore_sim=false ;;
858 no) ignore_sim=true ;;
859 *) ignore_sim=false ;;
863 if test ! -d "${srcdir}/../sim"; then
867 if test "${ignore_sim}" = "true"; then
869 IGNORE_SIM_OBS="SIM_OBS="
876 AC_SUBST(IGNORE_SIM_OBS)
878 AC_SUBST(ENABLE_CFLAGS)
881 AC_SUBST(CONFIG_DEPS)
882 AC_SUBST(CONFIG_SRCS)
883 AC_SUBST(CONFIG_INITS)
885 AC_SUBST(CONFIG_CLEAN)
886 AC_SUBST(CONFIG_INSTALL)
887 AC_SUBST(CONFIG_UNINSTALL)
889 # Begin stuff to support --enable-shared
890 AC_ARG_ENABLE(shared,
891 [ --enable-shared Use shared libraries],
892 [case "${enableval}" in
900 # If we have shared libraries, try to set rpath reasonably.
901 if test "${shared}" = "true"; then
904 HLDFLAGS='-Wl,+s,+b,$(libdir)'
906 *-*-irix5* | *-*-irix6*)
907 HLDFLAGS='-Wl,-rpath,$(libdir)'
911 *-*-linux* | *-pc-linux-gnu*)
912 HLDFLAGS='-Wl,-rpath,$(libdir)'
915 HLDFLAGS='-R $(libdir)'
918 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;'
923 # On SunOS, if the linker supports the -rpath option, use it to
924 # prevent ../bfd and ../opcodes from being included in the run time
928 echo 'main () { }' > conftest.c
929 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
930 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
932 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
934 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
936 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
938 elif test "${shared}" = "true"; then
939 HLDFLAGS='-Wl,-rpath=$(libdir)'
941 HLDFLAGS='-Wl,-rpath='
943 rm -f conftest.t conftest.c conftest
948 # End stuff to support --enable-shared
950 # target_subdir is used by the testsuite to find the target libraries.
952 if test "${host}" != "${target}"; then
953 target_subdir="${target_alias}/"
955 AC_SUBST(target_subdir)
958 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
959 if test ! -f ${host_makefile_frag}; then
960 AC_MSG_ERROR("*** Gdb does not support host ${host}")
962 frags="$frags $host_makefile_frag"
964 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
965 if test ! -f ${target_makefile_frag}; then
966 AC_MSG_ERROR("*** Gdb does not support target ${target}")
968 frags="$frags $target_makefile_frag"
970 AC_SUBST_FILE(host_makefile_frag)
971 AC_SUBST_FILE(target_makefile_frag)
976 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
977 ' ${host_makefile_frag}`
980 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
981 ' ${target_makefile_frag}`
983 # these really aren't orthogonal true/false values of the same condition,
984 # but shells are slow enough that I like to reuse the test conditions
986 if test "${target}" = "${host}"; then
988 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
989 ' ${host_makefile_frag}`
991 # GDBserver is only useful in a "native" enviroment
992 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
996 SUBDIRS="doc testsuite nlm"
997 if test "${enable_multi_ice}" = "yes"; then
998 SUBDIRS="${SUBDIRS} multi-ice"
1003 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1004 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
1005 # corresponding links. But we have to remove the xm.h files and tm.h
1006 # files anyway, e.g. when switching from "configure host" to
1012 if test "${hostfile}" != ""; then
1013 files="${files} config/${gdb_host_cpu}/${hostfile}"
1014 links="${links} xm.h"
1017 if test "${targetfile}" != ""; then
1018 files="${files} config/${gdb_target_cpu}/${targetfile}"
1019 links="${links} tm.h"
1022 if test "${nativefile}" != ""; then
1023 files="${files} config/${gdb_host_cpu}/${nativefile}"
1024 links="${links} nm.h"
1026 # A cross-only configuration.
1027 files="${files} config/nm-empty.h"
1028 links="${links} nm.h"
1032 AC_LINK_FILES($files, $links)
1034 dnl Check for exe extension set on certain hosts (e.g. Win32)
1037 AC_CONFIG_SUBDIRS($configdirs)
1038 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1040 dnl Autoconf doesn't provide a mechanism for modifying definitions
1041 dnl provided by makefile fragments.
1043 if test "${nativefile}" = ""; then
1044 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
1045 < Makefile > Makefile.tem
1046 mv -f Makefile.tem Makefile
1050 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1051 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1052 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1053 mv -f Makefile.tmp Makefile
1057 case x$CONFIG_HEADERS in
1058 xconfig.h:config.in)
1063 gdb_host_cpu=$gdb_host_cpu
1064 gdb_target_cpu=$gdb_target_cpu
1065 nativefile=$nativefile