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.
47 configdirs="doc testsuite"
49 AC_ARG_ENABLE(multi-ice,
50 [ --enable-multi-ice Build the multi-ice-gdb-server],
51 [case "${enableval}" in
52 yes ) enable_multi_ice="yes" ;;
53 no) enable_multi_ice="no" ;;
54 *) AC_MSG_ERROR(Bad value for --enable-multi-ice: ${enableval}) ;;
58 if test "${enable_multi_ice}" = "yes"; then
59 configdirs="${configdirs} multi-ice"
65 . ${srcdir}/configure.host
67 . ${srcdir}/configure.tgt
75 AC_CHECK_TOOL(RANLIB, ranlib, :)
84 AC_CHECK_HEADERS(ctype.h curses.h endian.h link.h thread_db.h proc_service.h \
85 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
86 string.h sys/procfs.h sys/ptrace.h sys/reg.h stdint.h \
87 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
88 wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h \
94 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask)
97 dnl See if ptrace.h provides the PTRACE_GETXFPREGS request.
98 dnl PTRACE_GETXFPREGS is a Cygnus invention, since we wrote our own
99 dnl Linux kernel patch for SSE support. That patch may or may not
100 dnl actually make it into the official distribution. If you find that
101 dnl years have gone by since this configure test was added, and Linux
102 dnl isn't using PTRACE_GETXFPREGS, that means that our patch didn't
103 dnl make it, and you can delete this code.
104 AC_MSG_CHECKING(for PTRACE_GETXFPREGS)
105 AC_CACHE_VAL(gdb_cv_have_ptrace_getxfpregs,
106 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
107 [PTRACE_GETXFPREGS;],
108 [gdb_cv_have_ptrace_getxfpregs=yes],
109 [gdb_cv_have_ptrace_getxfpregs=no])])
110 AC_MSG_RESULT($gdb_cv_have_ptrace_getxfpregs)
111 if test $gdb_cv_have_ptrace_getxfpregs = yes; then
112 AC_DEFINE(HAVE_PTRACE_GETXFPREGS)
115 AC_CHECK_LIB(socket, socketpair)
116 AC_CHECK_FUNCS(socketpair)
119 BFD_NEED_DECLARATION(malloc)
120 BFD_NEED_DECLARATION(realloc)
121 BFD_NEED_DECLARATION(free)
122 BFD_NEED_DECLARATION(strerror)
123 BFD_NEED_DECLARATION(strdup)
124 BFD_NEED_DECLARATION(strstr)
127 # The following save_state_t checkery is only necessary for HPUX
128 # versions earlier than 10.20. When those fade from memory, this
129 # could be expunged. --jsm 1999-03-22
131 AC_MSG_CHECKING(for HPUX save_state structure)
132 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
133 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
134 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
135 gdb_cv_hpux_sswide=no)
136 if test $gdb_cv_hpux_savestate = yes
138 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
140 if test $gdb_cv_hpux_sswide = yes
142 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
144 AC_MSG_RESULT($gdb_cv_hpux_sswide)
147 # If we are configured native on GNU/Linux, work around problems with
149 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
151 if test "${target}" = "${host}"; then
153 i[[3456]]86-*-linux*)
154 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
155 AC_DEFINE(sys_quotactl)
157 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5*)
158 AC_DEFINE(NEW_PROC_API)
160 # FIXME: we would like to define NEW_PROC_API for all versions of
161 # Solaris from 2.6 on... but it isn't quite working yet. Seems
162 # to work on sparc 2.6, so let's try it out there.
163 sparc-sun-solaris2.6)
164 AC_DEFINE(NEW_PROC_API)
169 if test "$ac_cv_header_sys_procfs_h" = yes; then
170 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
171 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
172 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
173 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
174 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
175 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
176 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
177 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
179 dnl Check for PIOCSET ioctl entry
181 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
182 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
183 [AC_TRY_COMPILE([#include <unistd.h>
184 #include <sys/types.h>
185 #include <sys/procfs.h>
188 dummy = ioctl(0, PIOCSET, &dummy);
190 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
191 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
192 if test $gdb_cv_have_procfs_piocset = yes; then
193 AC_DEFINE(HAVE_PROCFS_PIOCSET)
197 dnl See if host has libm. This is usually needed by simulators.
198 AC_CHECK_LIB(m, main)
200 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
202 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
203 dnl under Solaris 2.6 because it is some funky empty library.
204 dnl So only link in libw if we have to.
205 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
207 dnl See if compiler supports "long long" type.
209 AC_MSG_CHECKING(for long long support in compiler)
210 AC_CACHE_VAL(gdb_cv_c_long_long,
212 extern long long foo;
213 switch (foo & 2) { case 0: return 1; }
215 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
216 AC_MSG_RESULT($gdb_cv_c_long_long)
217 if test $gdb_cv_c_long_long = yes; then
218 AC_DEFINE(CC_HAS_LONG_LONG)
221 dnl See if the compiler and runtime support printing long long
223 AC_MSG_CHECKING(for long long support in printf)
224 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
229 l = (l << 16) + 0x0123;
230 l = (l << 16) + 0x4567;
231 l = (l << 16) + 0x89ab;
232 l = (l << 16) + 0xcdef;
233 sprintf (buf, "0x%016llx", l);
234 return (strcmp ("0x0123456789abcdef", buf));
236 gdb_cv_printf_has_long_long=yes,
237 gdb_cv_printf_has_long_long=no,
238 gdb_cv_printf_has_long_long=no)])
239 if test $gdb_cv_printf_has_long_long = yes; then
240 AC_DEFINE(PRINTF_HAS_LONG_LONG)
242 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
244 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
245 dnl because autoconf complains about cross-compilation issues. However, this
246 dnl code uses the same variables as the macro for compatibility.
248 AC_MSG_CHECKING(for long double support in compiler)
249 AC_CACHE_VAL(ac_cv_c_long_double,
250 [AC_TRY_COMPILE(, [long double foo;],
251 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
252 AC_MSG_RESULT($ac_cv_c_long_double)
253 if test $ac_cv_c_long_double = yes; then
254 AC_DEFINE(HAVE_LONG_DOUBLE)
257 dnl See if the compiler and runtime support printing long doubles
259 AC_MSG_CHECKING(for long double support in printf)
260 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
264 long double f = 3.141592653;
265 sprintf (buf, "%Lg", f);
266 return (strncmp ("3.14159", buf, 7));
268 gdb_cv_printf_has_long_double=yes,
269 gdb_cv_printf_has_long_double=no,
270 gdb_cv_printf_has_long_double=no)])
271 if test $gdb_cv_printf_has_long_double = yes; then
272 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
274 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
276 dnl See if the compiler and runtime support scanning long doubles
278 AC_MSG_CHECKING(for long double support in scanf)
279 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
282 char *buf = "3.141592653";
284 sscanf (buf, "%Lg", &f);
285 return !(f > 3.14159 && f < 3.14160);
287 gdb_cv_scanf_has_long_double=yes,
288 gdb_cv_scanf_has_long_double=no,
289 gdb_cv_scanf_has_long_double=no)])
290 if test $gdb_cv_scanf_has_long_double = yes; then
291 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
293 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
297 dnl See if thread_db library is around for Solaris thread debugging. Note that
298 dnl we must explicitly test for version 1 of the library because version 0
299 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
301 dnl Note that we only want this if we are both native (host == target), and
302 dnl not doing a canadian cross build (build == host).
304 if test ${build} = ${host} -a ${host} = ${target} ; then
307 AC_MSG_CHECKING(for HPUX/OSF thread support)
308 if test -f /usr/include/dce/cma_config.h ; then
309 if test "$GCC" = "yes" ; then
311 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
312 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
313 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
314 CONFIG_INITS="${CONFIG_INITS} hpux-thread.c"
316 AC_MSG_RESULT(no (suppressed because you are not using GCC))
323 AC_MSG_CHECKING(for Solaris thread debugging library)
324 if test -f /usr/lib/libthread_db.so.1 ; then
326 AC_DEFINE(HAVE_THREAD_DB_LIB)
327 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
328 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
329 AC_CHECK_LIB(dl, dlopen)
330 if test "$GCC" = "yes" ; then
331 # The GNU linker requires the -export-dynamic option to make
332 # all symbols visible in the dynamic symbol table.
333 hold_ldflags=$LDFLAGS
334 AC_MSG_CHECKING(for the ld -export-dynamic flag)
335 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
336 AC_TRY_LINK(, [int i;], found=yes, found=no)
337 LDFLAGS=$hold_ldflags
338 AC_MSG_RESULT($found)
339 if test $found = yes; then
340 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
343 # Sun randomly tweaked the prototypes in <proc_service.h>
345 AC_MSG_CHECKING(if <proc_service.h> is old)
346 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
348 #include <proc_service.h>
350 (struct ps_prochandle*, psaddr_t, const void*, size_t);
351 ],, gdb_cv_proc_service_is_old=no,
352 gdb_cv_proc_service_is_old=yes)
354 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
355 if test $gdb_cv_proc_service_is_old = yes; then
356 AC_DEFINE(PROC_SERVICE_IS_OLD)
363 AC_SUBST(CONFIG_LDFLAGS)
366 dnl Handle optional features that can be enabled.
368 dnl Handle MI sub-directory configury.
370 [ --enable-gdbmi Enable GDB-MI interface],
372 case "${enable_gdbmi}" in
374 "") enable_gdbmi=yes ;;
376 AC_MSG_ERROR(Bad value for --enable-gdbmi: ${enableval})
380 case ${enable_gdbmi} in
382 if test -d "${srcdir}/mi" ; then
383 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_MI_OBS)"
384 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_MI_DEPS)"
385 CONFIG_SRCS="${CONFIG_SRS} \$(SUBDIR_MI_SRCS)"
386 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_MI_INITS)"
387 ENABLE_CFLAGS="${ENABLE_CFLAGS} \${SUBDIR_MI_CFLAGS)"
393 [ --enable-tui Enable full-screen terminal user interface],
395 case "${enable_tui}" in
397 "") enable_tui=yes ;;
399 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
403 case ${enable_tui} in
407 TUI_LIBRARY=tui/libtui.a
415 AC_SUBST(TUI_LIBRARY)
417 AC_ARG_ENABLE(netrom,
418 [ --enable-netrom Enable NetROM support],
419 [case "${enableval}" in
420 yes) enable_netrom=yes ;;
421 no) enable_netrom=no ;;
422 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
425 if test "${enable_netrom}" = "yes"; then
426 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
427 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
428 CONFIG_INITS="${CONFIG_INITS} remote-nrom.c"
431 AC_ARG_ENABLE(build-warnings,
432 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
434 # not yet: -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
435 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses -Wpointer-arith"
436 case "${enableval}" in
438 no) build_warnings="-w";;
439 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
440 build_warnings="${build_warnings} ${t}";;
441 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
442 build_warnings="${t} ${build_warnings}";;
443 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
445 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
446 echo "Setting warning flags = $build_warnings" 6>&1
450 if test "x${build_warnings}" != x -a "x$GCC" = xyes
452 # Separate out the -Werror flag as some files just cannot be
453 # compiled with it enabled.
454 for w in ${build_warnings}; do
456 -Werr*) WERROR_CFLAGS=-Werror ;;
457 *) WARN_CFLAGS="${WARN_CFLAGS} $w"
460 fi],[build_warnings=""])dnl
462 AC_SUBST(WARN_CFLAGS)
463 AC_SUBST(WERROR_CFLAGS)
467 AC_SUBST(MMALLOC_CFLAGS)
471 [ --with-mmalloc Use memory mapped malloc package],
472 [case "${withval}" in
473 yes) want_mmalloc=true ;;
474 no) want_mmalloc=false;;
475 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
476 esac],[want_mmalloc=false])dnl
478 if test x$want_mmalloc = xtrue; then
479 AC_DEFINE(USE_MMALLOC)
480 AC_DEFINE(MMCHECK_FORCE)
481 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
482 MMALLOC='../mmalloc/libmmalloc.a'
486 # In the Cygwin environment, we need some additional flags.
487 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
488 [AC_EGREP_CPP(lose, [
489 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
491 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
493 DLLTOOL=${DLLTOOL-dlltool}
494 WINDRES=${WINDRES-windres}
498 dnl Figure out which term library to use.
499 if test x$gdb_host = xgo32; then
502 if test x$gdb_cv_os_cygwin = xyes; then
503 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
506 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
507 AC_CHECK_LIB(Hcurses, tgetent, TERM_LIB=-lHcurses,
508 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
509 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
510 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
511 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo))))))
513 if test "x$TERM_LIB" = x
515 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
521 # libreadline needs libuser32.a in a cygwin environment
523 if test x$gdb_cv_os_cygwin = xyes; then
526 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
532 LIBGUI="../libgui/src/libgui.a"
533 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
535 AC_SUBST(GUI_CFLAGS_X)
538 [ --with-cpu=CPU Set the default CPU variant to debug],
540 powerpc-* | powerpcle-* )
541 ## It would be nice to keep this table in sync with the one in
543 case "${with_cpu}" in
544 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
546 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
548 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
549 ## These are all RS6000 variants, as far as GDB is concerned.
559 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
565 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
568 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
575 [ --enable-gdbtk Enable GDBTK GUI front end],
576 [case "${enableval}" in
580 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
583 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
591 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
594 # Default is on for everything but go32 and Cygwin
610 if test "${enable_gdbtk}" = "yes"; then
613 if test -z "${no_tcl}"; then
617 # If $no_tk is nonempty, then we can't do Tk, and there is no
618 # point to doing Tcl.
619 if test -z "${no_tk}"; then
627 # now look for Itcl library stuff
629 CY_AC_PATH_ITCLCONFIG
630 if test -z "${no_itcl}"; then
631 CY_AC_LOAD_ITCLCONFIG
634 itcldir=../itcl/itcl/win/
637 itcldir=../itcl/itcl/unix/
642 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
643 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
647 # now look for Itk library stuff
649 if test -z "${no_itcl}"; then
654 itkdir=../itcl/itk/win/
657 itkdir=../itcl/itk/unix/
661 ITKLIB="${ITK_BUILD_LIB_SPEC}"
662 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
665 # now look for Tix library stuff
667 if test -z "${no_tix}"; then
669 TIXLIB="${TIX_BUILD_LIB_SPEC}"
670 TIX_DEPS="${TIX_BUILD_LOCATION}/${TIX_LIB_FILE}"
674 ENABLE_CFLAGS="$ENABLE_CFLAGS -DGDBTK"
675 # Tcl/Tk 8.1 require -fwritable strings. I don't
676 # know whether 8.2 will or not, but I bet it will.
677 # I don't have to worry about 7.x since we don't support it.
679 if test "$GCC" = "yes"; then
680 if test "$TCL_VERSION" != "8.0" ; then
681 GDBTK_CFLAGS="-fwritable-strings"
685 # Include some libraries that Tcl and Tk want.
686 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
687 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
688 # Yes, the ordering seems wrong here. But it isn't.
689 # TK_LIBS is the list of libraries that need to be linked
690 # after Tcl/Tk. Note that this isn't put into LIBS. If it
691 # were in LIBS then any link tests after this point would
692 # try to include things like `$(LIBGUI)', which wouldn't work.
693 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
694 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"
695 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-varobj.o gdbtk-wrapper.o"
696 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"
698 if test x$gdb_cv_os_cygwin = xyes; then
699 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
700 WIN32LDAPP="-Wl,--subsystem,console"
701 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
707 AC_SUBST(ENABLE_GDBTK)
718 AC_SUBST(GDBTK_CFLAGS)
723 # Unlike the sim directory, whether a simulator is linked is controlled by
724 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
725 # This code just checks for a few cases where we'd like to ignore those
726 # definitions, even when they're present in the '.mt' file. These cases
727 # are when --disable-sim is specified, or if the simulator directory is
728 # not part of the soruce tree.
731 [ --enable-sim Link gdb with simulator],
732 [echo "enable_sim = $enable_sim";
733 echo "enableval = ${enableval}";
734 case "${enableval}" in
735 yes) ignore_sim=false ;;
736 no) ignore_sim=true ;;
737 *) ignore_sim=false ;;
741 if test ! -d "${srcdir}/../sim"; then
745 if test "${ignore_sim}" = "true"; then
747 IGNORE_SIM_OBS="SIM_OBS="
754 AC_SUBST(IGNORE_SIM_OBS)
756 AC_SUBST(ENABLE_CFLAGS)
759 AC_SUBST(CONFIG_DEPS)
760 AC_SUBST(CONFIG_SRCS)
761 AC_SUBST(CONFIG_INITS)
763 # Begin stuff to support --enable-shared
764 AC_ARG_ENABLE(shared,
765 [ --enable-shared Use shared libraries],
766 [case "${enableval}" in
774 # If we have shared libraries, try to set rpath reasonably.
775 if test "${shared}" = "true"; then
778 HLDFLAGS='-Wl,+s,+b,$(libdir)'
780 *-*-irix5* | *-*-irix6*)
781 HLDFLAGS='-Wl,-rpath,$(libdir)'
785 *-*-linux* | *-pc-linux-gnu)
786 HLDFLAGS='-Wl,-rpath,$(libdir)'
789 HLDFLAGS='-R $(libdir)'
792 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;'
797 # On SunOS, if the linker supports the -rpath option, use it to
798 # prevent ../bfd and ../opcodes from being included in the run time
802 echo 'main () { }' > conftest.c
803 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
804 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
806 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
808 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
810 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
812 elif test "${shared}" = "true"; then
813 HLDFLAGS='-Wl,-rpath=$(libdir)'
815 HLDFLAGS='-Wl,-rpath='
817 rm -f conftest.t conftest.c conftest
822 # End stuff to support --enable-shared
824 # target_subdir is used by the testsuite to find the target libraries.
826 if test "${host}" != "${target}"; then
827 target_subdir="${target_alias}/"
829 AC_SUBST(target_subdir)
832 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
833 if test ! -f ${host_makefile_frag}; then
834 AC_MSG_ERROR("*** Gdb does not support host ${host}")
836 frags="$frags $host_makefile_frag"
838 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
839 if test ! -f ${target_makefile_frag}; then
840 AC_MSG_ERROR("*** Gdb does not support target ${target}")
842 frags="$frags $target_makefile_frag"
844 AC_SUBST_FILE(host_makefile_frag)
845 AC_SUBST_FILE(target_makefile_frag)
850 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
851 ' ${host_makefile_frag}`
854 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
855 ' ${target_makefile_frag}`
857 # these really aren't orthogonal true/false values of the same condition,
858 # but shells are slow enough that I like to reuse the test conditions
860 if test "${target}" = "${host}"; then
862 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
863 ' ${host_makefile_frag}`
865 # GDBserver is only useful in a "native" enviroment
866 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
870 SUBDIRS="doc testsuite nlm"
871 if test "${enable_multi_ice}" = "yes"; then
872 SUBDIRS="${SUBDIRS} multi-ice"
877 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
878 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
879 # corresponding links. But we have to remove the xm.h files and tm.h
880 # files anyway, e.g. when switching from "configure host" to
886 if test "${hostfile}" != ""; then
887 files="${files} config/${gdb_host_cpu}/${hostfile}"
888 links="${links} xm.h"
891 if test "${targetfile}" != ""; then
892 files="${files} config/${gdb_target_cpu}/${targetfile}"
893 links="${links} tm.h"
896 if test "${nativefile}" != ""; then
897 files="${files} config/${gdb_host_cpu}/${nativefile}"
898 links="${links} nm.h"
900 # A cross-only configuration.
901 files="${files} config/nm-empty.h"
902 links="${links} nm.h"
905 # Make it possible to use the GUI without doing a full install
906 if test "${enable_gdbtk}" = "yes" ; then
907 if test "$LN_S" = "ln -s" -a ! -f gdbtcl ; then
908 echo linking $srcdir/gdbtk/library to gdbtcl
909 $LN_S $srcdir/gdbtk/library gdbtcl
911 echo Warning: Unable to link $srcdir/gdbtk/library to gdbtcl. You will need to do a
912 echo " " make install before you are able to run the GUI.
916 AC_LINK_FILES($files, $links)
918 dnl Check for exe extension set on certain hosts (e.g. Win32)
921 AC_CONFIG_SUBDIRS($configdirs)
922 AC_OUTPUT(Makefile tui/Makefile .gdbinit:gdbinit.in,
924 dnl Autoconf doesn't provide a mechanism for modifying definitions
925 dnl provided by makefile fragments.
927 if test "${nativefile}" = ""; then
928 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
929 < Makefile > Makefile.tem
930 mv -f Makefile.tem Makefile
934 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
935 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
936 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
937 mv -f Makefile.tmp Makefile
941 case x$CONFIG_HEADERS in
947 gdb_host_cpu=$gdb_host_cpu
948 gdb_target_cpu=$gdb_target_cpu
949 nativefile=$nativefile