mirror of
https://github.com/php-win-ext/phpredis.git
synced 2026-04-24 17:18:27 +02:00
272 lines
8.8 KiB
Plaintext
272 lines
8.8 KiB
Plaintext
dnl $Id$
|
|
dnl config.m4 for extension redis
|
|
|
|
PHP_ARG_ENABLE(redis, whether to enable redis support,
|
|
dnl Make sure that the comment is aligned:
|
|
[ --enable-redis Enable redis support])
|
|
|
|
PHP_ARG_ENABLE(redis-session, whether to disable sessions,
|
|
[ --disable-redis-session Disable session support], yes, no)
|
|
|
|
PHP_ARG_ENABLE(redis-json, whether to disable json serializer support,
|
|
[ --disable-redis-json Disable json serializer support], yes, no)
|
|
|
|
PHP_ARG_ENABLE(redis-igbinary, whether to enable igbinary serializer support,
|
|
[ --enable-redis-igbinary Enable igbinary serializer support], no, no)
|
|
|
|
PHP_ARG_ENABLE(redis-msgpack, whether to enable msgpack serializer support,
|
|
[ --enable-redis-msgpack Enable msgpack serializer support], no, no)
|
|
|
|
PHP_ARG_ENABLE(redis-lzf, whether to enable lzf compression,
|
|
[ --enable-redis-lzf Enable lzf compression support], no, no)
|
|
|
|
PHP_ARG_WITH(liblzf, use system liblzf,
|
|
[ --with-liblzf[=DIR] Use system liblzf], no, no)
|
|
|
|
PHP_ARG_ENABLE(redis-zstd, whether to enable Zstd compression,
|
|
[ --enable-redis-zstd Enable Zstd compression support], no, no)
|
|
|
|
PHP_ARG_WITH(libzstd, use system libsztd,
|
|
[ --with-libzstd[=DIR] Use system libzstd], yes, no)
|
|
|
|
if test "$PHP_REDIS" != "no"; then
|
|
|
|
if test "$PHP_REDIS_SESSION" != "no"; then
|
|
AC_DEFINE(PHP_SESSION,1,[redis sessions])
|
|
fi
|
|
|
|
if test "PHP_REDIS_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 php7; 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_MSG_RESULT([$json_inc_path])
|
|
fi
|
|
fi
|
|
|
|
AC_MSG_CHECKING([for redis json support])
|
|
if test "$PHP_REDIS_JSON" != "no"; then
|
|
AC_MSG_RESULT([enabled])
|
|
AC_DEFINE(HAVE_REDIS_JSON,1,[Whether redis json serializer is enabled])
|
|
JSON_INCLUDES="-I$json_inc_path"
|
|
JSON_EXT_DIR="$json_inc_path/ext"
|
|
ifdef([PHP_ADD_EXTENSION_DEP],
|
|
[
|
|
PHP_ADD_EXTENSION_DEP(redis, json)
|
|
])
|
|
PHP_ADD_INCLUDE($JSON_EXT_DIR)
|
|
else
|
|
JSON_INCLUDES=""
|
|
AC_MSG_RESULT([disabled])
|
|
fi
|
|
|
|
if test "$PHP_REDIS_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/igbinary/igbinary.h"; then
|
|
igbinary_inc_path="$phpincludedir"
|
|
else
|
|
for i in php php7; 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
|
|
|
|
AC_MSG_CHECKING([for redis igbinary support])
|
|
if test "$PHP_REDIS_IGBINARY" != "no"; then
|
|
AC_MSG_RESULT([enabled])
|
|
AC_DEFINE(HAVE_REDIS_IGBINARY,1,[Whether redis igbinary serializer is enabled])
|
|
IGBINARY_INCLUDES="-I$igbinary_inc_path"
|
|
IGBINARY_EXT_DIR="$igbinary_inc_path/ext"
|
|
ifdef([PHP_ADD_EXTENSION_DEP],
|
|
[
|
|
PHP_ADD_EXTENSION_DEP(redis, igbinary)
|
|
])
|
|
PHP_ADD_INCLUDE($IGBINARY_EXT_DIR)
|
|
else
|
|
IGBINARY_INCLUDES=""
|
|
AC_MSG_RESULT([disabled])
|
|
fi
|
|
|
|
if test "$PHP_REDIS_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/msgpack/php_msgpack.h"; then
|
|
msgpack_inc_path="$phpincludedir"
|
|
else
|
|
for i in php php7; 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
|
|
|
|
if test "$PHP_REDIS_MSGPACK" != "no"; then
|
|
AC_MSG_CHECKING([for php msgpack version >= 2.0.3])
|
|
MSGPACK_VERSION=`$EGREP "define PHP_MSGPACK_VERSION" $msgpack_inc_path/ext/msgpack/php_msgpack.h | $SED -e 's/[[^0-9\.]]//g'`
|
|
if test `echo $MSGPACK_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*1000 + $2*100 + $3*10 + $4}'` -lt 2030; then
|
|
AC_MSG_ERROR([version >= 2.0.3 required])
|
|
else
|
|
AC_MSG_RESULT([yes])
|
|
fi
|
|
|
|
AC_DEFINE(HAVE_REDIS_MSGPACK,1,[Whether redis msgpack serializer is enabled])
|
|
MSGPACK_INCLUDES="-I$msgpack_inc_path"
|
|
MSGPACK_EXT_DIR="$msgpack_inc_path/ext"
|
|
ifdef([PHP_ADD_EXTENSION_DEP],
|
|
[
|
|
PHP_ADD_EXTENSION_DEP(redis, msgpack)
|
|
])
|
|
PHP_ADD_INCLUDE($MSGPACK_EXT_DIR)
|
|
else
|
|
MSGPACK_INCLUDES=""
|
|
fi
|
|
|
|
if test "$PHP_REDIS_LZF" != "no"; then
|
|
AC_DEFINE(HAVE_REDIS_LZF, 1, [ ])
|
|
if test "$PHP_LIBLZF" != "no"; then
|
|
AC_MSG_CHECKING(for liblzf files in default path)
|
|
for i in $PHP_LIBLZF /usr/local /usr; do
|
|
if test -r $i/include/lzf.h; then
|
|
AC_MSG_RESULT(found in $i)
|
|
LIBLZF_DIR=$i
|
|
break
|
|
fi
|
|
done
|
|
if test -z "$LIBLZF_DIR"; then
|
|
AC_MSG_RESULT([not found])
|
|
AC_MSG_ERROR([Please reinstall the liblzf distribution])
|
|
fi
|
|
PHP_CHECK_LIBRARY(lzf, lzf_compress,
|
|
[
|
|
PHP_ADD_LIBRARY_WITH_PATH(lzf, $LIBLZF_DIR/$PHP_LIBDIR, REDIS_SHARED_LIBADD)
|
|
], [
|
|
AC_MSG_ERROR([could not find usable liblzf])
|
|
], [
|
|
-L$LIBLZF_DIR/$PHP_LIBDIR
|
|
])
|
|
PHP_SUBST(REDIS_SHARED_LIBADD)
|
|
else
|
|
PHP_ADD_INCLUDE(liblzf)
|
|
PHP_ADD_INCLUDE($srcdir/liblzf)
|
|
PHP_ADD_BUILD_DIR(liblzf)
|
|
lzf_sources="liblzf/lzf_c.c liblzf/lzf_d.c"
|
|
fi
|
|
fi
|
|
|
|
if test "$PHP_REDIS_ZSTD" != "no"; then
|
|
AC_DEFINE(HAVE_REDIS_ZSTD, 1, [ ])
|
|
if test "$PHP_LIBZSTD" != "no"; then
|
|
AC_MSG_CHECKING(for libzstd files in default path)
|
|
for i in $PHP_LIBZSTD /usr/local /usr; do
|
|
if test -r $i/include/zstd.h; then
|
|
AC_MSG_RESULT(found in $i)
|
|
LIBZSTD_DIR=$i
|
|
break
|
|
fi
|
|
done
|
|
if test -z "$LIBZSTD_DIR"; then
|
|
AC_MSG_RESULT([not found])
|
|
AC_MSG_ERROR([Please reinstall the libzstd distribution])
|
|
fi
|
|
PHP_CHECK_LIBRARY(zstd, ZSTD_getFrameContentSize,
|
|
[
|
|
PHP_ADD_LIBRARY_WITH_PATH(zstd, $LIBZSTD_DIR/$PHP_LIBDIR, REDIS_SHARED_LIBADD)
|
|
], [
|
|
AC_MSG_ERROR([could not find usable libzstd, version 1.3.0 required])
|
|
], [
|
|
-L$LIBZSTD_DIR/$PHP_LIBDIR
|
|
])
|
|
PHP_SUBST(REDIS_SHARED_LIBADD)
|
|
else
|
|
AC_MSG_ERROR([only system libzstd is supported])
|
|
fi
|
|
fi
|
|
|
|
AC_CHECK_PROG([GIT], [git], [yes], [no])
|
|
if test "$GIT" == "yes" && test -d "$srcdir/.git"; then
|
|
AC_DEFINE_UNQUOTED(GIT_REVISION, ["$(git log -1 --format=%H)"], [ ])
|
|
fi
|
|
|
|
dnl # --with-redis -> check with-path
|
|
dnl SEARCH_PATH="/usr/local /usr" # you might want to change this
|
|
dnl SEARCH_FOR="/include/redis.h" # you most likely want to change this
|
|
dnl if test -r $PHP_REDIS/$SEARCH_FOR; then # path given as parameter
|
|
dnl REDIS_DIR=$PHP_REDIS
|
|
dnl else # search default path list
|
|
dnl AC_MSG_CHECKING([for redis files in default path])
|
|
dnl for i in $SEARCH_PATH ; do
|
|
dnl if test -r $i/$SEARCH_FOR; then
|
|
dnl REDIS_DIR=$i
|
|
dnl AC_MSG_RESULT(found in $i)
|
|
dnl fi
|
|
dnl done
|
|
dnl fi
|
|
dnl
|
|
dnl if test -z "$REDIS_DIR"; then
|
|
dnl AC_MSG_RESULT([not found])
|
|
dnl AC_MSG_ERROR([Please reinstall the redis distribution])
|
|
dnl fi
|
|
|
|
dnl # --with-redis -> add include path
|
|
dnl PHP_ADD_INCLUDE($REDIS_DIR/include)
|
|
|
|
dnl # --with-redis -> check for lib and symbol presence
|
|
dnl LIBNAME=redis # you may want to change this
|
|
dnl LIBSYMBOL=redis # you most likely want to change this
|
|
|
|
dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
|
|
dnl [
|
|
dnl PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $REDIS_DIR/lib, REDIS_SHARED_LIBADD)
|
|
dnl AC_DEFINE(HAVE_REDISLIB,1,[ ])
|
|
dnl ],[
|
|
dnl AC_MSG_ERROR([wrong redis lib version or lib not found])
|
|
dnl ],[
|
|
dnl -L$REDIS_DIR/lib -lm -ldl
|
|
dnl ])
|
|
dnl
|
|
dnl PHP_SUBST(REDIS_SHARED_LIBADD)
|
|
|
|
PHP_NEW_EXTENSION(redis, redis.c redis_commands.c library.c redis_session.c redis_array.c redis_array_impl.c redis_cluster.c cluster_library.c redis_sentinel.c sentinel_library.c $lzf_sources, $ext_shared)
|
|
fi
|