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.13],[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 # Adding support for libtest
63 m4_include([libtest/yatl.m4])
65 m4_include([m4/memcached_sasl.m4])
66 m4_include([m4/gearmand.m4])
67 m4_include([m4/libgearman.m4])
69 AM_CONDITIONAL([BUILDING_LIBMEMCACHED], [true])
70 AM_CONDITIONAL([HAVE_LIBMEMCACHED], [false])
71 AM_CONDITIONAL([HAVE_LIBDRIZZLE], [false])
72 AC_DEFINE([HAVE_LIBMEMCACHED], [1], [Enables libmemcached Support])
74 AM_CONDITIONAL([BUILDING_GEARMAN], [false])
88 # Checks for programs.
89 AC_CHECK_PROGS([LEX], ['flex'], [:])
90 AC_CHECK_PROGS([YACC], ['bison'], [:])
93 # Checks for libraries.
94 AC_SEARCH_LIBS(getopt_long, gnugetopt)
95 AC_SEARCH_LIBS(gethostbyname, nsl)
97 # Checks for header files.
98 AC_CHECK_HEADERS([arpa/inet.h])
99 AC_CHECK_HEADERS([errno.h])
100 AC_CHECK_HEADERS([dlfcn.h])
101 AC_CHECK_HEADERS([execinfo.h])
102 AC_CHECK_HEADERS([fcntl.h])
103 AC_CHECK_HEADERS([inttypes.h])
104 AC_CHECK_HEADERS([libintl.h])
105 AC_CHECK_HEADERS([limits.h])
106 AC_CHECK_HEADERS([malloc.h])
107 AC_CHECK_HEADERS([math.h])
108 AC_CHECK_HEADERS([netdb.h])
109 AC_CHECK_HEADERS([netinet/in.h])
110 AC_CHECK_HEADERS([netinet/tcp.h])
111 AC_CHECK_HEADERS([pthread.h])
112 AC_CHECK_HEADERS([stdarg.h])
113 AC_CHECK_HEADERS([stddef.h])
114 AC_CHECK_HEADERS([stdio.h])
115 AC_CHECK_HEADERS([stdlib.h])
116 AC_CHECK_HEADERS([sys/socket.h])
117 AC_CHECK_HEADERS([sys/sysctl.h])
118 AC_CHECK_HEADERS([sys/time.h])
119 AC_CHECK_HEADERS([time.h])
120 AC_CHECK_HEADERS([unistd.h])
123 # Checks for typedefs, structures, and compiler characteristics.
125 # Checks for library functions.
127 AC_CHECK_FUNCS([alarm])
128 AC_CHECK_FUNCS([dup2])
129 AC_CHECK_FUNCS([getline])
130 AC_CHECK_FUNCS([gettimeofday])
131 AC_CHECK_FUNCS([memchr])
132 AC_CHECK_FUNCS([memmove])
133 AC_CHECK_FUNCS([memset])
134 AC_CHECK_FUNCS([pipe2])
135 AC_CHECK_FUNCS([select])
136 AC_CHECK_FUNCS([setenv])
137 AC_CHECK_FUNCS([socket])
138 AC_CHECK_FUNCS([sqrt])
139 AC_CHECK_FUNCS([strcasecmp])
140 AC_CHECK_FUNCS([strchr])
141 AC_CHECK_FUNCS([strdup])
142 AC_CHECK_FUNCS([strerror])
143 AC_CHECK_FUNCS([strtol])
144 AC_CHECK_FUNCS([strtoul])
145 AC_CHECK_FUNCS([strtoull])
147 AC_FUNC_ERROR_AT_LINE
153 AC_CHECK_HEADER([umem.h], [
154 AC_DEFINE([HAVE_UMEM_H], 1,
155 [Define this if you have umem.h])
157 ], [build_cache=yes])
159 AM_CONDITIONAL([BUILD_CACHE], [test "x$build_cache" = "xyes"])
182 AX_CXX_GCC_ABI_DEMANGLE
188 dnl The sasl functions should only be visible if we build with sasl support
190 AS_IF([test "x$ac_enable_sasl" = "xyes"], [
191 [ LIBMEMCACHED_WITH_SASL_SUPPORT="#define LIBMEMCACHED_WITH_SASL_SUPPORT 1" ]
192 ],[ LIBMEMCACHED_WITH_SASL_SUPPORT="#define LIBMEMCACHED_WITH_SASL_SUPPORT 0" ])
193 AC_SUBST(LIBMEMCACHED_WITH_SASL_SUPPORT)
195 AC_CHECK_LIB([rt],[clock_gettime], [
198 AC_DEFINE([HAVE_CLOCK_GETTIME], [ 1 ], [Have clock_gettime])
200 AC_DEFINE([HAVE_CLOCK_GETTIME], [ 0 ], [Have clock_gettime])
203 # Check for the ability to call dlopen
204 AC_CHECK_LIB([dl],[dlopen], [
207 AC_DEFINE([HAVE_LIBDL],[1],[Have dlopen])
209 AC_DEFINE([HAVE_LIBDL], [0], [Have dlopen])
212 AC_CHECK_LIB([m],[floor])
213 AC_CHECK_FUNCS([sigignore])
215 AC_CHECK_HEADERS([atomic.h])
216 AS_IF([test "x$ac_cv_header_atomic_h" = "xyes"],[
217 AC_CHECK_FUNCS([atomic_add_64])
218 AC_CHECK_FUNCS([atomic_add_32])
219 AS_IF([test "x$ac_cv_func_atomic_add_64" = "xyes" -a "x$ac_cv_func_atomic_add_32" = "xyes"],[
220 AC_DEFINE([USE_ATOMIC_H],
222 [Define to true if you want to use functions from atomic.h])])])
224 AC_DEFINE([HAVE_LIBDRIZZLE], [0], [Support for libdrizzle])
225 AC_DEFINE([HAVE_DRIZZLED_BINARY], [0], [Support for DrizzleD])
226 AC_DEFINE([DRIZZLED_BINARY], [0], [Support for DrizzleD])
227 AC_DEFINE([GEARMAND_BLOBSLAP_WORKER], [0], [Support for Gearman Blobslap worker])
228 AC_DEFINE([HAVE_LIBPQ], [0], [Support for Postgres])
229 AC_DEFINE([HAVE_LIBCURL], [0], [Support for libcurl])
231 AC_DEFINE([HAVE_MEMCACHED_LIGHT_BINARY], [1], [Support for memcached_light])
232 AC_DEFINE([MEMCACHED_LIGHT_BINARY], ["example/memcached_light"], [Support for memcached_light])
234 dnl Check for the requirements for running memcached with less privileges
235 dnl than the default privilege set. On Solaris we need setppriv and priv.h
236 dnl If you want to add support for other platforms you should check for
237 dnl your requirements, define HAVE_DROP_PRIVILEGES, and make sure you add
238 dnl the source file containing the implementation into memcached_SOURCE
240 AC_CHECK_FUNCS([setppriv], [
241 AC_CHECK_HEADER([priv.h], [
242 AC_DEFINE([HAVE_DROP_PRIVILEGES], 1,
243 [Define this if you have an implementation of drop_privileges()])
244 build_solaris_privs=yes
248 AC_CHECK_HEADERS_ONCE(winsock2.h poll.h sys/wait.h fnmatch.h)
249 AM_CONDITIONAL(BUILD_POLL, test "x$ac_cv_header_poll_h" = "xno")
250 AM_CONDITIONAL(BUILD_WIN32_WRAPPERS, test "x$ac_cv_header_winsock2_h" = "xyes")
251 AS_IF(test "x$ac_cv_header_winsock2_h" = "xyes",
252 [AM_LDFLAGS="$AM_LDFLAGS -lws2_32"
253 AM_CFLAGS="$AM_CFLAGS $NO_WERROR"
254 AM_CXXFLAGS="$AM_CXXFLAGS $NO_WERROR"
258 AX_UUID_GENERATE_TIME_SAFE
261 AX_PTHREAD(, [AC_MSG_ERROR([could not find libpthread])])
262 AX_PTHREAD_TIMEDJOIN_NP
264 PANDORA_ENABLE_DTRACE
267 AX_CXX_COMPILER_VERSION
268 AX_HARDEN_COMPILER_FLAGS
270 AX_AM_JOBSERVER([yes])
275 libmemcached-1.0/configure.h
276 support/libmemcached.pc
277 support/libmemcached.spec
282 echo "Configuration summary for $PACKAGE_NAME version $VERSION"
284 echo " * Installation prefix: $prefix"
285 echo " * System type: $host_vendor-$host_os"
286 echo " * Host CPU: $host_cpu"
287 echo " * C Compiler: $CC_VERSION"
288 echo " * C Flags: $CFLAGS"
289 echo " * C++ Compiler: $CXX_VERSION"
290 echo " * C++ Flags: $CXXFLAGS"
291 echo " * CPP Flags: $CPPFLAGS"
292 echo " * LIB Flags: $LIB"
293 echo " * Assertions enabled: $ax_enable_assert"
294 echo " * Debug enabled: $ax_enable_debug"
295 echo " * Warnings as failure: $ac_cv_warnings_as_errors"
296 echo " * SASL support: $ac_enable_sasl"
297 echo " * make -j: $enable_jobserver"
298 echo " * VCS checkout: $ac_cv_vcs_checkout"
306 echo "* NOTE: You are on FreeBSD. BSD make will not work."
308 echo "* use 'gmake' To build libmemcached"