cmake
[awesomized/libmemcached] / support / ax_libmemcached.m4
diff --git a/support/ax_libmemcached.m4 b/support/ax_libmemcached.m4
new file mode 100644 (file)
index 0000000..95e5c9f
--- /dev/null
@@ -0,0 +1,138 @@
+# ===========================================================================
+#      https//libmemcached.org/
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_LIBMEMCACHED, AX_LIBMEMCACHED_UTIL, AX_ENABLE_LIBMEMCACHED
+#
+# DESCRIPTION
+#
+#   Checked for installation of libmemcached
+#
+#  AC_SUBST(LIBMEMCACHED_CFLAGS) 
+#  AC_SUBST(LIBMEMCACHED_LDFLAGS)
+#  AC_SUBST(LIBMEMCACHED_UTIL_LDFLAGS)
+#
+#   NOTE: Implementation uses AC_CHECK_HEADER.
+#
+# LICENSE
+#
+#  Copyright (C) 2012 Brian Aker
+#  All rights reserved.
+#  
+#  Redistribution and use in source and binary forms, with or without
+#  modification, are permitted provided that the following conditions are
+#  met:
+#  
+#      * Redistributions of source code must retain the above copyright
+#  notice, this list of conditions and the following disclaimer.
+#  
+#      * Redistributions in binary form must reproduce the above
+#  copyright notice, this list of conditions and the following disclaimer
+#  in the documentation and/or other materials provided with the
+#  distribution.
+#  
+#      * The names of its contributors may not be used to endorse or
+#  promote products derived from this software without specific prior
+#  written permission.
+#  
+#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+#  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+#  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+#  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#serial 1
+
+AC_DEFUN([AX_LIBMEMCACHED], [
+    AC_CHECK_HEADER([libmemcached-1.0/memcached.h], [
+      AC_CACHE_CHECK([check for -lmemcached], [ax_cv_libmemcached], [
+        AC_LANG_PUSH([C])
+        AX_SAVE_FLAGS
+        LIBS="-lmemcached $LIBS"
+        AC_RUN_IFELSE([
+          AC_LANG_PROGRAM([#include <libmemcached-1.0/memcached.h>], [
+            memcached_st *memc;
+            memc= memcached(NULL, 0);
+            memcached_free(memc);
+            ])],
+          [ax_cv_libmemcached=yes],
+          [ax_cv_libmemcached=no],
+          [AC_MSG_WARN([test program execution failed])])
+        AC_LANG_POP
+        AX_RESTORE_FLAGS
+        ])
+      ])
+
+  AS_IF([test "x$ax_cv_libmemcached" = "xyes"], [
+      AC_DEFINE([HAVE_LIBMEMCACHED_MEMCACHED_H], [1], [Have libmemcached-1.0/memcached.h])
+      ],[
+      AC_DEFINE([HAVE_LIBMEMCACHED_MEMCACHED_H], [0], [Have libmemcached-1.0/memcached.h])
+      ])
+  ])
+
+  AC_DEFUN([AX_LIBMEMCACHED_UTIL], [
+      AC_REQUIRE([AX_LIBMEMCACHED])
+      AS_IF([test "$ax_cv_libmemcached" = yes], [
+        AC_CHECK_HEADER([libmemcachedutil-1.0/util.h], [
+          AC_CACHE_CHECK([check for -lmemcachedutil], [ax_cv_libmemcached_util], [
+            AX_SAVE_FLAGS
+            AC_LANG_PUSH([C])
+            LIBS="-lmemcachedutil -lmemcached $LIBS"
+            AC_RUN_IFELSE([
+              AC_LANG_PROGRAM([#include <libmemcachedutil-1.0/util.h>], [
+                memcached_pool_st *memc_pool= memcached_pool_create(NULL, 0, 3);
+                memcached_pool_destroy(memc_pool);
+                ])],
+              [ax_cv_libmemcached_util=yes],
+              [ax_cv_libmemcached_util=no],
+              [AC_MSG_WARN([test program execution failed])])
+            AC_LANG_POP
+            AX_RESTORE_FLAGS
+            ])
+          ])
+        ])
+
+      AS_IF([test "x$ax_cv_libmemcached_util" = "xyes"], [
+        AC_DEFINE([HAVE_LIBMEMCACHED_UTIL_H], [1], [Have libmemcachedutil-1.0/util.h])
+        ],[
+        AC_DEFINE([HAVE_LIBMEMCACHED_UTIL_H], [0], [Have libmemcachedutil-1.0/util.h])
+        ])
+      ])
+
+AC_DEFUN([_ENABLE_LIBMEMCACHED], [
+         AC_REQUIRE([AX_LIBMEMCACHED_UTIL])
+         AC_ARG_ENABLE([libmemcached],
+                       [AS_HELP_STRING([--disable-libmemcached],
+                                       [Build with libmemcached support @<:@default=on@:>@])],
+                       [ax_enable_libmemcached="$enableval"],
+                       [ax_enable_libmemcached="yes"])
+
+         AS_IF([test "x$ax_cv_libmemcached" != "xyes"], [
+               ax_enable_libmemcached="not found"
+               ])
+
+         AS_IF([test "x$ax_enable_libmemcached" = "xyes"], [
+               AC_DEFINE([HAVE_LIBMEMCACHED], [1], [Enable libmemcached support])
+               LIBMEMCACHED_CFLAGS=
+               AC_SUBST([LIBMEMCACHED_CFLAGS])
+               LIBMEMCACHED_LDFLAGS="-lmemcached"
+               AC_SUBST([LIBMEMCACHED_LDFLAGS])
+               AS_IF([test "x$ax_cv_libmemcached_util" = "xyes"], [
+                     LIBMEMCACHED_UTIL_LDFLAGS="-lmemcached -lmemcachedutil"
+                     AC_SUBST([LIBMEMCACHED_UTIL_LDFLAGS])
+                     ])
+               ],[
+               AC_DEFINE([HAVE_LIBMEMCACHED], [0], [Enable libmemcached support])
+               ])
+         AM_CONDITIONAL(HAVE_LIBMEMCACHED, test "x${ax_enable_libmemcached}" = "xyes")
+         ])
+
+AC_DEFUN([AX_ENABLE_LIBMEMCACHED], [ AC_REQUIRE([_ENABLE_LIBMEMCACHED]) ])