# | (__| |_| | _ <| |___\r
# \___|\___/|_| \_\_____|\r
#\r
-# Copyright (C) 1999 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.\r
+# Copyright (C) 1999 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.\r
#\r
# This software is licensed as described in the file COPYING, which\r
# you should have received as part of this distribution. The terms\r
WINBUILD_DIR=`cd`\r
ZIP = zip.exe\r
\r
+# Allow changing C compiler via environment variable CC (default cl.exe)\r
+# This command macro is not set by default: https://msdn.microsoft.com/en-us/library/ms933742.aspx\r
+!If "$(CC)" == ""\r
+CC = cl.exe\r
+!Endif\r
+\r
!IF "$(VC)"=="6"\r
-CC_NODEBUG = cl.exe /O2 /DNDEBUG\r
-CC_DEBUG = cl.exe /Od /Gm /Zi /D_DEBUG /GZ\r
+CC_NODEBUG = $(CC) /O2 /DNDEBUG\r
+CC_DEBUG = $(CC) /Od /Gm /Zi /D_DEBUG /GZ\r
CFLAGS = /I. /I../lib /I../include /nologo /W3 /GX /DWIN32 /YX /FD /c /DBUILDING_LIBCURL\r
!ELSE\r
-CC_NODEBUG = cl.exe /O2 /DNDEBUG\r
-CC_DEBUG = cl.exe /Od /D_DEBUG /RTC1 /Z7 /LDd /W3\r
+CC_NODEBUG = $(CC) /O2 /DNDEBUG\r
+CC_DEBUG = $(CC) /Od /D_DEBUG /RTC1 /Z7 /LDd /W3\r
CFLAGS = /I. /I ../lib /I../include /nologo /W3 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL\r
!ENDIF\r
\r
SSL_CFLAGS = /DUSE_OPENSSL /I"$(DEVEL_INCLUDE)/openssl"\r
!ENDIF\r
\r
+!IF "$(WITH_MBEDTLS)"=="dll" || "$(WITH_MBEDTLS)"=="static"\r
+USE_MBEDTLS = true\r
+MBEDTLS = $(WITH_MBEDTLS)\r
+MBEDTLS_CFLAGS = /DUSE_MBEDTLS\r
+MBEDTLS_LIBS = mbedtls.lib mbedcrypto.lib mbedx509.lib\r
+!ENDIF\r
+\r
+\r
!IF "$(WITH_CARES)"=="dll"\r
!IF "$(DEBUG)"=="yes"\r
CARES_LIBS = caresd.lib\r
!ERROR cannot build with WinSSL without SSPI\r
!ENDIF\r
SSPI_CFLAGS = $(SSPI_CFLAGS) /DUSE_SCHANNEL\r
+WIN_LIBS = $(WIN_LIBS) Crypt32.lib\r
!ENDIF\r
\r
\r
!ENDIF\r
\r
\r
-!IFDEF EMBEND_MANIFEST\r
+!IFDEF EMBED_MANIFEST\r
MANIFESTTOOL = mt -manifest $(DIRDIST)\$(PROGRAM_NAME).manifest -outputresource:$(DIRDIST)\$(PROGRAM_NAME);1\r
!ENDIF\r
\r
\r
!IF "$(DEBUG)"=="yes"\r
RC_FLAGS = /dDEBUGBUILD=1 /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc\r
-CC = $(CC_DEBUG) $(RTLIB_DEBUG)\r
-\r
-CURL_CC = $(CC)\r
+CURL_CC = $(CC_DEBUG) $(RTLIB_DEBUG)\r
CURL_RC_FLAGS = /i../include /dDEBUGBUILD=1 /Fo $@ $(CURL_SRC_DIR)\curl.rc\r
!ELSE\r
RC_FLAGS = /dDEBUGBUILD=0 /Fo $@ $(LIBCURL_SRC_DIR)\libcurl.rc\r
-CC = $(CC_NODEBUG) $(RTLIB)\r
-\r
-CURL_CC = $(CC)\r
+CURL_CC = $(CC_NODEBUG) $(RTLIB)\r
CURL_RC_FLAGS = /i../include /dDEBUGBUILD=0 /Fo $@ $(CURL_SRC_DIR)\curl.rc\r
!ENDIF\r
\r
-CURL_CC = $(CURL_CC) $(CURL_CFLAGS)\r
-\r
!IF "$(AS_DLL)" == "true"\r
\r
LNK = $(LNKDLL) $(WIN_LIBS) /out:$(LIB_DIROBJ)\$(TARGET)\r
PDB = $(PDB_NAME_STATIC)\r
!ENDIF\r
LNK = $(LNKLIB) $(WIN_LIBS) /out:$(LIB_DIROBJ)\$(TARGET)\r
-CC = $(CC) $(CFLAGS_LIBCURL_STATIC)\r
+CURL_CC = $(CURL_CC) $(CFLAGS_LIBCURL_STATIC)\r
\r
# AS_DLL\r
!ENDIF\r
LFLAGS = $(LFLAGS) $(SSL_LFLAGS) $(SSL_LIBS)\r
!ENDIF\r
\r
+!IF "$(USE_MBEDTLS)"=="true"\r
+CFLAGS = $(CFLAGS) $(MBEDTLS_CFLAGS)\r
+LFLAGS = $(LFLAGS) $(MBEDTLS_LFLAGS) $(MBEDTLS_LIBS)\r
+!ENDIF\r
+\r
!IF "$(USE_CARES)"=="true"\r
CFLAGS = $(CFLAGS) $(CARES_CFLAGS)\r
LFLAGS = $(LFLAGS) $(CARES_LFLAGS) $(CARES_LIBS)\r
\r
$(LIB_DIROBJ):\r
@if not exist "$(LIB_DIROBJ)" mkdir $(LIB_DIROBJ)\r
+ @if not exist "$(LIB_DIROBJ)\vauth" mkdir $(LIB_DIROBJ)\vauth\r
@if not exist "$(LIB_DIROBJ)\vtls" mkdir $(LIB_DIROBJ)\vtls\r
\r
$(CURL_DIROBJ):\r
.SUFFIXES: .c .obj .res\r
\r
{$(LIBCURL_SRC_DIR)\}.c{$(LIB_DIROBJ)\}.obj:\r
- $(CC) $(CFLAGS) /Fo"$@" $<\r
+ $(CURL_CC) $(CFLAGS) /Fo"$@" $<\r
+\r
+{$(LIBCURL_SRC_DIR)\vauth\}.c{$(LIB_DIROBJ)\vauth\}.obj:\r
+ $(CURL_CC) $(CFLAGS) /Fo"$@" $<\r
\r
{$(LIBCURL_SRC_DIR)\vtls\}.c{$(LIB_DIROBJ)\vtls\}.obj:\r
- $(CC) $(CFLAGS) /Fo"$@" $<\r
+ $(CURL_CC) $(CFLAGS) /Fo"$@" $<\r
\r
$(LIB_DIROBJ)\libcurl.res: $(LIBCURL_SRC_DIR)\libcurl.rc\r
rc $(RC_FLAGS)\r
$(MANIFESTTOOL)\r
\r
{$(CURL_SRC_DIR)\}.c{$(CURL_DIROBJ)\}.obj:\r
- $(CC) $(CURL_CFLAGS) /Fo"$@" $<\r
+ $(CURL_CC) $(CURL_CFLAGS) /Fo"$@" $<\r
\r
$(CURL_DIROBJ)\tool_hugehelp.obj: $(CURL_SRC_DIR)\tool_hugehelp.c\r
$(CURL_CC) $(CURL_CFLAGS) /Zm200 /Fo"$@" $(CURL_SRC_DIR)\tool_hugehelp.c\r