# | (__| |_| | _ <| |___\r
# \___|\___/|_| \_\_____|\r
#\r
-# Copyright (C) 1999 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.\r
+# Copyright (C) 1999 - 2014, 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
\r
###########################################################################\r
#\r
-# Makefile for building libcurl with MSVC 6, 7, 8, 9 and 10\r
+# Makefile for building libcurl with MSVC 6, 7, 8, 9, 10, 11 and 12\r
#\r
# Usage: see usage message below\r
# Should be invoked from winbuild directory\r
!IF "$(VC)"=="6"\r
CC_NODEBUG = cl.exe /O2 /DNDEBUG\r
CC_DEBUG = cl.exe /Od /Gm /Zi /D_DEBUG /GZ\r
-CFLAGS = /I. /I../include /nologo /W3 /GX /DWIN32 /YX /FD /c /DBUILDING_LIBCURL\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
-CFLAGS = /I. /I../include /nologo /W3 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL\r
+CFLAGS = /I. /I ../lib /I../include /nologo /W3 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL\r
!ENDIF\r
\r
LFLAGS = /nologo /machine:$(MACHINE)\r
\r
CFLAGS_LIBCURL_STATIC = /DCURL_STATICLIB\r
\r
-LIB_NAME_STATIC = libcurl_a.lib\r
-LIB_NAME_STATIC_DEBUG = libcurl_a_debug.lib\r
-LIB_NAME_DLL = libcurl.dll\r
-LIB_NAME_IMP = libcurl.lib\r
-LIB_NAME_DLL_DEBUG = libcurl_debug.dll\r
-LIB_NAME_IMP_DEBUG = libcurl_debug.lib\r
+WIN_LIBS = ws2_32.lib wldap32.lib advapi32.lib\r
+\r
+BASE_NAME = libcurl\r
+BASE_NAME_DEBUG = $(BASE_NAME)_debug\r
+BASE_NAME_STATIC = $(BASE_NAME)_a\r
+BASE_NAME_STATIC_DEBUG = $(BASE_NAME_STATIC)_debug\r
+\r
+LIB_NAME_STATIC = $(BASE_NAME_STATIC).lib\r
+LIB_NAME_STATIC_DEBUG = $(BASE_NAME_STATIC_DEBUG).lib\r
+LIB_NAME_DLL = $(BASE_NAME).dll\r
+LIB_NAME_IMP = $(BASE_NAME).lib\r
+LIB_NAME_DLL_DEBUG = $(BASE_NAME_DEBUG).dll\r
+LIB_NAME_IMP_DEBUG = $(BASE_NAME_DEBUG).lib\r
+\r
+PDB_NAME_STATIC = $(BASE_NAME_STATIC).pdb\r
+PDB_NAME_STATIC_DEBUG = $(BASE_NAME_STATIC_DEBUG).pdb\r
+PDB_NAME_DLL = $(BASE_NAME).pdb\r
+PDB_NAME_DLL_DEBUG = $(BASE_NAME_DEBUG).pdb\r
\r
# CURL Command section\r
PROGRAM_NAME = curl.exe\r
USE_SSL = true\r
SSL = dll\r
!ELSEIF "$(WITH_SSL)"=="static"\r
-SSL_LIBS = libeay32.lib ssleay32.lib gdi32.lib user32.lib advapi32.lib\r
+SSL_LIBS = libeay32.lib ssleay32.lib gdi32.lib user32.lib crypt32.lib\r
USE_SSL = true\r
SSL = static\r
!ENDIF\r
\r
!IF "$(WITH_ZLIB)"=="dll"\r
ZLIB_LIBS = zlib.lib\r
-ZLIB_CFLAGS = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ\r
USE_ZLIB = true\r
ZLIB = dll\r
!ELSEIF "$(WITH_ZLIB)"=="static"\r
ZLIB_LIBS = zlib_a.lib\r
-ZLIB_CFLAGS = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ\r
USE_ZLIB = true\r
ZLIB = static\r
!ENDIF\r
USE_SSH2 = true\r
SSH2 = dll\r
!ELSEIF "$(WITH_SSH2)"=="static"\r
-SSH2_LIBS = libssh2_a_debug.lib\r
+SSH2_LIBS = libssh2_a.lib user32.lib\r
USE_SSH2 = true\r
SSH2 = static\r
!ENDIF\r
!ENDIF\r
\r
\r
-!IFNDEF USE_SSPI\r
-USE_SSPI = true\r
-!ELSEIF "$(USE_SSPI)"=="yes"\r
-USE_SSPI = true\r
+!IFNDEF USE_IDN\r
+USE_IDN = true\r
+!ELSEIF "$(USE_IDN)"=="yes"\r
+USE_IDN = true\r
!ENDIF\r
\r
-!IF "$(USE_SSPI)"=="true"\r
-SSPI_CFLAGS = $(SSPI_CFLAGS) /DUSE_WINDOWS_SSPI\r
+!IF "$(USE_IDN)"=="true"\r
+IDN_CFLAGS = $(IDN_CFLAGS) /DUSE_WIN32_IDN /DWANT_IDN_PROTOTYPES\r
+WIN_LIBS = $(WIN_LIBS) Normaliz.lib\r
!ENDIF\r
\r
\r
!ENDIF\r
\r
\r
-!IFNDEF USE_IDN\r
-USE_IDN = true\r
-!ELSEIF "$(USE_IDN)"=="yes"\r
-USE_IDN = true\r
+!IFNDEF USE_SSPI\r
+USE_SSPI = true\r
+!ELSEIF "$(USE_SSPI)"=="yes"\r
+USE_SSPI = true\r
!ENDIF\r
\r
-!IF "$(USE_IDN)"=="true"\r
-CFLAGS = $(CFLAGS) /DUSE_WIN32_IDN /DWANT_IDN_PROTOTYPES\r
-LFLAGS = $(LFLAGS) Normaliz.lib\r
+!IF "$(USE_SSPI)"=="true"\r
+SSPI_CFLAGS = $(SSPI_CFLAGS) /DUSE_WINDOWS_SSPI\r
+!ENDIF\r
+\r
+\r
+!IFNDEF USE_SPNEGO\r
+USE_SPNEGO = true\r
+!ELSEIF "$(USE_SPNEGO)"=="yes"\r
+USE_SPNEGO = true\r
+!ENDIF\r
+\r
+!IF "$(USE_SPNEGO)"=="true"\r
+SPNEGO_CFLAGS = $(SPNEGO_CFLAGS) /DHAVE_SPNEGO\r
!ENDIF\r
\r
\r
USE_WINSSL = true\r
!ENDIF\r
\r
+\r
!IF "$(USE_WINSSL)"=="true"\r
!IF "$(USE_SSPI)"!="true"\r
!ERROR cannot build with WinSSL without SSPI\r
!ENDIF\r
\r
\r
-\r
!IF "$(GEN_PDB)"=="yes"\r
GEN_PDB = true\r
!ENDIF\r
\r
-!IFNDEF MACHINE\r
-MACHINE = X86\r
-!ENDIF\r
\r
!IFDEF EMBEND_MANIFEST\r
MANIFESTTOOL = mt -manifest $(DIRDIST)\$(PROGRAM_NAME).manifest -outputresource:$(DIRDIST)\$(PROGRAM_NAME);1\r
CFGSET = true\r
!ENDIF\r
\r
-WIN_LIBS = ws2_32.lib wldap32.lib\r
!IF "$(CFGSET)" == "FALSE"\r
!ERROR please choose a valid mode\r
!ENDIF\r
\r
-CONFIG_NAME_LIB = libcurl\r
+\r
\r
# CURL_XX macros are for the curl.exe command\r
\r
\r
CURL_CC = $(CC)\r
CURL_RC_FLAGS = /i../include /dDEBUGBUILD=1 /Fo $@ $(CURL_SRC_DIR)\curl.rc\r
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-debug\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_RC_FLAGS = /i../include /dDEBUGBUILD=0 /Fo $@ $(CURL_SRC_DIR)\curl.rc\r
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-release\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
+LNK = $(LNKDLL) $(WIN_LIBS) /out:$(LIB_DIROBJ)\$(TARGET)\r
!IF "$(DEBUG)"=="yes"\r
TARGET = $(LIB_NAME_DLL_DEBUG)\r
LNK = $(LNK) /DEBUG /IMPLIB:$(LIB_DIROBJ)\$(LIB_NAME_IMP_DEBUG)\r
+PDB = $(PDB_NAME_DLL_DEBUG)\r
CURL_LIBS = /IMPLIB:$(LIB_DIROBJ)\$(LIB_NAME_IMP_DEBUG)\r
!ELSE\r
TARGET = $(LIB_NAME_DLL)\r
LNK = $(LNK) /IMPLIB:$(LIB_DIROBJ)\$(LIB_NAME_IMP)\r
+PDB = $(PDB_NAME_DLL)\r
CURL_LIBS = /IMPLIB:$(LIB_DIROBJ)\$(LIB_NAME_IMP)\r
!ENDIF\r
-RESOURCE = $(LIB_DIROBJ)\libcurl.res\r
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-dll\r
+RESOURCE = $(LIB_DIROBJ)\libcurl.res\r
\r
# AS_DLL\r
!ELSE\r
\r
!IF "$(DEBUG)"=="yes"\r
TARGET = $(LIB_NAME_STATIC_DEBUG)\r
+PDB = $(PDB_NAME_STATIC_DEBUG)\r
!ELSE\r
TARGET = $(LIB_NAME_STATIC)\r
+PDB = $(PDB_NAME_STATIC)\r
!ENDIF\r
LNK = $(LNKLIB) $(WIN_LIBS) /out:$(LIB_DIROBJ)\$(TARGET)\r
CC = $(CC) $(CFLAGS_LIBCURL_STATIC)\r
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-static\r
\r
# AS_DLL\r
!ENDIF\r
!IF "$(USE_SSL)"=="true"\r
CFLAGS = $(CFLAGS) $(SSL_CFLAGS)\r
LFLAGS = $(LFLAGS) $(SSL_LFLAGS) $(SSL_LIBS)\r
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssl-$(SSL)\r
!ENDIF\r
\r
!IF "$(USE_ZLIB)"=="true"\r
CFLAGS = $(CFLAGS) $(ZLIB_CFLAGS)\r
LFLAGS = $(LFLAGS) $(ZLIB_LFLAGS) $(ZLIB_LIBS)\r
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-zlib-$(ZLIB)\r
!ENDIF\r
\r
!IF "$(USE_SSH2)"=="true"\r
CFLAGS = $(CFLAGS) $(SSH2_CFLAGS)\r
LFLAGS = $(LFLAGS) $(SSH2_LFLAGS) $(SSH2_LIBS)\r
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssh2-$(SSH2)\r
+!ENDIF\r
+\r
+!IF "$(USE_IDN)"=="true"\r
+CFLAGS = $(CFLAGS) $(IDN_CFLAGS)\r
!ENDIF\r
\r
!IF "$(USE_IPV6)"=="true"\r
CFLAGS = $(CFLAGS) $(IPV6_CFLAGS)\r
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ipv6\r
!ENDIF\r
\r
!IF "$(USE_SSPI)"=="true"\r
CFLAGS = $(CFLAGS) $(SSPI_CFLAGS)\r
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-sspi\r
!ENDIF\r
\r
-!IF "$(USE_WINSSL)"=="true"\r
-CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-winssl\r
+!IF "$(USE_SPNEGO)"=="true"\r
+CFLAGS = $(CFLAGS) $(SPNEGO_CFLAGS)\r
!ENDIF\r
\r
!IF "$(GEN_PDB)"=="true"\r
-CFLAGS = $(CFLAGS) $(CFLAGS_PDB)\r
+CFLAGS = $(CFLAGS) $(CFLAGS_PDB) /Fd"$(LIB_DIROBJ)\$(PDB)"\r
LFLAGS = $(LFLAGS) $(LFLAGS_PDB)\r
!ENDIF\r
\r
!include CURL_OBJS.inc\r
!include LIBCURL_OBJS.inc\r
\r
+!IF "$(AS_DLL)" == "true"\r
+LIB_OBJS = $(LIBCURL_OBJS) $(RESOURCE)\r
+!ELSE\r
LIB_OBJS = $(LIBCURL_OBJS)\r
-EXE_OBJS = $(CURL_OBJS)\r
+!ENDIF\r
+\r
+EXE_OBJS = $(CURL_OBJS) $(CURL_DIROBJ)\curl.res\r
\r
all : $(TARGET) $(PROGRAM_NAME)\r
\r
@echo Using SSL: $(USE_SSL)\r
@echo Using SSH2: $(USE_SSH2)\r
@echo Using ZLIB: $(USE_ZLIB)\r
- @echo Using SSPI: $(USE_SSPI)\r
- @echo Using IPv6: $(USE_IPV6)\r
@echo Using IDN: $(USE_IDN)\r
+ @echo Using IPv6: $(USE_IPV6)\r
+ @echo Using SSPI: $(USE_SSPI)\r
+ @echo Using SPNEGO: $(USE_SPNEGO)\r
@echo Using WinSSL: $(USE_WINSSL)\r
@echo CFLAGS: $(CFLAGS)\r
@echo LFLAGS: $(LFLAGS)\r
@echo GenPDB: $(GEN_PDB)\r
@echo Debug: $(DEBUG)\r
+ @echo Machine: $(MACHINE)\r
$(LNK) $(LFLAGS) $(LIB_OBJS)\r
@echo Copying libs...\r
@if exist $(LIB_DIROBJ)\$(LIB_NAME_DLL) copy $(LIB_DIROBJ)\$(LIB_NAME_DLL) $(DIRDIST)\bin\ /y >nul 2<&1\r
\r
$(LIB_DIROBJ):\r
@if not exist "$(LIB_DIROBJ)" mkdir $(LIB_DIROBJ)\r
+ @if not exist "$(LIB_DIROBJ)\vtls" mkdir $(LIB_DIROBJ)\vtls\r
\r
$(CURL_DIROBJ):\r
@if not exist "$(CURL_DIROBJ)" mkdir $(CURL_DIROBJ)\r
{$(LIBCURL_SRC_DIR)\}.c{$(LIB_DIROBJ)\}.obj:\r
$(CC) $(CFLAGS) /Fo"$@" $<\r
\r
+{$(LIBCURL_SRC_DIR)\vtls\}.c{$(LIB_DIROBJ)\vtls\}.obj:\r
+ $(CC) $(CFLAGS) /Fo"$@" $<\r
+\r
$(LIB_DIROBJ)\libcurl.res: $(LIBCURL_SRC_DIR)\libcurl.rc\r
rc $(RC_FLAGS)\r
\r
!ENDIF\r
!ENDIF\r
\r
-CURL_FROM_LIBCURL=$(CURL_DIROBJ)\hugehelp.obj \\r
+CURL_FROM_LIBCURL=$(CURL_DIROBJ)\tool_hugehelp.obj \\r
$(CURL_DIROBJ)\nonblock.obj \\r
$(CURL_DIROBJ)\rawstr.obj \\r
- $(CURL_DIROBJ)\strtoofft.obj\r
+ $(CURL_DIROBJ)\strtoofft.obj \\r
+ $(CURL_DIROBJ)\warnless.obj\r
\r
$(PROGRAM_NAME): $(CURL_DIROBJ) $(CURL_FROM_LIBCURL) $(EXE_OBJS)\r
$(CURL_LINK) $(CURL_LFLAGS) $(CURL_LIBCURL_LIBNAME) $(WIN_LIBS) $(CURL_FROM_LIBCURL) $(EXE_OBJS)\r
{$(CURL_SRC_DIR)\}.c{$(CURL_DIROBJ)\}.obj:\r
$(CC) $(CURL_CFLAGS) /Fo"$@" $<\r
\r
-$(CURL_DIROBJ)\hugehelp.obj: $(CURL_SRC_DIR)\hugehelp.c\r
- $(CURL_CC) $(CURL_CFLAGS) /Zm200 /Fo"$@" $(CURL_SRC_DIR)\hugehelp.c\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
$(CURL_DIROBJ)\nonblock.obj: ../lib/nonblock.c\r
$(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/nonblock.c\r
$(CURL_DIROBJ)\rawstr.obj: ../lib/rawstr.c\r
$(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/rawstr.c\r
$(CURL_DIROBJ)\strtoofft.obj: ../lib/strtoofft.c\r
$(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/strtoofft.c\r
+$(CURL_DIROBJ)\warnless.obj: ../lib/warnless.c\r
+ $(CURL_CC) $(CURL_CFLAGS) /Fo"$@" ../lib/warnless.c\r
$(CURL_DIROBJ)\curl.res: $(CURL_SRC_DIR)\curl.rc\r
rc $(CURL_RC_FLAGS)\r
\r