1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-23 08:38:49 -05:00
curl/winbuild/Makefile.vc
Marc Hoersken 9d8375c29b winbuild: Allow SSPI build with or without Schannel
The changes introduced in commit 2bfa57bc32 are not enough
to make it actually possible to use the USE_WINSSL option.
Makefile.vc was not updated and the configuration name which is
used in the build path did not match between both build files.

This patch fixes those issues and introduces the following changes:

- Replaced the -schannel name with -winssl in order to be consistent
with the other options
- Added ENABLE_WINSSL option to winbuild/Makefile.vc (default yes)
- Changed winbuild/MakefileBuild.vc to set USE_WINSSL to true if
USE_SSL is false and USE_WINSSL was not specified as a parameter
- Separated WINSSL handling from SSPI handling to be consistent with
the other options and their corresponding code path
2012-06-14 18:16:47 +02:00

163 lines
4.3 KiB
Makefile

!IF "$(MODE)"=="static"
TARGET = $(LIB_NAME_STATIC)
AS_DLL = false
CFGSET=true
!ELSEIF "$(MODE)"=="dll"
TARGET = $(LIB_NAME_DLL)
AS_DLL = true
CFGSET=true
!ELSE
!MESSAGE Invalid mode: $(MODE)
#######################
# Usage
#
!MESSAGE Usage: nmake /f makefile.vc mode=<static or dll> <options>
!MESSAGE where <options> is one or many of:
!MESSAGE VC=<6,7,8,9,10> - VC versions
!MESSAGE WITH_DEVEL=<path> - Paths for the development files (SSL, zlib, etc.)
!MESSAGE Default to sibbling directory deps: ../deps
!MESSAGE Libraries can be fetched at http://pecl2.php.net/downloads/php-windows-builds/
!MESSAGE Uncompress them into the deps folder.
!MESSAGE WITH_SSL=<dll or static> - Enable OpenSSL support, DLL or static
!MESSAGE WITH_ZLIB=<dll or static> - Enable ZLib support, DLL or static
!MESSAGE WITH_SSH2=<dll or static> - Enable LIbSSH2 support, DLL or static
!MESSAGE USE_SSPI=<yes or no> - Enable SSPI support, default to yes
!MESSAGE ENABLE_IPV6=<yes or no> - Enable IPV6, default to yes
!MESSAGE ENABLE_IDN=<yes or no> - Wheter or not to use IDN Windows APIs. Requires Windows Vista or later.
!MESSAGE or to install http://www.microsoft.com/downloads/details.aspx?FamilyID=AD6158D7-DDBA-416A-9109-07607425A815
!MESSAGE ENABLE_WINSSL=<yes or no> - Enable native Windows SSL support, default to yes
!MESSAGE GEN_PDB=<yes or no> - Generate Program Database (debug symbols release build)
!MESSAGE DEBUG=<yes or no> - Debug builds
!ERROR please choose a valid mode
!ENDIF
!INCLUDE "../lib/Makefile.inc"
LIBCURL_OBJS=$(CSOURCES:.c=.obj)
top_srcdir=..
!INCLUDE "../src/Makefile.inc"
# hugehelp has a special rule
CURL_OBJS=$(CURL_CFILES:hugehelp.c=)
CURL_OBJS=$(CURL_OBJS:.c=.obj)
# default options
!IFNDEF USE_SSPI
USE_SSPI = true
!ENDIF
!IFNDEF ENABLE_IPV6
USE_IPV6 = true
!ELSEIF "$(ENABLE_IPV6)"=="yes"
USE_IPV6 = true
!ELSEIF "$(ENABLE_IPV6)"=="no"
USE_IPV6 = false
!ENDIF
!IFNDEF ENABLE_IDN
USE_IDN = true
!ELSEIF "$(ENABLE_IDN)"=="yes"
USE_IDN = true
!ELSEIF "$(ENABLE_IDN)"=="no"
USE_IDN = false
!ENDIF
!IFNDEF ENABLE_WINSSL
USE_WINSSL = true
!ELSEIF "$(ENABLE_WINSSL)"=="yes"
USE_WINSSL = true
!ELSEIF "$(ENABLE_WINSSL)"=="no"
USE_WINSSL = false
!ENDIF
CONFIG_NAME_LIB = libcurl
!IF "$(WITH_SSL)"=="dll"
USE_SSL = true
SSL = dll
!ELSEIF "$(WITH_SSL)"=="static"
USE_SSL = true
SSL = static
!ENDIF
!IF "$(WITH_ZLIB)"=="dll"
USE_ZLIB = true
ZLIB = dll
!ELSEIF "$(WITH_ZLIB)"=="static"
USE_ZLIB = true
ZLIB = static
!ENDIF
!IF "$(WITH_SSH2)"=="dll"
USE_SSH2 = true
SSH2 = dll
!ELSEIF "$(WITH_SSH2)"=="static"
USE_SSH2 = true
SSH2 = static
!ENDIF
!IF "$(DEBUG)"=="yes"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-debug
!ELSE
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-release
!ENDIF
!IF "$(AS_DLL)" == "true"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-dll
!ELSE
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-static
!ENDIF
!IF "$(USE_SSL)"=="true"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssl-$(SSL)
!ENDIF
!IF "$(USE_ZLIB)"=="true"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-zlib-$(ZLIB)
!ENDIF
!IF "$(USE_SSH2)"=="true"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssh2-$(SSH2)
!ENDIF
!IF "$(USE_IPV6)"=="true"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ipv6
!ENDIF
!IF "$(USE_SSPI)"=="true"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-sspi
!ENDIF
!IF "$(USE_WINSSL)"=="true"
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-winssl
!ENDIF
!MESSAGE configuration name: $(CONFIG_NAME_LIB)
BUILD_DIR=../builds/$(CONFIG_NAME_LIB)
LIBCURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-lib
CURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-curl
DIRDIST = ..\builds\$(CONFIG_NAME_LIB)\
$(MODE):
@SET LIBCURL_DIROBJ=$(LIBCURL_DIROBJ)
@SET MACRO_NAME=LIBCURL_OBJS
@SET OUTFILE=LIBCURL_OBJS.inc
@gen_resp_file.bat $(LIBCURL_OBJS)
@SET LIBCURL_DIROBJ=$(CURL_DIROBJ)
@SET MACRO_NAME=CURL_OBJS
@SET OUTFILE=CURL_OBJS.inc
@gen_resp_file.bat $(CURL_OBJS)
@SET USE_IPV6=$(USE_IPV6)
@SET USE_IDN=$(USE_IDN)
@SET USE_WINSSL=$(USE_WINSSL)
@$(MAKE) /NOLOGO /F MakefileBuild.vc
copy_from_lib:
echo copying .c...
FOR %%i IN ($(CURLX_ONES:/=\)) DO copy %%i ..\src\