1 #############################################################
3 # Makefile for building libcurl with MSVC6
5 # Usage: see usage message below
6 # Should be invoked from \lib directory
7 # Edit the paths and desired library name
8 # SSL path is only required if you intend compiling
11 # This make file leaves the result either a .lib or .dll file
12 # in the \lib directory. It should be called from the \lib
15 # An option would have been to allow the source directory to
16 # be specified, but I saw no requirement.
18 # Another option would have been to leave the .lib and .dll
19 # files in the "cfg" directory, but then the make file
20 # in \src would need to be changed.
22 ##############################################################
24 # ------------------------------------------------------------
25 # 05.11.2001 John Lask Initial Release
26 # 02.05.2002 Miklos Nemeth OPENSSL_PATH environment; no need
27 # for OpenSSL libraries when creating a
29 # 10.14.2003 Added a target release-libcurl-ssl-dll which
30 # is intended to allow static linking of libcurl with dynamic
32 ##############################################################
35 LIB_NAME_DEBUG = libcurld
37 OPENSSL_PATH = ../../openssl-0.9.7a
40 #############################################################
41 ## Nothing more to do below this line!
43 CCNODBG = cl.exe /MD /O2 /D "NDEBUG"
44 CCDEBUG = cl.exe /MDd /Od /Gm /Zi /D "_DEBUG" /GZ
45 CFLAGSSSL = /D "USE_SSLEAY" /I "$(OPENSSL_PATH)/inc32" /I "$(OPENSSL_PATH)/inc32/openssl"
46 CFLAGS = /I "." /I "../include" /nologo /W3 /GX /D "WIN32" /D "VC6" /D "_MBCS" /D "_LIB" /YX /FD /c /D "MSDOS"
48 LNKDLL = link.exe /DLL /def:libcurl.def
49 LNKLIB = link.exe /lib
51 SSLLIBS = libeay32.lib ssleay32.lib
52 # RSAglue.lib was formerly needed in the SSLLIBS
55 ######################
58 !IF "$(CFG)" == "release"
59 TARGET =$(LIB_NAME).lib
61 LNK = $(LNKLIB) /out:$(TARGET)
66 ######################
69 !IF "$(CFG)" == "release-dll"
70 TARGET =$(LIB_NAME).dll
72 LNK = $(LNKDLL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME).lib"
75 RESOURCE = $(DIROBJ)\libcurl.res
78 ######################
81 !IF "$(CFG)" == "release-ssl"
82 TARGET =$(LIB_NAME).lib
84 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)/out32"
85 LNK = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)
86 CC = $(CCNODBG) $(CFLAGSSSL)
90 ######################
93 !IF "$(CFG)" == "release-ssl-dll"
94 TARGET =$(LIB_NAME).dll
96 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)/out32dll"
97 LNK = $(LNKDLL) $(LFLAGSSSL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME).lib"
98 CC = $(CCNODBG) $(CFLAGSSSL)
100 RESOURCE = $(DIROBJ)\libcurl.res
103 ######################
104 # release-libcurl-ssl-dll
105 !IF "$(CFG)" == "release-libcurl-ssl-dll"
106 TARGET =$(LIB_NAME).lib
108 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)/out32dll"
109 LNK = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)
110 CC = $(CCNODBG) $(CFLAGSSSL)
112 RESOURCE = $(DIROBJ)\libcurl.res
116 ######################
119 !IF "$(CFG)" == "debug"
120 TARGET =$(LIB_NAME_DEBUG).lib
122 LNK = $(LNKLIB) /out:$(TARGET)
127 ######################
130 !IF "$(CFG)" == "debug-dll"
131 TARGET =$(LIB_NAME_DEBUG).dll
133 LNK = $(LNKDLL) /DEBUG /out:$(TARGET) /IMPLIB:"$(LIB_NAME_DEBUG).lib" /PDB:"$(LIB_NAME_DEBUG).pdb"
136 RESOURCE = $(DIROBJ)\libcurl.res
139 ######################
142 !IF "$(CFG)" == "debug-ssl"
143 TARGET = $(LIB_NAME_DEBUG).lib
145 LNK = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)
146 CC = $(CCDEBUG) $(CFLAGSSSL)
150 ######################
153 !IF "$(CFG)" == "debug-ssl-dll"
154 TARGET =$(LIB_NAME_DEBUG).dll
156 LFLAGSSSL = /LIBPATH:$(OPENSSL_PATH)/out32dll
157 LNK = $(LNKDLL) $(LFLAGSSSL) /DEBUG /out:$(TARGET) /IMPLIB:"$(LIB_NAME_DEBUG).lib" /PDB:"$(LIB_NAME_DEBUG).pdb"
158 CC = $(CCDEBUG) $(CFLAGSSSL)
160 RESOURCE = $(DIROBJ)\libcurl.res
163 #######################
166 !IF "$(CFGSET)" == "FALSE"
167 !MESSAGE Usage: nmake /f makefile.vc6 CFG=<config> <target>
168 !MESSAGE where <config> is one of:
169 !MESSAGE release - release static library
170 !MESSAGE release-dll - release dll
171 !MESSAGE release-ssl - release static library with ssl
172 !MESSAGE release-ssl-dll - release dll library with ssl
173 !MESSAGE release-libcurl-ssl-dll - static libcurl with shared ssl
174 !MESSAGE debug - debug static library
175 !MESSAGE debug-dll - debug dll
176 !MESSAGE debug-ssl - debug static library with ssl
177 !MESSAGE debug-ssl-dll - debug dll library with ssl
178 !MESSAGE <target> can be left blank in which case all is assumed
179 !ERROR please choose a valid configuration "$(CFG)"
182 #######################
185 $(DIROBJ)\base64.obj \
186 $(DIROBJ)\cookie.obj \
187 $(DIROBJ)\transfer.obj \
188 $(DIROBJ)\escape.obj \
189 $(DIROBJ)\formdata.obj \
192 $(DIROBJ)\http_chunks.obj \
195 $(DIROBJ)\telnet.obj \
196 $(DIROBJ)\getdate.obj \
197 $(DIROBJ)\getenv.obj \
198 $(DIROBJ)\inet_pton.obj \
199 $(DIROBJ)\hostip.obj \
200 $(DIROBJ)\if2ip.obj \
201 $(DIROBJ)\mprintf.obj \
202 $(DIROBJ)\netrc.obj \
203 $(DIROBJ)\progress.obj \
204 $(DIROBJ)\sendf.obj \
205 $(DIROBJ)\speedcheck.obj \
206 $(DIROBJ)\ssluse.obj \
207 $(DIROBJ)\timeval.obj \
210 $(DIROBJ)\getinfo.obj \
211 $(DIROBJ)\version.obj \
213 $(DIROBJ)\strequal.obj \
214 $(DIROBJ)\strtok.obj \
215 $(DIROBJ)\strtoofft.obj \
216 $(DIROBJ)\connect.obj \
218 $(DIROBJ)\llist.obj \
219 $(DIROBJ)\share.obj \
220 $(DIROBJ)\multi.obj \
221 $(DIROBJ)\http_digest.obj \
222 $(DIROBJ)\http_negotiate.obj \
223 $(DIROBJ)\http_ntlm.obj \
231 $(LNK) $(LFLAGS) $(X_OBJS)
236 @if not exist "$(DIROBJ)" mkdir $(DIROBJ)
238 .SUFFIXES: .c .obj .res
240 {.\}.c{$(DIROBJ)\}.obj:
241 $(CC) $(CFLAGS) /Fo"$@" $<
243 debug-dll\libcurl.res \
244 debug-ssl-dll\libcurl.res \
245 release-libcurl-ssl-dll\libcurl.res: libcurl.rc
246 rc /dCURLDEBUG=1 /Fo $@ libcurl.rc
248 release-dll\libcurl.res \
249 release-ssl-dll\libcurl.res \
250 release-libcurl-ssl-dll\libcurl.res: libcurl.rc
251 rc /dCURLDEBUG=0 /Fo $@ libcurl.rc
254 -@erase $(DIROBJ)\*.obj
255 -@erase $(DIROBJ)\*.res