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)
31 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
34 dnl gdb doesn't use gettext, but bfd does. We call this to ensure we
35 dnl link with the correct libraries.
39 dnl List of object files added by configure.
51 configdirs="doc testsuite"
53 AC_ARG_ENABLE(multi-ice,
54 [ --enable-multi-ice Build the multi-ice-gdb-server],
55 [case "${enableval}" in
56 yes ) enable_multi_ice="yes" ;;
57 no) enable_multi_ice="no" ;;
58 *) AC_MSG_ERROR(Bad value for --enable-multi-ice: ${enableval}) ;;
62 if test "${enable_multi_ice}" = "yes"; then
63 configdirs="${configdirs} multi-ice"
69 . ${srcdir}/configure.host
71 . ${srcdir}/configure.tgt
79 AC_CHECK_TOOL(RANLIB, ranlib, :)
82 dnl MiG is needed for the Hurd.
83 AC_CHECK_TOOL(MIG, mig)
91 dnl Solaris 7 needs _MSE_INT_H defined to avoid a clash between <widec.h>
92 dnl and <wchar.h> that causes AC_CHECK_HEADERS to think <curses.h> doesn't
95 case $host_os in solaris2.7) case "$GCC" in yes)
99 AC_CHECK_HEADERS(ctype.h curses.h endian.h link.h thread_db.h proc_service.h \
100 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
101 string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
102 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
103 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
109 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
112 dnl See if ptrace.h provides the PTRACE_GETREGS request.
113 AC_MSG_CHECKING(for PTRACE_GETREGS)
114 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
115 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
117 [gdb_cv_have_ptrace_getregs=yes],
118 [gdb_cv_have_ptrace_getregs=no])])
119 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
120 if test $gdb_cv_have_ptrace_getregs = yes; then
121 AC_DEFINE(HAVE_PTRACE_GETREGS)
124 dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
125 dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
126 dnl Linux kernel patch for SSE support. That patch may or may not
127 dnl actually make it into the official distribution. If you find that
128 dnl years have gone by since this configure test was added, and Linux
129 dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
130 dnl make it, and you can delete this code.
131 AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
132 AC_CACHE_VAL(gdb_cv_have_ptrace_getxfpregs,
133 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
134 [PTRACE_GETXFPREGS;],
135 [gdb_cv_have_ptrace_getxfpregs=yes],
136 [gdb_cv_have_ptrace_getxfpregs=no])])
137 AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
138 if test $gdb_cv_have_ptrace_getxfpregs = yes; then
139 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
142 AC_CHECK_LIB(socket, socketpair)
143 AC_CHECK_FUNCS(socketpair)
146 BFD_NEED_DECLARATION(malloc)
147 BFD_NEED_DECLARATION(realloc)
148 BFD_NEED_DECLARATION(free)
149 BFD_NEED_DECLARATION(strerror)
150 BFD_NEED_DECLARATION(strdup)
151 BFD_NEED_DECLARATION(strstr)
154 # The following save_state_t checkery is only necessary for HPUX
155 # versions earlier than 10.20. When those fade from memory, this
156 # could be expunged. --jsm 1999-03-22
158 AC_MSG_CHECKING(for HPUX save_state structure)
159 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
160 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
161 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
162 gdb_cv_hpux_sswide=no)
163 if test $gdb_cv_hpux_savestate = yes
165 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
167 if test $gdb_cv_hpux_sswide = yes
169 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
171 AC_MSG_RESULT($gdb_cv_hpux_sswide)
174 # If we are configured native on GNU/Linux, work around problems with
176 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
178 if test "${target}" = "${host}"; then
180 i[[3456]]86-*-linux*)
181 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
182 AC_DEFINE(sys_quotactl)
184 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
185 AC_DEFINE(NEW_PROC_API)
188 AC_DEFINE(NEW_PROC_API)
193 if test "$ac_cv_header_sys_procfs_h" = yes; then
194 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
195 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
196 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
197 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
198 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
199 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
200 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
201 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
203 dnl Check for PIOCSET ioctl entry
205 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
206 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
207 [AC_TRY_COMPILE([#include <unistd.h>
208 #include <sys/types.h>
209 #include <sys/procfs.h>
212 dummy = ioctl(0, PIOCSET, &dummy);
214 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
215 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
216 if test $gdb_cv_have_procfs_piocset = yes; then
217 AC_DEFINE(HAVE_PROCFS_PIOCSET)
221 dnl See if host has libm. This is usually needed by simulators.
222 AC_CHECK_LIB(m, main)
224 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
226 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
227 dnl under Solaris 2.6 because it is some funky empty library.
228 dnl So only link in libw if we have to.
229 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
231 dnl See if compiler supports "long long" type.
233 AC_MSG_CHECKING(for long long support in compiler)
234 AC_CACHE_VAL(gdb_cv_c_long_long,
236 extern long long foo;
237 switch (foo & 2) { case 0: return 1; }
239 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
240 AC_MSG_RESULT($gdb_cv_c_long_long)
241 if test $gdb_cv_c_long_long = yes; then
242 AC_DEFINE(CC_HAS_LONG_LONG)
245 dnl See if the compiler and runtime support printing long long
247 AC_MSG_CHECKING(for long long support in printf)
248 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
253 l = (l << 16) + 0x0123;
254 l = (l << 16) + 0x4567;
255 l = (l << 16) + 0x89ab;
256 l = (l << 16) + 0xcdef;
257 sprintf (buf, "0x%016llx", l);
258 return (strcmp ("0x0123456789abcdef", buf));
260 gdb_cv_printf_has_long_long=yes,
261 gdb_cv_printf_has_long_long=no,
262 gdb_cv_printf_has_long_long=no)])
263 if test $gdb_cv_printf_has_long_long = yes; then
264 AC_DEFINE(PRINTF_HAS_LONG_LONG)
266 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
268 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
269 dnl because autoconf complains about cross-compilation issues. However, this
270 dnl code uses the same variables as the macro for compatibility.
272 AC_MSG_CHECKING(for long double support in compiler)
273 AC_CACHE_VAL(ac_cv_c_long_double,
274 [AC_TRY_COMPILE(, [long double foo;],
275 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
276 AC_MSG_RESULT($ac_cv_c_long_double)
277 if test $ac_cv_c_long_double = yes; then
278 AC_DEFINE(HAVE_LONG_DOUBLE)
281 dnl See if the compiler and runtime support printing long doubles
283 AC_MSG_CHECKING(for long double support in printf)
284 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
288 long double f = 3.141592653;
289 sprintf (buf, "%Lg", f);
290 return (strncmp ("3.14159", buf, 7));
292 gdb_cv_printf_has_long_double=yes,
293 gdb_cv_printf_has_long_double=no,
294 gdb_cv_printf_has_long_double=no)])
295 if test $gdb_cv_printf_has_long_double = yes; then
296 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
298 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
300 dnl See if the compiler and runtime support scanning long doubles
302 AC_MSG_CHECKING(for long double support in scanf)
303 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
306 char *buf = "3.141592653";
308 sscanf (buf, "%Lg", &f);
309 return !(f > 3.14159 && f < 3.14160);
311 gdb_cv_scanf_has_long_double=yes,
312 gdb_cv_scanf_has_long_double=no,
313 gdb_cv_scanf_has_long_double=no)])
314 if test $gdb_cv_scanf_has_long_double = yes; then
315 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
317 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
321 dnl See if thread_db library is around for Solaris thread debugging. Note that
322 dnl we must explicitly test for version 1 of the library because version 0
323 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
325 dnl Note that we only want this if we are both native (host == target), and
326 dnl not doing a canadian cross build (build == host).
328 if test ${build} = ${host} -a ${host} = ${target} ; then
331 AC_MSG_CHECKING(for HPUX/OSF thread support)
332 if test -f /usr/include/dce/cma_config.h ; then
333 if test "$GCC" = "yes" ; then
335 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
336 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
337 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
339 AC_MSG_RESULT(no (suppressed because you are not using GCC))
346 AC_MSG_CHECKING(for Solaris thread debugging library)
347 if test -f /usr/lib/libthread_db.so.1 ; then
349 AC_DEFINE(HAVE_THREAD_DB_LIB)
350 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
351 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
352 AC_CHECK_LIB(dl, dlopen)
353 if test "$GCC" = "yes" ; then
354 # The GNU linker requires the -export-dynamic option to make
355 # all symbols visible in the dynamic symbol table.
356 hold_ldflags=$LDFLAGS
357 AC_MSG_CHECKING(for the ld -export-dynamic flag)
358 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
359 AC_TRY_LINK(, [int i;], found=yes, found=no)
360 LDFLAGS=$hold_ldflags
361 AC_MSG_RESULT($found)
362 if test $found = yes; then
363 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
366 # Sun randomly tweaked the prototypes in <proc_service.h>
368 AC_MSG_CHECKING(if <proc_service.h> is old)
369 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
371 #include <proc_service.h>
373 (struct ps_prochandle*, psaddr_t, const void*, size_t);
374 ],, gdb_cv_proc_service_is_old=no,
375 gdb_cv_proc_service_is_old=yes)
377 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
378 if test $gdb_cv_proc_service_is_old = yes; then
379 AC_DEFINE(PROC_SERVICE_IS_OLD)
386 AC_SUBST(CONFIG_LDFLAGS)
389 dnl Handle optional features that can be enabled.
391 dnl Handle MI sub-directory configury.
393 [ --enable-gdbmi Enable GDB-MI interface],
395 case "${enable_gdbmi}" in
397 "") enable_gdbmi=yes ;;
399 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
403 case ${enable_gdbmi} in
405 if test -d "${srcdir}/mi" ; then
406 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
407 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
408 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_MI_SRCS)"
409 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
410 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
411 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
412 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
413 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
414 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
420 [ --enable-tui Enable full-screen terminal user interface],
422 case "${enable_tui}" in
424 "") enable_tui=yes ;;
426 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
430 case ${enable_tui} in
434 TUI_LIBRARY=tui/libtui.a
442 AC_SUBST(TUI_LIBRARY)
444 AC_ARG_ENABLE(netrom,
445 [ --enable-netrom Enable NetROM support],
446 [case "${enableval}" in
447 yes) enable_netrom=yes ;;
448 no) enable_netrom=no ;;
449 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
452 if test "${enable_netrom}" = "yes"; then
453 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
454 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
458 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
459 -Wformat -Wparentheses -Wpointer-arith"
460 # Not yet: -Wall -Wpointer-arith -Wstrict-prototypes
461 # -Wmissing-prototypes -Wmissing-declarations
462 AC_ARG_ENABLE(build-warnings,
463 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
464 [case "${enableval}" in
466 no) build_warnings="-w";;
467 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
468 build_warnings="${build_warnings} ${t}";;
469 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
470 build_warnings="${t} ${build_warnings}";;
471 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
473 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
474 echo "Setting warning flags = $build_warnings" 6>&1
478 if test "x${build_warnings}" != x -a "x$GCC" = xyes
480 # Separate out the -Werror flag as some files just cannot be
481 # compiled with it enabled.
482 for w in ${build_warnings}; do
484 -Werr*) WERROR_CFLAGS=-Werror ;;
485 *) WARN_CFLAGS="${WARN_CFLAGS} $w"
489 AC_SUBST(WARN_CFLAGS)
490 AC_SUBST(WERROR_CFLAGS)
494 AC_SUBST(MMALLOC_CFLAGS)
498 [ --with-mmalloc Use memory mapped malloc package],
499 [case "${withval}" in
500 yes) want_mmalloc=true ;;
501 no) want_mmalloc=false;;
502 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
503 esac],[want_mmalloc=false])dnl
505 if test x$want_mmalloc = xtrue; then
506 AC_DEFINE(USE_MMALLOC)
507 AC_DEFINE(MMCHECK_FORCE)
508 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
509 MMALLOC='../mmalloc/libmmalloc.a'
512 AC_ARG_WITH(included-regex,
513 [ --with-included-regex Use included regex],
514 [case "${withval}" in
515 yes) want_included_regex=true ;;
516 no) want_included_regex=false;;
517 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
518 esac],[want_included_regex=true])dnl
521 REGEX_CFLAGS="-DUSE_INCLUDED_REGEX"
522 if test $want_included_regex = false; then
523 AC_MSG_CHECKING(for GNU regex)
524 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
525 [AC_TRY_COMPILE([#include <gnu-versions.h>
526 #include <sys/types.h>
528 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
529 #error No valid GNU regex.
532 [gdb_cv_have_gnu_regex=yes],
533 [gdb_cv_have_gnu_regex=no])])
534 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
535 if test $gdb_cv_have_gnu_regex = yes; then
541 AC_SUBST(REGEX_CFLAGS)
543 # In the Cygwin environment, we need some additional flags.
544 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
545 [AC_EGREP_CPP(lose, [
546 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
548 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
550 DLLTOOL=${DLLTOOL-dlltool}
551 WINDRES=${WINDRES-windres}
555 dnl Figure out which term library to use.
556 if test x$gdb_host = xgo32; then
559 if test x$gdb_cv_os_cygwin = xyes; then
560 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
563 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
564 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
565 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
566 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
567 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
568 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
570 if test "x$TERM_LIB" = x
572 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
578 # libreadline needs libuser32.a in a cygwin environment
580 if test x$gdb_cv_os_cygwin = xyes; then
583 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
589 LIBGUI="../libgui/src/libgui.a"
590 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
592 AC_SUBST(GUI_CFLAGS_X)
595 [ --with-cpu=CPU Set the default CPU variant to debug],
597 powerpc-* | powerpcle-* )
598 ## It would be nice to keep this table in sync with the one in
600 case "${with_cpu}" in
601 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
603 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
605 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
606 ## These are all RS6000 variants, as far as GDB is concerned.
616 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
622 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
625 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
630 [ --enable-gdbtk Enable GDBTK GUI front end],
631 [case "${enableval}" in
635 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
638 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
646 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
649 # Default is on for everything but go32 and Cygwin
654 if test -d "${srcdir}/gdbtk" ; then
668 if test "${enable_gdbtk}" = "yes"; then
671 if test -z "${no_tcl}"; then
675 # If $no_tk is nonempty, then we can't do Tk, and there is no
676 # point to doing Tcl.
677 if test -z "${no_tk}"; then
685 # now look for Itcl library stuff
687 CY_AC_PATH_ITCLCONFIG
688 if test -z "${no_itcl}"; then
689 CY_AC_LOAD_ITCLCONFIG
692 itcldir=../itcl/itcl/win/
695 itcldir=../itcl/itcl/unix/
700 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
701 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
705 # now look for Itk library stuff
707 if test -z "${no_itcl}"; then
712 itkdir=../itcl/itk/win/
715 itkdir=../itcl/itk/unix/
719 ITKLIB="${ITK_BUILD_LIB_SPEC}"
720 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
723 # now look for Tix library stuff
725 if test -z "${no_tix}"; then
727 TIXLIB="${TIX_BUILD_LIB_SPEC}"
728 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
731 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
732 # Tcl/Tk 8.1 require -fwritable strings. I don't
733 # know whether 8.2 will or not, but I bet it will.
734 # I don't have to worry about 7.x since we don't support it.
736 if test "$GCC" = "yes"; then
737 if test "$TCL_VERSION" != "8.0" ; then
738 GDBTK_CFLAGS="-fwritable-strings"
742 # Include some libraries that Tcl and Tk want.
743 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
744 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
745 # Yes, the ordering seems wrong here. But it isn't.
746 # TK_LIBS is the list of libraries that need to be linked
747 # after Tcl/Tk. Note that this isn't put into LIBS. If it
748 # were in LIBS then any link tests after this point would
749 # try to include things like `$(LIBGUI)', which wouldn't work.
750 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
751 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"
752 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
753 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"
754 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
755 CONFIG_CLEAN="${CONFIG_ALL} \$(SUBDIR_GDBTK_CLEAN)"
756 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
757 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
759 if test x$gdb_cv_os_cygwin = xyes; then
760 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
761 WIN32LDAPP="-Wl,--subsystem,console"
762 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
778 AC_SUBST(GDBTK_CFLAGS)
783 # Unlike the sim directory, whether a simulator is linked is controlled by
784 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
785 # This code just checks for a few cases where we'd like to ignore those
786 # definitions, even when they're present in the '.mt' file. These cases
787 # are when --disable-sim is specified, or if the simulator directory is
788 # not part of the soruce tree.
791 [ --enable-sim Link gdb with simulator],
792 [echo "enable_sim = $enable_sim";
793 echo "enableval = ${enableval}";
794 case "${enableval}" in
795 yes) ignore_sim=false ;;
796 no) ignore_sim=true ;;
797 *) ignore_sim=false ;;
801 if test ! -d "${srcdir}/../sim"; then
805 if test "${ignore_sim}" = "true"; then
807 IGNORE_SIM_OBS="SIM_OBS="
814 AC_SUBST(IGNORE_SIM_OBS)
816 AC_SUBST(ENABLE_CFLAGS)
819 AC_SUBST(CONFIG_DEPS)
820 AC_SUBST(CONFIG_SRCS)
821 AC_SUBST(CONFIG_INITS)
823 AC_SUBST(CONFIG_CLEAN)
824 AC_SUBST(CONFIG_INSTALL)
825 AC_SUBST(CONFIG_UNINSTALL)
827 # Begin stuff to support --enable-shared
828 AC_ARG_ENABLE(shared,
829 [ --enable-shared Use shared libraries],
830 [case "${enableval}" in
838 # If we have shared libraries, try to set rpath reasonably.
839 if test "${shared}" = "true"; then
842 HLDFLAGS='-Wl,+s,+b,$(libdir)'
844 *-*-irix5* | *-*-irix6*)
845 HLDFLAGS='-Wl,-rpath,$(libdir)'
849 *-*-linux* | *-pc-linux-gnu*)
850 HLDFLAGS='-Wl,-rpath,$(libdir)'
853 HLDFLAGS='-R $(libdir)'
856 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;'
861 # On SunOS, if the linker supports the -rpath option, use it to
862 # prevent ../bfd and ../opcodes from being included in the run time
866 echo 'main () { }' > conftest.c
867 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
868 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
870 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
872 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
874 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
876 elif test "${shared}" = "true"; then
877 HLDFLAGS='-Wl,-rpath=$(libdir)'
879 HLDFLAGS='-Wl,-rpath='
881 rm -f conftest.t conftest.c conftest
886 # End stuff to support --enable-shared
888 # target_subdir is used by the testsuite to find the target libraries.
890 if test "${host}" != "${target}"; then
891 target_subdir="${target_alias}/"
893 AC_SUBST(target_subdir)
896 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
897 if test ! -f ${host_makefile_frag}; then
898 AC_MSG_ERROR("*** Gdb does not support host ${host}")
900 frags="$frags $host_makefile_frag"
902 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
903 if test ! -f ${target_makefile_frag}; then
904 AC_MSG_ERROR("*** Gdb does not support target ${target}")
906 frags="$frags $target_makefile_frag"
908 AC_SUBST_FILE(host_makefile_frag)
909 AC_SUBST_FILE(target_makefile_frag)
914 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
915 ' ${host_makefile_frag}`
918 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
919 ' ${target_makefile_frag}`
921 # these really aren't orthogonal true/false values of the same condition,
922 # but shells are slow enough that I like to reuse the test conditions
924 if test "${target}" = "${host}"; then
926 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
927 ' ${host_makefile_frag}`
929 # GDBserver is only useful in a "native" enviroment
930 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
934 SUBDIRS="doc testsuite nlm"
935 if test "${enable_multi_ice}" = "yes"; then
936 SUBDIRS="${SUBDIRS} multi-ice"
941 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
942 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
943 # corresponding links. But we have to remove the xm.h files and tm.h
944 # files anyway, e.g. when switching from "configure host" to
950 if test "${hostfile}" != ""; then
951 files="${files} config/${gdb_host_cpu}/${hostfile}"
952 links="${links} xm.h"
955 if test "${targetfile}" != ""; then
956 files="${files} config/${gdb_target_cpu}/${targetfile}"
957 links="${links} tm.h"
960 if test "${nativefile}" != ""; then
961 files="${files} config/${gdb_host_cpu}/${nativefile}"
962 links="${links} nm.h"
964 # A cross-only configuration.
965 files="${files} config/nm-empty.h"
966 links="${links} nm.h"
970 AC_LINK_FILES($files, $links)
972 dnl Check for exe extension set on certain hosts (e.g. Win32)
975 AC_CONFIG_SUBDIRS($configdirs)
976 AC_OUTPUT(Makefile tui/Makefile .gdbinit:gdbinit.in,
978 dnl Autoconf doesn't provide a mechanism for modifying definitions
979 dnl provided by makefile fragments.
981 if test "${nativefile}" = ""; then
982 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
983 < Makefile > Makefile.tem
984 mv -f Makefile.tem Makefile
988 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
989 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
990 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
991 mv -f Makefile.tmp Makefile
995 case x$CONFIG_HEADERS in
1001 gdb_host_cpu=$gdb_host_cpu
1002 gdb_target_cpu=$gdb_target_cpu
1003 nativefile=$nativefile