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 ;;
635 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
637 AC_SUBST(SER_HARDWIRE)
640 dnl Figure out which term library to use.
641 if test x$gdb_host = xgo32; then
644 if test x$gdb_cv_os_cygwin = xyes; then
645 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
648 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
649 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
650 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
651 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
652 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
653 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
655 if test "x$TERM_LIB" = x
657 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
663 # libreadline needs libuser32.a in a cygwin environment
665 if test x$gdb_cv_os_cygwin = xyes; then
668 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
674 LIBGUI="../libgui/src/libgui.a"
675 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
677 AC_SUBST(GUI_CFLAGS_X)
680 [ --with-cpu=CPU Set the default CPU variant to debug],
682 powerpc-* | powerpcle-* )
683 ## It would be nice to keep this table in sync with the one in
685 case "${with_cpu}" in
686 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
688 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
690 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
691 ## These are all RS6000 variants, as far as GDB is concerned.
701 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
707 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
710 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
715 [ --enable-gdbtk Enable GDBTK GUI front end],
716 [case "${enableval}" in
720 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
723 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
731 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
734 # Default is on for everything but go32 and Cygwin
739 if test -d "${srcdir}/gdbtk" ; then
753 if test "${enable_gdbtk}" = "yes"; then
756 if test -z "${no_tcl}"; then
760 # If $no_tk is nonempty, then we can't do Tk, and there is no
761 # point to doing Tcl.
762 if test -z "${no_tk}"; then
770 # now look for Itcl library stuff
772 CY_AC_PATH_ITCLCONFIG
773 if test -z "${no_itcl}"; then
774 CY_AC_LOAD_ITCLCONFIG
777 itcldir=../itcl/itcl/win/
780 itcldir=../itcl/itcl/unix/
785 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
786 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
790 # now look for Itk library stuff
792 if test -z "${no_itcl}"; then
797 itkdir=../itcl/itk/win/
800 itkdir=../itcl/itk/unix/
804 ITKLIB="${ITK_BUILD_LIB_SPEC}"
805 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
808 # now look for Tix library stuff
810 if test -z "${no_tix}"; then
812 TIXLIB="${TIX_BUILD_LIB_SPEC}"
813 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
816 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
817 # Tcl/Tk 8.1 require -fwritable strings. I don't
818 # know whether 8.2 will or not, but I bet it will.
819 # I don't have to worry about 7.x since we don't support it.
821 if test "$GCC" = "yes"; then
822 if test "$TCL_VERSION" != "8.0" ; then
823 GDBTK_CFLAGS="-fwritable-strings"
827 # Include some libraries that Tcl and Tk want.
828 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
829 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
830 # Yes, the ordering seems wrong here. But it isn't.
831 # TK_LIBS is the list of libraries that need to be linked
832 # after Tcl/Tk. Note that this isn't put into LIBS. If it
833 # were in LIBS then any link tests after this point would
834 # try to include things like `$(LIBGUI)', which wouldn't work.
835 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
836 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"
837 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
838 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"
839 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
840 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
841 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
842 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
844 if test x$gdb_cv_os_cygwin = xyes; then
845 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
846 WIN32LDAPP="-Wl,--subsystem,console"
847 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
863 AC_SUBST(GDBTK_CFLAGS)
868 # Unlike the sim directory, whether a simulator is linked is controlled by
869 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
870 # This code just checks for a few cases where we'd like to ignore those
871 # definitions, even when they're present in the '.mt' file. These cases
872 # are when --disable-sim is specified, or if the simulator directory is
873 # not part of the soruce tree.
876 [ --enable-sim Link gdb with simulator],
877 [echo "enable_sim = $enable_sim";
878 echo "enableval = ${enableval}";
879 case "${enableval}" in
880 yes) ignore_sim=false ;;
881 no) ignore_sim=true ;;
882 *) ignore_sim=false ;;
886 if test ! -d "${srcdir}/../sim"; then
890 if test "${ignore_sim}" = "true"; then
892 IGNORE_SIM_OBS="SIM_OBS="
899 AC_SUBST(IGNORE_SIM_OBS)
901 AC_SUBST(ENABLE_CFLAGS)
904 AC_SUBST(CONFIG_DEPS)
905 AC_SUBST(CONFIG_SRCS)
906 AC_SUBST(CONFIG_INITS)
908 AC_SUBST(CONFIG_CLEAN)
909 AC_SUBST(CONFIG_INSTALL)
910 AC_SUBST(CONFIG_UNINSTALL)
912 # Begin stuff to support --enable-shared
913 AC_ARG_ENABLE(shared,
914 [ --enable-shared Use shared libraries],
915 [case "${enableval}" in
923 # If we have shared libraries, try to set rpath reasonably.
924 if test "${shared}" = "true"; then
927 HLDFLAGS='-Wl,+s,+b,$(libdir)'
929 *-*-irix5* | *-*-irix6*)
930 HLDFLAGS='-Wl,-rpath,$(libdir)'
934 *-*-linux* | *-pc-linux-gnu*)
935 HLDFLAGS='-Wl,-rpath,$(libdir)'
938 HLDFLAGS='-R $(libdir)'
941 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;'
946 # On SunOS, if the linker supports the -rpath option, use it to
947 # prevent ../bfd and ../opcodes from being included in the run time
951 echo 'main () { }' > conftest.c
952 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
953 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
955 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
957 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
959 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
961 elif test "${shared}" = "true"; then
962 HLDFLAGS='-Wl,-rpath=$(libdir)'
964 HLDFLAGS='-Wl,-rpath='
966 rm -f conftest.t conftest.c conftest
971 # End stuff to support --enable-shared
973 # target_subdir is used by the testsuite to find the target libraries.
975 if test "${host}" != "${target}"; then
976 target_subdir="${target_alias}/"
978 AC_SUBST(target_subdir)
981 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
982 if test ! -f ${host_makefile_frag}; then
983 AC_MSG_ERROR("*** Gdb does not support host ${host}")
985 frags="$frags $host_makefile_frag"
987 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
988 if test ! -f ${target_makefile_frag}; then
989 AC_MSG_ERROR("*** Gdb does not support target ${target}")
991 frags="$frags $target_makefile_frag"
993 AC_SUBST_FILE(host_makefile_frag)
994 AC_SUBST_FILE(target_makefile_frag)
999 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1000 ' ${host_makefile_frag}`
1002 targetfile=`sed -n '
1003 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1004 ' ${target_makefile_frag}`
1006 # these really aren't orthogonal true/false values of the same condition,
1007 # but shells are slow enough that I like to reuse the test conditions
1009 if test "${target}" = "${host}"; then
1010 nativefile=`sed -n '
1011 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1012 ' ${host_makefile_frag}`
1014 # GDBserver is only useful in a "native" enviroment
1015 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
1019 SUBDIRS="doc testsuite nlm"
1020 if test "${enable_multi_ice}" = "yes"; then
1021 SUBDIRS="${SUBDIRS} multi-ice"
1026 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1027 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
1028 # corresponding links. But we have to remove the xm.h files and tm.h
1029 # files anyway, e.g. when switching from "configure host" to
1035 if test "${hostfile}" != ""; then
1036 files="${files} config/${gdb_host_cpu}/${hostfile}"
1037 links="${links} xm.h"
1040 if test "${targetfile}" != ""; then
1041 files="${files} config/${gdb_target_cpu}/${targetfile}"
1042 links="${links} tm.h"
1045 if test "${nativefile}" != ""; then
1046 files="${files} config/${gdb_host_cpu}/${nativefile}"
1047 links="${links} nm.h"
1049 # A cross-only configuration.
1050 files="${files} config/nm-empty.h"
1051 links="${links} nm.h"
1055 AC_LINK_FILES($files, $links)
1057 dnl Check for exe extension set on certain hosts (e.g. Win32)
1060 AC_CONFIG_SUBDIRS($configdirs)
1061 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1063 dnl Autoconf doesn't provide a mechanism for modifying definitions
1064 dnl provided by makefile fragments.
1066 if test "${nativefile}" = ""; then
1067 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
1068 < Makefile > Makefile.tem
1069 mv -f Makefile.tem Makefile
1073 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1074 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1075 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1076 mv -f Makefile.tmp Makefile
1080 case x$CONFIG_HEADERS in
1081 xconfig.h:config.in)
1086 gdb_host_cpu=$gdb_host_cpu
1087 gdb_target_cpu=$gdb_target_cpu
1088 nativefile=$nativefile