mirror of
https://github.com/php-win-ext/php-memcached.git
synced 2026-03-24 09:02:10 +01:00
This adds zstd compression support. The current two options, zlib and fastlz is basically a choice between performance and compression ratio. You would choose zlib if you are memory-bound and fastlz if you are cpu-bound. With zstd, you get the performance of fastlz with the compression of zlib. And often it wins on both. See this benchmark I ran on json files of varying sizes: https://gist.github.com/rlerdorf/788f3d0144f9c5514d8fee9477cbe787 Taking just a 40k json blob, we see that zstd at compression level 3 reduces it to 8862 bytes. Our current zlib 1 gets worse compression at 10091 bytes and takes longer both to compress and decompress. C Size ratio% C MB/s D MB/s SCORE Name File 8037 19.9 0.58 2130.89 0.08 zstd 22 file-39.54k-json 8204 20.3 31.85 2381.59 0.01 zstd 10 file-39.54k-json 8371 20.7 47.52 547.12 0.01 zlib 9 file-39.54k-json 8477 20.9 74.84 539.83 0.01 zlib 6 file-39.54k-json 8862 21.9 449.86 2130.89 0.01 zstd 3 file-39.54k-json 9171 22.7 554.62 2381.59 0.01 zstd 1 file-39.54k-json 10091 24.9 153.94 481.99 0.01 zlib 1 file-39.54k-json 10646 26.3 43.39 8097.40 0.01 lz4 16 file-39.54k-json 10658 26.3 72.30 8097.40 0.01 lz4 10 file-39.54k-json 13004 32.1 1396.10 6747.83 0.01 lz4 1 file-39.54k-json 13321 32.9 440.08 1306.03 0.01 fastlz 2 file-39.54k-json 14807 36.6 444.91 1156.77 0.01 fastlz 1 file-39.54k-json 15517 38.3 1190.79 4048.70 0.02 zstd -10 file-39.54k-json The fact that decompression a dramatically faster with zstd is a win for most common memcache uses since they tend to be read-heavy. The PR also adds a `memcache.compression_level` INI switch which currently only applies to zstd compression. It could probably be made to also apply to zlib and fastlz.
420 lines
15 KiB
Plaintext
420 lines
15 KiB
Plaintext
dnl vim:se ts=2 sw=2 et:
|
|
|
|
PHP_ARG_ENABLE(memcached, whether to enable memcached support,
|
|
[ --enable-memcached Enable memcached support])
|
|
|
|
PHP_ARG_WITH(libmemcached-dir, for libmemcached,
|
|
[ --with-libmemcached-dir=DIR Set the path to libmemcached install prefix.], yes)
|
|
|
|
PHP_ARG_ENABLE(memcached-session, whether to enable memcached session handler support,
|
|
[ --enable-memcached-session Enable memcached session handler support], yes, no)
|
|
|
|
PHP_ARG_ENABLE(memcached-igbinary, whether to enable memcached igbinary serializer support,
|
|
[ --enable-memcached-igbinary Enable memcached igbinary serializer support], no, no)
|
|
|
|
PHP_ARG_ENABLE(memcached-json, whether to enable memcached json serializer support,
|
|
[ --enable-memcached-json Enable memcached json serializer support], no, no)
|
|
|
|
PHP_ARG_ENABLE(memcached-msgpack, whether to enable memcached msgpack serializer support,
|
|
[ --enable-memcached-msgpack Enable memcached msgpack serializer support], no, no)
|
|
|
|
PHP_ARG_ENABLE(memcached-sasl, whether to enable memcached sasl support,
|
|
[ --enable-memcached-sasl Enable memcached sasl support], yes, no)
|
|
|
|
PHP_ARG_ENABLE(memcached-protocol, whether to enable memcached protocol support,
|
|
[ --enable-memcached-protocol Enable memcached protocol support], no, no)
|
|
|
|
PHP_ARG_WITH(system-fastlz, whether to use system FastLZ library,
|
|
[ --with-system-fastlz Use system FastLZ library], no, no)
|
|
|
|
PHP_ARG_WITH(zstd, whether to use system zstd library,
|
|
[ --with-zstd Use system zstd library], no, no)
|
|
|
|
if test -z "$PHP_ZLIB_DIR"; then
|
|
PHP_ARG_WITH(zlib-dir, for ZLIB,
|
|
[ --with-zlib-dir=DIR Set the path to ZLIB install prefix.], no)
|
|
fi
|
|
|
|
if test -z "$PHP_DEBUG"; then
|
|
AC_ARG_ENABLE(debug,
|
|
[ --enable-debug Compile with debugging symbols],[
|
|
PHP_DEBUG=$enableval
|
|
],[ PHP_DEBUG=no
|
|
])
|
|
fi
|
|
|
|
if test "$PHP_MEMCACHED" != "no"; then
|
|
|
|
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
|
if test "x$PKG_CONFIG" = "xno"; then
|
|
AC_MSG_RESULT([pkg-config not found])
|
|
AC_MSG_ERROR([Please reinstall the pkg-config distribution])
|
|
fi
|
|
|
|
dnl # zlib
|
|
if test "$PHP_ZLIB_DIR" != "no" && test "$PHP_ZLIB_DIR" != "yes"; then
|
|
if test -f "$PHP_ZLIB_DIR/include/zlib/zlib.h"; then
|
|
PHP_ZLIB_DIR="$PHP_ZLIB_DIR"
|
|
PHP_ZLIB_INCDIR="$PHP_ZLIB_DIR/include/zlib"
|
|
elif test -f "$PHP_ZLIB_DIR/include/zlib.h"; then
|
|
PHP_ZLIB_DIR="$PHP_ZLIB_DIR"
|
|
PHP_ZLIB_INCDIR="$PHP_ZLIB_DIR/include"
|
|
else
|
|
AC_MSG_ERROR([Can't find ZLIB headers under "$PHP_ZLIB_DIR"])
|
|
fi
|
|
else
|
|
for i in /usr/local /usr/local/opt/zlib /usr; do
|
|
if test -f "$i/include/zlib/zlib.h"; then
|
|
PHP_ZLIB_DIR="$i"
|
|
PHP_ZLIB_INCDIR="$i/include/zlib"
|
|
elif test -f "$i/include/zlib.h"; then
|
|
PHP_ZLIB_DIR="$i"
|
|
PHP_ZLIB_INCDIR="$i/include"
|
|
fi
|
|
done
|
|
fi
|
|
|
|
AC_MSG_CHECKING([for zlib location])
|
|
if test "$PHP_ZLIB_DIR" != "no" && test "$PHP_ZLIB_DIR" != "yes"; then
|
|
AC_MSG_RESULT([$PHP_ZLIB_DIR])
|
|
PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_DIR/$PHP_LIBDIR, MEMCACHED_SHARED_LIBADD)
|
|
PHP_ADD_INCLUDE($PHP_ZLIB_INCDIR)
|
|
else
|
|
AC_MSG_ERROR([memcached support requires ZLIB. Use --with-zlib-dir=<DIR> to specify the prefix where ZLIB headers and library are located])
|
|
fi
|
|
|
|
if test "$PHP_MEMCACHED_SESSION" != "no"; then
|
|
AC_MSG_CHECKING([for session includes])
|
|
session_inc_path=""
|
|
|
|
if test -f "$abs_srcdir/include/php/ext/session/php_session.h"; then
|
|
session_inc_path="$abs_srcdir/include/php"
|
|
elif test -f "$abs_srcdir/ext/session/php_session.h"; then
|
|
session_inc_path="$abs_srcdir"
|
|
elif test -f "$phpincludedir/ext/session/php_session.h"; then
|
|
session_inc_path="$phpincludedir"
|
|
else
|
|
for i in php php4 php5 php6; do
|
|
if test -f "$prefix/include/$i/ext/session/php_session.h"; then
|
|
session_inc_path="$prefix/include/$i"
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if test "$session_inc_path" = ""; then
|
|
AC_MSG_ERROR([Cannot find php_session.h])
|
|
else
|
|
AC_MSG_RESULT([$session_inc_path])
|
|
fi
|
|
fi
|
|
|
|
if test "$PHP_MEMCACHED_JSON" != "no"; then
|
|
AC_MSG_CHECKING([for json includes])
|
|
json_inc_path=""
|
|
|
|
if test -f "$abs_srcdir/include/php/ext/json/php_json.h"; then
|
|
json_inc_path="$abs_srcdir/include/php"
|
|
elif test -f "$abs_srcdir/ext/json/php_json.h"; then
|
|
json_inc_path="$abs_srcdir"
|
|
elif test -f "$phpincludedir/ext/json/php_json.h"; then
|
|
json_inc_path="$phpincludedir"
|
|
else
|
|
for i in php php4 php5 php6; do
|
|
if test -f "$prefix/include/$i/ext/json/php_json.h"; then
|
|
json_inc_path="$prefix/include/$i"
|
|
fi
|
|
done
|
|
fi
|
|
if test "$json_inc_path" = ""; then
|
|
AC_MSG_ERROR([Cannot find php_json.h])
|
|
else
|
|
AC_DEFINE(HAVE_JSON_API,1,[Whether JSON API is available])
|
|
AC_MSG_RESULT([$json_inc_path])
|
|
fi
|
|
fi
|
|
|
|
if test "$PHP_MEMCACHED_IGBINARY" != "no"; then
|
|
AC_MSG_CHECKING([for igbinary includes])
|
|
igbinary_inc_path=""
|
|
|
|
if test -f "$abs_srcdir/include/php/ext/igbinary/igbinary.h"; then
|
|
igbinary_inc_path="$abs_srcdir/include/php"
|
|
elif test -f "$abs_srcdir/ext/igbinary/igbinary.h"; then
|
|
igbinary_inc_path="$abs_srcdir"
|
|
elif test -f "$phpincludedir/ext/session/igbinary.h"; then
|
|
igbinary_inc_path="$phpincludedir"
|
|
elif test -f "$phpincludedir/ext/igbinary/igbinary.h"; then
|
|
igbinary_inc_path="$phpincludedir"
|
|
else
|
|
for i in php php4 php5 php6; do
|
|
if test -f "$prefix/include/$i/ext/igbinary/igbinary.h"; then
|
|
igbinary_inc_path="$prefix/include/$i"
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if test "$igbinary_inc_path" = ""; then
|
|
AC_MSG_ERROR([Cannot find igbinary.h])
|
|
else
|
|
AC_MSG_RESULT([$igbinary_inc_path])
|
|
fi
|
|
fi
|
|
|
|
if test "$PHP_MEMCACHED_MSGPACK" != "no"; then
|
|
AC_MSG_CHECKING([for msgpack includes])
|
|
msgpack_inc_path=""
|
|
|
|
if test -f "$abs_srcdir/include/php/ext/msgpack/php_msgpack.h"; then
|
|
msgpack_inc_path="$abs_srcdir/include/php"
|
|
elif test -f "$abs_srcdir/ext/msgpack/php_msgpack.h"; then
|
|
msgpack_inc_path="$abs_srcdir"
|
|
elif test -f "$phpincludedir/ext/session/php_msgpack.h"; then
|
|
msgpack_inc_path="$phpincludedir"
|
|
elif test -f "$phpincludedir/ext/msgpack/php_msgpack.h"; then
|
|
msgpack_inc_path="$phpincludedir"
|
|
else
|
|
for i in php php4 php5 php6; do
|
|
if test -f "$prefix/include/$i/ext/msgpack/php_msgpack.h"; then
|
|
msgpack_inc_path="$prefix/include/$i"
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if test "$msgpack_inc_path" = ""; then
|
|
AC_MSG_ERROR([Cannot find php_msgpack.h])
|
|
else
|
|
AC_MSG_RESULT([$msgpack_inc_path])
|
|
fi
|
|
fi
|
|
|
|
AC_MSG_CHECKING([for memcached session support])
|
|
if test "$PHP_MEMCACHED_SESSION" != "no"; then
|
|
AC_MSG_RESULT([enabled])
|
|
AC_DEFINE(HAVE_MEMCACHED_SESSION,1,[Whether memcache session handler is enabled])
|
|
SESSION_INCLUDES="-I$session_inc_path"
|
|
ifdef([PHP_ADD_EXTENSION_DEP],
|
|
[
|
|
PHP_ADD_EXTENSION_DEP(memcached, session)
|
|
])
|
|
else
|
|
SESSION_INCLUDES=""
|
|
AC_MSG_RESULT([disabled])
|
|
fi
|
|
|
|
AC_MSG_CHECKING([for memcached igbinary support])
|
|
if test "$PHP_MEMCACHED_IGBINARY" != "no"; then
|
|
AC_MSG_RESULT([enabled])
|
|
AC_DEFINE(HAVE_MEMCACHED_IGBINARY,1,[Whether memcache igbinary serializer is enabled])
|
|
IGBINARY_INCLUDES="-I$igbinary_inc_path"
|
|
ifdef([PHP_ADD_EXTENSION_DEP],
|
|
[
|
|
PHP_ADD_EXTENSION_DEP(memcached, igbinary)
|
|
])
|
|
else
|
|
IGBINARY_INCLUDES=""
|
|
AC_MSG_RESULT([disabled])
|
|
fi
|
|
|
|
AC_MSG_CHECKING([for memcached msgpack support])
|
|
if test "$PHP_MEMCACHED_MSGPACK" != "no"; then
|
|
AC_MSG_RESULT([enabled])
|
|
AC_DEFINE(HAVE_MEMCACHED_MSGPACK,1,[Whether memcache msgpack serializer is enabled])
|
|
MSGPACK_INCLUDES="-I$msgpack_inc_path"
|
|
ifdef([PHP_ADD_EXTENSION_DEP],
|
|
[
|
|
PHP_ADD_EXTENSION_DEP(memcached, msgpack)
|
|
])
|
|
else
|
|
MSGPACK_INCLUDES=""
|
|
AC_MSG_RESULT([disabled])
|
|
fi
|
|
|
|
AC_MSG_CHECKING([for libmemcached location])
|
|
export ORIG_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
|
|
|
|
if test "$PHP_LIBMEMCACHED_DIR" != "no" && test "$PHP_LIBMEMCACHED_DIR" != "yes"; then
|
|
export PKG_CONFIG_PATH="$PHP_LIBMEMCACHED_DIR/$PHP_LIBDIR/pkgconfig"
|
|
|
|
if test ! -f "$PHP_LIBMEMCACHED_DIR/include/libmemcached/memcached.h"; then
|
|
AC_MSG_ERROR(Unable to find memcached.h under $PHP_LIBMEMCACHED_DIR)
|
|
fi
|
|
else
|
|
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/$PHP_LIBDIR/pkgconfig:/usr/$PHP_LIBDIR/pkgconfig:/opt/$PHP_LIBDIR/pkgconfig"
|
|
fi
|
|
|
|
if ! $PKG_CONFIG --exists libmemcached; then
|
|
AC_MSG_ERROR([memcached support requires libmemcached. Use --with-libmemcached-dir=<DIR> to specify the prefix where libmemcached headers and library are located])
|
|
else
|
|
PHP_LIBMEMCACHED_VERSION=`$PKG_CONFIG libmemcached --modversion`
|
|
PHP_LIBMEMCACHED_DIR=`$PKG_CONFIG libmemcached --variable=prefix`
|
|
|
|
AC_MSG_RESULT([found version $PHP_LIBMEMCACHED_VERSION, under $PHP_LIBMEMCACHED_DIR])
|
|
|
|
PHP_LIBMEMCACHED_LIBS=`$PKG_CONFIG libmemcached --libs`
|
|
PHP_LIBMEMCACHED_INCLUDES=`$PKG_CONFIG libmemcached --cflags`
|
|
|
|
PHP_EVAL_LIBLINE($PHP_LIBMEMCACHED_LIBS, MEMCACHED_SHARED_LIBADD)
|
|
PHP_EVAL_INCLINE($PHP_LIBMEMCACHED_INCLUDES)
|
|
|
|
ORIG_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS $INCLUDES"
|
|
|
|
dnl # Always check if libmemcached was built with SASL support,
|
|
dnl # because it will require sasl.h even if not used here.
|
|
AC_CACHE_CHECK([for libmemcached sasl.h requirement], ac_cv_memc_sasl_support, [
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libmemcached/memcached.h>]], [[
|
|
#if LIBMEMCACHED_WITH_SASL_SUPPORT
|
|
/* yes */
|
|
#else
|
|
# error "no sasl support"
|
|
#endif
|
|
]])],
|
|
[ac_cv_memc_sasl_support="yes"],
|
|
[ac_cv_memc_sasl_support="no"]
|
|
)
|
|
])
|
|
|
|
if test "$ac_cv_memc_sasl_support" = "yes"; then
|
|
AC_CHECK_HEADERS([sasl/sasl.h], [ac_cv_have_memc_sasl_h="yes"], [ac_cv_have_memc_sasl_h="no"])
|
|
fi
|
|
|
|
dnl # If libmemcached requires sasl.h but we can't find sasl.h, that's a hard error
|
|
dnl # regardless of the option --enable-memcached-sasl or --disable-memcached-sasl
|
|
AC_MSG_CHECKING([whether to enable sasl support])
|
|
if test "$ac_cv_memc_sasl_support" = "yes" && test "$ac_cv_have_memc_sasl_h" = "no"; then
|
|
AC_MSG_ERROR([no, libmemcached built with sasl required, but sasl.h not found.])
|
|
fi
|
|
|
|
if test "$PHP_MEMCACHED_SASL" != "no"; then
|
|
AC_MSG_RESULT(yes)
|
|
if test "$ac_cv_memc_sasl_support" = "yes" && test "$ac_cv_have_memc_sasl_h" = "yes"; then
|
|
PHP_CHECK_LIBRARY(sasl2, sasl_client_init, [PHP_ADD_LIBRARY(sasl2, 1, MEMCACHED_SHARED_LIBADD)])
|
|
AC_DEFINE(HAVE_MEMCACHED_SASL, 1, [Have SASL support])
|
|
else
|
|
AC_MSG_ERROR([no, libmemcached built with sasl disabled. Run configure with --disable-memcached-sasl or update libmemcached with sasl support])
|
|
fi
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
|
|
ORIG_CFLAGS="$CFLAGS"
|
|
ORIG_LIBS="$LIBS"
|
|
|
|
CFLAGS="$CFLAGS $PHP_LIBMEMCACHED_INCLUDES"
|
|
LIBS="$LIBS $PHP_LIBMEMCACHED_LIBS"
|
|
|
|
AC_CACHE_CHECK([whether memcached_exist is defined], ac_cv_have_memcached_exist, [
|
|
AC_LINK_IFELSE(
|
|
[AC_LANG_PROGRAM([[#include <libmemcached/memcached.h>]],
|
|
[[memcached_exist (NULL, NULL, 0);]])],
|
|
[ac_cv_have_memcached_exist="yes"],
|
|
[ac_cv_have_memcached_exist="no"])
|
|
])
|
|
|
|
CFLAGS="$ORIG_CFLAGS"
|
|
LIBS="$ORIG_LIBS"
|
|
|
|
CFLAGS="$CFLAGS $PHP_LIBMEMCACHED_INCLUDES"
|
|
LIBS="$LIBS $PHP_LIBMEMCACHED_LIBS"
|
|
|
|
if test "$ac_cv_have_memcached_exist" = "yes"; then
|
|
AC_DEFINE(HAVE_MEMCACHED_EXIST, [1], [Whether memcached_exist is defined])
|
|
fi
|
|
|
|
AC_CACHE_CHECK([whether memcached_set_encoding_key is defined], ac_cv_have_memcached_set_encoding_key, [
|
|
AC_LINK_IFELSE(
|
|
[AC_LANG_PROGRAM([[#include <libmemcached/memcached.h>]],
|
|
[[memcached_set_encoding_key (NULL, NULL, 0);]])],
|
|
[ac_cv_have_memcached_set_encoding_key="yes"],
|
|
[ac_cv_have_memcached_set_encoding_key="no"])
|
|
])
|
|
|
|
CFLAGS="$ORIG_CFLAGS"
|
|
LIBS="$ORIG_LIBS"
|
|
|
|
if test "$ac_cv_have_memcached_set_encoding_key" = "yes"; then
|
|
AC_DEFINE(HAVE_MEMCACHED_SET_ENCODING_KEY, [1], [Whether memcached_set_encoding_key is defined])
|
|
fi
|
|
|
|
PHP_MEMCACHED_FILES="php_memcached.c php_libmemcached_compat.c g_fmt.c"
|
|
|
|
if test "$PHP_SYSTEM_FASTLZ" != "no"; then
|
|
AC_CHECK_HEADERS([fastlz.h], [ac_cv_have_fastlz="yes"], [ac_cv_have_fastlz="no"])
|
|
PHP_CHECK_LIBRARY(fastlz, fastlz_compress,
|
|
[PHP_ADD_LIBRARY(fastlz, 1, MEMCACHED_SHARED_LIBADD)],
|
|
[AC_MSG_ERROR(FastLZ library not found)])
|
|
else
|
|
ac_cv_have_fastlz="no"
|
|
PHP_MEMCACHED_FILES="${PHP_MEMCACHED_FILES} fastlz/fastlz.c"
|
|
fi
|
|
|
|
if test "$PHP_ZSTD" != "no"; then
|
|
AC_CHECK_HEADERS([zstd.h], [ac_cv_have_zstd="yes"], [ac_cv_have_zstd="no"])
|
|
PHP_CHECK_LIBRARY(zstd, ZSTD_compress,
|
|
[PHP_ADD_LIBRARY(zstd, 1, MEMCACHED_SHARED_LIBADD)],
|
|
[AC_MSG_ERROR(zstd library not found)])
|
|
fi
|
|
|
|
if test "$PHP_MEMCACHED_SESSION" != "no"; then
|
|
PHP_MEMCACHED_FILES="${PHP_MEMCACHED_FILES} php_memcached_session.c"
|
|
fi
|
|
|
|
LIBEVENT_INCLUDES=""
|
|
AC_MSG_CHECKING([for memcached protocol support])
|
|
if test "$PHP_MEMCACHED_PROTOCOL" != "no"; then
|
|
AC_MSG_RESULT([enabled])
|
|
|
|
AC_CACHE_CHECK([whether libmemcachedprotocol is usable], ac_cv_have_libmemcachedprotocol, [
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libmemcachedprotocol-0.0/handler.h>]],
|
|
[[memcached_binary_protocol_callback_st s_test_impl;
|
|
s_test_impl.interface.v1.delete_object = 0;
|
|
]])],
|
|
[ac_cv_have_libmemcachedprotocol="yes"],
|
|
[ac_cv_have_libmemcachedprotocol="no"]
|
|
)
|
|
])
|
|
|
|
if test "$ac_cv_have_libmemcachedprotocol" != "yes"; then
|
|
AC_MSG_ERROR([Cannot enable libmemcached protocol])
|
|
fi
|
|
|
|
PHP_ADD_LIBRARY_WITH_PATH(memcachedprotocol, $PHP_LIBMEMCACHED_DIR/$PHP_LIBDIR, MEMCACHED_SHARED_LIBADD)
|
|
|
|
AC_MSG_CHECKING([for libevent])
|
|
if $PKG_CONFIG --exists libevent; then
|
|
PHP_MEMCACHED_LIBEVENT_VERSION=`$PKG_CONFIG libevent --modversion`
|
|
PHP_MEMCACHED_LIBEVENT_PREFIX=`$PKG_CONFIG libevent --variable=prefix`
|
|
|
|
AC_MSG_RESULT([found version $PHP_MEMCACHED_LIBEVENT_VERSION, under $PHP_MEMCACHED_LIBEVENT_PREFIX])
|
|
LIBEVENT_LIBS=`$PKG_CONFIG libevent --libs`
|
|
LIBEVENT_INCLUDES=`$PKG_CONFIG libevent --cflags`
|
|
|
|
PHP_EVAL_LIBLINE($LIBEVENT_LIBS, MEMCACHED_SHARED_LIBADD)
|
|
PHP_EVAL_INCLINE($LIBEVENT_INCLUDES)
|
|
else
|
|
AC_MSG_ERROR(Unable to find libevent installation)
|
|
fi
|
|
PHP_MEMCACHED_FILES="${PHP_MEMCACHED_FILES} php_memcached_server.c"
|
|
AC_DEFINE(HAVE_MEMCACHED_PROTOCOL,1,[Whether memcached protocol is enabled])
|
|
else
|
|
AC_MSG_RESULT([disabled])
|
|
fi
|
|
|
|
CFLAGS="$ORIG_CFLAGS"
|
|
|
|
export PKG_CONFIG_PATH="$ORIG_PKG_CONFIG_PATH"
|
|
PHP_SUBST(MEMCACHED_SHARED_LIBADD)
|
|
|
|
PHP_NEW_EXTENSION(memcached, $PHP_MEMCACHED_FILES, $ext_shared,,$SESSION_INCLUDES $IGBINARY_INCLUDES $LIBEVENT_INCLUDES $MSGPACK_INCLUDES)
|
|
if test "ac_cv_have_fastlz" != "yes"; then
|
|
PHP_ADD_BUILD_DIR($ext_builddir/fastlz, 1)
|
|
fi
|
|
|
|
ifdef([PHP_ADD_EXTENSION_DEP],
|
|
[
|
|
PHP_ADD_EXTENSION_DEP(memcached, spl, true)
|
|
])
|
|
fi
|
|
fi
|
|
|