X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=m4%2Fpandora_have_libmemcached.m4;h=a281306b91a17178075977fceb0bdd64d36a8131;hb=9835056a5f5240281d13505f1f6fb70085b257b9;hp=d1a44c60e04c5cbf512f16a72e673839d2384c9c;hpb=0f880f36260e5b71921b17425400c952b96606d1;p=m6w6%2Flibmemcached diff --git a/m4/pandora_have_libmemcached.m4 b/m4/pandora_have_libmemcached.m4 index d1a44c60..a281306b 100644 --- a/m4/pandora_have_libmemcached.m4 +++ b/m4/pandora_have_libmemcached.m4 @@ -1,5 +1,5 @@ -dnl Copyright (C) 2009 Sun Microsystems -dnl This file is free software; Sun Microsystems +dnl Copyright (C) 2009 Sun Microsystems, Inc. +dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -27,18 +27,80 @@ AC_DEFUN([_PANDORA_SEARCH_LIBMEMCACHED],[ ],[ ac_cv_libmemcached="no" ]) + + AS_IF([test "x$ac_enable_libmemcached" = "xyes"],[ + AC_LIB_HAVE_LINKFLAGS(memcachedprotocol,,[ + #include + ],[ + struct memcached_protocol_st *protocol_handle; + protocol_handle= memcached_protocol_create_instance(); + ]) + ],[ + ac_cv_libmemcachedprotocol="no" + ]) - AM_CONDITIONAL(HAVE_LIBMEMCACHED, [test "x${ac_cv_libmemcached}" = "xyes"]) + AC_CACHE_CHECK([if libmemcached has memcached_server_fn], + [pandora_cv_libmemcached_server_fn], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include +memcached_server_fn callbacks[1]; + ]])], + [pandora_cv_libmemcached_server_fn=yes], + [pandora_cv_libmemcached_server_fn=no])]) + + AS_IF([test "x$pandora_cv_libmemcached_server_fn" = "xyes"],[ + AC_DEFINE([HAVE_MEMCACHED_SERVER_FN],[1],[If we have the new memcached_server_fn typedef]) + ]) +]) + +AC_DEFUN([_PANDORA_RECENT_LIBMEMCACHED],[ + + AC_CACHE_CHECK([if libmemcached is recent enough], + [pandora_cv_recent_libmemcached],[ + AS_IF([test "x${ac_cv_libmemcached}" = "xno"],[ + pandora_cv_recent_libmemcached=no + ],[ + AS_IF([test "x$1" != "x"],[ + pandora_need_libmemcached_version=`echo "$1" | perl -nle '/(\d+)\.(\d+)/; printf "%d%0.3d000", $[]1, $[]2 ;'` + AS_IF([test "x${pandora_need_libmemcached_version}" = "x0000000"],[ + pandora_cv_recent_libmemcached=yes + ],[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include + +#if !defined(LIBMEMCACHED_VERSION_HEX) || LIBMEMCACHED_VERSION_HEX < 0x]]${pandora_need_libmemcached_version}[[ +# error libmemcached too old! +#endif + ]],[[]]) + ],[ + pandora_cv_recent_libmemcached=yes + ],[ + pandora_cv_recent_libmemcached=no + ]) + ]) + ],[ + pandora_cv_recent_libmemcached=yes + ]) + ]) + ]) + + AM_CONDITIONAL(HAVE_LIBMEMCACHED,[test "x${ac_cv_libmemcached}" = "xyes" -a "x${pandora_cv_recent_libmemcached}" = "xyes"]) - AS_IF([test "x${ac_cv_libmemcached}" = "xyes"], [ PANDORA_WITH_MEMCACHED ]) ]) AC_DEFUN([PANDORA_HAVE_LIBMEMCACHED],[ AC_REQUIRE([_PANDORA_SEARCH_LIBMEMCACHED]) + _PANDORA_RECENT_LIBMEMCACHED($1) ]) AC_DEFUN([PANDORA_REQUIRE_LIBMEMCACHED],[ - AC_REQUIRE([PANDORA_HAVE_LIBMEMCACHED]) - AS_IF([test x$ac_cv_libmemcached = xno], + PANDORA_HAVE_LIBMEMCACHED($1) + AS_IF([test "x{$pandora_cv_recent_libmemcached}" = "xno"], AC_MSG_ERROR([libmemcached is required for ${PACKAGE}])) ]) + +AC_DEFUN([PANDORA_REQUIRE_LIBMEMCACHEDPROTOCOL],[ + PANDORA_HAVE_LIBMEMCACHED($1) + AS_IF([test x$ac_cv_libmemcachedprotocol = xno], + AC_MSG_ERROR([libmemcachedprotocol is required for ${PACKAGE}])) +])