--- /dev/null
+dnl
+dnl Check for compiler mechanism to show functions in debugging
+dnl copied from an Ali patch floating on the internet
+dnl
+AC_DEFUN([AG_GST_CHECK_FUNCTION],[
+ dnl #1: __PRETTY_FUNCTION__
+ AC_MSG_CHECKING(whether $CC implements __PRETTY_FUNCTION__)
+ AC_CACHE_VAL(gst_cv_have_pretty_function,[
+ AC_TRY_LINK([#include <stdio.h>],
+ [printf("%s", __PRETTY_FUNCTION__);],
+ gst_cv_have_pretty_function=yes,
+ gst_cv_have_pretty_function=no)
+ ])
+ AC_MSG_RESULT($gst_cv_have_pretty_function)
+ if test "$gst_cv_have_pretty_function" = yes; then
+ AC_DEFINE(HAVE_PRETTY_FUNCTION, 1,
+ [defined if the compiler implements __PRETTY_FUNCTION__])
+ fi
+
+dnl #2: __FUNCTION__
+ AC_MSG_CHECKING(whether $CC implements __FUNCTION__)
+ AC_CACHE_VAL(gst_cv_have_function,[
+ AC_TRY_LINK([#include <stdio.h>],
+ [printf("%s", __FUNCTION__);],
+ gst_cv_have_function=yes,
+ gst_cv_have_function=no)
+ ])
+ AC_MSG_RESULT($gst_cv_have_function)
+ if test "$gst_cv_have_function" = yes; then
+ AC_DEFINE(HAVE_FUNCTION, 1,
+ [defined if the compiler implements __FUNCTION__])
+ fi
+
+dnl #3: __func__
+ AC_MSG_CHECKING(whether $CC implements __func__)
+ AC_CACHE_VAL(gst_cv_have_func,[
+ AC_TRY_LINK([#include <stdio.h>],
+ [printf("%s", __func__);],
+ gst_cv_have_func=yes,
+ gst_cv_have_func=no)
+ ])
+ AC_MSG_RESULT($gst_cv_have_func)
+ if test "$gst_cv_have_func" = yes; then
+ AC_DEFINE(HAVE_FUNC, 1,
+ [defined if the compiler implements __func__])
+ fi
+
+dnl now define FUNCTION to whatever works, and fallback to ""
+ if test "$gst_cv_have_pretty_function" = yes; then
+ function=__PRETTY_FUNCTION__
+ else
+ if test "$gst_cv_have_function" = yes; then
+ function=__FUNCTION__
+ else
+ if test "$gst_cv_have_func" = yes; then
+ function=__func__
+ else
+ function=\"\"
+ fi
+ fi
+ fi
+ AC_DEFINE_UNQUOTED(GST_FUNCTION, $function, [macro to use to show function name])
+])