diff --git a/CMakeLists.txt b/CMakeLists.txt index 916976a17f..aece9eac8e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2054,7 +2054,6 @@ if(NOT CURL_DISABLE_INSTALL) else() set(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") endif() - set(LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}") # "a" (Linux) or "lib" (Windows) string(REPLACE "." "" libext "${CMAKE_STATIC_LIBRARY_SUFFIX}") @@ -2135,11 +2134,12 @@ if(NOT CURL_DISABLE_INSTALL) if(LIBCURL_PC_LIBS_PRIVATE) string(REPLACE ";" " " LIBCURL_PC_LIBS_PRIVATE "${LIBCURL_PC_LIBS_PRIVATE}") endif() + set(LIBCURL_PC_LDFLAGS_PRIVATE "${CMAKE_SHARED_LINKER_FLAGS}") if(_ldflags) list(REMOVE_DUPLICATES _ldflags) string(REPLACE ";" " " _ldflags "${_ldflags}") - set(LDFLAGS "${LDFLAGS} ${_ldflags}") - string(STRIP "${LDFLAGS}" LDFLAGS) + set(LIBCURL_PC_LDFLAGS_PRIVATE "${LIBCURL_PC_LDFLAGS_PRIVATE} ${_ldflags}") + string(STRIP "${LIBCURL_PC_LDFLAGS_PRIVATE}" LIBCURL_PC_LDFLAGS_PRIVATE) endif() set(LIBCURL_PC_CFLAGS_PRIVATE "-DCURL_STATICLIB") @@ -2171,8 +2171,8 @@ if(NOT CURL_DISABLE_INSTALL) # ENABLE_STATIC # exec_prefix # includedir - # LDFLAGS # LIBCURL_PC_CFLAGS + # LIBCURL_PC_LDFLAGS_PRIVATE # LIBCURL_PC_LIBS_PRIVATE # libdir # libext @@ -2196,9 +2196,9 @@ if(NOT CURL_DISABLE_INSTALL) # CURLVERSION # exec_prefix # includedir - # LDFLAGS # LIBCURL_PC_CFLAGS # LIBCURL_PC_CFLAGS_PRIVATE + # LIBCURL_PC_LDFLAGS_PRIVATE # LIBCURL_PC_LIBS # LIBCURL_PC_LIBS_PRIVATE # LIBCURL_PC_REQUIRES diff --git a/configure.ac b/configure.ac index 99ce9a4ff6..c83d35689e 100644 --- a/configure.ac +++ b/configure.ac @@ -1513,6 +1513,7 @@ AS_HELP_STRING([--without-brotli], [disable BROTLI]), if test X"$OPT_BROTLI" != Xno; then dnl backup the pre-brotli variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -1548,6 +1549,7 @@ if test X"$OPT_BROTLI" != Xno; then fi LDFLAGS="$LDFLAGS $LD_BROTLI" + LDFLAGSPC="$LDFLAGSPC $LD_BROTLI" CPPFLAGS="$CPPFLAGS $CPP_BROTLI" LIBS="$LIB_BROTLI $LIBS" @@ -1581,6 +1583,7 @@ if test X"$OPT_BROTLI" != Xno; then else dnl no brotli, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS fi @@ -1600,6 +1603,7 @@ AS_HELP_STRING([--without-zstd], [disable libzstd]), if test X"$OPT_ZSTD" != Xno; then dnl backup the pre-zstd variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -1635,6 +1639,7 @@ if test X"$OPT_ZSTD" != Xno; then fi LDFLAGS="$LDFLAGS $LD_ZSTD" + LDFLAGSPC="$LDFLAGSPC $LD_ZSTD" CPPFLAGS="$CPPFLAGS $CPP_ZSTD" LIBS="$LIB_ZSTD $LIBS" @@ -1669,6 +1674,7 @@ if test X"$OPT_ZSTD" != Xno; then else dnl no zstd, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS fi @@ -2013,6 +2019,7 @@ if test x"$want_gss" = xyes; then if test -n "$gnu_gss"; then curl_gss_msg="enabled (GNU GSS)" LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR" + LDFLAGSPC="$LDFLAGSPC $GSSAPI_LIB_DIR" LIBS="-lgss $LIBS" elif test -z "$GSSAPI_LIB_DIR"; then case $host in @@ -2050,6 +2057,7 @@ if test x"$want_gss" = xyes; then if test "$GSSAPI_ROOT" != "yes"; then LDFLAGS="$LDFLAGS -L$GSSAPI_ROOT/lib$libsuff" + LDFLAGSPC="$LDFLAGSPC -L$GSSAPI_ROOT/lib$libsuff" LIBS="-l$gss_libname $LIBS" else LIBS="-l$gss_libname $LIBS" @@ -2059,6 +2067,7 @@ if test x"$want_gss" = xyes; then esac else LDFLAGS="$LDFLAGS $GSSAPI_LIB_DIR" + LDFLAGSPC="$LDFLAGSPC $GSSAPI_LIB_DIR" case $host in *-hp-hpux*) LIBS="-lgss $LIBS" @@ -2257,6 +2266,7 @@ AS_HELP_STRING([--without-libpsl], [disable LIBPSL]), if test X"$OPT_LIBPSL" != Xno; then dnl backup the pre-libpsl variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -2289,6 +2299,7 @@ if test X"$OPT_LIBPSL" != Xno; then fi LDFLAGS="$LDFLAGS $LD_PSL" + LDFLAGSPC="$LDFLAGSPC $LD_PSL" CPPFLAGS="$CPPFLAGS $CPP_PSL" LIBS="$LIB_PSL $LIBS" @@ -2304,6 +2315,7 @@ if test X"$OPT_LIBPSL" != Xno; then ], dnl not found, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS ) @@ -2367,6 +2379,7 @@ AS_HELP_STRING([--with-wolfssh], [enable wolfssh]), if test X"$OPT_LIBSSH2" != Xno; then dnl backup the pre-libssh2 variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -2402,6 +2415,7 @@ if test X"$OPT_LIBSSH2" != Xno; then fi LDFLAGS="$LDFLAGS $LD_SSH2" + LDFLAGSPC="$LDFLAGSPC $LD_SSH2" CPPFLAGS="$CPPFLAGS $CPP_SSH2" LIBS="$LIB_SSH2 $LIBS" @@ -2436,12 +2450,14 @@ if test X"$OPT_LIBSSH2" != Xno; then else dnl no libssh2, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS fi elif test X"$OPT_LIBSSH" != Xno; then dnl backup the pre-libssh variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -2477,6 +2493,7 @@ elif test X"$OPT_LIBSSH" != Xno; then fi LDFLAGS="$LDFLAGS $LD_SSH" + LDFLAGSPC="$LDFLAGSPC $LD_SSH" CPPFLAGS="$CPPFLAGS $CPP_SSH" LIBS="$LIB_SSH $LIBS" @@ -2514,18 +2531,22 @@ elif test X"$OPT_LIBSSH" != Xno; then else dnl no libssh, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS fi elif test X"$OPT_WOLFSSH" != Xno; then dnl backup the pre-wolfssh variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" if test "$OPT_WOLFSSH" != yes; then WOLFCONFIG="$OPT_WOLFSSH/bin/wolfssh-config" - LDFLAGS="$LDFLAGS `$WOLFCONFIG --libs`" + WOLFSSH_LIBS=`$WOLFCONFIG --libs` + LDFLAGS="$LDFLAGS $WOLFSSH_LIBS" + LDFLAGSPC="$LDFLAGSPC $WOLFSSH_LIBS" CPPFLAGS="$CPPFLAGS `$WOLFCONFIG --cflags`" fi @@ -2553,6 +2574,7 @@ AS_HELP_STRING([--without-librtmp], [disable LIBRTMP]), if test X"$OPT_LIBRTMP" != Xno; then dnl backup the pre-librtmp variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -2593,6 +2615,7 @@ if test X"$OPT_LIBRTMP" != Xno; then fi LDFLAGS="$LDFLAGS $LD_RTMP" + LDFLAGSPC="$LDFLAGSPC $LD_RTMP" CPPFLAGS="$CPPFLAGS $CPP_RTMP" LIBS="$LIB_RTMP $LIBS" @@ -2608,6 +2631,7 @@ if test X"$OPT_LIBRTMP" != Xno; then ], dnl not found, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS ) @@ -2736,6 +2760,7 @@ AS_HELP_STRING([--without-winidn], [disable Windows native IDN]), dnl WinIDN library support has been requested clean_CPPFLAGS="$CPPFLAGS" clean_LDFLAGS="$LDFLAGS" + clean_LDFLAGSPC="$LDFLAGSPC" clean_LIBS="$LIBS" WINIDN_LIBS="-lnormaliz" WINIDN_CPPFLAGS="" @@ -2749,6 +2774,7 @@ AS_HELP_STRING([--without-winidn], [disable Windows native IDN]), # CPPFLAGS="$CPPFLAGS $WINIDN_CPPFLAGS" LDFLAGS="$LDFLAGS $WINIDN_LDFLAGS" + LDFLAGSPC="$LDFLAGSPC $WINIDN_LDFLAGS" LIBS="$WINIDN_LIBS $LIBS" # AC_MSG_CHECKING([if IdnToUnicode can be linked]) @@ -2782,6 +2808,7 @@ AS_HELP_STRING([--without-winidn], [disable Windows native IDN]), AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled]) CPPFLAGS="$clean_CPPFLAGS" LDFLAGS="$clean_LDFLAGS" + LDFLAGSPC="$clean_LDFLAGSPC" LIBS="$clean_LIBS" fi fi @@ -2871,6 +2898,7 @@ if test "$want_idn" = "yes"; then dnl idn library support has been requested clean_CPPFLAGS="$CPPFLAGS" clean_LDFLAGS="$LDFLAGS" + clean_LDFLAGSPC="$LDFLAGSPC" clean_LIBS="$LIBS" PKGCONFIG="no" # @@ -2921,6 +2949,7 @@ if test "$want_idn" = "yes"; then # CPPFLAGS="$CPPFLAGS $IDN_CPPFLAGS" LDFLAGS="$LDFLAGS $IDN_LDFLAGS" + LDFLAGSPC="$LDFLAGSPC $IDN_LDFLAGS" LIBS="$IDN_LIBS $LIBS" # AC_MSG_CHECKING([if idn2_lookup_ul can be linked]) @@ -2952,6 +2981,7 @@ if test "$want_idn" = "yes"; then AC_MSG_WARN([Cannot find libidn2]) CPPFLAGS="$clean_CPPFLAGS" LDFLAGS="$clean_LDFLAGS" + LDFLAGSPC="$clean_LDFLAGSPC" LIBS="$clean_LIBS" want_idn="no" fi @@ -2994,6 +3024,7 @@ esac if test X"$want_nghttp2" != Xno; then dnl backup the pre-nghttp2 variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -3027,6 +3058,7 @@ if test X"$want_nghttp2" != Xno; then fi LDFLAGS="$LDFLAGS $LD_H2" + LDFLAGSPC="$LDFLAGSPC $LD_H2" CPPFLAGS="$CPPFLAGS $CPP_H2" LIBS="$LIB_H2 $LIBS" @@ -3048,6 +3080,7 @@ if test X"$want_nghttp2" != Xno; then ], dnl not found, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS ) @@ -3094,6 +3127,7 @@ if test X"$want_tcp2" != Xno; then dnl backup the pre-ngtcp2 variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -3113,6 +3147,7 @@ if test X"$want_tcp2" != Xno; then AC_MSG_NOTICE([-L is $LD_TCP2]) LDFLAGS="$LDFLAGS $LD_TCP2" + LDFLAGSPC="$LDFLAGSPC $LD_TCP2" CPPFLAGS="$CPPFLAGS $CPP_TCP2" LIBS="$LIB_TCP2 $LIBS" @@ -3133,6 +3168,7 @@ if test X"$want_tcp2" != Xno; then ], dnl not found, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS ) @@ -3150,6 +3186,7 @@ fi if test "x$NGTCP2_ENABLED" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS_BORINGSSL" != "x1"; then dnl backup the pre-ngtcp2_crypto_quictls variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -3169,6 +3206,7 @@ if test "x$NGTCP2_ENABLED" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS AC_MSG_NOTICE([-L is $LD_NGTCP2_CRYPTO_QUICTLS]) LDFLAGS="$LDFLAGS $LD_NGTCP2_CRYPTO_QUICTLS" + LDFLAGSPC="$LDFLAGSPC $LD_NGTCP2_CRYPTO_QUICTLS" CPPFLAGS="$CPPFLAGS $CPP_NGTCP2_CRYPTO_QUICTLS" LIBS="$LIB_NGTCP2_CRYPTO_QUICTLS $LIBS" @@ -3189,6 +3227,7 @@ if test "x$NGTCP2_ENABLED" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS ], dnl not found, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS ) @@ -3206,6 +3245,7 @@ fi if test "x$NGTCP2_ENABLED" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS_BORINGSSL" = "x1"; then dnl backup the pre-ngtcp2_crypto_boringssl variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -3225,6 +3265,7 @@ if test "x$NGTCP2_ENABLED" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS AC_MSG_NOTICE([-L is $LD_NGTCP2_CRYPTO_BORINGSSL]) LDFLAGS="$LDFLAGS $LD_NGTCP2_CRYPTO_BORINGSSL" + LDFLAGSPC="$LDFLAGSPC $LD_NGTCP2_CRYPTO_BORINGSSL" CPPFLAGS="$CPPFLAGS $CPP_NGTCP2_CRYPTO_BORINGSSL" LIBS="$LIB_NGTCP2_CRYPTO_BORINGSSL $LIBS" @@ -3245,6 +3286,7 @@ if test "x$NGTCP2_ENABLED" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "x$OPENSSL_IS ], dnl not found, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS ) @@ -3262,6 +3304,7 @@ fi if test "x$NGTCP2_ENABLED" = "x1" -a "x$GNUTLS_ENABLED" = "x1"; then dnl backup the pre-ngtcp2_crypto_gnutls variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -3281,6 +3324,7 @@ if test "x$NGTCP2_ENABLED" = "x1" -a "x$GNUTLS_ENABLED" = "x1"; then AC_MSG_NOTICE([-L is $LD_NGTCP2_CRYPTO_GNUTLS]) LDFLAGS="$LDFLAGS $LD_NGTCP2_CRYPTO_GNUTLS" + LDFLAGSPC="$LDFLAGSPC $LD_NGTCP2_CRYPTO_GNUTLS" CPPFLAGS="$CPPFLAGS $CPP_NGTCP2_CRYPTO_GNUTLS" LIBS="$LIB_NGTCP2_CRYPTO_GNUTLS $LIBS" @@ -3301,6 +3345,7 @@ if test "x$NGTCP2_ENABLED" = "x1" -a "x$GNUTLS_ENABLED" = "x1"; then ], dnl not found, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS ) @@ -3318,6 +3363,7 @@ fi if test "x$NGTCP2_ENABLED" = "x1" -a "x$WOLFSSL_ENABLED" = "x1"; then dnl backup the pre-ngtcp2_crypto_wolfssl variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -3337,6 +3383,7 @@ if test "x$NGTCP2_ENABLED" = "x1" -a "x$WOLFSSL_ENABLED" = "x1"; then AC_MSG_NOTICE([-L is $LD_NGTCP2_CRYPTO_WOLFSSL]) LDFLAGS="$LDFLAGS $LD_NGTCP2_CRYPTO_WOLFSSL" + LDFLAGSPC="$LDFLAGSPC $LD_NGTCP2_CRYPTO_WOLFSSL" CPPFLAGS="$CPPFLAGS $CPP_NGTCP2_CRYPTO_WOLFSSL" LIBS="$LIB_NGTCP2_CRYPTO_WOLFSSL $LIBS" @@ -3357,6 +3404,7 @@ if test "x$NGTCP2_ENABLED" = "x1" -a "x$WOLFSSL_ENABLED" = "x1"; then ], dnl not found, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS ) @@ -3453,6 +3501,7 @@ if test X"$want_nghttp3" != Xno; then dnl backup the pre-nghttp3 variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -3472,6 +3521,7 @@ if test X"$want_nghttp3" != Xno; then AC_MSG_NOTICE([-L is $LD_NGHTTP3]) LDFLAGS="$LDFLAGS $LD_NGHTTP3" + LDFLAGSPC="$LDFLAGSPC $LD_NGHTTP3" CPPFLAGS="$CPPFLAGS $CPP_NGHTTP3" LIBS="$LIB_NGHTTP3 $LIBS" @@ -3491,6 +3541,7 @@ if test X"$want_nghttp3" != Xno; then ], dnl not found, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS ) @@ -3572,6 +3623,7 @@ if test X"$want_quiche" != Xno; then dnl backup the pre-quiche variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -3591,6 +3643,7 @@ if test X"$want_quiche" != Xno; then AC_MSG_NOTICE([-L is $LD_QUICHE]) LDFLAGS="$LDFLAGS $LD_QUICHE" + LDFLAGSPC="$LDFLAGSPC $LD_QUICHE" CPPFLAGS="$CPPFLAGS $CPP_QUICHE" LIBS="$LIB_QUICHE $LIBS" @@ -3684,6 +3737,7 @@ if test X"$want_msh3" != Xno; then dnl backup the pre-msh3 variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -3692,6 +3746,7 @@ if test X"$want_msh3" != Xno; then CPP_MSH3="-I$want_msh3_path/include" DIR_MSH3="$want_msh3_path/lib" LDFLAGS="$LDFLAGS $LD_MSH3" + LDFLAGSPC="$LDFLAGSPC $LD_MSH3" CPPFLAGS="$CPPFLAGS $CPP_MSH3" fi LIBS="-lmsh3 $LIBS" @@ -3712,6 +3767,7 @@ if test X"$want_msh3" != Xno; then ], dnl not found, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS ) @@ -3750,6 +3806,7 @@ if test X"$want_libuv" != Xno; then dnl backup the pre-libuv variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -3769,6 +3826,7 @@ if test X"$want_libuv" != Xno; then AC_MSG_NOTICE([-L is $LD_LIBUV]) LDFLAGS="$LDFLAGS $LD_LIBUV" + LDFLAGSPC="$LDFLAGSPC $LD_LIBUV" CPPFLAGS="$CPPFLAGS $CPP_LIBUV" LIBS="$LIB_LIBUV $LIBS" @@ -3789,6 +3847,7 @@ if test X"$want_libuv" != Xno; then ], dnl not found, revert back to clean variables LDFLAGS=$CLEANLDFLAGS + LDFLAGSPC=$CLEANLDFLAGSPC CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS ) @@ -5013,8 +5072,27 @@ CURL_CONFIGURE_SYMBOL_HIDING dnl dnl All the library dependencies put into $LIB apply to libcurl only. dnl +LIBCURL_PC_LDFLAGS_PRIVATE='' +dnl Do not quote $INITIAL_LDFLAGS +set -- $INITIAL_LDFLAGS +while [ "$#" -gt 0 ]; do + case "$1" in + -L* | --library-path=* | -F*) + LIBCURL_PC_LDFLAGS_PRIVATE="$LIBCURL_PC_LDFLAGS_PRIVATE $1" + ;; + -framework) + if [ "$#" -gt 1 ]; then + LIBCURL_PC_LDFLAGS_PRIVATE="$LIBCURL_PC_LDFLAGS_PRIVATE $1 $2" + shift + fi + ;; + esac + shift +done +LIBCURL_PC_LDFLAGS_PRIVATE="$LIBCURL_PC_LDFLAGS_PRIVATE $LDFLAGSPC" LIBCURL_PC_LIBS_PRIVATE="$LIBS$PTHREAD" +AC_SUBST(LIBCURL_PC_LDFLAGS_PRIVATE) AC_SUBST(LIBCURL_PC_LIBS_PRIVATE) AC_SUBST(CURL_NETWORK_LIBS) AC_SUBST(CURL_NETWORK_AND_TIME_LIBS) @@ -5352,6 +5430,7 @@ squeeze DEFS squeeze LDFLAGS squeeze LIBS +squeeze LIBCURL_PC_LDFLAGS_PRIVATE squeeze LIBCURL_PC_LIBS_PRIVATE squeeze CURL_NETWORK_LIBS squeeze CURL_NETWORK_AND_TIME_LIBS @@ -5414,6 +5493,7 @@ AC_MSG_NOTICE([Configured to build curl/libcurl: CFLAGS extras: ${CURL_CFLAG_EXTRAS} CPPFLAGS: ${CPPFLAGS} LDFLAGS: ${LDFLAGS} + curl-config: ${LIBCURL_PC_LDFLAGS_PRIVATE} LIBS: ${LIBS} curl version: ${CURLVERSION} diff --git a/curl-config.in b/curl-config.in index 2dc40edcdc..e89c256392 100644 --- a/curl-config.in +++ b/curl-config.in @@ -173,7 +173,7 @@ while test "$#" -gt 0; do --static-libs) if test 'X@ENABLE_STATIC@' != 'Xno'; then - echo "@libdir@/libcurl.@libext@ @LDFLAGS@ @LIBCURL_PC_LIBS_PRIVATE@" + echo "@libdir@/libcurl.@libext@ @LIBCURL_PC_LDFLAGS_PRIVATE@ @LIBCURL_PC_LIBS_PRIVATE@" else echo 'curl was built with static libraries disabled' >&2 exit 1 diff --git a/libcurl.pc.in b/libcurl.pc.in index 4c60a7ec76..c0ba5244a8 100644 --- a/libcurl.pc.in +++ b/libcurl.pc.in @@ -36,6 +36,6 @@ Version: @CURLVERSION@ Requires: @LIBCURL_PC_REQUIRES@ Requires.private: @LIBCURL_PC_REQUIRES_PRIVATE@ Libs: -L${libdir} -lcurl @LIBCURL_PC_LIBS@ -Libs.private: @LDFLAGS@ @LIBCURL_PC_LIBS_PRIVATE@ +Libs.private: @LIBCURL_PC_LDFLAGS_PRIVATE@ @LIBCURL_PC_LIBS_PRIVATE@ Cflags: -I${includedir} @LIBCURL_PC_CFLAGS@ Cflags.private: @LIBCURL_PC_CFLAGS_PRIVATE@ diff --git a/m4/curl-bearssl.m4 b/m4/curl-bearssl.m4 index 02a80e8c13..b16e59d031 100644 --- a/m4/curl-bearssl.m4 +++ b/m4/curl-bearssl.m4 @@ -30,6 +30,7 @@ dnl ---------------------------------------------------- if test "x$OPT_BEARSSL" != xno; then _cppflags=$CPPFLAGS _ldflags=$LDFLAGS + _ldflagspc=$LDFLAGSPC ssl_msg= if test X"$OPT_BEARSSL" != Xno; then @@ -65,6 +66,7 @@ if test "x$OPT_BEARSSL" != xno; then bearssllib=$OPT_BEARSSL/lib$libsuff LDFLAGS="$LDFLAGS $addld" + LDFLAGSPC="$LDFLAGSPC $addld" if test "$addcflags" != "-I/usr/include"; then CPPFLAGS="$CPPFLAGS $addcflags" fi @@ -81,6 +83,7 @@ if test "x$OPT_BEARSSL" != xno; then [ CPPFLAGS=$_cppflags LDFLAGS=$_ldflags + LDFLAGSPC=$_ldflagspc ], -lbearssl) fi diff --git a/m4/curl-confopts.m4 b/m4/curl-confopts.m4 index 8109b76554..507c081920 100644 --- a/m4/curl-confopts.m4 +++ b/m4/curl-confopts.m4 @@ -484,6 +484,7 @@ AC_DEFUN([CURL_CHECK_LIB_ARES], [ dnl c-ares library support has been requested clean_CPPFLAGS="$CPPFLAGS" clean_LDFLAGS="$LDFLAGS" + clean_LDFLAGSPC="$LDFLAGSPC" clean_LIBS="$LIBS" configure_runpath=`pwd` if test -n "$want_ares_path"; then @@ -525,6 +526,7 @@ AC_DEFUN([CURL_CHECK_LIB_ARES], [ # CPPFLAGS="$clean_CPPFLAGS $ares_CPPFLAGS" LDFLAGS="$clean_LDFLAGS $ares_LDFLAGS" + LDFLAGSPC="$clean_LDFLAGSPC $ares_LDFLAGS" LIBS="$ares_LIBS $clean_LIBS" # @@ -553,6 +555,7 @@ AC_DEFUN([CURL_CHECK_LIB_ARES], [ dnl restore initial settings CPPFLAGS="$clean_CPPFLAGS" LDFLAGS="$clean_LDFLAGS" + LDFLAGSPC="$clean_LDFLAGSPC" LIBS="$clean_LIBS" # prevent usage want_ares="no" diff --git a/m4/curl-gnutls.m4 b/m4/curl-gnutls.m4 index 93c3946a93..8601dc2420 100644 --- a/m4/curl-gnutls.m4 +++ b/m4/curl-gnutls.m4 @@ -89,9 +89,11 @@ if test "x$OPT_GNUTLS" != xno; then CLEANLIBS="$LIBS" CLEANCPPFLAGS="$CPPFLAGS" CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" LIBS="$addlib $LIBS" LDFLAGS="$LDFLAGS $addld" + LDFLAGSPC="$LDFLAGSPC $addld" if test "$addcflags" != "-I/usr/include"; then CPPFLAGS="$CPPFLAGS $addcflags" fi diff --git a/m4/curl-mbedtls.m4 b/m4/curl-mbedtls.m4 index bf14c6c893..282ed06055 100644 --- a/m4/curl-mbedtls.m4 +++ b/m4/curl-mbedtls.m4 @@ -30,6 +30,7 @@ AC_DEFUN([CURL_WITH_MBEDTLS], [ if test "x$OPT_MBEDTLS" != xno; then _cppflags=$CPPFLAGS _ldflags=$LDFLAGS + _ldflagspc=$LDFLAGSPC ssl_msg= if test X"$OPT_MBEDTLS" != Xno; then @@ -65,6 +66,7 @@ if test "x$OPT_MBEDTLS" != xno; then mbedtlslib=$OPT_MBEDTLS/lib$libsuff LDFLAGS="$LDFLAGS $addld" + LDFLAGSPC="$LDFLAGSPC $addld" if test "$addcflags" != "-I/usr/include"; then CPPFLAGS="$CPPFLAGS $addcflags" fi @@ -81,6 +83,7 @@ if test "x$OPT_MBEDTLS" != xno; then [ CPPFLAGS=$_cppflags LDFLAGS=$_ldflags + LDFLAGSPC=$_ldflagspc ], -lmbedx509 -lmbedcrypto) fi diff --git a/m4/curl-openssl.m4 b/m4/curl-openssl.m4 index dfbbc3394d..a3ccd71cec 100644 --- a/m4/curl-openssl.m4 +++ b/m4/curl-openssl.m4 @@ -35,6 +35,7 @@ if test "x$OPT_OPENSSL" != xno; then dnl backup the pre-ssl variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" CLEANLIBS="$LIBS" @@ -139,6 +140,7 @@ if test "x$OPT_OPENSSL" != xno; then dnl finally, set flags to use SSL CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS" LDFLAGS="$LDFLAGS $SSL_LDFLAGS" + LDFLAGSPC="$LDFLAGSPC $SSL_LDFLAGS" AC_CHECK_LIB(crypto, HMAC_Update,[ HAVECRYPTO="yes" @@ -146,6 +148,7 @@ if test "x$OPT_OPENSSL" != xno; then ],[ if test -n "$LIB_OPENSSL" ; then LDFLAGS="$CLEANLDFLAGS -L$LIB_OPENSSL" + LDFLAGSPC="$CLEANLDFLAGSPC -L$LIB_OPENSSL" fi if test "$PKGCONFIG" = "no" -a -n "$PREFIX_OPENSSL" ; then # only set this if pkg-config wasn't used @@ -190,6 +193,7 @@ if test "x$OPT_OPENSSL" != xno; then [ AC_MSG_RESULT(no) LDFLAGS="$CLEANLDFLAGS" + LDFLAGSPC="$CLEANLDFLAGSPC" CPPFLAGS="$CLEANCPPFLAGS" LIBS="$CLEANLIBS" ]) diff --git a/m4/curl-rustls.m4 b/m4/curl-rustls.m4 index 593fe43bac..57cec768aa 100644 --- a/m4/curl-rustls.m4 +++ b/m4/curl-rustls.m4 @@ -32,6 +32,7 @@ if test "x$OPT_RUSTLS" != xno; then dnl backup the pre-ssl variables CLEANLDFLAGS="$LDFLAGS" + CLEANLDFLAGSPC="$LDFLAGSPC" CLEANCPPFLAGS="$CPPFLAGS" ## NEW CODE @@ -77,6 +78,7 @@ if test "x$OPT_RUSTLS" != xno; then addcflags=-I$PREFIX_RUSTLS/include LDFLAGS="$LDFLAGS $addld" + LDFLAGSPC="$LDFLAGSPC $addld" if test "$addcflags" != "-I/usr/include"; then CPPFLAGS="$CPPFLAGS $addcflags" fi @@ -157,6 +159,7 @@ if test "x$OPT_RUSTLS" != xno; then dnl finally, set flags to use this TLS backend CPPFLAGS="$CLEANCPPFLAGS $SSL_CPPFLAGS" LDFLAGS="$CLEANLDFLAGS $SSL_LDFLAGS" + LDFLAGSPC="$CLEANLDFLAGSPC $SSL_LDFLAGS" if test "x$USE_RUSTLS" = "xyes"; then AC_MSG_NOTICE([detected Rustls]) diff --git a/m4/curl-sectransp.m4 b/m4/curl-sectransp.m4 index 77b37bed9d..234fb13b92 100644 --- a/m4/curl-sectransp.m4 +++ b/m4/curl-sectransp.m4 @@ -33,7 +33,9 @@ if test "x$OPT_SECURETRANSPORT" != xno; then ssl_msg="Secure Transport" test secure-transport != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes SECURETRANSPORT_ENABLED=1 - LDFLAGS="$LDFLAGS -framework CoreFoundation -framework CoreServices -framework Security" + SECURETRANSPORT_LDFLAGS='-framework CoreFoundation -framework CoreServices -framework Security' + LDFLAGS="$LDFLAGS $SECURETRANSPORT_LDFLAGS" + LDFLAGSPC="$LDFLAGSPC $SECURETRANSPORT_LDFLAGS" else AC_MSG_RESULT(no) fi diff --git a/m4/curl-sysconfig.m4 b/m4/curl-sysconfig.m4 index 5fcd8859d3..a0ddc0ba55 100644 --- a/m4/curl-sysconfig.m4 +++ b/m4/curl-sysconfig.m4 @@ -44,7 +44,9 @@ case $host in ]) if test "x$build_for_macos" != xno; then AC_MSG_RESULT(yes) - LDFLAGS="$LDFLAGS -framework CoreFoundation -framework CoreServices -framework SystemConfiguration" + SYSCONFIG_LDFLAGS='-framework CoreFoundation -framework CoreServices -framework SystemConfiguration' + LDFLAGS="$LDFLAGS $SYSCONFIG_LDFLAGS" + LDFLAGSPC="$LDFLAGSPC $SYSCONFIG_LDFLAGS" else AC_MSG_RESULT(no) fi diff --git a/m4/curl-wolfssl.m4 b/m4/curl-wolfssl.m4 index cd5a2b14b5..ec8e3d5f61 100644 --- a/m4/curl-wolfssl.m4 +++ b/m4/curl-wolfssl.m4 @@ -39,6 +39,7 @@ esac if test "x$OPT_WOLFSSL" != xno; then _cppflags=$CPPFLAGS _ldflags=$LDFLAGS + _ldflagspc=$LDFLAGSPC ssl_msg= @@ -78,6 +79,7 @@ if test "x$OPT_WOLFSSL" != xno; then if test "x$USE_WOLFSSL" != "xyes"; then LDFLAGS="$LDFLAGS $addld" + LDFLAGSPC="$LDFLAGSPC $addld" AC_MSG_NOTICE([Add $addld to LDFLAGS]) if test "$addcflags" != "-I/usr/include"; then CPPFLAGS="$CPPFLAGS $addcflags" @@ -114,6 +116,7 @@ if test "x$OPT_WOLFSSL" != xno; then AC_MSG_RESULT(no) CPPFLAGS=$_cppflags LDFLAGS=$_ldflags + LDFLAGSPC=$_ldflagspc wolfssllibpath="" ]) LIBS="$my_ac_save_LIBS" diff --git a/tests/unit/Makefile.am b/tests/unit/Makefile.am index b00189dd63..811ffac996 100644 --- a/tests/unit/Makefile.am +++ b/tests/unit/Makefile.am @@ -48,7 +48,7 @@ LIBS = $(BLANK_AT_MAKETIME) LDADD = $(top_builddir)/src/libcurltool.la \ $(top_builddir)/lib/libcurlu.la \ - @LDFLAGS@ @LIBCURL_PC_LIBS_PRIVATE@ + @LIBCURL_PC_LDFLAGS_PRIVATE@ @LIBCURL_PC_LIBS_PRIVATE@ AM_CPPFLAGS += -DCURL_STATICLIB -DUNITTESTS