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 #include #include ]], [fetchGetURL("", "");])], [ have_libfetch=1 LIBFETCH_IS_FETCH=1 LIBFETCH_DYNAMIC=1 LIBFETCH_SONAME='"libfetch.so.6"' 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 LIBFETCH_SONAME='"libcurl.so.4"' 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]) AC_DEFINE_UNQUOTED([LIBFETCH_SONAME], [$LIBFETCH_SONAME], [soname of chosen libfetch]) ])