Added nonblock.c to the non-automake makefiles (note that the dependencies
[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 /dDEBUGBUILD=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 /dDEBUGBUILD=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         os-specificr.obj \\r
102         nonblockr.obj \\r
103         rawstrr.obj \\r
104         strtoofftr.obj \\r
105         mainr.obj \\r
106         curlr.res\r
107 \r
108 DEBUG_OBJS= \\r
109         hugehelpd.obj \\r
110         writeoutd.obj \\r
111         urlglobd.obj \\r
112         getpassd.obj \\r
113         homedird.obj \\r
114         curlutild.obj \\r
115         os-specificd.obj \\r
116         nonblockd.obj \\r
117         rawstrd.obj \\r
118         strtoofftd.obj \\r
119         maind.obj \\r
120         curld.res\r
121 \r
122 #################################################\r
123 # If CFG not specified, use static libs\r
124 \r
125 CFLAGS         = $(CFLAGS) /DCURL_STATICLIB\r
126 LINKLIBS       = libcurl.lib\r
127 LINKLIBS_DEBUG = libcurld.lib\r
128 \r
129 #################################################\r
130 # release dynamic library\r
131 \r
132 !IF "$(CFG)" == "release-dll"\r
133 LINKLIBS       = libcurl_imp.lib\r
134 LINKLIBS_DEBUG = libcurld_imp.lib\r
135 !ENDIF\r
136 \r
137 #################################################\r
138 # release static library with zlib\r
139 \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
145 !ENDIF\r
146 \r
147 #################################################\r
148 # release static library with ssl\r
149 \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
155 !ENDIF\r
156 \r
157 #################################################\r
158 # release dynamic library with dynamic ssl\r
159 \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
165 !ENDIF\r
166 \r
167 #################################################\r
168 # release static library with ssl and zlib\r
169 \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
175 !ENDIF\r
176 \r
177 #################################################\r
178 # release static library with dynamic ssl\r
179 \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
185 !ENDIF\r
186 \r
187 #################################################\r
188 # release static library with dynamic zlib\r
189 \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
195 !ENDIF\r
196 \r
197 #################################################\r
198 # release dynamic library with dynamic zlib\r
199 \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
205 !ENDIF\r
206 \r
207 #################################################\r
208 # release static library with dynamic ssl and dynamic zlib\r
209 \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
215 !ENDIF\r
216 \r
217 #################################################\r
218 # release dynamic library with dynamic ssl and dynamic zlib\r
219 \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
225 !ENDIF\r
226 \r
227 \r
228 LINKLIBS       = $(LINKLIBS) wsock32.lib wldap32.lib\r
229 LINKLIBS_DEBUG = $(LINKLIBS_DEBUG) wsock32.lib wldap32.lib\r
230 \r
231 all : release\r
232 \r
233 release: $(RELEASE_OBJS)\r
234         $(LINKR) $(LFLAGS) $(LINKLIBS) $(RELEASE_OBJS)\r
235         $(MANIFESTTOOL)\r
236 \r
237 debug: $(DEBUG_OBJS)\r
238         $(LINKD) $(LFLAGS) $(LINKLIBS_DEBUG) $(DEBUG_OBJS)\r
239         $(MANIFESTTOOL)\r
240 \r
241 ## Release\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
262 mainr.obj: main.c\r
263         $(CCR) $(CFLAGS) /Fo"$@" main.c\r
264 curlr.res : curl.rc\r
265         $(RCR) $(RESFLAGS) /Fo"$@" curl.rc\r
266 \r
267 ## Debug\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
288 maind.obj: main.c\r
289         $(CCD) $(CFLAGS) /Fo"$@" main.c\r
290 curld.res : curl.rc\r
291         $(RCD) $(RESFLAGS) /Fo"$@" curl.rc\r
292 \r
293 clean:\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