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 \
132 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
135 # See if machine/reg.h supports the %fs and %gs i386 segment registers.
136 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
137 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
138 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
139 gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
140 if test $gdb_cv_struct_reg_r_fs = yes; then
141 AC_DEFINE(HAVE_STRUCT_REG_R_FS)
143 AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
144 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
145 gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
146 if test $gdb_cv_struct_reg_r_gs = yes; then
147 AC_DEFINE(HAVE_STRUCT_REG_R_GS)
150 dnl See if ptrace.h provides the PTRACE_GETREGS request.
151 AC_MSG_CHECKING(for PTRACE_GETREGS)
152 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
153 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
155 [gdb_cv_have_ptrace_getregs=yes],
156 [gdb_cv_have_ptrace_getregs=no])])
157 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
158 if test $gdb_cv_have_ptrace_getregs = yes; then
159 AC_DEFINE(HAVE_PTRACE_GETREGS)
162 dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
163 dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
164 dnl Linux kernel patch for SSE support. That patch may or may not
165 dnl actually make it into the official distribution. If you find that
166 dnl years have gone by since this configure test was added, and Linux
167 dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
168 dnl make it, and you can delete this code.
169 AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
170 AC_CACHE_VAL(gdb_cv_have_ptrace_getxfpregs,
171 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
172 [PTRACE_GETXFPREGS;],
173 [gdb_cv_have_ptrace_getxfpregs=yes],
174 [gdb_cv_have_ptrace_getxfpregs=no])])
175 AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
176 if test $gdb_cv_have_ptrace_getxfpregs = yes; then
177 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
180 AC_CHECK_LIB(socket, socketpair)
181 AC_CHECK_FUNCS(socketpair)
184 BFD_NEED_DECLARATION(malloc)
185 BFD_NEED_DECLARATION(realloc)
186 BFD_NEED_DECLARATION(free)
187 BFD_NEED_DECLARATION(strerror)
188 BFD_NEED_DECLARATION(strdup)
189 BFD_NEED_DECLARATION(strstr)
192 # The following save_state_t checkery is only necessary for HPUX
193 # versions earlier than 10.20. When those fade from memory, this
194 # could be expunged. --jsm 1999-03-22
196 AC_MSG_CHECKING(for HPUX save_state structure)
197 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
198 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
199 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
200 gdb_cv_hpux_sswide=no)
201 if test $gdb_cv_hpux_savestate = yes
203 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
205 if test $gdb_cv_hpux_sswide = yes
207 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
209 AC_MSG_RESULT($gdb_cv_hpux_sswide)
212 # If we are configured native on GNU/Linux, work around problems with
214 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
216 if test "${target}" = "${host}"; then
218 i[[3456]]86-*-linux*)
219 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
220 AC_DEFINE(sys_quotactl)
222 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
223 AC_DEFINE(NEW_PROC_API)
225 *-*-solaris2.[[678]])
226 AC_DEFINE(NEW_PROC_API)
231 if test "$ac_cv_header_sys_procfs_h" = yes; then
232 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
233 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
234 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
235 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
236 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
237 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
238 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
239 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
241 dnl Check for broken prfpregset_t type
243 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
244 dnl prfpregset_t type (it's a typedef for the pointer to a struct
245 dnl instead of the struct itself). We detect this here, and work
246 dnl around it in lin-thread.c.
248 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
249 AC_MSG_CHECKING(whether prfpregset_t type is broken)
250 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
251 [AC_TRY_RUN([#include <sys/procfs.h>
254 if (sizeof (prfpregset_t) == sizeof (void *))
258 gdb_cv_prfpregset_t_broken=no,
259 gdb_cv_prfpregset_t_broken=yes,
260 gdb_cv_prfpregset_t_broken=yes)])
261 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
262 if test $gdb_cv_prfpregset_t_broken = yes; then
263 AC_DEFINE(PRFPREGSET_T_BROKEN)
267 dnl Check for PIOCSET ioctl entry
269 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
270 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
271 [AC_TRY_COMPILE([#include <unistd.h>
272 #include <sys/types.h>
273 #include <sys/procfs.h>
276 dummy = ioctl(0, PIOCSET, &dummy);
278 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
279 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
280 if test $gdb_cv_have_procfs_piocset = yes; then
281 AC_DEFINE(HAVE_PROCFS_PIOCSET)
285 dnl See if host has libm. This is usually needed by simulators.
286 AC_CHECK_LIB(m, main)
288 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
290 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
291 dnl under Solaris 2.6 because it is some funky empty library.
292 dnl So only link in libw if we have to.
293 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
295 dnl See if compiler supports "long long" type.
297 AC_MSG_CHECKING(for long long support in compiler)
298 AC_CACHE_VAL(gdb_cv_c_long_long,
300 extern long long foo;
301 switch (foo & 2) { case 0: return 1; }
303 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
304 AC_MSG_RESULT($gdb_cv_c_long_long)
305 if test $gdb_cv_c_long_long = yes; then
306 AC_DEFINE(CC_HAS_LONG_LONG)
309 dnl See if the compiler and runtime support printing long long
311 AC_MSG_CHECKING(for long long support in printf)
312 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
317 l = (l << 16) + 0x0123;
318 l = (l << 16) + 0x4567;
319 l = (l << 16) + 0x89ab;
320 l = (l << 16) + 0xcdef;
321 sprintf (buf, "0x%016llx", l);
322 return (strcmp ("0x0123456789abcdef", buf));
324 gdb_cv_printf_has_long_long=yes,
325 gdb_cv_printf_has_long_long=no,
326 gdb_cv_printf_has_long_long=no)])
327 if test $gdb_cv_printf_has_long_long = yes; then
328 AC_DEFINE(PRINTF_HAS_LONG_LONG)
330 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
332 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
333 dnl because autoconf complains about cross-compilation issues. However, this
334 dnl code uses the same variables as the macro for compatibility.
336 AC_MSG_CHECKING(for long double support in compiler)
337 AC_CACHE_VAL(ac_cv_c_long_double,
338 [AC_TRY_COMPILE(, [long double foo;],
339 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
340 AC_MSG_RESULT($ac_cv_c_long_double)
341 if test $ac_cv_c_long_double = yes; then
342 AC_DEFINE(HAVE_LONG_DOUBLE)
345 dnl See if the compiler and runtime support printing long doubles
347 AC_MSG_CHECKING(for long double support in printf)
348 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
352 long double f = 3.141592653;
353 sprintf (buf, "%Lg", f);
354 return (strncmp ("3.14159", buf, 7));
356 gdb_cv_printf_has_long_double=yes,
357 gdb_cv_printf_has_long_double=no,
358 gdb_cv_printf_has_long_double=no)])
359 if test $gdb_cv_printf_has_long_double = yes; then
360 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
362 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
364 dnl See if the compiler and runtime support scanning long doubles
366 AC_MSG_CHECKING(for long double support in scanf)
367 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
370 char *buf = "3.141592653";
372 sscanf (buf, "%Lg", &f);
373 return !(f > 3.14159 && f < 3.14160);
375 gdb_cv_scanf_has_long_double=yes,
376 gdb_cv_scanf_has_long_double=no,
377 gdb_cv_scanf_has_long_double=no)])
378 if test $gdb_cv_scanf_has_long_double = yes; then
379 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
381 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
385 dnl See if thread_db library is around for Solaris thread debugging. Note that
386 dnl we must explicitly test for version 1 of the library because version 0
387 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
389 dnl Note that we only want this if we are both native (host == target), and
390 dnl not doing a canadian cross build (build == host).
392 if test ${build} = ${host} -a ${host} = ${target} ; then
395 AC_MSG_CHECKING(for HPUX/OSF thread support)
396 if test -f /usr/include/dce/cma_config.h ; then
397 if test "$GCC" = "yes" ; then
399 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
400 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
401 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
403 AC_MSG_RESULT(no (suppressed because you are not using GCC))
410 AC_MSG_CHECKING(for Solaris thread debugging library)
411 if test -f /usr/lib/libthread_db.so.1 ; then
413 AC_DEFINE(HAVE_THREAD_DB_LIB)
414 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
415 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
416 AC_CHECK_LIB(dl, dlopen)
417 if test "$GCC" = "yes" ; then
418 # The GNU linker requires the -export-dynamic option to make
419 # all symbols visible in the dynamic symbol table.
420 hold_ldflags=$LDFLAGS
421 AC_MSG_CHECKING(for the ld -export-dynamic flag)
422 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
423 AC_TRY_LINK(, [int i;], found=yes, found=no)
424 LDFLAGS=$hold_ldflags
425 AC_MSG_RESULT($found)
426 if test $found = yes; then
427 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
430 # Sun randomly tweaked the prototypes in <proc_service.h>
432 AC_MSG_CHECKING(if <proc_service.h> is old)
433 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
435 #include <proc_service.h>
437 (struct ps_prochandle*, psaddr_t, const void*, size_t);
438 ],, gdb_cv_proc_service_is_old=no,
439 gdb_cv_proc_service_is_old=yes)
441 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
442 if test $gdb_cv_proc_service_is_old = yes; then
443 AC_DEFINE(PROC_SERVICE_IS_OLD)
450 AC_SUBST(CONFIG_LDFLAGS)
453 dnl Handle optional features that can be enabled.
455 dnl Handle MI sub-directory configury.
457 [ --enable-gdbmi Enable GDB-MI interface],
459 case "${enable_gdbmi}" in
461 "") enable_gdbmi=yes ;;
463 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
467 case ${enable_gdbmi} in
469 if test -d "${srcdir}/mi" ; then
470 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
471 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
472 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_MI_SRCS)"
473 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
474 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
475 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
476 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
477 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
478 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
484 [ --enable-tui Enable full-screen terminal user interface],
486 case "${enable_tui}" in
488 "") enable_tui=yes ;;
490 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
494 case ${enable_tui} in
496 if test -d "${srcdir}/tui" ; then
497 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
498 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
499 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_TUI_SRCS)"
500 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
501 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
502 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
503 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
504 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
505 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
510 AC_ARG_ENABLE(netrom,
511 [ --enable-netrom Enable NetROM support],
512 [case "${enableval}" in
513 yes) enable_netrom=yes ;;
514 no) enable_netrom=no ;;
515 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
518 if test "${enable_netrom}" = "yes"; then
519 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
520 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
524 # Don't add -Wall or -Wunused, they include -Wunused-parameter which
526 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
527 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
528 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
529 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
530 # -Wchar-subscripts -Wuninitialized -Wtraditional -Wshadow -Wcast-qual
531 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
532 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
533 # -Woverloaded-virtual -Winline -Werror"
534 AC_ARG_ENABLE(build-warnings,
535 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
536 [case "${enableval}" in
538 no) build_warnings="-w";;
539 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
540 build_warnings="${build_warnings} ${t}";;
541 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
542 build_warnings="${t} ${build_warnings}";;
543 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
545 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
546 echo "Setting compiler warning flags = $build_warnings" 6>&1
550 if test "x${build_warnings}" != x -a "x$GCC" = xyes
552 AC_MSG_CHECKING(compiler warning flags)
553 # Separate out the -Werror flag as some files just cannot be
554 # compiled with it enabled.
555 for w in ${build_warnings}; do
557 -Werr*) WERROR_CFLAGS=-Werror ;;
558 *) # Check that GCC accepts it
559 if $CC $w 2>&1 | grep 'unrecognized option' > /dev/null; then
562 WARN_CFLAGS="${WARN_CFLAGS} $w"
566 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
568 AC_SUBST(WARN_CFLAGS)
569 AC_SUBST(WERROR_CFLAGS)
573 AC_SUBST(MMALLOC_CFLAGS)
577 [ --with-mmalloc Use memory mapped malloc package],
578 [case "${withval}" in
579 yes) want_mmalloc=true ;;
580 no) want_mmalloc=false;;
581 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
582 esac],[want_mmalloc=false])dnl
584 if test x$want_mmalloc = xtrue; then
585 AC_DEFINE(USE_MMALLOC)
586 AC_DEFINE(MMCHECK_FORCE)
587 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
588 MMALLOC='../mmalloc/libmmalloc.a'
591 AC_ARG_WITH(included-regex,
592 [ --with-included-regex Use included regex],
593 [case "${withval}" in
594 yes) want_included_regex=true ;;
595 no) want_included_regex=false;;
596 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
597 esac],[want_included_regex=true])dnl
599 if test $want_included_regex = false; then
600 AC_MSG_CHECKING(for GNU regex)
601 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
602 [AC_TRY_COMPILE([#include <gnu-versions.h>
603 #include <sys/types.h>
605 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
606 #error No valid GNU regex.
609 [gdb_cv_have_gnu_regex=yes],
610 [gdb_cv_have_gnu_regex=no])])
611 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
612 if test $gdb_cv_have_gnu_regex = no; then
613 want_included_regex=true
617 if test x${want_included_regex} = xtrue; then
619 AC_DEFINE(USE_INCLUDED_REGEX)
623 # In the Cygwin environment, we need some additional flags.
624 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
625 [AC_EGREP_CPP(lose, [
626 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
628 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
631 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
632 SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
634 go32*-*-* ) SER_HARDWIRE=ser-go32.o ;;
636 AC_SUBST(SER_HARDWIRE)
639 dnl Figure out which term library to use.
640 if test x$gdb_host = xgo32; then
643 if test x$gdb_cv_os_cygwin = xyes; then
644 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
647 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
648 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
649 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
650 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
651 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
652 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
654 if test "x$TERM_LIB" = x
656 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
662 # libreadline needs libuser32.a in a cygwin environment
664 if test x$gdb_cv_os_cygwin = xyes; then
667 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
673 LIBGUI="../libgui/src/libgui.a"
674 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
676 AC_SUBST(GUI_CFLAGS_X)
679 [ --with-cpu=CPU Set the default CPU variant to debug],
681 powerpc-* | powerpcle-* )
682 ## It would be nice to keep this table in sync with the one in
684 case "${with_cpu}" in
685 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
687 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
689 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
690 ## These are all RS6000 variants, as far as GDB is concerned.
700 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
706 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
709 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
714 [ --enable-gdbtk Enable GDBTK GUI front end],
715 [case "${enableval}" in
719 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
722 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
730 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
733 # Default is on for everything but go32 and Cygwin
738 if test -d "${srcdir}/gdbtk" ; then
752 if test "${enable_gdbtk}" = "yes"; then
755 if test -z "${no_tcl}"; then
759 # If $no_tk is nonempty, then we can't do Tk, and there is no
760 # point to doing Tcl.
761 if test -z "${no_tk}"; then
769 # now look for Itcl library stuff
771 CY_AC_PATH_ITCLCONFIG
772 if test -z "${no_itcl}"; then
773 CY_AC_LOAD_ITCLCONFIG
776 itcldir=../itcl/itcl/win/
779 itcldir=../itcl/itcl/unix/
784 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
785 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
789 # now look for Itk library stuff
791 if test -z "${no_itcl}"; then
796 itkdir=../itcl/itk/win/
799 itkdir=../itcl/itk/unix/
803 ITKLIB="${ITK_BUILD_LIB_SPEC}"
804 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
807 # now look for Tix library stuff
809 if test -z "${no_tix}"; then
811 TIXLIB="${TIX_BUILD_LIB_SPEC}"
812 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
815 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
816 # Tcl/Tk 8.1 require -fwritable strings. I don't
817 # know whether 8.2 will or not, but I bet it will.
818 # I don't have to worry about 7.x since we don't support it.
820 if test "$GCC" = "yes"; then
821 if test "$TCL_VERSION" != "8.0" ; then
822 GDBTK_CFLAGS="-fwritable-strings"
826 # Include some libraries that Tcl and Tk want.
827 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
828 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
829 # Yes, the ordering seems wrong here. But it isn't.
830 # TK_LIBS is the list of libraries that need to be linked
831 # after Tcl/Tk. Note that this isn't put into LIBS. If it
832 # were in LIBS then any link tests after this point would
833 # try to include things like `$(LIBGUI)', which wouldn't work.
834 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
835 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"
836 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
837 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"
838 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
839 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
840 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
841 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
843 if test x$gdb_cv_os_cygwin = xyes; then
844 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
845 WIN32LDAPP="-Wl,--subsystem,console"
846 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
862 AC_SUBST(GDBTK_CFLAGS)
867 # Unlike the sim directory, whether a simulator is linked is controlled by
868 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
869 # This code just checks for a few cases where we'd like to ignore those
870 # definitions, even when they're present in the '.mt' file. These cases
871 # are when --disable-sim is specified, or if the simulator directory is
872 # not part of the soruce tree.
875 [ --enable-sim Link gdb with simulator],
876 [echo "enable_sim = $enable_sim";
877 echo "enableval = ${enableval}";
878 case "${enableval}" in
879 yes) ignore_sim=false ;;
880 no) ignore_sim=true ;;
881 *) ignore_sim=false ;;
885 if test ! -d "${srcdir}/../sim"; then
889 if test "${ignore_sim}" = "true"; then
891 IGNORE_SIM_OBS="SIM_OBS="
898 AC_SUBST(IGNORE_SIM_OBS)
900 AC_SUBST(ENABLE_CFLAGS)
903 AC_SUBST(CONFIG_DEPS)
904 AC_SUBST(CONFIG_SRCS)
905 AC_SUBST(CONFIG_INITS)
907 AC_SUBST(CONFIG_CLEAN)
908 AC_SUBST(CONFIG_INSTALL)
909 AC_SUBST(CONFIG_UNINSTALL)
911 # Begin stuff to support --enable-shared
912 AC_ARG_ENABLE(shared,
913 [ --enable-shared Use shared libraries],
914 [case "${enableval}" in
922 # If we have shared libraries, try to set rpath reasonably.
923 if test "${shared}" = "true"; then
926 HLDFLAGS='-Wl,+s,+b,$(libdir)'
928 *-*-irix5* | *-*-irix6*)
929 HLDFLAGS='-Wl,-rpath,$(libdir)'
933 *-*-linux* | *-pc-linux-gnu*)
934 HLDFLAGS='-Wl,-rpath,$(libdir)'
937 HLDFLAGS='-R $(libdir)'
940 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;'
945 # On SunOS, if the linker supports the -rpath option, use it to
946 # prevent ../bfd and ../opcodes from being included in the run time
950 echo 'main () { }' > conftest.c
951 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
952 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
954 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
956 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
958 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
960 elif test "${shared}" = "true"; then
961 HLDFLAGS='-Wl,-rpath=$(libdir)'
963 HLDFLAGS='-Wl,-rpath='
965 rm -f conftest.t conftest.c conftest
970 # End stuff to support --enable-shared
972 # target_subdir is used by the testsuite to find the target libraries.
974 if test "${host}" != "${target}"; then
975 target_subdir="${target_alias}/"
977 AC_SUBST(target_subdir)
980 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
981 if test ! -f ${host_makefile_frag}; then
982 AC_MSG_ERROR("*** Gdb does not support host ${host}")
984 frags="$frags $host_makefile_frag"
986 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
987 if test ! -f ${target_makefile_frag}; then
988 AC_MSG_ERROR("*** Gdb does not support target ${target}")
990 frags="$frags $target_makefile_frag"
992 AC_SUBST_FILE(host_makefile_frag)
993 AC_SUBST_FILE(target_makefile_frag)
998 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
999 ' ${host_makefile_frag}`
1001 targetfile=`sed -n '
1002 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1003 ' ${target_makefile_frag}`
1005 # these really aren't orthogonal true/false values of the same condition,
1006 # but shells are slow enough that I like to reuse the test conditions
1008 if test "${target}" = "${host}"; then
1009 nativefile=`sed -n '
1010 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1011 ' ${host_makefile_frag}`
1013 # GDBserver is only useful in a "native" enviroment
1014 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
1018 SUBDIRS="doc testsuite nlm"
1019 if test "${enable_multi_ice}" = "yes"; then
1020 SUBDIRS="${SUBDIRS} multi-ice"
1025 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1026 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
1027 # corresponding links. But we have to remove the xm.h files and tm.h
1028 # files anyway, e.g. when switching from "configure host" to
1034 if test "${hostfile}" != ""; then
1035 files="${files} config/${gdb_host_cpu}/${hostfile}"
1036 links="${links} xm.h"
1039 if test "${targetfile}" != ""; then
1040 files="${files} config/${gdb_target_cpu}/${targetfile}"
1041 links="${links} tm.h"
1044 if test "${nativefile}" != ""; then
1045 files="${files} config/${gdb_host_cpu}/${nativefile}"
1046 links="${links} nm.h"
1048 # A cross-only configuration.
1049 files="${files} config/nm-empty.h"
1050 links="${links} nm.h"
1054 AC_LINK_FILES($files, $links)
1056 dnl Check for exe extension set on certain hosts (e.g. Win32)
1059 AC_CONFIG_SUBDIRS($configdirs)
1060 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1062 dnl Autoconf doesn't provide a mechanism for modifying definitions
1063 dnl provided by makefile fragments.
1065 if test "${nativefile}" = ""; then
1066 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
1067 < Makefile > Makefile.tem
1068 mv -f Makefile.tem Makefile
1072 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1073 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1074 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1075 mv -f Makefile.tmp Makefile
1079 case x$CONFIG_HEADERS in
1080 xconfig.h:config.in)
1085 gdb_host_cpu=$gdb_host_cpu
1086 gdb_target_cpu=$gdb_target_cpu
1087 nativefile=$nativefile