Merge branch 'jk/curl-ldflags'

The way -lcurl library gets linked has been simplified by taking
advantage of the fact that we can just ask curl-config command how.

* jk/curl-ldflags:
  build: link with curl-defined linker flags
This commit is contained in:
Junio C Hamano 2018-11-18 18:23:53 +09:00
commit fa2f2f085e
3 changed files with 22 additions and 28 deletions

View file

@ -59,6 +59,13 @@ all::
# Define CURL_CONFIG to curl's configuration program that prints information
# about the library (e.g., its version number). The default is 'curl-config'.
#
# Define CURL_LDFLAGS to specify flags that you need to link when using libcurl,
# if you do not want to rely on the libraries provided by CURL_CONFIG. The
# default value is a result of `curl-config --libs`. An example value for
# CURL_LDFLAGS is as follows:
#
# CURL_LDFLAGS=-lcurl
#
# 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).
#
@ -183,10 +190,6 @@ 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_IDN_WITH_CURL if you need -lidn when using -lcurl (Minix).
#
# Define NEEDS_LIBICONV if linking with libc is not enough (Darwin).
#
# Define NEEDS_LIBINTL_BEFORE_LIBICONV if you need libintl before libiconv.
@ -1309,20 +1312,17 @@ 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 = -L$(CURLDIR)/$(lib) $(CC_LD_DYNPATH)$(CURLDIR)/$(lib)
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
CURL_LIBCURL =
endif
ifdef CURL_LDFLAGS
CURL_LIBCURL += $(CURL_LDFLAGS)
else
CURL_LIBCURL += $(shell $(CURL_CONFIG) --libs)
endif
REMOTE_CURL_PRIMARY = git-remote-http$X
REMOTE_CURL_ALIASES = git-remote-https$X git-remote-ftp$X git-remote-ftps$X
REMOTE_CURL_NAMES = $(REMOTE_CURL_PRIMARY) $(REMOTE_CURL_ALIASES)

View file

@ -430,8 +430,6 @@ ifeq ($(uname_S),Minix)
NO_NSEC = YesPlease
NEEDS_LIBGEN =
NEEDS_CRYPTO_WITH_SSL = YesPlease
NEEDS_IDN_WITH_CURL = YesPlease
NEEDS_SSL_WITH_CURL = YesPlease
NEEDS_RESOLV =
NO_HSTRERROR = YesPlease
NO_MMAP = YesPlease
@ -457,7 +455,6 @@ ifeq ($(uname_S),NONSTOP_KERNEL)
# Missdetected, hence commented out, see below.
#NO_CURL = YesPlease
# Added manually, see above.
NEEDS_SSL_WITH_CURL = YesPlease
HAVE_LIBCHARSET_H = YesPlease
HAVE_STRINGS_H = YesPlease
NEEDS_LIBICONV = YesPlease

View file

@ -600,17 +600,14 @@ AC_CHECK_PROG([CURL_CONFIG], [curl-config],
if test $CURL_CONFIG != no; then
GIT_CONF_SUBST([CURL_CONFIG])
if test -z "${NO_OPENSSL}"; then
AC_MSG_CHECKING([if Curl supports SSL])
if test $(curl-config --features|grep SSL) = SSL; then
NEEDS_SSL_WITH_CURL=YesPlease
AC_MSG_RESULT([yes])
else
NEEDS_SSL_WITH_CURL=
AC_MSG_RESULT([no])
fi
GIT_CONF_SUBST([NEEDS_SSL_WITH_CURL])
if test -z "$CURL_CONFIG_OPTS"; then
CURL_CONFIG_OPTS="--libs"
fi
CURL_LDFLAGS=$($CURL_CONFIG $CURL_CONFIG_OPTS)
AC_MSG_NOTICE([Setting CURL_LDFLAGS to '$CURL_LDFLAGS'])
GIT_CONF_SUBST([CURL_LDFLAGS], [$CURL_LDFLAGS])
fi
fi