Makefile: default to -lcurl when no CURL_CONFIG or CURLDIR
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> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
d5067112db
commit
f3f11fa6a5
41
Makefile
41
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
|
||||
|
Loading…
Reference in New Issue
Block a user