]> granicus.if.org Git - apache/blobdiff - acinclude.m4
replace recent AJP direct comparisons to APR_TIMEUP with APR_STATUS_IS_TIMEUP.
[apache] / acinclude.m4
index e9dcec84253571a2a310e75a7a22b375cbff23d9..852f5333e789c5b0491327b70a967f1453a59963 100644 (file)
@@ -80,8 +80,6 @@ AC_DEFUN(APACHE_GEN_CONFIG_VARS,[
   APACHE_SUBST(MODULE_CLEANDIRS)
   APACHE_SUBST(PORT)
   APACHE_SUBST(SSLPORT)
-  APACHE_SUBST(nonssl_listen_stmt_1)
-  APACHE_SUBST(nonssl_listen_stmt_2)
   APACHE_SUBST(CORE_IMPLIB_FILE)
   APACHE_SUBST(CORE_IMPLIB)
   APACHE_SUBST(SH_LIBS)
@@ -200,6 +198,68 @@ EOF
   fi
 ])dnl
 
+dnl
+dnl APACHE_MPM_MODULE(name[, shared[, objects[, config[, path[, libs]]]]])
+dnl
+dnl Provide information for building the MPM.  (Enablement is handled using
+dnl --with-mpm/--enable-mpms-shared.)
+dnl
+dnl name     -- name of MPM, same as MPM directory name
+dnl shared   -- "shared" to indicate shared module build, empty string otherwise
+dnl objects  -- one or more .lo files to link into the MPM module (default: mpmname.lo)
+dnl config   -- configuration logic to run if the MPM is enabled
+dnl path     -- relative path to MPM (default: server/mpm/mpmname)
+dnl libs     -- libs needed by this MPM
+dnl
+AC_DEFUN(APACHE_MPM_MODULE,[
+    if ap_mpm_is_enabled $1; then
+        if test -z "$3"; then
+            objects="$1.lo"
+        else
+            objects="$3"
+        fi
+
+        if test -z "$5"; then
+            mpmpath="server/mpm/$1"
+        else
+            mpmpath=$5
+        fi
+
+        dnl VPATH support
+        test -d $mpmpath || $srcdir/build/mkdir.sh $mpmpath
+
+        APACHE_FAST_OUTPUT($mpmpath/Makefile)
+
+        if test -z "$2"; then
+            APR_ADDTO(AP_LIBS, [$6])
+            libname="lib$1.la"
+            cat >$mpmpath/modules.mk<<EOF
+$libname: $objects
+       \$(MOD_LINK) $objects
+DISTCLEAN_TARGETS = modules.mk
+static = $libname
+shared =
+EOF
+        else
+            apache_need_shared=yes
+            libname="mod_mpm_$1.la"
+            shobjects=`echo $objects | sed 's/\.lo/.slo/g'`
+            cat >$mpmpath/modules.mk<<EOF
+$libname: $shobjects
+       \$(SH_LINK) -rpath \$(libexecdir) -module -avoid-version $objects $6
+DISTCLEAN_TARGETS = modules.mk
+static =
+shared = $libname
+EOF
+            # add default MPM to LoadModule list
+            if test $1 = $default_mpm; then
+                DSO_MODULES="$DSO_MODULES mpm_$1"
+            fi
+        fi
+        $4
+    fi
+])dnl
+
 dnl
 dnl APACHE_MODULE(name, helptext[, objects[, structname[, default[, config]]]])
 dnl
@@ -212,7 +272,8 @@ dnl   ""     -- disabled under default, most. enabled explicitly or with all.
 dnl
 dnl basically: yes/no is a hard setting. "most" means follow the "most"
 dnl            setting. otherwise, fall under the "all" setting.
-dnl            explicit yes/no always overrides.
+dnl            explicit yes/no always overrides, except if the user selects
+dnl            "reallyall".
 dnl
 AC_DEFUN(APACHE_MODULE,[
   AC_MSG_CHECKING(whether to enable mod_$1)
@@ -220,32 +281,42 @@ AC_DEFUN(APACHE_MODULE,[
   AC_ARG_ENABLE(translit($1,_,-),APACHE_HELP_STRING(optname(),$2),,enable_$1=ifelse($5,,maybe-all,$5))
   undefine([optname])dnl
   _apmod_extra_msg=""
-  dnl When --enable-modules=most is set and the module was not explicitly
-  dnl requested, allow a module to disable itself if its pre-reqs fail.
-  if test "$module_selection" = "most" -a "$enable_$1" = "most"; then
+  dnl When --enable-modules=most or --enable-modules=reallyall is set and the
+  dnl module was not explicitly requested, allow a module to disable itself if
+  dnl its pre-reqs fail.
+  dnl XXX: Todo: Allow to disable specific modules even with "reallyall".
+  if test "$module_selection" = "most" -a "$enable_$1" = "most" ||
+     test "$module_selection" = "reallyall" -a "$enable_$1" != "yes" -a \
+          "$enable_$1" != "static"
+  then
     _apmod_error_fatal="no"
   else
     _apmod_error_fatal="yes"
   fi
   if test "$enable_$1" = "static"; then
-    enable_$1=yes
+    enable_$1=static
   elif test "$enable_$1" = "yes"; then
     enable_$1=$module_default
-    _apmod_extra_msg=" ($module_selection)"
   elif test "$enable_$1" = "most"; then
-    if test "$module_selection" = "most" -o "$module_selection" = "all"; then
+    if test "$module_selection" = "most" -o "$module_selection" = "all" -o \
+            "$module_selection" = "reallyall"
+    then
       enable_$1=$module_default
-      _apmod_extra_msg=" ($module_selection)"
-    elif test "$enable_$1" != "yes"; then
+    elif test "$module_selection" = "few" -o "$module_selection" = "none"; then
       enable_$1=no
     fi
+    _apmod_extra_msg=" ($module_selection)"
   elif test "$enable_$1" = "maybe-all"; then
-    if test "$module_selection" = "all"; then
+    if test "$module_selection" = "all" -o "$module_selection" = "reallyall"
+    then
       enable_$1=$module_default
-      _apmod_extra_msg=" (all)"
+      _apmod_extra_msg=" ($module_selection)"
     else
       enable_$1=no
     fi
+  elif test "$enable_$1" = "no" -a "$module_selection" = "reallyall"; then
+      enable_$1=$module_default
+      _apmod_extra_msg=" ($module_selection)"
   fi
   if test "$enable_$1" != "no"; then
     dnl If we plan to enable it, allow the module to run some autoconf magic
@@ -264,18 +335,18 @@ AC_DEFUN(APACHE_MODULE,[
   AC_MSG_RESULT($enable_$1$_apmod_extra_msg)
   if test "$enable_$1" != "no"; then
     case "$enable_$1" in
-    shared*)
-      enable_$1=`echo $enable_$1|sed 's/shared,*//'`
-      sharedobjs=yes
-      shared=yes
-      DSO_MODULES="$DSO_MODULES $1"
-      ;;
-    *)
+    static*)
       MODLIST="$MODLIST ifelse($4,,$1,$4)"
       if test "$1" = "so"; then
           sharedobjs=yes
       fi
       shared="";;
+    *)
+      enable_$1=`echo $enable_$1|sed 's/shared,*//'`
+      sharedobjs=yes
+      shared=yes
+      DSO_MODULES="$DSO_MODULES $1"
+      ;;
     esac
     define([modprefix], [MOD_]translit($1, [a-z-], [A-Z_]))
     APACHE_MODPATH_ADD($1, $shared, $3,, [\$(]modprefix[_LDADD)])
@@ -288,30 +359,42 @@ dnl
 dnl APACHE_ENABLE_MODULES
 dnl
 AC_DEFUN(APACHE_ENABLE_MODULES,[
-  module_selection=default
-  module_default=yes
+  module_selection=most
+  module_default=shared
+
+  dnl Check whether we have DSO support.
+  dnl If "yes", we build shared modules by default.
+  APR_CHECK_APR_DEFINE(APR_HAS_DSO)
+
+  if test $ac_cv_define_APR_HAS_DSO = "no"; then
+    AC_MSG_WARN([Missing DSO support - building static modules by default.])
+    module_default=static
+  fi
+
 
   AC_ARG_ENABLE(modules,
-  APACHE_HELP_STRING(--enable-modules=MODULE-LIST,Space-separated list of modules to enable | "all" | "most" | "none"),[
+  APACHE_HELP_STRING(--enable-modules=MODULE-LIST,Space-separated list of modules to enable | "all" | "most" | "few" | "none"| "reallyall"),[
     if test "$enableval" = "none"; then
        module_default=no
        module_selection=none
     else
       for i in $enableval; do
-        if test "$i" = "all" -o "$i" = "most"; then
+        if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"
+        then
           module_selection=$i
         else
           i=`echo $i | sed 's/-/_/g'`
-          eval "enable_$i=yes"
+          eval "enable_$i=shared"
         fi
       done
     fi
   ])
   
   AC_ARG_ENABLE(mods-shared,
-  APACHE_HELP_STRING(--enable-mods-shared=MODULE-LIST,Space-separated list of shared modules to enable | "all" | "most"),[
+  APACHE_HELP_STRING(--enable-mods-shared=MODULE-LIST,Space-separated list of shared modules to enable | "all" | "most" | "few"| "reallyall"),[
     for i in $enableval; do
-      if test "$i" = "all" -o "$i" = "most"; then
+      if test "$i" = "all" -o "$i" = "most" -o "$i" = "few" -o "$i" = "reallyall"
+      then
         module_selection=$i
         module_default=shared
       else
@@ -320,6 +403,19 @@ AC_DEFUN(APACHE_ENABLE_MODULES,[
       fi
     done
   ])
+  
+  AC_ARG_ENABLE(mods-static,
+  APACHE_HELP_STRING(--enable-mods-static=MODULE-LIST,Space-separated list of static modules to enable | "all" | "most" | "few"),[
+    for i in $enableval; do
+      if test "$i" = "all" -o "$i" = "most" -o "$i" = "few"; then
+        module_selection=$i
+        module_default=static
+      else
+        i=`echo $i | sed 's/-/_/g'`
+       eval "enable_$i=static"
+      fi
+    done
+  ])
 ])
 
 AC_DEFUN(APACHE_REQUIRE_CXX,[
@@ -493,6 +589,48 @@ if test "x$ap_ssltk_configured" = "x"; then
 fi
 ])
 
+dnl
+dnl APACHE_CHECK_SERF
+dnl
+dnl Configure for the detected libserf, giving preference to
+dnl "--with-serf=<path>" if it was specified.
+dnl
+AC_DEFUN([APACHE_CHECK_SERF], [
+  AC_CACHE_CHECK([for libserf], [ac_cv_serf], [
+    ac_cv_serf=no
+    serf_prefix=/usr
+    SERF_LIBS=""
+    AC_ARG_WITH(serf, APACHE_HELP_STRING([--with-serf=PREFIX],
+                                    [Serf client library]),
+    [
+        if test "$withval" = "yes" ; then
+          serf_prefix=/usr
+        else
+          serf_prefix=$withval
+        fi
+    ])
+
+    if test "$serf_prefix" != "no" ; then
+      save_cppflags="$CPPFLAGS"
+      CPPFLAGS="$CPPFLAGS $APR_INCLUDES $APU_INCLUDES -I$serf_prefix/include/serf-0"
+      AC_CHECK_HEADERS(serf.h,[
+        save_ldflags="$LDFLAGS"
+        LDFLAGS="$LDFLAGS -L$serf_prefix/lib"
+        AC_CHECK_LIB(serf-0, serf_context_create,[ac_cv_serf="yes"])
+        LDFLAGS="$save_ldflags"])
+      CPPFLAGS="$save_cppflags"
+    fi
+  ])
+
+  APACHE_SUBST(SERF_LIBS)
+  if test "$ac_cv_serf" = "yes"; then
+    AC_DEFINE(HAVE_SERF, 1, [Define if libserf is available])
+    APR_SETVAR(SERF_LIBS, [-L$serf_prefix/lib -lserf-0])
+    APR_ADDTO(INCLUDES, [-I$serf_prefix/include/serf-0])
+  fi
+])
+
+
 dnl
 dnl APACHE_EXPORT_ARGUMENTS
 dnl Export (via APACHE_SUBST) the various path-related variables that