Updated the German translation. Minor doc changes.
[gnupg.git] / m4 / libcurl.m4
index edf12a8..b43cd90 100644 (file)
@@ -1,7 +1,7 @@
 # LIBCURL_CHECK_CONFIG ([DEFAULT-ACTION], [MINIMUM-VERSION],
 #                       [ACTION-IF-YES], [ACTION-IF-NO])
 # ----------------------------------------------------------
-#      David Shaw <dshaw@jabberwocky.com>   Jan-23-2005
+#      David Shaw <dshaw@jabberwocky.com>   Jan-16-2007
 #
 # Checks for libcurl.  DEFAULT-ACTION is the string yes or no to
 # specify whether to default to --with-libcurl or --without-libcurl.
 # ACTION-IF-NO is a list of shell commands that are run otherwise.
 # 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
 # the macro for the complete list of possible defines.  Shell
@@ -32,7 +32,8 @@
 # found is after version 7.7.2, the first version that included the
 # 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 guess what protocols are available.
+# 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],
 [
@@ -41,16 +42,19 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG],
   AH_TEMPLATE([LIBCURL_FEATURE_IPV6],[Defined if libcurl supports IPv6])
   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])
   AH_TEMPLATE([LIBCURL_PROTOCOL_HTTPS],[Defined if libcurl supports HTTPS])
   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,
      AC_HELP_STRING([--with-libcurl=DIR],[look for the curl library in DIR]),
@@ -65,12 +69,13 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG],
      _libcurl_try_link=yes
 
      if test -d "$_libcurl_with" ; then
-        CPPFLAGS="${CPPFLAGS} -I$withval/include"
-        LDFLAGS="${LDFLAGS} -L$withval/lib"
+        LIBCURL_CPPFLAGS="-I$withval/include"
+        _libcurl_ldflags="-L$withval/lib"
+        AC_PATH_PROG([_libcurl_config],["$withval/bin/curl-config"])
+     else
+       AC_PATH_PROG([_libcurl_config],[curl-config])
      fi
 
-     AC_PATH_PROG([_libcurl_config],[curl-config])
-
      if test x$_libcurl_config != "x" ; then
         AC_CACHE_CHECK([for the version of libcurl],
           [libcurl_cv_lib_curl_version],
@@ -99,9 +104,10 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG],
               LIBCURL=`$_libcurl_config --libs`
 
               # This is so silly, but Apple actually has a bug in their
-             # curl-config script!
+             # curl-config script.  Fixed in Tiger, but there are still
+             # lots of Panther installs around.
               case "${host}" in
-                 powerpc-apple-darwin*)
+                 powerpc-apple-darwin7*)
                     LIBCURL=`echo $LIBCURL | sed -e 's|-arch i386||g'`
                  ;;
               esac
@@ -125,15 +131,15 @@ 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],
            [libcurl_cv_lib_curl_usable],
            [
            _libcurl_save_cppflags=$CPPFLAGS
-           CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS"
+           CPPFLAGS="$LIBCURL_CPPFLAGS $CPPFLAGS"
            _libcurl_save_libs=$LIBS
-           LIBS="$LIBS $LIBCURL"
+           LIBS="$LIBCURL $LIBS"
 
            AC_LINK_IFELSE(AC_LANG_PROGRAM([#include <curl/curl.h>],[
 /* Try and use a few common options to force a failure if we are
@@ -155,6 +161,46 @@ x=CURLOPT_VERBOSE;
            ])
 
         if test $libcurl_cv_lib_curl_usable = yes ; then
+
+           _libcurl_save_cppflags=$CPPFLAGS
+           CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS"
+           _libcurl_save_libs=$LIBS
+           LIBS="$LIBS $LIBCURL"
+
+          # Check for some libcurl functions that aren't in all
+           # versions.
+
+           AC_CHECK_FUNCS([curl_free curl_easy_escape curl_easy_unescape])
+
+           AH_BOTTOM([
+#ifdef HAVE_LIBCURL
+
+/* Define curl_free() via free() if our version of curl lacks
+   curl_free() */
+#if !defined(curl_free) && !defined(HAVE_CURL_FREE)
+#define curl_free(a) free((a))
+#endif
+
+/* Define curl_easy_escape() via curl_escape() if our version of curl
+   lacks curl_easy_escape() */
+#if !defined(curl_easy_escape) && !defined(HAVE_CURL_EASY_ESCAPE)
+#define curl_easy_escape(a,b,c) curl_escape((b),(c))
+#endif
+
+/* Define curl_easy_unescape() via curl_unescape() if our version of
+   curl lacks curl_easy_unescape() */
+#if !defined(curl_easy_unescape) && !defined(HAVE_CURL_EASY_UNESCAPE)
+#define curl_easy_unescape(a,b,c) curl_unescape((b),(c))
+#endif
+
+#endif /* HAVE_LIBCURL */
+])
+
+           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.])
            AC_SUBST(LIBCURL_CPPFLAGS)
@@ -169,7 +215,7 @@ 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
                 _libcurl_protocols="$_libcurl_protocols HTTPS"
@@ -186,6 +232,9 @@ x=CURLOPT_VERBOSE;
              AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_protocol_$_libcurl_protocol),[1])
              eval AS_TR_SH(libcurl_protocol_$_libcurl_protocol)=yes
            done
+       else
+          unset LIBCURL
+          unset LIBCURL_CPPFLAGS
         fi
      fi
 
@@ -197,6 +246,7 @@ x=CURLOPT_VERBOSE;
      unset _libcurl_protocol
      unset _libcurl_protocols
      unset _libcurl_version
+     unset _libcurl_ldflags
   fi
 
   if test x$_libcurl_with = xno || test x$libcurl_cv_lib_curl_usable != xyes ; then