Skip to content

Commit

Permalink
Merge branch 'db/make-with-curl'
Browse files Browse the repository at this point in the history
It turns out that some platforms do ship without curl-config even
though they build with the hardcoded default -lcurl and rely on it
to work.

* db/make-with-curl:
  Makefile: default to -lcurl when no CURL_CONFIG or CURLDIR
  • Loading branch information
Junio C Hamano committed Apr 28, 2014
2 parents 5f11a7a + f3f11fa commit d8779e1
Showing 1 changed file with 28 additions and 13 deletions.
41 changes: 28 additions & 13 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down

0 comments on commit d8779e1

Please sign in to comment.