]> icculus.org git repositories - icculus/iodoom3.git/blob - neo/curl/lib/Makefile.vc6
Various Mac OS X tweaks to get this to build. Probably breaking things.
[icculus/iodoom3.git] / neo / curl / lib / Makefile.vc6
1 #############################################################
2 #
3 # Makefile for building libcurl with MSVC6
4 #
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
9 #        with SSL.
10 #
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
13 # directory.
14 #
15 # An option would have been to allow the source directory to
16 # be specified, but I saw no requirement.
17 #
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.
21 #
22 ##############################################################
23 # CHANGE LOG
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 
28 #              static libcurl.lib
29 # 10.14.2003   Added a target release-libcurl-ssl-dll which
30 #              is intended to allow static linking of libcurl with dynamic
31 #              linking of openssl
32 ##############################################################
33
34 LIB_NAME       = libcurl
35 LIB_NAME_DEBUG = libcurld
36 !IFNDEF OPENSSL_PATH
37 OPENSSL_PATH   = ../../openssl-0.9.7a
38 !ENDIF
39
40 #############################################################
41 ## Nothing more to do below this line!
42
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"
47
48 LNKDLL    = link.exe /DLL  /def:libcurl.def
49 LNKLIB    = link.exe /lib
50 LFLAGS    = /nologo
51 SSLLIBS   = libeay32.lib ssleay32.lib
52 #  RSAglue.lib was formerly needed in the SSLLIBS
53 CFGSET    = FALSE
54
55 ######################
56 # release
57
58 !IF "$(CFG)" == "release"
59 TARGET =$(LIB_NAME).lib
60 DIROBJ =.\$(CFG)
61 LNK    = $(LNKLIB) /out:$(TARGET)
62 CC     = $(CCNODBG)
63 CFGSET = TRUE
64 !ENDIF
65
66 ######################
67 # release-dll
68
69 !IF "$(CFG)" == "release-dll"
70 TARGET =$(LIB_NAME).dll
71 DIROBJ =.\$(CFG)
72 LNK    = $(LNKDLL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME).lib"
73 CC     = $(CCNODBG)
74 CFGSET = TRUE
75 RESOURCE = $(DIROBJ)\libcurl.res
76 !ENDIF
77
78 ######################
79 # release-ssl
80
81 !IF "$(CFG)" == "release-ssl"
82 TARGET   =$(LIB_NAME).lib
83 DIROBJ   =.\$(CFG)
84 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)/out32"
85 LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)
86 CC       = $(CCNODBG) $(CFLAGSSSL)
87 CFGSET   = TRUE
88 !ENDIF
89
90 ######################
91 # release-ssl-dll
92
93 !IF "$(CFG)" == "release-ssl-dll"
94 TARGET   =$(LIB_NAME).dll
95 DIROBJ   =.\$(CFG)
96 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)/out32dll"
97 LNK      = $(LNKDLL) $(LFLAGSSSL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME).lib"
98 CC       = $(CCNODBG)  $(CFLAGSSSL)
99 CFGSET   = TRUE
100 RESOURCE = $(DIROBJ)\libcurl.res
101 !ENDIF
102
103 ######################
104 # release-libcurl-ssl-dll
105 !IF "$(CFG)" == "release-libcurl-ssl-dll"
106 TARGET   =$(LIB_NAME).lib
107 DIROBJ   =.\$(CFG)
108 LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)/out32dll"
109 LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)
110 CC       = $(CCNODBG)  $(CFLAGSSSL)
111 CFGSET   = TRUE
112 RESOURCE = $(DIROBJ)\libcurl.res
113 !ENDIF
114
115
116 ######################
117 # debug
118
119 !IF "$(CFG)" == "debug"
120 TARGET =$(LIB_NAME_DEBUG).lib
121 DIROBJ =.\$(CFG)
122 LNK    = $(LNKLIB) /out:$(TARGET)
123 CC     = $(CCDEBUG)
124 CFGSET = TRUE
125 !ENDIF
126
127 ######################
128 # debug-dll
129
130 !IF "$(CFG)" == "debug-dll"
131 TARGET =$(LIB_NAME_DEBUG).dll
132 DIROBJ =.\$(CFG)
133 LNK    = $(LNKDLL) /DEBUG /out:$(TARGET) /IMPLIB:"$(LIB_NAME_DEBUG).lib" /PDB:"$(LIB_NAME_DEBUG).pdb"
134 CC     = $(CCDEBUG)
135 CFGSET = TRUE
136 RESOURCE = $(DIROBJ)\libcurl.res
137 !ENDIF
138
139 ######################
140 # debug-ssl
141 #todo
142 !IF "$(CFG)" == "debug-ssl"
143 TARGET   = $(LIB_NAME_DEBUG).lib
144 DIROBJ   =.\$(CFG)
145 LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)
146 CC       = $(CCDEBUG) $(CFLAGSSSL)
147 CFGSET   = TRUE
148 !ENDIF
149
150 ######################
151 # debug-ssl-dll
152
153 !IF "$(CFG)" == "debug-ssl-dll"
154 TARGET   =$(LIB_NAME_DEBUG).dll
155 DIROBJ   =.\$(CFG)
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)
159 CFGSET   = TRUE
160 RESOURCE = $(DIROBJ)\libcurl.res
161 !ENDIF
162
163 #######################
164 # Usage
165 #
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)"
180 !ENDIF
181
182 #######################
183 #
184 X_OBJS= \
185         $(DIROBJ)\base64.obj \
186         $(DIROBJ)\cookie.obj \
187         $(DIROBJ)\transfer.obj \
188         $(DIROBJ)\escape.obj \
189         $(DIROBJ)\formdata.obj \
190         $(DIROBJ)\ftp.obj \
191         $(DIROBJ)\http.obj \
192         $(DIROBJ)\http_chunks.obj \
193         $(DIROBJ)\ldap.obj \
194         $(DIROBJ)\dict.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 \
208         $(DIROBJ)\url.obj \
209         $(DIROBJ)\file.obj \
210         $(DIROBJ)\getinfo.obj \
211         $(DIROBJ)\version.obj \
212         $(DIROBJ)\easy.obj \
213         $(DIROBJ)\strequal.obj \
214         $(DIROBJ)\strtok.obj \
215         $(DIROBJ)\strtoofft.obj \
216         $(DIROBJ)\connect.obj \
217         $(DIROBJ)\hash.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 \
224         $(DIROBJ)\md5.obj \
225         $(RESOURCE)
226
227 all : $(TARGET)
228
229
230 $(TARGET): $(X_OBJS)
231         $(LNK) $(LFLAGS) $(X_OBJS)
232
233 $(X_OBJS): $(DIROBJ)
234
235 $(DIROBJ):
236         @if not exist "$(DIROBJ)" mkdir $(DIROBJ)
237
238 .SUFFIXES: .c .obj .res
239
240 {.\}.c{$(DIROBJ)\}.obj:
241         $(CC) $(CFLAGS) /Fo"$@"  $<
242
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
247
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
252
253 clean:
254         -@erase $(DIROBJ)\*.obj
255         -@erase $(DIROBJ)\*.res
256         -@erase vc60.idb
257         -@erase vc60.pch