added 2 system libs necessary for linking OpenSSL 0.9.8e statically.
[platform/upstream/curl.git] / src / Makefile.vc6
1 #############################################################\r
2 # $Id: Makefile.vc6,v 1.19 2004/11/14 13:48:15 giva Exp $\r
3 #\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
9 ##\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
13 ## winmm.lib added by Miklos Nemeth <mnemeth@kfkisystems.com> to\r
14 ## support timeGetTime() in curlutil.c\r
15 #\r
16 #############################################################\r
17 \r
18 PROGRAM_NAME = curl.exe\r
19 \r
20 !IFNDEF ZLIB_PATH\r
21 ZLIB_PATH = ../../zlib-1.2.3\r
22 !ENDIF\r
23 \r
24 !IFNDEF OPENSSL_PATH\r
25 OPENSSL_PATH = ../../openssl-0.9.8e\r
26 !ENDIF\r
27 \r
28 !IFNDEF MACHINE\r
29 MACHINE  = X86\r
30 !ENDIF\r
31 \r
32 # USE_WINDOWS_SSPI uses windows libraries to allow NTLM authentication\r
33 # without an openssl installation and offers the ability to authenticate\r
34 # using the "current logged in user". Since at least with MSVC6 the sspi.h\r
35 # header is broken it is either required to install the Windows SDK,\r
36 # or to fix sspi.h with adding this define at the beginning of sspi.h:\r
37 # #define FreeCredentialHandle FreeCredentialsHandle\r
38 #\r
39 # If, for some reason the Windows SDK is installed but not installed\r
40 # in the default location, you can specify WINDOWS_SDK_PATH.\r
41 # It can be downloaded from:\r
42 # http://www.microsoft.com/msdownload/platformsdk/sdkupdate/\r
43 \r
44 # USE_WINDOWS_SSPI = 1\r
45 \r
46 !IFDEF WINDOWS_SSPI\r
47 !IFNDEF WINDOWS_SDK_PATH\r
48 WINDOWS_SDK_PATH = "C:\Program Files\Microsoft SDK"\r
49 !ENDIF\r
50 !ENDIF\r
51 \r
52 ########################################################\r
53 ## Nothing more to do below this line!\r
54 ZLIB_CFLAGS   = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ /I "$(ZLIB_PATH)"\r
55 ZLIB_LFLAGS   = "/LIBPATH:$(ZLIB_PATH)"\r
56 ZLIB_LIBS     = zlib.lib\r
57 ZLIB_IMP_LIBS = zdll.lib\r
58 \r
59 SSL_CFLAGS     = /DUSE_SSLEAY\r
60 SSL_LFLAGS     = /LIBPATH:"$(OPENSSL_PATH)/out32"\r
61 SSL_IMP_LFLAGS = /LIBPATH:"$(OPENSSL_PATH)/out32dll"\r
62 SSL_LIBS       = libeay32.lib ssleay32.lib gdi32.lib user32.lib advapi32.lib\r
63 \r
64 ## Release\r
65 CCR   = cl.exe /MD /O2 /DNDEBUG\r
66 LINKR = link.exe /incremental:no /libpath:"../lib"\r
67 RCR   = rc.exe /dCURLDEBUG=0\r
68 \r
69 ## Debug\r
70 CCD   = cl.exe /MDd /Gm /ZI /Od /D_DEBUG /GZ\r
71 LINKD = link.exe /incremental:yes /debug /libpath:"../lib"\r
72 RCD   = rc.exe /dCURLDEBUG=1\r
73 \r
74 CFLAGS   = /I../lib /I../include /nologo /W3 /GX /DWIN32 /YX /FD /c\r
75 LFLAGS   = /nologo /out:$(PROGRAM_NAME) /subsystem:console /machine:$(MACHINE)\r
76 RESFLAGS = /i../include\r
77 \r
78 !IFDEF WINDOWS_SSPI\r
79 CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include\r
80 !ENDIF\r
81 \r
82 RELEASE_OBJS= \\r
83         hugehelpr.obj \\r
84         writeoutr.obj \\r
85         urlglobr.obj \\r
86         getpassr.obj \\r
87         homedirr.obj \\r
88         curlutilr.obj \\r
89         strtoofftr.obj \\r
90         mainr.obj \\r
91         curlr.res\r
92 \r
93 DEBUG_OBJS= \\r
94         hugehelpd.obj \\r
95         writeoutd.obj \\r
96         urlglobd.obj \\r
97         getpassd.obj \\r
98         homedird.obj \\r
99         curlutild.obj \\r
100         strtoofftd.obj \\r
101         maind.obj \\r
102         curld.res\r
103 \r
104 #################################################\r
105 # If CFG not specified, use static libs\r
106 \r
107 CFLAGS         = $(CFLAGS) /DCURL_STATICLIB\r
108 LINKLIBS       = libcurl.lib\r
109 LINKLIBS_DEBUG = libcurld.lib\r
110 \r
111 #################################################\r
112 # release dynamic library\r
113 \r
114 !IF "$(CFG)" == "release-dll"\r
115 LINKLIBS       = libcurl_imp.lib\r
116 LINKLIBS_DEBUG = libcurld_imp.lib\r
117 !ENDIF\r
118 \r
119 #################################################\r
120 # release static library with zlib\r
121 \r
122 !IF "$(CFG)" == "release-zlib"\r
123 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
124 LINKLIBS       = libcurl.lib  $(ZLIB_LIBS)\r
125 LINKLIBS_DEBUG = libcurld.lib $(ZLIB_LIBS)\r
126 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)\r
127 !ENDIF\r
128 \r
129 #################################################\r
130 # release static library with ssl\r
131 \r
132 !IF "$(CFG)" == "release-ssl"\r
133 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB\r
134 LINKLIBS       = libcurl.lib  $(SSL_LIBS)\r
135 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS)\r
136 LFLAGS         = $(LFLAGS) $(SSL_LFLAGS)\r
137 !ENDIF\r
138 \r
139 #################################################\r
140 # release dynamic library with dynamic ssl\r
141 \r
142 !IF "$(CFG)" == "release-dll-ssl-dll"\r
143 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS)\r
144 LINKLIBS       = libcurl_imp.lib  $(SSL_LIBS)\r
145 LINKLIBS_DEBUG = libcurld_imp.lib $(SSL_LIBS)\r
146 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS)\r
147 !ENDIF\r
148 \r
149 #################################################\r
150 # release static library with ssl and zlib\r
151 \r
152 !IF "$(CFG)" == "release-ssl-zlib"\r
153 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
154 LINKLIBS       = libcurl.lib  $(SSL_LIBS) $(ZLIB_LIBS)\r
155 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS) $(ZLIB_LIBS)\r
156 LFLAGS         = $(LFLAGS) $(SSL_LFLAGS) $(ZLIB_LFLAGS)\r
157 !ENDIF\r
158 \r
159 #################################################\r
160 # release static library with dynamic ssl\r
161 \r
162 !IF "$(CFG)" == "release-ssl-dll"\r
163 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB\r
164 LINKLIBS       = libcurl.lib  $(SSL_LIBS)\r
165 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS)\r
166 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS)\r
167 !ENDIF\r
168 \r
169 #################################################\r
170 # release static library with dynamic zlib\r
171 \r
172 !IF "$(CFG)" == "release-zlib-dll"\r
173 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
174 LINKLIBS       = libcurl.lib  $(ZLIB_IMP_LIBS)\r
175 LINKLIBS_DEBUG = libcurld.lib $(ZLIB_IMP_LIBS)\r
176 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)\r
177 !ENDIF\r
178 \r
179 #################################################\r
180 # release dynamic library with dynamic zlib\r
181 \r
182 !IF "$(CFG)" == "release-dll-zlib-dll"\r
183 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS)\r
184 LINKLIBS       = libcurl_imp.lib  $(ZLIB_IMP_LIBS)\r
185 LINKLIBS_DEBUG = libcurld_imp.lib $(ZLIB_IMP_LIBS)\r
186 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)\r
187 !ENDIF\r
188 \r
189 #################################################\r
190 # release static library with dynamic ssl and dynamic zlib\r
191 \r
192 !IF "$(CFG)" == "release-ssl-dll-zlib-dll"\r
193 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
194 LINKLIBS       = libcurl.lib  $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
195 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
196 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)\r
197 !ENDIF\r
198 \r
199 #################################################\r
200 # release dynamic library with dynamic ssl and dynamic zlib\r
201 \r
202 !IF "$(CFG)" == "release-dll-ssl-dll-zlib-dll"\r
203 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS)\r
204 LINKLIBS       = libcurl_imp.lib  $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
205 LINKLIBS_DEBUG = libcurld_imp.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
206 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)\r
207 !ENDIF\r
208 \r
209 \r
210 LINKLIBS       = $(LINKLIBS) wsock32.lib winmm.lib\r
211 LINKLIBS_DEBUG = $(LINKLIBS_DEBUG) wsock32.lib winmm.lib\r
212 \r
213 all : release\r
214 \r
215 release: $(RELEASE_OBJS)\r
216         $(LINKR) $(LFLAGS) $(LINKLIBS) $(RELEASE_OBJS)\r
217 \r
218 debug: $(DEBUG_OBJS)\r
219         $(LINKD) $(LFLAGS) $(LINKLIBS_DEBUG) $(DEBUG_OBJS)\r
220 \r
221 ## Release\r
222 hugehelpr.obj: hugehelp.c\r
223         $(CCR) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c\r
224 writeoutr.obj: writeout.c\r
225         $(CCR) $(CFLAGS) /Fo"$@" writeout.c\r
226 urlglobr.obj: urlglob.c\r
227         $(CCR) $(CFLAGS) /Fo"$@" urlglob.c\r
228 getpassr.obj: getpass.c\r
229         $(CCR) $(CFLAGS) /Fo"$@" getpass.c\r
230 homedirr.obj: homedir.c\r
231         $(CCR) $(CFLAGS) /Fo"$@" homedir.c\r
232 curlutilr.obj: curlutil.c\r
233         $(CCR) $(CFLAGS) /Fo"$@" curlutil.c\r
234 strtoofftr.obj: ../lib/strtoofft.c\r
235         $(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c\r
236 mainr.obj: main.c\r
237         $(CCR) $(CFLAGS) /Fo"$@" main.c\r
238 curlr.res : curl.rc\r
239         $(RCR) $(RESFLAGS) /Fo"$@" curl.rc\r
240 \r
241 ## Debug\r
242 hugehelpd.obj: hugehelp.c\r
243         $(CCD) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c\r
244 writeoutd.obj: writeout.c\r
245         $(CCD) $(CFLAGS) /Fo"$@" writeout.c\r
246 urlglobd.obj: urlglob.c\r
247         $(CCD) $(CFLAGS) /Fo"$@" urlglob.c\r
248 getpassd.obj: getpass.c\r
249         $(CCD) $(CFLAGS) /Fo"$@" getpass.c\r
250 homedird.obj: homedir.c\r
251         $(CCD) $(CFLAGS) /Fo"$@" homedir.c\r
252 curlutild.obj: curlutil.c\r
253         $(CCD) $(CFLAGS) /Fo"$@" curlutil.c\r
254 strtoofftd.obj: ../lib/strtoofft.c\r
255         $(CCD) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c\r
256 maind.obj: main.c\r
257         $(CCD) $(CFLAGS) /Fo"$@" main.c\r
258 curld.res : curl.rc\r
259         $(RCD) $(RESFLAGS) /Fo"$@" curl.rc\r
260 \r
261 clean:\r
262         @-erase $(PROGRAM_NAME) 2> NUL\r
263         @-erase $(RELEASE_OBJS) 2> NUL\r
264         @-erase $(DEBUG_OBJS) 2> NUL\r
265         @-erase *.idb 2> NUL\r
266         @-erase *.pdb 2> NUL\r
267         @-erase *.pch 2> NUL\r
268         @-erase *.ilk 2> NUL\r