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 \
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 PIOCSET ioctl entry
206 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
207 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
208 [AC_TRY_COMPILE([#include <unistd.h>
209 #include <sys/types.h>
210 #include <sys/procfs.h>
213 dummy = ioctl(0, PIOCSET, &dummy);
215 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
216 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
217 if test $gdb_cv_have_procfs_piocset = yes; then
218 AC_DEFINE(HAVE_PROCFS_PIOCSET)
222 dnl See if host has libm. This is usually needed by simulators.
223 AC_CHECK_LIB(m, main)
225 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
227 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
228 dnl under Solaris 2.6 because it is some funky empty library.
229 dnl So only link in libw if we have to.
230 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
232 dnl See if compiler supports "long long" type.
234 AC_MSG_CHECKING(for long long support in compiler)
235 AC_CACHE_VAL(gdb_cv_c_long_long,
237 extern long long foo;
238 switch (foo & 2) { case 0: return 1; }
240 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
241 AC_MSG_RESULT($gdb_cv_c_long_long)
242 if test $gdb_cv_c_long_long = yes; then
243 AC_DEFINE(CC_HAS_LONG_LONG)
246 dnl See if the compiler and runtime support printing long long
248 AC_MSG_CHECKING(for long long support in printf)
249 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
254 l = (l << 16) + 0x0123;
255 l = (l << 16) + 0x4567;
256 l = (l << 16) + 0x89ab;
257 l = (l << 16) + 0xcdef;
258 sprintf (buf, "0x%016llx", l);
259 return (strcmp ("0x0123456789abcdef", buf));
261 gdb_cv_printf_has_long_long=yes,
262 gdb_cv_printf_has_long_long=no,
263 gdb_cv_printf_has_long_long=no)])
264 if test $gdb_cv_printf_has_long_long = yes; then
265 AC_DEFINE(PRINTF_HAS_LONG_LONG)
267 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
269 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
270 dnl because autoconf complains about cross-compilation issues. However, this
271 dnl code uses the same variables as the macro for compatibility.
273 AC_MSG_CHECKING(for long double support in compiler)
274 AC_CACHE_VAL(ac_cv_c_long_double,
275 [AC_TRY_COMPILE(, [long double foo;],
276 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
277 AC_MSG_RESULT($ac_cv_c_long_double)
278 if test $ac_cv_c_long_double = yes; then
279 AC_DEFINE(HAVE_LONG_DOUBLE)
282 dnl See if the compiler and runtime support printing long doubles
284 AC_MSG_CHECKING(for long double support in printf)
285 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
289 long double f = 3.141592653;
290 sprintf (buf, "%Lg", f);
291 return (strncmp ("3.14159", buf, 7));
293 gdb_cv_printf_has_long_double=yes,
294 gdb_cv_printf_has_long_double=no,
295 gdb_cv_printf_has_long_double=no)])
296 if test $gdb_cv_printf_has_long_double = yes; then
297 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
299 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
301 dnl See if the compiler and runtime support scanning long doubles
303 AC_MSG_CHECKING(for long double support in scanf)
304 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
307 char *buf = "3.141592653";
309 sscanf (buf, "%Lg", &f);
310 return !(f > 3.14159 && f < 3.14160);
312 gdb_cv_scanf_has_long_double=yes,
313 gdb_cv_scanf_has_long_double=no,
314 gdb_cv_scanf_has_long_double=no)])
315 if test $gdb_cv_scanf_has_long_double = yes; then
316 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
318 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
322 dnl See if thread_db library is around for Solaris thread debugging. Note that
323 dnl we must explicitly test for version 1 of the library because version 0
324 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
326 dnl Note that we only want this if we are both native (host == target), and
327 dnl not doing a canadian cross build (build == host).
329 if test ${build} = ${host} -a ${host} = ${target} ; then
332 AC_MSG_CHECKING(for HPUX/OSF thread support)
333 if test -f /usr/include/dce/cma_config.h ; then
334 if test "$GCC" = "yes" ; then
336 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
337 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
338 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
340 AC_MSG_RESULT(no (suppressed because you are not using GCC))
347 AC_MSG_CHECKING(for Solaris thread debugging library)
348 if test -f /usr/lib/libthread_db.so.1 ; then
350 AC_DEFINE(HAVE_THREAD_DB_LIB)
351 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
352 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
353 AC_CHECK_LIB(dl, dlopen)
354 if test "$GCC" = "yes" ; then
355 # The GNU linker requires the -export-dynamic option to make
356 # all symbols visible in the dynamic symbol table.
357 hold_ldflags=$LDFLAGS
358 AC_MSG_CHECKING(for the ld -export-dynamic flag)
359 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
360 AC_TRY_LINK(, [int i;], found=yes, found=no)
361 LDFLAGS=$hold_ldflags
362 AC_MSG_RESULT($found)
363 if test $found = yes; then
364 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
367 # Sun randomly tweaked the prototypes in <proc_service.h>
369 AC_MSG_CHECKING(if <proc_service.h> is old)
370 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
372 #include <proc_service.h>
374 (struct ps_prochandle*, psaddr_t, const void*, size_t);
375 ],, gdb_cv_proc_service_is_old=no,
376 gdb_cv_proc_service_is_old=yes)
378 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
379 if test $gdb_cv_proc_service_is_old = yes; then
380 AC_DEFINE(PROC_SERVICE_IS_OLD)
387 AC_SUBST(CONFIG_LDFLAGS)
390 dnl Handle optional features that can be enabled.
392 dnl Handle MI sub-directory configury.
394 [ --enable-gdbmi Enable GDB-MI interface],
396 case "${enable_gdbmi}" in
398 "") enable_gdbmi=yes ;;
400 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
404 case ${enable_gdbmi} in
406 if test -d "${srcdir}/mi" ; then
407 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
408 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
409 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_MI_SRCS)"
410 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
411 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
412 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
413 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
414 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
415 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
421 [ --enable-tui Enable full-screen terminal user interface],
423 case "${enable_tui}" in
425 "") enable_tui=yes ;;
427 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
431 case ${enable_tui} in
435 TUI_LIBRARY=tui/libtui.a
443 AC_SUBST(TUI_LIBRARY)
445 AC_ARG_ENABLE(netrom,
446 [ --enable-netrom Enable NetROM support],
447 [case "${enableval}" in
448 yes) enable_netrom=yes ;;
449 no) enable_netrom=no ;;
450 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
453 if test "${enable_netrom}" = "yes"; then
454 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
455 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
459 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
460 -Wformat -Wparentheses -Wpointer-arith"
461 # Not yet: -Wall -Wpointer-arith -Wstrict-prototypes
462 # -Wmissing-prototypes -Wmissing-declarations
463 AC_ARG_ENABLE(build-warnings,
464 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
465 [case "${enableval}" in
467 no) build_warnings="-w";;
468 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
469 build_warnings="${build_warnings} ${t}";;
470 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
471 build_warnings="${t} ${build_warnings}";;
472 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
474 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
475 echo "Setting warning flags = $build_warnings" 6>&1
479 if test "x${build_warnings}" != x -a "x$GCC" = xyes
481 # Separate out the -Werror flag as some files just cannot be
482 # compiled with it enabled.
483 for w in ${build_warnings}; do
485 -Werr*) WERROR_CFLAGS=-Werror ;;
486 *) WARN_CFLAGS="${WARN_CFLAGS} $w"
490 AC_SUBST(WARN_CFLAGS)
491 AC_SUBST(WERROR_CFLAGS)
495 AC_SUBST(MMALLOC_CFLAGS)
499 [ --with-mmalloc Use memory mapped malloc package],
500 [case "${withval}" in
501 yes) want_mmalloc=true ;;
502 no) want_mmalloc=false;;
503 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
504 esac],[want_mmalloc=false])dnl
506 if test x$want_mmalloc = xtrue; then
507 AC_DEFINE(USE_MMALLOC)
508 AC_DEFINE(MMCHECK_FORCE)
509 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
510 MMALLOC='../mmalloc/libmmalloc.a'
513 AC_ARG_WITH(included-regex,
514 [ --with-included-regex Use included regex],
515 [case "${withval}" in
516 yes) want_included_regex=true ;;
517 no) want_included_regex=false;;
518 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
519 esac],[want_included_regex=true])dnl
521 if test $want_included_regex = false; then
522 AC_MSG_CHECKING(for GNU regex)
523 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
524 [AC_TRY_COMPILE([#include <gnu-versions.h>
525 #include <sys/types.h>
527 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
528 #error No valid GNU regex.
531 [gdb_cv_have_gnu_regex=yes],
532 [gdb_cv_have_gnu_regex=no])])
533 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
534 if test $gdb_cv_have_gnu_regex = no; then
535 want_included_regex=true
539 if test x${want_included_regex} = xtrue; then
541 AC_DEFINE(USE_INCLUDED_REGEX)
545 # In the Cygwin environment, we need some additional flags.
546 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
547 [AC_EGREP_CPP(lose, [
548 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
550 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
552 DLLTOOL=${DLLTOOL-dlltool}
553 WINDRES=${WINDRES-windres}
557 dnl Figure out which term library to use.
558 if test x$gdb_host = xgo32; then
561 if test x$gdb_cv_os_cygwin = xyes; then
562 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
565 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
566 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
567 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
568 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
569 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
570 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
572 if test "x$TERM_LIB" = x
574 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
580 # libreadline needs libuser32.a in a cygwin environment
582 if test x$gdb_cv_os_cygwin = xyes; then
585 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
591 LIBGUI="../libgui/src/libgui.a"
592 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
594 AC_SUBST(GUI_CFLAGS_X)
597 [ --with-cpu=CPU Set the default CPU variant to debug],
599 powerpc-* | powerpcle-* )
600 ## It would be nice to keep this table in sync with the one in
602 case "${with_cpu}" in
603 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
605 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
607 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
608 ## These are all RS6000 variants, as far as GDB is concerned.
618 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
624 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
627 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
632 [ --enable-gdbtk Enable GDBTK GUI front end],
633 [case "${enableval}" in
637 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
640 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
648 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
651 # Default is on for everything but go32 and Cygwin
656 if test -d "${srcdir}/gdbtk" ; then
670 if test "${enable_gdbtk}" = "yes"; then
673 if test -z "${no_tcl}"; then
677 # If $no_tk is nonempty, then we can't do Tk, and there is no
678 # point to doing Tcl.
679 if test -z "${no_tk}"; then
687 # now look for Itcl library stuff
689 CY_AC_PATH_ITCLCONFIG
690 if test -z "${no_itcl}"; then
691 CY_AC_LOAD_ITCLCONFIG
694 itcldir=../itcl/itcl/win/
697 itcldir=../itcl/itcl/unix/
702 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
703 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
707 # now look for Itk library stuff
709 if test -z "${no_itcl}"; then
714 itkdir=../itcl/itk/win/
717 itkdir=../itcl/itk/unix/
721 ITKLIB="${ITK_BUILD_LIB_SPEC}"
722 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
725 # now look for Tix library stuff
727 if test -z "${no_tix}"; then
729 TIXLIB="${TIX_BUILD_LIB_SPEC}"
730 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
733 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
734 # Tcl/Tk 8.1 require -fwritable strings. I don't
735 # know whether 8.2 will or not, but I bet it will.
736 # I don't have to worry about 7.x since we don't support it.
738 if test "$GCC" = "yes"; then
739 if test "$TCL_VERSION" != "8.0" ; then
740 GDBTK_CFLAGS="-fwritable-strings"
744 # Include some libraries that Tcl and Tk want.
745 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
746 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
747 # Yes, the ordering seems wrong here. But it isn't.
748 # TK_LIBS is the list of libraries that need to be linked
749 # after Tcl/Tk. Note that this isn't put into LIBS. If it
750 # were in LIBS then any link tests after this point would
751 # try to include things like `$(LIBGUI)', which wouldn't work.
752 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
753 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"
754 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
755 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"
756 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
757 CONFIG_CLEAN="${CONFIG_ALL} \$(SUBDIR_GDBTK_CLEAN)"
758 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
759 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
761 if test x$gdb_cv_os_cygwin = xyes; then
762 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
763 WIN32LDAPP="-Wl,--subsystem,console"
764 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
780 AC_SUBST(GDBTK_CFLAGS)
785 # Unlike the sim directory, whether a simulator is linked is controlled by
786 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
787 # This code just checks for a few cases where we'd like to ignore those
788 # definitions, even when they're present in the '.mt' file. These cases
789 # are when --disable-sim is specified, or if the simulator directory is
790 # not part of the soruce tree.
793 [ --enable-sim Link gdb with simulator],
794 [echo "enable_sim = $enable_sim";
795 echo "enableval = ${enableval}";
796 case "${enableval}" in
797 yes) ignore_sim=false ;;
798 no) ignore_sim=true ;;
799 *) ignore_sim=false ;;
803 if test ! -d "${srcdir}/../sim"; then
807 if test "${ignore_sim}" = "true"; then
809 IGNORE_SIM_OBS="SIM_OBS="
816 AC_SUBST(IGNORE_SIM_OBS)
818 AC_SUBST(ENABLE_CFLAGS)
821 AC_SUBST(CONFIG_DEPS)
822 AC_SUBST(CONFIG_SRCS)
823 AC_SUBST(CONFIG_INITS)
825 AC_SUBST(CONFIG_CLEAN)
826 AC_SUBST(CONFIG_INSTALL)
827 AC_SUBST(CONFIG_UNINSTALL)
829 # Begin stuff to support --enable-shared
830 AC_ARG_ENABLE(shared,
831 [ --enable-shared Use shared libraries],
832 [case "${enableval}" in
840 # If we have shared libraries, try to set rpath reasonably.
841 if test "${shared}" = "true"; then
844 HLDFLAGS='-Wl,+s,+b,$(libdir)'
846 *-*-irix5* | *-*-irix6*)
847 HLDFLAGS='-Wl,-rpath,$(libdir)'
851 *-*-linux* | *-pc-linux-gnu*)
852 HLDFLAGS='-Wl,-rpath,$(libdir)'
855 HLDFLAGS='-R $(libdir)'
858 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;'
863 # On SunOS, if the linker supports the -rpath option, use it to
864 # prevent ../bfd and ../opcodes from being included in the run time
868 echo 'main () { }' > conftest.c
869 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
870 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
872 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
874 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
876 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
878 elif test "${shared}" = "true"; then
879 HLDFLAGS='-Wl,-rpath=$(libdir)'
881 HLDFLAGS='-Wl,-rpath='
883 rm -f conftest.t conftest.c conftest
888 # End stuff to support --enable-shared
890 # target_subdir is used by the testsuite to find the target libraries.
892 if test "${host}" != "${target}"; then
893 target_subdir="${target_alias}/"
895 AC_SUBST(target_subdir)
898 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
899 if test ! -f ${host_makefile_frag}; then
900 AC_MSG_ERROR("*** Gdb does not support host ${host}")
902 frags="$frags $host_makefile_frag"
904 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
905 if test ! -f ${target_makefile_frag}; then
906 AC_MSG_ERROR("*** Gdb does not support target ${target}")
908 frags="$frags $target_makefile_frag"
910 AC_SUBST_FILE(host_makefile_frag)
911 AC_SUBST_FILE(target_makefile_frag)
916 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
917 ' ${host_makefile_frag}`
920 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
921 ' ${target_makefile_frag}`
923 # these really aren't orthogonal true/false values of the same condition,
924 # but shells are slow enough that I like to reuse the test conditions
926 if test "${target}" = "${host}"; then
928 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
929 ' ${host_makefile_frag}`
931 # GDBserver is only useful in a "native" enviroment
932 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
936 SUBDIRS="doc testsuite nlm"
937 if test "${enable_multi_ice}" = "yes"; then
938 SUBDIRS="${SUBDIRS} multi-ice"
943 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
944 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
945 # corresponding links. But we have to remove the xm.h files and tm.h
946 # files anyway, e.g. when switching from "configure host" to
952 if test "${hostfile}" != ""; then
953 files="${files} config/${gdb_host_cpu}/${hostfile}"
954 links="${links} xm.h"
957 if test "${targetfile}" != ""; then
958 files="${files} config/${gdb_target_cpu}/${targetfile}"
959 links="${links} tm.h"
962 if test "${nativefile}" != ""; then
963 files="${files} config/${gdb_host_cpu}/${nativefile}"
964 links="${links} nm.h"
966 # A cross-only configuration.
967 files="${files} config/nm-empty.h"
968 links="${links} nm.h"
972 AC_LINK_FILES($files, $links)
974 dnl Check for exe extension set on certain hosts (e.g. Win32)
977 AC_CONFIG_SUBDIRS($configdirs)
978 AC_OUTPUT(Makefile tui/Makefile .gdbinit:gdbinit.in,
980 dnl Autoconf doesn't provide a mechanism for modifying definitions
981 dnl provided by makefile fragments.
983 if test "${nativefile}" = ""; then
984 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
985 < Makefile > Makefile.tem
986 mv -f Makefile.tem Makefile
990 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
991 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
992 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
993 mv -f Makefile.tmp Makefile
997 case x$CONFIG_HEADERS in
1003 gdb_host_cpu=$gdb_host_cpu
1004 gdb_target_cpu=$gdb_target_cpu
1005 nativefile=$nativefile