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 v2] Makefile: default to -lcurl when no CURL_CONFIG or CURLDIR
Date: Mon, 28 Apr 2014 14:01:23 -0700 [thread overview]
Message-ID: <1398718883-5630-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.
Signed-off-by: Dave Borowitz <dborowitz@google.com>
---
Makefile | 41 ++++++++++++++++++++++++++++-------------
1 file changed, 28 insertions(+), 13 deletions(-)
diff --git a/Makefile b/Makefile
index 74a929b..81e8214 100644
--- a/Makefile
+++ b/Makefile
@@ -35,14 +35,17 @@ 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.
#
# Define CURL_STATIC to statically link libcurl. Only applies if
# CURL_CONFIG is used.
#
# Define CURLDIR=/foo/bar if your curl header and library files are in
-# /foo/bar/include and /foo/bar/lib directories. This overrides CURL_CONFIG,
-# but is less robust.
+# /foo/bar/include and /foo/bar/lib directories. This overrides
+# CURL_CONFIG, but is less robust. If not set, and CURL_CONFIG is not set,
+# uses -lcurl with no additional library detection (other than
+# NEEDS_*_WITH_CURL).
#
# Define NO_EXPAT if you do not have expat installed. git-http-push is
# not built, and you cannot push using http:// and https:// transports (dumb).
@@ -1127,9 +1130,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 +1161,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 21:02 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-28 21:01 Dave Borowitz [this message]
2014-04-28 21:32 ` [PATCH v2] Makefile: default to -lcurl when no CURL_CONFIG or CURLDIR Junio C Hamano
2014-04-28 23:30 ` Jonathan Nieder
2014-04-30 13:04 ` Erik Faye-Lund
2014-04-30 15:13 ` Junio C Hamano
2014-04-30 16:05 ` Erik Faye-Lund
2014-04-30 17:26 ` Junio C Hamano
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=1398718883-5630-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).