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
84 dnl We only want the first arch, if there is more than one.
85 targ_archs=`echo ${targ_archs} | sed -e 's/ .*//;'`
87 if test x"${targ_archs}" != x ; then
88 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, ${targ_archs})
90 if test x"${targ_defvec}" != x ; then
91 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, ${targ_defvec})
97 AC_CHECK_TOOL(RANLIB, ranlib, :)
98 AC_CHECK_TOOL(DLLTOOL, dlltool)
99 AC_CHECK_TOOL(WINDRES, windres)
102 dnl MiG is needed for the Hurd.
103 AC_CHECK_TOOL(MIG, mig)
111 dnl Solaris 7 needs _MSE_INT_H defined to avoid a clash between <widec.h>
112 dnl and <wchar.h> that causes AC_CHECK_HEADERS to think <curses.h> doesn't
115 case $host_os in solaris2.7 | solaris2.8) case "$GCC" in yes)
116 AC_DEFINE(_MSE_INT_H)
119 AC_CHECK_HEADERS(ctype.h endian.h link.h thread_db.h proc_service.h \
120 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
121 string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
122 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
123 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
124 time.h sys/ioctl.h sys/user.h \
125 dirent.h sys/ndir.h sys/dir.h ndir.h \
131 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
134 # See if machine/reg.h supports the %fs and %gs i386 segment registers.
135 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
136 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
137 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
138 gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
139 if test $gdb_cv_struct_reg_r_fs = yes; then
140 AC_DEFINE(HAVE_STRUCT_REG_R_FS)
142 AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
143 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
144 gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
145 if test $gdb_cv_struct_reg_r_gs = yes; then
146 AC_DEFINE(HAVE_STRUCT_REG_R_GS)
149 dnl See if ptrace.h provides the PTRACE_GETREGS request.
150 AC_MSG_CHECKING(for PTRACE_GETREGS)
151 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
152 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
154 [gdb_cv_have_ptrace_getregs=yes],
155 [gdb_cv_have_ptrace_getregs=no])])
156 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
157 if test $gdb_cv_have_ptrace_getregs = yes; then
158 AC_DEFINE(HAVE_PTRACE_GETREGS)
161 dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
162 dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
163 dnl Linux kernel patch for SSE support. That patch may or may not
164 dnl actually make it into the official distribution. If you find that
165 dnl years have gone by since this configure test was added, and Linux
166 dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
167 dnl make it, and you can delete this code.
168 AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
169 AC_CACHE_VAL(gdb_cv_have_ptrace_getxfpregs,
170 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
171 [PTRACE_GETXFPREGS;],
172 [gdb_cv_have_ptrace_getxfpregs=yes],
173 [gdb_cv_have_ptrace_getxfpregs=no])])
174 AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
175 if test $gdb_cv_have_ptrace_getxfpregs = yes; then
176 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
179 AC_CHECK_LIB(socket, socketpair)
180 AC_CHECK_FUNCS(socketpair)
183 BFD_NEED_DECLARATION(malloc)
184 BFD_NEED_DECLARATION(realloc)
185 BFD_NEED_DECLARATION(free)
186 BFD_NEED_DECLARATION(strerror)
187 BFD_NEED_DECLARATION(strdup)
188 BFD_NEED_DECLARATION(strstr)
191 # The following save_state_t checkery is only necessary for HPUX
192 # versions earlier than 10.20. When those fade from memory, this
193 # could be expunged. --jsm 1999-03-22
195 AC_MSG_CHECKING(for HPUX save_state structure)
196 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
197 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
198 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
199 gdb_cv_hpux_sswide=no)
200 if test $gdb_cv_hpux_savestate = yes
202 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
204 if test $gdb_cv_hpux_sswide = yes
206 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
208 AC_MSG_RESULT($gdb_cv_hpux_sswide)
211 # If we are configured native on GNU/Linux, work around problems with
213 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
215 if test "${target}" = "${host}"; then
217 i[[3456]]86-*-linux*)
218 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
219 AC_DEFINE(sys_quotactl)
221 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
222 AC_DEFINE(NEW_PROC_API)
224 *-*-solaris2.[[678]])
225 AC_DEFINE(NEW_PROC_API)
230 if test "$ac_cv_header_sys_procfs_h" = yes; then
231 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
232 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
233 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
234 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
235 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
236 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
237 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
238 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
240 dnl Check for broken prfpregset_t type
242 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
243 dnl prfpregset_t type (it's a typedef for the pointer to a struct
244 dnl instead of the struct itself). We detect this here, and work
245 dnl around it in lin-thread.c.
247 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
248 AC_MSG_CHECKING(whether prfpregset_t type is broken)
249 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
250 [AC_TRY_RUN([#include <sys/procfs.h>
253 if (sizeof (prfpregset_t) == sizeof (void *))
257 gdb_cv_prfpregset_t_broken=no,
258 gdb_cv_prfpregset_t_broken=yes,
259 gdb_cv_prfpregset_t_broken=yes)])
260 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
261 if test $gdb_cv_prfpregset_t_broken = yes; then
262 AC_DEFINE(PRFPREGSET_T_BROKEN)
266 dnl Check for PIOCSET ioctl entry
268 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
269 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
270 [AC_TRY_COMPILE([#include <unistd.h>
271 #include <sys/types.h>
272 #include <sys/procfs.h>
275 dummy = ioctl(0, PIOCSET, &dummy);
277 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
278 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
279 if test $gdb_cv_have_procfs_piocset = yes; then
280 AC_DEFINE(HAVE_PROCFS_PIOCSET)
284 dnl See if host has libm. This is usually needed by simulators.
285 AC_CHECK_LIB(m, main)
287 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
289 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
290 dnl under Solaris 2.6 because it is some funky empty library.
291 dnl So only link in libw if we have to.
292 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
294 dnl See if compiler supports "long long" type.
296 AC_MSG_CHECKING(for long long support in compiler)
297 AC_CACHE_VAL(gdb_cv_c_long_long,
299 extern long long foo;
300 switch (foo & 2) { case 0: return 1; }
302 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
303 AC_MSG_RESULT($gdb_cv_c_long_long)
304 if test $gdb_cv_c_long_long = yes; then
305 AC_DEFINE(CC_HAS_LONG_LONG)
308 dnl See if the compiler and runtime support printing long long
310 AC_MSG_CHECKING(for long long support in printf)
311 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
316 l = (l << 16) + 0x0123;
317 l = (l << 16) + 0x4567;
318 l = (l << 16) + 0x89ab;
319 l = (l << 16) + 0xcdef;
320 sprintf (buf, "0x%016llx", l);
321 return (strcmp ("0x0123456789abcdef", buf));
323 gdb_cv_printf_has_long_long=yes,
324 gdb_cv_printf_has_long_long=no,
325 gdb_cv_printf_has_long_long=no)])
326 if test $gdb_cv_printf_has_long_long = yes; then
327 AC_DEFINE(PRINTF_HAS_LONG_LONG)
329 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
331 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
332 dnl because autoconf complains about cross-compilation issues. However, this
333 dnl code uses the same variables as the macro for compatibility.
335 AC_MSG_CHECKING(for long double support in compiler)
336 AC_CACHE_VAL(ac_cv_c_long_double,
337 [AC_TRY_COMPILE(, [long double foo;],
338 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
339 AC_MSG_RESULT($ac_cv_c_long_double)
340 if test $ac_cv_c_long_double = yes; then
341 AC_DEFINE(HAVE_LONG_DOUBLE)
344 dnl See if the compiler and runtime support printing long doubles
346 AC_MSG_CHECKING(for long double support in printf)
347 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
351 long double f = 3.141592653;
352 sprintf (buf, "%Lg", f);
353 return (strncmp ("3.14159", buf, 7));
355 gdb_cv_printf_has_long_double=yes,
356 gdb_cv_printf_has_long_double=no,
357 gdb_cv_printf_has_long_double=no)])
358 if test $gdb_cv_printf_has_long_double = yes; then
359 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
361 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
363 dnl See if the compiler and runtime support scanning long doubles
365 AC_MSG_CHECKING(for long double support in scanf)
366 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
369 char *buf = "3.141592653";
371 sscanf (buf, "%Lg", &f);
372 return !(f > 3.14159 && f < 3.14160);
374 gdb_cv_scanf_has_long_double=yes,
375 gdb_cv_scanf_has_long_double=no,
376 gdb_cv_scanf_has_long_double=no)])
377 if test $gdb_cv_scanf_has_long_double = yes; then
378 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
380 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
384 dnl See if thread_db library is around for Solaris thread debugging. Note that
385 dnl we must explicitly test for version 1 of the library because version 0
386 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
388 dnl Note that we only want this if we are both native (host == target), and
389 dnl not doing a canadian cross build (build == host).
391 if test ${build} = ${host} -a ${host} = ${target} ; then
394 AC_MSG_CHECKING(for HPUX/OSF thread support)
395 if test -f /usr/include/dce/cma_config.h ; then
396 if test "$GCC" = "yes" ; then
398 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
399 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
400 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
402 AC_MSG_RESULT(no (suppressed because you are not using GCC))
409 AC_MSG_CHECKING(for Solaris thread debugging library)
410 if test -f /usr/lib/libthread_db.so.1 ; then
412 AC_DEFINE(HAVE_THREAD_DB_LIB)
413 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
414 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
415 AC_CHECK_LIB(dl, dlopen)
416 if test "$GCC" = "yes" ; then
417 # The GNU linker requires the -export-dynamic option to make
418 # all symbols visible in the dynamic symbol table.
419 hold_ldflags=$LDFLAGS
420 AC_MSG_CHECKING(for the ld -export-dynamic flag)
421 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
422 AC_TRY_LINK(, [int i;], found=yes, found=no)
423 LDFLAGS=$hold_ldflags
424 AC_MSG_RESULT($found)
425 if test $found = yes; then
426 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
429 # Sun randomly tweaked the prototypes in <proc_service.h>
431 AC_MSG_CHECKING(if <proc_service.h> is old)
432 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
434 #include <proc_service.h>
436 (struct ps_prochandle*, psaddr_t, const void*, size_t);
437 ],, gdb_cv_proc_service_is_old=no,
438 gdb_cv_proc_service_is_old=yes)
440 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
441 if test $gdb_cv_proc_service_is_old = yes; then
442 AC_DEFINE(PROC_SERVICE_IS_OLD)
449 AC_SUBST(CONFIG_LDFLAGS)
452 dnl Handle optional features that can be enabled.
454 dnl Handle MI sub-directory configury.
456 [ --enable-gdbmi Enable GDB-MI interface],
458 case "${enable_gdbmi}" in
460 "") enable_gdbmi=yes ;;
462 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
466 case ${enable_gdbmi} in
468 if test -d "${srcdir}/mi" ; then
469 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
470 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
471 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_MI_SRCS)"
472 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
473 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
474 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
475 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
476 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
477 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
483 [ --enable-tui Enable full-screen terminal user interface],
485 case "${enable_tui}" in
487 "") enable_tui=yes ;;
489 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
493 case ${enable_tui} in
495 if test -d "${srcdir}/tui" ; then
496 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
497 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
498 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_TUI_SRCS)"
499 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
500 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
501 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
502 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
503 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
504 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
509 AC_ARG_ENABLE(netrom,
510 [ --enable-netrom Enable NetROM support],
511 [case "${enableval}" in
512 yes) enable_netrom=yes ;;
513 no) enable_netrom=no ;;
514 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
517 if test "${enable_netrom}" = "yes"; then
518 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
519 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
523 # Don't add -Wall or -Wunused, they include -Wunused-parameter which
525 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
526 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
527 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
528 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
529 # -Wchar-subscripts -Wuninitialized -Wtraditional -Wshadow -Wcast-qual
530 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
531 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
532 # -Woverloaded-virtual -Winline -Werror"
533 AC_ARG_ENABLE(build-warnings,
534 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
535 [case "${enableval}" in
537 no) build_warnings="-w";;
538 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
539 build_warnings="${build_warnings} ${t}";;
540 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
541 build_warnings="${t} ${build_warnings}";;
542 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
544 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
545 echo "Setting compiler warning flags = $build_warnings" 6>&1
549 if test "x${build_warnings}" != x -a "x$GCC" = xyes
551 AC_MSG_CHECKING(compiler warning flags)
552 # Separate out the -Werror flag as some files just cannot be
553 # compiled with it enabled.
554 for w in ${build_warnings}; do
556 -Werr*) WERROR_CFLAGS=-Werror ;;
557 *) # Check that GCC accepts it
558 if $CC $w 2>&1 | grep 'unrecognized option' > /dev/null; then
561 WARN_CFLAGS="${WARN_CFLAGS} $w"
565 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
567 AC_SUBST(WARN_CFLAGS)
568 AC_SUBST(WERROR_CFLAGS)
572 AC_SUBST(MMALLOC_CFLAGS)
576 [ --with-mmalloc Use memory mapped malloc package],
577 [case "${withval}" in
578 yes) want_mmalloc=true ;;
579 no) want_mmalloc=false;;
580 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
581 esac],[want_mmalloc=false])dnl
583 if test x$want_mmalloc = xtrue; then
584 AC_DEFINE(USE_MMALLOC)
585 AC_DEFINE(MMCHECK_FORCE)
586 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
587 MMALLOC='../mmalloc/libmmalloc.a'
590 AC_ARG_WITH(included-regex,
591 [ --with-included-regex Use included regex],
592 [case "${withval}" in
593 yes) want_included_regex=true ;;
594 no) want_included_regex=false;;
595 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
596 esac],[want_included_regex=true])dnl
598 if test $want_included_regex = false; then
599 AC_MSG_CHECKING(for GNU regex)
600 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
601 [AC_TRY_COMPILE([#include <gnu-versions.h>
602 #include <sys/types.h>
604 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
605 #error No valid GNU regex.
608 [gdb_cv_have_gnu_regex=yes],
609 [gdb_cv_have_gnu_regex=no])])
610 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
611 if test $gdb_cv_have_gnu_regex = no; then
612 want_included_regex=true
616 if test x${want_included_regex} = xtrue; then
618 AC_DEFINE(USE_INCLUDED_REGEX)
622 # In the Cygwin environment, we need some additional flags.
623 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
624 [AC_EGREP_CPP(lose, [
625 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
627 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
629 dnl Figure out which term library to use.
630 if test x$gdb_host = xgo32; then
633 if test x$gdb_cv_os_cygwin = xyes; then
634 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
637 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
638 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
639 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
640 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
641 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
642 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
644 if test "x$TERM_LIB" = x
646 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
652 # libreadline needs libuser32.a in a cygwin environment
654 if test x$gdb_cv_os_cygwin = xyes; then
657 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
663 LIBGUI="../libgui/src/libgui.a"
664 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
666 AC_SUBST(GUI_CFLAGS_X)
669 [ --with-cpu=CPU Set the default CPU variant to debug],
671 powerpc-* | powerpcle-* )
672 ## It would be nice to keep this table in sync with the one in
674 case "${with_cpu}" in
675 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
677 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
679 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
680 ## These are all RS6000 variants, as far as GDB is concerned.
690 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
696 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
699 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
704 [ --enable-gdbtk Enable GDBTK GUI front end],
705 [case "${enableval}" in
709 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
712 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
720 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
723 # Default is on for everything but go32 and Cygwin
728 if test -d "${srcdir}/gdbtk" ; then
742 if test "${enable_gdbtk}" = "yes"; then
745 if test -z "${no_tcl}"; then
749 # If $no_tk is nonempty, then we can't do Tk, and there is no
750 # point to doing Tcl.
751 if test -z "${no_tk}"; then
759 # now look for Itcl library stuff
761 CY_AC_PATH_ITCLCONFIG
762 if test -z "${no_itcl}"; then
763 CY_AC_LOAD_ITCLCONFIG
766 itcldir=../itcl/itcl/win/
769 itcldir=../itcl/itcl/unix/
774 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
775 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
779 # now look for Itk library stuff
781 if test -z "${no_itcl}"; then
786 itkdir=../itcl/itk/win/
789 itkdir=../itcl/itk/unix/
793 ITKLIB="${ITK_BUILD_LIB_SPEC}"
794 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
797 # now look for Tix library stuff
799 if test -z "${no_tix}"; then
801 TIXLIB="${TIX_BUILD_LIB_SPEC}"
802 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
805 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
806 # Tcl/Tk 8.1 require -fwritable strings. I don't
807 # know whether 8.2 will or not, but I bet it will.
808 # I don't have to worry about 7.x since we don't support it.
810 if test "$GCC" = "yes"; then
811 if test "$TCL_VERSION" != "8.0" ; then
812 GDBTK_CFLAGS="-fwritable-strings"
816 # Include some libraries that Tcl and Tk want.
817 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
818 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
819 # Yes, the ordering seems wrong here. But it isn't.
820 # TK_LIBS is the list of libraries that need to be linked
821 # after Tcl/Tk. Note that this isn't put into LIBS. If it
822 # were in LIBS then any link tests after this point would
823 # try to include things like `$(LIBGUI)', which wouldn't work.
824 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
825 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"
826 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
827 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"
828 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
829 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
830 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
831 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
833 if test x$gdb_cv_os_cygwin = xyes; then
834 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
835 WIN32LDAPP="-Wl,--subsystem,console"
836 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
852 AC_SUBST(GDBTK_CFLAGS)
857 # Unlike the sim directory, whether a simulator is linked is controlled by
858 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
859 # This code just checks for a few cases where we'd like to ignore those
860 # definitions, even when they're present in the '.mt' file. These cases
861 # are when --disable-sim is specified, or if the simulator directory is
862 # not part of the soruce tree.
865 [ --enable-sim Link gdb with simulator],
866 [echo "enable_sim = $enable_sim";
867 echo "enableval = ${enableval}";
868 case "${enableval}" in
869 yes) ignore_sim=false ;;
870 no) ignore_sim=true ;;
871 *) ignore_sim=false ;;
875 if test ! -d "${srcdir}/../sim"; then
879 if test "${ignore_sim}" = "true"; then
881 IGNORE_SIM_OBS="SIM_OBS="
888 AC_SUBST(IGNORE_SIM_OBS)
890 AC_SUBST(ENABLE_CFLAGS)
893 AC_SUBST(CONFIG_DEPS)
894 AC_SUBST(CONFIG_SRCS)
895 AC_SUBST(CONFIG_INITS)
897 AC_SUBST(CONFIG_CLEAN)
898 AC_SUBST(CONFIG_INSTALL)
899 AC_SUBST(CONFIG_UNINSTALL)
901 # Begin stuff to support --enable-shared
902 AC_ARG_ENABLE(shared,
903 [ --enable-shared Use shared libraries],
904 [case "${enableval}" in
912 # If we have shared libraries, try to set rpath reasonably.
913 if test "${shared}" = "true"; then
916 HLDFLAGS='-Wl,+s,+b,$(libdir)'
918 *-*-irix5* | *-*-irix6*)
919 HLDFLAGS='-Wl,-rpath,$(libdir)'
923 *-*-linux* | *-pc-linux-gnu*)
924 HLDFLAGS='-Wl,-rpath,$(libdir)'
927 HLDFLAGS='-R $(libdir)'
930 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;'
935 # On SunOS, if the linker supports the -rpath option, use it to
936 # prevent ../bfd and ../opcodes from being included in the run time
940 echo 'main () { }' > conftest.c
941 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
942 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
944 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
946 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
948 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
950 elif test "${shared}" = "true"; then
951 HLDFLAGS='-Wl,-rpath=$(libdir)'
953 HLDFLAGS='-Wl,-rpath='
955 rm -f conftest.t conftest.c conftest
960 # End stuff to support --enable-shared
962 # target_subdir is used by the testsuite to find the target libraries.
964 if test "${host}" != "${target}"; then
965 target_subdir="${target_alias}/"
967 AC_SUBST(target_subdir)
970 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
971 if test ! -f ${host_makefile_frag}; then
972 AC_MSG_ERROR("*** Gdb does not support host ${host}")
974 frags="$frags $host_makefile_frag"
976 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
977 if test ! -f ${target_makefile_frag}; then
978 AC_MSG_ERROR("*** Gdb does not support target ${target}")
980 frags="$frags $target_makefile_frag"
982 AC_SUBST_FILE(host_makefile_frag)
983 AC_SUBST_FILE(target_makefile_frag)
988 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
989 ' ${host_makefile_frag}`
992 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
993 ' ${target_makefile_frag}`
995 # these really aren't orthogonal true/false values of the same condition,
996 # but shells are slow enough that I like to reuse the test conditions
998 if test "${target}" = "${host}"; then
1000 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1001 ' ${host_makefile_frag}`
1003 # GDBserver is only useful in a "native" enviroment
1004 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
1008 SUBDIRS="doc testsuite nlm"
1009 if test "${enable_multi_ice}" = "yes"; then
1010 SUBDIRS="${SUBDIRS} multi-ice"
1015 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1016 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
1017 # corresponding links. But we have to remove the xm.h files and tm.h
1018 # files anyway, e.g. when switching from "configure host" to
1024 if test "${hostfile}" != ""; then
1025 files="${files} config/${gdb_host_cpu}/${hostfile}"
1026 links="${links} xm.h"
1029 if test "${targetfile}" != ""; then
1030 files="${files} config/${gdb_target_cpu}/${targetfile}"
1031 links="${links} tm.h"
1034 if test "${nativefile}" != ""; then
1035 files="${files} config/${gdb_host_cpu}/${nativefile}"
1036 links="${links} nm.h"
1038 # A cross-only configuration.
1039 files="${files} config/nm-empty.h"
1040 links="${links} nm.h"
1044 AC_LINK_FILES($files, $links)
1046 dnl Check for exe extension set on certain hosts (e.g. Win32)
1049 AC_CONFIG_SUBDIRS($configdirs)
1050 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1052 dnl Autoconf doesn't provide a mechanism for modifying definitions
1053 dnl provided by makefile fragments.
1055 if test "${nativefile}" = ""; then
1056 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
1057 < Makefile > Makefile.tem
1058 mv -f Makefile.tem Makefile
1062 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1063 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1064 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1065 mv -f Makefile.tmp Makefile
1069 case x$CONFIG_HEADERS in
1070 xconfig.h:config.in)
1075 gdb_host_cpu=$gdb_host_cpu
1076 gdb_target_cpu=$gdb_target_cpu
1077 nativefile=$nativefile