VC6 makefiles: added embedded documentation
[platform/upstream/curl.git] / src / Makefile.vc6
1 #***************************************************************************\r
2 #                                  _   _ ____  _\r
3 #  Project                     ___| | | |  _ \| |\r
4 #                             / __| | | | |_) | |\r
5 #                            | (__| |_| |  _ <| |___\r
6 #                             \___|\___/|_| \_\_____|\r
7 #\r
8 # Copyright (C) 1999 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.\r
9 #\r
10 # This software is licensed as described in the file COPYING, which\r
11 # you should have received as part of this distribution. The terms\r
12 # are also available at http://curl.haxx.se/docs/copyright.html.\r
13 #\r
14 # You may opt to use, copy, modify, merge, publish, distribute and/or sell\r
15 # copies of the Software, and permit persons to whom the Software is\r
16 # furnished to do so, under the terms of the COPYING file.\r
17 #\r
18 # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY\r
19 # KIND, either express or implied.\r
20 #\r
21 #***************************************************************************\r
22 \r
23 # All files in the Makefile.vc* series are generated automatically from the\r
24 # one made for MSVC version 6. Alas, if you want to do changes to any of the\r
25 # fiels and send back to the project, edit the version six, make your diff and\r
26 # mail curl-users.\r
27 \r
28 #############################################################\r
29 #\r
30 ## Makefile for building curl.exe with MSVC6\r
31 ## Use: nmake -f makefile.vc6 [release | debug] [CFG=release-ssl]\r
32 ##      (default is release)\r
33 ## "nmake -f makefile.vc6 CFG=release-ssl" statically links OpenSSL\r
34 ## into curl.exe producing a standalone SSL-enabled executable.\r
35 ##\r
36 #\r
37 #############################################################\r
38 \r
39 PROGRAM_NAME = curl.exe\r
40 \r
41 # -------------------------------------------\r
42 # Verify that current subdir is curl's 'src'\r
43 # -------------------------------------------\r
44 \r
45 !IF ! EXIST(.\main.c)\r
46 !  MESSAGE Can not process this makefile from outside of curl's 'src' subdirectory.\r
47 !  MESSAGE Change to curl's 'src' subdirectory, and try again.\r
48 !  ERROR   See previous message.\r
49 !ENDIF\r
50 \r
51 # ------------------------------------------------\r
52 # Makefile.msvc.names provides libcurl file names\r
53 # ------------------------------------------------\r
54 \r
55 !INCLUDE ..\Makefile.msvc.names\r
56 \r
57 \r
58 \r
59 !IFNDEF OPENSSL_PATH\r
60 OPENSSL_PATH = ../../openssl-0.9.8r\r
61 !ENDIF\r
62 \r
63 !IFNDEF ZLIB_PATH\r
64 ZLIB_PATH = ../../zlib-1.2.5\r
65 !ENDIF\r
66 \r
67 !IFNDEF MACHINE\r
68 MACHINE  = X86\r
69 !ENDIF\r
70 \r
71 # USE_WINDOWS_SSPI uses windows libraries to allow NTLM authentication\r
72 # without an openssl installation and offers the ability to authenticate\r
73 # using the "current logged in user". Since at least with MSVC6 the sspi.h\r
74 # header is broken it is either required to install the Windows SDK,\r
75 # or to fix sspi.h with adding this define at the beginning of sspi.h:\r
76 # #define FreeCredentialHandle FreeCredentialsHandle\r
77 #\r
78 # If, for some reason the Windows SDK is installed but not installed\r
79 # in the default location, you can specify WINDOWS_SDK_PATH.\r
80 # It can be downloaded from:\r
81 # http://www.microsoft.com/msdownload/platformsdk/sdkupdate/\r
82 \r
83 # WINDOWS_SSPI = 1\r
84 \r
85 !IFDEF WINDOWS_SSPI\r
86 !IFNDEF WINDOWS_SDK_PATH\r
87 WINDOWS_SDK_PATH = "$(PROGRAMFILES)\Microsoft SDK"\r
88 !ENDIF\r
89 !ENDIF\r
90 \r
91 ########################################################\r
92 ## Nothing more to do below this line!\r
93 ZLIB_CFLAGS   = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ /I "$(ZLIB_PATH)"\r
94 ZLIB_LFLAGS   = "/LIBPATH:$(ZLIB_PATH)"\r
95 ZLIB_LIBS     = zlib.lib\r
96 ZLIB_IMP_LIBS = zdll.lib\r
97 \r
98 SSL_CFLAGS     = /DUSE_SSLEAY\r
99 SSL_LFLAGS     = /LIBPATH:"$(OPENSSL_PATH)/out32"\r
100 SSL_IMP_LFLAGS = /LIBPATH:"$(OPENSSL_PATH)/out32dll"\r
101 SSL_LIBS       = libeay32.lib ssleay32.lib gdi32.lib user32.lib advapi32.lib\r
102 \r
103 # Runtime library configuration\r
104 RTLIB   = /MD\r
105 RTLIBD  = /MDd\r
106 \r
107 !IF "$(RTLIBCFG)" == "static"\r
108 RTLIB  = /MT\r
109 RTLIBD = /MTd\r
110 !ENDIF\r
111 \r
112 ## Release\r
113 CCR   = cl.exe $(RTLIB) /O2 /DNDEBUG\r
114 LINKR = link.exe /incremental:no /libpath:"../lib"\r
115 RCR   = rc.exe /dDEBUGBUILD=0\r
116 \r
117 ## Debug\r
118 CCD   = cl.exe $(RTLIBD) /Gm /ZI /Od /D_DEBUG /GZ\r
119 LINKD = link.exe /incremental:yes /debug /libpath:"../lib"\r
120 RCD   = rc.exe /dDEBUGBUILD=1\r
121 \r
122 CFLAGS   = /I../lib /I../include /nologo /W3 /GX /DWIN32 /YX /FD /c /D_BIND_TO_CURRENT_VCLIBS_VERSION=1\r
123 LFLAGS   = /nologo /out:$(PROGRAM_NAME) /subsystem:console /machine:$(MACHINE)\r
124 RESFLAGS = /i../include\r
125 \r
126 # This manifest thing is for VC8, enabled by the maketgz script that\r
127 # builds the VC8 version of this makefile. Left commented out in the VC6\r
128 # version!\r
129 #MANIFESTTOOL = mt -manifest $(PROGRAM_NAME).manifest -outputresource:$(PROGRAM_NAME);1\r
130 \r
131 !IFDEF WINDOWS_SSPI\r
132 CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include\r
133 !ENDIF\r
134 \r
135 RELEASE_OBJS= \\r
136         curlutilr.obj \\r
137         getpassr.obj \\r
138         homedirr.obj \\r
139         hugehelpr.obj \\r
140         mainr.obj \\r
141         nonblockr.obj \\r
142         os-specificr.obj \\r
143         rawstrr.obj \\r
144         strtoofftr.obj \\r
145         urlglobr.obj \\r
146         writeoutr.obj \\r
147         xattrr.obj \\r
148         curlr.res\r
149 \r
150 DEBUG_OBJS= \\r
151         curlutild.obj \\r
152         getpassd.obj \\r
153         homedird.obj \\r
154         hugehelpd.obj \\r
155         maind.obj \\r
156         nonblockd.obj \\r
157         os-specificd.obj \\r
158         rawstrd.obj \\r
159         strtoofftd.obj \\r
160         urlglobd.obj \\r
161         writeoutd.obj \\r
162         xattrd.obj \\r
163         curld.res\r
164 \r
165 #################################################\r
166 # If CFG not specified, use static libs\r
167 \r
168 CFLAGS         = $(CFLAGS) /DCURL_STATICLIB\r
169 LINKLIBS       = $(LIBCURL_STA_LIB_REL)\r
170 LINKLIBS_DEBUG = $(LIBCURL_STA_LIB_DBG)\r
171 \r
172 #################################################\r
173 # release dynamic library\r
174 \r
175 !IF "$(CFG)" == "release-dll"\r
176 LINKLIBS       = $(LIBCURL_IMP_LIB_REL)\r
177 LINKLIBS_DEBUG = $(LIBCURL_IMP_LIB_DBG)\r
178 !ENDIF\r
179 \r
180 #################################################\r
181 # release static library with zlib\r
182 \r
183 !IF "$(CFG)" == "release-zlib"\r
184 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
185 LINKLIBS       = $(LIBCURL_STA_LIB_REL) $(ZLIB_LIBS)\r
186 LINKLIBS_DEBUG = $(LIBCURL_STA_LIB_DBG) $(ZLIB_LIBS)\r
187 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)\r
188 !ENDIF\r
189 \r
190 #################################################\r
191 # release static library with ssl\r
192 \r
193 !IF "$(CFG)" == "release-ssl"\r
194 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB\r
195 LINKLIBS       = $(LIBCURL_STA_LIB_REL) $(SSL_LIBS)\r
196 LINKLIBS_DEBUG = $(LIBCURL_STA_LIB_DBG) $(SSL_LIBS)\r
197 LFLAGS         = $(LFLAGS) $(SSL_LFLAGS)\r
198 !ENDIF\r
199 \r
200 #################################################\r
201 # release dynamic library with dynamic ssl\r
202 \r
203 !IF "$(CFG)" == "release-dll-ssl-dll"\r
204 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS)\r
205 LINKLIBS       = $(LIBCURL_IMP_LIB_REL) $(SSL_LIBS)\r
206 LINKLIBS_DEBUG = $(LIBCURL_IMP_LIB_DBG) $(SSL_LIBS)\r
207 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS)\r
208 !ENDIF\r
209 \r
210 #################################################\r
211 # release static library with ssl and zlib\r
212 \r
213 !IF "$(CFG)" == "release-ssl-zlib"\r
214 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
215 LINKLIBS       = $(LIBCURL_STA_LIB_REL) $(SSL_LIBS) $(ZLIB_LIBS)\r
216 LINKLIBS_DEBUG = $(LIBCURL_STA_LIB_DBG) $(SSL_LIBS) $(ZLIB_LIBS)\r
217 LFLAGS         = $(LFLAGS) $(SSL_LFLAGS) $(ZLIB_LFLAGS)\r
218 !ENDIF\r
219 \r
220 #################################################\r
221 # release static library with dynamic ssl\r
222 \r
223 !IF "$(CFG)" == "release-ssl-dll"\r
224 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB\r
225 LINKLIBS       = $(LIBCURL_STA_LIB_REL) $(SSL_LIBS)\r
226 LINKLIBS_DEBUG = $(LIBCURL_STA_LIB_DBG) $(SSL_LIBS)\r
227 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS)\r
228 !ENDIF\r
229 \r
230 #################################################\r
231 # release static library with dynamic zlib\r
232 \r
233 !IF "$(CFG)" == "release-zlib-dll"\r
234 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
235 LINKLIBS       = $(LIBCURL_STA_LIB_REL) $(ZLIB_IMP_LIBS)\r
236 LINKLIBS_DEBUG = $(LIBCURL_STA_LIB_DBG) $(ZLIB_IMP_LIBS)\r
237 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)\r
238 !ENDIF\r
239 \r
240 #################################################\r
241 # release dynamic library with dynamic zlib\r
242 \r
243 !IF "$(CFG)" == "release-dll-zlib-dll"\r
244 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS)\r
245 LINKLIBS       = $(LIBCURL_IMP_LIB_REL) $(ZLIB_IMP_LIBS)\r
246 LINKLIBS_DEBUG = $(LIBCURL_IMP_LIB_DBG) $(ZLIB_IMP_LIBS)\r
247 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)\r
248 !ENDIF\r
249 \r
250 #################################################\r
251 # release static library with dynamic ssl and dynamic zlib\r
252 \r
253 !IF "$(CFG)" == "release-ssl-dll-zlib-dll"\r
254 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
255 LINKLIBS       = $(LIBCURL_STA_LIB_REL) $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
256 LINKLIBS_DEBUG = $(LIBCURL_STA_LIB_DBG) $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
257 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)\r
258 !ENDIF\r
259 \r
260 #################################################\r
261 # release dynamic library with dynamic ssl and dynamic zlib\r
262 \r
263 !IF "$(CFG)" == "release-dll-ssl-dll-zlib-dll"\r
264 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS)\r
265 LINKLIBS       = $(LIBCURL_IMP_LIB_REL) $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
266 LINKLIBS_DEBUG = $(LIBCURL_IMP_LIB_DBG) $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
267 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)\r
268 !ENDIF\r
269 \r
270 \r
271 LINKLIBS       = $(LINKLIBS) ws2_32.lib wldap32.lib\r
272 LINKLIBS_DEBUG = $(LINKLIBS_DEBUG) ws2_32.lib wldap32.lib\r
273 \r
274 all : release\r
275 \r
276 release: $(RELEASE_OBJS)\r
277         $(LINKR) $(LFLAGS) $(LINKLIBS) $(RELEASE_OBJS)\r
278         $(MANIFESTTOOL)\r
279 \r
280 debug: $(DEBUG_OBJS)\r
281         $(LINKD) $(LFLAGS) $(LINKLIBS_DEBUG) $(DEBUG_OBJS)\r
282         $(MANIFESTTOOL)\r
283 \r
284 ## Release\r
285 hugehelpr.obj: hugehelp.c\r
286         $(CCR) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c\r
287 writeoutr.obj: writeout.c\r
288         $(CCR) $(CFLAGS) /Fo"$@" writeout.c\r
289 urlglobr.obj: urlglob.c\r
290         $(CCR) $(CFLAGS) /Fo"$@" urlglob.c\r
291 getpassr.obj: getpass.c\r
292         $(CCR) $(CFLAGS) /Fo"$@" getpass.c\r
293 homedirr.obj: homedir.c\r
294         $(CCR) $(CFLAGS) /Fo"$@" homedir.c\r
295 curlutilr.obj: curlutil.c\r
296         $(CCR) $(CFLAGS) /Fo"$@" curlutil.c\r
297 os-specificr.obj: os-specific.c\r
298         $(CCR) $(CFLAGS) /Fo"$@" os-specific.c\r
299 nonblockr.obj: ../lib/nonblock.c\r
300         $(CCR) $(CFLAGS) /Fo"$@" ../lib/nonblock.c\r
301 rawstrr.obj: ../lib/rawstr.c\r
302         $(CCR) $(CFLAGS) /Fo"$@" ../lib/rawstr.c\r
303 strtoofftr.obj: ../lib/strtoofft.c\r
304         $(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c\r
305 xattrr.obj: xattr.c\r
306         $(CCR) $(CFLAGS) /Fo"$@" xattr.c\r
307 mainr.obj: main.c\r
308         $(CCR) $(CFLAGS) /Fo"$@" main.c\r
309 curlr.res : curl.rc\r
310         $(RCR) $(RESFLAGS) /Fo"$@" curl.rc\r
311 \r
312 ## Debug\r
313 hugehelpd.obj: hugehelp.c\r
314         $(CCD) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c\r
315 writeoutd.obj: writeout.c\r
316         $(CCD) $(CFLAGS) /Fo"$@" writeout.c\r
317 urlglobd.obj: urlglob.c\r
318         $(CCD) $(CFLAGS) /Fo"$@" urlglob.c\r
319 getpassd.obj: getpass.c\r
320         $(CCD) $(CFLAGS) /Fo"$@" getpass.c\r
321 homedird.obj: homedir.c\r
322         $(CCD) $(CFLAGS) /Fo"$@" homedir.c\r
323 curlutild.obj: curlutil.c\r
324         $(CCD) $(CFLAGS) /Fo"$@" curlutil.c\r
325 os-specificd.obj: os-specific.c\r
326         $(CCD) $(CFLAGS) /Fo"$@" os-specific.c\r
327 nonblockd.obj: ../lib/nonblock.c\r
328         $(CCD) $(CFLAGS) /Fo"$@" ../lib/nonblock.c\r
329 rawstrd.obj: ../lib/rawstr.c\r
330         $(CCD) $(CFLAGS) /Fo"$@" ../lib/rawstr.c\r
331 strtoofftd.obj: ../lib/strtoofft.c\r
332         $(CCD) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c\r
333 xattrd.obj: xattr.c\r
334         $(CCD) $(CFLAGS) /Fo"$@" xattr.c\r
335 maind.obj: main.c\r
336         $(CCD) $(CFLAGS) /Fo"$@" main.c\r
337 curld.res : curl.rc\r
338         $(RCD) $(RESFLAGS) /Fo"$@" curl.rc\r
339 \r
340 clean:\r
341         @-erase $(PROGRAM_NAME) 2> NUL\r
342         @-erase $(RELEASE_OBJS) 2> NUL\r
343         @-erase $(DEBUG_OBJS) 2> NUL\r
344         @-erase *.idb 2> NUL\r
345         @-erase *.pdb 2> NUL\r
346         @-erase *.pch 2> NUL\r
347         @-erase *.ilk 2> NUL\r