summaryrefslogtreecommitdiffstats
path: root/modules/md/config2.m4
diff options
context:
space:
mode:
Diffstat (limited to 'modules/md/config2.m4')
-rw-r--r--modules/md/config2.m4311
1 files changed, 311 insertions, 0 deletions
diff --git a/modules/md/config2.m4 b/modules/md/config2.m4
new file mode 100644
index 0000000..11d4f32
--- /dev/null
+++ b/modules/md/config2.m4
@@ -0,0 +1,311 @@
+dnl Licensed to the Apache Software Foundation (ASF) under one or more
+dnl contributor license agreements. See the NOTICE file distributed with
+dnl this work for additional information regarding copyright ownership.
+dnl The ASF licenses this file to You under the Apache License, Version 2.0
+dnl (the "License"); you may not use this file except in compliance with
+dnl 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, software
+dnl distributed under the License is distributed on an "AS IS" BASIS,
+dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+dnl See the License for the specific language governing permissions and
+dnl limitations under the License.
+
+dnl
+dnl APACHE_CHECK_CURL
+dnl
+dnl Configure for libcurl, giving preference to
+dnl "--with-curl=<path>" if it was specified.
+dnl
+AC_DEFUN([APACHE_CHECK_CURL],[
+ AC_CACHE_CHECK([for curl], [ac_cv_curl], [
+ dnl initialise the variables we use
+ ac_cv_curl=no
+ ap_curl_found=""
+ ap_curl_base=""
+ ap_curl_libs=""
+
+ dnl Determine the curl base directory, if any
+ AC_MSG_CHECKING([for user-provided curl base directory])
+ AC_ARG_WITH(curl, APACHE_HELP_STRING(--with-curl=PATH, curl installation directory), [
+ dnl If --with-curl specifies a directory, we use that directory
+ if test "x$withval" != "xyes" -a "x$withval" != "x"; then
+ dnl This ensures $withval is actually a directory and that it is absolute
+ ap_curl_base="`cd $withval ; pwd`"
+ fi
+ ])
+ if test "x$ap_curl_base" = "x"; then
+ AC_MSG_RESULT(none)
+ else
+ AC_MSG_RESULT($ap_curl_base)
+ fi
+
+ dnl Run header and version checks
+ saved_CPPFLAGS="$CPPFLAGS"
+ saved_LIBS="$LIBS"
+ saved_LDFLAGS="$LDFLAGS"
+
+ dnl Before doing anything else, load in pkg-config variables
+ if test -n "$PKGCONFIG"; then
+ saved_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
+ AC_MSG_CHECKING([for pkg-config along $PKG_CONFIG_PATH])
+ if test "x$ap_curl_base" != "x" ; then
+ if test -f "${ap_curl_base}/lib/pkgconfig/libcurl.pc"; then
+ dnl Ensure that the given path is used by pkg-config too, otherwise
+ dnl the system libcurl.pc might be picked up instead.
+ PKG_CONFIG_PATH="${ap_curl_base}/lib/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
+ export PKG_CONFIG_PATH
+ elif test -f "${ap_curl_base}/lib64/pkgconfig/libcurl.pc"; then
+ dnl Ensure that the given path is used by pkg-config too, otherwise
+ dnl the system libcurl.pc might be picked up instead.
+ PKG_CONFIG_PATH="${ap_curl_base}/lib64/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
+ export PKG_CONFIG_PATH
+ fi
+ fi
+ AC_ARG_ENABLE(curl-staticlib-deps,APACHE_HELP_STRING(--enable-curl-staticlib-deps,[link mod_md with dependencies of libcurl's static libraries (as indicated by "pkg-config --static"). Must be specified in addition to --enable-md.]), [
+ if test "$enableval" = "yes"; then
+ PKGCONFIG_LIBOPTS="--static"
+ fi
+ ])
+ ap_curl_libs="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-l --silence-errors libcurl`"
+ if test $? -eq 0; then
+ ap_curl_found="yes"
+ pkglookup="`$PKGCONFIG --cflags-only-I libcurl`"
+ APR_ADDTO(CPPFLAGS, [$pkglookup])
+ APR_ADDTO(MOD_CFLAGS, [$pkglookup])
+ pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-L libcurl`"
+ APR_ADDTO(LDFLAGS, [$pkglookup])
+ APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
+ pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-other libcurl`"
+ APR_ADDTO(LDFLAGS, [$pkglookup])
+ APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
+ fi
+ PKG_CONFIG_PATH="$saved_PKG_CONFIG_PATH"
+ fi
+
+ dnl fall back to the user-supplied directory if not found via pkg-config
+ if test "x$ap_curl_base" != "x" -a "x$ap_curl_found" = "x"; then
+ APR_ADDTO(CPPFLAGS, [-I$ap_curl_base/include])
+ APR_ADDTO(MOD_CFLAGS, [-I$ap_curl_base/include])
+ APR_ADDTO(LDFLAGS, [-L$ap_curl_base/lib])
+ APR_ADDTO(MOD_LDFLAGS, [-L$ap_curl_base/lib])
+ if test "x$ap_platform_runtime_link_flag" != "x"; then
+ APR_ADDTO(LDFLAGS, [$ap_platform_runtime_link_flag$ap_curl_base/lib])
+ APR_ADDTO(MOD_LDFLAGS, [$ap_platform_runtime_link_flag$ap_curl_base/lib])
+ fi
+ fi
+
+ AC_CHECK_HEADERS([curl/curl.h])
+
+ AC_MSG_CHECKING([for curl version >= 7.29])
+ AC_TRY_COMPILE([#include <curl/curlver.h>],[
+#if !defined(LIBCURL_VERSION_MAJOR)
+#error "Missing libcurl version"
+#endif
+#if LIBCURL_VERSION_MAJOR < 7
+#error "Unsupported libcurl version " LIBCURL_VERSION
+#endif
+#if LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR < 29
+#error "Unsupported libcurl version " LIBCURL_VERSION
+#endif],
+ [AC_MSG_RESULT(OK)
+ ac_cv_curl=yes],
+ [AC_MSG_RESULT(FAILED)])
+
+ if test "x$ac_cv_curl" = "xyes"; then
+ ap_curl_libs="${ap_curl_libs:--lcurl} `$apr_config --libs`"
+ APR_ADDTO(MOD_LDFLAGS, [$ap_curl_libs])
+ APR_ADDTO(LIBS, [$ap_curl_libs])
+ fi
+
+ dnl restore
+ CPPFLAGS="$saved_CPPFLAGS"
+ LIBS="$saved_LIBS"
+ LDFLAGS="$saved_LDFLAGS"
+ ])
+ if test "x$ac_cv_curl" = "xyes"; then
+ AC_DEFINE(HAVE_CURL, 1, [Define if curl is available])
+ fi
+])
+
+
+dnl
+dnl APACHE_CHECK_JANSSON
+dnl
+dnl Configure for libjansson, giving preference to
+dnl "--with-jansson=<path>" if it was specified.
+dnl
+AC_DEFUN([APACHE_CHECK_JANSSON],[
+ AC_CACHE_CHECK([for jansson], [ac_cv_jansson], [
+ dnl initialise the variables we use
+ ac_cv_jansson=no
+ ap_jansson_found=""
+ ap_jansson_base=""
+ ap_jansson_libs=""
+
+ dnl Determine the jansson base directory, if any
+ AC_MSG_CHECKING([for user-provided jansson base directory])
+ AC_ARG_WITH(jansson, APACHE_HELP_STRING(--with-jansson=PATH, jansson installation directory), [
+ dnl If --with-jansson specifies a directory, we use that directory
+ if test "x$withval" != "xyes" -a "x$withval" != "x"; then
+ dnl This ensures $withval is actually a directory and that it is absolute
+ ap_jansson_base="`cd $withval ; pwd`"
+ fi
+ ])
+ if test "x$ap_jansson_base" = "x"; then
+ AC_MSG_RESULT(none)
+ else
+ AC_MSG_RESULT($ap_jansson_base)
+ fi
+
+ dnl Run header and version checks
+ saved_CPPFLAGS="$CPPFLAGS"
+ saved_LIBS="$LIBS"
+ saved_LDFLAGS="$LDFLAGS"
+
+ dnl Before doing anything else, load in pkg-config variables
+ if test -n "$PKGCONFIG"; then
+ saved_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
+ AC_MSG_CHECKING([for pkg-config along $PKG_CONFIG_PATH])
+ if test "x$ap_jansson_base" != "x" ; then
+ if test -f "${ap_jansson_base}/lib/pkgconfig/libjansson.pc"; then
+ dnl Ensure that the given path is used by pkg-config too, otherwise
+ dnl the system libjansson.pc might be picked up instead.
+ PKG_CONFIG_PATH="${ap_jansson_base}/lib/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
+ export PKG_CONFIG_PATH
+ elif test -f "${ap_jansson_base}/lib64/pkgconfig/libjansson.pc"; then
+ dnl Ensure that the given path is used by pkg-config too, otherwise
+ dnl the system libjansson.pc might be picked up instead.
+ PKG_CONFIG_PATH="${ap_jansson_base}/lib64/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
+ export PKG_CONFIG_PATH
+ fi
+ fi
+ AC_ARG_ENABLE(jansson-staticlib-deps,APACHE_HELP_STRING(--enable-jansson-staticlib-deps,[link mod_md with dependencies of libjansson's static libraries (as indicated by "pkg-config --static"). Must be specified in addition to --enable-md.]), [
+ if test "$enableval" = "yes"; then
+ PKGCONFIG_LIBOPTS="--static"
+ fi
+ ])
+ ap_jansson_libs="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-l --silence-errors libjansson`"
+ if test $? -eq 0; then
+ ap_jansson_found="yes"
+ pkglookup="`$PKGCONFIG --cflags-only-I libjansson`"
+ APR_ADDTO(CPPFLAGS, [$pkglookup])
+ APR_ADDTO(MOD_CFLAGS, [$pkglookup])
+ pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-L libjansson`"
+ APR_ADDTO(LDFLAGS, [$pkglookup])
+ APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
+ pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-other libjansson`"
+ APR_ADDTO(LDFLAGS, [$pkglookup])
+ APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
+ fi
+ PKG_CONFIG_PATH="$saved_PKG_CONFIG_PATH"
+ fi
+
+ dnl fall back to the user-supplied directory if not found via pkg-config
+ if test "x$ap_jansson_base" != "x" -a "x$ap_jansson_found" = "x"; then
+ APR_ADDTO(CPPFLAGS, [-I$ap_jansson_base/include])
+ APR_ADDTO(MOD_CFLAGS, [-I$ap_jansson_base/include])
+ APR_ADDTO(LDFLAGS, [-L$ap_jansson_base/lib])
+ APR_ADDTO(MOD_LDFLAGS, [-L$ap_jansson_base/lib])
+ if test "x$ap_platform_runtime_link_flag" != "x"; then
+ APR_ADDTO(LDFLAGS, [$ap_platform_runtime_link_flag$ap_jansson_base/lib])
+ APR_ADDTO(MOD_LDFLAGS, [$ap_platform_runtime_link_flag$ap_jansson_base/lib])
+ fi
+ fi
+
+ # attempts to include jansson.h fail me. So lets make sure we can at least
+ # include its other header file
+ AC_TRY_COMPILE([#include <jansson_config.h>],[],
+ [AC_MSG_RESULT(OK)
+ ac_cv_jansson=yes],
+ [AC_MSG_RESULT(FAILED)])
+
+ if test "x$ac_cv_jansson" = "xyes"; then
+ ap_jansson_libs="${ap_jansson_libs:--ljansson} `$apr_config --libs`"
+ APR_ADDTO(MOD_LDFLAGS, [$ap_jansson_libs])
+ APR_ADDTO(LIBS, [$ap_jansson_libs])
+ fi
+
+ dnl restore
+ CPPFLAGS="$saved_CPPFLAGS"
+ LIBS="$saved_LIBS"
+ LDFLAGS="$saved_LDFLAGS"
+ ])
+ if test "x$ac_cv_jansson" = "xyes"; then
+ AC_DEFINE(HAVE_JANSSON, 1, [Define if jansson is available])
+ fi
+])
+
+
+dnl # start of module specific part
+APACHE_MODPATH_INIT(md)
+
+dnl # list of module object files
+md_objs="dnl
+md_acme.lo dnl
+md_acme_acct.lo dnl
+md_acme_authz.lo dnl
+md_acme_drive.lo dnl
+md_acmev2_drive.lo dnl
+md_acme_order.lo dnl
+md_core.lo dnl
+md_curl.lo dnl
+md_crypt.lo dnl
+md_event.lo dnl
+md_http.lo dnl
+md_json.lo dnl
+md_jws.lo dnl
+md_log.lo dnl
+md_ocsp.lo dnl
+md_result.lo dnl
+md_reg.lo dnl
+md_status.lo dnl
+md_store.lo dnl
+md_store_fs.lo dnl
+md_tailscale.lo dnl
+md_time.lo dnl
+md_util.lo dnl
+mod_md.lo dnl
+mod_md_config.lo dnl
+mod_md_drive.lo dnl
+mod_md_ocsp.lo dnl
+mod_md_os.lo dnl
+mod_md_status.lo dnl
+"
+
+# Ensure that other modules can pick up mod_md.h
+APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
+
+dnl # hook module into the Autoconf mechanism (--enable-md)
+APACHE_MODULE(md, [Managed Domain handling], $md_objs, , most, [
+ APACHE_CHECK_OPENSSL
+ if test "x$ac_cv_openssl" = "xno" ; then
+ AC_MSG_WARN([libssl (or compatible) not found])
+ enable_md=no
+ fi
+
+ APACHE_CHECK_JANSSON
+ if test "x$ac_cv_jansson" != "xyes" ; then
+ AC_MSG_WARN([libjansson not found])
+ enable_md=no
+ fi
+
+ APACHE_CHECK_CURL
+ if test "x$ac_cv_curl" != "xyes" ; then
+ AC_MSG_WARN([libcurl not found])
+ enable_md=no
+ fi
+
+ AC_CHECK_FUNCS([arc4random_buf],
+ [APR_ADDTO(MOD_CPPFLAGS, ["-DMD_HAVE_ARC4RANDOM"])], [])
+
+ if test "x$enable_md" = "xshared"; then
+ APR_ADDTO(MOD_MD_LDADD, [-export-symbols-regex md_module])
+ fi
+])
+
+dnl # end of module specific part
+APACHE_MODPATH_FINISH
+