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 curses.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)
111 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
114 # See if machine/reg.h supports the %fs and %gs i386 segment registers.
115 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
116 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_r_fs,
117 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
118 gdb_cv_struct_r_fs=yes, gdb_cv_struct_r_fs=no)])
119 if test $gdb_cv_struct_r_fs = yes; then
122 AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_r_gs,
123 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
124 gdb_cv_struct_r_gs=yes, gdb_cv_struct_r_gs=no)])
125 if test $gdb_cv_struct_r_gs = yes; then
129 dnl See if ptrace.h provides the PTRACE_GETREGS request.
130 AC_MSG_CHECKING(for PTRACE_GETREGS)
131 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
132 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
134 [gdb_cv_have_ptrace_getregs=yes],
135 [gdb_cv_have_ptrace_getregs=no])])
136 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
137 if test $gdb_cv_have_ptrace_getregs = yes; then
138 AC_DEFINE(HAVE_PTRACE_GETREGS)
141 dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
142 dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
143 dnl Linux kernel patch for SSE support. That patch may or may not
144 dnl actually make it into the official distribution. If you find that
145 dnl years have gone by since this configure test was added, and Linux
146 dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
147 dnl make it, and you can delete this code.
148 AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
149 AC_CACHE_VAL(gdb_cv_have_ptrace_getxfpregs,
150 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
151 [PTRACE_GETXFPREGS;],
152 [gdb_cv_have_ptrace_getxfpregs=yes],
153 [gdb_cv_have_ptrace_getxfpregs=no])])
154 AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
155 if test $gdb_cv_have_ptrace_getxfpregs = yes; then
156 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
159 AC_CHECK_LIB(socket, socketpair)
160 AC_CHECK_FUNCS(socketpair)
163 BFD_NEED_DECLARATION(malloc)
164 BFD_NEED_DECLARATION(realloc)
165 BFD_NEED_DECLARATION(free)
166 BFD_NEED_DECLARATION(strerror)
167 BFD_NEED_DECLARATION(strdup)
168 BFD_NEED_DECLARATION(strstr)
171 # The following save_state_t checkery is only necessary for HPUX
172 # versions earlier than 10.20. When those fade from memory, this
173 # could be expunged. --jsm 1999-03-22
175 AC_MSG_CHECKING(for HPUX save_state structure)
176 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
177 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
178 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
179 gdb_cv_hpux_sswide=no)
180 if test $gdb_cv_hpux_savestate = yes
182 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
184 if test $gdb_cv_hpux_sswide = yes
186 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
188 AC_MSG_RESULT($gdb_cv_hpux_sswide)
191 # If we are configured native on GNU/Linux, work around problems with
193 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
195 if test "${target}" = "${host}"; then
197 i[[3456]]86-*-linux*)
198 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
199 AC_DEFINE(sys_quotactl)
201 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
202 AC_DEFINE(NEW_PROC_API)
204 *-*-solaris2.[[678]])
205 AC_DEFINE(NEW_PROC_API)
210 if test "$ac_cv_header_sys_procfs_h" = yes; then
211 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
212 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
213 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
214 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
215 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
216 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
217 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
218 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
220 dnl Check for broken prfpregset_t type
222 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
223 dnl prfpregset_t type (it's a typedef for the pointer to a struct
224 dnl instead of the struct itself). We detect this here, and work
225 dnl around it in lin-thread.c.
227 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
228 AC_MSG_CHECKING(whether prfpregset_t type is broken)
229 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
230 [AC_TRY_RUN([#include <sys/procfs.h>
233 if (sizeof (prfpregset_t) == sizeof (void *))
237 gdb_cv_prfpregset_t_broken=no,
238 gdb_cv_prfpregset_t_broken=yes,
239 gdb_cv_prfpregset_t_broken=yes)])
240 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
241 if test $gdb_cv_prfpregset_t_broken = yes; then
242 AC_DEFINE(PRFPREGSET_T_BROKEN)
246 dnl Check for PIOCSET ioctl entry
248 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
249 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
250 [AC_TRY_COMPILE([#include <unistd.h>
251 #include <sys/types.h>
252 #include <sys/procfs.h>
255 dummy = ioctl(0, PIOCSET, &dummy);
257 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
258 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
259 if test $gdb_cv_have_procfs_piocset = yes; then
260 AC_DEFINE(HAVE_PROCFS_PIOCSET)
264 dnl See if host has libm. This is usually needed by simulators.
265 AC_CHECK_LIB(m, main)
267 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
269 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
270 dnl under Solaris 2.6 because it is some funky empty library.
271 dnl So only link in libw if we have to.
272 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
274 dnl See if compiler supports "long long" type.
276 AC_MSG_CHECKING(for long long support in compiler)
277 AC_CACHE_VAL(gdb_cv_c_long_long,
279 extern long long foo;
280 switch (foo & 2) { case 0: return 1; }
282 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
283 AC_MSG_RESULT($gdb_cv_c_long_long)
284 if test $gdb_cv_c_long_long = yes; then
285 AC_DEFINE(CC_HAS_LONG_LONG)
288 dnl See if the compiler and runtime support printing long long
290 AC_MSG_CHECKING(for long long support in printf)
291 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
296 l = (l << 16) + 0x0123;
297 l = (l << 16) + 0x4567;
298 l = (l << 16) + 0x89ab;
299 l = (l << 16) + 0xcdef;
300 sprintf (buf, "0x%016llx", l);
301 return (strcmp ("0x0123456789abcdef", buf));
303 gdb_cv_printf_has_long_long=yes,
304 gdb_cv_printf_has_long_long=no,
305 gdb_cv_printf_has_long_long=no)])
306 if test $gdb_cv_printf_has_long_long = yes; then
307 AC_DEFINE(PRINTF_HAS_LONG_LONG)
309 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
311 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
312 dnl because autoconf complains about cross-compilation issues. However, this
313 dnl code uses the same variables as the macro for compatibility.
315 AC_MSG_CHECKING(for long double support in compiler)
316 AC_CACHE_VAL(ac_cv_c_long_double,
317 [AC_TRY_COMPILE(, [long double foo;],
318 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
319 AC_MSG_RESULT($ac_cv_c_long_double)
320 if test $ac_cv_c_long_double = yes; then
321 AC_DEFINE(HAVE_LONG_DOUBLE)
324 dnl See if the compiler and runtime support printing long doubles
326 AC_MSG_CHECKING(for long double support in printf)
327 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
331 long double f = 3.141592653;
332 sprintf (buf, "%Lg", f);
333 return (strncmp ("3.14159", buf, 7));
335 gdb_cv_printf_has_long_double=yes,
336 gdb_cv_printf_has_long_double=no,
337 gdb_cv_printf_has_long_double=no)])
338 if test $gdb_cv_printf_has_long_double = yes; then
339 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
341 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
343 dnl See if the compiler and runtime support scanning long doubles
345 AC_MSG_CHECKING(for long double support in scanf)
346 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
349 char *buf = "3.141592653";
351 sscanf (buf, "%Lg", &f);
352 return !(f > 3.14159 && f < 3.14160);
354 gdb_cv_scanf_has_long_double=yes,
355 gdb_cv_scanf_has_long_double=no,
356 gdb_cv_scanf_has_long_double=no)])
357 if test $gdb_cv_scanf_has_long_double = yes; then
358 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
360 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
364 dnl See if thread_db library is around for Solaris thread debugging. Note that
365 dnl we must explicitly test for version 1 of the library because version 0
366 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
368 dnl Note that we only want this if we are both native (host == target), and
369 dnl not doing a canadian cross build (build == host).
371 if test ${build} = ${host} -a ${host} = ${target} ; then
374 AC_MSG_CHECKING(for HPUX/OSF thread support)
375 if test -f /usr/include/dce/cma_config.h ; then
376 if test "$GCC" = "yes" ; then
378 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
379 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
380 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
382 AC_MSG_RESULT(no (suppressed because you are not using GCC))
389 AC_MSG_CHECKING(for Solaris thread debugging library)
390 if test -f /usr/lib/libthread_db.so.1 ; then
392 AC_DEFINE(HAVE_THREAD_DB_LIB)
393 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
394 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
395 AC_CHECK_LIB(dl, dlopen)
396 if test "$GCC" = "yes" ; then
397 # The GNU linker requires the -export-dynamic option to make
398 # all symbols visible in the dynamic symbol table.
399 hold_ldflags=$LDFLAGS
400 AC_MSG_CHECKING(for the ld -export-dynamic flag)
401 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
402 AC_TRY_LINK(, [int i;], found=yes, found=no)
403 LDFLAGS=$hold_ldflags
404 AC_MSG_RESULT($found)
405 if test $found = yes; then
406 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
409 # Sun randomly tweaked the prototypes in <proc_service.h>
411 AC_MSG_CHECKING(if <proc_service.h> is old)
412 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
414 #include <proc_service.h>
416 (struct ps_prochandle*, psaddr_t, const void*, size_t);
417 ],, gdb_cv_proc_service_is_old=no,
418 gdb_cv_proc_service_is_old=yes)
420 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
421 if test $gdb_cv_proc_service_is_old = yes; then
422 AC_DEFINE(PROC_SERVICE_IS_OLD)
429 AC_SUBST(CONFIG_LDFLAGS)
432 dnl Handle optional features that can be enabled.
434 dnl Handle MI sub-directory configury.
436 [ --enable-gdbmi Enable GDB-MI interface],
438 case "${enable_gdbmi}" in
440 "") enable_gdbmi=yes ;;
442 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
446 case ${enable_gdbmi} in
448 if test -d "${srcdir}/mi" ; then
449 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
450 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
451 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_MI_SRCS)"
452 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
453 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
454 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
455 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
456 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
457 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
463 [ --enable-tui Enable full-screen terminal user interface],
465 case "${enable_tui}" in
467 "") enable_tui=yes ;;
469 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
473 case ${enable_tui} in
475 if test -d "${srcdir}/tui" ; then
476 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
477 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
478 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_TUI_SRCS)"
479 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
480 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
481 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
482 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
483 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
484 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
489 AC_ARG_ENABLE(netrom,
490 [ --enable-netrom Enable NetROM support],
491 [case "${enableval}" in
492 yes) enable_netrom=yes ;;
493 no) enable_netrom=no ;;
494 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
497 if test "${enable_netrom}" = "yes"; then
498 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
499 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
503 # Don't add -Wall or -Wunused, they include -Wunused-parameter which
505 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
506 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
507 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
508 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
509 # -Wchar-subscripts -Wuninitialized -Wtraditional -Wshadow -Wcast-qual
510 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
511 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
512 # -Woverloaded-virtual -Winline -Werror"
513 AC_ARG_ENABLE(build-warnings,
514 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
515 [case "${enableval}" in
517 no) build_warnings="-w";;
518 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
519 build_warnings="${build_warnings} ${t}";;
520 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
521 build_warnings="${t} ${build_warnings}";;
522 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
524 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
525 echo "Setting compiler warning flags = $build_warnings" 6>&1
529 if test "x${build_warnings}" != x -a "x$GCC" = xyes
531 AC_MSG_CHECKING(compiler warning flags)
532 # Separate out the -Werror flag as some files just cannot be
533 # compiled with it enabled.
534 for w in ${build_warnings}; do
536 -Werr*) WERROR_CFLAGS=-Werror ;;
537 *) # Check that GCC accepts it
538 if $CC $w 2>&1 | grep 'unrecognized option' > /dev/null; then
541 WARN_CFLAGS="${WARN_CFLAGS} $w"
545 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
547 AC_SUBST(WARN_CFLAGS)
548 AC_SUBST(WERROR_CFLAGS)
552 AC_SUBST(MMALLOC_CFLAGS)
556 [ --with-mmalloc Use memory mapped malloc package],
557 [case "${withval}" in
558 yes) want_mmalloc=true ;;
559 no) want_mmalloc=false;;
560 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
561 esac],[want_mmalloc=false])dnl
563 if test x$want_mmalloc = xtrue; then
564 AC_DEFINE(USE_MMALLOC)
565 AC_DEFINE(MMCHECK_FORCE)
566 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
567 MMALLOC='../mmalloc/libmmalloc.a'
570 AC_ARG_WITH(included-regex,
571 [ --with-included-regex Use included regex],
572 [case "${withval}" in
573 yes) want_included_regex=true ;;
574 no) want_included_regex=false;;
575 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
576 esac],[want_included_regex=true])dnl
578 if test $want_included_regex = false; then
579 AC_MSG_CHECKING(for GNU regex)
580 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
581 [AC_TRY_COMPILE([#include <gnu-versions.h>
582 #include <sys/types.h>
584 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
585 #error No valid GNU regex.
588 [gdb_cv_have_gnu_regex=yes],
589 [gdb_cv_have_gnu_regex=no])])
590 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
591 if test $gdb_cv_have_gnu_regex = no; then
592 want_included_regex=true
596 if test x${want_included_regex} = xtrue; then
598 AC_DEFINE(USE_INCLUDED_REGEX)
602 # In the Cygwin environment, we need some additional flags.
603 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
604 [AC_EGREP_CPP(lose, [
605 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
607 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
609 DLLTOOL=${DLLTOOL-dlltool}
610 WINDRES=${WINDRES-windres}
614 dnl Figure out which term library to use.
615 if test x$gdb_host = xgo32; then
618 if test x$gdb_cv_os_cygwin = xyes; then
619 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
622 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
623 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
624 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
625 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
626 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
627 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
629 if test "x$TERM_LIB" = x
631 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
637 # libreadline needs libuser32.a in a cygwin environment
639 if test x$gdb_cv_os_cygwin = xyes; then
642 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
648 LIBGUI="../libgui/src/libgui.a"
649 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
651 AC_SUBST(GUI_CFLAGS_X)
654 [ --with-cpu=CPU Set the default CPU variant to debug],
656 powerpc-* | powerpcle-* )
657 ## It would be nice to keep this table in sync with the one in
659 case "${with_cpu}" in
660 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
662 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
664 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
665 ## These are all RS6000 variants, as far as GDB is concerned.
675 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
681 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
684 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
689 [ --enable-gdbtk Enable GDBTK GUI front end],
690 [case "${enableval}" in
694 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
697 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
705 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
708 # Default is on for everything but go32 and Cygwin
713 if test -d "${srcdir}/gdbtk" ; then
727 if test "${enable_gdbtk}" = "yes"; then
730 if test -z "${no_tcl}"; then
734 # If $no_tk is nonempty, then we can't do Tk, and there is no
735 # point to doing Tcl.
736 if test -z "${no_tk}"; then
744 # now look for Itcl library stuff
746 CY_AC_PATH_ITCLCONFIG
747 if test -z "${no_itcl}"; then
748 CY_AC_LOAD_ITCLCONFIG
751 itcldir=../itcl/itcl/win/
754 itcldir=../itcl/itcl/unix/
759 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
760 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
764 # now look for Itk library stuff
766 if test -z "${no_itcl}"; then
771 itkdir=../itcl/itk/win/
774 itkdir=../itcl/itk/unix/
778 ITKLIB="${ITK_BUILD_LIB_SPEC}"
779 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
782 # now look for Tix library stuff
784 if test -z "${no_tix}"; then
786 TIXLIB="${TIX_BUILD_LIB_SPEC}"
787 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
790 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
791 # Tcl/Tk 8.1 require -fwritable strings. I don't
792 # know whether 8.2 will or not, but I bet it will.
793 # I don't have to worry about 7.x since we don't support it.
795 if test "$GCC" = "yes"; then
796 if test "$TCL_VERSION" != "8.0" ; then
797 GDBTK_CFLAGS="-fwritable-strings"
801 # Include some libraries that Tcl and Tk want.
802 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
803 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
804 # Yes, the ordering seems wrong here. But it isn't.
805 # TK_LIBS is the list of libraries that need to be linked
806 # after Tcl/Tk. Note that this isn't put into LIBS. If it
807 # were in LIBS then any link tests after this point would
808 # try to include things like `$(LIBGUI)', which wouldn't work.
809 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
810 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"
811 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
812 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"
813 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
814 CONFIG_CLEAN="${CONFIG_ALL} \$(SUBDIR_GDBTK_CLEAN)"
815 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
816 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
818 if test x$gdb_cv_os_cygwin = xyes; then
819 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
820 WIN32LDAPP="-Wl,--subsystem,console"
821 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
837 AC_SUBST(GDBTK_CFLAGS)
842 # Unlike the sim directory, whether a simulator is linked is controlled by
843 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
844 # This code just checks for a few cases where we'd like to ignore those
845 # definitions, even when they're present in the '.mt' file. These cases
846 # are when --disable-sim is specified, or if the simulator directory is
847 # not part of the soruce tree.
850 [ --enable-sim Link gdb with simulator],
851 [echo "enable_sim = $enable_sim";
852 echo "enableval = ${enableval}";
853 case "${enableval}" in
854 yes) ignore_sim=false ;;
855 no) ignore_sim=true ;;
856 *) ignore_sim=false ;;
860 if test ! -d "${srcdir}/../sim"; then
864 if test "${ignore_sim}" = "true"; then
866 IGNORE_SIM_OBS="SIM_OBS="
873 AC_SUBST(IGNORE_SIM_OBS)
875 AC_SUBST(ENABLE_CFLAGS)
878 AC_SUBST(CONFIG_DEPS)
879 AC_SUBST(CONFIG_SRCS)
880 AC_SUBST(CONFIG_INITS)
882 AC_SUBST(CONFIG_CLEAN)
883 AC_SUBST(CONFIG_INSTALL)
884 AC_SUBST(CONFIG_UNINSTALL)
886 # Begin stuff to support --enable-shared
887 AC_ARG_ENABLE(shared,
888 [ --enable-shared Use shared libraries],
889 [case "${enableval}" in
897 # If we have shared libraries, try to set rpath reasonably.
898 if test "${shared}" = "true"; then
901 HLDFLAGS='-Wl,+s,+b,$(libdir)'
903 *-*-irix5* | *-*-irix6*)
904 HLDFLAGS='-Wl,-rpath,$(libdir)'
908 *-*-linux* | *-pc-linux-gnu*)
909 HLDFLAGS='-Wl,-rpath,$(libdir)'
912 HLDFLAGS='-R $(libdir)'
915 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;'
920 # On SunOS, if the linker supports the -rpath option, use it to
921 # prevent ../bfd and ../opcodes from being included in the run time
925 echo 'main () { }' > conftest.c
926 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
927 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
929 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
931 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
933 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
935 elif test "${shared}" = "true"; then
936 HLDFLAGS='-Wl,-rpath=$(libdir)'
938 HLDFLAGS='-Wl,-rpath='
940 rm -f conftest.t conftest.c conftest
945 # End stuff to support --enable-shared
947 # target_subdir is used by the testsuite to find the target libraries.
949 if test "${host}" != "${target}"; then
950 target_subdir="${target_alias}/"
952 AC_SUBST(target_subdir)
955 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
956 if test ! -f ${host_makefile_frag}; then
957 AC_MSG_ERROR("*** Gdb does not support host ${host}")
959 frags="$frags $host_makefile_frag"
961 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
962 if test ! -f ${target_makefile_frag}; then
963 AC_MSG_ERROR("*** Gdb does not support target ${target}")
965 frags="$frags $target_makefile_frag"
967 AC_SUBST_FILE(host_makefile_frag)
968 AC_SUBST_FILE(target_makefile_frag)
973 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
974 ' ${host_makefile_frag}`
977 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
978 ' ${target_makefile_frag}`
980 # these really aren't orthogonal true/false values of the same condition,
981 # but shells are slow enough that I like to reuse the test conditions
983 if test "${target}" = "${host}"; then
985 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
986 ' ${host_makefile_frag}`
988 # GDBserver is only useful in a "native" enviroment
989 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
993 SUBDIRS="doc testsuite nlm"
994 if test "${enable_multi_ice}" = "yes"; then
995 SUBDIRS="${SUBDIRS} multi-ice"
1000 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1001 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
1002 # corresponding links. But we have to remove the xm.h files and tm.h
1003 # files anyway, e.g. when switching from "configure host" to
1009 if test "${hostfile}" != ""; then
1010 files="${files} config/${gdb_host_cpu}/${hostfile}"
1011 links="${links} xm.h"
1014 if test "${targetfile}" != ""; then
1015 files="${files} config/${gdb_target_cpu}/${targetfile}"
1016 links="${links} tm.h"
1019 if test "${nativefile}" != ""; then
1020 files="${files} config/${gdb_host_cpu}/${nativefile}"
1021 links="${links} nm.h"
1023 # A cross-only configuration.
1024 files="${files} config/nm-empty.h"
1025 links="${links} nm.h"
1029 AC_LINK_FILES($files, $links)
1031 dnl Check for exe extension set on certain hosts (e.g. Win32)
1034 AC_CONFIG_SUBDIRS($configdirs)
1035 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1037 dnl Autoconf doesn't provide a mechanism for modifying definitions
1038 dnl provided by makefile fragments.
1040 if test "${nativefile}" = ""; then
1041 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
1042 < Makefile > Makefile.tem
1043 mv -f Makefile.tem Makefile
1047 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1048 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1049 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1050 mv -f Makefile.tmp Makefile
1054 case x$CONFIG_HEADERS in
1055 xconfig.h:config.in)
1060 gdb_host_cpu=$gdb_host_cpu
1061 gdb_target_cpu=$gdb_target_cpu
1062 nativefile=$nativefile