configure: use pkg-config for c-ares detection

First check if there's c-ares information given as pkg-config info and use
that as first preference.

Reported-by: pszemus on github
Fixes #2203
Closes #2658
This commit is contained in:
Daniel Stenberg 2018-06-14 13:19:09 +02:00
parent 023e80e477
commit ed224f23d5
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
1 changed files with 32 additions and 7 deletions

View File

@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
# Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@ -497,9 +497,24 @@ AC_DEFUN([CURL_CHECK_LIB_ARES], [
embedded_ares_builddir="$configure_runpath/ares"
if test -n "$want_ares_path"; then
dnl c-ares library path has been specified
ares_CPPFLAGS="-I$want_ares_path/include"
ares_LDFLAGS="-L$want_ares_path/lib"
ares_LIBS="-lcares"
ARES_PCDIR="$want_ares_path/lib/pkgconfig"
CURL_CHECK_PKGCONFIG(libcares, [$ARES_PCIDR])
if test "$PKGCONFIG" != "no" ; then
ares_LIBS=`CURL_EXPORT_PCDIR([$ARES_PCDIR])
$PKGCONFIG --libs-only-l libcares`
ares_LDFLAGS=`CURL_EXPORT_PCDIR([$ARES_PCDIR])
$PKGCONFIG --libs-only-L libcares`
ares_CPPFLAGS=`CURL_EXPORT_PCDIR([$ARES_PCDIR])
$PKGCONFIG --cflags-only-I libcares`
AC_MSG_NOTICE([pkg-config: ares LIBS: "$ares_LIBS"])
AC_MSG_NOTICE([pkg-config: ares LDFLAGS: "$ares_LDFLAGS"])
AC_MSG_NOTICE([pkg-config: ares CPPFLAGS: "$ares_CPPFLAGS"])
else
dnl ... path without pkg-config
ares_CPPFLAGS="-I$want_ares_path/include"
ares_LDFLAGS="-L$want_ares_path/lib"
ares_LIBS="-lcares"
fi
else
dnl c-ares library path has not been given
if test -d "$srcdir/ares"; then
@ -513,9 +528,19 @@ AC_DEFUN([CURL_CHECK_LIB_ARES], [
ares_LIBS="-lcares"
else
dnl c-ares path not specified, use defaults
ares_CPPFLAGS=""
ares_LDFLAGS=""
ares_LIBS="-lcares"
CURL_CHECK_PKGCONFIG(libcares)
if test "$PKGCONFIG" != "no" ; then
ares_LIBS=`$PKGCONFIG --libs-only-l libcares`
ares_LDFLAGS=`$PKGCONFIG --libs-only-L libcares`
ares_CPPFLAGS=`$PKGCONFIG --cflags-only-I libcares`
AC_MSG_NOTICE([pkg-config: ares_LIBS: "$ares_LIBS"])
AC_MSG_NOTICE([pkg-config: ares_LDFLAGS: "$ares_LDFLAGS"])
AC_MSG_NOTICE([pkg-config: ares_CPPFLAGS: "$ares_CPPFLAGS"])
else
ares_CPPFLAGS=""
ares_LDFLAGS=""
ares_LIBS="-lcares"
fi
fi
fi
#