mirror of
https://github.com/moparisthebest/curl
synced 2024-12-23 08:38:49 -05:00
9f71cc293f
Previously compiling rustls on Mac would only complete if you also compiled the SecureTransport TLS backend, which curl would prefer to the Rust backend. Appending these flags to LDFLAGS makes it possible to compile the Rustls backend on Mac without the SecureTransport backend, which means this patch will make it possible for Mac users to use the Rustls backend for TLS. Reviewed-by: Jacob Hoffman-Andrews Fixes #6955 Cloes #6956
110 lines
3.6 KiB
Plaintext
110 lines
3.6 KiB
Plaintext
#***************************************************************************
|
|
# _ _ ____ _
|
|
# Project ___| | | | _ \| |
|
|
# / __| | | | |_) | |
|
|
# | (__| |_| | _ <| |___
|
|
# \___|\___/|_| \_\_____|
|
|
#
|
|
# Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
#
|
|
# This software is licensed as described in the file COPYING, which
|
|
# you should have received as part of this distribution. The terms
|
|
# are also available at https://curl.se/docs/copyright.html.
|
|
#
|
|
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
|
# copies of the Software, and permit persons to whom the Software is
|
|
# furnished to do so, under the terms of the COPYING file.
|
|
#
|
|
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
# KIND, either express or implied.
|
|
#
|
|
#***************************************************************************
|
|
|
|
AC_DEFUN([CURL_WITH_RUSTLS], [
|
|
dnl ----------------------------------------------------
|
|
dnl check for rustls
|
|
dnl ----------------------------------------------------
|
|
|
|
if test "x$OPT_RUSTLS" != xno; then
|
|
_cppflags=$CPPFLAGS
|
|
_ldflags=$LDFLAGS
|
|
ssl_msg=
|
|
|
|
if test X"$OPT_RUSTLS" != Xno; then
|
|
|
|
if test "$OPT_RUSTLS" = "yes"; then
|
|
OPT_RUSTLS=""
|
|
fi
|
|
|
|
if test -z "$OPT_RUSTLS" ; then
|
|
dnl check for lib first without setting any new path
|
|
|
|
AC_CHECK_LIB(crustls, rustls_client_session_read,
|
|
dnl libcrustls found, set the variable
|
|
[
|
|
AC_DEFINE(USE_RUSTLS, 1, [if rustls is enabled])
|
|
AC_SUBST(USE_RUSTLS, [1])
|
|
RUSTLS_ENABLED=1
|
|
USE_RUSTLS="yes"
|
|
ssl_msg="rustls"
|
|
test rustls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
|
], [], -lpthread -ldl)
|
|
fi
|
|
|
|
addld=""
|
|
addlib="-lpthread"
|
|
addcflags=""
|
|
bearssllib=""
|
|
|
|
if test "x$USE_RUSTLS" != "xyes"; then
|
|
dnl add the path and test again
|
|
addld=-L$OPT_RUSTLS/lib$libsuff
|
|
addcflags=-I$OPT_RUSTLS/include
|
|
rustlslib=$OPT_RUSTLS/lib$libsuff
|
|
|
|
LDFLAGS="$LDFLAGS $addld"
|
|
if (test -d "/System/Library/Frameworks/Security.framework" && test "x$cross_compiling" != "xyes"); then
|
|
LDFLAGS="$LDFLAGS -framework CoreFoundation -framework Security"
|
|
fi
|
|
if test "$addcflags" != "-I/usr/include"; then
|
|
CPPFLAGS="$CPPFLAGS $addcflags"
|
|
fi
|
|
|
|
AC_CHECK_LIB(crustls, rustls_client_session_read,
|
|
[
|
|
AC_DEFINE(USE_RUSTLS, 1, [if rustls is enabled])
|
|
AC_SUBST(USE_RUSTLS, [1])
|
|
RUSTLS_ENABLED=1
|
|
USE_RUSTLS="yes"
|
|
ssl_msg="rustls"
|
|
test rustls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
|
|
],
|
|
AC_MSG_ERROR([--with-rustls was specified but could not find rustls.]),
|
|
-lpthread -ldl)
|
|
fi
|
|
|
|
if test "x$USE_RUSTLS" = "xyes"; then
|
|
AC_MSG_NOTICE([detected rustls])
|
|
check_for_ca_bundle=1
|
|
|
|
LIBS="-lcrustls -lpthread -ldl $LIBS"
|
|
|
|
if test -n "$rustlslib"; then
|
|
dnl when shared libs were found in a path that the run-time
|
|
dnl linker doesn't search through, we need to add it to
|
|
dnl CURL_LIBRARY_PATH to prevent further configure tests to fail
|
|
dnl due to this
|
|
if test "x$cross_compiling" != "xyes"; then
|
|
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$rustlslib"
|
|
export CURL_LIBRARY_PATH
|
|
AC_MSG_NOTICE([Added $rustlslib to CURL_LIBRARY_PATH])
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
fi dnl rustls not disabled
|
|
|
|
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
|
|
fi
|
|
])
|