libxmlrpc: improve curl-config patch

The curl-config patch that makes sure to not use curl-config from the
PATH but the curl-config program specified at configure time was
forgetting a number of other places. So we change the strategy, and
make the configure.in script define a $CURL_CONFIG variable that can
be used in Makefiles where appropriate.

This means we need to run autoconf (but not AUTORECONF = YES since the
package uses autoconf but not automake).

This fixes build failures in cases where a curl-config program is in
the PATH. Fixes:

  http://autobuild.buildroot.org/results/06b/06b7eada721483eb57adde147768a1f306b7d0d7/
  (and many similar ones)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
This commit is contained in:
Thomas Petazzoni 2014-12-27 17:25:55 +01:00
parent 7b5de43a03
commit 90a6675e18
2 changed files with 86 additions and 5 deletions

View File

@ -1,9 +1,10 @@
Use correct curl-config program Use correct curl-config program
Instead of calling again curl-config in src/Makefile (which ends up Instead of calling directly curl-config in src/Makefile (which ends up
calling the wrong curl-config: the one in the PATH instead of the one calling the wrong curl-config: the one in the PATH instead of the one
pointed at by the environment variables at configure time), let's use pointed at by the environment variables at configure time), let's
the CURL_LDADD variable which was computed at configure time. define a CURL_CONFIG variable that contains the path to the proper
curl-config program, and use it where appropriate.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
@ -16,7 +17,80 @@ Index: b/src/Makefile
TRANSPORT_MODS += blddir/lib/curl_transport/curlmulti TRANSPORT_MODS += blddir/lib/curl_transport/curlmulti
TRANSPORT_MODS += blddir/lib/curl_transport/lock_pthread TRANSPORT_MODS += blddir/lib/curl_transport/lock_pthread
- TRANSPORT_LIBDEP += $(shell curl-config --libs) - TRANSPORT_LIBDEP += $(shell curl-config --libs)
+ TRANSPORT_LIBDEP += $(CURL_LDADD) + TRANSPORT_LIBDEP += $(shell $CURL_CONFIG --libs)
endif endif
ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes) ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
TRANSPORT_MODS += blddir/lib/libwww_transport/xmlrpc_libwww_transport TRANSPORT_MODS += blddir/lib/libwww_transport/xmlrpc_libwww_transport
Index: b/config.mk.in
===================================================================
--- a/config.mk.in
+++ b/config.mk.in
@@ -32,6 +32,7 @@
LSOCKET = @LSOCKET@
WININET_LDADD = @WININET_LDADD@
WININET_LIBDIR = @WININET_LIBDIR@
+CURL_CONFIG = @CURL_CONFIG@
CURL_LDADD = @CURL_LDADD@
CURL_LIBDIR = @CURL_LIBDIR@
LIBWWW_LDADD = @LIBWWW_LDADD@
Index: b/configure.in
===================================================================
--- a/configure.in
+++ b/configure.in
@@ -550,6 +550,8 @@
dnl So we don't do any check now. If we find out there's a problem with
dnl older Curls, we will revisit that.
+ AC_SUBST(CURL_CONFIG)
+
CURL_LDADD=$($CURL_CONFIG --libs)
AC_SUBST(CURL_LDADD)
Index: b/lib/curl_transport/Makefile
===================================================================
--- a/lib/curl_transport/Makefile
+++ b/lib/curl_transport/Makefile
@@ -29,7 +29,7 @@
$(SRCDIR)/common.mk: srcdir blddir
-CURL_VERSION := $(shell curl-config --vernum)
+CURL_VERSION := $(shell $CURL_CONFIG --vernum)
# Some time at or before Curl 7.12, <curl/types.h> became an empty file
# (no-op). Some time after Curl 7.18, <curl/types.h> ceased to exist.
@@ -43,7 +43,7 @@
CFLAGS_LOCAL += -DNEED_CURL_TYPES_H
endif
-CURL_INCLUDES := $(shell curl-config --cflags)
+CURL_INCLUDES := $(shell $CURL_CONFIG --cflags)
# We expect that curl-config --cflags just gives us -I options, because
# we need just the -I options for 'make dep'. Plus, it's scary to think
# of what any other compiler flag would do to our compile.
Index: b/src/cpp/test/Makefile
===================================================================
--- a/src/cpp/test/Makefile
+++ b/src/cpp/test/Makefile
@@ -20,7 +20,7 @@
LIBS := $(shell $(XMLRPC_C_CONFIG) client --ldadd)
ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
- LIBS += $(shell curl-config --libs)
+ LIBS += $(shell $CURL_CONFIG --libs)
endif
ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
LIBS += $(shell libwww-config --libs)
Index: b/tools/common.mk
===================================================================
--- a/tools/common.mk
+++ b/tools/common.mk
@@ -15,7 +15,7 @@
CLIENT_LDLIBS += $(shell libwww-config --libs)
endif
ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
- CLIENT_LDLIBS += $(shell curl-config --libs)
+ CLIENT_LDLIBS += $(shell $CURL_CONFIG --libs)
endif
ifeq ($(MUST_BUILD_WININET_CLIENT),yes)
CLIENT_LDLIBS += $(shell wininet-config --libs)

View File

@ -10,10 +10,17 @@ LIBXMLRPC_SITE = http://downloads.sourceforge.net/project/xmlrpc-c/Xmlrpc-c%20Su
LIBXMLRPC_LICENSE = BSD-3c (xml-rpc main code and abyss web server), BSD like (lib/expat), Python 1.5.2 license (parts of xmlrpc_base64.c) LIBXMLRPC_LICENSE = BSD-3c (xml-rpc main code and abyss web server), BSD like (lib/expat), Python 1.5.2 license (parts of xmlrpc_base64.c)
LIBXMLRPC_LICENSE_FILES = doc/COPYING LIBXMLRPC_LICENSE_FILES = doc/COPYING
LIBXMLRPC_INSTALL_STAGING = YES LIBXMLRPC_INSTALL_STAGING = YES
LIBXMLRPC_DEPENDENCIES = libcurl LIBXMLRPC_DEPENDENCIES = libcurl host-autoconf
LIBXMLRPC_CONFIG_SCRIPTS = xmlrpc-c-config LIBXMLRPC_CONFIG_SCRIPTS = xmlrpc-c-config
LIBXMLRPC_MAKE = $(MAKE1) LIBXMLRPC_MAKE = $(MAKE1)
# Using autoconf, not automake, so we cannot use AUTORECONF = YES.
define LIBXMLRPC_RUN_AUTOCONF
cd $(@D); $(HOST_DIR)/usr/bin/autoconf
endef
LIBXMLRPC_PRE_CONFIGURE_HOOKS += LIBXMLRPC_RUN_AUTOCONF
LIBXMLRPC_CONF_OPTS = \ LIBXMLRPC_CONF_OPTS = \
$(if $(BR2_USE_WCHAR),,ac_cv_header_wchar_h=no) \ $(if $(BR2_USE_WCHAR),,ac_cv_header_wchar_h=no) \
$(if $(BR2_INSTALL_LIBSTDCPP),,--disable-cplusplus) \ $(if $(BR2_INSTALL_LIBSTDCPP),,--disable-cplusplus) \