summaryrefslogtreecommitdiffabout
path: root/acinclude.d/libcurl.m4
authorMichael Krelin <hacker@klever.net>2008-05-18 18:26:17 (UTC)
committer Michael Krelin <hacker@klever.net>2008-06-25 20:49:25 (UTC)
commit04aac0e097992df01e17fbbb62a5a7d9682bcea9 (patch) (side-by-side diff)
tree92407b8314bbbaf51be22601d9231379c8602782 /acinclude.d/libcurl.m4
parent7934873589e47f0207916c668ec4a272071e66a0 (diff)
downloadlibopkele-04aac0e097992df01e17fbbb62a5a7d9682bcea9.zip
libopkele-04aac0e097992df01e17fbbb62a5a7d9682bcea9.tar.gz
libopkele-04aac0e097992df01e17fbbb62a5a7d9682bcea9.tar.bz2
update libcurl.m4 to fix breakage with -Wl,--as-needed ld flags
Thanks to Samuli Suominen of Gentoo project for spotting it Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (limited to 'acinclude.d/libcurl.m4') (more/less context) (show whitespace changes)
-rw-r--r--acinclude.d/libcurl.m479
1 files changed, 55 insertions, 24 deletions
diff --git a/acinclude.d/libcurl.m4 b/acinclude.d/libcurl.m4
index e80c206..f54a5f2 100644
--- a/acinclude.d/libcurl.m4
+++ b/acinclude.d/libcurl.m4
@@ -2,5 +2,5 @@
# [ACTION-IF-YES], [ACTION-IF-NO])
# ----------------------------------------------------------
-# David Shaw <dshaw@jabberwocky.com> Jan-23-2005
+# David Shaw <dshaw@jabberwocky.com> May-09-2006
#
# Checks for libcurl. DEFAULT-ACTION is the string yes or no to
@@ -14,8 +14,8 @@
# Note that using --without-libcurl does run ACTION-IF-NO.
#
-# This macro defines HAVE_LIBCURL if a working libcurl setup is found,
-# and sets @LIBCURL@ and @LIBCURL_CPPFLAGS@ to the necessary values.
-# Other useful defines are LIBCURL_FEATURE_xxx where xxx are the
-# various features supported by libcurl, and LIBCURL_PROTOCOL_yyy
+# This macro #defines HAVE_LIBCURL if a working libcurl setup is
+# found, and sets @LIBCURL@ and @LIBCURL_CPPFLAGS@ to the necessary
+# values. Other useful defines are LIBCURL_FEATURE_xxx where xxx are
+# the various features supported by libcurl, and LIBCURL_PROTOCOL_yyy
# where yyy are the various protocols supported by libcurl. Both xxx
# and yyy are capitalized. See the list of AH_TEMPLATEs at the top of
@@ -33,11 +33,6 @@
# curl-config script. Note that it is very important for people
# packaging binary versions of libcurl to include this script!
-# Without curl-config, we can only make educated guesses as to what
-# protocols are available. Specifically, we assume that all of HTTP,
-# FTP, GOPHER, FILE, TELNET, LDAP, and DICT exist, and (if SSL exists)
-# HTTPS is present. All of these protocols existed when libcurl was
-# first created in version 7, so this is a safe assumption. If the
-# version is 7.11.0 or later, FTPS is assumed to be present as well.
-# FTPS existed before then, but was not yet fully standards compliant.
+# Without curl-config, we can only guess what protocols are available,
+# or use curl_version_info to figure it out at runtime.
AC_DEFUN([LIBCURL_CHECK_CONFIG],
@@ -48,4 +43,7 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG],
AH_TEMPLATE([LIBCURL_FEATURE_LIBZ],[Defined if libcurl supports libz])
AH_TEMPLATE([LIBCURL_FEATURE_ASYNCHDNS],[Defined if libcurl supports AsynchDNS])
+ AH_TEMPLATE([LIBCURL_FEATURE_IDN],[Defined if libcurl supports IDN])
+ AH_TEMPLATE([LIBCURL_FEATURE_SSPI],[Defined if libcurl supports SSPI])
+ AH_TEMPLATE([LIBCURL_FEATURE_NTLM],[Defined if libcurl supports NTLM])
AH_TEMPLATE([LIBCURL_PROTOCOL_HTTP],[Defined if libcurl supports HTTP])
@@ -53,9 +51,9 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG],
AH_TEMPLATE([LIBCURL_PROTOCOL_FTP],[Defined if libcurl supports FTP])
AH_TEMPLATE([LIBCURL_PROTOCOL_FTPS],[Defined if libcurl supports FTPS])
- AH_TEMPLATE([LIBCURL_PROTOCOL_GOPHER],[Defined if libcurl supports GOPHER])
AH_TEMPLATE([LIBCURL_PROTOCOL_FILE],[Defined if libcurl supports FILE])
AH_TEMPLATE([LIBCURL_PROTOCOL_TELNET],[Defined if libcurl supports TELNET])
AH_TEMPLATE([LIBCURL_PROTOCOL_LDAP],[Defined if libcurl supports LDAP])
AH_TEMPLATE([LIBCURL_PROTOCOL_DICT],[Defined if libcurl supports DICT])
+ AH_TEMPLATE([LIBCURL_PROTOCOL_TFTP],[Defined if libcurl supports TFTP])
AC_ARG_WITH(libcurl,
@@ -72,9 +70,11 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG],
if test -d "$_libcurl_with" ; then
- CPPFLAGS="${CPPFLAGS} -I$withval/include"
- LDFLAGS="${LDFLAGS} -L$withval/lib"
- fi
-
+ LIBCURL_CPPFLAGS="-I$withval/include"
+ _libcurl_ldflags="-L$withval/lib"
+ AC_PATH_PROG([_libcurl_config],[curl-config],["$withval/bin"],
+ ["$withval/bin"])
+ else
AC_PATH_PROG([_libcurl_config],[curl-config])
+ fi
if test x$_libcurl_config != "x" ; then
@@ -104,4 +104,13 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG],
if test x"$LIBCURL" = "x" ; then
LIBCURL=`$_libcurl_config --libs`
+
+ # This is so silly, but Apple actually has a bug in their
+ # curl-config script. Fixed in Tiger, but there are still
+ # lots of Panther installs around.
+ case "${host}" in
+ powerpc-apple-darwin7*)
+ LIBCURL=`echo $LIBCURL | sed -e 's|-arch i386||g'`
+ ;;
+ esac
fi
@@ -124,5 +133,5 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG],
# we didn't find curl-config, so let's see if the user-supplied
# link line (or failing that, "-lcurl") is enough.
- LIBCURL=${LIBCURL-"-lcurl"}
+ LIBCURL=${LIBCURL-"$_libcurl_ldflags -lcurl"}
AC_CACHE_CHECK([whether libcurl is usable],
@@ -130,7 +139,7 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG],
[
_libcurl_save_cppflags=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS"
- _libcurl_save_ldflags=$LDFLAGS
- LDFLAGS="$LDFLAGS $LIBCURL"
+ CPPFLAGS="$LIBCURL_CPPFLAGS $CPPFLAGS"
+ _libcurl_save_libs=$LIBS
+ LIBS="$LIBCURL $LIBS"
AC_LINK_IFELSE(AC_LANG_PROGRAM([#include <curl/curl.h>],[
@@ -148,10 +157,28 @@ x=CURLOPT_VERBOSE;
CPPFLAGS=$_libcurl_save_cppflags
- LDFLAGS=$_libcurl_save_ldflags
+ LIBS=$_libcurl_save_libs
unset _libcurl_save_cppflags
- unset _libcurl_save_ldflags
+ unset _libcurl_save_libs
])
if test $libcurl_cv_lib_curl_usable = yes ; then
+
+ # Does curl_free() exist in this version of libcurl?
+ # If not, fake it with free()
+
+ _libcurl_save_cppflags=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS"
+ _libcurl_save_libs=$LIBS
+ LIBS="$LIBS $LIBCURL"
+
+ AC_CHECK_FUNC(curl_free,,
+ AC_DEFINE(curl_free,free,
+ [Define curl_free() as free() if our version of curl lacks curl_free.]))
+
+ CPPFLAGS=$_libcurl_save_cppflags
+ LIBS=$_libcurl_save_libs
+ unset _libcurl_save_cppflags
+ unset _libcurl_save_libs
+
AC_DEFINE(HAVE_LIBCURL,1,
[Define to 1 if you have a functional curl library.])
@@ -168,5 +195,5 @@ x=CURLOPT_VERBOSE;
# We don't have --protocols, so just assume that all
# protocols are available
- _libcurl_protocols="HTTP FTP GOPHER FILE TELNET LDAP DICT"
+ _libcurl_protocols="HTTP FTP FILE TELNET LDAP DICT"
if test x$libcurl_feature_SSL = xyes ; then
@@ -185,4 +212,7 @@ x=CURLOPT_VERBOSE;
eval AS_TR_SH(libcurl_protocol_$_libcurl_protocol)=yes
done
+ else
+ unset LIBCURL
+ unset LIBCURL_CPPFLAGS
fi
fi
@@ -196,4 +226,5 @@ x=CURLOPT_VERBOSE;
unset _libcurl_protocols
unset _libcurl_version
+ unset _libcurl_ldflags
fi