Blame modules/md/config2.m4

Packit 90a5c9
dnl Licensed to the Apache Software Foundation (ASF) under one or more
Packit 90a5c9
dnl contributor license agreements.  See the NOTICE file distributed with
Packit 90a5c9
dnl this work for additional information regarding copyright ownership.
Packit 90a5c9
dnl The ASF licenses this file to You under the Apache License, Version 2.0
Packit 90a5c9
dnl (the "License"); you may not use this file except in compliance with
Packit 90a5c9
dnl the License.  You may obtain a copy of the License at
Packit 90a5c9
dnl
Packit 90a5c9
dnl      http://www.apache.org/licenses/LICENSE-2.0
Packit 90a5c9
dnl
Packit 90a5c9
dnl Unless required by applicable law or agreed to in writing, software
Packit 90a5c9
dnl distributed under the License is distributed on an "AS IS" BASIS,
Packit 90a5c9
dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit 90a5c9
dnl See the License for the specific language governing permissions and
Packit 90a5c9
dnl limitations under the License.
Packit 90a5c9
Packit 90a5c9
dnl
Packit 90a5c9
dnl APACHE_CHECK_CURL
Packit 90a5c9
dnl
Packit 90a5c9
dnl Configure for libcurl, giving preference to
Packit 90a5c9
dnl "--with-curl=<path>" if it was specified.
Packit 90a5c9
dnl
Packit 90a5c9
AC_DEFUN([APACHE_CHECK_CURL],[
Packit 90a5c9
  AC_CACHE_CHECK([for curl], [ac_cv_curl], [
Packit 90a5c9
    dnl initialise the variables we use
Packit 90a5c9
    ac_cv_curl=no
Packit 90a5c9
    ap_curl_found=""
Packit 90a5c9
    ap_curl_base=""
Packit 90a5c9
    ap_curl_libs=""
Packit 90a5c9
Packit 90a5c9
    dnl Determine the curl base directory, if any
Packit 90a5c9
    AC_MSG_CHECKING([for user-provided curl base directory])
Packit 90a5c9
    AC_ARG_WITH(curl, APACHE_HELP_STRING(--with-curl=PATH, curl installation directory), [
Packit 90a5c9
      dnl If --with-curl specifies a directory, we use that directory
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_curl_base="`cd $withval ; pwd`"
Packit 90a5c9
      fi
Packit 90a5c9
    ])
Packit 90a5c9
    if test "x$ap_curl_base" = "x"; then
Packit 90a5c9
      AC_MSG_RESULT(none)
Packit 90a5c9
    else
Packit 90a5c9
      AC_MSG_RESULT($ap_curl_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
    dnl Before doing anything else, load in pkg-config variables
Packit 90a5c9
    if test -n "$PKGCONFIG"; then
Packit 90a5c9
      saved_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
Packit 90a5c9
      AC_MSG_CHECKING([for pkg-config along $PKG_CONFIG_PATH])
Packit 90a5c9
      if test "x$ap_curl_base" != "x" ; then
Packit 90a5c9
        if test -f "${ap_curl_base}/lib/pkgconfig/libcurl.pc"; then
Packit 90a5c9
          dnl Ensure that the given path is used by pkg-config too, otherwise
Packit 90a5c9
          dnl the system libcurl.pc might be picked up instead.
Packit 90a5c9
          PKG_CONFIG_PATH="${ap_curl_base}/lib/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
Packit 90a5c9
          export PKG_CONFIG_PATH
Packit 90a5c9
        elif test -f "${ap_curl_base}/lib64/pkgconfig/libcurl.pc"; then
Packit 90a5c9
          dnl Ensure that the given path is used by pkg-config too, otherwise
Packit 90a5c9
          dnl the system libcurl.pc might be picked up instead.
Packit 90a5c9
          PKG_CONFIG_PATH="${ap_curl_base}/lib64/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
Packit 90a5c9
          export PKG_CONFIG_PATH
Packit 90a5c9
        fi
Packit 90a5c9
      fi
Packit 90a5c9
      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.]), [
Packit 90a5c9
        if test "$enableval" = "yes"; then
Packit 90a5c9
          PKGCONFIG_LIBOPTS="--static"
Packit 90a5c9
        fi
Packit 90a5c9
      ])
Packit 90a5c9
      ap_curl_libs="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-l --silence-errors libcurl`"
Packit 90a5c9
      if test $? -eq 0; then
Packit 90a5c9
        ap_curl_found="yes"
Packit 90a5c9
        pkglookup="`$PKGCONFIG --cflags-only-I libcurl`"
Packit 90a5c9
        APR_ADDTO(CPPFLAGS, [$pkglookup])
Packit 90a5c9
        APR_ADDTO(MOD_CFLAGS, [$pkglookup])
Packit 90a5c9
        pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-L libcurl`"
Packit 90a5c9
        APR_ADDTO(LDFLAGS, [$pkglookup])
Packit 90a5c9
        APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
Packit 90a5c9
        pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-other libcurl`"
Packit 90a5c9
        APR_ADDTO(LDFLAGS, [$pkglookup])
Packit 90a5c9
        APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
Packit 90a5c9
      fi
Packit 90a5c9
      PKG_CONFIG_PATH="$saved_PKG_CONFIG_PATH"
Packit 90a5c9
    fi
Packit 90a5c9
Packit 90a5c9
    dnl fall back to the user-supplied directory if not found via pkg-config
Packit 90a5c9
    if test "x$ap_curl_base" != "x" -a "x$ap_curl_found" = "x"; then
Packit 90a5c9
      APR_ADDTO(CPPFLAGS, [-I$ap_curl_base/include])
Packit 90a5c9
      APR_ADDTO(MOD_CFLAGS, [-I$ap_curl_base/include])
Packit 90a5c9
      APR_ADDTO(LDFLAGS, [-L$ap_curl_base/lib])
Packit 90a5c9
      APR_ADDTO(MOD_LDFLAGS, [-L$ap_curl_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_curl_base/lib])
Packit 90a5c9
        APR_ADDTO(MOD_LDFLAGS, [$ap_platform_runtime_link_flag$ap_curl_base/lib])
Packit 90a5c9
      fi
Packit 90a5c9
    fi
Packit 90a5c9
Packit 90a5c9
    AC_CHECK_HEADERS([curl/curl.h])
Packit 90a5c9
Packit 90a5c9
    AC_MSG_CHECKING([for curl version >= 7.50])
Packit 90a5c9
    AC_TRY_COMPILE([#include <curl/curlver.h>],[
Packit 90a5c9
#if !defined(LIBCURL_VERSION_MAJOR)
Packit 90a5c9
#error "Missing libcurl version"
Packit 90a5c9
#endif
Packit 90a5c9
#if LIBCURL_VERSION_MAJOR < 7
Packit 90a5c9
#error "Unsupported libcurl version " LIBCURL_VERSION
Packit 90a5c9
#endif
Packit 90a5c9
#if LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR < 50
Packit 90a5c9
#error "Unsupported libcurl version " LIBCURL_VERSION
Packit 90a5c9
#endif],
Packit 90a5c9
      [AC_MSG_RESULT(OK)
Packit 90a5c9
       ac_cv_curl=yes],
Packit 90a5c9
      [AC_MSG_RESULT(FAILED)])
Packit 90a5c9
Packit 90a5c9
    if test "x$ac_cv_curl" = "xyes"; then
Packit 90a5c9
      ap_curl_libs="${ap_curl_libs:--lcurl} `$apr_config --libs`"
Packit 90a5c9
      APR_ADDTO(MOD_LDFLAGS, [$ap_curl_libs])
Packit 90a5c9
      APR_ADDTO(LIBS, [$ap_curl_libs])
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
  if test "x$ac_cv_curl" = "xyes"; then
Packit 90a5c9
    AC_DEFINE(HAVE_CURL, 1, [Define if curl is available])
Packit 90a5c9
  fi
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
Packit 90a5c9
dnl
Packit 90a5c9
dnl APACHE_CHECK_JANSSON
Packit 90a5c9
dnl
Packit 90a5c9
dnl Configure for libjansson, giving preference to
Packit 90a5c9
dnl "--with-jansson=<path>" if it was specified.
Packit 90a5c9
dnl
Packit 90a5c9
AC_DEFUN([APACHE_CHECK_JANSSON],[
Packit 90a5c9
  AC_CACHE_CHECK([for jansson], [ac_cv_jansson], [
Packit 90a5c9
    dnl initialise the variables we use
Packit 90a5c9
    ac_cv_jansson=no
Packit 90a5c9
    ap_jansson_found=""
Packit 90a5c9
    ap_jansson_base=""
Packit 90a5c9
    ap_jansson_libs=""
Packit 90a5c9
Packit 90a5c9
    dnl Determine the jansson base directory, if any
Packit 90a5c9
    AC_MSG_CHECKING([for user-provided jansson base directory])
Packit 90a5c9
    AC_ARG_WITH(jansson, APACHE_HELP_STRING(--with-jansson=PATH, jansson installation directory), [
Packit 90a5c9
      dnl If --with-jansson specifies a directory, we use that directory
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_jansson_base="`cd $withval ; pwd`"
Packit 90a5c9
      fi
Packit 90a5c9
    ])
Packit 90a5c9
    if test "x$ap_jansson_base" = "x"; then
Packit 90a5c9
      AC_MSG_RESULT(none)
Packit 90a5c9
    else
Packit 90a5c9
      AC_MSG_RESULT($ap_jansson_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
    dnl Before doing anything else, load in pkg-config variables
Packit 90a5c9
    if test -n "$PKGCONFIG"; then
Packit 90a5c9
      saved_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
Packit 90a5c9
      AC_MSG_CHECKING([for pkg-config along $PKG_CONFIG_PATH])
Packit 90a5c9
      if test "x$ap_jansson_base" != "x" ; then
Packit 90a5c9
        if test -f "${ap_jansson_base}/lib/pkgconfig/libjansson.pc"; then
Packit 90a5c9
          dnl Ensure that the given path is used by pkg-config too, otherwise
Packit 90a5c9
          dnl the system libjansson.pc might be picked up instead.
Packit 90a5c9
          PKG_CONFIG_PATH="${ap_jansson_base}/lib/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
Packit 90a5c9
          export PKG_CONFIG_PATH
Packit 90a5c9
        elif test -f "${ap_jansson_base}/lib64/pkgconfig/libjansson.pc"; then
Packit 90a5c9
          dnl Ensure that the given path is used by pkg-config too, otherwise
Packit 90a5c9
          dnl the system libjansson.pc might be picked up instead.
Packit 90a5c9
          PKG_CONFIG_PATH="${ap_jansson_base}/lib64/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
Packit 90a5c9
          export PKG_CONFIG_PATH
Packit 90a5c9
        fi
Packit 90a5c9
      fi
Packit 90a5c9
      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.]), [
Packit 90a5c9
        if test "$enableval" = "yes"; then
Packit 90a5c9
          PKGCONFIG_LIBOPTS="--static"
Packit 90a5c9
        fi
Packit 90a5c9
      ])
Packit 90a5c9
      ap_jansson_libs="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-l --silence-errors libjansson`"
Packit 90a5c9
      if test $? -eq 0; then
Packit 90a5c9
        ap_jansson_found="yes"
Packit 90a5c9
        pkglookup="`$PKGCONFIG --cflags-only-I libjansson`"
Packit 90a5c9
        APR_ADDTO(CPPFLAGS, [$pkglookup])
Packit 90a5c9
        APR_ADDTO(MOD_CFLAGS, [$pkglookup])
Packit 90a5c9
        pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-L libjansson`"
Packit 90a5c9
        APR_ADDTO(LDFLAGS, [$pkglookup])
Packit 90a5c9
        APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
Packit 90a5c9
        pkglookup="`$PKGCONFIG $PKGCONFIG_LIBOPTS --libs-only-other libjansson`"
Packit 90a5c9
        APR_ADDTO(LDFLAGS, [$pkglookup])
Packit 90a5c9
        APR_ADDTO(MOD_LDFLAGS, [$pkglookup])
Packit 90a5c9
      fi
Packit 90a5c9
      PKG_CONFIG_PATH="$saved_PKG_CONFIG_PATH"
Packit 90a5c9
    fi
Packit 90a5c9
Packit 90a5c9
    dnl fall back to the user-supplied directory if not found via pkg-config
Packit 90a5c9
    if test "x$ap_jansson_base" != "x" -a "x$ap_jansson_found" = "x"; then
Packit 90a5c9
      APR_ADDTO(CPPFLAGS, [-I$ap_jansson_base/include])
Packit 90a5c9
      APR_ADDTO(MOD_CFLAGS, [-I$ap_jansson_base/include])
Packit 90a5c9
      APR_ADDTO(LDFLAGS, [-L$ap_jansson_base/lib])
Packit 90a5c9
      APR_ADDTO(MOD_LDFLAGS, [-L$ap_jansson_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_jansson_base/lib])
Packit 90a5c9
        APR_ADDTO(MOD_LDFLAGS, [$ap_platform_runtime_link_flag$ap_jansson_base/lib])
Packit 90a5c9
      fi
Packit 90a5c9
    fi
Packit 90a5c9
Packit 90a5c9
    # attempts to include jansson.h fail me. So lets make sure we can at least
Packit 90a5c9
    # include its other header file
Packit 90a5c9
    AC_TRY_COMPILE([#include <jansson_config.h>],[],
Packit 90a5c9
      [AC_MSG_RESULT(OK) 
Packit 90a5c9
       ac_cv_jansson=yes], 
Packit 90a5c9
       [AC_MSG_RESULT(FAILED)])
Packit 90a5c9
Packit 90a5c9
    if test "x$ac_cv_jansson" = "xyes"; then
Packit 90a5c9
      ap_jansson_libs="${ap_jansson_libs:--ljansson} `$apr_config --libs`"
Packit 90a5c9
      APR_ADDTO(MOD_LDFLAGS, [$ap_jansson_libs])
Packit 90a5c9
      APR_ADDTO(LIBS, [$ap_jansson_libs])
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
  if test "x$ac_cv_jansson" = "xyes"; then
Packit 90a5c9
    AC_DEFINE(HAVE_JANSSON, 1, [Define if jansson is available])
Packit 90a5c9
  fi
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
Packit 90a5c9
dnl #  start of module specific part
Packit 90a5c9
APACHE_MODPATH_INIT(md)
Packit 90a5c9
Packit 90a5c9
dnl #  list of module object files
Packit 90a5c9
md_objs="dnl
Packit 90a5c9
md_acme.lo dnl
Packit 90a5c9
md_acme_acct.lo dnl
Packit 90a5c9
md_acme_authz.lo dnl
Packit 90a5c9
md_acme_drive.lo dnl
Packit 90a5c9
md_core.lo dnl
Packit 90a5c9
md_curl.lo dnl
Packit 90a5c9
md_crypt.lo dnl
Packit 90a5c9
md_http.lo dnl
Packit 90a5c9
md_json.lo dnl
Packit 90a5c9
md_jws.lo dnl
Packit 90a5c9
md_log.lo dnl
Packit 90a5c9
md_reg.lo dnl
Packit 90a5c9
md_store.lo dnl
Packit 90a5c9
md_store_fs.lo dnl
Packit 90a5c9
md_util.lo dnl
Packit 90a5c9
mod_md.lo dnl
Packit 90a5c9
mod_md_config.lo dnl
Packit 90a5c9
mod_md_os.lo dnl
Packit 90a5c9
"
Packit 90a5c9
Packit 90a5c9
# Ensure that other modules can pick up mod_md.h
Packit 90a5c9
APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
Packit 90a5c9
Packit 90a5c9
dnl # hook module into the Autoconf mechanism (--enable-md)
Packit 90a5c9
APACHE_MODULE(md, [Managed Domain handling], $md_objs, , most, [
Packit 90a5c9
    APACHE_CHECK_OPENSSL
Packit 90a5c9
    if test "x$ac_cv_openssl" = "xno" ; then
Packit 90a5c9
        AC_MSG_WARN([libssl (or compatible) not found])
Packit 90a5c9
        enable_md=no
Packit 90a5c9
    fi
Packit 90a5c9
    
Packit 90a5c9
    APACHE_CHECK_JANSSON
Packit 90a5c9
    if test "x$ac_cv_jansson" != "xyes" ; then
Packit 90a5c9
        AC_MSG_WARN([libjansson not found])
Packit 90a5c9
        enable_md=no
Packit 90a5c9
    fi
Packit 90a5c9
Packit 90a5c9
    APACHE_CHECK_CURL
Packit 90a5c9
    if test "x$ac_cv_curl" != "xyes" ; then
Packit 90a5c9
        AC_MSG_WARN([libcurl not found])
Packit 90a5c9
        enable_md=no
Packit 90a5c9
    fi
Packit 90a5c9
    
Packit 90a5c9
    AC_CHECK_FUNCS([arc4random_buf], 
Packit 90a5c9
        [APR_ADDTO(MOD_CPPFLAGS, ["-DMD_HAVE_ARC4RANDOM"])], [])
Packit 90a5c9
    
Packit 90a5c9
])
Packit 90a5c9
Packit 90a5c9
dnl #  end of module specific part
Packit 90a5c9
APACHE_MODPATH_FINISH
Packit 90a5c9