From: Junio C Hamano Date: Mon, 28 Apr 2014 19:56:54 GMT Subject: Re: [PATCH v3 1/2] Makefile: use curl-config to determine curl flags Message-ID: In-Reply-To: <1398713704-15428-1-git-send-email-dborowitz@google.com> Dave Borowitz writes: > Use this only when CURLDIR is not explicitly specified, to continue > supporting older builds. Moreover, if CURL_CONFIG is unset or running > it returns no results (e.g. because it is missing), default to the old > behavior of blindly setting -lcurl. > ifdef CURLDIR > + CURL_LIBCURL= > else > + CURL_CONFIG ?= curl-config > + ifeq "$(CURL_CONFIG)" "" > + CURL_LIBCURL = > + else > + CURL_LIBCURL := $(shell $(CURL_CONFIG) --libs) > endif This "ifeq" is redundant and will never set CURL_LIBCURL to empty without running the "else" part, I think. In a Makefile, a variable explicitly set to empty and a variable that is unset are treated the same. $ cat >Makefile < endif > + > + ifeq "$(CURL_LIBCURL)" "" This will catch the "$(shell $(CURL_CONFIG) --libs) assigned an empty string to CURL_LIBCURL" case, so the result is good. I haven't checked what it would look like if we turn this into an incremental patch to be applied on top of 'master' (which would give us a place to document better why we do not rely on the presense of curl-config), but if we can do so, that would be more preferable than having to revert the merge of the previous one and then applying these two patches anew. Thanks. > + 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 > + CURL_LIBCURL += -lcrypto > + endif > + endif > + ifdef NEEDS_IDN_WITH_CURL > + CURL_LIBCURL += -lidn > + endif > + else > + BASIC_CFLAGS += $(shell $(CURL_CONFIG) --cflags) > endif > > REMOTE_CURL_PRIMARY = git-remote-http$X