mirror of https://github.com/moparisthebest/curl
- Based on bug report #2498665 (http://curl.haxx.se/bug/view.cgi?id=2498665)
by Daniel Black, I've now added magic to the configure script that makes it use pkg-config to detect gnutls details as well if the existing method (using libgnutls-config) fails. While doing this, I cleaned up and unified the pkg-config usage when detecting openssl and nss as well.
This commit is contained in:
parent
f471b4836f
commit
b9fdc0c251
7
CHANGES
7
CHANGES
|
@ -7,6 +7,13 @@
|
||||||
Changelog
|
Changelog
|
||||||
|
|
||||||
|
|
||||||
|
Daniel Stenberg (12 Jan 2009)
|
||||||
|
- Based on bug report #2498665 (http://curl.haxx.se/bug/view.cgi?id=2498665)
|
||||||
|
by Daniel Black, I've now added magic to the configure script that makes it
|
||||||
|
use pkg-config to detect gnutls details as well if the existing method
|
||||||
|
(using libgnutls-config) fails. While doing this, I cleaned up and unified
|
||||||
|
the pkg-config usage when detecting openssl and nss as well.
|
||||||
|
|
||||||
Daniel Stenberg (11 Jan 2009)
|
Daniel Stenberg (11 Jan 2009)
|
||||||
- Karl Moerder brought the patch that creates vc9 Makefiles, and I made
|
- Karl Moerder brought the patch that creates vc9 Makefiles, and I made
|
||||||
'maketgz' now use the actual makefile targets to do the VC8 and VC9
|
'maketgz' now use the actual makefile targets to do the VC8 and VC9
|
||||||
|
|
|
@ -44,6 +44,7 @@ This release includes the following bugfixes:
|
||||||
o improved NSS initing
|
o improved NSS initing
|
||||||
o curl_easy_reset now resets more options
|
o curl_easy_reset now resets more options
|
||||||
o rare Location: follow bug with the multi interface
|
o rare Location: follow bug with the multi interface
|
||||||
|
o the configure script can now detect gnutls with pkg-config
|
||||||
|
|
||||||
This release includes the following known bugs:
|
This release includes the following known bugs:
|
||||||
|
|
||||||
|
@ -56,6 +57,6 @@ advice from friends like these:
|
||||||
Markus Koetter, Josef Wolf, Vlad Grachov, Pawel Kierski, Igor Novoseltsev,
|
Markus Koetter, Josef Wolf, Vlad Grachov, Pawel Kierski, Igor Novoseltsev,
|
||||||
Fred Machado, Ken Hirsch, Keshav Krity, Patrick Monnerat, Mark Karpeles,
|
Fred Machado, Ken Hirsch, Keshav Krity, Patrick Monnerat, Mark Karpeles,
|
||||||
Anthony Bryan, Peter Korsgaard, Phil Lisiecki, Bas Mevissen, Rob Crittenden,
|
Anthony Bryan, Peter Korsgaard, Phil Lisiecki, Bas Mevissen, Rob Crittenden,
|
||||||
Emil Romanus, Karl Moerder
|
Emil Romanus, Karl Moerder, Daniel Black
|
||||||
|
|
||||||
Thanks! (and sorry if I forgot to mention someone)
|
Thanks! (and sorry if I forgot to mention someone)
|
||||||
|
|
35
acinclude.m4
35
acinclude.m4
|
@ -5,7 +5,7 @@
|
||||||
# | (__| |_| | _ <| |___
|
# | (__| |_| | _ <| |___
|
||||||
# \___|\___/|_| \_\_____|
|
# \___|\___/|_| \_\_____|
|
||||||
#
|
#
|
||||||
# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
|
# Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
#
|
#
|
||||||
# This software is licensed as described in the file COPYING, which
|
# This software is licensed as described in the file COPYING, which
|
||||||
# you should have received as part of this distribution. The terms
|
# you should have received as part of this distribution. The terms
|
||||||
|
@ -3057,3 +3057,36 @@ AC_DEFUN([CURL_CHECK_WIN32_LARGEFILE], [
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl CURL_CHECK_PKGCONFIG ($module)
|
||||||
|
dnl ------------------------
|
||||||
|
dnl search for the pkg-config tool (if not cross-compiling). Set the PKGCONFIG
|
||||||
|
dnl variable to hold the path to it, or 'no' if not found/present.
|
||||||
|
dnl
|
||||||
|
dnl If pkg-config is present, check that it has info about the $module or return
|
||||||
|
dnl "no" anyway!
|
||||||
|
dnl
|
||||||
|
|
||||||
|
AC_DEFUN([CURL_CHECK_PKGCONFIG], [
|
||||||
|
if test x$cross_compiling != xyes; then
|
||||||
|
dnl only do pkg-config magic when not cross-compiling
|
||||||
|
AC_PATH_PROG( PKGCONFIG, pkg-config, no, $PATH:/usr/bin:/usr/local/bin)
|
||||||
|
|
||||||
|
if test x$PKGCONFIG != xno; then
|
||||||
|
AC_MSG_CHECKING([for $1 options with pkg-config])
|
||||||
|
dnl ask pkg-config about $1
|
||||||
|
$PKGCONFIG --exists $1
|
||||||
|
if test "$?" -ne "0"; then
|
||||||
|
dnl pkg-config does not have info about the given module! set the
|
||||||
|
dnl variable to 'no'
|
||||||
|
PKGCONFIG="no"
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([found])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
PKGCONFIG="no"
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
111
configure.ac
111
configure.ac
|
@ -5,7 +5,7 @@
|
||||||
# | (__| |_| | _ <| |___
|
# | (__| |_| | _ <| |___
|
||||||
# \___|\___/|_| \_\_____|
|
# \___|\___/|_| \_\_____|
|
||||||
#
|
#
|
||||||
# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
|
# Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
#
|
#
|
||||||
# This software is licensed as described in the file COPYING, which
|
# This software is licensed as described in the file COPYING, which
|
||||||
# you should have received as part of this distribution. The terms
|
# you should have received as part of this distribution. The terms
|
||||||
|
@ -1178,32 +1178,19 @@ if test X"$OPT_SSL" != Xno; then
|
||||||
|
|
||||||
if test "$PKGTEST" = "yes"; then
|
if test "$PKGTEST" = "yes"; then
|
||||||
|
|
||||||
dnl Detect the pkg-config tool, as it may have extra info about the
|
CURL_CHECK_PKGCONFIG(openssl)
|
||||||
dnl openssl installation we can use. I *believe* this is what we are
|
|
||||||
dnl expected to do on really recent Redhat Linux hosts.
|
|
||||||
|
|
||||||
AC_PATH_PROG( PKGCONFIG, pkg-config, no, $PATH:/usr/bin:/usr/local/bin)
|
|
||||||
if test "$PKGCONFIG" != "no" ; then
|
if test "$PKGCONFIG" != "no" ; then
|
||||||
AC_MSG_CHECKING([OpenSSL options with pkg-config])
|
SSL_LIBS=`$PKGCONFIG --libs-only-l openssl 2>/dev/null`
|
||||||
|
SSL_LDFLAGS=`$PKGCONFIG --libs-only-L openssl 2>/dev/null`
|
||||||
|
SSL_CPPFLAGS=`$PKGCONFIG --cflags-only-I openssl 2>/dev/null`
|
||||||
|
|
||||||
$PKGCONFIG --exists openssl
|
LIB_OPENSSL=`echo $SSL_LDFLAGS | sed -e 's/-L//g'`
|
||||||
SSL_EXISTS=$?
|
|
||||||
|
|
||||||
if test "$SSL_EXISTS" -eq "0"; then
|
dnl use the values pkg-config reported
|
||||||
SSL_LIBS=`$PKGCONFIG --libs-only-l openssl 2>/dev/null`
|
LIBS="$LIBS $SSL_LIBS"
|
||||||
SSL_LDFLAGS=`$PKGCONFIG --libs-only-L openssl 2>/dev/null`
|
CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
|
||||||
SSL_CPPFLAGS=`$PKGCONFIG --cflags-only-I openssl 2>/dev/null`
|
LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
|
||||||
|
|
||||||
LIB_OPENSSL=`echo $SSL_LDFLAGS | sed -e 's/-L//g'`
|
|
||||||
|
|
||||||
dnl use the values pkg-config reported
|
|
||||||
LIBS="$LIBS $SSL_LIBS"
|
|
||||||
CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
|
|
||||||
LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
|
|
||||||
AC_MSG_RESULT([found])
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -1544,7 +1531,7 @@ if test X"$OPENSSL_ENABLED" = X"1"; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl ----------------------------------------------------
|
dnl ----------------------------------------------------
|
||||||
dnl FIX: only check for GnuTLS if OpenSSL is not enabled
|
dnl check for GnuTLS
|
||||||
dnl ----------------------------------------------------
|
dnl ----------------------------------------------------
|
||||||
|
|
||||||
dnl Default to compiler & linker defaults for GnuTLS files & libraries.
|
dnl Default to compiler & linker defaults for GnuTLS files & libraries.
|
||||||
|
@ -1558,29 +1545,51 @@ AC_HELP_STRING([--without-gnutls], [disable GnuTLS detection]),
|
||||||
if test "$OPENSSL_ENABLED" != "1"; then
|
if test "$OPENSSL_ENABLED" != "1"; then
|
||||||
|
|
||||||
if test X"$OPT_GNUTLS" != Xno; then
|
if test X"$OPT_GNUTLS" != Xno; then
|
||||||
|
|
||||||
|
AC_MSG_NOTICE([OPT_GNUTLS is $OPT_GNUTLS])
|
||||||
|
|
||||||
|
addld=""
|
||||||
if test "x$OPT_GNUTLS" = "xyes"; then
|
if test "x$OPT_GNUTLS" = "xyes"; then
|
||||||
check=`libgnutls-config --version 2>/dev/null`
|
check=`libgnutls-config --version 2>/dev/null`
|
||||||
if test -n "$check"; then
|
if test -n "$check"; then
|
||||||
addlib=`libgnutls-config --libs`
|
addlib=`libgnutls-config --libs`
|
||||||
addcflags=`libgnutls-config --cflags`
|
addcflags=`libgnutls-config --cflags`
|
||||||
version=`libgnutls-config --version`
|
version=`libgnutls-config --version`
|
||||||
gtlsprefix=`libgnutls-config --prefix`
|
gtlslib=`libgnutls-config --prefix`/lib$libsuff
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
addlib=`$OPT_GNUTLS/bin/libgnutls-config --libs`
|
addlib=`$OPT_GNUTLS/bin/libgnutls-config --libs`
|
||||||
addcflags=`$OPT_GNUTLS/bin/libgnutls-config --cflags`
|
addcflags=`$OPT_GNUTLS/bin/libgnutls-config --cflags`
|
||||||
version=`$OPT_GNUTLS/bin/libgnutls-config --version 2>/dev/null`
|
version=`$OPT_GNUTLS/bin/libgnutls-config --version 2>/dev/null`
|
||||||
gtlsprefix=$OPT_GNUTLS
|
gtlslib=$OPT_GNUTLS/lib$libsuff
|
||||||
if test -z "$version"; then
|
|
||||||
version="unknown"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test -z "$version"; then
|
||||||
|
CURL_CHECK_PKGCONFIG(gnutls)
|
||||||
|
|
||||||
|
if test "$PKGCONFIG" != "no" ; then
|
||||||
|
addlib=`$PKGCONFIG --libs-only-l gnutls`
|
||||||
|
addld=`$PKGCONFIG --libs-only-L gnutls`
|
||||||
|
addcflags=`$PKGCONFIG --cflags-only-I gnutls`
|
||||||
|
version=`$PKGCONFIG --modversion gnutls`
|
||||||
|
gtlslib=`echo $addld | $SED -e 's/-L//'`
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$version"; then
|
||||||
|
dnl lots of efforts, still no go
|
||||||
|
version="unknown"
|
||||||
|
fi
|
||||||
|
|
||||||
if test -n "$addlib"; then
|
if test -n "$addlib"; then
|
||||||
|
|
||||||
CLEANLIBS="$LIBS"
|
CLEANLIBS="$LIBS"
|
||||||
CLEANCPPFLAGS="$CPPFLAGS"
|
CLEANCPPFLAGS="$CPPFLAGS"
|
||||||
|
CLEADLDFLAGS="$LDFLAGS"
|
||||||
|
|
||||||
LIBS="$LIBS $addlib"
|
LIBS="$LIBS $addlib"
|
||||||
|
LDFLAGS="$LDFLAGS $addld"
|
||||||
if test "$addcflags" != "-I/usr/include"; then
|
if test "$addcflags" != "-I/usr/include"; then
|
||||||
CPPFLAGS="$CPPFLAGS $addcflags"
|
CPPFLAGS="$CPPFLAGS $addcflags"
|
||||||
fi
|
fi
|
||||||
|
@ -1601,14 +1610,16 @@ if test "$OPENSSL_ENABLED" != "1"; then
|
||||||
if test "x$USE_GNUTLS" = "xyes"; then
|
if test "x$USE_GNUTLS" = "xyes"; then
|
||||||
AC_MSG_NOTICE([detected GnuTLS version $version])
|
AC_MSG_NOTICE([detected GnuTLS version $version])
|
||||||
|
|
||||||
dnl when shared libs were found in a path that the run-time
|
if test -n "$gtlslib"; then
|
||||||
dnl linker doesn't search through, we need to add it to
|
dnl when shared libs were found in a path that the run-time
|
||||||
dnl LD_LIBRARY_PATH to prevent further configure tests to fail
|
dnl linker doesn't search through, we need to add it to
|
||||||
dnl due to this
|
dnl LD_LIBRARY_PATH to prevent further configure tests to fail
|
||||||
|
dnl due to this
|
||||||
|
|
||||||
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlsprefix/lib$libsuff"
|
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib"
|
||||||
export LD_LIBRARY_PATH
|
export LD_LIBRARY_PATH
|
||||||
AC_MSG_NOTICE([Added $gtlsprefix/lib$libsuff to LD_LIBRARY_PATH])
|
AC_MSG_NOTICE([Added $gtlslib to LD_LIBRARY_PATH])
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
@ -1633,13 +1644,15 @@ if test "$OPENSSL_ENABLED" != "1" -a "$GNUTLS_ENABLED" != "1"; then
|
||||||
|
|
||||||
if test X"$OPT_NSS" != Xno; then
|
if test X"$OPT_NSS" != Xno; then
|
||||||
if test "x$OPT_NSS" = "xyes"; then
|
if test "x$OPT_NSS" = "xyes"; then
|
||||||
check=`pkg-config --version 2>/dev/null`
|
|
||||||
if test -n "$check"; then
|
CURL_CHECK_PKGCONFIG(nss)
|
||||||
addlib=`pkg-config --libs nss`
|
|
||||||
addcflags=`pkg-config --cflags nss`
|
if test "$PKGCONFIG" != "no" ; then
|
||||||
version=`pkg-config --modversion nss`
|
addlib=`$PKGCONFIG --libs nss`
|
||||||
nssprefix=`pkg-config --variable=prefix nss`
|
addcflags=`$PKGCONFIG --cflags nss`
|
||||||
fi
|
version=`$PKGCONFIG --modversion nss`
|
||||||
|
nssprefix=`$PKGCONFIG --variable=prefix nss`
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
# Without pkg-config, we'll kludge in some defaults
|
# Without pkg-config, we'll kludge in some defaults
|
||||||
addlib="-lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl"
|
addlib="-lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl"
|
||||||
|
|
Loading…
Reference in New Issue