1AC_DEFUN([AC_FL_RDYNAMIC], [
2  LDFLAGS_saved="$LDFLAGS"
3  LDFLAGS="$LDFLAGS -rdynamic"
4
5  AC_MSG_CHECKING([whether $CC supports -rdynamic])
6  AC_TRY_LINK([], [], [ac_cv_rdynamic=yes], [ac_cv_rdynamic=no])
7  AC_MSG_RESULT([$ac_cv_rdynamic])
8
9  AC_LANG_PUSH(C++)
10    AC_MSG_CHECKING([whether $CXX supports -rdynamic])
11    AC_TRY_LINK([], [], [ac_cv_rdynamic=yes], [ac_cv_rdynamic=no])
12    AC_MSG_RESULT([$ac_cv_rdynamic])
13  AC_LANG_POP(C++)
14
15  LDFLAGS="$LDFLAGS_saved"
16])
17
18
19AC_DEFUN([AC_FL_DEBUG], [
20  AC_REQUIRE([AC_FL_OPT])
21  AC_ARG_ENABLE([debug],
22                AC_HELP_STRING([--enable-debug], [turn on debugging]),
23                [case "${enableval}" in
24                  yes|no) ac_cv_debug="${enableval}" ;;
25                  *)      AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;;
26                 esac],
27                 [ac_cv_debug=no])
28
29  AC_ARG_VAR([BFD_CFLAGS], [C compiler flags for libbfd])
30  AC_ARG_VAR([BFD_LIBS], [linker flags for libbfd])
31  AC_ARG_WITH([bfd],
32              AC_HELP_STRING([--with-bfd@<:@=DIR@:>@],
33                             [search for libbfd in DIR/include and DIR/lib @<:@mingw32 only@:>@]),
34              [ac_cv_want_bfd="$withval"],
35              [ac_cv_want_bfd=yes])
36
37  if test "x$ac_cv_debug" = "xyes" && test "x$ac_cv_want_bfd" != "xno" && \
38     test "x$target_mingw32" = "xyes"; then
39      if test "x$ac_cv_want_bfd" != "xyes"; then # set -I and -L switches
40          bfd_default_cflags="-I${ac_cv_want_bfd}/include"
41          bfd_default_libs="-L${ac_cv_want_bfd}/lib"
42      fi
43      # don't override the user-specified vars
44      BFD_CFLAGS="${BFD_CFLAGS:-$bfd_default_cflags}"
45      BFD_LIBS="${BFD_LIBS:-$bfd_default_libs}"
46      ac_cv_want_bfd="yes"
47
48      CPPFLAGS_saved="$CPPFLAGS"
49      LDFLAGS_saved="$LDFLAGS"
50      CPPFLAGS="$CPPFLAGS $BFD_CFLAGS"
51      LDFLAGS="$LDFLAGS $BFD_LIBS"
52
53      AC_CHECK_HEADER([bfd.h], [ac_cv_have_bfd="yes"], [ac_cv_have_bfd="no"])
54      if test "x$ac_cv_have_bfd" = "xyes"; then
55          bfd_other_libs="-liberty -lpsapi -limagehlp"
56          AC_CHECK_LIB([bfd], [bfd_set_format], [ac_cv_have_bfd="yes"], [ac_cv_have_bfd="no"], [$bfd_other_libs])
57      fi
58      CPPFLAGS="$CPPFLAGS_saved"
59      LDFLAGS="$LDFLAGS_saved"
60      if test "x$ac_cv_have_bfd" = "xyes"; then
61          BFD_LIBS="$BFD_LIBS -lbfd $bfd_other_libs"
62      fi
63  fi
64
65  if test "x$ac_cv_debug" = "xyes"; then
66      AC_MSG_CHECKING([for debug info flag])
67      if test "x$GXX" = "xyes"; then
68          if test "x$target_mingw32" = "xyes"; then
69              gflag="-gstabs"
70          else
71              gflag="-ggdb3"
72          fi
73      else
74          gflag="-g"
75      fi
76      AC_MSG_RESULT([$gflag])
77      DEBUG_CFLAGS="-O0 -fno-inline-functions -fno-omit-frame-pointer $gflag -Wall"
78
79      AC_FL_RDYNAMIC
80      if test "x$ac_cv_rdynamic" = "xyes"; then
81          RDYNAMIC=-rdynamic
82      fi
83
84      CXXFLAGS=""
85      CFLAGS="$CXXFLAGS"
86      AC_MSG_NOTICE([debugging enabled; overriding CXXFLAGS])
87
88      if test "x$target_darwin" = "xyes"; then
89          ac_cv_compat_stack=yes
90	  AC_DEFINE([HAVE_DBG_STACK], 1, [Define to 1 if we have dbg::stack])
91      elif test "x$target_mingw32" = "xyes" && test "x$ac_cv_have_bfd" = "xyes"; then
92          ac_cv_compat_stack=yes
93	  AC_DEFINE([HAVE_DBG_STACK], 1, [Define to 1 if we have dbg::stack])
94      else
95          ac_cv_compat_stack=no
96	  AC_DEFINE([HAVE_DBG_STACK], 0, [Define to 0 if not using dbg::stack])
97      fi
98  fi
99  AM_CONDITIONAL([ENABLE_DEBUG], [test "x$ac_cv_debug" = "xyes"])
100  AC_SUBST([DEBUG_CFLAGS])
101  AC_SUBST([RDYNAMIC])
102
103  AM_CONDITIONAL([COMPAT_STACK], [test "x$ac_cv_compat_stack" = "xyes"])
104])
105