summaryrefslogtreecommitdiff
path: root/build/ac-macros/apache.m4
diff options
context:
space:
mode:
Diffstat (limited to 'build/ac-macros/apache.m4')
-rw-r--r--build/ac-macros/apache.m4178
1 files changed, 178 insertions, 0 deletions
diff --git a/build/ac-macros/apache.m4 b/build/ac-macros/apache.m4
new file mode 100644
index 0000000..196ad79
--- /dev/null
+++ b/build/ac-macros/apache.m4
@@ -0,0 +1,178 @@
+dnl ===================================================================
+dnl Licensed to the Apache Software Foundation (ASF) under one
+dnl or more contributor license agreements. See the NOTICE file
+dnl distributed with this work for additional information
+dnl regarding copyright ownership. The ASF licenses this file
+dnl to you under the Apache License, Version 2.0 (the
+dnl "License"); you may not use this file except in compliance
+dnl with the License. You may obtain a copy of the License at
+dnl
+dnl http://www.apache.org/licenses/LICENSE-2.0
+dnl
+dnl Unless required by applicable law or agreed to in writing,
+dnl software distributed under the License is distributed on an
+dnl "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+dnl KIND, either express or implied. See the License for the
+dnl specific language governing permissions and limitations
+dnl under the License.
+dnl ===================================================================
+dnl
+dnl Macros to find an Apache installation
+dnl
+dnl This will find an installed Apache.
+dnl
+dnl Note: If we don't have an installed Apache, then we can't install the
+dnl (dynamic) mod_dav_svn.so module.
+dnl
+
+AC_DEFUN(SVN_FIND_APACHE,[
+AC_REQUIRE([AC_CANONICAL_HOST])
+
+HTTPD_WANTED_MMN="$1"
+
+AC_MSG_CHECKING(for Apache module support via DSO through APXS)
+AC_ARG_WITH(apxs,
+ [AS_HELP_STRING([[--with-apxs[=FILE]]],
+ [Build shared Apache modules. FILE is the optional
+ pathname to the Apache apxs tool; defaults to
+ "apxs".])],
+[
+ if test "$withval" = "yes"; then
+ APXS=apxs
+ else
+ APXS="$withval"
+ fi
+ APXS_EXPLICIT=1
+])
+
+if test -z "$APXS"; then
+ for i in /usr/sbin /usr/local/apache/bin /usr/local/apache2/bin /usr/bin ; do
+ if test -f "$i/apxs2"; then
+ APXS="$i/apxs2"
+ break
+ fi
+ if test -f "$i/apxs"; then
+ APXS="$i/apxs"
+ break
+ fi
+ done
+fi
+
+if test -n "$APXS" && test "$APXS" != "no"; then
+ APXS_INCLUDE="`$APXS -q INCLUDEDIR`"
+ if test -r $APXS_INCLUDE/mod_dav.h; then
+ AC_MSG_RESULT(found at $APXS)
+
+ AC_MSG_CHECKING([httpd version])
+ AC_EGREP_CPP(VERSION_OKAY,
+ [
+#include "$APXS_INCLUDE/ap_mmn.h"
+#if AP_MODULE_MAGIC_AT_LEAST($HTTPD_WANTED_MMN,0)
+VERSION_OKAY
+#endif],
+ [AC_MSG_RESULT([recent enough])],
+ [AC_MSG_RESULT([apache too old: mmn must be at least $HTTPD_WANTED_MMN])
+ if test "$APXS_EXPLICIT" != ""; then
+ AC_MSG_ERROR([Apache APXS build explicitly requested, but apache version is too old])
+ fi
+ APXS=""
+ ])
+
+ elif test "$APXS_EXPLICIT" != ""; then
+ AC_MSG_ERROR([no - APXS refers to an old version of Apache
+ Unable to locate $APXS_INCLUDE/mod_dav.h])
+ else
+ AC_MSG_RESULT(no - Unable to locate $APXS_INCLUDE/mod_dav.h)
+ APXS=""
+ fi
+else
+ AC_MSG_RESULT(no)
+fi
+
+if test -n "$APXS" && test "$APXS" != "no"; then
+ AC_MSG_CHECKING([whether Apache version is compatible with APR version])
+ apr_major_version="${apr_version%%.*}"
+ case "$apr_major_version" in
+ 0)
+ apache_minor_version_wanted_regex="0"
+ ;;
+ 1)
+ apache_minor_version_wanted_regex=["[1-4]"]
+ ;;
+ 2)
+ apache_minor_version_wanted_regex=["[3-4]"]
+ ;;
+ *)
+ AC_MSG_ERROR([unknown APR version])
+ ;;
+ esac
+ old_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
+ AC_EGREP_CPP([apache_minor_version= *\"$apache_minor_version_wanted_regex\"],
+ [
+#include "$APXS_INCLUDE/ap_release.h"
+apache_minor_version=AP_SERVER_MINORVERSION],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ AC_MSG_ERROR([Apache version incompatible with APR version])])
+ CPPFLAGS="$old_CPPFLAGS"
+fi
+
+AC_ARG_WITH(apache-libexecdir,
+ [AS_HELP_STRING([[--with-apache-libexecdir[=PATH]]],
+ [Install Apache modules to PATH instead of Apache's
+ configured modules directory; PATH "no"
+ or --without-apache-libexecdir means install
+ to LIBEXECDIR.])],
+[
+ APACHE_LIBEXECDIR="$withval"
+])
+
+if test -n "$APXS" && test "$APXS" != "no"; then
+ APXS_CC="`$APXS -q CC`"
+ APACHE_INCLUDES="$APACHE_INCLUDES -I$APXS_INCLUDE"
+
+ if test -z "$APACHE_LIBEXECDIR"; then
+ APACHE_LIBEXECDIR="`$APXS -q libexecdir`"
+ elif test "$APACHE_LIBEXECDIR" = 'no'; then
+ APACHE_LIBEXECDIR="$libexecdir"
+ fi
+
+ BUILD_APACHE_RULE=apache-mod
+ INSTALL_APACHE_RULE=install-mods-shared
+
+ case $host in
+ *-*-cygwin*)
+ APACHE_LDFLAGS="-shrext .so"
+ ;;
+ esac
+else
+ echo "=================================================================="
+ echo "WARNING: skipping the build of mod_dav_svn"
+ echo " try using --with-apxs"
+ echo "=================================================================="
+fi
+
+AC_SUBST(APXS)
+AC_SUBST(APACHE_LDFLAGS)
+AC_SUBST(APACHE_INCLUDES)
+AC_SUBST(APACHE_LIBEXECDIR)
+
+# there aren't any flags that interest us ...
+#if test -n "$APXS" && test "$APXS" != "no"; then
+# CFLAGS="$CFLAGS `$APXS -q CFLAGS CFLAGS_SHLIB`"
+#fi
+
+if test -n "$APXS_CC" && test "$APXS_CC" != "$CC" ; then
+ echo "=================================================================="
+ echo "WARNING: You have chosen to compile Subversion with a different"
+ echo " compiler than the one used to compile Apache."
+ echo ""
+ echo " Current compiler: $CC"
+ echo " Apache's compiler: $APXS_CC"
+ echo ""
+ echo "This could cause some problems."
+ echo "=================================================================="
+fi
+
+])