116038816SMartin Matuskadnl # 216038816SMartin Matuskadnl # Check for a libfetch - either fetch(3) or libcurl. 316038816SMartin Matuskadnl # 416038816SMartin Matuskadnl # There are two configuration dimensions: 516038816SMartin Matuskadnl # * fetch(3) vs libcurl 616038816SMartin Matuskadnl # * static vs dynamic 716038816SMartin Matuskadnl # 816038816SMartin Matuskadnl # fetch(3) is only dynamic. 916038816SMartin Matuskadnl # We use sover 6, which first appeared in FreeBSD 8.0-RELEASE. 1016038816SMartin Matuskadnl # 1116038816SMartin Matuskadnl # libcurl development packages include curl-config(1) – we want: 1216038816SMartin Matuskadnl # * HTTPS support 1316038816SMartin Matuskadnl # * version at least 7.16 (October 2006), for sover 4 1416038816SMartin Matuskadnl # * to decide if it's static or not 1516038816SMartin Matuskadnl # 1616038816SMartin MatuskaAC_DEFUN([ZFS_AC_CONFIG_USER_LIBFETCH], [ 1716038816SMartin Matuska AC_MSG_CHECKING([for libfetch]) 1816038816SMartin Matuska LIBFETCH_LIBS= 1916038816SMartin Matuska LIBFETCH_IS_FETCH=0 2016038816SMartin Matuska LIBFETCH_IS_LIBCURL=0 2116038816SMartin Matuska LIBFETCH_DYNAMIC=0 2216038816SMartin Matuska LIBFETCH_SONAME= 2316038816SMartin Matuska have_libfetch= 2416038816SMartin Matuska 2516038816SMartin Matuska saved_libs="$LIBS" 2616038816SMartin Matuska LIBS="$LIBS -lfetch" 2716038816SMartin Matuska AC_LINK_IFELSE([AC_LANG_PROGRAM([[ 2816038816SMartin Matuska #include <sys/param.h> 2916038816SMartin Matuska #include <stdio.h> 3016038816SMartin Matuska #include <fetch.h> 3116038816SMartin Matuska ]], [fetchGetURL("", "");])], [ 3216038816SMartin Matuska have_libfetch=1 3316038816SMartin Matuska LIBFETCH_IS_FETCH=1 3416038816SMartin Matuska LIBFETCH_DYNAMIC=1 35*e92ffd9bSMartin Matuska LIBFETCH_SONAME="libfetch.so.6" 3616038816SMartin Matuska LIBFETCH_LIBS="-ldl" 3716038816SMartin Matuska AC_MSG_RESULT([fetch(3)]) 3816038816SMartin Matuska ], []) 3916038816SMartin Matuska LIBS="$saved_libs" 4016038816SMartin Matuska 4116038816SMartin Matuska if test -z "$have_libfetch"; then 4216038816SMartin Matuska if curl-config --protocols 2>/dev/null | grep -q HTTPS && 4316038816SMartin Matuska test "$(printf "%u" "0x$(curl-config --vernum)")" -ge "$(printf "%u" "0x071000")"; then 4416038816SMartin Matuska have_libfetch=1 4516038816SMartin Matuska LIBFETCH_IS_LIBCURL=1 4616038816SMartin Matuska if test "$(curl-config --built-shared)" = "yes"; then 4716038816SMartin Matuska LIBFETCH_DYNAMIC=1 48*e92ffd9bSMartin Matuska LIBFETCH_SONAME="libcurl.so.4" 4916038816SMartin Matuska LIBFETCH_LIBS="-ldl" 5016038816SMartin Matuska AC_MSG_RESULT([libcurl]) 5116038816SMartin Matuska else 5216038816SMartin Matuska LIBFETCH_LIBS="$(curl-config --libs)" 5316038816SMartin Matuska AC_MSG_RESULT([libcurl (static)]) 5416038816SMartin Matuska fi 5516038816SMartin Matuska 5616038816SMartin Matuska CCFLAGS="$CCFLAGS $(curl-config --cflags)" 5716038816SMartin Matuska fi 5816038816SMartin Matuska fi 5916038816SMartin Matuska 6016038816SMartin Matuska if test -z "$have_libfetch"; then 6116038816SMartin Matuska AC_MSG_RESULT([none]) 6216038816SMartin Matuska fi 6316038816SMartin Matuska 6416038816SMartin Matuska AC_SUBST([LIBFETCH_LIBS]) 6516038816SMartin Matuska AC_SUBST([LIBFETCH_DYNAMIC]) 6616038816SMartin Matuska AC_SUBST([LIBFETCH_SONAME]) 6716038816SMartin Matuska AC_DEFINE_UNQUOTED([LIBFETCH_IS_FETCH], [$LIBFETCH_IS_FETCH], [libfetch is fetch(3)]) 6816038816SMartin Matuska AC_DEFINE_UNQUOTED([LIBFETCH_IS_LIBCURL], [$LIBFETCH_IS_LIBCURL], [libfetch is libcurl]) 6916038816SMartin Matuska AC_DEFINE_UNQUOTED([LIBFETCH_DYNAMIC], [$LIBFETCH_DYNAMIC], [whether the chosen libfetch is to be loaded at run-time]) 70*e92ffd9bSMartin Matuska AC_DEFINE_UNQUOTED([LIBFETCH_SONAME], ["$LIBFETCH_SONAME"], [soname of chosen libfetch]) 7116038816SMartin Matuska]) 72