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