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.
45 configdirs="doc testsuite"
50 . ${srcdir}/configure.host
52 . ${srcdir}/configure.tgt
59 AC_CHECK_TOOL(RANLIB, ranlib, :)
68 AC_CHECK_HEADERS(ctype.h curses.h endian.h libintl.h link.h \
69 memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
70 string.h sys/procfs.h sys/ptrace.h sys/reg.h \
71 term.h termio.h termios.h unistd.h wait.h sys/wait.h \
72 wchar.h wctype.h asm/debugreg.h)
77 AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc)
80 BFD_NEED_DECLARATION(malloc)
81 BFD_NEED_DECLARATION(realloc)
82 BFD_NEED_DECLARATION(free)
83 BFD_NEED_DECLARATION(strerror)
84 BFD_NEED_DECLARATION(strdup)
86 # If we are configured native on GNU/Linux, work around problems with sys/procfs.h
87 if test "${target}" = "${host}"; then
90 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
91 AC_DEFINE(sys_quotactl)
96 AC_MSG_CHECKING([for gregset_t type])
97 AC_CACHE_VAL(gdb_cv_have_gregset_t,
98 [AC_TRY_LINK([#include <sys/procfs.h>],[gregset_t *gregsetp = 0],
99 gdb_cv_have_gregset_t=yes, gdb_cv_have_gregset_t=no)])
100 AC_MSG_RESULT($gdb_cv_have_gregset_t)
101 if test $gdb_cv_have_gregset_t = yes; then
102 AC_DEFINE(HAVE_GREGSET_T)
105 AC_MSG_CHECKING([for fpregset_t type])
106 AC_CACHE_VAL(gdb_cv_have_fpregset_t,
107 [AC_TRY_LINK([#include <sys/procfs.h>],[fpregset_t *fpregsetp = 0],
108 gdb_cv_have_fpregset_t=yes, gdb_cv_have_fpregset_t=no)])
109 AC_MSG_RESULT($gdb_cv_have_fpregset_t)
110 if test $gdb_cv_have_fpregset_t = yes; then
111 AC_DEFINE(HAVE_FPREGSET_T)
114 dnl See if host has libm. This is usually needed by simulators.
115 AC_CHECK_LIB(m, main)
117 dnl Solaris puts wctype in /usr/lib/libw.a before Solaris 2.6.
119 dnl A bug in GNU ld 2.9.1 causes a problem if we link in -lw
120 dnl under Solaris 2.6 because it is some funky empty library.
121 dnl So only link in libw if we have to.
122 AC_CHECK_LIB(c, wctype,: ,AC_CHECK_LIB(w, wctype))
124 dnl Figure out which term library to use.
125 if test x$gdb_cv_os_cygwin = xyes; then
126 TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
129 AC_CHECK_LIB(ncurses, tgetent, TERM_LIB=-lncurses,
130 AC_CHECK_LIB(termlib, tgetent, TERM_LIB=-ltermlib,
131 AC_CHECK_LIB(termcap, tgetent, TERM_LIB=-ltermcap,
132 AC_CHECK_LIB(curses, tgetent, TERM_LIB=-lcurses,
133 AC_CHECK_LIB(terminfo, tgetent, TERM_LIB=-lterminfo)))))
135 if test "x$TERM_LIB" = x
137 AC_MSG_ERROR(Could not find a term library, e.g. termcap or termlib!)
143 dnl See if compiler supports "long long" type.
145 AC_MSG_CHECKING(for long long support in compiler)
146 AC_CACHE_VAL(gdb_cv_c_long_long,
148 extern long long foo;
149 switch (foo & 2) { case 0: return 1; }
151 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
152 AC_MSG_RESULT($gdb_cv_c_long_long)
153 if test $gdb_cv_c_long_long = yes; then
154 AC_DEFINE(CC_HAS_LONG_LONG)
157 dnl See if the compiler and runtime support printing long long
159 AC_MSG_CHECKING(for long long support in printf)
160 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
165 l = (l << 16) + 0x0123;
166 l = (l << 16) + 0x4567;
167 l = (l << 16) + 0x89ab;
168 l = (l << 16) + 0xcdef;
169 sprintf (buf, "0x%016llx", l);
170 return (strcmp ("0x0123456789abcdef", buf));
172 gdb_cv_printf_has_long_long=yes,
173 gdb_cv_printf_has_long_long=no,
174 gdb_cv_printf_has_long_long=no)])
175 if test $gdb_cv_printf_has_long_long = yes; then
176 AC_DEFINE(PRINTF_HAS_LONG_LONG)
178 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
180 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
181 dnl because autoconf complains about cross-compilation issues. However, this
182 dnl code uses the same variables as the macro for compatibility.
184 AC_MSG_CHECKING(for long double support in compiler)
185 AC_CACHE_VAL(ac_cv_c_long_double,
186 [AC_TRY_COMPILE(, [long double foo;],
187 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
188 AC_MSG_RESULT($ac_cv_c_long_double)
189 if test $ac_cv_c_long_double = yes; then
190 AC_DEFINE(HAVE_LONG_DOUBLE)
193 dnl See if the compiler and runtime support printing long doubles
195 AC_MSG_CHECKING(for long double support in printf)
196 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
200 long double f = 3.141592653;
201 sprintf (buf, "%Lg", f);
202 return (strncmp ("3.14159", buf, 7));
204 gdb_cv_printf_has_long_double=yes,
205 gdb_cv_printf_has_long_double=no,
206 gdb_cv_printf_has_long_double=no)])
207 if test $gdb_cv_printf_has_long_double = yes; then
208 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
210 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
212 dnl See if the compiler and runtime support scanning long doubles
214 AC_MSG_CHECKING(for long double support in scanf)
215 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
218 char *buf = "3.141592653";
220 sscanf (buf, "%Lg", &f);
221 return !(f > 3.14159 && f < 3.14160);
223 gdb_cv_scanf_has_long_double=yes,
224 gdb_cv_scanf_has_long_double=no,
225 gdb_cv_scanf_has_long_double=no)])
226 if test $gdb_cv_scanf_has_long_double = yes; then
227 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
229 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
233 dnl See if thread_db library is around for Solaris thread debugging. Note that
234 dnl we must explicitly test for version 1 of the library because version 0
235 dnl (present on Solaris 2.4 or earlier) doesn't have the same API.
237 dnl Note that we only want this if we are both native (host == target), and
238 dnl not doing a canadian cross build (build == host).
240 if test ${build} = ${host} -a ${host} = ${target} ; then
243 AC_MSG_CHECKING(for HPUX/OSF thread support)
244 if test -f /usr/include/dce/cma_config.h ; then
245 if test "$GCC" = "yes" ; then
247 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
248 CONFIG_OBS="${CONFIG_OJS} hpux-thread.o"
249 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
251 AC_MSG_RESULT(no (suppressed because you are not using GCC))
258 AC_MSG_CHECKING(for Solaris thread debugging library)
259 if test -f /usr/lib/libthread_db.so.1 ; then
261 AC_DEFINE(HAVE_THREAD_DB_LIB)
262 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
263 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
264 AC_CHECK_LIB(dl, dlopen)
265 if test "$GCC" = "yes" ; then
266 # The GNU linker requires the -export-dynamic option to make
267 # all symbols visible in the dynamic symbol table.
268 hold_ldflags=$LDFLAGS
269 AC_MSG_CHECKING(for the ld -export-dynamic flag)
270 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
271 AC_TRY_LINK(, [int i;], found=yes, found=no)
272 LDFLAGS=$hold_ldflags
273 AC_MSG_RESULT($found)
274 if test $found = yes; then
275 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
278 # Sun randomly tweaked the prototypes in <proc_service.h>
280 AC_MSG_CHECKING(if <proc_service.h> is old)
281 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
283 #include <proc_service.h>
285 (struct ps_prochandle*, psaddr_t, const void*, size_t);
286 ],, gdb_cv_proc_service_is_old=no,
287 gdb_cv_proc_service_is_old=yes)
289 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
290 if test $gdb_cv_proc_service_is_old = yes; then
291 AC_DEFINE(PROC_SERVICE_IS_OLD)
298 AC_SUBST(CONFIG_LDFLAGS)
301 dnl Handle optional features that can be enabled.
305 [ --enable-tui Enable full-screen terminal user interface],
307 case "${enable_tui}" in
309 "") enable_tui=yes ;;
311 AC_MSG_ERROR(Bad value for --enable-tui: ${enableval})
315 case ${enable_tui} in
319 TUI_LIBRARY=tui/libtui.a
327 AC_SUBST(TUI_LIBRARY)
329 AC_ARG_ENABLE(netrom,
330 [ --enable-netrom Enable NetROM support],
331 [case "${enableval}" in
332 yes) enable_netrom=yes ;;
333 no) enable_netrom=no ;;
334 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
337 if test "${enable_netrom}" = "yes"; then
338 CONFIG_OBS="${CONFIG_OBS} remote-nrom.o"
339 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
342 AC_ARG_ENABLE(build-warnings,
343 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
344 [build_warnings="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations"
345 case "${enableval}" in
347 no) build_warnings="-w";;
348 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
349 build_warnings="${build_warnings} ${t}";;
350 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
351 build_warnings="${t} ${build_warnings}";;
352 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
353 esac],[build_warnings=""])dnl
355 if test "x${build_warnings}" != x -a "x$GCC" = xyes
357 WARN_CFLAGS="${build_warnings}"
361 AC_SUBST(WARN_CFLAGS)
365 AC_SUBST(MMALLOC_CFLAGS)
369 [ --with-mmalloc Use memory mapped malloc package],
370 [case "${withval}" in
371 yes) want_mmalloc=true ;;
372 no) want_mmalloc=false;;
373 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
374 esac],[want_mmalloc=false])dnl
376 if test x$want_mmalloc = xtrue; then
377 AC_DEFINE(USE_MMALLOC)
378 AC_DEFINE(MMCHECK_FORCE)
379 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
380 MMALLOC='../mmalloc/libmmalloc.a'
383 # start-sanitize-carp
384 # The below takes an educated guess at the targets that
385 # should be built. It is an interum version that provides
386 # significant backward compatibility.
389 [ --enable-carp Configure alternative readaptive paradigm ],
390 [case "${enableval}" in
391 yes) enable_carp=yes ;;
392 no) enable_carp=no ;;
393 *) AC_MSG_ERROR([bad value ${enableval} for carp option]) ;;
394 esac],[enable_carp=no])dnl
396 AC_ARG_ENABLE(targets,
397 [ --enable-targets alternative target configurations],
398 [case "${enableval}" in
399 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
401 no) enable_targets= ;;
402 *) enable_targets="$enableval" ;;
405 # Canonicalize the secondary target names.
407 if test -n "$enable_targets" ; then
408 if test "$enable_targets" = all ; then
411 for targ in `echo $enable_targets | sed 's/,/ /g'`
413 result=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $targ 2>/dev/null`
414 if test -n "$result" ; then
415 canon_targets="$canon_targets $result"
421 # Convert the target names into GDB [*]-tdep.c names
424 for targ in $target $canon_targets
426 if test "x$targ" = "xall" ; then
429 t_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
430 t_vendor=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
431 t_os=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
435 target_vendor=$t_vendor
437 . ${srcdir}/configure.tgt
438 echo ${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt`
439 if test -r ${mt} ; then
440 # This gets confused over .mt files that have multiple -tdep.o
442 s/^.*[ =]\([^ ]*\)-tdep.o.*/\1/p
444 selarchs="$selarchs $tdep"
450 # We don't do any links based on the target system, just makefile config.
452 if test x${all_targets} = xfalse ; then
454 # Target architecture .o files.
457 for arch in $selarchs
459 archdefs="$archdefs -DARCH_$arch"
460 ta="$ta ${arch}-tdep.o"
463 dvp) ta="$ta mips-tdep.o dvp-tdep.o" ;;
467 # Weed out duplicate .o files.
477 # And duplicate -D flags.
479 for i in $archdefs ; do
489 else # all_targets is true
491 MACHINE_OBS='$(ALL_MACHINES)'
494 dnl Don't define an archdefs list
495 dnl AC_SUBST(archdefs)
496 dnl XXXX this name will change several more times
497 if test "${enable_carp}" = yes ; then
501 MACHINE_OBS="# $MACHINE_OBS"
503 AC_SUBST(MACHINE_OBS)
506 # start-sanitize-gdbtk
509 AC_ARG_ENABLE(ide, [ --enable-ide Enable IDE support])
510 if test "$enable_ide" = yes; then
518 AC_ARG_WITH(foundry-libs,
519 [ --with-foundry-libs=DIR Use the Foundry SDK in DIR],
520 [FOUNDRY_LIB_BASE=${withval}])
521 AC_SUBST(FOUNDRY_LIB_BASE)
524 # This is the Foundry SDK
526 # These variables are used to determine where the Foundry libs and
527 # header files are located.
529 if test "$FOUNDRY_LIB_BASE" != ""; then
530 LIBGUI="${FOUNDRY_LIB_BASE}/lib/libgui.a"
531 GUI_CFLAGS_X="-I${FOUNDRY_LIB_BASE}/include"
532 if test x$enable_ide = xyes; then
533 IDE_CFLAGS_X="-I${FOUNDRY_LIB_BASE}/include -DIDE"
534 IDE_X="-L${FOUNDRY_LIB_BASE}/lib -lilu-Tk -lilu-c -lilu"
536 IDE_CFLAGS_X="-I${FOUNDRY_LIB_BASE}/include"
538 LIBIDETCL="${FOUNDRY_LIB_BASE}/lib/libidetcl.a"
539 LIBIDE="${FOUNDRY_LIB_BASE}/lib/libide.a"
540 IDE_DEPS="${FOUNDRY_LIB_BASE}/lib/libilu-Tk.a ${FOUNDRY_LIB_BASE}/lib/libilu-c.a ${FOUNDRY_LIB_BASE}/lib/libilu.a"
543 LIBGUI="../libgui/src/libgui.a"
544 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
546 if test x$enable_ide = xyes; then
547 IDE_CFLAGS_X="-I${srcdir}/../libidetcl/src -I${srcdir}/../libide/src -DIDE -I${srcdir}/../ilu/runtime/mainloop"
548 IDE_X="-L../ilu/runtime/mainloop -lilu-Tk -L../ilu/runtime/c -lilu-c -L../ilu/runtime/kernel -lilu"
550 IDE_CFLAGS_X="-I${srcdir}/../libidetcl/src -I${srcdir}/../libide/src"
552 LIBIDETCL="../libidetcl/src/libidetcl.a"
553 LIBIDE="../libide/src/libide.a"
554 IDE_DEPS="../ilu/runtime/mainloop/libilu-Tk.a ../ilu/runtime/c/libilu-c.a ../ilu/runtime/kernel/libilu.a"
559 AC_SUBST(GUI_CFLAGS_X)
561 AC_SUBST(IDE_CFLAGS_X)
570 [ --with-cpu=CPU set the default CPU variant to debug],
572 powerpc-* | powerpcle-* )
573 ## It would be nice to keep this table in sync with the one in
575 case "${with_cpu}" in
576 ppc-uisa | rs6000 | 403 | 403GC | 505 | 860 | 601 | 602 | 603 \
578 ## Those are all handled in variants in rs6000-tdep.c, so they're fine.
580 common | power | power2 | rios | rios1 | rios2 | rsc | rsc1 )
581 ## These are all RS6000 variants, as far as GDB is concerned.
591 AC_MSG_WARN(GDB: unknown --with-cpu value: \`${with_cpu}'; using \`ppc-uisa'.)
597 AC_MSG_WARN(GDB may ignore the --with-cpu flag for ${target} targets)
600 AC_DEFINE_UNQUOTED(TARGET_CPU_DEFAULT, "${with_cpu}")
607 [ --enable-gdbtk Enable GDBTK GUI front end],
608 [case "${enableval}" in
612 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
615 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
623 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
626 # Default is on for everything but go32 and Cygwin
635 # In the Cygwin environment, we need some additional flags.
636 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
637 [AC_EGREP_CPP(lose, [
640 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
647 DLLTOOL=${DLLTOOL-dlltool}
648 WINDRES=${WINDRES-windres}
652 if test x$gdb_cv_os_cygwin = xyes; then
654 if test x$enable_ide = xyes; then
655 WIN32LIBS="$WIN32LIBS -ladvapi32"
662 if test "${enable_gdbtk}" = "yes"; then
665 if test -z "${no_tcl}"; then
669 # If $no_tk is nonempty, then we can't do Tk, and there is no
670 # point to doing Tcl.
671 if test -z "${no_tk}"; then
679 # now look for Itcl library stuff
681 CY_AC_PATH_ITCLCONFIG
682 if test -z "${no_itcl}"; then
683 CY_AC_LOAD_ITCLCONFIG
686 itcldir=../itcl/itcl/win/
689 itcldir=../itcl/itcl/unix/
694 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
695 ITCL_DEPS="${itcldir}${ITCL_LIB_FILE}"
699 # now look for Itk library stuff
701 if test -z "${no_itcl}"; then
706 itkdir=../itcl/itk/win/
709 itkdir=../itcl/itk/unix/
713 ITKLIB="${ITK_BUILD_LIB_SPEC}"
714 ITK_DEPS="${itkdir}${ITK_LIB_FILE}"
717 # now look for tix library stuff
719 . ${ac_cv_c_tclconfig}/tclConfig.sh
722 tixdir=../tix/win/tcl8.0
725 tixdir=../tix/unix/tk8.0
728 if test "${TCL_SHARED_BUILD}" = "1"; then
729 TIX_LIB_EXT="${TCL_SHLIB_SUFFIX}"
731 # Can't win them all: SunOS 4 (others?) appends a version
732 # number after the ".so"
735 TIX_LIB_EXT="${TIX_LIB_EXT}.1.0" ;;
742 if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
743 TIXLIB="-L${tixdir} -ltix${TIXVERSION}"
744 TIX_DEPS="${tixdir}/libtix${TIXVERSION}${TIX_LIB_EXT}"
746 TIXLIB="-L${tixdir} -ltix`echo ${TIXVERSION} | tr -d .`"
747 TIX_DEPS="${tixdir}/libtix`echo ${TIXVERSION} | tr -d .`${TIX_LIB_EXT}"
751 ENABLE_CFLAGS="${ENABLE_CFLAGS} -DGDBTK"
753 # Include some libraries that Tcl and Tk want.
754 if test "${enable_ide}" = "yes"; then
755 TCL_LIBS='$(LIBIDETCL) $(LIBIDE) $(LIBGUI) $(IDE) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
756 CONFIG_DEPS='$(LIBIDETCL) $(LIBIDE) $(LIBGUI) $(IDE_DEPS) $(ITCL_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
758 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TIX) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
759 CONFIG_DEPS='$(LIBGUI) $(ITCL_DEPS) $(ITK_DEPS) $(TIX_DEPS) $(TK_DEPS) $(TCL_DEPS)'
761 # Yes, the ordering seems wrong here. But it isn't.
762 # TK_LIBS is the list of libraries that need to be linked
763 # after Tcl/Tk. Note that this isn't put into LIBS. If it
764 # were in LIBS then any link tests after this point would
765 # try to include things like `$(LIBGUI)', which wouldn't work.
766 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
767 CONFIG_OBS="${CONFIG_OBS} gdbtk.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-variable.o gdbtk-wrapper.o"
769 if test x$gdb_cv_os_cygwin = xyes; then
770 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
771 WIN32LDAPP="-Wl,--subsystem,console"
772 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
778 AC_SUBST(ENABLE_GDBTK)
793 # Enable GPU2 library for MIPS simulator
794 AC_ARG_WITH(sim-gpu2,
795 [ --with-sim-gpu2=DIR Use GPU2 library under given DIR],
798 if test -d "${withval}"
800 if test x${x_libraries} != x
802 LIBS="${LIBS} -L${withval}/lib -lgpu2 -L${x_libraries} -lX11 -lXext -lm"
804 LIBS="${LIBS} -L${withval}/lib -lgpu2 -lX11 -lXext -lm"
807 AC_MSG_WARN([Directory ${withval} does not exist.])
809 *) AC_MSG_WARN([--with-sim-gpu2 option invalid for target ${target}])
812 # Enable target accurate FP library
813 AC_ARG_WITH(sim-funit,
814 [ --with-sim-funit=DIR Use target FP lib under given DIR],
817 if test -d "${withval}"
819 LIBS="${LIBS} -L${withval}/lib -lfunit"
821 AC_MSG_WARN([Directory ${withval} does not exist.])
823 *) AC_MSG_WARN([--with-sim-funit option invalid for target ${target}])
827 AC_SUBST(ENABLE_CFLAGS)
830 AC_SUBST(CONFIG_DEPS)
831 AC_SUBST(CONFIG_SRCS)
833 # Begin stuff to support --enable-shared
834 AC_ARG_ENABLE(shared,
835 [ --enable-shared Use shared libraries],
836 [case "${enableval}" in
844 # If we have shared libraries, try to set rpath reasonably.
845 if test "${shared}" = "true"; then
848 HLDFLAGS='-Wl,+s,+b,$(libdir)'
850 *-*-irix5* | *-*-irix6*)
851 HLDFLAGS='-Wl,-rpath,$(libdir)'
855 *-*-linux* | *-pc-linux-gnu)
856 HLDFLAGS='-Wl,-rpath,$(libdir)'
859 HLDFLAGS='-R $(libdir)'
862 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;'
867 # On SunOS, if the linker supports the -rpath option, use it to
868 # prevent ../bfd and ../opcodes from being included in the run time
872 echo 'main () { }' > conftest.c
873 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
874 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
876 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
878 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
880 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
882 elif test "${shared}" = "true"; then
883 HLDFLAGS='-Wl,-rpath=$(libdir)'
885 HLDFLAGS='-Wl,-rpath='
887 rm -f conftest.t conftest.c conftest
892 # End stuff to support --enable-shared
894 # target_subdir is used by the testsuite to find the target libraries.
896 if test "${host}" != "${target}"; then
897 target_subdir="${target_alias}/"
899 AC_SUBST(target_subdir)
902 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
903 if test ! -f ${host_makefile_frag}; then
904 AC_MSG_ERROR("*** Gdb does not support host ${host}")
906 frags="$frags $host_makefile_frag"
908 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
909 if test ! -f ${target_makefile_frag}; then
910 AC_MSG_ERROR("*** Gdb does not support target ${target}")
912 frags="$frags $target_makefile_frag"
914 AC_SUBST_FILE(host_makefile_frag)
915 AC_SUBST_FILE(target_makefile_frag)
920 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
921 ' ${host_makefile_frag}`
924 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
925 ' ${target_makefile_frag}`
927 # these really aren't orthogonal true/false values of the same condition,
928 # but shells are slow enough that I like to reuse the test conditions
930 if test "${target}" = "${host}"; then
932 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
933 ' ${host_makefile_frag}`
935 # GDBserver is only useful in a "native" enviroment
936 # configdirs=`echo $configdirs | sed 's/gdbserver//'`
940 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
941 # (NAT_FILE) is not set in config/*/*.m[ht] files, we don't make the
942 # corresponding links. But we have to remove the xm.h files and tm.h
943 # files anyway, e.g. when switching from "configure host" to
949 if test "${hostfile}" != ""; then
950 files="${files} config/${gdb_host_cpu}/${hostfile}"
951 links="${links} xm.h"
954 if test "${targetfile}" != ""; then
955 files="${files} config/${gdb_target_cpu}/${targetfile}"
956 links="${links} tm.h"
959 if test "${nativefile}" != ""; then
960 files="${files} config/${gdb_host_cpu}/${nativefile}"
961 links="${links} nm.h"
963 # A cross-only configuration.
964 files="${files} config/nm-empty.h"
965 links="${links} nm.h"
967 # start-sanitize-gdbtk
969 # Make it possible to use the GUI without doing a full install
970 if test "${enable_gdbtk}" = "yes" -a ! -d gdbtcl2 ; then
971 if test "$LN_S" = "ln -s" -a ! -f gdbtcl2 ; then
972 echo linking $srcdir/gdbtcl2 to gdbtcl2
973 $LN_S $srcdir/gdbtcl2 gdbtcl2
975 echo Warning: Unable to link $srcdir/gdbtcl2 to gdbtcl2. You will need to do a
976 echo " " make install before you are able to run the GUI.
981 AC_LINK_FILES($files, $links)
983 dnl Check for exe extension set on certain hosts (e.g. Win32)
986 AC_CONFIG_SUBDIRS($configdirs)
987 AC_OUTPUT(Makefile tui/Makefile .gdbinit:gdbinit.in,
989 dnl Autoconf doesn't provide a mechanism for modifying definitions
990 dnl provided by makefile fragments.
992 if test "${nativefile}" = ""; then
993 sed -e '/^NATDEPFILES[[ ]]*=[[ ]]*/s//# NATDEPFILES=/' \
994 < Makefile > Makefile.tem
995 mv -f Makefile.tem Makefile
999 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1000 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1001 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1002 mv -f Makefile.tmp Makefile
1005 case x$CONFIG_HEADERS in
1006 xconfig.h:config.in)
1011 gdb_host_cpu=$gdb_host_cpu
1012 gdb_target_cpu=$gdb_target_cpu
1013 nativefile=$nativefile