@@ -3241,7 +3241,66 @@ if test X"$want_tcp2" != Xno; then
32413241 fi
32423242fi
32433243
3244- if test "x$USE_NGTCP2" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a \
3244+ if test "x$USE_NGTCP2" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "$HAVE_LIBRESSL" = "1"; then
3245+ dnl backup the pre-ngtcp2_crypto_libressl variables
3246+ CLEANLDFLAGS="$LDFLAGS"
3247+ CLEANLDFLAGSPC="$LDFLAGSPC"
3248+ CLEANCPPFLAGS="$CPPFLAGS"
3249+ CLEANLIBS="$LIBS"
3250+
3251+ CURL_CHECK_PKGCONFIG(libngtcp2_crypto_libressl, $want_tcp2_path)
3252+
3253+ if test "$PKGCONFIG" != "no"; then
3254+ LIB_NGTCP2_CRYPTO_LIBRESSL=`CURL_EXPORT_PCDIR([ $want_tcp2_path] )
3255+ $PKGCONFIG --libs-only-l libngtcp2_crypto_libressl`
3256+ AC_MSG_NOTICE ( [ -l is $LIB_NGTCP2_CRYPTO_LIBRESSL] )
3257+
3258+ CPP_NGTCP2_CRYPTO_LIBRESSL=`CURL_EXPORT_PCDIR([ $want_tcp2_path] ) dnl
3259+ $PKGCONFIG --cflags-only-I libngtcp2_crypto_libressl`
3260+ AC_MSG_NOTICE ( [ -I is $CPP_NGTCP2_CRYPTO_LIBRESSL] )
3261+
3262+ LD_NGTCP2_CRYPTO_LIBRESSL=`CURL_EXPORT_PCDIR([ $want_tcp2_path] )
3263+ $PKGCONFIG --libs-only-L libngtcp2_crypto_libressl`
3264+ AC_MSG_NOTICE ( [ -L is $LD_NGTCP2_CRYPTO_LIBRESSL] )
3265+
3266+ LDFLAGS="$LDFLAGS $LD_NGTCP2_CRYPTO_LIBRESSL"
3267+ LDFLAGSPC="$LDFLAGSPC $LD_NGTCP2_CRYPTO_LIBRESSL"
3268+ CPPFLAGS="$CPPFLAGS $CPP_NGTCP2_CRYPTO_LIBRESSL"
3269+ LIBS="$LIB_NGTCP2_CRYPTO_LIBRESSL $LIBS"
3270+
3271+ if test "x$cross_compiling" != "xyes"; then
3272+ DIR_NGTCP2_CRYPTO_LIBRESSL=`echo $LD_NGTCP2_CRYPTO_LIBRESSL | $SED -e 's/^-L//'`
3273+ fi
3274+ AC_CHECK_LIB ( ngtcp2_crypto_libressl , ngtcp2_crypto_recv_client_initial_cb ,
3275+ [
3276+ AC_CHECK_HEADERS ( ngtcp2/ngtcp2_crypto.h ,
3277+ USE_NGTCP2=1
3278+ CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_LIBRESSL"
3279+ export CURL_LIBRARY_PATH
3280+ AC_MSG_NOTICE ( [ Added $DIR_NGTCP2_CRYPTO_LIBRESSL to CURL_LIBRARY_PATH] )
3281+ LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE libngtcp2_crypto_libressl"
3282+ )
3283+ ] ,
3284+ dnl not found, revert back to clean variables
3285+ LDFLAGS=$CLEANLDFLAGS
3286+ LDFLAGSPC=$CLEANLDFLAGSPC
3287+ CPPFLAGS=$CLEANCPPFLAGS
3288+ LIBS=$CLEANLIBS
3289+ )
3290+
3291+ else
3292+ dnl no ngtcp2_crypto_libressl pkg-config found, deal with it
3293+ if test X"$want_tcp2" != Xdefault; then
3294+ dnl To avoid link errors, we do not allow --with-ngtcp2 without
3295+ dnl a pkgconfig file
3296+ AC_MSG_WARN ( [ --with-ngtcp2 was specified but could not find ngtcp2_crypto_libressl pkg-config file.] )
3297+ dnl Pretend to be quictls to fall back to using ngtcp2_crypto_quictls
3298+ fi
3299+ HAVE_LIBRESSL=0
3300+ fi
3301+ fi
3302+
3303+ if test "x$USE_NGTCP2" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a "$HAVE_LIBRESSL" != "1" -a \
32453304 "x$OPENSSL_IS_BORINGSSL" != "x1" -a "x$OPENSSL_QUIC_API2" != "x1"; then
32463305 dnl backup the pre-ngtcp2_crypto_quictls variables
32473306 CLEANLDFLAGS="$LDFLAGS"
@@ -3310,33 +3369,33 @@ if test "x$USE_NGTCP2" = "x1" -a "x$OPENSSL_ENABLED" = "x1" -a \
33103369 CURL_CHECK_PKGCONFIG(libngtcp2_crypto_ossl, $want_tcp2_path)
33113370
33123371 if test "$PKGCONFIG" != "no"; then
3313- LIB_NGTCP2_CRYPTO_QUICTLS =`CURL_EXPORT_PCDIR([ $want_tcp2_path] )
3372+ LIB_NGTCP2_CRYPTO_OSSL =`CURL_EXPORT_PCDIR([ $want_tcp2_path] )
33143373 $PKGCONFIG --libs-only-l libngtcp2_crypto_ossl`
3315- AC_MSG_NOTICE ( [ -l is $LIB_NGTCP2_CRYPTO_QUICTLS ] )
3374+ AC_MSG_NOTICE ( [ -l is $LIB_NGTCP2_CRYPTO_OSSL ] )
33163375
3317- CPP_NGTCP2_CRYPTO_QUICTLS =`CURL_EXPORT_PCDIR([ $want_tcp2_path] ) dnl
3376+ CPP_NGTCP2_CRYPTO_OSSL =`CURL_EXPORT_PCDIR([ $want_tcp2_path] ) dnl
33183377 $PKGCONFIG --cflags-only-I libngtcp2_crypto_ossl`
3319- AC_MSG_NOTICE ( [ -I is $CPP_NGTCP2_CRYPTO_QUICTLS ] )
3378+ AC_MSG_NOTICE ( [ -I is $CPP_NGTCP2_CRYPTO_OSSL ] )
33203379
3321- LD_NGTCP2_CRYPTO_QUICTLS =`CURL_EXPORT_PCDIR([ $want_tcp2_path] )
3380+ LD_NGTCP2_CRYPTO_OSSL =`CURL_EXPORT_PCDIR([ $want_tcp2_path] )
33223381 $PKGCONFIG --libs-only-L libngtcp2_crypto_ossl`
3323- AC_MSG_NOTICE ( [ -L is $LD_NGTCP2_CRYPTO_QUICTLS ] )
3382+ AC_MSG_NOTICE ( [ -L is $LD_NGTCP2_CRYPTO_OSSL ] )
33243383
3325- LDFLAGS="$LDFLAGS $LD_NGTCP2_CRYPTO_QUICTLS "
3326- LDFLAGSPC="$LDFLAGSPC $LD_NGTCP2_CRYPTO_QUICTLS "
3327- CPPFLAGS="$CPPFLAGS $CPP_NGTCP2_CRYPTO_QUICTLS "
3328- LIBS="$LIB_NGTCP2_CRYPTO_QUICTLS $LIBS"
3384+ LDFLAGS="$LDFLAGS $LD_NGTCP2_CRYPTO_OSSL "
3385+ LDFLAGSPC="$LDFLAGSPC $LD_NGTCP2_CRYPTO_OSSL "
3386+ CPPFLAGS="$CPPFLAGS $CPP_NGTCP2_CRYPTO_OSSL "
3387+ LIBS="$LIB_NGTCP2_CRYPTO_OSSL $LIBS"
33293388
33303389 if test "x$cross_compiling" != "xyes"; then
3331- DIR_NGTCP2_CRYPTO_QUICTLS =`echo $LD_NGTCP2_CRYPTO_QUICTLS | $SED -e 's/^-L//'`
3390+ DIR_NGTCP2_CRYPTO_OSSL =`echo $LD_NGTCP2_CRYPTO_OSSL | $SED -e 's/^-L//'`
33323391 fi
33333392 AC_CHECK_LIB ( ngtcp2_crypto_ossl , ngtcp2_crypto_recv_client_initial_cb ,
33343393 [
33353394 AC_CHECK_HEADERS ( ngtcp2/ngtcp2_crypto.h ,
33363395 USE_NGTCP2=1
3337- CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_QUICTLS "
3396+ CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_OSSL "
33383397 export CURL_LIBRARY_PATH
3339- AC_MSG_NOTICE ( [ Added $DIR_NGTCP2_CRYPTO_QUICTLS to CURL_LIBRARY_PATH] )
3398+ AC_MSG_NOTICE ( [ Added $DIR_NGTCP2_CRYPTO_OSSL to CURL_LIBRARY_PATH] )
33403399 LIBCURL_PC_REQUIRES_PRIVATE="$LIBCURL_PC_REQUIRES_PRIVATE libngtcp2_crypto_ossl"
33413400 AC_DEFINE ( OPENSSL_QUIC_API2 , 1 , [ openssl with new QUIC API] )
33423401 )
0 commit comments