diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-04-24 12:31:27 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-04-24 12:31:27 -0700 |
commit | e42552135a2a396f37053a89f44952ea907870b2 (patch) | |
tree | cd3018e60a25867289953230a2aef720f59309de | |
parent | 779792a5f24bb4e8049c4f88ad752e70d4a8a080 (diff) | |
parent | d5067112db68fcc8c7b13c769c896b17480cb5b0 (diff) | |
download | git-e42552135a2a396f37053a89f44952ea907870b2.tar.gz git-e42552135a2a396f37053a89f44952ea907870b2.tar.xz |
Merge branch 'db/make-with-curl'
Ask curl-config how to link with the curl library, instead of
having only a limited configurability knobs in the Makefile.
* db/make-with-curl:
Makefile: allow static linking against libcurl
Makefile: use curl-config to determine curl flags
-rw-r--r-- | Makefile | 45 |
1 files changed, 33 insertions, 12 deletions
@@ -34,8 +34,15 @@ all:: # git-http-push are not built, and you cannot use http:// and https:// # transports (neither smart nor dumb). # +# Define CURL_CONFIG to the path to a curl-config binary other than the +# default 'curl-config'. +# +# 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. +# /foo/bar/include and /foo/bar/lib directories. This overrides CURL_CONFIG, +# but is less robust. # # 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). @@ -143,9 +150,11 @@ all:: # # Define NEEDS_SSL_WITH_CRYPTO if you need -lssl when using -lcrypto (Darwin). # -# Define NEEDS_SSL_WITH_CURL if you need -lssl with -lcurl (Minix). +# Define NEEDS_SSL_WITH_CURL if you need -lssl with -lcurl (Minix). Only used +# if CURLDIR is set. # -# Define NEEDS_IDN_WITH_CURL if you need -lidn when using -lcurl (Minix). +# Define NEEDS_IDN_WITH_CURL if you need -lidn when using -lcurl (Minix). Only +# used if CURLDIR is set. # # Define NEEDS_LIBICONV if linking with libc is not enough (Darwin). # @@ -1121,18 +1130,30 @@ else # 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 + ifdef NEEDS_SSL_WITH_CURL + CURL_LIBCURL += -lssl + ifdef NEEDS_CRYPTO_WITH_SSL + CURL_LIBCURL += -lcrypto + endif + endif + ifdef NEEDS_IDN_WITH_CURL + CURL_LIBCURL += -lidn + endif else - CURL_LIBCURL = -lcurl - endif - ifdef NEEDS_SSL_WITH_CURL - CURL_LIBCURL += -lssl - ifdef NEEDS_CRYPTO_WITH_SSL - CURL_LIBCURL += -lcrypto + 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) + endif endif endif - ifdef NEEDS_IDN_WITH_CURL - CURL_LIBCURL += -lidn - endif REMOTE_CURL_PRIMARY = git-remote-http$X REMOTE_CURL_ALIASES = git-remote-https$X git-remote-ftp$X git-remote-ftps$X |