Re: [PATCH v2] Makefile: default to -lcurl when no CURL_CONFIG or CURLDIR

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 28, 2014 at 11:01 PM, Dave Borowitz <dborowitz@xxxxxxxxxx> wrote:
> 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@xxxxxxxxxx>
> ---
>  Makefile | 41 ++++++++++++++++++++++++++++-------------
>  1 file changed, 28 insertions(+), 13 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 74a929b..81e8214 100644
> --- a/Makefile
> +++ b/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).

This is wrong, no? With CURL_CONFIG not set, it currently *does* run
curl-config, see below.

>  #
>  # 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

Doesn't that definition just define CURL_CONFIG unconditionally? How
are the first condition ever supposed to get triggered?

$ make
make: curl-config: Command not found
GIT_VERSION = 1.9.2.462.gf3f11fa
make: curl-config: Command not found
    * new build flags
    * new link flags
    * new prefix flags
    GEN common-cmds.h
...

Yuck.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]