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 \
106 dirent.h sys/ndir.h sys/dir.h ndir.h)
111 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
114 dnl See if ptrace.h provides the PTRACE_GETREGS request.
115 AC_MSG_CHECKING(for PTRACE_GETREGS)
116 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
117 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
119 [gdb_cv_have_ptrace_getregs=yes],
120 [gdb_cv_have_ptrace_getregs=no])])
121 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
122 if test $gdb_cv_have_ptrace_getregs = yes; then
123 AC_DEFINE(HAVE_PTRACE_GETREGS)
126 dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
127 dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
128 dnl Linux kernel patch for SSE support. That patch may or may not
129 dnl actually make it into the official distribution. If you find that
130 dnl years have gone by since this configure test was added, and Linux
131 dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
132 dnl make it, and you can delete this code.
133 AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
134 AC_CACHE_VAL(gdb_cv_have_ptrace_getxfpregs,
135 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
136 [PTRACE_GETXFPREGS;],
137 [gdb_cv_have_ptrace_getxfpregs=yes],
138 [gdb_cv_have_ptrace_getxfpregs=no])])
139 AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
140 if test $gdb_cv_have_ptrace_getxfpregs = yes; then
141 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
144 AC_CHECK_LIB(socket, socketpair)
145 AC_CHECK_FUNCS(socketpair)
148 BFD_NEED_DECLARATION(malloc)
149 BFD_NEED_DECLARATION(realloc)
150 BFD_NEED_DECLARATION(free)
151 BFD_NEED_DECLARATION(strerror)
152 BFD_NEED_DECLARATION(strdup)
153 BFD_NEED_DECLARATION(strstr)
156 # The following save_state_t checkery is only necessary for HPUX
157 # versions earlier than 10.20. When those fade from memory, this
158 # could be expunged. --jsm 1999-03-22
160 AC_MSG_CHECKING(for HPUX save_state structure)
161 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
162 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
163 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
164 gdb_cv_hpux_sswide=no)
165 if test $gdb_cv_hpux_savestate = yes
167 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
169 if test $gdb_cv_hpux_sswide = yes
171 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
173 AC_MSG_RESULT($gdb_cv_hpux_sswide)
176 # If we are configured native on GNU/Linux, work around problems with
178 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
180 if test "${target}" = "${host}"; then
182 i[[3456]]86-*-linux*)
183 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
184 AC_DEFINE(sys_quotactl)
186 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
187 AC_DEFINE(NEW_PROC_API)
189 *-*-solaris2.[[678]])
190 AC_DEFINE(NEW_PROC_API)
195 if test "$ac_cv_header_sys_procfs_h" = yes; then
196 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
197 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
198 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
199 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
200 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
201 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
202 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
203 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
205 dnl Check for broken prfpregset_t type
207 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
208 dnl prfpregset_t type (it's a typedef for the pointer to a struct
209 dnl instead of the struct itself). We detect this here, and work
210 dnl around it in lin-thread.c.
212 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
213 AC_MSG_CHECKING(whether prfpregset_t type is broken)
214 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
215 [AC_TRY_RUN([#include <sys/procfs.h>
218 if (sizeof (prfpregset_t) == sizeof (void *))
222 gdb_cv_prfpregset_t_broken=no,
223 gdb_cv_prfpregset_t_broken=yes,
224 gdb_cv_prfpregset_t_broken=yes)])
225 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
226 if test $gdb_cv_prfpregset_t_broken = yes; then
227 AC_DEFINE(PRFPREGSET_T_BROKEN)
231 dnl Check for PIOCSET ioctl entry
233 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
234 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
235 [AC_TRY_COMPILE([#include <unistd.h>
236 #include <sys/types.h>
237 #include <sys/procfs.h>
240 dummy = ioctl(0, PIOCSET, &dummy);
242 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
243 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
244 if test $gdb_cv_have_procfs_piocset = yes; then
245 AC_DEFINE(HAVE_PROCFS_PIOCSET)
249 dnl See if host has libm. This is usually needed by simulators.
250 AC_CHECK_LIB(m, main)
252 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
254 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
255 dnl under Solaris 2.6 because it is some funky empty library.
256 dnl So only link in libw if we have to.
257 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
259 dnl See if compiler supports "long long" type.
261 AC_MSG_CHECKING(for long long support in compiler)
262 AC_CACHE_VAL(gdb_cv_c_long_long,
264 extern long long foo;
265 switch (foo & 2) { case 0: return 1; }
267 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
268 AC_MSG_RESULT($gdb_cv_c_long_long)
269 if test $gdb_cv_c_long_long = yes; then
270 AC_DEFINE(CC_HAS_LONG_LONG)
273 dnl See if the compiler and runtime support printing long long
275 AC_MSG_CHECKING(for long long support in printf)
276 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
281 l = (l << 16) + 0x0123;
282 l = (l << 16) + 0x4567;
283 l = (l << 16) + 0x89ab;
284 l = (l << 16) + 0xcdef;
285 sprintf (buf, "0x%016llx", l);
286 return (strcmp ("0x0123456789abcdef", buf));
288 gdb_cv_printf_has_long_long=yes,
289 gdb_cv_printf_has_long_long=no,
290 gdb_cv_printf_has_long_long=no)])
291 if test $gdb_cv_printf_has_long_long = yes; then
292 AC_DEFINE(PRINTF_HAS_LONG_LONG)
294 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
296 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
297 dnl because autoconf complains about cross-compilation issues. However, this
298 dnl code uses the same variables as the macro for compatibility.
300 AC_MSG_CHECKING(for long double support in compiler)
301 AC_CACHE_VAL(ac_cv_c_long_double,
302 [AC_TRY_COMPILE(, [long double foo;],
303 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
304 AC_MSG_RESULT($ac_cv_c_long_double)
305 if test $ac_cv_c_long_double = yes; then
306 AC_DEFINE(HAVE_LONG_DOUBLE)
309 dnl See if the compiler and runtime support printing long doubles
311 AC_MSG_CHECKING(for long double support in printf)
312 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
316 long double f = 3.141592653;
317 sprintf (buf, "%Lg", f);
318 return (strncmp ("3.14159", buf, 7));
320 gdb_cv_printf_has_long_double=yes,
321 gdb_cv_printf_has_long_double=no,
322 gdb_cv_printf_has_long_double=no)])
323 if test $gdb_cv_printf_has_long_double = yes; then
324 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
326 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
328 dnl See if the compiler and runtime support scanning long doubles
330 AC_MSG_CHECKING(for long double support in scanf)
331 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
334 char *buf = "3.141592653";
336 sscanf (buf, "%Lg", &f);
337 return !(f > 3.14159 && f < 3.14160);
339 gdb_cv_scanf_has_long_double=yes,
340 gdb_cv_scanf_has_long_double=no,
341 gdb_cv_scanf_has_long_double=no)])
342 if test $gdb_cv_scanf_has_long_double = yes; then
343 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
345 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
349 dnl See if thread_db library is around for Solaris thread debugging. Note that
350 dnl we must explicitly test for version 1 of the library because version 0
351 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
353 dnl Note that we only want this if we are both native (host == target), and
354 dnl not doing a canadian cross build (build == host).
356 if test ${build} = ${host} -a ${host} = ${target} ; then
359 AC_MSG_CHECKING(for HPUX/OSF thread support)
360 if test -f /usr/include/dce/cma_config.h ; then
361 if test "$GCC" = "yes" ; then
363 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
364 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
365 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
367 AC_MSG_RESULT(no (suppressed because you are not using GCC))
374 AC_MSG_CHECKING(for Solaris thread debugging library)
375 if test -f /usr/lib/libthread_db.so.1 ; then
377 AC_DEFINE(HAVE_THREAD_DB_LIB)
378 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
379 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
380 AC_CHECK_LIB(dl, dlopen)
381 if test "$GCC" = "yes" ; then
382 # The GNU linker requires the -export-dynamic option to make
383 # all symbols visible in the dynamic symbol table.
384 hold_ldflags=$LDFLAGS
385 AC_MSG_CHECKING(for the ld -export-dynamic flag)
386 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
387 AC_TRY_LINK(, [int i;], found=yes, found=no)
388 LDFLAGS=$hold_ldflags
389 AC_MSG_RESULT($found)
390 if test $found = yes; then
391 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
394 # Sun randomly tweaked the prototypes in <proc_service.h>
396 AC_MSG_CHECKING(if <proc_service.h> is old)
397 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
399 #include <proc_service.h>
401 (struct ps_prochandle*, psaddr_t, const void*, size_t);
402 ],, gdb_cv_proc_service_is_old=no,
403 gdb_cv_proc_service_is_old=yes)
405 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
406 if test $gdb_cv_proc_service_is_old = yes; then
407 AC_DEFINE(PROC_SERVICE_IS_OLD)
414 AC_SUBST(CONFIG_LDFLAGS)
417 dnl Handle optional features that can be enabled.
419 dnl Handle MI sub-directory configury.
421 [ --enable-gdbmi Enable GDB-MI interface],
423 case "${enable_gdbmi}" in
425 "") enable_gdbmi=yes ;;
427 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
431 case ${enable_gdbmi} in
433 if test -d "${srcdir}/mi" ; then
434 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
435 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
436 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_MI_SRCS)"
437 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
438 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_MI_CFLAGS)"
439 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_MI_ALL)"
440 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_MI_CLEAN)"
441 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_MI_INSTALL)"
442 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_MI_UNINSTALL)"
448 [ --enable-tui Enable full-screen terminal user interface],
450 case "${enable_tui}" in
452 "") enable_tui=yes ;;
454 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
458 case ${enable_tui} in
460 if test -d "${srcdir}/tui" ; then
461 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_TUI_OBS)"
462 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_TUI_DEPS)"
463 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_TUI_SRCS)"
464 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_TUI_INITS)"
465 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_TUI_CFLAGS)"
466 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_TUI_ALL)"
467 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_TUI_CLEAN)"
468 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_TUI_INSTALL)"
469 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_TUI_UNINSTALL)"
474 AC_ARG_ENABLE(netrom,
475 [ --enable-netrom Enable NetROM support],
476 [case "${enableval}" in
477 yes) enable_netrom=yes ;;
478 no) enable_netrom=no ;;
479 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
482 if test "${enable_netrom}" = "yes"; then
483 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
484 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
488 # Don't add -Wall or -Wunused, they include -Wunused-parameter which
490 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
491 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
492 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
493 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
494 # -Wchar-subscripts -Wuninitialized -Wtraditional -Wshadow -Wcast-qual
495 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
496 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
497 # -Woverloaded-virtual -Winline -Werror"
498 AC_ARG_ENABLE(build-warnings,
499 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
500 [case "${enableval}" in
502 no) build_warnings="-w";;
503 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
504 build_warnings="${build_warnings} ${t}";;
505 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
506 build_warnings="${t} ${build_warnings}";;
507 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
509 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
510 echo "Setting compiler warning flags = $build_warnings" 6>&1
514 if test "x${build_warnings}" != x -a "x$GCC" = xyes
516 AC_MSG_CHECKING(compiler warning flags)
517 # Separate out the -Werror flag as some files just cannot be
518 # compiled with it enabled.
519 for w in ${build_warnings}; do
521 -Werr*) WERROR_CFLAGS=-Werror ;;
522 *) # Check that GCC accepts it
523 if $CC $w 2>&1 | grep 'unrecognized option' > /dev/null; then
526 WARN_CFLAGS="${WARN_CFLAGS} $w"
530 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
532 AC_SUBST(WARN_CFLAGS)
533 AC_SUBST(WERROR_CFLAGS)
537 AC_SUBST(MMALLOC_CFLAGS)
541 [ --with-mmalloc Use memory mapped malloc package],
542 [case "${withval}" in
543 yes) want_mmalloc=true ;;
544 no) want_mmalloc=false;;
545 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
546 esac],[want_mmalloc=false])dnl
548 if test x$want_mmalloc = xtrue; then
549 AC_DEFINE(USE_MMALLOC)
550 AC_DEFINE(MMCHECK_FORCE)
551 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
552 MMALLOC='../mmalloc/libmmalloc.a'
555 AC_ARG_WITH(included-regex,
556 [ --with-included-regex Use included regex],
557 [case "${withval}" in
558 yes) want_included_regex=true ;;
559 no) want_included_regex=false;;
560 *) AC_MSG_ERROR(bad value ${withval} for GDB with-included-regex option) ;;
561 esac],[want_included_regex=true])dnl
563 if test $want_included_regex = false; then
564 AC_MSG_CHECKING(for GNU regex)
565 AC_CACHE_VAL(gdb_cv_have_gnu_regex,
566 [AC_TRY_COMPILE([#include <gnu-versions.h>
567 #include <sys/types.h>
569 [#if !defined _GNU_REGEX_INTERFACE_VERSION || !defined __GLIBC__ || __GLIBC__ < 2
570 #error No valid GNU regex.
573 [gdb_cv_have_gnu_regex=yes],
574 [gdb_cv_have_gnu_regex=no])])
575 AC_MSG_RESULT($gdb_cv_have_gnu_regex)
576 if test $gdb_cv_have_gnu_regex = no; then
577 want_included_regex=true
581 if test x${want_included_regex} = xtrue; then
583 AC_DEFINE(USE_INCLUDED_REGEX)
587 # In the Cygwin environment, we need some additional flags.
588 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
589 [AC_EGREP_CPP(lose, [
590 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
592 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
594 DLLTOOL=${DLLTOOL-dlltool}
595 WINDRES=${WINDRES-windres}
599 dnl Figure out which term library to use.
600 if test x$gdb_host = xgo32; then
603 if test x$gdb_cv_os_cygwin = xyes; then
604 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
607 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
608 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
609 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
610 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
611 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
612 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
614 if test "x$TERM_LIB" = x
616 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
622 # libreadline needs libuser32.a in a cygwin environment
624 if test x$gdb_cv_os_cygwin = xyes; then
627 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
633 LIBGUI="../libgui/src/libgui.a"
634 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
636 AC_SUBST(GUI_CFLAGS_X)
639 [ --with-cpu=CPU Set the default CPU variant to debug],
641 powerpc-* | powerpcle-* )
642 ## It would be nice to keep this table in sync with the one in
644 case "${with_cpu}" in
645 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
647 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
649 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
650 ## These are all RS6000 variants, as far as GDB is concerned.
660 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
666 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
669 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
674 [ --enable-gdbtk Enable GDBTK GUI front end],
675 [case "${enableval}" in
679 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
682 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
690 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
693 # Default is on for everything but go32 and Cygwin
698 if test -d "${srcdir}/gdbtk" ; then
712 if test "${enable_gdbtk}" = "yes"; then
715 if test -z "${no_tcl}"; then
719 # If $no_tk is nonempty, then we can't do Tk, and there is no
720 # point to doing Tcl.
721 if test -z "${no_tk}"; then
729 # now look for Itcl library stuff
731 CY_AC_PATH_ITCLCONFIG
732 if test -z "${no_itcl}"; then
733 CY_AC_LOAD_ITCLCONFIG
736 itcldir=../itcl/itcl/win/
739 itcldir=../itcl/itcl/unix/
744 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
745 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
749 # now look for Itk library stuff
751 if test -z "${no_itcl}"; then
756 itkdir=../itcl/itk/win/
759 itkdir=../itcl/itk/unix/
763 ITKLIB="${ITK_BUILD_LIB_SPEC}"
764 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
767 # now look for Tix library stuff
769 if test -z "${no_tix}"; then
771 TIXLIB="${TIX_BUILD_LIB_SPEC}"
772 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
775 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
776 # Tcl/Tk 8.1 require -fwritable strings. I don't
777 # know whether 8.2 will or not, but I bet it will.
778 # I don't have to worry about 7.x since we don't support it.
780 if test "$GCC" = "yes"; then
781 if test "$TCL_VERSION" != "8.0" ; then
782 GDBTK_CFLAGS="-fwritable-strings"
786 # Include some libraries that Tcl and Tk want.
787 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
788 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
789 # Yes, the ordering seems wrong here. But it isn't.
790 # TK_LIBS is the list of libraries that need to be linked
791 # after Tcl/Tk. Note that this isn't put into LIBS. If it
792 # were in LIBS then any link tests after this point would
793 # try to include things like `$(LIBGUI)', which wouldn't work.
794 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
795 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"
796 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
797 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"
798 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
799 CONFIG_CLEAN="${CONFIG_ALL} \$(SUBDIR_GDBTK_CLEAN)"
800 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
801 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
803 if test x$gdb_cv_os_cygwin = xyes; then
804 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
805 WIN32LDAPP="-Wl,--subsystem,console"
806 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
822 AC_SUBST(GDBTK_CFLAGS)
827 # Unlike the sim directory, whether a simulator is linked is controlled by
828 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
829 # This code just checks for a few cases where we'd like to ignore those
830 # definitions, even when they're present in the '.mt' file. These cases
831 # are when --disable-sim is specified, or if the simulator directory is
832 # not part of the soruce tree.
835 [ --enable-sim Link gdb with simulator],
836 [echo "enable_sim = $enable_sim";
837 echo "enableval = ${enableval}";
838 case "${enableval}" in
839 yes) ignore_sim=false ;;
840 no) ignore_sim=true ;;
841 *) ignore_sim=false ;;
845 if test ! -d "${srcdir}/../sim"; then
849 if test "${ignore_sim}" = "true"; then
851 IGNORE_SIM_OBS="SIM_OBS="
858 AC_SUBST(IGNORE_SIM_OBS)
860 AC_SUBST(ENABLE_CFLAGS)
863 AC_SUBST(CONFIG_DEPS)
864 AC_SUBST(CONFIG_SRCS)
865 AC_SUBST(CONFIG_INITS)
867 AC_SUBST(CONFIG_CLEAN)
868 AC_SUBST(CONFIG_INSTALL)
869 AC_SUBST(CONFIG_UNINSTALL)
871 # Begin stuff to support --enable-shared
872 AC_ARG_ENABLE(shared,
873 [ --enable-shared Use shared libraries],
874 [case "${enableval}" in
882 # If we have shared libraries, try to set rpath reasonably.
883 if test "${shared}" = "true"; then
886 HLDFLAGS='-Wl,+s,+b,$(libdir)'
888 *-*-irix5* | *-*-irix6*)
889 HLDFLAGS='-Wl,-rpath,$(libdir)'
893 *-*-linux* | *-pc-linux-gnu*)
894 HLDFLAGS='-Wl,-rpath,$(libdir)'
897 HLDFLAGS='-R $(libdir)'
900 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;'
905 # On SunOS, if the linker supports the -rpath option, use it to
906 # prevent ../bfd and ../opcodes from being included in the run time
910 echo 'main () { }' > conftest.c
911 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
912 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
914 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
916 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
918 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
920 elif test "${shared}" = "true"; then
921 HLDFLAGS='-Wl,-rpath=$(libdir)'
923 HLDFLAGS='-Wl,-rpath='
925 rm -f conftest.t conftest.c conftest
930 # End stuff to support --enable-shared
932 # target_subdir is used by the testsuite to find the target libraries.
934 if test "${host}" != "${target}"; then
935 target_subdir="${target_alias}/"
937 AC_SUBST(target_subdir)
940 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
941 if test ! -f ${host_makefile_frag}; then
942 AC_MSG_ERROR("*** Gdb does not support host ${host}")
944 frags="$frags $host_makefile_frag"
946 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
947 if test ! -f ${target_makefile_frag}; then
948 AC_MSG_ERROR("*** Gdb does not support target ${target}")
950 frags="$frags $target_makefile_frag"
952 AC_SUBST_FILE(host_makefile_frag)
953 AC_SUBST_FILE(target_makefile_frag)
958 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
959 ' ${host_makefile_frag}`
962 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
963 ' ${target_makefile_frag}`
965 # these really aren't orthogonal true/false values of the same condition,
966 # but shells are slow enough that I like to reuse the test conditions
968 if test "${target}" = "${host}"; then
970 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
971 ' ${host_makefile_frag}`
973 # GDBserver is only useful in a "native" enviroment
974 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
978 SUBDIRS="doc testsuite nlm"
979 if test "${enable_multi_ice}" = "yes"; then
980 SUBDIRS="${SUBDIRS} multi-ice"
985 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
986 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
987 # corresponding links. But we have to remove the xm.h files and tm.h
988 # files anyway, e.g. when switching from "configure host" to
994 if test "${hostfile}" != ""; then
995 files="${files} config/${gdb_host_cpu}/${hostfile}"
996 links="${links} xm.h"
999 if test "${targetfile}" != ""; then
1000 files="${files} config/${gdb_target_cpu}/${targetfile}"
1001 links="${links} tm.h"
1004 if test "${nativefile}" != ""; then
1005 files="${files} config/${gdb_host_cpu}/${nativefile}"
1006 links="${links} nm.h"
1008 # A cross-only configuration.
1009 files="${files} config/nm-empty.h"
1010 links="${links} nm.h"
1014 AC_LINK_FILES($files, $links)
1016 dnl Check for exe extension set on certain hosts (e.g. Win32)
1019 AC_CONFIG_SUBDIRS($configdirs)
1020 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1022 dnl Autoconf doesn't provide a mechanism for modifying definitions
1023 dnl provided by makefile fragments.
1025 if test "${nativefile}" = ""; then
1026 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
1027 < Makefile > Makefile.tem
1028 mv -f Makefile.tem Makefile
1032 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1033 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1034 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1035 mv -f Makefile.tmp Makefile
1039 case x$CONFIG_HEADERS in
1040 xconfig.h:config.in)
1045 gdb_host_cpu=$gdb_host_cpu
1046 gdb_target_cpu=$gdb_target_cpu
1047 nativefile=$nativefile