Alien-SVN

 view release on metacpan or  search on metacpan

src/subversion/build/ac-macros/serf.m4  view on Meta::CPAN

dnl
dnl  If the search for serf fails, set svn_lib_serf to no, otherwise set
dnl  it to yes.
dnl

AC_DEFUN(SVN_LIB_SERF,
[
  serf_found=no
  serf_required=no
  serf_skip=no

  serf_check_major="$1"
  serf_check_minor="$2"
  serf_check_patch="$3"
  serf_check_version="$1.$2.$3"

  AC_ARG_WITH(serf,AS_HELP_STRING([--with-serf=PREFIX],
                                  [Serf HTTP client library (enabled by default if found)]),
  [
    if test "$withval" = "yes" ; then
      serf_required=yes 
    elif test "$withval" = "no" ; then
      serf_skip=yes 
    else
      SVN_SERF_PREFIX_CONFIG()
    fi
  ])

  if test "$serf_skip" = "no" ; then
    if test "$serf_found" = "no" ; then
      SVN_SERF_PKG_CONFIG()
    fi
  
    AC_MSG_CHECKING([was serf enabled])
    if test "$serf_found" = "yes"; then
      AC_MSG_RESULT([yes])
    else 
      AC_MSG_RESULT([no]) 
      SVN_DOWNLOAD_SERF() 
      if test "$serf_required" = "yes"; then
        AC_MSG_ERROR([Serf was explicitly enabled but an appropriate version was not found.])
      fi
    fi
  fi

  svn_lib_serf=$serf_found

  AC_SUBST(SVN_SERF_INCLUDES)
  AC_SUBST(SVN_SERF_LIBS)
])

dnl SVN_SERF_PREFIX_CONFIG()
dnl Use user provided prefix to try and detect and configure serf
AC_DEFUN(SVN_SERF_PREFIX_CONFIG,
[
  AC_MSG_NOTICE([serf library configuration via prefix])
  serf_required=yes
  serf_prefix=$withval
  for serf_major in serf-2 serf-1; do
    if ! test -d $serf_prefix/include/$serf_major; then continue; fi
    save_cppflags="$CPPFLAGS"
    CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES $SVN_APRUTIL_INCLUDES -I$serf_prefix/include/$serf_major"
    AC_CHECK_HEADERS(serf.h,[
      save_ldflags="$LDFLAGS"
      LDFLAGS="$LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS(-L$serf_prefix/lib)`"
      AC_CHECK_LIB($serf_major, serf_context_create,[
        AC_TRY_COMPILE([
#include <stdlib.h>
#include "serf.h"
],[
#if ! SERF_VERSION_AT_LEAST($serf_check_major, $serf_check_minor, $serf_check_patch)
#error Serf version too old: need $serf_check_version
#endif
], [serf_found=yes], [AC_MSG_WARN([Serf version too old: need $serf_check_version])
      serf_found=no])], ,
    $SVN_APRUTIL_LIBS $SVN_APR_LIBS -lz)
    LDFLAGS="$save_ldflags"])
    CPPFLAGS="$save_cppflags"
    test $serf_found = yes && break
  done

  if test $serf_found = "yes"; then
    SVN_SERF_INCLUDES="-I$serf_prefix/include/$serf_major"
    if test -e "$serf_prefix/lib/lib$serf_major.la"; then
      SVN_SERF_LIBS="$serf_prefix/lib/lib$serf_major.la"
    else
      SVN_SERF_LIBS="-l$serf_major"
      LDFLAGS="$LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS(-L$serf_prefix/lib)`"
    fi
  fi
])

dnl SVN_SERF_PKG_CONFIG()
dnl Use pkg-config to try and detect and configure serf
AC_DEFUN(SVN_SERF_PKG_CONFIG,
[
  AC_MSG_NOTICE([serf library configuration via pkg-config])
  if test -n "$PKG_CONFIG"; then
    for serf_major in serf-2 serf-1; do
      AC_MSG_CHECKING([for $serf_major library])
      if $PKG_CONFIG $serf_major --exists; then
        AC_MSG_RESULT([yes])
        AC_MSG_CHECKING([serf library version])
        SERF_VERSION=`$PKG_CONFIG $serf_major --modversion`
        AC_MSG_RESULT([$SERF_VERSION])
        AC_MSG_CHECKING([serf version is suitable])
        if $PKG_CONFIG $serf_major --atleast-version=$serf_check_version; then
          AC_MSG_RESULT([yes])
          serf_found=yes
          SVN_SERF_INCLUDES=[`$PKG_CONFIG $serf_major --cflags | $SED -e 's/-D[^ ]*//g'`]
          SVN_SERF_LIBS=`$PKG_CONFIG $serf_major --libs` 
          break
        else
          AC_MSG_RESULT([no])
          AC_MSG_WARN([Serf version too old: need $serf_check_version])
        fi        
      else
        AC_MSG_RESULT([no])
      fi
    done 
  fi
])

dnl SVN_DOWNLOAD_SERF()
dnl no serf found, print out a message telling the user what to do
AC_DEFUN(SVN_DOWNLOAD_SERF,
[
  echo ""
  echo "An appropriate version of serf could not be found, so libsvn_ra_serf"
  echo "will not be built.  If you want to build libsvn_ra_serf, please"
  echo "install serf $serf_check_version or newer."
  echo ""
])



( run in 1.161 second using v1.01-cache-2.11-cpan-39bf76dae61 )