3 # Copyright (C) 2011-2012 Data Differential, http://datadifferential.com/
4 # Copyright (C) 2006-2010 Brian Aker, Monty Taylor, Trond Norbye
7 # Use and distribution licensed under the BSD license. See
8 # the COPYING file in this directory for full text.
10 AC_INIT
([libmemcached
],[1.0.9],[http
://libmemcached.org
/])
12 AC_CONFIG_AUX_DIR
(config
)
23 AC_CONFIG_MACRO_DIR
(m4)
25 AC_CONFIG_HEADERS
([config.h
:config.
in])dnl Keep filename to
8.3 for MS-DOS.
27 AC_CONFIG_SRCDIR
([libmemcached
/memcached.cc
])
29 PANDORA_CANONICAL_TARGET
(no-vc-changelog
)
30 AC_CHECK_PROGS
([YACC
], ['bison'], [:])
31 AC_CHECK_PROGS
([LEX
], ['flex'], [:])
33 #shared library versioning
34 MEMCACHED_UTIL_LIBRARY_VERSION
=2:0:0
35 MEMCACHED_PROTOCAL_LIBRARY_VERSION
=0:0:0
36 MEMCACHED_LIBRARY_VERSION
=11:0:0
40 # current:revision:age
42 # | | +- increment if interfaces have been added
43 # | | set to zero if interfaces have been removed or changed
44 # | +- increment if source code has changed
45 # | set to zero if current is incremented
46 # +- increment if interfaces have been added, removed or changed
47 AC_SUBST
(MEMCACHED_UTIL_LIBRARY_VERSION
)
48 AC_SUBST
(MEMCACHED_PROTOCAL_LIBRARY_VERSION
)
49 AC_SUBST
(MEMCACHED_LIBRARY_VERSION
)
52 HASHKIT_LIBRARY_VERSION
=2:0:0
53 AC_SUBST
(HASHKIT_LIBRARY_VERSION
)
61 AX_CXX_HEADER_STDCXX_98
62 if test "$ax_cv_cxx_stdcxx_98" = no
; then
63 AC_MSG_ERROR
([Your system lacks a new enough C
++ compiler
])
66 # Adding support for libtest
67 m4_include
([libtest
/yatl.
m4])
69 m4_include
([m
4/memcached_sasl.
m4])
70 m4_include
([m
4/gearmand.
m4])
71 m4_include
([m
4/libgearman.
m4])
72 m4_include
([memcached
/version.
m4])
74 AM_CONDITIONAL
(BUILDING_LIBMEMCACHED
, true
)
75 AM_CONDITIONAL
(HAVE_LIBMEMCACHED
, false
)
76 AM_CONDITIONAL
(HAVE_LIBDRIZZLE
, false
)
77 AC_DEFINE
([HAVE_LIBMEMCACHED
], [1], [Enables libmemcached Support
])
79 AM_CONDITIONAL
(BUILDING_GEARMAN
, false
)
81 AC_SEARCH_LIBS
(getopt_long
, gnugetopt
)
82 AC_SEARCH_LIBS
(gethostbyname
, nsl
)
86 AS_IF
([test "x$GCC" = "xyes"],
88 LDFLAGS
="$LDFLAGS -z relro -z now"
106 AC_CHECK_FUNCS
([alarm
])
107 AC_CHECK_FUNCS
([dup2
])
108 AC_CHECK_FUNCS
([getline
])
109 AC_CHECK_FUNCS
([gettimeofday
])
110 AC_CHECK_FUNCS
([memchr
])
111 AC_CHECK_FUNCS
([memmove
])
112 AC_CHECK_FUNCS
([memset
])
113 AC_CHECK_FUNCS
([pipe2
])
114 AC_CHECK_FUNCS
([select])
115 AC_CHECK_FUNCS
([setenv
])
116 AC_CHECK_FUNCS
([socket
])
117 AC_CHECK_FUNCS
([sqrt
])
118 AC_CHECK_FUNCS
([strcasecmp
])
119 AC_CHECK_FUNCS
([strchr
])
120 AC_CHECK_FUNCS
([strdup
])
121 AC_CHECK_FUNCS
([strerror
])
122 AC_CHECK_FUNCS
([strtol
])
123 AC_CHECK_FUNCS
([strtoul
])
124 AC_CHECK_FUNCS
([strtoull
])
126 AC_CHECK_HEADERS
([arpa
/inet.h
])
127 AC_CHECK_HEADERS
([errno.h
])
128 AC_CHECK_HEADERS
([execinfo.h
])
129 AC_CHECK_HEADERS
([fcntl.h
])
130 AC_CHECK_HEADERS
([inttypes.h
])
131 AC_CHECK_HEADERS
([libintl.h
])
132 AC_CHECK_HEADERS
([limits.h
])
133 AC_CHECK_HEADERS
([malloc.h
])
134 AC_CHECK_HEADERS
([math.h
])
135 AC_CHECK_HEADERS
([netdb.h
])
136 AC_CHECK_HEADERS
([netinet
/in.h
])
137 AC_CHECK_HEADERS
([pthread.h
])
138 AC_CHECK_HEADERS
([stdarg.h
])
139 AC_CHECK_HEADERS
([stddef.h
])
140 AC_CHECK_HEADERS
([stdlib.h
])
141 AC_CHECK_HEADERS
([sys
/time.h
])
142 AC_CHECK_HEADERS
([unistd.h
])
143 AC_CHECK_HEADERS
([cxxabi.h
],
144 AC_DEFINE
([HAVE_CXXABI_H
], [1], [Have cxxabi.h
]),
145 AC_DEFINE
([HAVE_CXXABI_H
], [0], [Have cxxabi.h
]))
147 AC_CHECK_HEADERS
([sys
/sysctl.h
])
149 AC_CHECK_HEADER
(umem.h
, [
150 AC_DEFINE
([HAVE_UMEM_H
], 1,
151 [Define this
if you have umem.h
])
153 ], [build_cache
=yes])
155 AM_CONDITIONAL
([BUILD_CACHE
], [test "x$build_cache" = "xyes"])
160 AC_FUNC_ERROR_AT_LINE
184 AX_CXX_GCC_ABI_DEMANGLE
189 dnl The sasl functions should only be visible
if we build with sasl support
191 AS_IF
([test "x$ac_enable_sasl" = "xyes"], [
192 [ LIBMEMCACHED_WITH_SASL_SUPPORT
="#define LIBMEMCACHED_WITH_SASL_SUPPORT 1" ]
194 [ LIBMEMCACHED_WITH_SASL_SUPPORT
="#define LIBMEMCACHED_WITH_SASL_SUPPORT 0" ]
196 AC_SUBST
(LIBMEMCACHED_WITH_SASL_SUPPORT
)
198 AX_CHECK_LIBRARY
([LIBUUID
], [uuid
/uuid.h
], [uuid
],
200 LIBUUID_LDFLAGS
="-luuid"
201 AC_DEFINE
([HAVE_LIBUUID
], [ 1 ], [Have libuuid
])
204 AC_DEFINE
([HAVE_LIBUUID
], [ 0 ], [Have libuuid
])
207 AC_CHECK_LIB
([rt
], [clock_gettime
],
211 AC_DEFINE
([HAVE_LIBRT
], [ 1 ], [Have clock_gettime
])
214 AC_DEFINE
([HAVE_LIBRT
], [ 0 ], [Have clock_gettime
])
217 AC_CHECK_LIB
([m
], [floor
])
218 AC_CHECK_FUNCS
([sigignore
])
220 AC_CHECK_HEADERS
([atomic.h
])
221 AS_IF
([test "x$ac_cv_header_atomic_h" = "xyes"],[
222 AC_CHECK_FUNCS
(atomic_add_64
)
223 AC_CHECK_FUNCS
(atomic_add_32
)
224 AS_IF
([test "x$ac_cv_func_atomic_add_64" = "xyes" -a "x$ac_cv_func_atomic_add_32" = "xyes"],[
225 AC_DEFINE
([USE_ATOMIC_H
],
227 [Define to true
if you want to use functions from atomic.h
])])])
229 AC_DEFINE
([HAVE_LIBDRIZZLE
], [0], [Support
for libdrizzle
])
230 AC_DEFINE
([HAVE_DRIZZLED_BINARY
], [0], [Support
for DrizzleD
])
231 AC_DEFINE
([DRIZZLED_BINARY
], [0], [Support
for DrizzleD
])
232 AC_DEFINE
([GEARMAND_BLOBSLAP_WORKER
], [0], [Support
for Gearman Blobslap worker
])
233 AC_DEFINE
([HAVE_LIBPQ
], [0], [Support
for Postgres
])
234 AC_DEFINE
([HAVE_LIBCURL
], [0], [Support
for libcurl
])
236 AC_DEFINE
([HAVE_MEMCACHED_LIGHT_BINARY
], [1], [Support
for memcached_light
])
237 AC_DEFINE
([MEMCACHED_LIGHT_BINARY
], ["example/memcached_light"], [Support
for memcached_light
])
239 dnl Check
for the requirements
for running memcached with
less privileges
240 dnl than the default privilege
set. On Solaris we need setppriv and priv.h
241 dnl If you want to add support
for other platforms you should check
for
242 dnl your requirements
, define HAVE_DROP_PRIVILEGES
, and
make sure you add
243 dnl the
source file containing the implementation into memcached_SOURCE
245 AC_CHECK_FUNCS
(setppriv
, [
246 AC_CHECK_HEADER
(priv.h
, [
247 AC_DEFINE
([HAVE_DROP_PRIVILEGES
], 1,
248 [Define this
if you have an implementation of drop_privileges
()])
249 build_solaris_privs
=yes
253 AC_CHECK_HEADERS_ONCE
(winsock2.h poll.h sys
/wait.h fnmatch.h
)
254 AM_CONDITIONAL
(BUILD_POLL
, test "x$ac_cv_header_poll_h" = "xno")
255 AM_CONDITIONAL
(BUILD_WIN32_WRAPPERS
, test "x$ac_cv_header_winsock2_h" = "xyes")
256 AS_IF
(test "x$ac_cv_header_winsock2_h" = "xyes",
257 [AM_LDFLAGS
="$AM_LDFLAGS -lws2_32"
258 AM_CFLAGS
="$AM_CFLAGS $NO_WERROR"
259 AM_CXXFLAGS
="$AM_CXXFLAGS $NO_WERROR"
263 AX_CHECK_LIBRARY
([LIBEVENT
], [event.h
], [event
],
265 LIBEVENT_LDFLAGS
="-levent"
268 AC_MSG_WARN
([Unable to
find libevent
])
270 AM_CONDITIONAL
(HAVE_LIBEVENT
, test "x${ax_cv_have_LIBEVENT}" = "xyes")
272 dnl Check
if we
're a little-endian or a big-endian system, needed by hash code
273 AC_DEFUN([AC_C_ENDIAN],
274 [AC_CACHE_CHECK(for endianness, ac_cv_c_endian,
277 [AC_LANG_PROGRAM([], [dnl
279 char *c = (char *) &val;
285 ac_cv_c_endian=little
288 if test $ac_cv_c_endian = big; then
289 AC_DEFINE(ENDIAN_BIG, 1, [machine is bigendian])
291 if test $ac_cv_c_endian = little; then
292 AC_DEFINE(ENDIAN_LITTLE, 1, [machine is littleendian])
296 AX_CHECK_SOCK_CLOEXEC([AC_DEFINE([HAVE_SOCK_CLOEXEC], [1], [Check for SOCK_CLOEXEC.])],
297 [AC_DEFINE([HAVE_SOCK_CLOEXEC], [0], [Check for SOCK_CLOEXEC.])])
302 libhashkit-1.0/configure.h
303 libmemcached-1.0/configure.h
304 libmemcached-1.2/configure.h
305 libmemcached-2.0/configure.h
306 support/libmemcached.pc
307 support/libmemcached.spec
308 support/libmemcached-fc.spec
313 echo "Configuration summary for $PACKAGE_NAME version $VERSION"
315 echo " * Installation prefix: $prefix"
316 echo " * System type: $host_vendor-$host_os"
317 echo " * Host CPU: $host_cpu"
318 echo " * C Compiler: $CC_VERSION"
319 echo " * Assertions enabled: $ac_cv_assert"
320 echo " * Debug enabled: $with_debug"
321 echo " * Warnings as failure: $ac_cv_warnings_as_errors"
322 echo " * SASL support: $ac_enable_sasl"
330 echo "* NOTE: You are on FreeBSD. BSD make will not work."
332 echo "* use 'gmake
' To build libmemcached"