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