On Wednesday 13 of January 2010 17:04:35 Yang Tse wrote:
> Here we go, relative to ac-openssl-nss-v3.patch...
Thanks for review!
> Good idea there. But you'll need to tweak it a bit with 'dnl's or
> something, most surely some extra linefeeds are been placed in the
> generated script after the initial backtick and around the backslash.
> Look at what is placed in the generated configure script and you'll
> see what I mean.
Should be fixed.
> If the optional second argument is given, shell variable
> PKG_CONFIG_LIBDIR is still polluted. To avoid this, probably, the
> second argument could be used via CURL_EXPORT_PCDIR when calling
> $PKGCONFIG. Current call to $PKGCONFIG would need to be backticked to
> do this and slightly adjusted. The following will give you the idea...
>
> itexists=`CURL_EXPORT_PCDIR([$2]) \
> $PKGCONFIG --exists $1 2>/dev/null && echo 1`
> if test -n "$itexists"; then
> echo "It exists"
> fi
Should be fixed.
Kamil
diff --git a/acinclude.m4 b/acinclude.m4
index ed35549..177dfbe 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -3190,7 +3190,22 @@ AC_DEFUN([CURL_CHECK_WIN32_LARGEFILE], [
esac
])
-dnl CURL_CHECK_PKGCONFIG ($module)
+dnl CURL_EXPORT_PCDIR ($pcdir)
+dnl ------------------------
+dnl if $pcdir is not empty, set PKG_CONFIG_LIBDIR to $pcdir and export
+dnl
+dnl we need this macro since pkg-config distinguishes among empty and unset
+dnl variable while checking PKG_CONFIG_LIBDIR
+dnl
+
+AC_DEFUN([CURL_EXPORT_PCDIR], [
+ if test -n "$1"; then
+ PKG_CONFIG_LIBDIR="$1"
+ export PKG_CONFIG_LIBDIR
+ fi
+])
+
+dnl CURL_CHECK_PKGCONFIG ($module, [$pcdir])
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.
@@ -3198,6 +3213,8 @@ dnl
dnl If pkg-config is present, check that it has info about the $module or
dnl return "no" anyway!
dnl
+dnl Optionally PKG_CONFIG_LIBDIR may be given as $pcdir.
+dnl
AC_DEFUN([CURL_CHECK_PKGCONFIG], [
@@ -3216,8 +3233,10 @@ AC_DEFUN([CURL_CHECK_PKGCONFIG], [
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
+ itexists=`CURL_EXPORT_PCDIR([$2]) dnl
+ $PKGCONFIG --exists $1 >/dev/null 2>&1 && echo 1`
+
+ if test -z "$itexists"; then
dnl pkg-config does not have info about the given module! set the
dnl variable to 'no'
PKGCONFIG="no"
diff --git a/configure.ac b/configure.ac
index ae8bb9c..b293a56 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1205,7 +1205,6 @@ if test X"$OPT_SSL" != Xno; then
CLEANLDFLAGS="$LDFLAGS"
CLEANCPPFLAGS="$CPPFLAGS"
CLEANLIBS="$LIBS"
- SAVE_PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR"
case "$OPT_SSL" in
yes)
@@ -1233,10 +1232,9 @@ if test X"$OPT_SSL" != Xno; then
dnl Try pkg-config even when cross-compiling. Since we
dnl specify PKG_CONFIG_LIBDIR we're only looking where
dnl the user told us to look
- PKG_CONFIG_LIBDIR=$OPT_SSL/lib/pkgconfig
- export PKG_CONFIG_LIBDIR
- AC_MSG_NOTICE([set PKG_CONFIG_LIBDIR to "$PKG_CONFIG_LIBDIR"])
- if test -e "$PKG_CONFIG_LIBDIR/openssl.pc"; then
+ OPENSSL_PCDIR="$OPT_SSL/lib/pkgconfig"
+ AC_MSG_NOTICE([PKG_CONFIG_LIBDIR will be set to "$OPENSSL_PCDIR"])
+ if test -e "$OPENSSL_PCDIR/openssl.pc"; then
PKGTEST="yes"
fi
@@ -1253,12 +1251,17 @@ if test X"$OPT_SSL" != Xno; then
if test "$PKGTEST" = "yes"; then
- CURL_CHECK_PKGCONFIG(openssl)
+ CURL_CHECK_PKGCONFIG(openssl, [$OPENSSL_PCDIR])
if test "$PKGCONFIG" != "no" ; then
- 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`
+ SSL_LIBS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
+ $PKGCONFIG --libs-only-l openssl 2>/dev/null`
+
+ SSL_LDFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
+ $PKGCONFIG --libs-only-L openssl 2>/dev/null`
+
+ SSL_CPPFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
+ $PKGCONFIG --cflags-only-I openssl 2>/dev/null`
AC_MSG_NOTICE([pkg-config: SSL_LIBS: "$SSL_LIBS"])
AC_MSG_NOTICE([pkg-config: SSL_LDFLAGS: "$SSL_LDFLAGS"])
@@ -1276,10 +1279,6 @@ if test X"$OPT_SSL" != Xno; then
fi
fi
- dnl we're done using pkg-config for openssl
- PKG_CONFIG_LIBDIR="$SAVE_PKG_CONFIG_LIBDIR"
- export PKG_CONFIG_LIBDIR
-
dnl finally, set flags to use SSL
CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html