autoconf check for a specific function signature
If you need to check for a function with a specific signature (if the signature changed without any other way of detecting it), you can add the following configure.ac check:
AC_MSG_CHECKING([for espeak_TextToPhonemes])
AC_LANG_PUSH(C++)
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include "espeak/speak_lib.h"]],
[[const char * (*ptr)(const void **, int, int);]
[ptr = espeak_TextToPhonemes;]])
],[
AC_MSG_RESULT([yes])
AC_DEFINE(HAVE_ESPEAK_TEXTTOPHONEMES, [], [Does eSpeak have espeak_TextToPhonemes])
],[
AC_MSG_RESULT([no])
])
AC_LANG_POP(C++)
This example uses espeak_TextToPhonemes
as an example. You will need to change the ptr
function pointer signature, the function name, the include and the HAVE_
define to match the function you are checking.
You can then use:
#if defined(HAVE_ESPEAK_TEXTTOPHONEMES)
// Use espeak_TextToPhonemes
#endif
in your code.
Written by Reece Dunn
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#