mirror of
https://github.com/php/pecl-caching-memcache.git
synced 2026-03-23 22:42:08 +01:00
improve session support by using PHP_ADD_EXTENSION_DEP() macro, when possible.
this makes it possible to disable session support and also memcache's ./configure will fail gracefully if you enable it, but ext/session is missing.
This commit is contained in:
71
config.m4
71
config.m4
@@ -1,71 +1,4 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl this file is required by phpize
|
||||
|
||||
PHP_ARG_ENABLE(memcache, whether to enable memcache support,
|
||||
[ --enable-memcache Enable memcache support])
|
||||
|
||||
if test -z "$PHP_ZLIB_DIR"; then
|
||||
PHP_ARG_WITH(zlib-dir, for the location of ZLIB,
|
||||
[ --with-zlib-dir[=DIR] memcache: Set the path to ZLIB install prefix.], no, 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_MEMCACHE" != "no"; then
|
||||
|
||||
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; 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
|
||||
|
||||
dnl # zlib
|
||||
AC_MSG_CHECKING([for the location of zlib])
|
||||
if test "$PHP_ZLIB_DIR" = "no"; then
|
||||
AC_MSG_ERROR([memcache support requires ZLIB. Use --with-zlib-dir=<DIR> to specify prefix where ZLIB include and library are located])
|
||||
else
|
||||
AC_MSG_RESULT([$PHP_ZLIB_DIR])
|
||||
PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_DIR/lib, MEMCACHE_SHARED_LIBADD)
|
||||
PHP_ADD_INCLUDE($PHP_ZLIB_INCDIR)
|
||||
fi
|
||||
|
||||
dnl # optional session support
|
||||
CPPFLAGS="$CPPFLAGS $INCLUDES"
|
||||
AC_CHECK_HEADERS(php.h ext/session/php_session.h,,,
|
||||
[[
|
||||
#if HAVE_PHP_H
|
||||
#include "php.h"
|
||||
#endif
|
||||
]])
|
||||
|
||||
if test "$PHP_DEBUG" = "yes"; then
|
||||
CFLAGS="$CFLAGS -Wall"
|
||||
fi
|
||||
|
||||
AC_DEFINE(HAVE_MEMCACHE,1,[Whether you want memcache support])
|
||||
PHP_NEW_EXTENSION(memcache, memcache.c memcache_session.c, $ext_shared)
|
||||
fi
|
||||
sinclude(config9.m4)
|
||||
|
||||
101
config9.m4
Normal file
101
config9.m4
Normal file
@@ -0,0 +1,101 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
PHP_ARG_ENABLE(memcache, whether to enable memcache support,
|
||||
[ --enable-memcache Enable memcache support])
|
||||
|
||||
PHP_ARG_ENABLE(memcache-session, whether to enable memcache session handler support,
|
||||
[ --disable-memcache-session Disable memcache session handler support], yes)
|
||||
|
||||
if test -z "$PHP_ZLIB_DIR"; then
|
||||
PHP_ARG_WITH(zlib-dir, for the location of ZLIB,
|
||||
[ --with-zlib-dir[=DIR] memcache: Set the path to ZLIB install prefix.], no, 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_MEMCACHE" != "no"; then
|
||||
|
||||
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; 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
|
||||
|
||||
dnl # zlib
|
||||
AC_MSG_CHECKING([for the location of zlib])
|
||||
if test "$PHP_ZLIB_DIR" = "no"; then
|
||||
AC_MSG_ERROR([memcache support requires ZLIB. Use --with-zlib-dir=<DIR> to specify prefix where ZLIB include and library are located])
|
||||
else
|
||||
AC_MSG_RESULT([$PHP_ZLIB_DIR])
|
||||
PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_DIR/lib, MEMCACHE_SHARED_LIBADD)
|
||||
PHP_ADD_INCLUDE($PHP_ZLIB_INCDIR)
|
||||
fi
|
||||
|
||||
|
||||
if test "$PHP_MEMCACHE_SESSION" != "no"; then
|
||||
AC_MSG_CHECKING([for session includes])
|
||||
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 $prefix/include/php/ext/session/php_session.h; then
|
||||
session_inc_path=$prefix/include/php
|
||||
else
|
||||
session_inc_path=""
|
||||
fi
|
||||
|
||||
if test "$session_inc_path" = ""; then
|
||||
AC_MSG_ERROR([Cannot find php_session.h])
|
||||
else
|
||||
AC_MSG_RESULT([$session_inc_path])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([for memcache session support])
|
||||
if test "$PHP_MEMCACHE_SESSION" != "no"; then
|
||||
AC_MSG_RESULT([enabled])
|
||||
AC_DEFINE(HAVE_MEMCACHE_SESSION,1,[Whether memcache session handler is enabled])
|
||||
AC_DEFINE(HAVE_MEMCACHE,1,[Whether you want memcache support])
|
||||
PHP_NEW_EXTENSION(memcache, memcache.c memcache_session.c, $ext_shared,,-I$session_inc_path)
|
||||
ifdef([PHP_ADD_EXTENSION_DEP],
|
||||
[
|
||||
PHP_ADD_EXTENSION_DEP(memcache, session)
|
||||
])
|
||||
else
|
||||
AC_MSG_RESULT([disabled])
|
||||
AC_DEFINE(HAVE_MEMCACHE,1,[Whether you want memcache support])
|
||||
PHP_NEW_EXTENSION(memcache, memcache.c, $ext_shared)
|
||||
fi
|
||||
|
||||
dnl this is needed to build the extension with phpize and -Wall
|
||||
|
||||
if test "$PHP_DEBUG" = "yes"; then
|
||||
CFLAGS="$CFLAGS -Wall"
|
||||
fi
|
||||
|
||||
fi
|
||||
@@ -43,10 +43,6 @@
|
||||
#include "php_network.h"
|
||||
#include "php_memcache.h"
|
||||
|
||||
#if HAVE_EXT_SESSION_PHP_SESSION_H
|
||||
#include "ext/session/php_session.h"
|
||||
#endif
|
||||
|
||||
#ifndef ZEND_ENGINE_2
|
||||
#define OnUpdateLong OnUpdateInt
|
||||
#endif
|
||||
@@ -249,7 +245,7 @@ PHP_MINIT_FUNCTION(memcache)
|
||||
REGISTER_LONG_CONSTANT("MEMCACHE_COMPRESSED", MMC_COMPRESSED, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_INI_ENTRIES();
|
||||
|
||||
#if HAVE_EXT_SESSION_PHP_SESSION_H
|
||||
#if HAVE_MEMCACHE_SESSION
|
||||
REGISTER_LONG_CONSTANT("MEMCACHE_HAVE_SESSION", 1, CONST_CS | CONST_PERSISTENT);
|
||||
php_session_register_module(ps_memcache_ptr);
|
||||
#else
|
||||
|
||||
@@ -23,18 +23,17 @@
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#if HAVE_MEMCACHE && HAVE_EXT_SESSION_PHP_SESSION_H
|
||||
|
||||
#include <ctype.h>
|
||||
#include "php.h"
|
||||
#include "php_ini.h"
|
||||
#include "php_variables.h"
|
||||
|
||||
#include "SAPI.h"
|
||||
#include "ext/session/php_session.h"
|
||||
#include "ext/standard/url.h"
|
||||
#include "php_memcache.h"
|
||||
|
||||
#if HAVE_MEMCACHE_SESSION
|
||||
|
||||
ps_module ps_mod_memcache = {
|
||||
PS_MOD(memcache)
|
||||
};
|
||||
@@ -214,7 +213,7 @@ PS_GC_FUNC(memcache)
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
#endif /* HAVE_MEMCACHE && HAVE_EXT_SESSION_PHP_SESSION_H */
|
||||
#endif /* HAVE_MEMCACHE_SESSION */
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
|
||||
@@ -126,7 +126,7 @@ int mmc_exec_retrieval_cmd(mmc_pool_t *, const char *, int, zval ** TSRMLS_DC);
|
||||
int mmc_delete(mmc_t *, const char *, int, int TSRMLS_DC);
|
||||
|
||||
/* session handler struct */
|
||||
#if HAVE_EXT_SESSION_PHP_SESSION_H
|
||||
#if HAVE_MEMCACHE_SESSION
|
||||
#include "ext/session/php_session.h"
|
||||
|
||||
extern ps_module ps_mod_memcache;
|
||||
|
||||
Reference in New Issue
Block a user