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
74 targ=${target} ; . ${srcdir}/../bfd/config.bfd
79 dnl use BFD to determine the default architecture and byte order
80 dnl (bfd_vec->byteorder provides the latter).
82 . ${srcdir}/../bfd/config.bfd
83 if test x"${targ_archs}" != x ; then
84 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, ${targ_archs})
86 if test x"${targ_defvec}" != x ; then
87 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, ${targ_defvec})
93 AC_CHECK_TOOL(RANLIB, ranlib, :)
94 AC_CHECK_TOOL(DLLTOOL, dlltool)
95 AC_CHECK_TOOL(WINDRES, windres)
98 dnl MiG is needed for the Hurd.
99 AC_CHECK_TOOL(MIG, mig)
107 dnl Solaris 7 needs _MSE_INT_H defined to avoid a clash between <widec.h>
108 dnl and <wchar.h> that causes AC_CHECK_HEADERS to think <curses.h> doesn't
111 case $host_os in solaris2.7 | solaris2.8) case "$GCC" in yes)
112 AC_DEFINE(_MSE_INT_H)
115 AC_CHECK_HEADERS(ctype.h endian.h link.h thread_db.h proc_service.h \
116 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
117 string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
118 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
119 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
120 time.h sys/ioctl.h sys/user.h \
121 dirent.h sys/ndir.h sys/dir.h ndir.h \
127 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
130 # See if machine/reg.h supports the %fs and %gs i386 segment registers.
131 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
132 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
133 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
134 gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
135 if test $gdb_cv_struct_reg_r_fs = yes; then
136 AC_DEFINE(HAVE_STRUCT_REG_R_FS)
138 AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
139 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
140 gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
141 if test $gdb_cv_struct_reg_r_gs = yes; then
142 AC_DEFINE(HAVE_STRUCT_REG_R_GS)
145 dnl See if ptrace.h provides the PTRACE_GETREGS request.
146 AC_MSG_CHECKING(for PTRACE_GETREGS)
147 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
148 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
150 [gdb_cv_have_ptrace_getregs=yes],
151 [gdb_cv_have_ptrace_getregs=no])])
152 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
153 if test $gdb_cv_have_ptrace_getregs = yes; then
154 AC_DEFINE(HAVE_PTRACE_GETREGS)
157 dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
158 dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
159 dnl Linux kernel patch for SSE support. That patch may or may not
160 dnl actually make it into the official distribution. If you find that
161 dnl years have gone by since this configure test was added, and Linux
162 dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
163 dnl make it, and you can delete this code.
164 AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
165 AC_CACHE_VAL(gdb_cv_have_ptrace_getxfpregs,
166 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
167 [PTRACE_GETXFPREGS;],
168 [gdb_cv_have_ptrace_getxfpregs=yes],
169 [gdb_cv_have_ptrace_getxfpregs=no])])
170 AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
171 if test $gdb_cv_have_ptrace_getxfpregs = yes; then
172 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
175 AC_CHECK_LIB(socket, socketpair)
176 AC_CHECK_FUNCS(socketpair)
179 BFD_NEED_DECLARATION(malloc)
180 BFD_NEED_DECLARATION(realloc)
181 BFD_NEED_DECLARATION(free)
182 BFD_NEED_DECLARATION(strerror)
183 BFD_NEED_DECLARATION(strdup)
184 BFD_NEED_DECLARATION(strstr)
187 # The following save_state_t checkery is only necessary for HPUX
188 # versions earlier than 10.20. When those fade from memory, this
189 # could be expunged. --jsm 1999-03-22
191 AC_MSG_CHECKING(for HPUX save_state structure)
192 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
193 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
194 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
195 gdb_cv_hpux_sswide=no)
196 if test $gdb_cv_hpux_savestate = yes
198 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
200 if test $gdb_cv_hpux_sswide = yes
202 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
204 AC_MSG_RESULT($gdb_cv_hpux_sswide)
207 # If we are configured native on GNU/Linux, work around problems with
209 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
211 if test "${target}" = "${host}"; then
213 i[[3456]]86-*-linux*)
214 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
215 AC_DEFINE(sys_quotactl)
217 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
218 AC_DEFINE(NEW_PROC_API)
220 *-*-solaris2.[[678]])
221 AC_DEFINE(NEW_PROC_API)
226 if test "$ac_cv_header_sys_procfs_h" = yes; then
227 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
228 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
229 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
230 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
231 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
232 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
233 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
234 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
236 dnl Check for broken prfpregset_t type
238 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
239 dnl prfpregset_t type (it's a typedef for the pointer to a struct
240 dnl instead of the struct itself). We detect this here, and work
241 dnl around it in lin-thread.c.
243 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
244 AC_MSG_CHECKING(whether prfpregset_t type is broken)
245 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
246 [AC_TRY_RUN([#include <sys/procfs.h>
249 if (sizeof (prfpregset_t) == sizeof (void *))
253 gdb_cv_prfpregset_t_broken=no,
254 gdb_cv_prfpregset_t_broken=yes,
255 gdb_cv_prfpregset_t_broken=yes)])
256 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
257 if test $gdb_cv_prfpregset_t_broken = yes; then
258 AC_DEFINE(PRFPREGSET_T_BROKEN)
262 dnl Check for PIOCSET ioctl entry
264 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
265 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
266 [AC_TRY_COMPILE([#include <unistd.h>
267 #include <sys/types.h>
268 #include <sys/procfs.h>
271 dummy = ioctl(0, PIOCSET, &dummy);
273 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
274 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
275 if test $gdb_cv_have_procfs_piocset = yes; then
276 AC_DEFINE(HAVE_PROCFS_PIOCSET)
280 dnl See if host has libm. This is usually needed by simulators.
281 AC_CHECK_LIB(m, main)
283 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
285 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
286 dnl under Solaris 2.6 because it is some funky empty library.
287 dnl So only link in libw if we have to.
288 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
290 dnl See if compiler supports "long long" type.
292 AC_MSG_CHECKING(for long long support in compiler)
293 AC_CACHE_VAL(gdb_cv_c_long_long,
295 extern long long foo;
296 switch (foo & 2) { case 0: return 1; }
298 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
299 AC_MSG_RESULT($gdb_cv_c_long_long)
300 if test $gdb_cv_c_long_long = yes; then
301 AC_DEFINE(CC_HAS_LONG_LONG)
304 dnl See if the compiler and runtime support printing long long
306 AC_MSG_CHECKING(for long long support in printf)
307 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
312 l = (l << 16) + 0x0123;
313 l = (l << 16) + 0x4567;
314 l = (l << 16) + 0x89ab;
315 l = (l << 16) + 0xcdef;
316 sprintf (buf, "0x%016llx", l);
317 return (strcmp ("0x0123456789abcdef", buf));
319 gdb_cv_printf_has_long_long=yes,
320 gdb_cv_printf_has_long_long=no,
321 gdb_cv_printf_has_long_long=no)])
322 if test $gdb_cv_printf_has_long_long = yes; then
323 AC_DEFINE(PRINTF_HAS_LONG_LONG)
325 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
327 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
328 dnl because autoconf complains about cross-compilation issues. However, this
329 dnl code uses the same variables as the macro for compatibility.
331 AC_MSG_CHECKING(for long double support in compiler)
332 AC_CACHE_VAL(ac_cv_c_long_double,
333 [AC_TRY_COMPILE(, [long double foo;],
334 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
335 AC_MSG_RESULT($ac_cv_c_long_double)
336 if test $ac_cv_c_long_double = yes; then
337 AC_DEFINE(HAVE_LONG_DOUBLE)
340 dnl See if the compiler and runtime support printing long doubles
342 AC_MSG_CHECKING(for long double support in printf)
343 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
347 long double f = 3.141592653;
348 sprintf (buf, "%Lg", f);
349 return (strncmp ("3.14159", buf, 7));
351 gdb_cv_printf_has_long_double=yes,
352 gdb_cv_printf_has_long_double=no,
353 gdb_cv_printf_has_long_double=no)])
354 if test $gdb_cv_printf_has_long_double = yes; then
355 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
357 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
359 dnl See if the compiler and runtime support scanning long doubles
361 AC_MSG_CHECKING(for long double support in scanf)
362 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
365 char *buf = "3.141592653";
367 sscanf (buf, "%Lg", &f);
368 return !(f > 3.14159 && f < 3.14160);
370 gdb_cv_scanf_has_long_double=yes,
371 gdb_cv_scanf_has_long_double=no,
372 gdb_cv_scanf_has_long_double=no)])
373 if test $gdb_cv_scanf_has_long_double = yes; then
374 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
376 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
380 dnl See if thread_db library is around for Solaris thread debugging. Note that
381 dnl we must explicitly test for version 1 of the library because version 0
382 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
384 dnl Note that we only want this if we are both native (host == target), and
385 dnl not doing a canadian cross build (build == host).
387 if test ${build} = ${host} -a ${host} = ${target} ; then
390 AC_MSG_CHECKING(for HPUX/OSF thread support)
391 if test -f /usr/include/dce/cma_config.h ; then
392 if test "$GCC" = "yes" ; then
394 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
395 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
396 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
398 AC_MSG_RESULT(no (suppressed because you are not using GCC))
405 AC_MSG_CHECKING(for Solaris thread debugging library)
406 if test -f /usr/lib/libthread_db.so.1 ; then
408 AC_DEFINE(HAVE_THREAD_DB_LIB)
409 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
410 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
411 AC_CHECK_LIB(dl, dlopen)
412 if test "$GCC" = "yes" ; then
413 # The GNU linker requires the -export-dynamic option to make
414 # all symbols visible in the dynamic symbol table.
415 hold_ldflags=$LDFLAGS
416 AC_MSG_CHECKING(for the ld -export-dynamic flag)
417 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
418 AC_TRY_LINK(, [int i;], found=yes, found=no)
419 LDFLAGS=$hold_ldflags
420 AC_MSG_RESULT($found)
421 if test $found = yes; then
422 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
425 # Sun randomly tweaked the prototypes in <proc_service.h>
427 AC_MSG_CHECKING(if <proc_service.h> is old)
428 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
430 #include <proc_service.h>
432 (struct ps_prochandle*, psaddr_t, const void*, size_t);
433 ],, gdb_cv_proc_service_is_old=no,
434 gdb_cv_proc_service_is_old=yes)
436 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
437 if test $gdb_cv_proc_service_is_old = yes; then
438 AC_DEFINE(PROC_SERVICE_IS_OLD)
445 AC_SUBST(CONFIG_LDFLAGS)
448 dnl Handle optional features that can be enabled.
450 dnl Handle MI sub-directory configury.
452 [ --enable-gdbmi Enable GDB-MI interface],
454 case "${enable_gdbmi}" in
456 "") enable_gdbmi=yes ;;
458 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
462 case ${enable_gdbmi} in
464 if test -d "${srcdir}/mi" ; then
465 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
466 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
467 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_MI_SRCS)"
468 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
469 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
470 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
471 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
472 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
473 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
479 [ --enable-tui Enable full-screen terminal user interface],
481 case "${enable_tui}" in
483 "") enable_tui=yes ;;
485 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
489 case ${enable_tui} in
491 if test -d "${srcdir}/tui" ; then
492 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
493 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
494 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_TUI_SRCS)"
495 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
496 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
497 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
498 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
499 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
500 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
505 AC_ARG_ENABLE(netrom,
506 [ --enable-netrom Enable NetROM support],
507 [case "${enableval}" in
508 yes) enable_netrom=yes ;;
509 no) enable_netrom=no ;;
510 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
513 if test "${enable_netrom}" = "yes"; then
514 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
515 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
519 # Don't add -Wall or -Wunused, they include -Wunused-parameter which
521 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
522 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
523 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
524 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
525 # -Wchar-subscripts -Wuninitialized -Wtraditional -Wshadow -Wcast-qual
526 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
527 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
528 # -Woverloaded-virtual -Winline -Werror"
529 AC_ARG_ENABLE(build-warnings,
530 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
531 [case "${enableval}" in
533 no) build_warnings="-w";;
534 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
535 build_warnings="${build_warnings} ${t}";;
536 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
537 build_warnings="${t} ${build_warnings}";;
538 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
540 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
541 echo "Setting compiler warning flags = $build_warnings" 6>&1
545 if test "x${build_warnings}" != x -a "x$GCC" = xyes
547 AC_MSG_CHECKING(compiler warning flags)
548 # Separate out the -Werror flag as some files just cannot be
549 # compiled with it enabled.
550 for w in ${build_warnings}; do
552 -Werr*) WERROR_CFLAGS=-Werror ;;
553 *) # Check that GCC accepts it
554 if $CC $w 2>&1 | grep 'unrecognized option' > /dev/null; then
557 WARN_CFLAGS="${WARN_CFLAGS} $w"
561 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
563 AC_SUBST(WARN_CFLAGS)
564 AC_SUBST(WERROR_CFLAGS)
568 AC_SUBST(MMALLOC_CFLAGS)
572 [ --with-mmalloc Use memory mapped malloc package],
573 [case "${withval}" in
574 yes) want_mmalloc=true ;;
575 no) want_mmalloc=false;;
576 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
577 esac],[want_mmalloc=false])dnl
579 if test x$want_mmalloc = xtrue; then
580 AC_DEFINE(USE_MMALLOC)
581 AC_DEFINE(MMCHECK_FORCE)
582 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
583 MMALLOC='../mmalloc/libmmalloc.a'
586 AC_ARG_WITH(included-regex,
587 [ --with-included-regex Use included regex],
588 [case "${withval}" in
589 yes) want_included_regex=true ;;
590 no) want_included_regex=false;;
591 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
592 esac],[want_included_regex=true])dnl
594 if test $want_included_regex = false; then
595 AC_MSG_CHECKING(for GNU regex)
596 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
597 [AC_TRY_COMPILE([#include <gnu-versions.h>
598 #include <sys/types.h>
600 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
601 #error No valid GNU regex.
604 [gdb_cv_have_gnu_regex=yes],
605 [gdb_cv_have_gnu_regex=no])])
606 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
607 if test $gdb_cv_have_gnu_regex = no; then
608 want_included_regex=true
612 if test x${want_included_regex} = xtrue; then
614 AC_DEFINE(USE_INCLUDED_REGEX)
618 # In the Cygwin environment, we need some additional flags.
619 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
620 [AC_EGREP_CPP(lose, [
621 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
623 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
625 dnl Figure out which term library to use.
626 if test x$gdb_host = xgo32; then
629 if test x$gdb_cv_os_cygwin = xyes; then
630 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
633 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
634 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
635 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
636 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
637 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
638 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
640 if test "x$TERM_LIB" = x
642 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
648 # libreadline needs libuser32.a in a cygwin environment
650 if test x$gdb_cv_os_cygwin = xyes; then
653 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
659 LIBGUI="../libgui/src/libgui.a"
660 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
662 AC_SUBST(GUI_CFLAGS_X)
665 [ --with-cpu=CPU Set the default CPU variant to debug],
667 powerpc-* | powerpcle-* )
668 ## It would be nice to keep this table in sync with the one in
670 case "${with_cpu}" in
671 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
673 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
675 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
676 ## These are all RS6000 variants, as far as GDB is concerned.
686 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
692 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
695 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
700 [ --enable-gdbtk Enable GDBTK GUI front end],
701 [case "${enableval}" in
705 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
708 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
716 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
719 # Default is on for everything but go32 and Cygwin
724 if test -d "${srcdir}/gdbtk" ; then
738 if test "${enable_gdbtk}" = "yes"; then
741 if test -z "${no_tcl}"; then
745 # If $no_tk is nonempty, then we can't do Tk, and there is no
746 # point to doing Tcl.
747 if test -z "${no_tk}"; then
755 # now look for Itcl library stuff
757 CY_AC_PATH_ITCLCONFIG
758 if test -z "${no_itcl}"; then
759 CY_AC_LOAD_ITCLCONFIG
762 itcldir=../itcl/itcl/win/
765 itcldir=../itcl/itcl/unix/
770 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
771 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
775 # now look for Itk library stuff
777 if test -z "${no_itcl}"; then
782 itkdir=../itcl/itk/win/
785 itkdir=../itcl/itk/unix/
789 ITKLIB="${ITK_BUILD_LIB_SPEC}"
790 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
793 # now look for Tix library stuff
795 if test -z "${no_tix}"; then
797 TIXLIB="${TIX_BUILD_LIB_SPEC}"
798 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
801 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
802 # Tcl/Tk 8.1 require -fwritable strings. I don't
803 # know whether 8.2 will or not, but I bet it will.
804 # I don't have to worry about 7.x since we don't support it.
806 if test "$GCC" = "yes"; then
807 if test "$TCL_VERSION" != "8.0" ; then
808 GDBTK_CFLAGS="-fwritable-strings"
812 # Include some libraries that Tcl and Tk want.
813 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
814 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
815 # Yes, the ordering seems wrong here. But it isn't.
816 # TK_LIBS is the list of libraries that need to be linked
817 # after Tcl/Tk. Note that this isn't put into LIBS. If it
818 # were in LIBS then any link tests after this point would
819 # try to include things like `$(LIBGUI)', which wouldn't work.
820 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
821 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"
822 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
823 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"
824 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
825 CONFIG_CLEAN="${CONFIG_ALL} \$(SUBDIR_GDBTK_CLEAN)"
826 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
827 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
829 if test x$gdb_cv_os_cygwin = xyes; then
830 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
831 WIN32LDAPP="-Wl,--subsystem,console"
832 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
848 AC_SUBST(GDBTK_CFLAGS)
853 # Unlike the sim directory, whether a simulator is linked is controlled by
854 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
855 # This code just checks for a few cases where we'd like to ignore those
856 # definitions, even when they're present in the '.mt' file. These cases
857 # are when --disable-sim is specified, or if the simulator directory is
858 # not part of the soruce tree.
861 [ --enable-sim Link gdb with simulator],
862 [echo "enable_sim = $enable_sim";
863 echo "enableval = ${enableval}";
864 case "${enableval}" in
865 yes) ignore_sim=false ;;
866 no) ignore_sim=true ;;
867 *) ignore_sim=false ;;
871 if test ! -d "${srcdir}/../sim"; then
875 if test "${ignore_sim}" = "true"; then
877 IGNORE_SIM_OBS="SIM_OBS="
884 AC_SUBST(IGNORE_SIM_OBS)
886 AC_SUBST(ENABLE_CFLAGS)
889 AC_SUBST(CONFIG_DEPS)
890 AC_SUBST(CONFIG_SRCS)
891 AC_SUBST(CONFIG_INITS)
893 AC_SUBST(CONFIG_CLEAN)
894 AC_SUBST(CONFIG_INSTALL)
895 AC_SUBST(CONFIG_UNINSTALL)
897 # Begin stuff to support --enable-shared
898 AC_ARG_ENABLE(shared,
899 [ --enable-shared Use shared libraries],
900 [case "${enableval}" in
908 # If we have shared libraries, try to set rpath reasonably.
909 if test "${shared}" = "true"; then
912 HLDFLAGS='-Wl,+s,+b,$(libdir)'
914 *-*-irix5* | *-*-irix6*)
915 HLDFLAGS='-Wl,-rpath,$(libdir)'
919 *-*-linux* | *-pc-linux-gnu*)
920 HLDFLAGS='-Wl,-rpath,$(libdir)'
923 HLDFLAGS='-R $(libdir)'
926 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;'
931 # On SunOS, if the linker supports the -rpath option, use it to
932 # prevent ../bfd and ../opcodes from being included in the run time
936 echo 'main () { }' > conftest.c
937 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
938 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
940 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
942 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
944 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
946 elif test "${shared}" = "true"; then
947 HLDFLAGS='-Wl,-rpath=$(libdir)'
949 HLDFLAGS='-Wl,-rpath='
951 rm -f conftest.t conftest.c conftest
956 # End stuff to support --enable-shared
958 # target_subdir is used by the testsuite to find the target libraries.
960 if test "${host}" != "${target}"; then
961 target_subdir="${target_alias}/"
963 AC_SUBST(target_subdir)
966 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
967 if test ! -f ${host_makefile_frag}; then
968 AC_MSG_ERROR("*** Gdb does not support host ${host}")
970 frags="$frags $host_makefile_frag"
972 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
973 if test ! -f ${target_makefile_frag}; then
974 AC_MSG_ERROR("*** Gdb does not support target ${target}")
976 frags="$frags $target_makefile_frag"
978 AC_SUBST_FILE(host_makefile_frag)
979 AC_SUBST_FILE(target_makefile_frag)
984 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
985 ' ${host_makefile_frag}`
988 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
989 ' ${target_makefile_frag}`
991 # these really aren't orthogonal true/false values of the same condition,
992 # but shells are slow enough that I like to reuse the test conditions
994 if test "${target}" = "${host}"; then
996 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
997 ' ${host_makefile_frag}`
999 # GDBserver is only useful in a "native" enviroment
1000 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
1004 SUBDIRS="doc testsuite nlm"
1005 if test "${enable_multi_ice}" = "yes"; then
1006 SUBDIRS="${SUBDIRS} multi-ice"
1011 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1012 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
1013 # corresponding links. But we have to remove the xm.h files and tm.h
1014 # files anyway, e.g. when switching from "configure host" to
1020 if test "${hostfile}" != ""; then
1021 files="${files} config/${gdb_host_cpu}/${hostfile}"
1022 links="${links} xm.h"
1025 if test "${targetfile}" != ""; then
1026 files="${files} config/${gdb_target_cpu}/${targetfile}"
1027 links="${links} tm.h"
1030 if test "${nativefile}" != ""; then
1031 files="${files} config/${gdb_host_cpu}/${nativefile}"
1032 links="${links} nm.h"
1034 # A cross-only configuration.
1035 files="${files} config/nm-empty.h"
1036 links="${links} nm.h"
1040 AC_LINK_FILES($files, $links)
1042 dnl Check for exe extension set on certain hosts (e.g. Win32)
1045 AC_CONFIG_SUBDIRS($configdirs)
1046 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1048 dnl Autoconf doesn't provide a mechanism for modifying definitions
1049 dnl provided by makefile fragments.
1051 if test "${nativefile}" = ""; then
1052 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
1053 < Makefile > Makefile.tem
1054 mv -f Makefile.tem Makefile
1058 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1059 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1060 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1061 mv -f Makefile.tmp Makefile
1065 case x$CONFIG_HEADERS in
1066 xconfig.h:config.in)
1071 gdb_host_cpu=$gdb_host_cpu
1072 gdb_target_cpu=$gdb_target_cpu
1073 nativefile=$nativefile