summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2014-12-27 17:25:55 +0100
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2014-12-27 18:46:51 +0100
commit90a6675e18d60e0b077bc316261b7c0ebb773d88 (patch)
tree5d64dd268ba78d1dff2a1c201a3f3834c7b3eb8a
parent7b5de43a03d432c28536cbb58fc50e5c393494b6 (diff)
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>
-rw-r--r--package/libxmlrpc/0004-use-correct-curl-config.patch82
-rw-r--r--package/libxmlrpc/libxmlrpc.mk9
2 files changed, 86 insertions, 5 deletions
diff --git a/package/libxmlrpc/0004-use-correct-curl-config.patch b/package/libxmlrpc/0004-use-correct-curl-config.patch
index ada0bd24e..c0646d3b8 100644
--- a/package/libxmlrpc/0004-use-correct-curl-config.patch
+++ b/package/libxmlrpc/0004-use-correct-curl-config.patch
@@ -1,9 +1,10 @@
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
-pointed at by the environment variables at configure time), let's use
-the CURL_LDADD variable which was computed at configure time.
+pointed at by the environment variables at configure time), let's
+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>
@@ -16,7 +17,80 @@ Index: b/src/Makefile
TRANSPORT_MODS += blddir/lib/curl_transport/curlmulti
TRANSPORT_MODS += blddir/lib/curl_transport/lock_pthread
- TRANSPORT_LIBDEP += $(shell curl-config --libs)
-+ TRANSPORT_LIBDEP += $(CURL_LDADD)
++ TRANSPORT_LIBDEP += $(shell $CURL_CONFIG --libs)
endif
ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
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)
diff --git a/package/libxmlrpc/libxmlrpc.mk b/package/libxmlrpc/libxmlrpc.mk
index 1b771e256..c3788d6c3 100644
--- a/package/libxmlrpc/libxmlrpc.mk
+++ b/package/libxmlrpc/libxmlrpc.mk
@@ -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_FILES = doc/COPYING
LIBXMLRPC_INSTALL_STAGING = YES
-LIBXMLRPC_DEPENDENCIES = libcurl
+LIBXMLRPC_DEPENDENCIES = libcurl host-autoconf
LIBXMLRPC_CONFIG_SCRIPTS = xmlrpc-c-config
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 = \
$(if $(BR2_USE_WCHAR),,ac_cv_header_wchar_h=no) \
$(if $(BR2_INSTALL_LIBSTDCPP),,--disable-cplusplus) \