2 # Copyright (C) 2011-2012 Data Differential, http://datadifferential.com/
3 # Copyright (C) 2006-2010 Brian Aker, Monty Taylor, Trond Norbye
6 # Use and distribution licensed under the BSD license. See
7 # the COPYING file in this directory for full text.
9 AC_INIT([libmemcached],[1.0.14],[http://libmemcached.org/])
10 AC_CONFIG_AUX_DIR([build-aux])
11 AC_CONFIG_MACRO_DIR([m4])
15 AC_USE_SYSTEM_EXTENSIONS
17 AM_INIT_AUTOMAKE([1.11 color-tests -Wno-portability subdir-objects foreign tar-ustar])
21 AC_CONFIG_HEADERS([config.h:config.in])dnl Keep filename to 8.3 for MS-DOS.
22 AC_CONFIG_SRCDIR([libmemcached/memcached.cc])
24 #shared library versioning
25 MEMCACHED_UTIL_LIBRARY_VERSION=2:0:0
26 MEMCACHED_PROTOCAL_LIBRARY_VERSION=0:0:0
27 MEMCACHED_LIBRARY_VERSION=11:0:0
31 # current:revision:age
33 # | | +- increment if interfaces have been added
34 # | | set to zero if interfaces have been removed or changed
35 # | +- increment if source code has changed
36 # | set to zero if current is incremented
37 # +- increment if interfaces have been added, removed or changed
38 AC_SUBST([MEMCACHED_UTIL_LIBRARY_VERSION])
39 AC_SUBST([MEMCACHED_PROTOCAL_LIBRARY_VERSION])
40 AC_SUBST([MEMCACHED_LIBRARY_VERSION])
42 AX_HEX_VERSION([LIBMEMCACHED],[$VERSION])
43 AX_HEX_VERSION([LIBHASHKIT],[1.0.0])
45 m4_include([libhashkit/include.m4])
55 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
57 AX_CXX_HEADER_STDCXX_98
58 AS_IF([ test "$ax_cv_cxx_stdcxx_98" = no ],[
59 AC_MSG_ERROR([Your system lacks a new enough C++ compiler])
62 AC_DEFUN([LIBMEMCACHED_PROTOCOL],
63 [AC_ARG_ENABLE([libmemcachedprotocol],
64 [AS_HELP_STRING([--enable-libmemcachedprotocol],
65 [Enable libmemcachedprotocol])],
66 [ax_enable_libmemcachedprotocol=yes],
67 [ax_enable_libmemcachedprotocol=no])
69 AM_CONDITIONAL([BUILD_LIBMEMCACHED_PROTOCOL],[test "$ax_enable_libmemcachedprotocol" = "yes"])
71 AC_MSG_CHECKING([for libmemcachedprotocol])
72 AC_MSG_RESULT([$ax_enable_libmemcachedprotocol])
76 # Adding support for libtest
77 m4_include([libtest/yatl.m4])
79 m4_include([m4/memcached_sasl.m4])
80 m4_include([m4/gearmand.m4])
81 m4_include([m4/libgearman.m4])
83 AM_CONDITIONAL([BUILDING_LIBMEMCACHED], [true])
84 AM_CONDITIONAL([HAVE_LIBMEMCACHED], [false])
85 AM_CONDITIONAL([HAVE_LIBDRIZZLE], [false])
86 AC_DEFINE([HAVE_LIBMEMCACHED], [1], [Enables libmemcached Support])
88 AM_CONDITIONAL([BUILDING_GEARMAN], [false])
102 # Checks for programs.
103 AC_CHECK_PROGS([LEX], ['flex'], [:])
104 AC_CHECK_PROGS([YACC], ['bison'], [:])
107 # Checks for libraries.
108 AC_SEARCH_LIBS(getopt_long, gnugetopt)
109 AC_SEARCH_LIBS(gethostbyname, nsl)
111 # Checks for header files.
112 AC_CHECK_HEADERS([arpa/inet.h])
113 AC_CHECK_HEADERS([errno.h])
114 AC_CHECK_HEADERS([dlfcn.h])
115 AC_CHECK_HEADERS([execinfo.h])
116 AC_CHECK_HEADERS([fcntl.h])
117 AC_CHECK_HEADERS([inttypes.h])
118 AC_CHECK_HEADERS([libintl.h])
119 AC_CHECK_HEADERS([limits.h])
120 AC_CHECK_HEADERS([math.h])
121 AC_CHECK_HEADERS([netdb.h])
122 AC_CHECK_HEADERS([netinet/in.h])
123 AC_CHECK_HEADERS([netinet/tcp.h])
124 AC_CHECK_HEADERS([pthread.h])
125 AC_CHECK_HEADERS([spawn.h])
126 AC_CHECK_HEADERS([stdarg.h])
127 AC_CHECK_HEADERS([stddef.h])
128 AC_CHECK_HEADERS([stdio.h])
129 AC_CHECK_HEADERS([stdlib.h])
130 AC_CHECK_HEADERS([sys/socket.h])
131 AC_CHECK_HEADERS([sys/sysctl.h])
132 AC_CHECK_HEADERS([sys/time.h])
133 AC_CHECK_HEADERS([sys/un.h])
134 AC_CHECK_HEADERS([time.h])
135 AC_CHECK_HEADERS([unistd.h])
138 AC_CHECK_HEADERS([winsock2.h])
139 AC_CHECK_HEADERS([ws2tcpip.h])
141 # Checks for typedefs, structures, and compiler characteristics.
143 # Checks for library functions.
145 AC_CHECK_FUNCS([alarm])
146 AC_CHECK_FUNCS([dup2])
147 AC_CHECK_FUNCS([fcntl])
148 AC_CHECK_FUNCS([getline])
149 AC_CHECK_FUNCS([gettimeofday])
150 AC_CHECK_FUNCS([memchr])
151 AC_CHECK_FUNCS([memmove])
152 AC_CHECK_FUNCS([memset])
153 AC_CHECK_FUNCS([pipe2])
154 AC_CHECK_FUNCS([select])
155 AC_CHECK_FUNCS([setenv])
156 AC_CHECK_FUNCS([socket])
157 AC_CHECK_FUNCS([sqrt])
158 AC_CHECK_FUNCS([strcasecmp])
159 AC_CHECK_FUNCS([strchr])
160 AC_CHECK_FUNCS([strdup])
161 AC_CHECK_FUNCS([strerror])
162 AC_CHECK_FUNCS([strtol])
163 AC_CHECK_FUNCS([strtoul])
164 AC_CHECK_FUNCS([strtoull])
166 AC_FUNC_ERROR_AT_LINE
170 AC_CHECK_HEADER([umem.h], [
171 AC_DEFINE([HAVE_UMEM_H], 1,
172 [Define this if you have umem.h])
174 ], [build_cache=yes])
176 AM_CONDITIONAL([BUILD_CACHE], [test "x$build_cache" = "xyes"])
199 AX_CXX_GCC_ABI_DEMANGLE
205 dnl The sasl functions should only be visible if we build with sasl support
207 AS_IF([test "x$ac_enable_sasl" = "xyes"], [
208 [ LIBMEMCACHED_WITH_SASL_SUPPORT="#define LIBMEMCACHED_WITH_SASL_SUPPORT 1" ]
209 ],[ LIBMEMCACHED_WITH_SASL_SUPPORT="#define LIBMEMCACHED_WITH_SASL_SUPPORT 0" ])
210 AC_SUBST(LIBMEMCACHED_WITH_SASL_SUPPORT)
212 AC_CHECK_LIB([rt],[clock_gettime], [
215 AC_DEFINE([HAVE_CLOCK_GETTIME], [ 1 ], [Have clock_gettime])
217 AC_DEFINE([HAVE_CLOCK_GETTIME], [ 0 ], [Have clock_gettime])
220 # Check for the ability to call dlopen
221 AC_CHECK_LIB([dl],[dlopen], [
224 AC_DEFINE([HAVE_LIBDL],[1],[Have dlopen])
226 AC_DEFINE([HAVE_LIBDL], [0], [Have dlopen])
229 AC_CHECK_LIB([m],[floor])
230 AC_CHECK_FUNCS([sigignore])
232 AC_CHECK_HEADERS([atomic.h])
233 AS_IF([test "x$ac_cv_header_atomic_h" = "xyes"],[
234 AC_CHECK_FUNCS([atomic_add_64])
235 AC_CHECK_FUNCS([atomic_add_32])
236 AS_IF([test "x$ac_cv_func_atomic_add_64" = "xyes" -a "x$ac_cv_func_atomic_add_32" = "xyes"],[
237 AC_DEFINE([USE_ATOMIC_H],
239 [Define to true if you want to use functions from atomic.h])])])
241 AC_DEFINE([HAVE_LIBDRIZZLE], [0], [Support for libdrizzle])
242 AC_DEFINE([HAVE_DRIZZLED_BINARY], [0], [Support for DrizzleD])
243 AC_DEFINE([DRIZZLED_BINARY], [0], [Support for DrizzleD])
244 AC_DEFINE([GEARMAND_BLOBSLAP_WORKER], [0], [Support for Gearman Blobslap worker])
245 AC_DEFINE([HAVE_LIBPQ], [0], [Support for Postgres])
246 AC_DEFINE([HAVE_LIBCURL], [0], [Support for libcurl])
248 AC_DEFINE([HAVE_MEMCACHED_LIGHT_BINARY], [1], [Support for memcached_light])
249 AC_DEFINE([MEMCACHED_LIGHT_BINARY], ["example/memcached_light"], [Support for memcached_light])
251 dnl Check for the requirements for running memcached with less privileges
252 dnl than the default privilege set. On Solaris we need setppriv and priv.h
253 dnl If you want to add support for other platforms you should check for
254 dnl your requirements, define HAVE_DROP_PRIVILEGES, and make sure you add
255 dnl the source file containing the implementation into memcached_SOURCE
257 AC_CHECK_FUNCS([setppriv], [
258 AC_CHECK_HEADER([priv.h], [
259 AC_DEFINE([HAVE_DROP_PRIVILEGES], 1,
260 [Define this if you have an implementation of drop_privileges()])
261 build_solaris_privs=yes
265 AC_CHECK_HEADERS_ONCE(winsock2.h poll.h sys/wait.h fnmatch.h)
266 AM_CONDITIONAL(BUILD_POLL, test "x$ac_cv_header_poll_h" = "xno")
267 AM_CONDITIONAL(BUILD_WIN32_WRAPPERS, test "x$ac_cv_header_winsock2_h" = "xyes")
268 AS_IF(test "x$ac_cv_header_winsock2_h" = "xyes",
269 [AM_LDFLAGS="$AM_LDFLAGS -lws2_32"
270 AM_CFLAGS="$AM_CFLAGS $NO_WERROR"
271 AM_CXXFLAGS="$AM_CXXFLAGS $NO_WERROR"
275 AX_UUID_GENERATE_TIME_SAFE
278 AX_PTHREAD(, [AC_MSG_ERROR([could not find libpthread])])
279 AX_PTHREAD_TIMEDJOIN_NP
281 PANDORA_ENABLE_DTRACE
284 AX_CXX_COMPILER_VERSION
285 AX_HARDEN_COMPILER_FLAGS
287 AX_AM_JOBSERVER([yes])
292 libmemcached-1.0/configure.h
293 support/libmemcached.pc
294 support/libmemcached.spec
299 echo "Configuration summary for $PACKAGE_NAME version $VERSION"
301 echo " * Installation prefix: $prefix"
302 echo " * System type: $host_vendor-$host_os"
303 echo " * Host CPU: $host_cpu"
304 echo " * C Compiler: $CC_VERSION"
305 echo " * C Flags: $CFLAGS"
306 echo " * C++ Compiler: $CXX_VERSION"
307 echo " * C++ Flags: $CXXFLAGS"
308 echo " * CPP Flags: $CPPFLAGS"
309 echo " * LIB Flags: $LIB"
310 echo " * Assertions enabled: $ax_enable_assert"
311 echo " * Debug enabled: $ax_enable_debug"
312 echo " * Warnings as failure: $ac_cv_warnings_as_errors"
313 echo " * SASL support: $ac_enable_sasl"
314 echo " * make -j: $enable_jobserver"
315 echo " * VCS checkout: $ac_cv_vcs_checkout"
323 echo "* NOTE: You are on FreeBSD. BSD make will not work."
325 echo "* use 'gmake' To build libmemcached"