Fix OSX based compile issue.
[awesomized/libmemcached] / configure.ac
index caec223bca9a56c963790b3144dde7c8ba99a8f1..83177bcab6877a08b8460b3f2d4fb71684789ef3 100644 (file)
@@ -7,7 +7,7 @@
 # Use and distribution licensed under the BSD license.  See
 # the COPYING file in this directory for full text.
 
 # Use and distribution licensed under the BSD license.  See
 # the COPYING file in this directory for full text.
 
-AC_INIT([libmemcached],[1.0.4],[http://libmemcached.org/])
+AC_INIT([libmemcached],[1.0.10],[http://libmemcached.org/])
 
 AC_CONFIG_AUX_DIR(config)
 
 
 AC_CONFIG_AUX_DIR(config)
 
@@ -33,7 +33,7 @@ AC_CHECK_PROGS([LEX], ['flex'], [:])
 #shared library versioning
 MEMCACHED_UTIL_LIBRARY_VERSION=2:0:0
 MEMCACHED_PROTOCAL_LIBRARY_VERSION=0:0:0
 #shared library versioning
 MEMCACHED_UTIL_LIBRARY_VERSION=2:0:0
 MEMCACHED_PROTOCAL_LIBRARY_VERSION=0:0:0
-MEMCACHED_LIBRARY_VERSION=9:0:0
+MEMCACHED_LIBRARY_VERSION=11:0:0
 #                         | | |
 #                  +------+ | +---+
 #                  |        |     |
 #                         | | |
 #                  +------+ | +---+
 #                  |        |     |
@@ -49,7 +49,7 @@ AC_SUBST(MEMCACHED_PROTOCAL_LIBRARY_VERSION)
 AC_SUBST(MEMCACHED_LIBRARY_VERSION)
 
 
 AC_SUBST(MEMCACHED_LIBRARY_VERSION)
 
 
-HASHKIT_LIBRARY_VERSION=1:0:0
+HASHKIT_LIBRARY_VERSION=2:0:0
 AC_SUBST(HASHKIT_LIBRARY_VERSION)
 
 LT_PREREQ([2.2])
 AC_SUBST(HASHKIT_LIBRARY_VERSION)
 
 LT_PREREQ([2.2])
@@ -63,13 +63,16 @@ AX_CXX_HEADER_STDCXX_98
     AC_MSG_ERROR([Your system lacks a new enough C++ compiler])
   fi
 
     AC_MSG_ERROR([Your system lacks a new enough C++ compiler])
   fi
 
-m4_include([m4/memcached.m4])
+# Adding support for libtest
+m4_include([libtest/yatl.m4])
+
 m4_include([m4/memcached_sasl.m4])
 m4_include([m4/gearmand.m4])
 m4_include([m4/libgearman.m4])
 
 AM_CONDITIONAL(BUILDING_LIBMEMCACHED, true)
 AM_CONDITIONAL(HAVE_LIBMEMCACHED, false)
 m4_include([m4/memcached_sasl.m4])
 m4_include([m4/gearmand.m4])
 m4_include([m4/libgearman.m4])
 
 AM_CONDITIONAL(BUILDING_LIBMEMCACHED, true)
 AM_CONDITIONAL(HAVE_LIBMEMCACHED, false)
+AM_CONDITIONAL(HAVE_LIBDRIZZLE, false)
 AC_DEFINE([HAVE_LIBMEMCACHED], [1], [Enables libmemcached Support])
 
 AM_CONDITIONAL(BUILDING_GEARMAN, false)
 AC_DEFINE([HAVE_LIBMEMCACHED], [1], [Enables libmemcached Support])
 
 AM_CONDITIONAL(BUILDING_GEARMAN, false)
@@ -77,17 +80,7 @@ AM_CONDITIONAL(BUILDING_GEARMAN, false)
 AC_SEARCH_LIBS(getopt_long, gnugetopt)
 AC_SEARCH_LIBS(gethostbyname, nsl)
 
 AC_SEARCH_LIBS(getopt_long, gnugetopt)
 AC_SEARCH_LIBS(gethostbyname, nsl)
 
-case "$target_os" in
-  *linux*)
-       AS_IF([test "x$GCC" = "xyes"],
-             [
-              LDFLAGS="$LDFLAGS -z relro -z now"
-              ])
-   ;;
-   esac
-
 dnl Specialty checks
 dnl Specialty checks
-AX_PTHREAD
 AX_CXX_CINTTYPES
 CONFIG_EXTRA
 DETECT_BYTEORDER
 AX_CXX_CINTTYPES
 CONFIG_EXTRA
 DETECT_BYTEORDER
@@ -100,12 +93,14 @@ PROTOCOL_BINARY_TEST
 ENABLE_DEPRECATED
 
 AC_CHECK_FUNCS([alarm])
 ENABLE_DEPRECATED
 
 AC_CHECK_FUNCS([alarm])
+AC_CHECK_FUNCS([clock_gettime])
 AC_CHECK_FUNCS([dup2])
 AC_CHECK_FUNCS([getline])
 AC_CHECK_FUNCS([gettimeofday])
 AC_CHECK_FUNCS([memchr])
 AC_CHECK_FUNCS([memmove])
 AC_CHECK_FUNCS([memset])
 AC_CHECK_FUNCS([dup2])
 AC_CHECK_FUNCS([getline])
 AC_CHECK_FUNCS([gettimeofday])
 AC_CHECK_FUNCS([memchr])
 AC_CHECK_FUNCS([memmove])
 AC_CHECK_FUNCS([memset])
+AC_CHECK_FUNCS([pipe2])
 AC_CHECK_FUNCS([select])
 AC_CHECK_FUNCS([setenv])
 AC_CHECK_FUNCS([socket])
 AC_CHECK_FUNCS([select])
 AC_CHECK_FUNCS([setenv])
 AC_CHECK_FUNCS([socket])
@@ -119,19 +114,36 @@ AC_CHECK_FUNCS([strtoul])
 AC_CHECK_FUNCS([strtoull])
 
 AC_CHECK_HEADERS([arpa/inet.h])
 AC_CHECK_FUNCS([strtoull])
 
 AC_CHECK_HEADERS([arpa/inet.h])
+AC_CHECK_HEADERS([errno.h])
+AC_CHECK_HEADERS([execinfo.h])
 AC_CHECK_HEADERS([fcntl.h])
 AC_CHECK_HEADERS([fcntl.h])
+AC_CHECK_HEADERS([inttypes.h])
 AC_CHECK_HEADERS([libintl.h])
 AC_CHECK_HEADERS([limits.h])
 AC_CHECK_HEADERS([malloc.h])
 AC_CHECK_HEADERS([libintl.h])
 AC_CHECK_HEADERS([limits.h])
 AC_CHECK_HEADERS([malloc.h])
+AC_CHECK_HEADERS([math.h])
 AC_CHECK_HEADERS([netdb.h])
 AC_CHECK_HEADERS([netinet/in.h])
 AC_CHECK_HEADERS([netdb.h])
 AC_CHECK_HEADERS([netinet/in.h])
+AC_CHECK_HEADERS([pthread.h])
+AC_CHECK_HEADERS([stdarg.h])
 AC_CHECK_HEADERS([stddef.h])
 AC_CHECK_HEADERS([stddef.h])
+AC_CHECK_HEADERS([stdlib.h])
 AC_CHECK_HEADERS([sys/time.h])
 AC_CHECK_HEADERS([sys/time.h])
-AC_CHECK_HEADERS([execinfo.h])
+AC_CHECK_HEADERS([unistd.h])
 AC_CHECK_HEADERS([cxxabi.h], 
                  AC_DEFINE([HAVE_CXXABI_H], [1], [Have cxxabi.h]),
                  AC_DEFINE([HAVE_CXXABI_H], [0], [Have cxxabi.h]))
 
 AC_CHECK_HEADERS([cxxabi.h], 
                  AC_DEFINE([HAVE_CXXABI_H], [1], [Have cxxabi.h]),
                  AC_DEFINE([HAVE_CXXABI_H], [0], [Have cxxabi.h]))
 
+AC_CHECK_HEADERS([sys/sysctl.h])
+
+AC_CHECK_HEADER(umem.h, [
+   AC_DEFINE([HAVE_UMEM_H], 1,
+         [Define this if you have umem.h])
+   build_cache=no
+], [build_cache=yes])
+
+AM_CONDITIONAL([BUILD_CACHE], [test "x$build_cache" = "xyes"])
+
 AX_COMPILER_VENDOR
 
 AC_FUNC_ALLOCA
 AX_COMPILER_VENDOR
 
 AC_FUNC_ALLOCA
@@ -161,7 +173,7 @@ AC_C_RESTRICT
 
 AX_CXX_GCC_ABI_DEMANGLE
 
 
 AX_CXX_GCC_ABI_DEMANGLE
 
-AX_SASL_OPTION
+AX_SASL_CHECK
 
 dnl
 dnl The sasl functions should only be visible if we build with sasl support
 
 dnl
 dnl The sasl functions should only be visible if we build with sasl support
@@ -193,6 +205,7 @@ AC_CHECK_LIB([rt], [clock_gettime],
               ])
 
 AC_CHECK_LIB([m], [floor])
               ])
 
 AC_CHECK_LIB([m], [floor])
+AC_CHECK_FUNCS([sigignore])
 
 AC_CHECK_HEADERS([atomic.h])
 AS_IF([test "x$ac_cv_header_atomic_h" = "xyes"],[
 
 AC_CHECK_HEADERS([atomic.h])
 AS_IF([test "x$ac_cv_header_atomic_h" = "xyes"],[
@@ -205,6 +218,7 @@ AS_IF([test "x$ac_cv_header_atomic_h" = "xyes"],[
 
 AC_DEFINE([HAVE_LIBDRIZZLE], [0], [Support for libdrizzle])
 AC_DEFINE([HAVE_DRIZZLED_BINARY], [0], [Support for DrizzleD])
 
 AC_DEFINE([HAVE_LIBDRIZZLE], [0], [Support for libdrizzle])
 AC_DEFINE([HAVE_DRIZZLED_BINARY], [0], [Support for DrizzleD])
+AC_DEFINE([DRIZZLED_BINARY], [0], [Support for DrizzleD])
 AC_DEFINE([GEARMAND_BLOBSLAP_WORKER], [0], [Support for Gearman Blobslap worker])
 AC_DEFINE([HAVE_LIBPQ], [0], [Support for Postgres])
 AC_DEFINE([HAVE_LIBCURL], [0], [Support for libcurl])
 AC_DEFINE([GEARMAND_BLOBSLAP_WORKER], [0], [Support for Gearman Blobslap worker])
 AC_DEFINE([HAVE_LIBPQ], [0], [Support for Postgres])
 AC_DEFINE([HAVE_LIBCURL], [0], [Support for libcurl])
@@ -212,6 +226,20 @@ AC_DEFINE([HAVE_LIBCURL], [0], [Support for libcurl])
 AC_DEFINE([HAVE_MEMCACHED_LIGHT_BINARY], [1], [Support for memcached_light])
 AC_DEFINE([MEMCACHED_LIGHT_BINARY], ["example/memcached_light"], [Support for memcached_light])
 
 AC_DEFINE([HAVE_MEMCACHED_LIGHT_BINARY], [1], [Support for memcached_light])
 AC_DEFINE([MEMCACHED_LIGHT_BINARY], ["example/memcached_light"], [Support for memcached_light])
 
+dnl Check for the requirements for running memcached with less privileges
+dnl than the default privilege set. On Solaris we need setppriv and priv.h
+dnl If you want to add support for other platforms you should check for
+dnl your requirements, define HAVE_DROP_PRIVILEGES, and make sure you add
+dnl the source file containing the implementation into memcached_SOURCE
+dnl in Makefile.am
+AC_CHECK_FUNCS(setppriv, [
+   AC_CHECK_HEADER(priv.h, [
+      AC_DEFINE([HAVE_DROP_PRIVILEGES], 1,
+         [Define this if you have an implementation of drop_privileges()])
+      build_solaris_privs=yes
+   ], [])
+],[])
+
 AC_CHECK_HEADERS_ONCE(winsock2.h poll.h sys/wait.h fnmatch.h)
 AM_CONDITIONAL(BUILD_POLL, test "x$ac_cv_header_poll_h" = "xno")
 AM_CONDITIONAL(BUILD_WIN32_WRAPPERS, test "x$ac_cv_header_winsock2_h" = "xyes")
 AC_CHECK_HEADERS_ONCE(winsock2.h poll.h sys/wait.h fnmatch.h)
 AM_CONDITIONAL(BUILD_POLL, test "x$ac_cv_header_poll_h" = "xno")
 AM_CONDITIONAL(BUILD_WIN32_WRAPPERS, test "x$ac_cv_header_winsock2_h" = "xyes")
@@ -231,6 +259,39 @@ AX_CHECK_LIBRARY([LIBEVENT], [event.h], [event],
                   ])
 AM_CONDITIONAL(HAVE_LIBEVENT, test "x${ax_cv_have_LIBEVENT}" = "xyes")
 
                   ])
 AM_CONDITIONAL(HAVE_LIBEVENT, test "x${ax_cv_have_LIBEVENT}" = "xyes")
 
+dnl Check if we're a little-endian or a big-endian system, needed by hash code
+AC_DEFUN([AC_C_ENDIAN],
+[AC_CACHE_CHECK(for endianness, ac_cv_c_endian,
+[
+  AC_RUN_IFELSE(
+    [AC_LANG_PROGRAM([], [dnl
+        long val = 1;
+        char *c = (char *) &val;
+        exit(*c == 1);
+    ])
+  ],[
+    ac_cv_c_endian=big
+  ],[
+    ac_cv_c_endian=little
+  ])
+])
+if test $ac_cv_c_endian = big; then
+  AC_DEFINE(ENDIAN_BIG, 1, [machine is bigendian])
+fi
+if test $ac_cv_c_endian = little; then
+  AC_DEFINE(ENDIAN_LITTLE, 1, [machine is littleendian])
+fi
+])
+
+AX_CHECK_SOCK_CLOEXEC([AC_DEFINE([HAVE_SOCK_CLOEXEC], [1], [Check for SOCK_CLOEXEC.])],
+                       [AC_DEFINE([HAVE_SOCK_CLOEXEC], [0], [Check for SOCK_CLOEXEC.])])
+
+AX_PTHREAD(, [AC_MSG_ERROR(could not find libpthread)])
+
+AX_HARDEN_COMPILER_FLAGS
+
+AX_DEBUG
+
 AC_CONFIG_FILES([
   Makefile
   docs/conf.py
 AC_CONFIG_FILES([
   Makefile
   docs/conf.py
@@ -241,7 +302,6 @@ AC_CONFIG_FILES([
   support/libmemcached.pc
   support/libmemcached.spec
   support/libmemcached-fc.spec
   support/libmemcached.pc
   support/libmemcached.spec
   support/libmemcached-fc.spec
-  libtest/version.h
   ])
 AC_OUTPUT
 
   ])
 AC_OUTPUT