| dnl modules enabled in this directory by default | |
| dnl APACHE_MODULE(name, helptext[, objects[, structname[, default[, config]]]]) | |
| APACHE_MODPATH_INIT(cache) | |
| APACHE_MODULE(file_cache, File cache, , , most) | |
| dnl # list of object files for mod_cache | |
| cache_objs="dnl | |
| mod_cache.lo dnl | |
| cache_storage.lo dnl | |
| cache_util.lo dnl | |
| " | |
| cache_disk_objs="mod_cache_disk.lo" | |
| cache_socache_objs="mod_cache_socache.lo" | |
| case "$host" in | |
| *os2*) | |
| # OS/2 DLLs must resolve all symbols at build time | |
| # and we need some from main cache module | |
| cache_disk_objs="$cache_disk_objs mod_cache.la" | |
| cache_socache_objs="$cache_socache_objs mod_cache.la" | |
| ;; | |
| esac | |
| APACHE_MODULE(cache, dynamic file caching. At least one storage management module (e.g. mod_cache_disk) is also necessary., $cache_objs, , most) | |
| APACHE_MODULE(cache_disk, disk caching module, $cache_disk_objs, , most, , cache) | |
| APACHE_MODULE(cache_socache, shared object caching module, $cache_socache_objs, , most) | |
| dnl | |
| dnl APACHE_CHECK_DISTCACHE | |
| dnl | |
| dnl Configure for the detected distcache installation, giving | |
| dnl preference to "--with-distcache=<path>" if it was specified. | |
| dnl | |
| AC_DEFUN([APACHE_CHECK_DISTCACHE],[ | |
| if test "x$ap_distcache_configured" = "x"; then | |
| dnl initialise the variables we use | |
| ap_distcache_found="" | |
| ap_distcache_base="" | |
| ap_distcache_libs="" | |
| ap_distcache_ldflags="" | |
| ap_distcache_with="" | |
| dnl Determine the distcache base directory, if any | |
| AC_MSG_CHECKING([for user-provided distcache base]) | |
| AC_ARG_WITH(distcache, APACHE_HELP_STRING(--with-distcache=PATH, Distcache installation directory), [ | |
| dnl If --with-distcache specifies a directory, we use that directory or fail | |
| if test "x$withval" != "xyes" -a "x$withval" != "x"; then | |
| dnl This ensures $withval is actually a directory and that it is absolute | |
| ap_distcache_with="yes" | |
| ap_distcache_base="`cd $withval ; pwd`" | |
| fi | |
| ]) | |
| if test "x$ap_distcache_base" = "x"; then | |
| AC_MSG_RESULT(none) | |
| else | |
| AC_MSG_RESULT($ap_distcache_base) | |
| fi | |
| dnl Run header and version checks | |
| saved_CPPFLAGS="$CPPFLAGS" | |
| saved_LIBS="$LIBS" | |
| saved_LDFLAGS="$LDFLAGS" | |
| if test "x$ap_distcache_base" != "x"; then | |
| APR_ADDTO(CPPFLAGS, [-I$ap_distcache_base/include]) | |
| APR_ADDTO(MOD_INCLUDES, [-I$ap_distcache_base/include]) | |
| APR_ADDTO(LDFLAGS, [-L$ap_distcache_base/lib]) | |
| APR_ADDTO(ap_distcache_ldflags, [-L$ap_distcache_base/lib]) | |
| if test "x$ap_platform_runtime_link_flag" != "x"; then | |
| APR_ADDTO(LDFLAGS, [$ap_platform_runtime_link_flag$ap_distcache_base/lib]) | |
| APR_ADDTO(ap_distcache_ldflags, [$ap_platform_runtime_link_flag$ap_distcache_base/lib]) | |
| fi | |
| fi | |
| dnl First check for mandatory headers | |
| AC_CHECK_HEADERS([distcache/dc_client.h], [ap_distcache_found="yes"], []) | |
| if test "$ap_distcache_found" = "yes"; then | |
| dnl test for a good version | |
| AC_MSG_CHECKING(for distcache version) | |
| AC_TRY_COMPILE([#include <distcache/dc_client.h>],[ | |
| #if DISTCACHE_CLIENT_API != 0x0001 | |
| #error "distcache API version is unrecognised" | |
| #endif], | |
| [], | |
| [ap_distcache_found="no"]) | |
| AC_MSG_RESULT($ap_distcache_found) | |
| fi | |
| if test "$ap_distcache_found" != "yes"; then | |
| if test "x$ap_distcache_with" = "x"; then | |
| AC_MSG_WARN([...No distcache detected]) | |
| else | |
| AC_MSG_ERROR([...No distcache detected]) | |
| fi | |
| else | |
| dnl Run library and function checks | |
| AC_MSG_CHECKING(for distcache libraries) | |
| ap_distcache_libs="-ldistcache -lnal" | |
| APR_ADDTO(LIBS, [$ap_distcache_libs]) | |
| AC_TRY_LINK( | |
| [#include <distcache/dc_client.h>], | |
| [DC_CTX *foo = DC_CTX_new((const char *)0,0);], | |
| [], | |
| [ap_distcache_found="no"]) | |
| AC_MSG_RESULT($ap_distcache_found) | |
| if test "$ap_distcache_found" != "yes"; then | |
| if test "x$ap_distcache_base" = "x"; then | |
| AC_MSG_WARN([... Error, distcache libraries were missing or unusable]) | |
| else | |
| AC_MSG_ERROR([... Error, distcache libraries were missing or unusable]) | |
| fi | |
| fi | |
| fi | |
| dnl restore | |
| CPPFLAGS="$saved_CPPFLAGS" | |
| LIBS="$saved_LIBS" | |
| LDFLAGS="$saved_LDFLAGS" | |
| dnl Adjust apache's configuration based on what we found above. | |
| if test "$ap_distcache_found" = "yes"; then | |
| APR_ADDTO(MOD_SOCACHE_DC_LDADD, [$ap_distcache_ldflags $ap_distcache_libs]) | |
| AC_DEFINE(HAVE_DISTCACHE, 1, [Define if distcache support is enabled]) | |
| else | |
| enable_socache_dc=no | |
| fi | |
| ap_distcache_configured="yes" | |
| fi | |
| ]) | |
| APACHE_MODULE(socache_shmcb, shmcb small object cache provider, , , most) | |
| APACHE_MODULE(socache_dbm, dbm small object cache provider, , , most) | |
| APACHE_MODULE(socache_memcache, memcache small object cache provider, , , most) | |
| APACHE_MODULE(socache_redis, redis small object cache provider, , , most) | |
| APACHE_MODULE(socache_dc, distcache small object cache provider, , , no, [ | |
| APACHE_CHECK_DISTCACHE | |
| ]) | |
| APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current]) | |
| APACHE_MODPATH_FINISH |