2021-05-13 07:21:35 +03:00
|
|
|
|
dnl #
|
|
|
|
|
dnl # Check for a libfetch - either fetch(3) or libcurl.
|
|
|
|
|
dnl #
|
|
|
|
|
dnl # There are two configuration dimensions:
|
|
|
|
|
dnl # * fetch(3) vs libcurl
|
|
|
|
|
dnl # * static vs dynamic
|
|
|
|
|
dnl #
|
|
|
|
|
dnl # fetch(3) is only dynamic.
|
|
|
|
|
dnl # We use sover 6, which first appeared in FreeBSD 8.0-RELEASE.
|
|
|
|
|
dnl #
|
|
|
|
|
dnl # libcurl development packages include curl-config(1) – we want:
|
|
|
|
|
dnl # * HTTPS support
|
|
|
|
|
dnl # * version at least 7.16 (October 2006), for sover 4
|
|
|
|
|
dnl # * to decide if it's static or not
|
|
|
|
|
dnl #
|
|
|
|
|
AC_DEFUN([ZFS_AC_CONFIG_USER_LIBFETCH], [
|
|
|
|
|
AC_MSG_CHECKING([for libfetch])
|
|
|
|
|
LIBFETCH_LIBS=
|
|
|
|
|
LIBFETCH_IS_FETCH=0
|
|
|
|
|
LIBFETCH_IS_LIBCURL=0
|
|
|
|
|
LIBFETCH_DYNAMIC=0
|
|
|
|
|
LIBFETCH_SONAME=
|
|
|
|
|
have_libfetch=
|
|
|
|
|
|
|
|
|
|
saved_libs="$LIBS"
|
|
|
|
|
LIBS="$LIBS -lfetch"
|
|
|
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
|
|
|
#include <sys/param.h>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <fetch.h>
|
|
|
|
|
]], [fetchGetURL("", "");])], [
|
|
|
|
|
have_libfetch=1
|
|
|
|
|
LIBFETCH_IS_FETCH=1
|
|
|
|
|
LIBFETCH_DYNAMIC=1
|
2022-01-06 22:26:40 +03:00
|
|
|
|
LIBFETCH_SONAME="libfetch.so.6"
|
2021-05-13 07:21:35 +03:00
|
|
|
|
LIBFETCH_LIBS="-ldl"
|
|
|
|
|
AC_MSG_RESULT([fetch(3)])
|
|
|
|
|
], [])
|
|
|
|
|
LIBS="$saved_libs"
|
|
|
|
|
|
|
|
|
|
if test -z "$have_libfetch"; then
|
|
|
|
|
if curl-config --protocols 2>/dev/null | grep -q HTTPS &&
|
|
|
|
|
test "$(printf "%u" "0x$(curl-config --vernum)")" -ge "$(printf "%u" "0x071000")"; then
|
|
|
|
|
have_libfetch=1
|
|
|
|
|
LIBFETCH_IS_LIBCURL=1
|
|
|
|
|
if test "$(curl-config --built-shared)" = "yes"; then
|
|
|
|
|
LIBFETCH_DYNAMIC=1
|
2022-01-06 22:26:40 +03:00
|
|
|
|
LIBFETCH_SONAME="libcurl.so.4"
|
2021-05-13 07:21:35 +03:00
|
|
|
|
LIBFETCH_LIBS="-ldl"
|
|
|
|
|
AC_MSG_RESULT([libcurl])
|
|
|
|
|
else
|
|
|
|
|
LIBFETCH_LIBS="$(curl-config --libs)"
|
|
|
|
|
AC_MSG_RESULT([libcurl (static)])
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
CCFLAGS="$CCFLAGS $(curl-config --cflags)"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if test -z "$have_libfetch"; then
|
|
|
|
|
AC_MSG_RESULT([none])
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
AC_SUBST([LIBFETCH_LIBS])
|
|
|
|
|
AC_SUBST([LIBFETCH_DYNAMIC])
|
|
|
|
|
AC_SUBST([LIBFETCH_SONAME])
|
|
|
|
|
AC_DEFINE_UNQUOTED([LIBFETCH_IS_FETCH], [$LIBFETCH_IS_FETCH], [libfetch is fetch(3)])
|
|
|
|
|
AC_DEFINE_UNQUOTED([LIBFETCH_IS_LIBCURL], [$LIBFETCH_IS_LIBCURL], [libfetch is libcurl])
|
|
|
|
|
AC_DEFINE_UNQUOTED([LIBFETCH_DYNAMIC], [$LIBFETCH_DYNAMIC], [whether the chosen libfetch is to be loaded at run-time])
|
2022-01-06 22:26:40 +03:00
|
|
|
|
AC_DEFINE_UNQUOTED([LIBFETCH_SONAME], ["$LIBFETCH_SONAME"], [soname of chosen libfetch])
|
2021-05-13 07:21:35 +03:00
|
|
|
|
])
|