Update tag value for tizen 2.0 build
[external/curl.git] / src / Makefile.vc10
1 #############################################################\r
2 #\r
3 ## Makefile for building curl.exe with MSVC10\r
4 ## Use: nmake -f makefile.vc10 [release | debug] [CFG=release-ssl]\r
5 ##      (default is release)\r
6 ## "nmake -f makefile.vc10 CFG=release-ssl" statically links OpenSSL\r
7 ## into curl.exe producing a standalone SSL-enabled executable.\r
8 ##\r
9 ## Comments to: Troy Engel <tengel@sonic.net>\r
10 ## Updated by: Craig Davison <cd@securityfocus.com>\r
11 ## release-ssl added by Miklos Nemeth <mnemeth@kfkisystems.com>\r
12 #\r
13 #############################################################\r
14 \r
15 PROGRAM_NAME = curl.exe\r
16 \r
17 !IFNDEF OPENSSL_PATH\r
18 OPENSSL_PATH = ../../openssl-0.9.8o\r
19 !ENDIF\r
20 \r
21 !IFNDEF ZLIB_PATH\r
22 ZLIB_PATH = ../../zlib-1.2.5\r
23 !ENDIF\r
24 \r
25 !IFNDEF MACHINE\r
26 MACHINE  = X86\r
27 !ENDIF\r
28 \r
29 # USE_WINDOWS_SSPI uses windows libraries to allow NTLM authentication\r
30 # without an openssl installation and offers the ability to authenticate\r
31 # using the "current logged in user". Since at least with MSVC10 the sspi.h\r
32 # header is broken it is either required to install the Windows SDK,\r
33 # or to fix sspi.h with adding this define at the beginning of sspi.h:\r
34 # #define FreeCredentialHandle FreeCredentialsHandle\r
35 #\r
36 # If, for some reason the Windows SDK is installed but not installed\r
37 # in the default location, you can specify WINDOWS_SDK_PATH.\r
38 # It can be downloaded from:\r
39 # http://www.microsoft.com/msdownload/platformsdk/sdkupdate/\r
40 \r
41 # WINDOWS_SSPI = 1\r
42 \r
43 !IFDEF WINDOWS_SSPI\r
44 !IFNDEF WINDOWS_SDK_PATH\r
45 WINDOWS_SDK_PATH = "C:\Program Files\Microsoft SDK"\r
46 !ENDIF\r
47 !ENDIF\r
48 \r
49 ########################################################\r
50 ## Nothing more to do below this line!\r
51 ZLIB_CFLAGS   = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ /I "$(ZLIB_PATH)"\r
52 ZLIB_LFLAGS   = "/LIBPATH:$(ZLIB_PATH)"\r
53 ZLIB_LIBS     = zlib.lib\r
54 ZLIB_IMP_LIBS = zdll.lib\r
55 \r
56 SSL_CFLAGS     = /DUSE_SSLEAY\r
57 SSL_LFLAGS     = /LIBPATH:"$(OPENSSL_PATH)/out32"\r
58 SSL_IMP_LFLAGS = /LIBPATH:"$(OPENSSL_PATH)/out32dll"\r
59 SSL_LIBS       = libeay32.lib ssleay32.lib gdi32.lib user32.lib advapi32.lib\r
60 \r
61 # Runtime library configuration\r
62 RTLIB   = /MD\r
63 RTLIBD  = /MDd\r
64 \r
65 !IF "$(RTLIBCFG)" == "static"\r
66 RTLIB  = /MT\r
67 RTLIBD = /MTd\r
68 !ENDIF\r
69 \r
70 ## Release\r
71 CCR   = cl.exe $(RTLIB) /O2 /DNDEBUG\r
72 LINKR = link.exe /incremental:no /libpath:"../lib"\r
73 RCR   = rc.exe /dDEBUGBUILD=0\r
74 \r
75 ## Debug\r
76 CCD   = cl.exe $(RTLIBD) /Gm /ZI /Od /D_DEBUG /RTC1\r
77 LINKD = link.exe /incremental:yes /debug /libpath:"../lib"\r
78 RCD   = rc.exe /dDEBUGBUILD=1\r
79 \r
80 CFLAGS   = /I../lib /I../include /nologo /W3 /EHsc /DWIN32 /FD /c\r
81 LFLAGS   = /nologo /out:$(PROGRAM_NAME) /subsystem:console /machine:$(MACHINE)\r
82 RESFLAGS = /i../include\r
83 \r
84 # This manifest thing is for VC8, enabled by the maketgz script that\r
85 # builds the VC8 version of this makefile. Left commented out in the VC10\r
86 # version!\r
87 #MANIFESTTOOL = mt -manifest $(PROGRAM_NAME).manifest -outputresource:$(PROGRAM_NAME);1\r
88 \r
89 !IFDEF WINDOWS_SSPI\r
90 CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include\r
91 !ENDIF\r
92 \r
93 RELEASE_OBJS= \\r
94         curlutilr.obj \\r
95         getpassr.obj \\r
96         homedirr.obj \\r
97         hugehelpr.obj \\r
98         mainr.obj \\r
99         nonblockr.obj \\r
100         os-specificr.obj \\r
101         rawstrr.obj \\r
102         strtoofftr.obj \\r
103         urlglobr.obj \\r
104         writeoutr.obj \\r
105         xattrr.obj \\r
106         curlr.res\r
107 \r
108 DEBUG_OBJS= \\r
109         curlutild.obj \\r
110         getpassd.obj \\r
111         homedird.obj \\r
112         hugehelpd.obj \\r
113         maind.obj \\r
114         nonblockd.obj \\r
115         os-specificd.obj \\r
116         rawstrd.obj \\r
117         strtoofftd.obj \\r
118         urlglobd.obj \\r
119         writeoutd.obj \\r
120         xattrd.obj \\r
121         curld.res\r
122 \r
123 #################################################\r
124 # If CFG not specified, use static libs\r
125 \r
126 CFLAGS         = $(CFLAGS) /DCURL_STATICLIB\r
127 LINKLIBS       = libcurl.lib\r
128 LINKLIBS_DEBUG = libcurld.lib\r
129 \r
130 #################################################\r
131 # release dynamic library\r
132 \r
133 !IF "$(CFG)" == "release-dll"\r
134 LINKLIBS       = libcurl_imp.lib\r
135 LINKLIBS_DEBUG = libcurld_imp.lib\r
136 !ENDIF\r
137 \r
138 #################################################\r
139 # release static library with zlib\r
140 \r
141 !IF "$(CFG)" == "release-zlib"\r
142 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
143 LINKLIBS       = libcurl.lib  $(ZLIB_LIBS)\r
144 LINKLIBS_DEBUG = libcurld.lib $(ZLIB_LIBS)\r
145 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)\r
146 !ENDIF\r
147 \r
148 #################################################\r
149 # release static library with ssl\r
150 \r
151 !IF "$(CFG)" == "release-ssl"\r
152 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB\r
153 LINKLIBS       = libcurl.lib  $(SSL_LIBS)\r
154 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS)\r
155 LFLAGS         = $(LFLAGS) $(SSL_LFLAGS)\r
156 !ENDIF\r
157 \r
158 #################################################\r
159 # release dynamic library with dynamic ssl\r
160 \r
161 !IF "$(CFG)" == "release-dll-ssl-dll"\r
162 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS)\r
163 LINKLIBS       = libcurl_imp.lib  $(SSL_LIBS)\r
164 LINKLIBS_DEBUG = libcurld_imp.lib $(SSL_LIBS)\r
165 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS)\r
166 !ENDIF\r
167 \r
168 #################################################\r
169 # release static library with ssl and zlib\r
170 \r
171 !IF "$(CFG)" == "release-ssl-zlib"\r
172 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
173 LINKLIBS       = libcurl.lib  $(SSL_LIBS) $(ZLIB_LIBS)\r
174 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS) $(ZLIB_LIBS)\r
175 LFLAGS         = $(LFLAGS) $(SSL_LFLAGS) $(ZLIB_LFLAGS)\r
176 !ENDIF\r
177 \r
178 #################################################\r
179 # release static library with dynamic ssl\r
180 \r
181 !IF "$(CFG)" == "release-ssl-dll"\r
182 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB\r
183 LINKLIBS       = libcurl.lib  $(SSL_LIBS)\r
184 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS)\r
185 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS)\r
186 !ENDIF\r
187 \r
188 #################################################\r
189 # release static library with dynamic zlib\r
190 \r
191 !IF "$(CFG)" == "release-zlib-dll"\r
192 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
193 LINKLIBS       = libcurl.lib  $(ZLIB_IMP_LIBS)\r
194 LINKLIBS_DEBUG = libcurld.lib $(ZLIB_IMP_LIBS)\r
195 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)\r
196 !ENDIF\r
197 \r
198 #################################################\r
199 # release dynamic library with dynamic zlib\r
200 \r
201 !IF "$(CFG)" == "release-dll-zlib-dll"\r
202 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS)\r
203 LINKLIBS       = libcurl_imp.lib  $(ZLIB_IMP_LIBS)\r
204 LINKLIBS_DEBUG = libcurld_imp.lib $(ZLIB_IMP_LIBS)\r
205 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)\r
206 !ENDIF\r
207 \r
208 #################################################\r
209 # release static library with dynamic ssl and dynamic zlib\r
210 \r
211 !IF "$(CFG)" == "release-ssl-dll-zlib-dll"\r
212 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB\r
213 LINKLIBS       = libcurl.lib  $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
214 LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
215 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)\r
216 !ENDIF\r
217 \r
218 #################################################\r
219 # release dynamic library with dynamic ssl and dynamic zlib\r
220 \r
221 !IF "$(CFG)" == "release-dll-ssl-dll-zlib-dll"\r
222 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS)\r
223 LINKLIBS       = libcurl_imp.lib  $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
224 LINKLIBS_DEBUG = libcurld_imp.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)\r
225 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)\r
226 !ENDIF\r
227 \r
228 \r
229 LINKLIBS       = $(LINKLIBS) ws2_32.lib wldap32.lib\r
230 LINKLIBS_DEBUG = $(LINKLIBS_DEBUG) ws2_32.lib wldap32.lib\r
231 \r
232 all : release\r
233 \r
234 release: $(RELEASE_OBJS)\r
235         $(LINKR) $(LFLAGS) $(LINKLIBS) $(RELEASE_OBJS)\r
236         $(MANIFESTTOOL)\r
237 \r
238 debug: $(DEBUG_OBJS)\r
239         $(LINKD) $(LFLAGS) $(LINKLIBS_DEBUG) $(DEBUG_OBJS)\r
240         $(MANIFESTTOOL)\r
241 \r
242 ## Release\r
243 hugehelpr.obj: hugehelp.c\r
244         $(CCR) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c\r
245 writeoutr.obj: writeout.c\r
246         $(CCR) $(CFLAGS) /Fo"$@" writeout.c\r
247 urlglobr.obj: urlglob.c\r
248         $(CCR) $(CFLAGS) /Fo"$@" urlglob.c\r
249 getpassr.obj: getpass.c\r
250         $(CCR) $(CFLAGS) /Fo"$@" getpass.c\r
251 homedirr.obj: homedir.c\r
252         $(CCR) $(CFLAGS) /Fo"$@" homedir.c\r
253 curlutilr.obj: curlutil.c\r
254         $(CCR) $(CFLAGS) /Fo"$@" curlutil.c\r
255 os-specificr.obj: os-specific.c\r
256         $(CCR) $(CFLAGS) /Fo"$@" os-specific.c\r
257 nonblockr.obj: ../lib/nonblock.c\r
258         $(CCR) $(CFLAGS) /Fo"$@" ../lib/nonblock.c\r
259 rawstrr.obj: ../lib/rawstr.c\r
260         $(CCR) $(CFLAGS) /Fo"$@" ../lib/rawstr.c\r
261 strtoofftr.obj: ../lib/strtoofft.c\r
262         $(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c\r
263 xattrr.obj: xattr.c\r
264         $(CCR) $(CFLAGS) /Fo"$@" xattr.c\r
265 mainr.obj: main.c\r
266         $(CCR) $(CFLAGS) /Fo"$@" main.c\r
267 curlr.res : curl.rc\r
268         $(RCR) $(RESFLAGS) /Fo"$@" curl.rc\r
269 \r
270 ## Debug\r
271 hugehelpd.obj: hugehelp.c\r
272         $(CCD) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c\r
273 writeoutd.obj: writeout.c\r
274         $(CCD) $(CFLAGS) /Fo"$@" writeout.c\r
275 urlglobd.obj: urlglob.c\r
276         $(CCD) $(CFLAGS) /Fo"$@" urlglob.c\r
277 getpassd.obj: getpass.c\r
278         $(CCD) $(CFLAGS) /Fo"$@" getpass.c\r
279 homedird.obj: homedir.c\r
280         $(CCD) $(CFLAGS) /Fo"$@" homedir.c\r
281 curlutild.obj: curlutil.c\r
282         $(CCD) $(CFLAGS) /Fo"$@" curlutil.c\r
283 os-specificd.obj: os-specific.c\r
284         $(CCD) $(CFLAGS) /Fo"$@" os-specific.c\r
285 nonblockd.obj: ../lib/nonblock.c\r
286         $(CCD) $(CFLAGS) /Fo"$@" ../lib/nonblock.c\r
287 rawstrd.obj: ../lib/rawstr.c\r
288         $(CCD) $(CFLAGS) /Fo"$@" ../lib/rawstr.c\r
289 strtoofftd.obj: ../lib/strtoofft.c\r
290         $(CCD) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c\r
291 xattrd.obj: xattr.c\r
292         $(CCD) $(CFLAGS) /Fo"$@" xattr.c\r
293 maind.obj: main.c\r
294         $(CCD) $(CFLAGS) /Fo"$@" main.c\r
295 curld.res : curl.rc\r
296         $(RCD) $(RESFLAGS) /Fo"$@" curl.rc\r
297 \r
298 clean:\r
299         @-erase $(PROGRAM_NAME) 2> NUL\r
300         @-erase $(RELEASE_OBJS) 2> NUL\r
301         @-erase $(DEBUG_OBJS) 2> NUL\r
302         @-erase *.idb 2> NUL\r
303         @-erase *.pdb 2> NUL\r
304         @-erase *.pch 2> NUL\r
305         @-erase *.ilk 2> NUL\r