Introduced curl_sspi.c and curl_sspi.h for the implementation of functions
[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 #\r
14 #############################################################\r
15 \r
16 PROGRAM_NAME = curl.exe\r
17 \r
18 !IFNDEF ZLIB_PATH\r
19 ZLIB_PATH = ../../zlib-1.2.3\r
20 !ENDIF\r
21 \r
22 !IFNDEF OPENSSL_PATH\r
23 OPENSSL_PATH = ../../openssl-0.9.8g\r
24 !ENDIF\r
25 \r
26 !IFNDEF MACHINE\r
27 MACHINE  = X86\r
28 !ENDIF\r
29 \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
36 #\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
41 \r
42 # WINDOWS_SSPI = 1\r
43 \r
44 !IFDEF WINDOWS_SSPI\r
45 !IFNDEF WINDOWS_SDK_PATH\r
46 WINDOWS_SDK_PATH = "C:\Program Files\Microsoft SDK"\r
47 !ENDIF\r
48 !ENDIF\r
49 \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
56 \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
61 \r
62 # Runtime library configuration\r
63 RTLIB   = /MD\r
64 RTLIBD  = /MDd\r
65 \r
66 !IF "$(RTLIBCFG)" == "static"\r
67 RTLIB  = /MT\r
68 RTLIBD = /MTd\r
69 !ENDIF\r
70 \r
71 ## Release\r
72 CCR   = cl.exe $(RTLIB) /O2 /DNDEBUG\r
73 LINKR = link.exe /incremental:no /libpath:"../lib"\r
74 RCR   = rc.exe /dCURLDEBUG=0\r
75 \r
76 ## Debug\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 /dCURLDEBUG=1\r
80 \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
84 \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
87 # version!\r
88 #MANIFESTTOOL = mt -manifest $(PROGRAM_NAME).manifest -outputresource:$(PROGRAM_NAME);1\r
89 \r
90 !IFDEF WINDOWS_SSPI\r
91 CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include\r
92 !ENDIF\r
93 \r
94 RELEASE_OBJS= \\r
95         hugehelpr.obj \\r
96         writeoutr.obj \\r
97         urlglobr.obj \\r
98         getpassr.obj \\r
99         homedirr.obj \\r
100         curlutilr.obj \\r
101         rawstrr.obj \\r
102         strtoofftr.obj \\r
103         mainr.obj \\r
104         curlr.res\r
105 \r
106 DEBUG_OBJS= \\r
107         hugehelpd.obj \\r
108         writeoutd.obj \\r
109         urlglobd.obj \\r
110         getpassd.obj \\r
111         homedird.obj \\r
112         curlutild.obj \\r
113         rawstrd.obj \\r
114         strtoofftd.obj \\r
115         maind.obj \\r
116         curld.res\r
117 \r
118 #################################################\r
119 # If CFG not specified, use static libs\r
120 \r
121 CFLAGS         = $(CFLAGS) /DCURL_STATICLIB\r
122 LINKLIBS       = libcurl.lib\r
123 LINKLIBS_DEBUG = libcurld.lib\r
124 \r
125 #################################################\r
126 # release dynamic library\r
127 \r
128 !IF "$(CFG)" == "release-dll"\r
129 LINKLIBS       = libcurl_imp.lib\r
130 LINKLIBS_DEBUG = libcurld_imp.lib\r
131 !ENDIF\r
132 \r
133 #################################################\r
134 # release static library with zlib\r
135 \r
136 !IF "$(CFG)" == "release-zlib"\r
137 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
138 LINKLIBS       = libcurl.lib  $(ZLIB_LIBS)\r
139 LINKLIBS_DEBUG = libcurld.lib $(ZLIB_LIBS)\r
140 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)\r
141 !ENDIF\r
142 \r
143 #################################################\r
144 # release static library with ssl\r
145 \r
146 !IF "$(CFG)" == "release-ssl"\r
147 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB\r
148 LINKLIBS       = libcurl.lib  $(SSL_LIBS)\r
149 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS)\r
150 LFLAGS         = $(LFLAGS) $(SSL_LFLAGS)\r
151 !ENDIF\r
152 \r
153 #################################################\r
154 # release dynamic library with dynamic ssl\r
155 \r
156 !IF "$(CFG)" == "release-dll-ssl-dll"\r
157 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS)\r
158 LINKLIBS       = libcurl_imp.lib  $(SSL_LIBS)\r
159 LINKLIBS_DEBUG = libcurld_imp.lib $(SSL_LIBS)\r
160 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS)\r
161 !ENDIF\r
162 \r
163 #################################################\r
164 # release static library with ssl and zlib\r
165 \r
166 !IF "$(CFG)" == "release-ssl-zlib"\r
167 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
168 LINKLIBS       = libcurl.lib  $(SSL_LIBS) $(ZLIB_LIBS)\r
169 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS) $(ZLIB_LIBS)\r
170 LFLAGS         = $(LFLAGS) $(SSL_LFLAGS) $(ZLIB_LFLAGS)\r
171 !ENDIF\r
172 \r
173 #################################################\r
174 # release static library with dynamic ssl\r
175 \r
176 !IF "$(CFG)" == "release-ssl-dll"\r
177 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB\r
178 LINKLIBS       = libcurl.lib  $(SSL_LIBS)\r
179 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS)\r
180 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS)\r
181 !ENDIF\r
182 \r
183 #################################################\r
184 # release static library with dynamic zlib\r
185 \r
186 !IF "$(CFG)" == "release-zlib-dll"\r
187 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
188 LINKLIBS       = libcurl.lib  $(ZLIB_IMP_LIBS)\r
189 LINKLIBS_DEBUG = libcurld.lib $(ZLIB_IMP_LIBS)\r
190 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)\r
191 !ENDIF\r
192 \r
193 #################################################\r
194 # release dynamic library with dynamic zlib\r
195 \r
196 !IF "$(CFG)" == "release-dll-zlib-dll"\r
197 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS)\r
198 LINKLIBS       = libcurl_imp.lib  $(ZLIB_IMP_LIBS)\r
199 LINKLIBS_DEBUG = libcurld_imp.lib $(ZLIB_IMP_LIBS)\r
200 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)\r
201 !ENDIF\r
202 \r
203 #################################################\r
204 # release static library with dynamic ssl and dynamic zlib\r
205 \r
206 !IF "$(CFG)" == "release-ssl-dll-zlib-dll"\r
207 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
208 LINKLIBS       = libcurl.lib  $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
209 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
210 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)\r
211 !ENDIF\r
212 \r
213 #################################################\r
214 # release dynamic library with dynamic ssl and dynamic zlib\r
215 \r
216 !IF "$(CFG)" == "release-dll-ssl-dll-zlib-dll"\r
217 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS)\r
218 LINKLIBS       = libcurl_imp.lib  $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
219 LINKLIBS_DEBUG = libcurld_imp.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
220 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)\r
221 !ENDIF\r
222 \r
223 \r
224 LINKLIBS       = $(LINKLIBS) wsock32.lib wldap32.lib\r
225 LINKLIBS_DEBUG = $(LINKLIBS_DEBUG) wsock32.lib wldap32.lib\r
226 \r
227 all : release\r
228 \r
229 release: $(RELEASE_OBJS)\r
230         $(LINKR) $(LFLAGS) $(LINKLIBS) $(RELEASE_OBJS)\r
231         $(MANIFESTTOOL)\r
232 \r
233 debug: $(DEBUG_OBJS)\r
234         $(LINKD) $(LFLAGS) $(LINKLIBS_DEBUG) $(DEBUG_OBJS)\r
235         $(MANIFESTTOOL)\r
236 \r
237 ## Release\r
238 hugehelpr.obj: hugehelp.c\r
239         $(CCR) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c\r
240 writeoutr.obj: writeout.c\r
241         $(CCR) $(CFLAGS) /Fo"$@" writeout.c\r
242 urlglobr.obj: urlglob.c\r
243         $(CCR) $(CFLAGS) /Fo"$@" urlglob.c\r
244 getpassr.obj: getpass.c\r
245         $(CCR) $(CFLAGS) /Fo"$@" getpass.c\r
246 homedirr.obj: homedir.c\r
247         $(CCR) $(CFLAGS) /Fo"$@" homedir.c\r
248 curlutilr.obj: curlutil.c\r
249         $(CCR) $(CFLAGS) /Fo"$@" curlutil.c\r
250 rawstrr.obj: ../lib/rawstr.c\r
251         $(CCR) $(CFLAGS) /Fo"$@" ../lib/rawstr.c\r
252 strtoofftr.obj: ../lib/strtoofft.c\r
253         $(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c\r
254 mainr.obj: main.c\r
255         $(CCR) $(CFLAGS) /Fo"$@" main.c\r
256 curlr.res : curl.rc\r
257         $(RCR) $(RESFLAGS) /Fo"$@" curl.rc\r
258 \r
259 ## Debug\r
260 hugehelpd.obj: hugehelp.c\r
261         $(CCD) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c\r
262 writeoutd.obj: writeout.c\r
263         $(CCD) $(CFLAGS) /Fo"$@" writeout.c\r
264 urlglobd.obj: urlglob.c\r
265         $(CCD) $(CFLAGS) /Fo"$@" urlglob.c\r
266 getpassd.obj: getpass.c\r
267         $(CCD) $(CFLAGS) /Fo"$@" getpass.c\r
268 homedird.obj: homedir.c\r
269         $(CCD) $(CFLAGS) /Fo"$@" homedir.c\r
270 curlutild.obj: curlutil.c\r
271         $(CCD) $(CFLAGS) /Fo"$@" curlutil.c\r
272 rawstrd.obj: ../lib/rawstr.c\r
273         $(CCD) $(CFLAGS) /Fo"$@" ../lib/rawstr.c\r
274 strtoofftd.obj: ../lib/strtoofft.c\r
275         $(CCD) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c\r
276 maind.obj: main.c\r
277         $(CCD) $(CFLAGS) /Fo"$@" main.c\r
278 curld.res : curl.rc\r
279         $(RCD) $(RESFLAGS) /Fo"$@" curl.rc\r
280 \r
281 clean:\r
282         @-erase $(PROGRAM_NAME) 2> NUL\r
283         @-erase $(RELEASE_OBJS) 2> NUL\r
284         @-erase $(DEBUG_OBJS) 2> NUL\r
285         @-erase *.idb 2> NUL\r
286         @-erase *.pdb 2> NUL\r
287         @-erase *.pch 2> NUL\r
288         @-erase *.ilk 2> NUL\r