Imported Upstream version 7.48.0
[platform/upstream/curl.git] / lib / Makefile.vc11
1 #***************************************************************************\r
2 #                                  _   _ ____  _\r
3 #  Project                     ___| | | |  _ \| |\r
4 #                             / __| | | | |_) | |\r
5 #                            | (__| |_| |  _ <| |___\r
6 #                             \___|\___/|_| \_\_____|\r
7 #\r
8 # Copyright (C) 1999 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.\r
9 #\r
10 # This software is licensed as described in the file COPYING, which\r
11 # you should have received as part of this distribution. The terms\r
12 # are also available at https://curl.haxx.se/docs/copyright.html.\r
13 #\r
14 # You may opt to use, copy, modify, merge, publish, distribute and/or sell\r
15 # copies of the Software, and permit persons to whom the Software is\r
16 # furnished to do so, under the terms of the COPYING file.\r
17 #\r
18 # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY\r
19 # KIND, either express or implied.\r
20 #\r
21 #***************************************************************************\r
22 \r
23 # All files in the Makefile.vc* series are generated automatically from the\r
24 # one made for MSVC version 6. Alas, if you want to do changes to any of the\r
25 # files and send back to the project, edit the version six, make your diff and\r
26 # mail curl-library.\r
27 \r
28 ###########################################################################\r
29 #\r
30 # Makefile for building libcurl with MSVC11\r
31 #\r
32 # Usage: see usage message below\r
33 #        Should be invoked from \lib directory\r
34 #        Edit the paths and desired library name\r
35 #        SSL path is only required if you intend compiling\r
36 #        with SSL.\r
37 #\r
38 # This make file leaves the result either a .lib or .dll file\r
39 # in the \lib directory. It should be called from the \lib\r
40 # directory.\r
41 #\r
42 # An option would have been to allow the source directory to\r
43 # be specified, but I saw no requirement.\r
44 #\r
45 # Another option would have been to leave the .lib and .dll\r
46 # files in the "cfg" directory, but then the make file\r
47 # in \src would need to be changed.\r
48 #\r
49 ##############################################################\r
50 \r
51 # ----------------------------------------------\r
52 # Verify that current subdir is libcurl's 'lib'\r
53 # ----------------------------------------------\r
54 \r
55 !IF ! EXIST(.\curl_addrinfo.c)\r
56 !  MESSAGE Can not process this makefile from outside of libcurl's 'lib' subdirectory.\r
57 !  MESSAGE Change to libcurl's 'lib' subdirectory, and try again.\r
58 !  ERROR   See previous message.\r
59 !ENDIF\r
60 \r
61 # ------------------------------------------------\r
62 # Makefile.msvc.names provides libcurl file names\r
63 # ------------------------------------------------\r
64 \r
65 !INCLUDE ..\winbuild\Makefile.msvc.names\r
66 \r
67 !IFNDEF OPENSSL_PATH\r
68 OPENSSL_PATH   = ../../openssl-1.0.2a\r
69 !ENDIF\r
70 \r
71 !IFNDEF LIBSSH2_PATH\r
72 LIBSSH2_PATH   = ../../libssh2-1.5.0\r
73 !ENDIF\r
74 \r
75 !IFNDEF ZLIB_PATH\r
76 ZLIB_PATH  = ../../zlib-1.2.8\r
77 !ENDIF\r
78 \r
79 !IFNDEF MACHINE\r
80 MACHINE  = X86\r
81 !ENDIF\r
82 \r
83 # USE_WINDOWS_SSPI uses windows libraries to allow NTLM authentication\r
84 # without an openssl installation and offers the ability to authenticate\r
85 # using the "current logged in user". Since at least with MSVC11 the sspi.h\r
86 # header is broken it is either required to install the Windows SDK,\r
87 # or to fix sspi.h with adding this define at the beginning of sspi.h:\r
88 # #define FreeCredentialHandle FreeCredentialsHandle\r
89 #\r
90 # If, for some reason the Windows SDK is installed but not installed\r
91 # in the default location, you can specify WINDOWS_SDK_PATH.\r
92 # It can be downloaded from:\r
93 # https://msdn.microsoft.com/windows/bb980924.aspx\r
94 \r
95 # WINDOWS_SSPI = 1\r
96 \r
97 !IFDEF WINDOWS_SSPI\r
98 !IFNDEF WINDOWS_SDK_PATH\r
99 WINDOWS_SDK_PATH = "$(PROGRAMFILES)\Microsoft SDK"\r
100 !ENDIF\r
101 !ENDIF\r
102 \r
103 #############################################################\r
104 ## Nothing more to do below this line!\r
105 \r
106 CCNODBG      = cl.exe /O2 /DNDEBUG\r
107 CCDEBUG      = cl.exe /Od /Gm /Zi /D_DEBUG /RTC1\r
108 CFLAGSSSL    = /DUSE_OPENSSL /I "$(OPENSSL_PATH)/inc32" /I "$(OPENSSL_PATH)/inc32/openssl"\r
109 CFLAGSWINSSL = /DUSE_SCHANNEL\r
110 CFLAGSSSH2   = /DUSE_LIBSSH2 /DCURL_DISABLE_LDAP /DHAVE_LIBSSH2 /DHAVE_LIBSSH2_H /DLIBSSH2_WIN32 /DLIBSSH2_LIBRARY /I "$(LIBSSH2_PATH)/include"\r
111 CFLAGSZLIB   = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ /I "$(ZLIB_PATH)"\r
112 CFLAGS       = /I. /I../include /nologo /W3 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL /D_BIND_TO_CURRENT_VCLIBS_VERSION=1\r
113 CFLAGSLIB    = /DCURL_STATICLIB\r
114 LNKDLL       = link.exe /DLL\r
115 LNKLIB       = link.exe /lib\r
116 LFLAGS       = /nologo /machine:$(MACHINE)\r
117 SSLLIBS      = libeay32.lib ssleay32.lib\r
118 ZLIBLIBSDLL  = zdll.lib\r
119 ZLIBLIBS     = zlib.lib\r
120 WINLIBS      = ws2_32.lib wldap32.lib advapi32.lib\r
121 CFLAGS       = $(CFLAGS)\r
122 \r
123 CFGSET       = FALSE\r
124 \r
125 !IFDEF WINDOWS_SSPI\r
126 CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include\r
127 !ENDIF\r
128 \r
129 !IFDEF USE_IPV6\r
130 CFLAGS = $(CFLAGS) /DUSE_IPV6\r
131 !ENDIF\r
132 \r
133 !IFDEF USE_IDN\r
134 CFLAGS = $(CFLAGS) /DUSE_WIN32_IDN /DWANT_IDN_PROTOTYPES\r
135 !ENDIF\r
136 \r
137 ##############################################################\r
138 # Runtime library configuration\r
139 \r
140 RTLIB   = /MD\r
141 RTLIBD  = /MDd\r
142 \r
143 !IF "$(RTLIBCFG)" == "static"\r
144 RTLIB  = /MT\r
145 RTLIBD = /MTd\r
146 !ENDIF\r
147 \r
148 \r
149 ######################\r
150 # release\r
151 \r
152 !IF "$(CFG)" == "release"\r
153 TARGET = $(LIBCURL_STA_LIB_REL)\r
154 DIROBJ = $(CFG)\r
155 LNK    = $(LNKLIB) /out:$(DIROBJ)\$(TARGET)\r
156 CC     = $(CCNODBG) $(RTLIB) $(CFLAGSLIB)\r
157 CFGSET = TRUE\r
158 !ENDIF\r
159 \r
160 ######################\r
161 # release-ssl\r
162 \r
163 !IF "$(CFG)" == "release-ssl"\r
164 TARGET   = $(LIBCURL_STA_LIB_REL)\r
165 DIROBJ   = $(CFG)\r
166 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"\r
167 LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET)\r
168 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSLIB)\r
169 CFGSET   = TRUE\r
170 !ENDIF\r
171 \r
172 ######################\r
173 # release-winssl\r
174 \r
175 !IF "$(CFG)" == "release-winssl"\r
176 TARGET   = $(LIBCURL_STA_LIB_REL)\r
177 DIROBJ   = $(CFG)\r
178 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
179 LNK      = $(LNKLIB) /out:$(DIROBJ)\$(TARGET)\r
180 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSWINSSL) $(CFLAGSLIB)\r
181 CFGSET   = TRUE\r
182 !ENDIF\r
183 \r
184 ######################\r
185 # release-zlib\r
186 \r
187 !IF "$(CFG)" == "release-zlib"\r
188 TARGET   = $(LIBCURL_STA_LIB_REL)\r
189 DIROBJ   = $(CFG)\r
190 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
191 LNK      = $(LNKLIB) $(ZLIBLIBS) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
192 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSZLIB) $(CFLAGSLIB)\r
193 CFGSET   = TRUE\r
194 !ENDIF\r
195 \r
196 ######################\r
197 # release-ssl-zlib\r
198 \r
199 !IF "$(CFG)" == "release-ssl-zlib"\r
200 TARGET   = $(LIBCURL_STA_LIB_REL)\r
201 DIROBJ   = $(CFG)\r
202 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"\r
203 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
204 LNK      = $(LNKLIB) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
205 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)\r
206 CFGSET   = TRUE\r
207 !ENDIF\r
208 \r
209 ######################\r
210 # release-winssl-zlib\r
211 \r
212 !IF "$(CFG)" == "release-winssl-zlib"\r
213 TARGET   = $(LIBCURL_STA_LIB_REL)\r
214 DIROBJ   = $(CFG)\r
215 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
216 LNK      = $(LNKLIB) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
217 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSWINSSL) $(CFLAGSZLIB) $(CFLAGSLIB)\r
218 CFGSET   = TRUE\r
219 !ENDIF\r
220 \r
221 ######################\r
222 # release-ssl-ssh2-zlib\r
223 \r
224 !IF "$(CFG)" == "release-ssl-ssh2-zlib"\r
225 TARGET   = $(LIBCURL_STA_LIB_REL)\r
226 DIROBJ   = $(CFG)\r
227 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"\r
228 LFLAGSSSH2 = "/LIBPATH:$(LIBSSH2_PATH)"\r
229 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
230 LNK      = $(LNKLIB) $(LFLAGSSSL) $(LFLAGSSSH2) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
231 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSSSH2) $(CFLAGSZLIB) $(CFLAGSLIB)\r
232 CFGSET   = TRUE\r
233 !ENDIF\r
234 \r
235 ######################\r
236 # release-ssl-dll\r
237 \r
238 !IF "$(CFG)" == "release-ssl-dll"\r
239 TARGET   = $(LIBCURL_STA_LIB_REL)\r
240 DIROBJ   = $(CFG)\r
241 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"\r
242 LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET)\r
243 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSLIB)\r
244 CFGSET   = TRUE\r
245 !ENDIF\r
246 \r
247 ######################\r
248 # release-zlib-dll\r
249 \r
250 !IF "$(CFG)" == "release-zlib-dll"\r
251 TARGET   = $(LIBCURL_STA_LIB_REL)\r
252 DIROBJ   = $(CFG)\r
253 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
254 LNK      = $(LNKLIB) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
255 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSZLIB) $(CFLAGSLIB)\r
256 CFGSET   = TRUE\r
257 !ENDIF\r
258 \r
259 ######################\r
260 # release-ssl-dll-zlib-dll\r
261 \r
262 !IF "$(CFG)" == "release-ssl-dll-zlib-dll"\r
263 TARGET   = $(LIBCURL_STA_LIB_REL)\r
264 DIROBJ   = $(CFG)\r
265 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
266 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"\r
267 LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
268 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)\r
269 CFGSET   = TRUE\r
270 !ENDIF\r
271 \r
272 ######################\r
273 # release-dll\r
274 \r
275 !IF "$(CFG)" == "release-dll"\r
276 TARGET = $(LIBCURL_DYN_LIB_REL)\r
277 DIROBJ = $(CFG)\r
278 LNK    = $(LNKDLL) $(WINLIBS) /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIBCURL_IMP_LIB_REL)\r
279 CC     = $(CCNODBG) $(RTLIB)\r
280 CFGSET = TRUE\r
281 RESOURCE = $(DIROBJ)\libcurl.res\r
282 !ENDIF\r
283 \r
284 ######################\r
285 # release-dll-ssl-dll\r
286 \r
287 !IF "$(CFG)" == "release-dll-ssl-dll"\r
288 TARGET   = $(LIBCURL_DYN_LIB_REL)\r
289 DIROBJ   = $(CFG)\r
290 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"\r
291 LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIBCURL_IMP_LIB_REL)\r
292 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL)\r
293 CFGSET   = TRUE\r
294 RESOURCE = $(DIROBJ)\libcurl.res\r
295 !ENDIF\r
296 \r
297 ######################\r
298 # release-dll-zlib-dll\r
299 \r
300 !IF "$(CFG)" == "release-dll-zlib-dll"\r
301 TARGET   = $(LIBCURL_DYN_LIB_REL)\r
302 DIROBJ   = $(CFG)\r
303 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
304 LNK      = $(LNKDLL) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIBCURL_IMP_LIB_REL)\r
305 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSZLIB)\r
306 CFGSET   = TRUE\r
307 RESOURCE = $(DIROBJ)\libcurl.res\r
308 !ENDIF\r
309 \r
310 ######################\r
311 # release-dll-ssl-dll-zlib-dll\r
312 \r
313 !IF "$(CFG)" == "release-dll-ssl-dll-zlib-dll"\r
314 TARGET   = $(LIBCURL_DYN_LIB_REL)\r
315 DIROBJ   = $(CFG)\r
316 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
317 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"\r
318 LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIBCURL_IMP_LIB_REL)\r
319 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSZLIB)\r
320 CFGSET   = TRUE\r
321 RESOURCE = $(DIROBJ)\libcurl.res\r
322 !ENDIF\r
323 \r
324 ######################\r
325 # debug\r
326 \r
327 !IF "$(CFG)" == "debug"\r
328 TARGET = $(LIBCURL_STA_LIB_DBG)\r
329 DIROBJ = $(CFG)\r
330 LNK    = $(LNKLIB) /out:$(DIROBJ)\$(TARGET)\r
331 CC     = $(CCDEBUG) $(RTLIBD) $(CFLAGSLIB)\r
332 CFGSET = TRUE\r
333 !ENDIF\r
334 \r
335 ######################\r
336 # debug-ssl\r
337 \r
338 !IF "$(CFG)" == "debug-ssl"\r
339 TARGET   = $(LIBCURL_STA_LIB_DBG)\r
340 DIROBJ   = $(CFG)\r
341 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"\r
342 LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET)\r
343 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSLIB)\r
344 CFGSET   = TRUE\r
345 !ENDIF\r
346 \r
347 ######################\r
348 # debug-zlib\r
349 \r
350 !IF "$(CFG)" == "debug-zlib"\r
351 TARGET   = $(LIBCURL_STA_LIB_DBG)\r
352 DIROBJ   = $(CFG)\r
353 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
354 LNK      = $(LNKLIB) $(ZLIBLIBS) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
355 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSZLIB) $(CFLAGSLIB)\r
356 CFGSET   = TRUE\r
357 !ENDIF\r
358 \r
359 ######################\r
360 # debug-ssl-zlib\r
361 \r
362 !IF "$(CFG)" == "debug-ssl-zlib"\r
363 TARGET   = $(LIBCURL_STA_LIB_DBG)\r
364 DIROBJ   = $(CFG)\r
365 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
366 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"\r
367 LNK      = $(LNKLIB) $(ZLIBLIBS) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
368 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)\r
369 CFGSET   = TRUE\r
370 !ENDIF\r
371 \r
372 ######################\r
373 # debug-ssl-ssh2-zlib\r
374 \r
375 !IF "$(CFG)" == "debug-ssl-ssh2-zlib"\r
376 TARGET   = $(LIBCURL_STA_LIB_DBG)\r
377 DIROBJ   = $(CFG)\r
378 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
379 LFLAGSSSH2 = "/LIBPATH:$(LIBSSH2_PATH)"\r
380 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"\r
381 LNK      = $(LNKLIB) $(ZLIBLIBS) $(LFLAGSSSL) $(LFLAGSSSH2) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
382 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSSSH2) $(CFLAGSZLIB) $(CFLAGSLIB)\r
383 CFGSET   = TRUE\r
384 !ENDIF\r
385 \r
386 ######################\r
387 # debug-ssl-dll\r
388 \r
389 !IF "$(CFG)" == "debug-ssl-dll"\r
390 TARGET   = $(LIBCURL_STA_LIB_DBG)\r
391 DIROBJ   = $(CFG)\r
392 LFLAGSSSL = /LIBPATH:$(OPENSSL_PATH)\out32dll\r
393 LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET)\r
394 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSLIB)\r
395 CFGSET   = TRUE\r
396 !ENDIF\r
397 \r
398 ######################\r
399 # debug-zlib-dll\r
400 \r
401 !IF "$(CFG)" == "debug-zlib-dll"\r
402 TARGET   = $(LIBCURL_STA_LIB_DBG)\r
403 DIROBJ   = $(CFG)\r
404 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
405 LNK      = $(LNKLIB) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
406 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSZLIB) $(CFLAGSLIB)\r
407 CFGSET   = TRUE\r
408 !ENDIF\r
409 \r
410 ######################\r
411 # debug-ssl-dll-zlib-dll\r
412 \r
413 !IF "$(CFG)" == "debug-ssl-dll-zlib-dll"\r
414 TARGET   = $(LIBCURL_STA_LIB_DBG)\r
415 DIROBJ   = $(CFG)\r
416 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
417 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"\r
418 LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
419 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)\r
420 CFGSET   = TRUE\r
421 !ENDIF\r
422 \r
423 ######################\r
424 # debug-dll\r
425 \r
426 !IF "$(CFG)" == "debug-dll"\r
427 TARGET = $(LIBCURL_DYN_LIB_DBG)\r
428 DIROBJ = $(CFG)\r
429 LNK    = $(LNKDLL) $(WINLIBS) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIBCURL_IMP_LIB_DBG) /PDB:$(DIROBJ)\$(LIBCURL_DYN_LIB_PDB)\r
430 CC     = $(CCDEBUG) $(RTLIBD)\r
431 CFGSET = TRUE\r
432 RESOURCE = $(DIROBJ)\libcurl.res\r
433 !ENDIF\r
434 \r
435 ######################\r
436 # debug-dll-ssl-dll\r
437 \r
438 !IF "$(CFG)" == "debug-dll-ssl-dll"\r
439 TARGET   = $(LIBCURL_DYN_LIB_DBG)\r
440 DIROBJ   = $(CFG)\r
441 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"\r
442 LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIBCURL_IMP_LIB_DBG) /PDB:$(DIROBJ)\$(LIBCURL_DYN_LIB_PDB)\r
443 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL)\r
444 CFGSET   = TRUE\r
445 RESOURCE = $(DIROBJ)\libcurl.res\r
446 !ENDIF\r
447 \r
448 ######################\r
449 # debug-dll-zlib-dll\r
450 \r
451 !IF "$(CFG)" == "debug-dll-zlib-dll"\r
452 TARGET   = $(LIBCURL_DYN_LIB_DBG)\r
453 DIROBJ   = $(CFG)\r
454 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
455 LNK      = $(LNKDLL) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIBCURL_IMP_LIB_DBG) /PDB:$(DIROBJ)\$(LIBCURL_DYN_LIB_PDB)\r
456 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSZLIB)\r
457 CFGSET   = TRUE\r
458 RESOURCE = $(DIROBJ)\libcurl.res\r
459 !ENDIF\r
460 \r
461 ######################\r
462 # debug-dll-ssl-dll-zlib-dll\r
463 \r
464 !IF "$(CFG)" == "debug-dll-ssl-dll-zlib-dll"\r
465 TARGET   = $(LIBCURL_DYN_LIB_DBG)\r
466 DIROBJ   = $(CFG)\r
467 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
468 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"\r
469 LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) $(LFLAGSZLIB) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIBCURL_IMP_LIB_DBG) /PDB:$(DIROBJ)\$(LIBCURL_DYN_LIB_PDB)\r
470 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSZLIB)\r
471 CFGSET   = TRUE\r
472 RESOURCE = $(DIROBJ)\libcurl.res\r
473 !ENDIF\r
474 \r
475 #######################\r
476 # Usage\r
477 #\r
478 !IF "$(CFGSET)" == "FALSE" && "$(CFG)" != ""\r
479 !MESSAGE Usage: nmake /f makefile.vc11 CFG=<config> <target>\r
480 !MESSAGE where <config> is one of:\r
481 !MESSAGE   release                      - release static library\r
482 !MESSAGE   release-ssl                  - release static library with ssl\r
483 !MESSAGE   release-zlib                 - release static library with zlib\r
484 !MESSAGE   release-ssl-zlib             - release static library with ssl and zlib\r
485 !MESSAGE   release-ssl-ssh2-zlib        - release static library with ssl, ssh2 and zlib\r
486 !MESSAGE   release-ssl-dll              - release static library with dynamic ssl\r
487 !MESSAGE   release-zlib-dll             - release static library with dynamic zlib\r
488 !MESSAGE   release-ssl-dll-zlib-dll     - release static library with dynamic ssl and dynamic zlib\r
489 !MESSAGE   release-dll                  - release dynamic library\r
490 !MESSAGE   release-dll-ssl-dll          - release dynamic library with dynamic ssl\r
491 !MESSAGE   release-dll-zlib-dll         - release dynamic library with dynamic zlib\r
492 !MESSAGE   release-dll-ssl-dll-zlib-dll - release dynamic library with dynamic ssl and dynamic zlib\r
493 !MESSAGE   debug                        - debug static library\r
494 !MESSAGE   debug-ssl                    - debug static library with ssl\r
495 !MESSAGE   debug-zlib                   - debug static library with zlib\r
496 !MESSAGE   debug-ssl-zlib               - debug static library with ssl and zlib\r
497 !MESSAGE   debug-ssl-ssh2-zlib          - debug static library with ssl, ssh2 and zlib\r
498 !MESSAGE   debug-ssl-dll                - debug static library with dynamic ssl\r
499 !MESSAGE   debug-zlib-dll               - debug static library with dynamic zlib\r
500 !MESSAGE   debug-ssl-dll-zlib-dll       - debug static library with dynamic ssl and dynamic zlib\r
501 !MESSAGE   debug-dll                    - debug dynamic library\r
502 !MESSAGE   debug-dll-ssl-dll            - debug dynamic library with dynamic ssl\r
503 !MESSAGE   debug-dll-zlib-dll           - debug dynamic library with dynamic zlib1\r
504 !MESSAGE   debug-dll-ssl-dll-zlib-dll   - debug dynamic library with dynamic ssl and dynamic zlib\r
505 !MESSAGE <target> can be left blank in which case all is assumed\r
506 !ERROR please choose a valid configuration "$(CFG)"\r
507 !ENDIF\r
508 \r
509 #######################\r
510 # Only the clean target can be used if a config was not provided.\r
511 #\r
512 !IF "$(CFGSET)" == "FALSE"\r
513 clean:\r
514         @-erase /s *.dll 2> NUL\r
515         @-erase /s *.exp 2> NUL\r
516         @-erase /s *.idb 2> NUL\r
517         @-erase /s *.lib 2> NUL\r
518         @-erase /s *.obj 2> NUL\r
519         @-erase /s *.pch 2> NUL\r
520         @-erase /s *.pdb 2> NUL\r
521         @-erase /s *.res 2> NUL\r
522 !ELSE\r
523 # A config was provided, so the library can be built.\r
524 #\r
525 X_OBJS= \\r
526         $(DIROBJ)\amigaos.obj \\r
527         $(DIROBJ)\asyn-ares.obj \\r
528         $(DIROBJ)\asyn-thread.obj \\r
529         $(DIROBJ)\axtls.obj \\r
530         $(DIROBJ)\base64.obj \\r
531         $(DIROBJ)\conncache.obj \\r
532         $(DIROBJ)\connect.obj \\r
533         $(DIROBJ)\content_encoding.obj \\r
534         $(DIROBJ)\cookie.obj \\r
535         $(DIROBJ)\curl_addrinfo.obj \\r
536         $(DIROBJ)\curl_des.obj \\r
537         $(DIROBJ)\curl_endian.obj \\r
538         $(DIROBJ)\curl_fnmatch.obj \\r
539         $(DIROBJ)\curl_gethostname.obj \\r
540         $(DIROBJ)\curl_gssapi.obj \\r
541         $(DIROBJ)\curl_memrchr.obj \\r
542         $(DIROBJ)\curl_multibyte.obj \\r
543         $(DIROBJ)\curl_ntlm.obj \\r
544         $(DIROBJ)\curl_ntlm_core.obj \\r
545         $(DIROBJ)\curl_ntlm_msgs.obj \\r
546         $(DIROBJ)\curl_ntlm_wb.obj \\r
547         $(DIROBJ)\curl_rtmp.obj \\r
548         $(DIROBJ)\curl_sasl.obj \\r
549         $(DIROBJ)\curl_sasl_gssapi.obj \\r
550         $(DIROBJ)\curl_sasl_sspi.obj \\r
551         $(DIROBJ)\curl_sspi.obj \\r
552         $(DIROBJ)\curl_threads.obj \\r
553         $(DIROBJ)\cyassl.obj \\r
554         $(DIROBJ)\darwinssl.obj \\r
555         $(DIROBJ)\dict.obj \\r
556         $(DIROBJ)\dotdot.obj \\r
557         $(DIROBJ)\easy.obj \\r
558         $(DIROBJ)\escape.obj \\r
559         $(DIROBJ)\file.obj \\r
560         $(DIROBJ)\fileinfo.obj \\r
561         $(DIROBJ)\formdata.obj \\r
562         $(DIROBJ)\ftp.obj \\r
563         $(DIROBJ)\ftplistparser.obj \\r
564         $(DIROBJ)\getenv.obj \\r
565         $(DIROBJ)\getinfo.obj \\r
566         $(DIROBJ)\gopher.obj \\r
567         $(DIROBJ)\gtls.obj \\r
568         $(DIROBJ)\hash.obj \\r
569         $(DIROBJ)\hmac.obj \\r
570         $(DIROBJ)\hostasyn.obj \\r
571         $(DIROBJ)\hostcheck.obj \\r
572         $(DIROBJ)\hostip.obj \\r
573         $(DIROBJ)\hostip4.obj \\r
574         $(DIROBJ)\hostip6.obj \\r
575         $(DIROBJ)\hostsyn.obj \\r
576         $(DIROBJ)\http.obj \\r
577         $(DIROBJ)\http_chunks.obj \\r
578         $(DIROBJ)\http_digest.obj \\r
579         $(DIROBJ)\http_negotiate.obj \\r
580         $(DIROBJ)\http_negotiate_sspi.obj \\r
581         $(DIROBJ)\http_proxy.obj \\r
582         $(DIROBJ)\idn_win32.obj \\r
583         $(DIROBJ)\if2ip.obj \\r
584         $(DIROBJ)\imap.obj \\r
585         $(DIROBJ)\inet_ntop.obj \\r
586         $(DIROBJ)\inet_pton.obj \\r
587         $(DIROBJ)\krb5.obj \\r
588         $(DIROBJ)\ldap.obj \\r
589         $(DIROBJ)\llist.obj \\r
590         $(DIROBJ)\md4.obj \\r
591         $(DIROBJ)\md5.obj \\r
592         $(DIROBJ)\memdebug.obj \\r
593         $(DIROBJ)\mprintf.obj \\r
594         $(DIROBJ)\multi.obj \\r
595         $(DIROBJ)\netrc.obj \\r
596         $(DIROBJ)\non-ascii.obj \\r
597         $(DIROBJ)\nonblock.obj \\r
598         $(DIROBJ)\nss.obj \\r
599         $(DIROBJ)\openldap.obj \\r
600         $(DIROBJ)\parsedate.obj \\r
601         $(DIROBJ)\pingpong.obj \\r
602         $(DIROBJ)\pipeline.obj \\r
603         $(DIROBJ)\polarssl.obj \\r
604         $(DIROBJ)\polarssl_threadlock.obj \\r
605         $(DIROBJ)\pop3.obj \\r
606         $(DIROBJ)\progress.obj \\r
607         $(DIROBJ)\rawstr.obj \\r
608         $(DIROBJ)\rtsp.obj \\r
609         $(DIROBJ)\schannel.obj \\r
610         $(DIROBJ)\security.obj \\r
611         $(DIROBJ)\select.obj \\r
612         $(DIROBJ)\sendf.obj \\r
613         $(DIROBJ)\share.obj \\r
614         $(DIROBJ)\slist.obj \\r
615         $(DIROBJ)\smb.obj \\r
616         $(DIROBJ)\smtp.obj \\r
617         $(DIROBJ)\socks.obj \\r
618         $(DIROBJ)\socks_gssapi.obj \\r
619         $(DIROBJ)\socks_sspi.obj \\r
620         $(DIROBJ)\speedcheck.obj \\r
621         $(DIROBJ)\splay.obj \\r
622         $(DIROBJ)\ssh.obj \\r
623         $(DIROBJ)\vtls.obj \\r
624         $(DIROBJ)\openssl.obj \\r
625         $(DIROBJ)\strdup.obj \\r
626         $(DIROBJ)\strequal.obj \\r
627         $(DIROBJ)\strerror.obj \\r
628         $(DIROBJ)\strtok.obj \\r
629         $(DIROBJ)\strtoofft.obj \\r
630         $(DIROBJ)\telnet.obj \\r
631         $(DIROBJ)\tftp.obj \\r
632         $(DIROBJ)\timeval.obj \\r
633         $(DIROBJ)\transfer.obj \\r
634         $(DIROBJ)\url.obj \\r
635         $(DIROBJ)\version.obj \\r
636         $(DIROBJ)\warnless.obj \\r
637         $(DIROBJ)\wildcard.obj \\r
638         $(RESOURCE)\r
639 \r
640 all : $(TARGET)\r
641 \r
642 $(TARGET): $(X_OBJS)\r
643         $(LNK) $(LFLAGS) $(X_OBJS)\r
644         -xcopy $(DIROBJ)\$(LIBCURL_STA_LIB_REL) . /y\r
645         -xcopy $(DIROBJ)\$(LIBCURL_STA_LIB_DBG) . /y\r
646         -xcopy $(DIROBJ)\$(LIBCURL_DYN_LIB_REL) . /y\r
647         -xcopy $(DIROBJ)\$(LIBCURL_DYN_LIB_DBG) . /y\r
648         -xcopy $(DIROBJ)\$(LIBCURL_IMP_LIB_REL) . /y\r
649         -xcopy $(DIROBJ)\$(LIBCURL_IMP_LIB_DBG) . /y\r
650         -xcopy $(DIROBJ)\*.exp                  . /y\r
651         -xcopy $(DIROBJ)\*.pdb                  . /y\r
652 \r
653 $(X_OBJS): $(DIROBJ)\r
654 \r
655 $(DIROBJ):\r
656         @if not exist "$(DIROBJ)" mkdir $(DIROBJ)\r
657 \r
658 .SUFFIXES: .c .obj .res\r
659 \r
660 {.\}.c{$(DIROBJ)\}.obj:\r
661         $(CC) $(CFLAGS) /Fo"$@"  $<\r
662 \r
663 {.\vtls\}.c{$(DIROBJ)\}.obj:\r
664         $(CC) $(CFLAGS) /Fo"$@"  $<\r
665 \r
666 debug-dll\libcurl.res \\r
667 debug-dll-ssl-dll\libcurl.res \\r
668 debug-dll-zlib-dll\libcurl.res \\r
669 debug-dll-ssl-dll-zlib-dll\libcurl.res: libcurl.rc\r
670         rc /dDEBUGBUILD=1 /Fo $@ libcurl.rc\r
671 \r
672 release-dll\libcurl.res \\r
673 release-dll-ssl-dll\libcurl.res \\r
674 release-dll-zlib-dll\libcurl.res \\r
675 release-dll-ssl-dll-zlib-dll\libcurl.res: libcurl.rc\r
676         rc /dDEBUGBUILD=0 /Fo $@ libcurl.rc\r
677 !ENDIF  # End of case where a config was provided.\r