vlc | branch: master | Diego Elio Pettenò <[email protected]> | Sun Mar 15 10:49:39 2015 +0000| [358ae6ba605f524bc4b43e280c194bc42d9fa684] | committer: Rémi Denis-Courmont
build: create a macro to check for, and replace, possibly-inline functions. mingw (both 32 and 64) provides a number of functions that have no C linkage, but are only available as static inline. Define a macro that can check for the function declaration but acts like AC_REPLACE_FUNC. Use the new macro for asprintf/vasprintf (previously implemented in configure.ac directly). Signed-off-by: Diego Elio Pettenò <[email protected]> Signed-off-by: Rémi Denis-Courmont <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=358ae6ba605f524bc4b43e280c194bc42d9fa684 --- configure.ac | 16 ++-------------- m4/vlc.m4 | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/configure.ac b/configure.ac index a2e71e2..2c5af8e 100644 --- a/configure.ac +++ b/configure.ac @@ -562,20 +562,8 @@ AC_CHECK_FUNCS(fdatasync,, ]) dnl mingw64 implements those as static inline, not functions with C linkage -AC_LINK_IFELSE([ - AC_LANG_PROGRAM([#include <stdio.h>], [ - char *c; - if (asprintf(&c, "%s %d", "string", 1) == -1) - c = NULL; - ])],[AC_DEFINE([HAVE_ASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([asprintf])]) -AC_LINK_IFELSE([ - AC_LANG_PROGRAM([#include <stdio.h> - #include <stdarg.h>], [ - char *c; - va_list ap; - if (vasprintf(&c, "%s %d", ap) == -1) - c = NULL; - ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])]) +VLC_REPLACE_DECL([asprintf], [#include <stdio.h>]) +VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>]) dnl C11 static_assert() AC_MSG_CHECKING([for static_assert in assert.h]) diff --git a/m4/vlc.m4 b/m4/vlc.m4 index 1adec40..753967e 100644 --- a/m4/vlc.m4 +++ b/m4/vlc.m4 @@ -96,3 +96,23 @@ AC_DEFUN([VLC_LIBRARY_SUFFIX], [ AC_MSG_RESULT(${LIBEXT}) AC_DEFINE_UNQUOTED(LIBEXT, "${LIBEXT}", [Dynamic object extension]) ]) + +dnl =========================================================================== +dnl Custom macros for checking functions with inline fallback, for mingw32/64 + +dnl VLC_REPLACE_DECL([funcname], [include]) +AC_DEFUN([VLC_REPLACE_DECL], [ + AS_VAR_PUSHDEF([CACHEVAR], [vlc_cv_replace_decl] AS_TR_SH([$1])) + AC_CACHE_VAL(CACHEVAR, [ + AC_CHECK_DECL( + [$1], + AS_VAR_SET(CACHEVAR, [yes]), + AS_VAR_SET(CACHEVAR, [no]), + [$2] + ) + ]) + AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes], + [AC_DEFINE(AS_TR_CPP([HAVE_$1]), [1], [Define to 1 if you have $1 function])], + [AC_LIBOBJ([$1])]) + AS_VAR_POPDEF([CACHEVAR]) +]) _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
