1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
4 dnl This file is part of GDB.
6 dnl This program is free software; you can redistribute it and/or modify
7 dnl it under the terms of the GNU General Public License as published by
8 dnl the Free Software Foundation; either version 2 of the License, or
9 dnl (at your option) any later version.
11 dnl This program is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 dnl GNU General Public License for more details.
16 dnl You should have received a copy of the GNU General Public License
17 dnl along with this program; if not, write to the Free Software
18 dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 dnl Process this file with autoconf to produce a configure script.
24 AC_CONFIG_HEADER(config.h:config.in)
32 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
35 dnl gdb doesn't use gettext, but bfd does. We call this to ensure we
36 dnl link with the correct libraries.
40 dnl List of object files added by configure.
52 configdirs="doc testsuite"
54 AC_ARG_ENABLE(multi-ice,
55 [ --enable-multi-ice Build the multi-ice-gdb-server],
56 [case "${enableval}" in
57 yes ) enable_multi_ice="yes" ;;
58 no) enable_multi_ice="no" ;;
59 *) AC_MSG_ERROR(Bad value for --enable-multi-ice: ${enableval}) ;;
63 if test "${enable_multi_ice}" = "yes"; then
64 configdirs="${configdirs} multi-ice"
70 . ${srcdir}/configure.host
72 . ${srcdir}/configure.tgt
80 AC_CHECK_TOOL(RANLIB, ranlib, :)
83 dnl MiG is needed for the Hurd.
84 AC_CHECK_TOOL(MIG, mig)
92 dnl Solaris 7 needs _MSE_INT_H defined to avoid a clash between <widec.h>
93 dnl and <wchar.h> that causes AC_CHECK_HEADERS to think <curses.h> doesn't
96 case $host_os in solaris2.7) case "$GCC" in yes)
100 AC_CHECK_HEADERS(ctype.h curses.h endian.h link.h thread_db.h proc_service.h \
101 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
102 string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
103 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
104 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
105 time.h sys/ioctl.h sys/user.h)
110 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
113 dnl See if ptrace.h provides the PTRACE_GETREGS request.
114 AC_MSG_CHECKING(for PTRACE_GETREGS)
115 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
116 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
118 [gdb_cv_have_ptrace_getregs=yes],
119 [gdb_cv_have_ptrace_getregs=no])])
120 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
121 if test $gdb_cv_have_ptrace_getregs = yes; then
122 AC_DEFINE(HAVE_PTRACE_GETREGS)
125 dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
126 dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
127 dnl Linux kernel patch for SSE support. That patch may or may not
128 dnl actually make it into the official distribution. If you find that
129 dnl years have gone by since this configure test was added, and Linux
130 dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
131 dnl make it, and you can delete this code.
132 AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
133 AC_CACHE_VAL(gdb_cv_have_ptrace_getxfpregs,
134 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
135 [PTRACE_GETXFPREGS;],
136 [gdb_cv_have_ptrace_getxfpregs=yes],
137 [gdb_cv_have_ptrace_getxfpregs=no])])
138 AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
139 if test $gdb_cv_have_ptrace_getxfpregs = yes; then
140 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
143 AC_CHECK_LIB(socket, socketpair)
144 AC_CHECK_FUNCS(socketpair)
147 BFD_NEED_DECLARATION(malloc)
148 BFD_NEED_DECLARATION(realloc)
149 BFD_NEED_DECLARATION(free)
150 BFD_NEED_DECLARATION(strerror)
151 BFD_NEED_DECLARATION(strdup)
152 BFD_NEED_DECLARATION(strstr)
155 # The following save_state_t checkery is only necessary for HPUX
156 # versions earlier than 10.20. When those fade from memory, this
157 # could be expunged. --jsm 1999-03-22
159 AC_MSG_CHECKING(for HPUX save_state structure)
160 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
161 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
162 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
163 gdb_cv_hpux_sswide=no)
164 if test $gdb_cv_hpux_savestate = yes
166 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
168 if test $gdb_cv_hpux_sswide = yes
170 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
172 AC_MSG_RESULT($gdb_cv_hpux_sswide)
175 # If we are configured native on GNU/Linux, work around problems with
177 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
179 if test "${target}" = "${host}"; then
181 i[[3456]]86-*-linux*)
182 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
183 AC_DEFINE(sys_quotactl)
185 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
186 AC_DEFINE(NEW_PROC_API)
188 *-*-solaris2.[[678]])
189 AC_DEFINE(NEW_PROC_API)
194 if test "$ac_cv_header_sys_procfs_h" = yes; then
195 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
196 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
197 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
198 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
199 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
200 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
201 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
202 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
204 dnl Check for broken prfpregset_t type
206 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
207 dnl prfpregset_t type (it's a typedef for the pointer to a struct
208 dnl instead of the struct itself). We detect this here, and work
209 dnl around it in lin-thread.c.
211 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
212 AC_MSG_CHECKING(whether prfpregset_t type is broken)
213 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
214 [AC_TRY_RUN([#include <sys/procfs.h>
217 if (sizeof (prfpregset_t) == sizeof (void *))
221 gdb_cv_prfpregset_t_broken=no,
222 gdb_cv_prfpregset_t_broken=yes,
223 gdb_cv_prfpregset_t_broken=yes)])
224 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
225 if test $gdb_cv_prfpregset_t_broken = yes; then
226 AC_DEFINE(PRFPREGSET_T_BROKEN)
230 dnl Check for PIOCSET ioctl entry
232 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
233 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
234 [AC_TRY_COMPILE([#include <unistd.h>
235 #include <sys/types.h>
236 #include <sys/procfs.h>
239 dummy = ioctl(0, PIOCSET, &dummy);
241 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
242 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
243 if test $gdb_cv_have_procfs_piocset = yes; then
244 AC_DEFINE(HAVE_PROCFS_PIOCSET)
248 dnl See if host has libm. This is usually needed by simulators.
249 AC_CHECK_LIB(m, main)
251 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
253 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
254 dnl under Solaris 2.6 because it is some funky empty library.
255 dnl So only link in libw if we have to.
256 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
258 dnl See if compiler supports "long long" type.
260 AC_MSG_CHECKING(for long long support in compiler)
261 AC_CACHE_VAL(gdb_cv_c_long_long,
263 extern long long foo;
264 switch (foo & 2) { case 0: return 1; }
266 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
267 AC_MSG_RESULT($gdb_cv_c_long_long)
268 if test $gdb_cv_c_long_long = yes; then
269 AC_DEFINE(CC_HAS_LONG_LONG)
272 dnl See if the compiler and runtime support printing long long
274 AC_MSG_CHECKING(for long long support in printf)
275 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
280 l = (l << 16) + 0x0123;
281 l = (l << 16) + 0x4567;
282 l = (l << 16) + 0x89ab;
283 l = (l << 16) + 0xcdef;
284 sprintf (buf, "0x%016llx", l);
285 return (strcmp ("0x0123456789abcdef", buf));
287 gdb_cv_printf_has_long_long=yes,
288 gdb_cv_printf_has_long_long=no,
289 gdb_cv_printf_has_long_long=no)])
290 if test $gdb_cv_printf_has_long_long = yes; then
291 AC_DEFINE(PRINTF_HAS_LONG_LONG)
293 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
295 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
296 dnl because autoconf complains about cross-compilation issues. However, this
297 dnl code uses the same variables as the macro for compatibility.
299 AC_MSG_CHECKING(for long double support in compiler)
300 AC_CACHE_VAL(ac_cv_c_long_double,
301 [AC_TRY_COMPILE(, [long double foo;],
302 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
303 AC_MSG_RESULT($ac_cv_c_long_double)
304 if test $ac_cv_c_long_double = yes; then
305 AC_DEFINE(HAVE_LONG_DOUBLE)
308 dnl See if the compiler and runtime support printing long doubles
310 AC_MSG_CHECKING(for long double support in printf)
311 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
315 long double f = 3.141592653;
316 sprintf (buf, "%Lg", f);
317 return (strncmp ("3.14159", buf, 7));
319 gdb_cv_printf_has_long_double=yes,
320 gdb_cv_printf_has_long_double=no,
321 gdb_cv_printf_has_long_double=no)])
322 if test $gdb_cv_printf_has_long_double = yes; then
323 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
325 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
327 dnl See if the compiler and runtime support scanning long doubles
329 AC_MSG_CHECKING(for long double support in scanf)
330 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
333 char *buf = "3.141592653";
335 sscanf (buf, "%Lg", &f);
336 return !(f > 3.14159 && f < 3.14160);
338 gdb_cv_scanf_has_long_double=yes,
339 gdb_cv_scanf_has_long_double=no,
340 gdb_cv_scanf_has_long_double=no)])
341 if test $gdb_cv_scanf_has_long_double = yes; then
342 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
344 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
348 dnl See if thread_db library is around for Solaris thread debugging. Note that
349 dnl we must explicitly test for version 1 of the library because version 0
350 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
352 dnl Note that we only want this if we are both native (host == target), and
353 dnl not doing a canadian cross build (build == host).
355 if test ${build} = ${host} -a ${host} = ${target} ; then
358 AC_MSG_CHECKING(for HPUX/OSF thread support)
359 if test -f /usr/include/dce/cma_config.h ; then
360 if test "$GCC" = "yes" ; then
362 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
363 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
364 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
366 AC_MSG_RESULT(no (suppressed because you are not using GCC))
373 AC_MSG_CHECKING(for Solaris thread debugging library)
374 if test -f /usr/lib/libthread_db.so.1 ; then
376 AC_DEFINE(HAVE_THREAD_DB_LIB)
377 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
378 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
379 AC_CHECK_LIB(dl, dlopen)
380 if test "$GCC" = "yes" ; then
381 # The GNU linker requires the -export-dynamic option to make
382 # all symbols visible in the dynamic symbol table.
383 hold_ldflags=$LDFLAGS
384 AC_MSG_CHECKING(for the ld -export-dynamic flag)
385 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
386 AC_TRY_LINK(, [int i;], found=yes, found=no)
387 LDFLAGS=$hold_ldflags
388 AC_MSG_RESULT($found)
389 if test $found = yes; then
390 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
393 # Sun randomly tweaked the prototypes in <proc_service.h>
395 AC_MSG_CHECKING(if <proc_service.h> is old)
396 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
398 #include <proc_service.h>
400 (struct ps_prochandle*, psaddr_t, const void*, size_t);
401 ],, gdb_cv_proc_service_is_old=no,
402 gdb_cv_proc_service_is_old=yes)
404 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
405 if test $gdb_cv_proc_service_is_old = yes; then
406 AC_DEFINE(PROC_SERVICE_IS_OLD)
413 AC_SUBST(CONFIG_LDFLAGS)
416 dnl Handle optional features that can be enabled.
418 dnl Handle MI sub-directory configury.
420 [ --enable-gdbmi Enable GDB-MI interface],
422 case "${enable_gdbmi}" in
424 "") enable_gdbmi=yes ;;
426 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
430 case ${enable_gdbmi} in
432 if test -d "${srcdir}/mi" ; then
433 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
434 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
435 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_MI_SRCS)"
436 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
437 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
438 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
439 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
440 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
441 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
447 [ --enable-tui Enable full-screen terminal user interface],
449 case "${enable_tui}" in
451 "") enable_tui=yes ;;
453 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
457 case ${enable_tui} in
461 TUI_LIBRARY=tui/libtui.a
469 AC_SUBST(TUI_LIBRARY)
471 AC_ARG_ENABLE(netrom,
472 [ --enable-netrom Enable NetROM support],
473 [case "${enableval}" in
474 yes) enable_netrom=yes ;;
475 no) enable_netrom=no ;;
476 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
479 if test "${enable_netrom}" = "yes"; then
480 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
481 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
485 # Don't add -Wall or -Wunused, they include -Wunused-parameter which
487 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
488 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
489 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
490 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
491 # -Wchar-subscripts -Wuninitialized -Wtraditional -Wshadow -Wcast-qual
492 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
493 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
494 # -Woverloaded-virtual -Winline -Werror"
495 AC_ARG_ENABLE(build-warnings,
496 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
497 [case "${enableval}" in
499 no) build_warnings="-w";;
500 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
501 build_warnings="${build_warnings} ${t}";;
502 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
503 build_warnings="${t} ${build_warnings}";;
504 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
506 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
507 echo "Setting compiler warning flags = $build_warnings" 6>&1
511 if test "x${build_warnings}" != x -a "x$GCC" = xyes
513 AC_MSG_CHECKING(compiler warning flags)
514 # Separate out the -Werror flag as some files just cannot be
515 # compiled with it enabled.
516 for w in ${build_warnings}; do
518 -Werr*) WERROR_CFLAGS=-Werror ;;
519 *) # Check that GCC accepts it
520 if $CC $w 2>&1 | grep 'unrecognized option' > /dev/null; then
523 WARN_CFLAGS="${WARN_CFLAGS} $w"
527 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
529 AC_SUBST(WARN_CFLAGS)
530 AC_SUBST(WERROR_CFLAGS)
534 AC_SUBST(MMALLOC_CFLAGS)
538 [ --with-mmalloc Use memory mapped malloc package],
539 [case "${withval}" in
540 yes) want_mmalloc=true ;;
541 no) want_mmalloc=false;;
542 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
543 esac],[want_mmalloc=false])dnl
545 if test x$want_mmalloc = xtrue; then
546 AC_DEFINE(USE_MMALLOC)
547 AC_DEFINE(MMCHECK_FORCE)
548 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
549 MMALLOC='../mmalloc/libmmalloc.a'
552 AC_ARG_WITH(included-regex,
553 [ --with-included-regex Use included regex],
554 [case "${withval}" in
555 yes) want_included_regex=true ;;
556 no) want_included_regex=false;;
557 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
558 esac],[want_included_regex=true])dnl
560 if test $want_included_regex = false; then
561 AC_MSG_CHECKING(for GNU regex)
562 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
563 [AC_TRY_COMPILE([#include <gnu-versions.h>
564 #include <sys/types.h>
566 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
567 #error No valid GNU regex.
570 [gdb_cv_have_gnu_regex=yes],
571 [gdb_cv_have_gnu_regex=no])])
572 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
573 if test $gdb_cv_have_gnu_regex = no; then
574 want_included_regex=true
578 if test x${want_included_regex} = xtrue; then
580 AC_DEFINE(USE_INCLUDED_REGEX)
584 # In the Cygwin environment, we need some additional flags.
585 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
586 [AC_EGREP_CPP(lose, [
587 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
589 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
591 DLLTOOL=${DLLTOOL-dlltool}
592 WINDRES=${WINDRES-windres}
596 dnl Figure out which term library to use.
597 if test x$gdb_host = xgo32; then
600 if test x$gdb_cv_os_cygwin = xyes; then
601 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
604 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
605 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
606 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
607 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
608 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
609 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
611 if test "x$TERM_LIB" = x
613 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
619 # libreadline needs libuser32.a in a cygwin environment
621 if test x$gdb_cv_os_cygwin = xyes; then
624 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
630 LIBGUI="../libgui/src/libgui.a"
631 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
633 AC_SUBST(GUI_CFLAGS_X)
636 [ --with-cpu=CPU Set the default CPU variant to debug],
638 powerpc-* | powerpcle-* )
639 ## It would be nice to keep this table in sync with the one in
641 case "${with_cpu}" in
642 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
644 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
646 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
647 ## These are all RS6000 variants, as far as GDB is concerned.
657 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
663 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
666 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
671 [ --enable-gdbtk Enable GDBTK GUI front end],
672 [case "${enableval}" in
676 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
679 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
687 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
690 # Default is on for everything but go32 and Cygwin
695 if test -d "${srcdir}/gdbtk" ; then
709 if test "${enable_gdbtk}" = "yes"; then
712 if test -z "${no_tcl}"; then
716 # If $no_tk is nonempty, then we can't do Tk, and there is no
717 # point to doing Tcl.
718 if test -z "${no_tk}"; then
726 # now look for Itcl library stuff
728 CY_AC_PATH_ITCLCONFIG
729 if test -z "${no_itcl}"; then
730 CY_AC_LOAD_ITCLCONFIG
733 itcldir=../itcl/itcl/win/
736 itcldir=../itcl/itcl/unix/
741 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
742 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
746 # now look for Itk library stuff
748 if test -z "${no_itcl}"; then
753 itkdir=../itcl/itk/win/
756 itkdir=../itcl/itk/unix/
760 ITKLIB="${ITK_BUILD_LIB_SPEC}"
761 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
764 # now look for Tix library stuff
766 if test -z "${no_tix}"; then
768 TIXLIB="${TIX_BUILD_LIB_SPEC}"
769 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
772 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
773 # Tcl/Tk 8.1 require -fwritable strings. I don't
774 # know whether 8.2 will or not, but I bet it will.
775 # I don't have to worry about 7.x since we don't support it.
777 if test "$GCC" = "yes"; then
778 if test "$TCL_VERSION" != "8.0" ; then
779 GDBTK_CFLAGS="-fwritable-strings"
783 # Include some libraries that Tcl and Tk want.
784 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
785 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
786 # Yes, the ordering seems wrong here. But it isn't.
787 # TK_LIBS is the list of libraries that need to be linked
788 # after Tcl/Tk. Note that this isn't put into LIBS. If it
789 # were in LIBS then any link tests after this point would
790 # try to include things like `$(LIBGUI)', which wouldn't work.
791 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
792 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"
793 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
794 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"
795 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
796 CONFIG_CLEAN="${CONFIG_ALL} \$(SUBDIR_GDBTK_CLEAN)"
797 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
798 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
800 if test x$gdb_cv_os_cygwin = xyes; then
801 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
802 WIN32LDAPP="-Wl,--subsystem,console"
803 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
819 AC_SUBST(GDBTK_CFLAGS)
824 # Unlike the sim directory, whether a simulator is linked is controlled by
825 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
826 # This code just checks for a few cases where we'd like to ignore those
827 # definitions, even when they're present in the '.mt' file. These cases
828 # are when --disable-sim is specified, or if the simulator directory is
829 # not part of the soruce tree.
832 [ --enable-sim Link gdb with simulator],
833 [echo "enable_sim = $enable_sim";
834 echo "enableval = ${enableval}";
835 case "${enableval}" in
836 yes) ignore_sim=false ;;
837 no) ignore_sim=true ;;
838 *) ignore_sim=false ;;
842 if test ! -d "${srcdir}/../sim"; then
846 if test "${ignore_sim}" = "true"; then
848 IGNORE_SIM_OBS="SIM_OBS="
855 AC_SUBST(IGNORE_SIM_OBS)
857 AC_SUBST(ENABLE_CFLAGS)
860 AC_SUBST(CONFIG_DEPS)
861 AC_SUBST(CONFIG_SRCS)
862 AC_SUBST(CONFIG_INITS)
864 AC_SUBST(CONFIG_CLEAN)
865 AC_SUBST(CONFIG_INSTALL)
866 AC_SUBST(CONFIG_UNINSTALL)
868 # Begin stuff to support --enable-shared
869 AC_ARG_ENABLE(shared,
870 [ --enable-shared Use shared libraries],
871 [case "${enableval}" in
879 # If we have shared libraries, try to set rpath reasonably.
880 if test "${shared}" = "true"; then
883 HLDFLAGS='-Wl,+s,+b,$(libdir)'
885 *-*-irix5* | *-*-irix6*)
886 HLDFLAGS='-Wl,-rpath,$(libdir)'
890 *-*-linux* | *-pc-linux-gnu*)
891 HLDFLAGS='-Wl,-rpath,$(libdir)'
894 HLDFLAGS='-R $(libdir)'
897 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;'
902 # On SunOS, if the linker supports the -rpath option, use it to
903 # prevent ../bfd and ../opcodes from being included in the run time
907 echo 'main () { }' > conftest.c
908 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
909 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
911 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
913 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
915 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
917 elif test "${shared}" = "true"; then
918 HLDFLAGS='-Wl,-rpath=$(libdir)'
920 HLDFLAGS='-Wl,-rpath='
922 rm -f conftest.t conftest.c conftest
927 # End stuff to support --enable-shared
929 # target_subdir is used by the testsuite to find the target libraries.
931 if test "${host}" != "${target}"; then
932 target_subdir="${target_alias}/"
934 AC_SUBST(target_subdir)
937 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
938 if test ! -f ${host_makefile_frag}; then
939 AC_MSG_ERROR("*** Gdb does not support host ${host}")
941 frags="$frags $host_makefile_frag"
943 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
944 if test ! -f ${target_makefile_frag}; then
945 AC_MSG_ERROR("*** Gdb does not support target ${target}")
947 frags="$frags $target_makefile_frag"
949 AC_SUBST_FILE(host_makefile_frag)
950 AC_SUBST_FILE(target_makefile_frag)
955 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
956 ' ${host_makefile_frag}`
959 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
960 ' ${target_makefile_frag}`
962 # these really aren't orthogonal true/false values of the same condition,
963 # but shells are slow enough that I like to reuse the test conditions
965 if test "${target}" = "${host}"; then
967 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
968 ' ${host_makefile_frag}`
970 # GDBserver is only useful in a "native" enviroment
971 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
975 SUBDIRS="doc testsuite nlm"
976 if test "${enable_multi_ice}" = "yes"; then
977 SUBDIRS="${SUBDIRS} multi-ice"
982 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
983 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
984 # corresponding links. But we have to remove the xm.h files and tm.h
985 # files anyway, e.g. when switching from "configure host" to
991 if test "${hostfile}" != ""; then
992 files="${files} config/${gdb_host_cpu}/${hostfile}"
993 links="${links} xm.h"
996 if test "${targetfile}" != ""; then
997 files="${files} config/${gdb_target_cpu}/${targetfile}"
998 links="${links} tm.h"
1001 if test "${nativefile}" != ""; then
1002 files="${files} config/${gdb_host_cpu}/${nativefile}"
1003 links="${links} nm.h"
1005 # A cross-only configuration.
1006 files="${files} config/nm-empty.h"
1007 links="${links} nm.h"
1011 AC_LINK_FILES($files, $links)
1013 dnl Check for exe extension set on certain hosts (e.g. Win32)
1016 AC_CONFIG_SUBDIRS($configdirs)
1017 AC_OUTPUT(Makefile tui/Makefile .gdbinit:gdbinit.in,
1019 dnl Autoconf doesn't provide a mechanism for modifying definitions
1020 dnl provided by makefile fragments.
1022 if test "${nativefile}" = ""; then
1023 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
1024 < Makefile > Makefile.tem
1025 mv -f Makefile.tem Makefile
1029 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1030 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1031 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1032 mv -f Makefile.tmp Makefile
1036 case x$CONFIG_HEADERS in
1037 xconfig.h:config.in)
1042 gdb_host_cpu=$gdb_host_cpu
1043 gdb_target_cpu=$gdb_target_cpu
1044 nativefile=$nativefile