# [PATCH 1/1] configure: make curl-config path configurable

2 messages from 2015-09-24 to 2015-09-25. Participants: Remi Pommarel, Junio C Hamano.
Thread: https://gitlist.dev/t/40423

## Remi Pommarel, 2015-09-24 19:50

Subject: [PATCH 1/1] configure: make curl-config path configurable
Message-ID: <1443124243-15134-1-git-send-email-repk@triplefau.lt>
URL: https://gitlist.dev/e/1443124243-15134-1-git-send-email-repk%40triplefau.lt

```
There are situations, ie during cross compilation, where curl-config program
is not present in the PATH.

Make configure check that a custom curl-config program is passed by the user
through ac_cv_prog_CURL_CONFIG then set CURL_CONFIG variable accordingly in
config.mak.autogen. Makefile uses this variable to get the target's curl
configuration program.

Signed-off-by: Remi Pommarel <repk@triplefau.lt>
---
 Makefile     |  5 +++--
 configure.ac | 10 ++++++++++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index ce0cfe2..81ac5bb 100644
--- a/Makefile
+++ b/Makefile
@@ -374,6 +374,7 @@ LDFLAGS =
 ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS)
 ALL_LDFLAGS = $(LDFLAGS)
 STRIP ?= strip
+CURL_CONFIG=curl-config
 
 # Among the variables below, these:
 #   gitexecdir
@@ -1059,13 +1060,13 @@ else
 	REMOTE_CURL_NAMES = $(REMOTE_CURL_PRIMARY) $(REMOTE_CURL_ALIASES)
 	PROGRAM_OBJS += http-fetch.o
 	PROGRAMS += $(REMOTE_CURL_NAMES)
-	curl_check := $(shell (echo 070908; curl-config --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
+	curl_check := $(shell (echo 070908; $(CURL_CONFIG) --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
 	ifeq "$(curl_check)" "070908"
 		ifndef NO_EXPAT
 			PROGRAM_OBJS += http-push.o
 		endif
 	endif
-	curl_check := $(shell (echo 072200; curl-config --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
+	curl_check := $(shell (echo 072200; $(CURL_CONFIG) --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
 	ifeq "$(curl_check)" "072200"
 		USE_CURL_FOR_IMAP_SEND = YesPlease
 	endif
diff --git a/configure.ac b/configure.ac
index 14012fa..acc23fb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -525,6 +525,16 @@ GIT_UNSTASH_FLAGS($CURLDIR)
 
 GIT_CONF_SUBST([NO_CURL])
 
+if test -z "$NO_CURL"; then
+
+AC_CHECK_PROG([CURL_CONFIG], [curl-config], [curl-config], [no])
+if test $CURL_CONFIG != no; then
+    GIT_CONF_SUBST([CURL_CONFIG])
+fi
+
+fi
+
+
 #
 # 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.
-- 
2.0.1

```

## Junio C Hamano, 2015-09-25 00:21

Subject: Re: [PATCH 1/1] configure: make curl-config path configurable
Message-ID: <xmqqio6zuz4z.fsf@gitster.mtv.corp.google.com>
URL: https://gitlist.dev/e/xmqqio6zuz4z.fsf%40gitster.mtv.corp.google.com
In-Reply-To: <1443124243-15134-1-git-send-email-repk@triplefau.lt>

```
Remi Pommarel <repk@triplefau.lt> writes:

> There are situations, ie during cross compilation, where curl-config program
> is not present in the PATH.
>
> Make configure check that a custom curl-config program is passed by the user
> through ac_cv_prog_CURL_CONFIG then set CURL_CONFIG variable accordingly in
> config.mak.autogen. Makefile uses this variable to get the target's curl
> configuration program.
>
> Signed-off-by: Remi Pommarel <repk@triplefau.lt>
> ---
>  Makefile     |  5 +++--
>  configure.ac | 10 ++++++++++
>  2 files changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index ce0cfe2..81ac5bb 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -374,6 +374,7 @@ LDFLAGS =
>  ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS)
>  ALL_LDFLAGS = $(LDFLAGS)
>  STRIP ?= strip
> +CURL_CONFIG=curl-config

s/.*/CURL_CONFIG = curl-config/;

Please also add description in the early part of Makefile, perhaps
right after it explains CURLDIR=/foo/bar.

The officially supported way to tweak the build is to define these
variables by whatever means, and use of autoconf/configure is merely
one optional way of doing so.  Other people need to know what can be
tweaked and how, and even those who chose to use autoconf/configure
would need to know when autoconf/configure did not work correctly.

Thanks.

>  # Among the variables below, these:
>  #   gitexecdir
> @@ -1059,13 +1060,13 @@ else
>  	REMOTE_CURL_NAMES = $(REMOTE_CURL_PRIMARY) $(REMOTE_CURL_ALIASES)
>  	PROGRAM_OBJS += http-fetch.o
>  	PROGRAMS += $(REMOTE_CURL_NAMES)
> -	curl_check := $(shell (echo 070908; curl-config --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
> +	curl_check := $(shell (echo 070908; $(CURL_CONFIG) --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
>  	ifeq "$(curl_check)" "070908"
>  		ifndef NO_EXPAT
>  			PROGRAM_OBJS += http-push.o
>  		endif
>  	endif
> -	curl_check := $(shell (echo 072200; curl-config --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
> +	curl_check := $(shell (echo 072200; $(CURL_CONFIG) --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
>  	ifeq "$(curl_check)" "072200"
>  		USE_CURL_FOR_IMAP_SEND = YesPlease
>  	endif
> diff --git a/configure.ac b/configure.ac
> index 14012fa..acc23fb 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -525,6 +525,16 @@ GIT_UNSTASH_FLAGS($CURLDIR)
>  
>  GIT_CONF_SUBST([NO_CURL])
>  
> +if test -z "$NO_CURL"; then
> +
> +AC_CHECK_PROG([CURL_CONFIG], [curl-config], [curl-config], [no])
> +if test $CURL_CONFIG != no; then
> +    GIT_CONF_SUBST([CURL_CONFIG])
> +fi
> +
> +fi
> +
> +
>  #
>  # 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.

```
