1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-04 22:56:34 +02:00

build: link with curl-defined linker flags

Adjusting the build process to rely more on curl-config to populate
linker flags instead of manually populating flags based off detected
features.

Originally, a configure-invoked build would check for SSL-support in the
target curl library. If enabled, NEEDS_SSL_WITH_CURL would be set and
used in the Makefile to append additional libraries to link against. As
for systems building solely with make, the defines NEEDS_IDN_WITH_CURL
and NEEDS_SSL_WITH_CURL could be set to indirectly enable respective
linker flags. Since both configure.ac and Makefile already rely on
curl-config utility to provide curl-related build information, adjusting
the respective assets to populate required linker flags using the
utility (unless explicitly configured).

Signed-off-by: James Knight <james.d.knight@live.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
James Knight 2018-11-03 05:12:11 +00:00 committed by Junio C Hamano
parent d582ea202b
commit 23c4bbe28e
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.
@ -1307,20 +1310,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

@ -431,8 +431,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
@ -458,7 +456,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