Blame common/m4/gst-function.m4

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