]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
winbuild: add initial wolfSSL support
authorViktor Szakats <commit@vsz.me>
Fri, 11 Oct 2024 09:13:40 +0000 (11:13 +0200)
committerViktor Szakats <commit@vsz.me>
Fri, 18 Oct 2024 10:58:50 +0000 (12:58 +0200)
Ref: https://datagirl.xyz/posts/wolfssl_curl_w2k.html

Closes #15264

winbuild/Makefile.vc
winbuild/MakefileBuild.vc
winbuild/README.md

index 44d9604baca8bc6203ec729da6ed64e81283a472..1876ebda099c6509839bc06edeface5fda5cc3c4 100644 (file)
@@ -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
index 6a3cd1e2238aa4f6c8613c0421ec162064279911..aee03d5640d767540452709a752121b428ae8daa 100644 (file)
@@ -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
 
index 541128d92a7401ac19c00b1f58d57e0df8fa48c2..ad2e9d5fda99de7c004560871ebed485490d96ab 100644 (file)
@@ -87,6 +87,7 @@ where `<options>` is one or many of:
  - `WITH_NGHTTP2=<dll/static>`   - Enable HTTP/2 support, DLL or static\r
  - `WITH_MSH3=<dll/static>`      - Enable (experimental) HTTP/3 support, DLL or static\r
  - `WITH_MBEDTLS=<dll/static>`   - Enable mbedTLS support, DLL or static\r
+ - `WITH_WOLFSSL=<dll/static>`   - Enable wolfSSL support, DLL or static\r
  - `WITH_CARES=<dll/static>`     - Enable c-ares support, DLL or static\r
  - `WITH_ZLIB=<dll/static>`      - Enable zlib support, DLL or static\r
  - `WITH_SSH=<dll/static>`       - Enable libssh support, DLL or static\r
@@ -108,6 +109,7 @@ where `<options>` is one or many of:
  - `MACHINE=<x86/x64/arm64>`     - Target architecture (default is x86)\r
  - `CARES_PATH=<path>`           - Custom path for c-ares\r
  - `MBEDTLS_PATH=<path>`         - Custom path for mbedTLS\r
+ - `WOLFSSL_PATH=<path>`         - Custom path for wolfSSL\r
  - `NGHTTP2_PATH=<path>`         - Custom path for nghttp2\r
  - `MSH3_PATH=<path>`            - Custom path for msh3\r
  - `SSH2_PATH=<path>`            - Custom path for libssh2\r