From 4de627ab098f8ba307e420519725d76799807952 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 11 Oct 2024 11:13:40 +0200 Subject: [PATCH] winbuild: add initial wolfSSL support Ref: https://datagirl.xyz/posts/wolfssl_curl_w2k.html Closes #15264 --- winbuild/Makefile.vc | 11 ++++++++++- winbuild/MakefileBuild.vc | 26 +++++++++++++++++++++++++- winbuild/README.md | 2 ++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/winbuild/Makefile.vc b/winbuild/Makefile.vc index 44d9604bac..1876ebda09 100644 --- a/winbuild/Makefile.vc +++ b/winbuild/Makefile.vc @@ -95,7 +95,7 @@ USE_SSPI = false !ENDIF !IFNDEF ENABLE_SCHANNEL -!IF DEFINED(WITH_SSL) || DEFINED(WITH_MBEDTLS) +!IF DEFINED(WITH_SSL) || DEFINED(WITH_MBEDTLS) || DEFINED(WITH_WOLFSSL) USE_SCHANNEL = false !ELSE USE_SCHANNEL = $(USE_SSPI) @@ -173,6 +173,11 @@ USE_MBEDTLS = true MBEDTLS = $(WITH_MBEDTLS) !ENDIF +!IF "$(WITH_WOLFSSL)"=="dll" || "$(WITH_WOLFSSL)"=="static" +USE_WOLFSSL = true +WOLFSSL = $(WITH_WOLFSSL) +!ENDIF + !IF "$(WITH_CARES)"=="dll" USE_CARES = true CARES = dll @@ -227,6 +232,10 @@ CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssl-$(SSL) CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-mbedtls-$(MBEDTLS) !ENDIF +!IF "$(USE_WOLFSSL)"=="true" +CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-wolfssl-$(WOLFSSL) +!ENDIF + !IF "$(USE_CARES)"=="true" CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-cares-$(CARES) !ENDIF diff --git a/winbuild/MakefileBuild.vc b/winbuild/MakefileBuild.vc index 6a3cd1e223..aee03d5640 100644 --- a/winbuild/MakefileBuild.vc +++ b/winbuild/MakefileBuild.vc @@ -203,6 +203,22 @@ MBEDTLS_CFLAGS = /DUSE_MBEDTLS /I"$(MBEDTLS_INC_DIR)" MBEDTLS_LIBS = mbedtls.lib mbedcrypto.lib mbedx509.lib !ENDIF +!IFDEF WOLFSSL_PATH +WOLFSSL_INC_DIR = $(WOLFSSL_PATH)\include +WOLFSSL_LIB_DIR = $(WOLFSSL_PATH)\lib +WOLFSSL_LFLAGS = $(WOLFSSL_LFLAGS) "/LIBPATH:$(WOLFSSL_LIB_DIR)" +!ELSE +WOLFSSL_INC_DIR = $(DEVEL_INCLUDE) +WOLFSSL_LIB_DIR = $(DEVEL_LIB) +!ENDIF + +!IF "$(WITH_WOLFSSL)"=="dll" || "$(WITH_WOLFSSL)"=="static" +USE_WOLFSSL = true +WOLFSSL = $(WITH_WOLFSSL) +WOLFSSL_CFLAGS = /DUSE_WOLFSSL /I"$(WOLFSSL_INC_DIR)" +WOLFSSL_LIBS = wolfssl.lib +!ENDIF + !IFDEF CARES_PATH CARES_INC_DIR = $(CARES_PATH)\include @@ -479,6 +495,11 @@ CFLAGS = $(CFLAGS) $(MBEDTLS_CFLAGS) LFLAGS = $(LFLAGS) $(MBEDTLS_LFLAGS) $(MBEDTLS_LIBS) !ENDIF +!IF "$(USE_WOLFSSL)"=="true" +CFLAGS = $(CFLAGS) $(WOLFSSL_CFLAGS) +LFLAGS = $(LFLAGS) $(WOLFSSL_LFLAGS) $(WOLFSSL_LIBS) +!ENDIF + !IF "$(USE_CARES)"=="true" CFLAGS = $(CFLAGS) $(CARES_CFLAGS) LFLAGS = $(LFLAGS) $(CARES_LFLAGS) $(CARES_LIBS) @@ -528,7 +549,10 @@ LFLAGS = $(LFLAGS) $(LFLAGS_PDB) !IF ( "$(USE_SSL)"=="true" && "$(USE_SCHANNEL)"=="true" ) \ || ( "$(USE_SSL)"=="true" && "$(USE_MBEDTLS)"=="true" ) \ - || ( "$(USE_MBEDTLS)"=="true" && "$(USE_SCHANNEL)"=="true" ) + || ( "$(USE_SSL)"=="true" && "$(USE_WOLFSSL)"=="true" ) \ + || ( "$(USE_MBEDTLS)"=="true" && "$(USE_WOLFSSL)"=="true" ) \ + || ( "$(USE_MBEDTLS)"=="true" && "$(USE_SCHANNEL)"=="true" ) \ + || ( "$(USE_WOLFSSL)"=="true" && "$(USE_SCHANNEL)"=="true" ) CFLAGS = $(CFLAGS) /DCURL_WITH_MULTI_SSL !ENDIF diff --git a/winbuild/README.md b/winbuild/README.md index 541128d92a..ad2e9d5fda 100644 --- a/winbuild/README.md +++ b/winbuild/README.md @@ -87,6 +87,7 @@ where `` is one or many of: - `WITH_NGHTTP2=` - Enable HTTP/2 support, DLL or static - `WITH_MSH3=` - Enable (experimental) HTTP/3 support, DLL or static - `WITH_MBEDTLS=` - Enable mbedTLS support, DLL or static + - `WITH_WOLFSSL=` - Enable wolfSSL support, DLL or static - `WITH_CARES=` - Enable c-ares support, DLL or static - `WITH_ZLIB=` - Enable zlib support, DLL or static - `WITH_SSH=` - Enable libssh support, DLL or static @@ -108,6 +109,7 @@ where `` is one or many of: - `MACHINE=` - Target architecture (default is x86) - `CARES_PATH=` - Custom path for c-ares - `MBEDTLS_PATH=` - Custom path for mbedTLS + - `WOLFSSL_PATH=` - Custom path for wolfSSL - `NGHTTP2_PATH=` - Custom path for nghttp2 - `MSH3_PATH=` - Custom path for msh3 - `SSH2_PATH=` - Custom path for libssh2 -- 2.47.3