Updated pandora-build.
[awesomized/libmemcached] / m4 / pandora_have_libmemcached.m4
index d4bebf53eb508b29ac3ea61e1ce119e3f4372cbb..e8b3e3ef7e677255528c22754bf26f7cb28cccde 100644 (file)
@@ -10,18 +10,44 @@ AC_DEFUN([_PANDORA_SEARCH_LIBMEMCACHED],[
   dnl  Check for libmemcached
   dnl --------------------------------------------------------------------
 
-  AC_LIB_HAVE_LINKFLAGS(memcached,,[
-    #include <libmemcached/memcached.h>
-  ], [
-    memcached_st memc;
-    memcached_dump_func *df;
-    memcached_version();
+  AC_ARG_ENABLE([libmemcached],
+    [AS_HELP_STRING([--disable-libmemcached],
+      [Build with libmemcached support @<:@default=on@:>@])],
+    [ac_enable_libmemcached="$enableval"],
+    [ac_enable_libmemcached="yes"])
+
+  AS_IF([test "x$ac_enable_libmemcached" = "xyes"],[
+    AC_LIB_HAVE_LINKFLAGS(memcached,,[
+      #include <libmemcached/memcached.h>
+    ],[
+      memcached_st memc;
+      memcached_dump_func *df;
+      memcached_lib_version();
+    ])
+    AC_LIB_HAVE_LINKFLAGS(memcachedprotocol,,[
+      #include <libmemcached/protocol_handler.h>
+    ],[
+      struct memcached_protocol_st *protocol_handle= NULL;
+      protocol_handle= memcached_protocol_create_instance();
+    ])
+  ],[
+    ac_cv_libmemcached="no"
   ])
   
+  AC_CACHE_CHECK([if libmemcached has memcached_server_fn],
+    [pandora_cv_libmemcached_server_fn],
+    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <libmemcached/memcached.h>
+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"])
   
-  AS_IF([test "x${ac_cv_libmemcached}" = "xyes"], [ PANDORA_WITH_MEMCACHED ])
-
 ])
 
 AC_DEFUN([PANDORA_HAVE_LIBMEMCACHED],[
@@ -33,3 +59,4 @@ AC_DEFUN([PANDORA_REQUIRE_LIBMEMCACHED],[
   AS_IF([test x$ac_cv_libmemcached = xno],
       AC_MSG_ERROR([libmemcached is required for ${PACKAGE}]))
 ])
+