author | Michael Krelin <hacker@klever.net> | 2008-05-18 18:26:17 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2008-06-25 20:49:25 (UTC) |
commit | 04aac0e097992df01e17fbbb62a5a7d9682bcea9 (patch) (side-by-side diff) | |
tree | 92407b8314bbbaf51be22601d9231379c8602782 /acinclude.d/libcurl.m4 | |
parent | 7934873589e47f0207916c668ec4a272071e66a0 (diff) | |
download | libopkele-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>
-rw-r--r-- | acinclude.d/libcurl.m4 | 79 |
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 |