From 5d8093e7d561749b092c7cc4862d932b7e8e7061 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Ga=C3=9Fmann?= Date: Thu, 21 Apr 2016 23:23:49 +0200 Subject: [PATCH] winbuild: add mbedtls support Add WITH_MBEDTLS option. Make WITH_SSL, WITH_MBEDTLS and ENABLE_WINSSL options mutual exclusive. Closes #606 --- winbuild/BUILD.WINDOWS.txt | 1 + winbuild/Makefile.vc | 16 +++++++++++++++- winbuild/MakefileBuild.vc | 15 ++++++++++++++- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/winbuild/BUILD.WINDOWS.txt b/winbuild/BUILD.WINDOWS.txt index 0d60b9670..51674d772 100644 --- a/winbuild/BUILD.WINDOWS.txt +++ b/winbuild/BUILD.WINDOWS.txt @@ -64,6 +64,7 @@ where is one or many of: Libraries can be fetched at http://windows.php.net/downloads/php-sdk/deps/ Uncompress them into the deps folder. WITH_SSL= - Enable OpenSSL support, DLL or static + WITH_MBEDTLS= - Enable mbedTLS support, DLL or static WITH_CARES= - Enable c-ares support, DLL or static WITH_ZLIB= - Enable zlib support, DLL or static WITH_SSH2= - Enable libSSH2 support, DLL or static diff --git a/winbuild/Makefile.vc b/winbuild/Makefile.vc index 4f90e4a2a..9e1eb07d0 100644 --- a/winbuild/Makefile.vc +++ b/winbuild/Makefile.vc @@ -24,6 +24,7 @@ CFGSET=true !MESSAGE WITH_CARES= - Enable c-ares support, DLL or static !MESSAGE WITH_ZLIB= - Enable zlib support, DLL or static !MESSAGE WITH_SSH2= - Enable libSSH2 support, DLL or static +!MESSAGE WITH_MBEDTLS= - Enable mbedTLS support, DLL or static !MESSAGE ENABLE_IDN= - Enable use of Windows IDN APIs, defaults to yes !MESSAGE Requires Windows Vista or later, or installation from: !MESSAGE https://www.microsoft.com/en-us/download/details.aspx?id=734 @@ -37,6 +38,10 @@ CFGSET=true !ENDIF +!IF DEFINED(WITH_SSL) && DEFINED(ENABLE_WINSSL) || DEFINED(WITH_SSL) && DEFINED(WITH_MBEDTLS) || DEFINED(WITH_MBEDTLS) && DEFINED(ENABLE_WINSSL) +!ERROR WITH_SSL, WITH_MBEDTLS and ENABLE_WINSSL are mutual exclusive options. +!ENDIF + !INCLUDE "../lib/Makefile.inc" LIBCURL_OBJS=$(CSOURCES:.c=.obj) @@ -87,7 +92,7 @@ USE_SSPI = false !ENDIF !IFNDEF ENABLE_WINSSL -!IFDEF WITH_SSL +!IF DEFINED(WITH_SSL) || DEFINED(WITH_MBEDTLS) USE_WINSSL = false !ELSE USE_WINSSL = $(USE_SSPI) @@ -108,6 +113,11 @@ USE_SSL = true SSL = static !ENDIF +!IF "$(WITH_MBEDTLS)"=="dll" || "$(WITH_MBEDTLS)"=="static" +USE_MBEDTLS = true +MBEDTLS = $(WITH_MBEDTLS) +!ENDIF + !IF "$(WITH_CARES)"=="dll" USE_CARES = true CARES = dll @@ -150,6 +160,10 @@ CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-static CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssl-$(SSL) !ENDIF +!IF "$(USE_MBEDTLS)"=="true" +CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-mbedtls-$(MBEDTLS) +!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 d631204fe..ee584a6fd 100644 --- a/winbuild/MakefileBuild.vc +++ b/winbuild/MakefileBuild.vc @@ -5,7 +5,7 @@ # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # -# Copyright (C) 1999 - 2015, Daniel Stenberg, , et al. +# Copyright (C) 1999 - 2016, Daniel Stenberg, , et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@ -121,6 +121,14 @@ SSL = static SSL_CFLAGS = /DUSE_OPENSSL /I"$(DEVEL_INCLUDE)/openssl" !ENDIF +!IF "$(WITH_MBEDTLS)"=="dll" || "$(WITH_MBEDTLS)"=="static" +USE_MBEDTLS = true +MBEDTLS = $(WITH_MBEDTLS) +MBEDTLS_CFLAGS = /DUSE_MBEDTLS +MBEDTLS_LIBS = mbedtls.lib mbedcrypto.lib mbedx509.lib +!ENDIF + + !IF "$(WITH_CARES)"=="dll" !IF "$(DEBUG)"=="yes" CARES_LIBS = caresd.lib @@ -318,6 +326,11 @@ CFLAGS = $(CFLAGS) $(SSL_CFLAGS) LFLAGS = $(LFLAGS) $(SSL_LFLAGS) $(SSL_LIBS) !ENDIF +!IF "$(USE_MBEDTLS)"=="true" +CFLAGS = $(CFLAGS) $(MBEDTLS_CFLAGS) +LFLAGS = $(LFLAGS) $(MBEDTLS_LFLAGS) $(MBEDTLS_LIBS) +!ENDIF + !IF "$(USE_CARES)"=="true" CFLAGS = $(CFLAGS) $(CARES_CFLAGS) LFLAGS = $(LFLAGS) $(CARES_LFLAGS) $(CARES_LIBS)