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
serf_required=yes
serf_prefix="$withval"
fi
])
if test "$serf_skip" = "no" ; then
SVN_SERF_PKG_CONFIG()
if test -n "$serf_prefix" && test "$serf_found" = "no" ; then
SVN_SERF_PREFIX_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)
])
AC_DEFUN(SVN_SERF_PREFIX_CONFIG,
[
AC_MSG_NOTICE([serf library configuration via prefix])
serf_required=yes
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([
],[
], [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
])
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 test -n "$serf_prefix" ; then
if test -e "$serf_prefix/$serf_major.pc" ; then
serf_pc_arg="$serf_prefix/$serf_major.pc"
elif test -e "$serf_prefix/lib/pkgconfig/$serf_major.pc" ; then
serf_pc_arg="$serf_prefix/lib/pkgconfig/$serf_major.pc"
else
AC_MSG_RESULT([no])
continue
fi
else
serf_pc_arg="$serf_major"
fi
if $PKG_CONFIG $serf_pc_arg --exists; then
AC_MSG_RESULT([yes])
AC_MSG_CHECKING([serf library version])
SERF_VERSION=`$PKG_CONFIG $serf_pc_arg --modversion`
AC_MSG_RESULT([$SERF_VERSION])
AC_MSG_CHECKING([serf version is suitable])
if $PKG_CONFIG $serf_pc_arg --atleast-version=$serf_check_version; then
AC_MSG_RESULT([yes])
serf_found=yes
SVN_SERF_INCLUDES=[`$PKG_CONFIG $serf_pc_arg --cflags | $SED -e 's/ -D[^ ]*//g' -e 's/^-D[^ ]*//g'`]
SVN_SERF_LIBS=`$PKG_CONFIG $serf_pc_arg --libs-only-l`
LDFLAGS=["$LDFLAGS `$PKG_CONFIG $serf_pc_arg --libs | $SED -e 's/-l[^ ]*//g'`"]
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
])
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 ""
])