1dnl
2dnl Check for compiler mechanism to show functions in debugging
3dnl copied from an Ali patch floating on the internet
4dnl
5AC_DEFUN([AG_GST_CHECK_FUNCTION],[
6  dnl #1: __PRETTY_FUNCTION__
7  AC_MSG_CHECKING(whether $CC implements __PRETTY_FUNCTION__)
8  AC_CACHE_VAL(gst_cv_have_pretty_function,[
9    AC_TRY_LINK([#include <stdio.h>],
10                [printf("%s", __PRETTY_FUNCTION__);],
11                gst_cv_have_pretty_function=yes,
12                gst_cv_have_pretty_function=no)
13  ])
14  AC_MSG_RESULT($gst_cv_have_pretty_function)
15  if test "$gst_cv_have_pretty_function" = yes; then
16    AC_DEFINE(HAVE_PRETTY_FUNCTION, 1,
17              [defined if the compiler implements __PRETTY_FUNCTION__])
18  fi
19
20dnl #2: __FUNCTION__
21  AC_MSG_CHECKING(whether $CC implements __FUNCTION__)
22  AC_CACHE_VAL(gst_cv_have_function,[
23    AC_TRY_LINK([#include <stdio.h>],
24                [printf("%s", __FUNCTION__);],
25                gst_cv_have_function=yes,
26                gst_cv_have_function=no)
27  ])
28  AC_MSG_RESULT($gst_cv_have_function)
29  if test "$gst_cv_have_function" = yes; then
30    AC_DEFINE(HAVE_FUNCTION, 1,
31              [defined if the compiler implements __FUNCTION__])
32  fi
33
34dnl #3: __func__
35  AC_MSG_CHECKING(whether $CC implements __func__)
36  AC_CACHE_VAL(gst_cv_have_func,[
37    AC_TRY_LINK([#include <stdio.h>],
38                [printf("%s", __func__);],
39                gst_cv_have_func=yes,
40                gst_cv_have_func=no)
41  ])
42  AC_MSG_RESULT($gst_cv_have_func)
43  if test "$gst_cv_have_func" = yes; then
44    AC_DEFINE(HAVE_FUNC, 1,
45              [defined if the compiler implements __func__])
46  fi
47
48dnl now define FUNCTION to whatever works, and fallback to ""
49  if test "$gst_cv_have_pretty_function" = yes; then
50    function=__PRETTY_FUNCTION__
51  else
52    if test "$gst_cv_have_function" = yes; then
53      function=__FUNCTION__
54    else
55      if test "$gst_cv_have_func" = yes; then
56        function=__func__
57      else
58        function=\"\"
59      fi
60    fi
61  fi
62  AC_DEFINE_UNQUOTED(GST_FUNCTION, $function, [macro to use to show function name])
63])
64