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, :)
83 dnl MiG is needed for the Hurd.
84 AC_CHECK_TOOL(MIG, mig)
92 dnl Solaris 7 needs _MSE_INT_H defined to avoid a clash between <widec.h>
93 dnl and <wchar.h> that causes AC_CHECK_HEADERS to think <curses.h> doesn't
96 case $host_os in solaris2.7) case "$GCC" in yes)
100 AC_CHECK_HEADERS(ctype.h endian.h link.h thread_db.h proc_service.h \
101 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
102 string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
103 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
104 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
105 time.h sys/ioctl.h sys/user.h \
106 dirent.h sys/ndir.h sys/dir.h ndir.h \
112 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
115 # See if machine/reg.h supports the %fs and %gs i386 segment registers.
116 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
117 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_r_fs,
118 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
119 gdb_cv_struct_r_fs=yes, gdb_cv_struct_r_fs=no)])
120 if test $gdb_cv_struct_r_fs = yes; then
123 AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_r_gs,
124 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
125 gdb_cv_struct_r_gs=yes, gdb_cv_struct_r_gs=no)])
126 if test $gdb_cv_struct_r_gs = yes; then
130 dnl See if ptrace.h provides the PTRACE_GETREGS request.
131 AC_MSG_CHECKING(for PTRACE_GETREGS)
132 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
133 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
135 [gdb_cv_have_ptrace_getregs=yes],
136 [gdb_cv_have_ptrace_getregs=no])])
137 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
138 if test $gdb_cv_have_ptrace_getregs = yes; then
139 AC_DEFINE(HAVE_PTRACE_GETREGS)
142 dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
143 dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
144 dnl Linux kernel patch for SSE support. That patch may or may not
145 dnl actually make it into the official distribution. If you find that
146 dnl years have gone by since this configure test was added, and Linux
147 dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
148 dnl make it, and you can delete this code.
149 AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
150 AC_CACHE_VAL(gdb_cv_have_ptrace_getxfpregs,
151 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
152 [PTRACE_GETXFPREGS;],
153 [gdb_cv_have_ptrace_getxfpregs=yes],
154 [gdb_cv_have_ptrace_getxfpregs=no])])
155 AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
156 if test $gdb_cv_have_ptrace_getxfpregs = yes; then
157 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
160 AC_CHECK_LIB(socket, socketpair)
161 AC_CHECK_FUNCS(socketpair)
164 BFD_NEED_DECLARATION(malloc)
165 BFD_NEED_DECLARATION(realloc)
166 BFD_NEED_DECLARATION(free)
167 BFD_NEED_DECLARATION(strerror)
168 BFD_NEED_DECLARATION(strdup)
169 BFD_NEED_DECLARATION(strstr)
172 # The following save_state_t checkery is only necessary for HPUX
173 # versions earlier than 10.20. When those fade from memory, this
174 # could be expunged. --jsm 1999-03-22
176 AC_MSG_CHECKING(for HPUX save_state structure)
177 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
178 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
179 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
180 gdb_cv_hpux_sswide=no)
181 if test $gdb_cv_hpux_savestate = yes
183 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
185 if test $gdb_cv_hpux_sswide = yes
187 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
189 AC_MSG_RESULT($gdb_cv_hpux_sswide)
192 # If we are configured native on GNU/Linux, work around problems with
194 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
196 if test "${target}" = "${host}"; then
198 i[[3456]]86-*-linux*)
199 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
200 AC_DEFINE(sys_quotactl)
202 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
203 AC_DEFINE(NEW_PROC_API)
205 *-*-solaris2.[[678]])
206 AC_DEFINE(NEW_PROC_API)
211 if test "$ac_cv_header_sys_procfs_h" = yes; then
212 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
213 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
214 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
215 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
216 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
217 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
218 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
219 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
221 dnl Check for broken prfpregset_t type
223 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
224 dnl prfpregset_t type (it's a typedef for the pointer to a struct
225 dnl instead of the struct itself). We detect this here, and work
226 dnl around it in lin-thread.c.
228 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
229 AC_MSG_CHECKING(whether prfpregset_t type is broken)
230 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
231 [AC_TRY_RUN([#include <sys/procfs.h>
234 if (sizeof (prfpregset_t) == sizeof (void *))
238 gdb_cv_prfpregset_t_broken=no,
239 gdb_cv_prfpregset_t_broken=yes,
240 gdb_cv_prfpregset_t_broken=yes)])
241 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
242 if test $gdb_cv_prfpregset_t_broken = yes; then
243 AC_DEFINE(PRFPREGSET_T_BROKEN)
247 dnl Check for PIOCSET ioctl entry
249 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
250 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
251 [AC_TRY_COMPILE([#include <unistd.h>
252 #include <sys/types.h>
253 #include <sys/procfs.h>
256 dummy = ioctl(0, PIOCSET, &dummy);
258 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
259 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
260 if test $gdb_cv_have_procfs_piocset = yes; then
261 AC_DEFINE(HAVE_PROCFS_PIOCSET)
265 dnl See if host has libm. This is usually needed by simulators.
266 AC_CHECK_LIB(m, main)
268 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
270 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
271 dnl under Solaris 2.6 because it is some funky empty library.
272 dnl So only link in libw if we have to.
273 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
275 dnl See if compiler supports "long long" type.
277 AC_MSG_CHECKING(for long long support in compiler)
278 AC_CACHE_VAL(gdb_cv_c_long_long,
280 extern long long foo;
281 switch (foo & 2) { case 0: return 1; }
283 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
284 AC_MSG_RESULT($gdb_cv_c_long_long)
285 if test $gdb_cv_c_long_long = yes; then
286 AC_DEFINE(CC_HAS_LONG_LONG)
289 dnl See if the compiler and runtime support printing long long
291 AC_MSG_CHECKING(for long long support in printf)
292 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
297 l = (l << 16) + 0x0123;
298 l = (l << 16) + 0x4567;
299 l = (l << 16) + 0x89ab;
300 l = (l << 16) + 0xcdef;
301 sprintf (buf, "0x%016llx", l);
302 return (strcmp ("0x0123456789abcdef", buf));
304 gdb_cv_printf_has_long_long=yes,
305 gdb_cv_printf_has_long_long=no,
306 gdb_cv_printf_has_long_long=no)])
307 if test $gdb_cv_printf_has_long_long = yes; then
308 AC_DEFINE(PRINTF_HAS_LONG_LONG)
310 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
312 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
313 dnl because autoconf complains about cross-compilation issues. However, this
314 dnl code uses the same variables as the macro for compatibility.
316 AC_MSG_CHECKING(for long double support in compiler)
317 AC_CACHE_VAL(ac_cv_c_long_double,
318 [AC_TRY_COMPILE(, [long double foo;],
319 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
320 AC_MSG_RESULT($ac_cv_c_long_double)
321 if test $ac_cv_c_long_double = yes; then
322 AC_DEFINE(HAVE_LONG_DOUBLE)
325 dnl See if the compiler and runtime support printing long doubles
327 AC_MSG_CHECKING(for long double support in printf)
328 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
332 long double f = 3.141592653;
333 sprintf (buf, "%Lg", f);
334 return (strncmp ("3.14159", buf, 7));
336 gdb_cv_printf_has_long_double=yes,
337 gdb_cv_printf_has_long_double=no,
338 gdb_cv_printf_has_long_double=no)])
339 if test $gdb_cv_printf_has_long_double = yes; then
340 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
342 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
344 dnl See if the compiler and runtime support scanning long doubles
346 AC_MSG_CHECKING(for long double support in scanf)
347 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
350 char *buf = "3.141592653";
352 sscanf (buf, "%Lg", &f);
353 return !(f > 3.14159 && f < 3.14160);
355 gdb_cv_scanf_has_long_double=yes,
356 gdb_cv_scanf_has_long_double=no,
357 gdb_cv_scanf_has_long_double=no)])
358 if test $gdb_cv_scanf_has_long_double = yes; then
359 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
361 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
365 dnl See if thread_db library is around for Solaris thread debugging. Note that
366 dnl we must explicitly test for version 1 of the library because version 0
367 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
369 dnl Note that we only want this if we are both native (host == target), and
370 dnl not doing a canadian cross build (build == host).
372 if test ${build} = ${host} -a ${host} = ${target} ; then
375 AC_MSG_CHECKING(for HPUX/OSF thread support)
376 if test -f /usr/include/dce/cma_config.h ; then
377 if test "$GCC" = "yes" ; then
379 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
380 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
381 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
383 AC_MSG_RESULT(no (suppressed because you are not using GCC))
390 AC_MSG_CHECKING(for Solaris thread debugging library)
391 if test -f /usr/lib/libthread_db.so.1 ; then
393 AC_DEFINE(HAVE_THREAD_DB_LIB)
394 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
395 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
396 AC_CHECK_LIB(dl, dlopen)
397 if test "$GCC" = "yes" ; then
398 # The GNU linker requires the -export-dynamic option to make
399 # all symbols visible in the dynamic symbol table.
400 hold_ldflags=$LDFLAGS
401 AC_MSG_CHECKING(for the ld -export-dynamic flag)
402 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
403 AC_TRY_LINK(, [int i;], found=yes, found=no)
404 LDFLAGS=$hold_ldflags
405 AC_MSG_RESULT($found)
406 if test $found = yes; then
407 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
410 # Sun randomly tweaked the prototypes in <proc_service.h>
412 AC_MSG_CHECKING(if <proc_service.h> is old)
413 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
415 #include <proc_service.h>
417 (struct ps_prochandle*, psaddr_t, const void*, size_t);
418 ],, gdb_cv_proc_service_is_old=no,
419 gdb_cv_proc_service_is_old=yes)
421 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
422 if test $gdb_cv_proc_service_is_old = yes; then
423 AC_DEFINE(PROC_SERVICE_IS_OLD)
430 AC_SUBST(CONFIG_LDFLAGS)
433 dnl Handle optional features that can be enabled.
435 dnl Handle MI sub-directory configury.
437 [ --enable-gdbmi Enable GDB-MI interface],
439 case "${enable_gdbmi}" in
441 "") enable_gdbmi=yes ;;
443 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
447 case ${enable_gdbmi} in
449 if test -d "${srcdir}/mi" ; then
450 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
451 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
452 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_MI_SRCS)"
453 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
454 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
455 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
456 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
457 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
458 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
464 [ --enable-tui Enable full-screen terminal user interface],
466 case "${enable_tui}" in
468 "") enable_tui=yes ;;
470 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
474 case ${enable_tui} in
476 if test -d "${srcdir}/tui" ; then
477 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
478 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
479 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_TUI_SRCS)"
480 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
481 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
482 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
483 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
484 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
485 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
490 AC_ARG_ENABLE(netrom,
491 [ --enable-netrom Enable NetROM support],
492 [case "${enableval}" in
493 yes) enable_netrom=yes ;;
494 no) enable_netrom=no ;;
495 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
498 if test "${enable_netrom}" = "yes"; then
499 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
500 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
504 # Don't add -Wall or -Wunused, they include -Wunused-parameter which
506 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
507 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
508 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
509 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
510 # -Wchar-subscripts -Wuninitialized -Wtraditional -Wshadow -Wcast-qual
511 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
512 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
513 # -Woverloaded-virtual -Winline -Werror"
514 AC_ARG_ENABLE(build-warnings,
515 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
516 [case "${enableval}" in
518 no) build_warnings="-w";;
519 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
520 build_warnings="${build_warnings} ${t}";;
521 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
522 build_warnings="${t} ${build_warnings}";;
523 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
525 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
526 echo "Setting compiler warning flags = $build_warnings" 6>&1
530 if test "x${build_warnings}" != x -a "x$GCC" = xyes
532 AC_MSG_CHECKING(compiler warning flags)
533 # Separate out the -Werror flag as some files just cannot be
534 # compiled with it enabled.
535 for w in ${build_warnings}; do
537 -Werr*) WERROR_CFLAGS=-Werror ;;
538 *) # Check that GCC accepts it
539 if $CC $w 2>&1 | grep 'unrecognized option' > /dev/null; then
542 WARN_CFLAGS="${WARN_CFLAGS} $w"
546 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
548 AC_SUBST(WARN_CFLAGS)
549 AC_SUBST(WERROR_CFLAGS)
553 AC_SUBST(MMALLOC_CFLAGS)
557 [ --with-mmalloc Use memory mapped malloc package],
558 [case "${withval}" in
559 yes) want_mmalloc=true ;;
560 no) want_mmalloc=false;;
561 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
562 esac],[want_mmalloc=false])dnl
564 if test x$want_mmalloc = xtrue; then
565 AC_DEFINE(USE_MMALLOC)
566 AC_DEFINE(MMCHECK_FORCE)
567 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
568 MMALLOC='../mmalloc/libmmalloc.a'
571 AC_ARG_WITH(included-regex,
572 [ --with-included-regex Use included regex],
573 [case "${withval}" in
574 yes) want_included_regex=true ;;
575 no) want_included_regex=false;;
576 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
577 esac],[want_included_regex=true])dnl
579 if test $want_included_regex = false; then
580 AC_MSG_CHECKING(for GNU regex)
581 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
582 [AC_TRY_COMPILE([#include <gnu-versions.h>
583 #include <sys/types.h>
585 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
586 #error No valid GNU regex.
589 [gdb_cv_have_gnu_regex=yes],
590 [gdb_cv_have_gnu_regex=no])])
591 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
592 if test $gdb_cv_have_gnu_regex = no; then
593 want_included_regex=true
597 if test x${want_included_regex} = xtrue; then
599 AC_DEFINE(USE_INCLUDED_REGEX)
603 # In the Cygwin environment, we need some additional flags.
604 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
605 [AC_EGREP_CPP(lose, [
606 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
608 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
610 DLLTOOL=${DLLTOOL-dlltool}
611 WINDRES=${WINDRES-windres}
615 dnl Figure out which term library to use.
616 if test x$gdb_host = xgo32; then
619 if test x$gdb_cv_os_cygwin = xyes; then
620 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
623 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
624 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
625 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
626 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
627 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
628 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
630 if test "x$TERM_LIB" = x
632 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
638 # libreadline needs libuser32.a in a cygwin environment
640 if test x$gdb_cv_os_cygwin = xyes; then
643 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
649 LIBGUI="../libgui/src/libgui.a"
650 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
652 AC_SUBST(GUI_CFLAGS_X)
655 [ --with-cpu=CPU Set the default CPU variant to debug],
657 powerpc-* | powerpcle-* )
658 ## It would be nice to keep this table in sync with the one in
660 case "${with_cpu}" in
661 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
663 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
665 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
666 ## These are all RS6000 variants, as far as GDB is concerned.
676 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
682 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
685 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
690 [ --enable-gdbtk Enable GDBTK GUI front end],
691 [case "${enableval}" in
695 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
698 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
706 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
709 # Default is on for everything but go32 and Cygwin
714 if test -d "${srcdir}/gdbtk" ; then
728 if test "${enable_gdbtk}" = "yes"; then
731 if test -z "${no_tcl}"; then
735 # If $no_tk is nonempty, then we can't do Tk, and there is no
736 # point to doing Tcl.
737 if test -z "${no_tk}"; then
745 # now look for Itcl library stuff
747 CY_AC_PATH_ITCLCONFIG
748 if test -z "${no_itcl}"; then
749 CY_AC_LOAD_ITCLCONFIG
752 itcldir=../itcl/itcl/win/
755 itcldir=../itcl/itcl/unix/
760 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
761 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
765 # now look for Itk library stuff
767 if test -z "${no_itcl}"; then
772 itkdir=../itcl/itk/win/
775 itkdir=../itcl/itk/unix/
779 ITKLIB="${ITK_BUILD_LIB_SPEC}"
780 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
783 # now look for Tix library stuff
785 if test -z "${no_tix}"; then
787 TIXLIB="${TIX_BUILD_LIB_SPEC}"
788 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
791 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
792 # Tcl/Tk 8.1 require -fwritable strings. I don't
793 # know whether 8.2 will or not, but I bet it will.
794 # I don't have to worry about 7.x since we don't support it.
796 if test "$GCC" = "yes"; then
797 if test "$TCL_VERSION" != "8.0" ; then
798 GDBTK_CFLAGS="-fwritable-strings"
802 # Include some libraries that Tcl and Tk want.
803 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
804 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
805 # Yes, the ordering seems wrong here. But it isn't.
806 # TK_LIBS is the list of libraries that need to be linked
807 # after Tcl/Tk. Note that this isn't put into LIBS. If it
808 # were in LIBS then any link tests after this point would
809 # try to include things like `$(LIBGUI)', which wouldn't work.
810 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
811 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"
812 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
813 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"
814 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
815 CONFIG_CLEAN="${CONFIG_ALL} \$(SUBDIR_GDBTK_CLEAN)"
816 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
817 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
819 if test x$gdb_cv_os_cygwin = xyes; then
820 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
821 WIN32LDAPP="-Wl,--subsystem,console"
822 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
838 AC_SUBST(GDBTK_CFLAGS)
843 # Unlike the sim directory, whether a simulator is linked is controlled by
844 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
845 # This code just checks for a few cases where we'd like to ignore those
846 # definitions, even when they're present in the '.mt' file. These cases
847 # are when --disable-sim is specified, or if the simulator directory is
848 # not part of the soruce tree.
851 [ --enable-sim Link gdb with simulator],
852 [echo "enable_sim = $enable_sim";
853 echo "enableval = ${enableval}";
854 case "${enableval}" in
855 yes) ignore_sim=false ;;
856 no) ignore_sim=true ;;
857 *) ignore_sim=false ;;
861 if test ! -d "${srcdir}/../sim"; then
865 if test "${ignore_sim}" = "true"; then
867 IGNORE_SIM_OBS="SIM_OBS="
874 AC_SUBST(IGNORE_SIM_OBS)
876 AC_SUBST(ENABLE_CFLAGS)
879 AC_SUBST(CONFIG_DEPS)
880 AC_SUBST(CONFIG_SRCS)
881 AC_SUBST(CONFIG_INITS)
883 AC_SUBST(CONFIG_CLEAN)
884 AC_SUBST(CONFIG_INSTALL)
885 AC_SUBST(CONFIG_UNINSTALL)
887 # Begin stuff to support --enable-shared
888 AC_ARG_ENABLE(shared,
889 [ --enable-shared Use shared libraries],
890 [case "${enableval}" in
898 # If we have shared libraries, try to set rpath reasonably.
899 if test "${shared}" = "true"; then
902 HLDFLAGS='-Wl,+s,+b,$(libdir)'
904 *-*-irix5* | *-*-irix6*)
905 HLDFLAGS='-Wl,-rpath,$(libdir)'
909 *-*-linux* | *-pc-linux-gnu*)
910 HLDFLAGS='-Wl,-rpath,$(libdir)'
913 HLDFLAGS='-R $(libdir)'
916 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;'
921 # On SunOS, if the linker supports the -rpath option, use it to
922 # prevent ../bfd and ../opcodes from being included in the run time
926 echo 'main () { }' > conftest.c
927 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
928 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
930 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
932 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
934 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
936 elif test "${shared}" = "true"; then
937 HLDFLAGS='-Wl,-rpath=$(libdir)'
939 HLDFLAGS='-Wl,-rpath='
941 rm -f conftest.t conftest.c conftest
946 # End stuff to support --enable-shared
948 # target_subdir is used by the testsuite to find the target libraries.
950 if test "${host}" != "${target}"; then
951 target_subdir="${target_alias}/"
953 AC_SUBST(target_subdir)
956 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
957 if test ! -f ${host_makefile_frag}; then
958 AC_MSG_ERROR("*** Gdb does not support host ${host}")
960 frags="$frags $host_makefile_frag"
962 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
963 if test ! -f ${target_makefile_frag}; then
964 AC_MSG_ERROR("*** Gdb does not support target ${target}")
966 frags="$frags $target_makefile_frag"
968 AC_SUBST_FILE(host_makefile_frag)
969 AC_SUBST_FILE(target_makefile_frag)
974 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
975 ' ${host_makefile_frag}`
978 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
979 ' ${target_makefile_frag}`
981 # these really aren't orthogonal true/false values of the same condition,
982 # but shells are slow enough that I like to reuse the test conditions
984 if test "${target}" = "${host}"; then
986 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
987 ' ${host_makefile_frag}`
989 # GDBserver is only useful in a "native" enviroment
990 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
994 SUBDIRS="doc testsuite nlm"
995 if test "${enable_multi_ice}" = "yes"; then
996 SUBDIRS="${SUBDIRS} multi-ice"
1001 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1002 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
1003 # corresponding links. But we have to remove the xm.h files and tm.h
1004 # files anyway, e.g. when switching from "configure host" to
1010 if test "${hostfile}" != ""; then
1011 files="${files} config/${gdb_host_cpu}/${hostfile}"
1012 links="${links} xm.h"
1015 if test "${targetfile}" != ""; then
1016 files="${files} config/${gdb_target_cpu}/${targetfile}"
1017 links="${links} tm.h"
1020 if test "${nativefile}" != ""; then
1021 files="${files} config/${gdb_host_cpu}/${nativefile}"
1022 links="${links} nm.h"
1024 # A cross-only configuration.
1025 files="${files} config/nm-empty.h"
1026 links="${links} nm.h"
1030 AC_LINK_FILES($files, $links)
1032 dnl Check for exe extension set on certain hosts (e.g. Win32)
1035 AC_CONFIG_SUBDIRS($configdirs)
1036 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1038 dnl Autoconf doesn't provide a mechanism for modifying definitions
1039 dnl provided by makefile fragments.
1041 if test "${nativefile}" = ""; then
1042 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
1043 < Makefile > Makefile.tem
1044 mv -f Makefile.tem Makefile
1048 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1049 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1050 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1051 mv -f Makefile.tmp Makefile
1055 case x$CONFIG_HEADERS in
1056 xconfig.h:config.in)
1061 gdb_host_cpu=$gdb_host_cpu
1062 gdb_target_cpu=$gdb_target_cpu
1063 nativefile=$nativefile