1
#############################################################
2
# $Id: Makefile.vc9,v 1.19 2004/11/14 13:48:15 giva Exp $
4
## Makefile for building curl.exe with MSVC9
5
## Use: nmake -f makefile.vc9 [release | debug] [CFG=release-ssl]
6
## (default is release)
7
## "nmake -f makefile.vc9 CFG=release-ssl" statically links OpenSSL
8
## into curl.exe producing a standalone SSL-enabled executable.
10
## Comments to: Troy Engel <tengel@sonic.net>
11
## Updated by: Craig Davison <cd@securityfocus.com>
12
## release-ssl added by Miklos Nemeth <mnemeth@kfkisystems.com>
14
#############################################################
16
PROGRAM_NAME = curl.exe
19
ZLIB_PATH = ../../zlib-1.2.3
23
OPENSSL_PATH = ../../openssl-0.9.8g
30
# USE_WINDOWS_SSPI uses windows libraries to allow NTLM authentication
31
# without an openssl installation and offers the ability to authenticate
32
# using the "current logged in user". Since at least with MSVC9 the sspi.h
33
# header is broken it is either required to install the Windows SDK,
34
# or to fix sspi.h with adding this define at the beginning of sspi.h:
35
# #define FreeCredentialHandle FreeCredentialsHandle
37
# If, for some reason the Windows SDK is installed but not installed
38
# in the default location, you can specify WINDOWS_SDK_PATH.
39
# It can be downloaded from:
40
# http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
45
!IFNDEF WINDOWS_SDK_PATH
46
WINDOWS_SDK_PATH = "C:\Program Files\Microsoft SDK"
50
########################################################
51
## Nothing more to do below this line!
52
ZLIB_CFLAGS = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ /I "$(ZLIB_PATH)"
53
ZLIB_LFLAGS = "/LIBPATH:$(ZLIB_PATH)"
55
ZLIB_IMP_LIBS = zdll.lib
57
SSL_CFLAGS = /DUSE_SSLEAY
58
SSL_LFLAGS = /LIBPATH:"$(OPENSSL_PATH)/out32"
59
SSL_IMP_LFLAGS = /LIBPATH:"$(OPENSSL_PATH)/out32dll"
60
SSL_LIBS = libeay32.lib ssleay32.lib gdi32.lib user32.lib advapi32.lib
62
# Runtime library configuration
66
!IF "$(RTLIBCFG)" == "static"
72
CCR = cl.exe $(RTLIB) /O2 /DNDEBUG
73
LINKR = link.exe /incremental:no /libpath:"../lib"
74
RCR = rc.exe /dCURLDEBUG=0
77
CCD = cl.exe $(RTLIBD) /Gm /ZI /Od /D_DEBUG /RTC1
78
LINKD = link.exe /incremental:yes /debug /libpath:"../lib"
79
RCD = rc.exe /dCURLDEBUG=1
81
CFLAGS = /I../lib /I../include /nologo /W3 /EHsc /DWIN32 /FD /c
82
LFLAGS = /nologo /out:$(PROGRAM_NAME) /subsystem:console /machine:$(MACHINE)
83
RESFLAGS = /i../include
85
# This manifest thing is for VC8, enabled by the maketgz script that
86
# builds the VC8 version of this makefile. Left commented out in the VC9
88
#MANIFESTTOOL = mt -manifest $(PROGRAM_NAME).manifest -outputresource:$(PROGRAM_NAME);1
91
CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include
118
#################################################
119
# If CFG not specified, use static libs
121
CFLAGS = $(CFLAGS) /DCURL_STATICLIB
122
LINKLIBS = libcurl.lib
123
LINKLIBS_DEBUG = libcurld.lib
125
#################################################
126
# release dynamic library
128
!IF "$(CFG)" == "release-dll"
129
LINKLIBS = libcurl_imp.lib
130
LINKLIBS_DEBUG = libcurld_imp.lib
133
#################################################
134
# release static library with zlib
136
!IF "$(CFG)" == "release-zlib"
137
CFLAGS = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
138
LINKLIBS = libcurl.lib $(ZLIB_LIBS)
139
LINKLIBS_DEBUG = libcurld.lib $(ZLIB_LIBS)
140
LFLAGS = $(LFLAGS) $(ZLIB_LFLAGS)
143
#################################################
144
# release static library with ssl
146
!IF "$(CFG)" == "release-ssl"
147
CFLAGS = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB
148
LINKLIBS = libcurl.lib $(SSL_LIBS)
149
LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS)
150
LFLAGS = $(LFLAGS) $(SSL_LFLAGS)
153
#################################################
154
# release dynamic library with dynamic ssl
156
!IF "$(CFG)" == "release-dll-ssl-dll"
157
CFLAGS = $(CFLAGS) $(SSL_CFLAGS)
158
LINKLIBS = libcurl_imp.lib $(SSL_LIBS)
159
LINKLIBS_DEBUG = libcurld_imp.lib $(SSL_LIBS)
160
LFLAGS = $(LFLAGS) $(SSL_IMP_LFLAGS)
163
#################################################
164
# release static library with ssl and zlib
166
!IF "$(CFG)" == "release-ssl-zlib"
167
CFLAGS = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
168
LINKLIBS = libcurl.lib $(SSL_LIBS) $(ZLIB_LIBS)
169
LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS) $(ZLIB_LIBS)
170
LFLAGS = $(LFLAGS) $(SSL_LFLAGS) $(ZLIB_LFLAGS)
173
#################################################
174
# release static library with dynamic ssl
176
!IF "$(CFG)" == "release-ssl-dll"
177
CFLAGS = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB
178
LINKLIBS = libcurl.lib $(SSL_LIBS)
179
LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS)
180
LFLAGS = $(LFLAGS) $(SSL_IMP_LFLAGS)
183
#################################################
184
# release static library with dynamic zlib
186
!IF "$(CFG)" == "release-zlib-dll"
187
CFLAGS = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
188
LINKLIBS = libcurl.lib $(ZLIB_IMP_LIBS)
189
LINKLIBS_DEBUG = libcurld.lib $(ZLIB_IMP_LIBS)
190
LFLAGS = $(LFLAGS) $(ZLIB_LFLAGS)
193
#################################################
194
# release dynamic library with dynamic zlib
196
!IF "$(CFG)" == "release-dll-zlib-dll"
197
CFLAGS = $(CFLAGS) $(ZLIB_CFLAGS)
198
LINKLIBS = libcurl_imp.lib $(ZLIB_IMP_LIBS)
199
LINKLIBS_DEBUG = libcurld_imp.lib $(ZLIB_IMP_LIBS)
200
LFLAGS = $(LFLAGS) $(ZLIB_LFLAGS)
203
#################################################
204
# release static library with dynamic ssl and dynamic zlib
206
!IF "$(CFG)" == "release-ssl-dll-zlib-dll"
207
CFLAGS = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
208
LINKLIBS = libcurl.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)
209
LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)
210
LFLAGS = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)
213
#################################################
214
# release dynamic library with dynamic ssl and dynamic zlib
216
!IF "$(CFG)" == "release-dll-ssl-dll-zlib-dll"
217
CFLAGS = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS)
218
LINKLIBS = libcurl_imp.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)
219
LINKLIBS_DEBUG = libcurld_imp.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)
220
LFLAGS = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)
224
LINKLIBS = $(LINKLIBS) ws2_32.lib wldap32.lib
225
LINKLIBS_DEBUG = $(LINKLIBS_DEBUG) ws2_32.lib wldap32.lib
229
release: $(RELEASE_OBJS)
230
$(LINKR) $(LFLAGS) $(LINKLIBS) $(RELEASE_OBJS)
234
$(LINKD) $(LFLAGS) $(LINKLIBS_DEBUG) $(DEBUG_OBJS)
238
hugehelpr.obj: hugehelp.c
239
$(CCR) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c
240
writeoutr.obj: writeout.c
241
$(CCR) $(CFLAGS) /Fo"$@" writeout.c
242
urlglobr.obj: urlglob.c
243
$(CCR) $(CFLAGS) /Fo"$@" urlglob.c
244
getpassr.obj: getpass.c
245
$(CCR) $(CFLAGS) /Fo"$@" getpass.c
246
homedirr.obj: homedir.c
247
$(CCR) $(CFLAGS) /Fo"$@" homedir.c
248
curlutilr.obj: curlutil.c
249
$(CCR) $(CFLAGS) /Fo"$@" curlutil.c
250
rawstrr.obj: ../lib/rawstr.c
251
$(CCR) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
252
strtoofftr.obj: ../lib/strtoofft.c
253
$(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
255
$(CCR) $(CFLAGS) /Fo"$@" main.c
257
$(RCR) $(RESFLAGS) /Fo"$@" curl.rc
260
hugehelpd.obj: hugehelp.c
261
$(CCD) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c
262
writeoutd.obj: writeout.c
263
$(CCD) $(CFLAGS) /Fo"$@" writeout.c
264
urlglobd.obj: urlglob.c
265
$(CCD) $(CFLAGS) /Fo"$@" urlglob.c
266
getpassd.obj: getpass.c
267
$(CCD) $(CFLAGS) /Fo"$@" getpass.c
268
homedird.obj: homedir.c
269
$(CCD) $(CFLAGS) /Fo"$@" homedir.c
270
curlutild.obj: curlutil.c
271
$(CCD) $(CFLAGS) /Fo"$@" curlutil.c
272
rawstrd.obj: ../lib/rawstr.c
273
$(CCD) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
274
strtoofftd.obj: ../lib/strtoofft.c
275
$(CCD) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
277
$(CCD) $(CFLAGS) /Fo"$@" main.c
279
$(RCD) $(RESFLAGS) /Fo"$@" curl.rc
282
@-erase $(PROGRAM_NAME) 2> NUL
283
@-erase $(RELEASE_OBJS) 2> NUL
284
@-erase $(DEBUG_OBJS) 2> NUL