winbuild: Allow SSPI build with or without Schannel
[platform/upstream/curl.git] / winbuild / Makefile.vc
1 !IF "$(MODE)"=="static"\r
2 TARGET = $(LIB_NAME_STATIC)\r
3 AS_DLL = false\r
4 CFGSET=true\r
5 !ELSEIF "$(MODE)"=="dll"\r
6 TARGET = $(LIB_NAME_DLL)\r
7 AS_DLL = true\r
8 CFGSET=true\r
9 !ELSE\r
10 !MESSAGE Invalid mode: $(MODE)\r
11 \r
12 #######################\r
13 # Usage\r
14 #\r
15 \r
16 !MESSAGE Usage: nmake /f makefile.vc mode=<static or dll> <options>\r
17 !MESSAGE where <options> is one or many of:\r
18 !MESSAGE   VC=<6,7,8,9,10>              - VC versions\r
19 !MESSAGE   WITH_DEVEL=<path>            - Paths for the development files (SSL, zlib, etc.)\r
20 !MESSAGE                                  Default to sibbling directory deps: ../deps\r
21 !MESSAGE                                  Libraries can be fetched at http://pecl2.php.net/downloads/php-windows-builds/\r
22 !MESSAGE                                  Uncompress them into the deps folder.\r
23 !MESSAGE   WITH_SSL=<dll or static>     - Enable OpenSSL support, DLL or static\r
24 !MESSAGE   WITH_ZLIB=<dll or static>    - Enable ZLib support, DLL or static\r
25 !MESSAGE   WITH_SSH2=<dll or static>    - Enable LIbSSH2 support, DLL or static\r
26 !MESSAGE   USE_SSPI=<yes or no>         - Enable SSPI support, default to yes\r
27 !MESSAGE   ENABLE_IPV6=<yes or no>      - Enable IPV6, default to yes\r
28 !MESSAGE   ENABLE_IDN=<yes or no>       - Wheter or not to use IDN Windows APIs. Requires Windows Vista or later.\r
29 !MESSAGE                                  or to install http://www.microsoft.com/downloads/details.aspx?FamilyID=AD6158D7-DDBA-416A-9109-07607425A815\r
30 !MESSAGE   ENABLE_WINSSL=<yes or no>    - Enable native Windows SSL support, default to yes\r
31 !MESSAGE   GEN_PDB=<yes or no>          - Generate Program Database (debug symbols release build)\r
32 !MESSAGE   DEBUG=<yes or no>            - Debug builds\r
33 !ERROR please choose a valid mode\r
34 \r
35 !ENDIF\r
36 \r
37 !INCLUDE "../lib/Makefile.inc"\r
38 LIBCURL_OBJS=$(CSOURCES:.c=.obj)\r
39 \r
40 top_srcdir=..\r
41 !INCLUDE "../src/Makefile.inc"\r
42 \r
43 # hugehelp has a special rule\r
44 CURL_OBJS=$(CURL_CFILES:hugehelp.c=)\r
45 \r
46 CURL_OBJS=$(CURL_OBJS:.c=.obj)\r
47 \r
48 # default options\r
49 !IFNDEF USE_SSPI\r
50 USE_SSPI = true\r
51 !ENDIF\r
52 \r
53 !IFNDEF ENABLE_IPV6\r
54 USE_IPV6 = true\r
55 !ELSEIF "$(ENABLE_IPV6)"=="yes"\r
56 USE_IPV6 = true\r
57 !ELSEIF "$(ENABLE_IPV6)"=="no"\r
58 USE_IPV6 = false\r
59 !ENDIF\r
60 \r
61 !IFNDEF ENABLE_IDN\r
62 USE_IDN = true\r
63 !ELSEIF "$(ENABLE_IDN)"=="yes"\r
64 USE_IDN = true\r
65 !ELSEIF "$(ENABLE_IDN)"=="no"\r
66 USE_IDN = false\r
67 !ENDIF\r
68 \r
69 !IFNDEF ENABLE_WINSSL\r
70 USE_WINSSL = true\r
71 !ELSEIF "$(ENABLE_WINSSL)"=="yes"\r
72 USE_WINSSL = true\r
73 !ELSEIF "$(ENABLE_WINSSL)"=="no"\r
74 USE_WINSSL = false\r
75 !ENDIF\r
76 \r
77 CONFIG_NAME_LIB = libcurl\r
78 \r
79 !IF "$(WITH_SSL)"=="dll"\r
80 USE_SSL = true\r
81 SSL     = dll\r
82 !ELSEIF "$(WITH_SSL)"=="static"\r
83 USE_SSL = true\r
84 SSL     = static\r
85 !ENDIF\r
86 \r
87 !IF "$(WITH_ZLIB)"=="dll"\r
88 USE_ZLIB = true\r
89 ZLIB     = dll\r
90 !ELSEIF "$(WITH_ZLIB)"=="static"\r
91 USE_ZLIB = true\r
92 ZLIB     = static\r
93 !ENDIF\r
94 \r
95 !IF "$(WITH_SSH2)"=="dll"\r
96 USE_SSH2 = true\r
97 SSH2     = dll\r
98 !ELSEIF "$(WITH_SSH2)"=="static"\r
99 USE_SSH2 = true\r
100 SSH2     = static\r
101 !ENDIF\r
102 \r
103 !IF "$(DEBUG)"=="yes"\r
104 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-debug\r
105 !ELSE\r
106 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-release\r
107 !ENDIF\r
108 \r
109 !IF "$(AS_DLL)" == "true"\r
110 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-dll\r
111 !ELSE\r
112 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-static\r
113 !ENDIF\r
114 \r
115 !IF "$(USE_SSL)"=="true"\r
116 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssl-$(SSL)\r
117 !ENDIF\r
118 \r
119 !IF "$(USE_ZLIB)"=="true"\r
120 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-zlib-$(ZLIB)\r
121 !ENDIF\r
122 \r
123 !IF "$(USE_SSH2)"=="true"\r
124 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ssh2-$(SSH2)\r
125 !ENDIF\r
126 \r
127 !IF "$(USE_IPV6)"=="true"\r
128 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-ipv6\r
129 !ENDIF\r
130 \r
131 !IF "$(USE_SSPI)"=="true"\r
132 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-sspi\r
133 !ENDIF\r
134 \r
135 !IF "$(USE_WINSSL)"=="true"\r
136 CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-winssl\r
137 !ENDIF\r
138 \r
139 !MESSAGE configuration name: $(CONFIG_NAME_LIB)\r
140 \r
141 BUILD_DIR=../builds/$(CONFIG_NAME_LIB)\r
142 LIBCURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-lib\r
143 CURL_DIROBJ = ..\builds\$(CONFIG_NAME_LIB)-obj-curl\r
144 DIRDIST = ..\builds\$(CONFIG_NAME_LIB)\\r
145 \r
146 $(MODE):\r
147         @SET LIBCURL_DIROBJ=$(LIBCURL_DIROBJ)\r
148         @SET MACRO_NAME=LIBCURL_OBJS\r
149         @SET OUTFILE=LIBCURL_OBJS.inc\r
150         @gen_resp_file.bat $(LIBCURL_OBJS)\r
151         @SET LIBCURL_DIROBJ=$(CURL_DIROBJ)\r
152         @SET MACRO_NAME=CURL_OBJS\r
153         @SET OUTFILE=CURL_OBJS.inc\r
154         @gen_resp_file.bat $(CURL_OBJS)\r
155         @SET USE_IPV6=$(USE_IPV6)\r
156         @SET USE_IDN=$(USE_IDN)\r
157         @SET USE_WINSSL=$(USE_WINSSL)\r
158         @$(MAKE) /NOLOGO /F MakefileBuild.vc\r
159 \r
160 copy_from_lib:\r
161         echo copying .c...\r
162         FOR %%i IN ($(CURLX_ONES:/=\)) DO copy %%i ..\src\\r