From: Dave Borowitz <dborowitz@google.com>
To: git@vger.kernel.org
Cc: kusmabite@gmail.com, gitster@pobox.com,
Dave Borowitz <dborowitz@google.com>
Subject: [PATCH] Makefile: default to -lcurl when no CURL_CONFIG or CURLDIR
Date: Mon, 28 Apr 2014 12:50:53 -0700 [thread overview]
Message-ID: <1398714653-1050-1-git-send-email-dborowitz@google.com> (raw)
The original implementation of CURL_CONFIG support did not match the
original behavior of using -lcurl when CURLDIR was not set. This broke
implementations that were lacking curl-config but did have libcurl
installed along system libraries, such as MSysGit. In other words, the
assumption that curl-config is always installed was incorrect.
Instead, if CURL_CONFIG is empty or returns an empty result (e.g. due
to curl-config being missing), use the old behavior of falling back to
-lcurl.
---
Makefile | 36 +++++++++++++++++++++++++-----------
1 file changed, 25 insertions(+), 11 deletions(-)
diff --git a/Makefile b/Makefile
index 74a929b..79b7442 100644
--- a/Makefile
+++ b/Makefile
@@ -35,7 +35,9 @@ all::
# transports (neither smart nor dumb).
#
# Define CURL_CONFIG to the path to a curl-config binary other than the
-# default 'curl-config'.
+# default 'curl-config'. If CURL_CONFIG is unset or points to a binary that
+# is not found, defaults to the CURLDIR behavior, or if CURLDIR is not set,
+# uses -lcurl with no additional library detection.
#
# Define CURL_STATIC to statically link libcurl. Only applies if
# CURL_CONFIG is used.
@@ -1127,9 +1129,27 @@ ifdef NO_CURL
REMOTE_CURL_NAMES =
else
ifdef CURLDIR
- # Try "-Wl,-rpath=$(CURLDIR)/$(lib)" in such a case.
- BASIC_CFLAGS += -I$(CURLDIR)/include
- CURL_LIBCURL = -L$(CURLDIR)/$(lib) $(CC_LD_DYNPATH)$(CURLDIR)/$(lib) -lcurl
+ CURL_LIBCURL=
+ else
+ CURL_CONFIG ?= curl-config
+ ifeq "$(CURL_CONFIG)" ""
+ CURL_LIBCURL =
+ else
+ CURL_LIBCURL := $(shell $(CURL_CONFIG) --libs)
+ endif
+ endif
+
+ ifeq "$(CURL_LIBCURL)" ""
+ ifdef CURL_STATIC
+ $(error "CURL_STATIC must be used with CURL_CONFIG")
+ endif
+ ifdef CURLDIR
+ # Try "-Wl,-rpath=$(CURLDIR)/$(lib)" in such a case.
+ BASIC_CFLAGS += -I$(CURLDIR)/include
+ CURL_LIBCURL = -L$(CURLDIR)/$(lib) $(CC_LD_DYNPATH)$(CURLDIR)/$(lib) -lcurl
+ else
+ CURL_LIBCURL = -lcurl
+ endif
ifdef NEEDS_SSL_WITH_CURL
CURL_LIBCURL += -lssl
ifdef NEEDS_CRYPTO_WITH_SSL
@@ -1140,17 +1160,11 @@ else
CURL_LIBCURL += -lidn
endif
else
- CURL_CONFIG ?= curl-config
BASIC_CFLAGS += $(shell $(CURL_CONFIG) --cflags)
ifdef CURL_STATIC
CURL_LIBCURL = $(shell $(CURL_CONFIG) --static-libs)
ifeq "$(CURL_LIBCURL)" ""
- $(error libcurl not detected or not compiled with static support)
- endif
- else
- CURL_LIBCURL = $(shell $(CURL_CONFIG) --libs)
- ifeq "$(CURL_LIBCURL)" ""
- $(error libcurl not detected; try setting CURLDIR)
+ $(error libcurl not detected or not compiled with static support)
endif
endif
endif
--
1.9.1.423.g4596e3a
next reply other threads:[~2014-04-28 19:51 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-28 19:50 Dave Borowitz [this message]
2014-04-28 20:05 ` [PATCH] Makefile: default to -lcurl when no CURL_CONFIG or CURLDIR Jonathan Nieder
2014-04-28 20:46 ` Dave Borowitz
2014-04-28 20:48 ` Dave Borowitz
2014-04-28 20:50 ` Jonathan Nieder
2014-04-28 20:52 ` Dave Borowitz
2014-04-28 21:27 ` Junio C Hamano
2014-04-28 21:04 ` Junio C Hamano
2014-04-28 20:45 ` Junio C Hamano
2014-04-28 20:56 ` Dave Borowitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1398714653-1050-1-git-send-email-dborowitz@google.com \
--to=dborowitz@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=kusmabite@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).