X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=m4%2Fpandora_have_libmemcached.m4;h=a281306b91a17178075977fceb0bdd64d36a8131;hb=94f5464bff8ac8f66b603ccccc0d4cb59ecddd01;hp=e8b3e3ef7e677255528c22754bf26f7cb28cccde;hpb=ab2154ec9b3c87fbd414176aeed0ccfebbb8bf2b;p=m6w6%2Flibmemcached diff --git a/m4/pandora_have_libmemcached.m4 b/m4/pandora_have_libmemcached.m4 index e8b3e3ef..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. @@ -24,14 +24,19 @@ AC_DEFUN([_PANDORA_SEARCH_LIBMEMCACHED],[ memcached_dump_func *df; memcached_lib_version(); ]) + ],[ + ac_cv_libmemcached="no" + ]) + + AS_IF([test "x$ac_enable_libmemcached" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(memcachedprotocol,,[ #include ],[ - struct memcached_protocol_st *protocol_handle= NULL; + struct memcached_protocol_st *protocol_handle; protocol_handle= memcached_protocol_create_instance(); ]) ],[ - ac_cv_libmemcached="no" + ac_cv_libmemcachedprotocol="no" ]) AC_CACHE_CHECK([if libmemcached has memcached_server_fn], @@ -42,21 +47,60 @@ 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]) ]) +]) - AM_CONDITIONAL(HAVE_LIBMEMCACHED, [test "x${ac_cv_libmemcached}" = "xyes"]) +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"]) ]) 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}])) +])