Blame modules/cache/config.m4

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