Git init
[external/curl.git] / lib / Makefile.vc10
1 #***************************************************************************\r
2 #                                  _   _ ____  _\r
3 #  Project                     ___| | | |  _ \| |\r
4 #                             / __| | | | |_) | |\r
5 #                            | (__| |_| |  _ <| |___\r
6 #                             \___|\___/|_| \_\_____|\r
7 #\r
8 # Copyright (C) 1999 - 2010, 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 http://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 # Makefile for building libcurl with MSVC10\r
24 #\r
25 # Usage: see usage message below\r
26 #        Should be invoked from \lib directory\r
27 #        Edit the paths and desired library name\r
28 #        SSL path is only required if you intend compiling\r
29 #        with SSL.\r
30 #\r
31 # This make file leaves the result either a .lib or .dll file\r
32 # in the \lib directory. It should be called from the \lib\r
33 # directory.\r
34 #\r
35 # An option would have been to allow the source directory to\r
36 # be specified, but I saw no requirement.\r
37 #\r
38 # Another option would have been to leave the .lib and .dll\r
39 # files in the "cfg" directory, but then the make file\r
40 # in \src would need to be changed.\r
41 #\r
42 ##############################################################\r
43 \r
44 #\r
45 # Stem for static libs and DLLs\r
46 #\r
47 LIB_NAME       = libcurl\r
48 LIB_NAME_DEBUG = libcurld\r
49 \r
50 #\r
51 # Stem for DLL import libs\r
52 #\r
53 IMPLIB_NAME       = libcurl_imp\r
54 IMPLIB_NAME_DEBUG = libcurld_imp\r
55 \r
56 !IFNDEF OPENSSL_PATH\r
57 OPENSSL_PATH   = ../../openssl-0.9.8o\r
58 !ENDIF\r
59 \r
60 !IFNDEF ZLIB_PATH\r
61 ZLIB_PATH  = ../../zlib-1.2.5\r
62 !ENDIF\r
63 \r
64 !IFNDEF MACHINE\r
65 MACHINE  = X86\r
66 !ENDIF\r
67 \r
68 # USE_WINDOWS_SSPI uses windows libraries to allow NTLM authentication\r
69 # without an openssl installation and offers the ability to authenticate\r
70 # using the "current logged in user". Since at least with MSVC10 the sspi.h\r
71 # header is broken it is either required to install the Windows SDK,\r
72 # or to fix sspi.h with adding this define at the beginning of sspi.h:\r
73 # #define FreeCredentialHandle FreeCredentialsHandle\r
74 #\r
75 # If, for some reason the Windows SDK is installed but not installed\r
76 # in the default location, you can specify WINDOWS_SDK_PATH.\r
77 # It can be downloaded from:\r
78 # http://www.microsoft.com/msdownload/platformsdk/sdkupdate/\r
79 \r
80 # WINDOWS_SSPI = 1\r
81 \r
82 !IFDEF WINDOWS_SSPI\r
83 !IFNDEF WINDOWS_SDK_PATH\r
84 WINDOWS_SDK_PATH = "C:\Program Files\Microsoft SDK"\r
85 !ENDIF\r
86 !ENDIF\r
87 \r
88 #############################################################\r
89 ## Nothing more to do below this line!\r
90 \r
91 CCNODBG    = cl.exe /O2 /DNDEBUG\r
92 CCDEBUG    = cl.exe /Od /Gm /Zi /D_DEBUG /RTC1\r
93 CFLAGSSSL  = /DUSE_SSLEAY /I "$(OPENSSL_PATH)/inc32" /I "$(OPENSSL_PATH)/inc32/openssl"\r
94 CFLAGSZLIB = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ /I "$(ZLIB_PATH)"\r
95 CFLAGS     = /I. /I../include /nologo /W3 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL\r
96 CFLAGSLIB  = /DCURL_STATICLIB\r
97 LNKDLL     = link.exe /DLL\r
98 LNKLIB     = link.exe /lib\r
99 LFLAGS     = /nologo /machine:$(MACHINE)\r
100 SSLLIBS    = libeay32.lib ssleay32.lib\r
101 ZLIBLIBSDLL= zdll.lib\r
102 ZLIBLIBS   = zlib.lib\r
103 WINLIBS    = ws2_32.lib wldap32.lib\r
104 CFLAGS     = $(CFLAGS)\r
105 \r
106 CFGSET     = FALSE\r
107 \r
108 !IFDEF WINDOWS_SSPI\r
109 CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include\r
110 !ENDIF\r
111 \r
112 !IFDEF USE_IPV6\r
113 CFLAGS = $(CFLAGS) /DUSE_IPV6\r
114 !ENDIF\r
115 \r
116 ##############################################################\r
117 # Runtime library configuration\r
118 \r
119 RTLIB   = /MD\r
120 RTLIBD  = /MDd\r
121 \r
122 !IF "$(RTLIBCFG)" == "static"\r
123 RTLIB  = /MT\r
124 RTLIBD = /MTd\r
125 !ENDIF\r
126 \r
127 \r
128 ######################\r
129 # release\r
130 \r
131 !IF "$(CFG)" == "release"\r
132 TARGET = $(LIB_NAME).lib\r
133 DIROBJ = $(CFG)\r
134 LNK    = $(LNKLIB) /out:$(DIROBJ)\$(TARGET)\r
135 CC     = $(CCNODBG) $(RTLIB) $(CFLAGSLIB)\r
136 CFGSET = TRUE\r
137 !ENDIF\r
138 \r
139 ######################\r
140 # release-zlib\r
141 \r
142 !IF "$(CFG)" == "release-zlib"\r
143 TARGET   = $(LIB_NAME).lib\r
144 DIROBJ   = $(CFG)\r
145 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
146 LNK      = $(LNKLIB) $(ZLIBLIBS) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
147 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSZLIB) $(CFLAGSLIB)\r
148 CFGSET   = TRUE\r
149 !ENDIF\r
150 \r
151 ######################\r
152 # release-dll\r
153 \r
154 !IF "$(CFG)" == "release-dll"\r
155 TARGET = $(LIB_NAME).dll\r
156 DIROBJ = $(CFG)\r
157 LNK    = $(LNKDLL) $(WINLIBS) /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME).lib\r
158 CC     = $(CCNODBG) $(RTLIB)\r
159 CFGSET = TRUE\r
160 RESOURCE = $(DIROBJ)\libcurl.res\r
161 !ENDIF\r
162 \r
163 ######################\r
164 # release-ssl\r
165 \r
166 !IF "$(CFG)" == "release-ssl"\r
167 TARGET   = $(LIB_NAME).lib\r
168 DIROBJ   = $(CFG)\r
169 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"\r
170 LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET)\r
171 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSLIB)\r
172 CFGSET   = TRUE\r
173 !ENDIF\r
174 \r
175 ######################\r
176 # release-ssl-dll\r
177 \r
178 !IF "$(CFG)" == "release-ssl-dll"\r
179 TARGET   = $(LIB_NAME).lib\r
180 DIROBJ   = $(CFG)\r
181 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"\r
182 LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET)\r
183 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSLIB)\r
184 CFGSET   = TRUE\r
185 !ENDIF\r
186 \r
187 ######################\r
188 # release-ssl-zlib\r
189 \r
190 !IF "$(CFG)" == "release-ssl-zlib"\r
191 TARGET   = $(LIB_NAME).lib\r
192 DIROBJ   = $(CFG)\r
193 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"\r
194 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
195 LNK      = $(LNKLIB) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
196 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)\r
197 CFGSET   = TRUE\r
198 !ENDIF\r
199 \r
200 ######################\r
201 # release-dll-ssl-dll\r
202 \r
203 !IF "$(CFG)" == "release-dll-ssl-dll"\r
204 TARGET   = $(LIB_NAME).dll\r
205 DIROBJ   = $(CFG)\r
206 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"\r
207 LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME).lib\r
208 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL)\r
209 CFGSET   = TRUE\r
210 RESOURCE = $(DIROBJ)\libcurl.res\r
211 !ENDIF\r
212 \r
213 ######################\r
214 # release-zlib-dll\r
215 \r
216 !IF "$(CFG)" == "release-zlib-dll"\r
217 TARGET   = $(LIB_NAME).lib\r
218 DIROBJ   = $(CFG)\r
219 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
220 LNK      = $(LNKLIB) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
221 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSZLIB) $(CFLAGSLIB)\r
222 CFGSET   = TRUE\r
223 !ENDIF\r
224 \r
225 ######################\r
226 # release-ssl-dll-zlib-dll\r
227 \r
228 !IF "$(CFG)" == "release-ssl-dll-zlib-dll"\r
229 TARGET   = $(LIB_NAME).lib\r
230 DIROBJ   = $(CFG)\r
231 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
232 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"\r
233 LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
234 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)\r
235 CFGSET   = TRUE\r
236 !ENDIF\r
237 \r
238 ######################\r
239 # release-dll-zlib-dll\r
240 \r
241 !IF "$(CFG)" == "release-dll-zlib-dll"\r
242 TARGET   = $(LIB_NAME).dll\r
243 DIROBJ   = $(CFG)\r
244 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
245 LNK      = $(LNKDLL) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME).lib\r
246 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSZLIB)\r
247 CFGSET   = TRUE\r
248 RESOURCE = $(DIROBJ)\libcurl.res\r
249 !ENDIF\r
250 \r
251 ######################\r
252 # release-dll-ssl-dll-zlib-dll\r
253 \r
254 !IF "$(CFG)" == "release-dll-ssl-dll-zlib-dll"\r
255 TARGET   = $(LIB_NAME).dll\r
256 DIROBJ   = $(CFG)\r
257 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
258 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"\r
259 LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME).lib\r
260 CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSZLIB)\r
261 CFGSET   = TRUE\r
262 RESOURCE = $(DIROBJ)\libcurl.res\r
263 !ENDIF\r
264 \r
265 ######################\r
266 # debug\r
267 \r
268 !IF "$(CFG)" == "debug"\r
269 TARGET = $(LIB_NAME_DEBUG).lib\r
270 DIROBJ = $(CFG)\r
271 LNK    = $(LNKLIB) /out:$(DIROBJ)\$(TARGET)\r
272 CC     = $(CCDEBUG) $(RTLIBD) $(CFLAGSLIB)\r
273 CFGSET = TRUE\r
274 !ENDIF\r
275 \r
276 ######################\r
277 # debug-ssl\r
278 \r
279 !IF "$(CFG)" == "debug-ssl"\r
280 TARGET   = $(LIB_NAME_DEBUG).lib\r
281 DIROBJ   = $(CFG)\r
282 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"\r
283 LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET)\r
284 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSLIB)\r
285 CFGSET   = TRUE\r
286 !ENDIF\r
287 \r
288 ######################\r
289 # debug-zlib\r
290 \r
291 !IF "$(CFG)" == "debug-zlib"\r
292 TARGET   = $(LIB_NAME_DEBUG).lib\r
293 DIROBJ   = $(CFG)\r
294 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
295 LNK      = $(LNKLIB) $(ZLIBLIBS) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
296 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSZLIB) $(CFLAGSLIB)\r
297 CFGSET   = TRUE\r
298 !ENDIF\r
299 \r
300 ######################\r
301 # debug-ssl-dll\r
302 \r
303 !IF "$(CFG)" == "debug-ssl-dll"\r
304 TARGET   = $(LIB_NAME_DEBUG).lib\r
305 DIROBJ   = $(CFG)\r
306 LFLAGSSSL = /LIBPATH:$(OPENSSL_PATH)\out32dll\r
307 LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET)\r
308 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSLIB)\r
309 CFGSET   = TRUE\r
310 !ENDIF\r
311 \r
312 ######################\r
313 # debug-ssl-zlib\r
314 \r
315 !IF "$(CFG)" == "debug-ssl-zlib"\r
316 TARGET   = $(LIB_NAME_DEBUG).lib\r
317 DIROBJ   = $(CFG)\r
318 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
319 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"\r
320 LNK      = $(LNKLIB) $(ZLIBLIBS) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
321 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)\r
322 CFGSET   = TRUE\r
323 !ENDIF\r
324 \r
325 ######################\r
326 # debug-zlib-dll\r
327 \r
328 !IF "$(CFG)" == "debug-zlib-dll"\r
329 TARGET   = $(LIB_NAME_DEBUG).lib\r
330 DIROBJ   = $(CFG)\r
331 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
332 LNK      = $(LNKLIB) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
333 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSZLIB) $(CFLAGSLIB)\r
334 CFGSET   = TRUE\r
335 !ENDIF\r
336 \r
337 ######################\r
338 # debug-ssl-dll-zlib-dll\r
339 \r
340 !IF "$(CFG)" == "debug-ssl-dll-zlib-dll"\r
341 TARGET   = $(LIB_NAME_DEBUG).lib\r
342 DIROBJ   = $(CFG)\r
343 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
344 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"\r
345 LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)\r
346 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)\r
347 CFGSET   = TRUE\r
348 !ENDIF\r
349 \r
350 ######################\r
351 # debug-dll\r
352 \r
353 !IF "$(CFG)" == "debug-dll"\r
354 TARGET = $(LIB_NAME_DEBUG).dll\r
355 DIROBJ = $(CFG)\r
356 LNK    = $(LNKDLL) $(WINLIBS) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).lib /PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb\r
357 CC     = $(CCDEBUG) $(RTLIBD) \r
358 CFGSET = TRUE\r
359 RESOURCE = $(DIROBJ)\libcurl.res\r
360 !ENDIF\r
361 \r
362 ######################\r
363 # debug-dll-ssl-dll\r
364 \r
365 !IF "$(CFG)" == "debug-dll-ssl-dll"\r
366 TARGET   = $(LIB_NAME_DEBUG).dll\r
367 DIROBJ   = $(CFG)\r
368 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"\r
369 LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).lib /PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb\r
370 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL)\r
371 CFGSET   = TRUE\r
372 RESOURCE = $(DIROBJ)\libcurl.res\r
373 !ENDIF\r
374 \r
375 ######################\r
376 # debug-dll-zlib-dll\r
377 \r
378 !IF "$(CFG)" == "debug-dll-zlib-dll"\r
379 TARGET   = $(LIB_NAME_DEBUG).dll\r
380 DIROBJ   = $(CFG)\r
381 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
382 LNK      = $(LNKDLL) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).lib /PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb\r
383 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSZLIB)\r
384 CFGSET   = TRUE\r
385 RESOURCE = $(DIROBJ)\libcurl.res\r
386 !ENDIF\r
387 \r
388 ######################\r
389 # debug-dll-ssl-dll-zlib-dll\r
390 \r
391 !IF "$(CFG)" == "debug-dll-ssl-dll-zlib-dll"\r
392 TARGET   = $(LIB_NAME_DEBUG).dll\r
393 DIROBJ   = $(CFG)\r
394 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
395 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"\r
396 LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) $(LFLAGSZLIB) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).lib /PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb\r
397 CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSZLIB)\r
398 CFGSET   = TRUE\r
399 RESOURCE = $(DIROBJ)\libcurl.res\r
400 !ENDIF\r
401 \r
402 #######################\r
403 # Usage\r
404 #\r
405 !IF "$(CFGSET)" == "FALSE" && "$(CFG)" != ""\r
406 !MESSAGE Usage: nmake /f makefile.vc10 CFG=<config> <target>\r
407 !MESSAGE where <config> is one of:\r
408 !MESSAGE   release                      - release static library\r
409 !MESSAGE   release-ssl                  - release static library with ssl\r
410 !MESSAGE   release-zlib                 - release static library with zlib\r
411 !MESSAGE   release-ssl-zlib             - release static library with ssl and zlib\r
412 !MESSAGE   release-ssl-dll              - release static library with dynamic ssl\r
413 !MESSAGE   release-zlib-dll             - release static library with dynamic zlib\r
414 !MESSAGE   release-ssl-dll-zlib-dll     - release static library with dynamic ssl and dynamic zlib\r
415 !MESSAGE   release-dll                  - release dynamic library\r
416 !MESSAGE   release-dll-ssl-dll          - release dynamic library with dynamic ssl\r
417 !MESSAGE   release-dll-zlib-dll         - release dynamic library with dynamic zlib\r
418 !MESSAGE   release-dll-ssl-dll-zlib-dll - release dynamic library with dynamic ssl and dynamic zlib\r
419 !MESSAGE   debug                        - debug static library\r
420 !MESSAGE   debug-ssl                    - debug static library with ssl\r
421 !MESSAGE   debug-zlib                   - debug static library with zlib\r
422 !MESSAGE   debug-ssl-zlib               - debug static library with ssl and zlib\r
423 !MESSAGE   debug-ssl-dll                - debug static library with dynamic ssl\r
424 !MESSAGE   debug-zlib-dll               - debug static library with dynamic zlib\r
425 !MESSAGE   debug-ssl-dll-zlib-dll       - debug static library with dynamic ssl and dynamic zlib\r
426 !MESSAGE   debug-dll                    - debug dynamic library\r
427 !MESSAGE   debug-dll-ssl-dll            - debug dynamic library with dynamic ssl\r
428 !MESSAGE   debug-dll-zlib-dll           - debug dynamic library with dynamic zlib1\r
429 !MESSAGE   debug-dll-ssl-dll-zlib-dll   - debug dynamic library with dynamic ssl and dynamic zlib\r
430 !MESSAGE <target> can be left blank in which case all is assumed\r
431 !ERROR please choose a valid configuration "$(CFG)"\r
432 !ENDIF\r
433 \r
434 #######################\r
435 # Only the clean target can be used if a config was not provided.\r
436 #\r
437 !IF "$(CFGSET)" == "FALSE"\r
438 clean:\r
439         @-erase /s *.dll 2> NUL\r
440         @-erase /s *.exp 2> NUL\r
441         @-erase /s *.idb 2> NUL\r
442         @-erase /s *.lib 2> NUL\r
443         @-erase /s *.obj 2> NUL\r
444         @-erase /s *.pch 2> NUL\r
445         @-erase /s *.pdb 2> NUL\r
446         @-erase /s *.res 2> NUL\r
447 !ELSE\r
448 # A config was provided, so the library can be built.\r
449 #\r
450 X_OBJS= \\r
451         $(DIROBJ)\base64.obj \\r
452         $(DIROBJ)\connect.obj \\r
453         $(DIROBJ)\content_encoding.obj \\r
454         $(DIROBJ)\cookie.obj \\r
455         $(DIROBJ)\curl_addrinfo.obj \\r
456         $(DIROBJ)\curl_fnmatch.obj \\r
457         $(DIROBJ)\curl_gethostname.obj \\r
458         $(DIROBJ)\curl_memrchr.obj \\r
459         $(DIROBJ)\curl_rand.obj \\r
460         $(DIROBJ)\curl_rtmp.obj \\r
461         $(DIROBJ)\curl_sspi.obj \\r
462         $(DIROBJ)\curl_threads.obj \\r
463         $(DIROBJ)\dict.obj \\r
464         $(DIROBJ)\easy.obj \\r
465         $(DIROBJ)\escape.obj \\r
466         $(DIROBJ)\fileinfo.obj \\r
467         $(DIROBJ)\file.obj \\r
468         $(DIROBJ)\formdata.obj \\r
469         $(DIROBJ)\ftplistparser.obj \\r
470         $(DIROBJ)\ftp.obj \\r
471         $(DIROBJ)\getenv.obj \\r
472         $(DIROBJ)\getinfo.obj \\r
473         $(DIROBJ)\gtls.obj \\r
474         $(DIROBJ)\gopher.obj \\r
475         $(DIROBJ)\hash.obj \\r
476         $(DIROBJ)\hmac.obj \\r
477         $(DIROBJ)\hostares.obj \\r
478         $(DIROBJ)\hostasyn.obj \\r
479         $(DIROBJ)\hostip4.obj \\r
480         $(DIROBJ)\hostip6.obj \\r
481         $(DIROBJ)\hostip.obj \\r
482         $(DIROBJ)\hostsyn.obj \\r
483         $(DIROBJ)\hostthre.obj \\r
484         $(DIROBJ)\http_chunks.obj \\r
485         $(DIROBJ)\http_digest.obj \\r
486         $(DIROBJ)\http_negotiate.obj \\r
487         $(DIROBJ)\http_ntlm.obj \\r
488         $(DIROBJ)\http.obj \\r
489         $(DIROBJ)\if2ip.obj \\r
490         $(DIROBJ)\imap.obj \\r
491         $(DIROBJ)\inet_ntop.obj \\r
492         $(DIROBJ)\inet_pton.obj \\r
493         $(DIROBJ)\ldap.obj \\r
494         $(DIROBJ)\llist.obj \\r
495         $(DIROBJ)\md4.obj \\r
496         $(DIROBJ)\md5.obj \\r
497         $(DIROBJ)\memdebug.obj \\r
498         $(DIROBJ)\mprintf.obj \\r
499         $(DIROBJ)\multi.obj \\r
500         $(DIROBJ)\netrc.obj \\r
501         $(DIROBJ)\nonblock.obj \\r
502         $(DIROBJ)\openldap.obj \\r
503         $(DIROBJ)\parsedate.obj \\r
504         $(DIROBJ)\pingpong.obj \\r
505         $(DIROBJ)\polarssl.obj \\r
506         $(DIROBJ)\pop3.obj \\r
507         $(DIROBJ)\progress.obj \\r
508         $(DIROBJ)\rawstr.obj \\r
509         $(DIROBJ)\rtsp.obj \\r
510         $(DIROBJ)\select.obj \\r
511         $(DIROBJ)\sendf.obj \\r
512         $(DIROBJ)\share.obj \\r
513         $(DIROBJ)\slist.obj \\r
514         $(DIROBJ)\smtp.obj \\r
515         $(DIROBJ)\socks_gssapi.obj \\r
516         $(DIROBJ)\socks.obj \\r
517         $(DIROBJ)\socks_sspi.obj \\r
518         $(DIROBJ)\speedcheck.obj \\r
519         $(DIROBJ)\splay.obj \\r
520         $(DIROBJ)\ssh.obj \\r
521         $(DIROBJ)\sslgen.obj \\r
522         $(DIROBJ)\ssluse.obj \\r
523         $(DIROBJ)\strequal.obj \\r
524         $(DIROBJ)\strerror.obj \\r
525         $(DIROBJ)\strtok.obj \\r
526         $(DIROBJ)\strtoofft.obj \\r
527         $(DIROBJ)\telnet.obj \\r
528         $(DIROBJ)\tftp.obj \\r
529         $(DIROBJ)\timeval.obj \\r
530         $(DIROBJ)\transfer.obj \\r
531         $(DIROBJ)\url.obj \\r
532         $(DIROBJ)\version.obj \\r
533         $(DIROBJ)\warnless.obj \\r
534         $(DIROBJ)\wildcard.obj \\r
535         $(RESOURCE)\r
536 \r
537 all : $(TARGET)\r
538 \r
539 $(TARGET): $(X_OBJS)\r
540         $(LNK) $(LFLAGS) $(X_OBJS)\r
541         -xcopy $(DIROBJ)\$(LIB_NAME).dll       . /y\r
542         -xcopy $(DIROBJ)\$(LIB_NAME).lib       . /y\r
543         -xcopy $(DIROBJ)\$(LIB_NAME_DEBUG).dll . /y\r
544         -xcopy $(DIROBJ)\$(LIB_NAME_DEBUG).lib . /y\r
545         -xcopy $(DIROBJ)\$(IMPLIB_NAME).lib    . /y\r
546         -xcopy $(DIROBJ)\$(IMPLIB_NAME_DEBUG).lib . /y\r
547         -xcopy $(DIROBJ)\*.exp                 . /y\r
548         -xcopy $(DIROBJ)\*.pdb                 . /y\r
549 \r
550 $(X_OBJS): $(DIROBJ)\r
551 \r
552 $(DIROBJ):\r
553         @if not exist "$(DIROBJ)" mkdir $(DIROBJ)\r
554 \r
555 .SUFFIXES: .c .obj .res\r
556 \r
557 {.\}.c{$(DIROBJ)\}.obj:\r
558         $(CC) $(CFLAGS) /Fo"$@"  $<\r
559 \r
560 debug-dll\libcurl.res \\r
561 debug-dll-ssl-dll\libcurl.res \\r
562 debug-dll-zlib-dll\libcurl.res \\r
563 debug-dll-ssl-dll-zlib-dll\libcurl.res: libcurl.rc\r
564         rc /dDEBUGBUILD=1 /Fo $@ libcurl.rc\r
565 \r
566 release-dll\libcurl.res \\r
567 release-dll-ssl-dll\libcurl.res \\r
568 release-dll-zlib-dll\libcurl.res \\r
569 release-dll-ssl-dll-zlib-dll\libcurl.res: libcurl.rc\r
570         rc /dDEBUGBUILD=0 /Fo $@ libcurl.rc\r
571 !ENDIF  # End of case where a config was provided.\r