1 #############################################################
\r
2 # $Id: Makefile.vc6,v 1.19 2004/11/14 13:48:15 giva Exp $
\r
4 ## Makefile for building curl.exe with MSVC6
\r
5 ## Use: nmake -f makefile.vc6 [release | debug] [CFG=release-ssl]
\r
6 ## (default is release)
\r
7 ## "nmake -f makefile.vc6 CFG=release-ssl" statically links OpenSSL
\r
8 ## into curl.exe producing a standalone SSL-enabled executable.
\r
10 ## Comments to: Troy Engel <tengel@sonic.net>
\r
11 ## Updated by: Craig Davison <cd@securityfocus.com>
\r
12 ## release-ssl added by Miklos Nemeth <mnemeth@kfkisystems.com>
\r
14 #############################################################
\r
16 PROGRAM_NAME = curl.exe
\r
19 ZLIB_PATH = ../../zlib-1.2.3
\r
22 !IFNDEF OPENSSL_PATH
\r
23 OPENSSL_PATH = ../../openssl-0.9.8g
\r
30 # USE_WINDOWS_SSPI uses windows libraries to allow NTLM authentication
\r
31 # without an openssl installation and offers the ability to authenticate
\r
32 # using the "current logged in user". Since at least with MSVC6 the sspi.h
\r
33 # header is broken it is either required to install the Windows SDK,
\r
34 # or to fix sspi.h with adding this define at the beginning of sspi.h:
\r
35 # #define FreeCredentialHandle FreeCredentialsHandle
\r
37 # If, for some reason the Windows SDK is installed but not installed
\r
38 # in the default location, you can specify WINDOWS_SDK_PATH.
\r
39 # It can be downloaded from:
\r
40 # http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
\r
45 !IFNDEF WINDOWS_SDK_PATH
\r
46 WINDOWS_SDK_PATH = "C:\Program Files\Microsoft SDK"
\r
50 ########################################################
\r
51 ## Nothing more to do below this line!
\r
52 ZLIB_CFLAGS = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ /I "$(ZLIB_PATH)"
\r
53 ZLIB_LFLAGS = "/LIBPATH:$(ZLIB_PATH)"
\r
54 ZLIB_LIBS = zlib.lib
\r
55 ZLIB_IMP_LIBS = zdll.lib
\r
57 SSL_CFLAGS = /DUSE_SSLEAY
\r
58 SSL_LFLAGS = /LIBPATH:"$(OPENSSL_PATH)/out32"
\r
59 SSL_IMP_LFLAGS = /LIBPATH:"$(OPENSSL_PATH)/out32dll"
\r
60 SSL_LIBS = libeay32.lib ssleay32.lib gdi32.lib user32.lib advapi32.lib
\r
62 # Runtime library configuration
\r
66 !IF "$(RTLIBCFG)" == "static"
\r
72 CCR = cl.exe $(RTLIB) /O2 /DNDEBUG
\r
73 LINKR = link.exe /incremental:no /libpath:"../lib"
\r
74 RCR = rc.exe /dDEBUGBUILD=0
\r
77 CCD = cl.exe $(RTLIBD) /Gm /ZI /Od /D_DEBUG /GZ
\r
78 LINKD = link.exe /incremental:yes /debug /libpath:"../lib"
\r
79 RCD = rc.exe /dDEBUGBUILD=1
\r
81 CFLAGS = /I../lib /I../include /nologo /W3 /GX /DWIN32 /YX /FD /c
\r
82 LFLAGS = /nologo /out:$(PROGRAM_NAME) /subsystem:console /machine:$(MACHINE)
\r
83 RESFLAGS = /i../include
\r
85 # This manifest thing is for VC8, enabled by the maketgz script that
\r
86 # builds the VC8 version of this makefile. Left commented out in the VC6
\r
88 #MANIFESTTOOL = mt -manifest $(PROGRAM_NAME).manifest -outputresource:$(PROGRAM_NAME);1
\r
91 CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include
\r
122 #################################################
\r
123 # If CFG not specified, use static libs
\r
125 CFLAGS = $(CFLAGS) /DCURL_STATICLIB
\r
126 LINKLIBS = libcurl.lib
\r
127 LINKLIBS_DEBUG = libcurld.lib
\r
129 #################################################
\r
130 # release dynamic library
\r
132 !IF "$(CFG)" == "release-dll"
\r
133 LINKLIBS = libcurl_imp.lib
\r
134 LINKLIBS_DEBUG = libcurld_imp.lib
\r
137 #################################################
\r
138 # release static library with zlib
\r
140 !IF "$(CFG)" == "release-zlib"
\r
141 CFLAGS = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
\r
142 LINKLIBS = libcurl.lib $(ZLIB_LIBS)
\r
143 LINKLIBS_DEBUG = libcurld.lib $(ZLIB_LIBS)
\r
144 LFLAGS = $(LFLAGS) $(ZLIB_LFLAGS)
\r
147 #################################################
\r
148 # release static library with ssl
\r
150 !IF "$(CFG)" == "release-ssl"
\r
151 CFLAGS = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB
\r
152 LINKLIBS = libcurl.lib $(SSL_LIBS)
\r
153 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS)
\r
154 LFLAGS = $(LFLAGS) $(SSL_LFLAGS)
\r
157 #################################################
\r
158 # release dynamic library with dynamic ssl
\r
160 !IF "$(CFG)" == "release-dll-ssl-dll"
\r
161 CFLAGS = $(CFLAGS) $(SSL_CFLAGS)
\r
162 LINKLIBS = libcurl_imp.lib $(SSL_LIBS)
\r
163 LINKLIBS_DEBUG = libcurld_imp.lib $(SSL_LIBS)
\r
164 LFLAGS = $(LFLAGS) $(SSL_IMP_LFLAGS)
\r
167 #################################################
\r
168 # release static library with ssl and zlib
\r
170 !IF "$(CFG)" == "release-ssl-zlib"
\r
171 CFLAGS = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
\r
172 LINKLIBS = libcurl.lib $(SSL_LIBS) $(ZLIB_LIBS)
\r
173 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS) $(ZLIB_LIBS)
\r
174 LFLAGS = $(LFLAGS) $(SSL_LFLAGS) $(ZLIB_LFLAGS)
\r
177 #################################################
\r
178 # release static library with dynamic ssl
\r
180 !IF "$(CFG)" == "release-ssl-dll"
\r
181 CFLAGS = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB
\r
182 LINKLIBS = libcurl.lib $(SSL_LIBS)
\r
183 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS)
\r
184 LFLAGS = $(LFLAGS) $(SSL_IMP_LFLAGS)
\r
187 #################################################
\r
188 # release static library with dynamic zlib
\r
190 !IF "$(CFG)" == "release-zlib-dll"
\r
191 CFLAGS = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
\r
192 LINKLIBS = libcurl.lib $(ZLIB_IMP_LIBS)
\r
193 LINKLIBS_DEBUG = libcurld.lib $(ZLIB_IMP_LIBS)
\r
194 LFLAGS = $(LFLAGS) $(ZLIB_LFLAGS)
\r
197 #################################################
\r
198 # release dynamic library with dynamic zlib
\r
200 !IF "$(CFG)" == "release-dll-zlib-dll"
\r
201 CFLAGS = $(CFLAGS) $(ZLIB_CFLAGS)
\r
202 LINKLIBS = libcurl_imp.lib $(ZLIB_IMP_LIBS)
\r
203 LINKLIBS_DEBUG = libcurld_imp.lib $(ZLIB_IMP_LIBS)
\r
204 LFLAGS = $(LFLAGS) $(ZLIB_LFLAGS)
\r
207 #################################################
\r
208 # release static library with dynamic ssl and dynamic zlib
\r
210 !IF "$(CFG)" == "release-ssl-dll-zlib-dll"
\r
211 CFLAGS = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
\r
212 LINKLIBS = libcurl.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)
\r
213 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)
\r
214 LFLAGS = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)
\r
217 #################################################
\r
218 # release dynamic library with dynamic ssl and dynamic zlib
\r
220 !IF "$(CFG)" == "release-dll-ssl-dll-zlib-dll"
\r
221 CFLAGS = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS)
\r
222 LINKLIBS = libcurl_imp.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)
\r
223 LINKLIBS_DEBUG = libcurld_imp.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)
\r
224 LFLAGS = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)
\r
228 LINKLIBS = $(LINKLIBS) wsock32.lib wldap32.lib
\r
229 LINKLIBS_DEBUG = $(LINKLIBS_DEBUG) wsock32.lib wldap32.lib
\r
233 release: $(RELEASE_OBJS)
\r
234 $(LINKR) $(LFLAGS) $(LINKLIBS) $(RELEASE_OBJS)
\r
237 debug: $(DEBUG_OBJS)
\r
238 $(LINKD) $(LFLAGS) $(LINKLIBS_DEBUG) $(DEBUG_OBJS)
\r
242 hugehelpr.obj: hugehelp.c
\r
243 $(CCR) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c
\r
244 writeoutr.obj: writeout.c
\r
245 $(CCR) $(CFLAGS) /Fo"$@" writeout.c
\r
246 urlglobr.obj: urlglob.c
\r
247 $(CCR) $(CFLAGS) /Fo"$@" urlglob.c
\r
248 getpassr.obj: getpass.c
\r
249 $(CCR) $(CFLAGS) /Fo"$@" getpass.c
\r
250 homedirr.obj: homedir.c
\r
251 $(CCR) $(CFLAGS) /Fo"$@" homedir.c
\r
252 curlutilr.obj: curlutil.c
\r
253 $(CCR) $(CFLAGS) /Fo"$@" curlutil.c
\r
254 os-specificr.obj: os-specific.c
\r
255 $(CCR) $(CFLAGS) /Fo"$@" os-specific.c
\r
256 nonblockr.obj: ../lib/nonblock.c
\r
257 $(CCR) $(CFLAGS) /Fo"$@" ../lib/nonblock.c
\r
258 rawstrr.obj: ../lib/rawstr.c
\r
259 $(CCR) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
\r
260 strtoofftr.obj: ../lib/strtoofft.c
\r
261 $(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
\r
263 $(CCR) $(CFLAGS) /Fo"$@" main.c
\r
264 curlr.res : curl.rc
\r
265 $(RCR) $(RESFLAGS) /Fo"$@" curl.rc
\r
268 hugehelpd.obj: hugehelp.c
\r
269 $(CCD) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c
\r
270 writeoutd.obj: writeout.c
\r
271 $(CCD) $(CFLAGS) /Fo"$@" writeout.c
\r
272 urlglobd.obj: urlglob.c
\r
273 $(CCD) $(CFLAGS) /Fo"$@" urlglob.c
\r
274 getpassd.obj: getpass.c
\r
275 $(CCD) $(CFLAGS) /Fo"$@" getpass.c
\r
276 homedird.obj: homedir.c
\r
277 $(CCD) $(CFLAGS) /Fo"$@" homedir.c
\r
278 curlutild.obj: curlutil.c
\r
279 $(CCD) $(CFLAGS) /Fo"$@" curlutil.c
\r
280 os-specificd.obj: os-specific.c
\r
281 $(CCD) $(CFLAGS) /Fo"$@" os-specific.c
\r
282 nonblockd.obj: ../lib/nonblock.c
\r
283 $(CCD) $(CFLAGS) /Fo"$@" ../lib/nonblock.c
\r
284 rawstrd.obj: ../lib/rawstr.c
\r
285 $(CCD) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
\r
286 strtoofftd.obj: ../lib/strtoofft.c
\r
287 $(CCD) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
\r
289 $(CCD) $(CFLAGS) /Fo"$@" main.c
\r
290 curld.res : curl.rc
\r
291 $(RCD) $(RESFLAGS) /Fo"$@" curl.rc
\r
294 @-erase $(PROGRAM_NAME) 2> NUL
\r
295 @-erase $(RELEASE_OBJS) 2> NUL
\r
296 @-erase $(DEBUG_OBJS) 2> NUL
\r
297 @-erase *.idb 2> NUL
\r
298 @-erase *.pdb 2> NUL
\r
299 @-erase *.pch 2> NUL
\r
300 @-erase *.ilk 2> NUL
\r