#############################################################\r
#\r
-## Makefile for building libcurl.lib with MSVC6\r
-## Use: nmake -f makefile.vc6 [release | release-ssl | debug]\r
-## (default is release)\r
-##\r
-## Originally written by: Troy Engel <tengel@sonic.net>\r
-## Updated by: Craig Davison <cd@securityfocus.com>\r
-## Updated by: SM <sm@technologist.com>\r
-\r
-PROGRAM_NAME = libcurl.lib\r
-PROGRAM_NAME_DEBUG = libcurld.lib\r
-#OPENSSL_PATH = ../../openssl-0.9.6b\r
-\r
-########################################################\r
-## Nothing more to do below this line!\r
-\r
-## Release\r
-CCR = cl.exe /MD /O2 /D "NDEBUG"\r
-LINKR = link.exe -lib /out:$(PROGRAM_NAME)\r
+# Makefile for building libcurl with MSVC6\r
+#\r
+# Usage: see usage message below\r
+# Should be invoked from \lib directory\r
+# Edit the paths and desired library name\r
+# SSL path is only required if you intend compiling \r
+# with SSL.\r
+#\r
+# This make file leaves the result either a .lib or .dll file\r
+# in the \lib directory. It should be called from the \lib\r
+# directory.\r
+#\r
+# An option would have been to allow the source directory to\r
+# be specified, but I saw no requirement.\r
+#\r
+# Another option would have been to leave the .lib and .dll\r
+# files in the "cfg" directory, but then the make file\r
+# in \src would need to be changed. \r
+# \r
+##############################################################\r
+# CHANGE LOG \r
+# ------------------------------------------------------------\r
+# 05.11.2001 John Lask Initial Release\r
+# \r
+#\r
+##############################################################\r
\r
-## Debug\r
-CCD = cl.exe /MDd /Gm /ZI /Od /D "_DEBUG" /GZ\r
-LINKD = link.exe -lib /out:$(PROGRAM_NAME_DEBUG)\r
+LIB_NAME = libcurl\r
+LIB_NAME_DEBUG = libcurl\r
+OPENSSL_PATH = ../../openssl-0.9.6\r
\r
-## SSL Release\r
-CCRS = cl.exe /MD /O2 /D "NDEBUG" /D "USE_SSLEAY" /I "$(OPENSSL_PATH)/inc32" /I "$(OPENSSL_PATH)/inc32/openssl"\r
-LINKRS = link.exe -lib /out:$(PROGRAM_NAME) /LIBPATH:$(OPENSSL_PATH)/out32dll\r
+#############################################################\r
+## Nothing more to do below this line!\r
\r
+CCNODBG = cl.exe /MD /O2 /D "NDEBUG"\r
+CCDEBUG = cl.exe /MDd /Od /Gm /Zi /D "_DEBUG" /GZ\r
+CFLAGSSSL = /D "USE_SSLEAY" /I "$(OPENSSL_PATH)/inc32" /I "$(OPENSSL_PATH)/inc32/openssl"\r
CFLAGS = /I "../include" /nologo /W3 /GX /D "WIN32" /D "VC6" /D "_MBCS" /D "_LIB" /YX /FD /c /D "MSDOS"\r
-LFLAGS = /nologo\r
-LINKLIBS = ws2_32.lib\r
-LINKSLIBS = libeay32.lib ssleay32.lib RSAglue.lib\r
-\r
-RELEASE_OBJS= \\r
- base64r.obj \\r
- cookier.obj \\r
- transferr.obj \\r
- escaper.obj \\r
- formdatar.obj \\r
- ftpr.obj \\r
- httpr.obj \\r
- http_chunksr.obj \\r
- ldapr.obj \\r
- dictr.obj \\r
- telnetr.obj \\r
- getdater.obj \\r
- getenvr.obj \\r
- getpassr.obj \\r
- hostipr.obj \\r
- if2ipr.obj \\r
- mprintfr.obj \\r
- netrcr.obj \\r
- progressr.obj \\r
- sendfr.obj \\r
- speedcheckr.obj \\r
- ssluser.obj \\r
- timevalr.obj \\r
- urlr.obj \\r
- filer.obj \\r
- getinfor.obj \\r
- versionr.obj \\r
- easyr.obj \\r
- strequalr.obj \\r
- strtokr.obj \\r
- connectr.obj\r
-\r
-DEBUG_OBJS= \\r
- base64d.obj \\r
- cookied.obj \\r
- transferd.obj \\r
- escaped.obj \\r
- formdatad.obj \\r
- ftpd.obj \\r
- httpd.obj \\r
- http_chunksd.obj \\r
- ldapd.obj \\r
- dictd.obj \\r
- telnetd.obj \\r
- getdated.obj \\r
- getenvd.obj \\r
- getpassd.obj \\r
- hostipd.obj \\r
- if2ipd.obj \\r
- mprintfd.obj \\r
- netrcd.obj \\r
- progressd.obj \\r
- sendfd.obj \\r
- speedcheckd.obj \\r
- sslused.obj \\r
- timevald.obj \\r
- urld.obj \\r
- filed.obj \\r
- getinfod.obj \\r
- versiond.obj \\r
- easyd.obj \\r
- strequald.obj \\r
- strtokd.obj \\r
- connectd.obj\r
-\r
-RELEASE_SSL_OBJS= \\r
- base64rs.obj \\r
- cookiers.obj \\r
- transferrs.obj \\r
- escapers.obj \\r
- formdatars.obj \\r
- ftprs.obj \\r
- httprs.obj \\r
- http_chunksrs.obj \\r
- ldaprs.obj \\r
- dictrs.obj \\r
- telnetrs.obj \\r
- getdaters.obj \\r
- getenvrs.obj \\r
- getpassrs.obj \\r
- hostiprs.obj \\r
- if2iprs.obj \\r
- mprintfrs.obj \\r
- netrcrs.obj \\r
- progressrs.obj \\r
- sendfrs.obj \\r
- speedcheckrs.obj \\r
- sslusers.obj \\r
- timevalrs.obj \\r
- urlrs.obj \\r
- filers.obj \\r
- getinfors.obj \\r
- versionrs.obj \\r
- easyrs.obj \\r
- strequalrs.obj \\r
- strtokrs.obj \\r
- connectrs.obj\r
-\r
-LINK_OBJS= \\r
- base64.obj \\r
- cookie.obj \\r
- transfer.obj \\r
- escape.obj \\r
- formdata.obj \\r
- ftp.obj \\r
- http.obj \\r
- http_chunks.obj \\r
- ldap.obj \\r
- dict.obj \\r
- telnet.obj \\r
- getdate.obj \\r
- getenv.obj \\r
- getpass.obj \\r
- hostip.obj \\r
- if2ip.obj \\r
- mprintf.obj \\r
- netrc.obj \\r
- progress.obj \\r
- sendf.obj \\r
- speedcheck.obj \\r
- ssluse.obj \\r
- timeval.obj \\r
- url.obj \\r
- file.obj \\r
- getinfo.obj \\r
- version.obj \\r
- easy.obj \\r
- strequal.obj \\r
- strtok.obj \\r
- connect.obj\r
-\r
-all : release\r
-\r
-release: $(RELEASE_OBJS)\r
- $(LINKR) $(LFLAGS) $(LINKLIBS) $(LINK_OBJS)\r
-\r
-debug: $(DEBUG_OBJS)\r
- $(LINKD) $(LFLAGS) $(LINKLIBS) $(LINK_OBJS)\r
-\r
-release-ssl: $(RELEASE_SSL_OBJS)\r
- $(LINKRS) $(LFLAGS) $(LINKLIBS) $(LINKSLIBS) $(LINK_OBJS)\r
-\r
-## Release\r
-base64r.obj: base64.c\r
- $(CCR) $(CFLAGS) base64.c\r
-cookier.obj: cookie.c\r
- $(CCR) $(CFLAGS) cookie.c\r
-transferr.obj: transfer.c\r
- $(CCR) $(CFLAGS) transfer.c\r
-escaper.obj: escape.c\r
- $(CCR) $(CFLAGS) escape.c\r
-formdatar.obj: formdata.c\r
- $(CCR) $(CFLAGS) formdata.c\r
-ftpr.obj: ftp.c\r
- $(CCR) $(CFLAGS) ftp.c\r
-httpr.obj: http.c\r
- $(CCR) $(CFLAGS) http.c\r
-http_chunksr.obj: http_chunks.c\r
- $(CCR) $(CFLAGS) http_chunks.c\r
-ldapr.obj: ldap.c\r
- $(CCR) $(CFLAGS) ldap.c\r
-dictr.obj: dict.c\r
- $(CCR) $(CFLAGS) dict.c\r
-telnetr.obj: telnet.c\r
- $(CCR) $(CFLAGS) telnet.c\r
-getdater.obj: getdate.c\r
- $(CCR) $(CFLAGS) getdate.c\r
-getenvr.obj: getenv.c\r
- $(CCR) $(CFLAGS) getenv.c\r
-getpassr.obj: getpass.c\r
- $(CCR) $(CFLAGS) getpass.c\r
-hostipr.obj: hostip.c\r
- $(CCR) $(CFLAGS) hostip.c\r
-if2ipr.obj: if2ip.c\r
- $(CCR) $(CFLAGS) if2ip.c\r
-mprintfr.obj: mprintf.c\r
- $(CCR) $(CFLAGS) mprintf.c\r
-netrcr.obj: netrc.c\r
- $(CCR) $(CFLAGS) netrc.c\r
-progressr.obj: progress.c\r
- $(CCR) $(CFLAGS) progress.c\r
-sendfr.obj: sendf.c\r
- $(CCR) $(CFLAGS) sendf.c\r
-speedcheckr.obj: speedcheck.c\r
- $(CCR) $(CFLAGS) speedcheck.c\r
-ssluser.obj: ssluse.c\r
- $(CCR) $(CFLAGS) ssluse.c\r
-timevalr.obj: timeval.c\r
- $(CCR) $(CFLAGS) timeval.c\r
-urlr.obj: url.c\r
- $(CCR) $(CFLAGS) url.c\r
-filer.obj: file.c\r
- $(CCR) $(CFLAGS) file.c\r
-getinfor.obj: getinfo.c\r
- $(CCR) $(CFLAGS) getinfo.c\r
-versionr.obj: version.c\r
- $(CCR) $(CFLAGS) version.c\r
-easyr.obj: easy.c\r
- $(CCR) $(CFLAGS) easy.c\r
-strequalr.obj: strequal.c\r
- $(CCR) $(CFLAGS) strequal.c\r
-strtokr.obj:strtok.c\r
- $(CCR) $(CFLAGS) strtok.c\r
-connectr.obj:connect.c\r
- $(CCR) $(CFLAGS) connect.c\r
-\r
-## Debug\r
-base64d.obj: base64.c\r
- $(CCD) $(CFLAGS) base64.c\r
-cookied.obj: cookie.c\r
- $(CCD) $(CFLAGS) cookie.c\r
-transferd.obj: transfer.c\r
- $(CCD) $(CFLAGS) transfer.c\r
-escaped.obj: escape.c\r
- $(CCD) $(CFLAGS) escape.c\r
-formdatad.obj: formdata.c\r
- $(CCD) $(CFLAGS) formdata.c\r
-ftpd.obj: ftp.c\r
- $(CCD) $(CFLAGS) ftp.c\r
-httpd.obj: http.c\r
- $(CCD) $(CFLAGS) http.c\r
-http_chunksd.obj: http_chunks.c\r
- $(CCD) $(CFLAGS) http_chunks.c\r
-ldapd.obj: ldap.c\r
- $(CCD) $(CFLAGS) ldap.c\r
-dictd.obj: dict.c\r
- $(CCD) $(CFLAGS) dict.c\r
-telnetd.obj: telnet.c\r
- $(CCD) $(CFLAGS) telnet.c\r
-getdated.obj: getdate.c\r
- $(CCD) $(CFLAGS) getdate.c\r
-getenvd.obj: getenv.c\r
- $(CCD) $(CFLAGS) getenv.c\r
-getpassd.obj: getpass.c\r
- $(CCD) $(CFLAGS) getpass.c\r
-hostipd.obj: hostip.c\r
- $(CCD) $(CFLAGS) hostip.c\r
-if2ipd.obj: if2ip.c\r
- $(CCD) $(CFLAGS) if2ip.c\r
-mprintfd.obj: mprintf.c\r
- $(CCD) $(CFLAGS) mprintf.c\r
-netrcd.obj: netrc.c\r
- $(CCD) $(CFLAGS) netrc.c\r
-progressd.obj: progress.c\r
- $(CCD) $(CFLAGS) progress.c\r
-sendfd.obj: sendf.c\r
- $(CCD) $(CFLAGS) sendf.c\r
-speedcheckd.obj: speedcheck.c\r
- $(CCD) $(CFLAGS) speedcheck.c\r
-sslused.obj: ssluse.c\r
- $(CCD) $(CFLAGS) ssluse.c\r
-timevald.obj: timeval.c\r
- $(CCD) $(CFLAGS) timeval.c\r
-urld.obj: url.c\r
- $(CCD) $(CFLAGS) url.c\r
-filed.obj: file.c\r
- $(CCD) $(CFLAGS) file.c\r
-getinfod.obj: getinfo.c\r
- $(CCD) $(CFLAGS) getinfo.c\r
-versiond.obj: version.c\r
- $(CCD) $(CFLAGS) version.c\r
-easyd.obj: easy.c\r
- $(CCD) $(CFLAGS) easy.c\r
-strequald.obj: strequal.c\r
- $(CCD) $(CFLAGS) strequal.c\r
-strtokd.obj:strtok.c\r
- $(CCD) $(CFLAGS) strtok.c\r
-connectd.obj:connect.c\r
- $(CCR) $(CFLAGS) connect.c\r
-\r
-## Release SSL\r
-base64rs.obj: base64.c\r
- $(CCRS) $(CFLAGS) base64.c\r
-cookiers.obj: cookie.c\r
- $(CCRS) $(CFLAGS) cookie.c\r
-transferrs.obj: transfer.c\r
- $(CCRS) $(CFLAGS) transfer.c\r
-escapers.obj: escape.c\r
- $(CCRS) $(CFLAGS) escape.c\r
-formdatars.obj: formdata.c\r
- $(CCRS) $(CFLAGS) formdata.c\r
-ftprs.obj: ftp.c\r
- $(CCRS) $(CFLAGS) ftp.c\r
-httprs.obj: http.c\r
- $(CCRS) $(CFLAGS) http.c\r
-http_chunksrs.obj: http_chunks.c\r
- $(CCRS) $(CFLAGS) http_chunks.c\r
-ldaprs.obj: ldap.c\r
- $(CCRS) $(CFLAGS) ldap.c\r
-dictrs.obj: dict.c\r
- $(CCRS) $(CFLAGS) dict.c\r
-telnetrs.obj: telnet.c\r
- $(CCRS) $(CFLAGS) telnet.c\r
-getdaters.obj: getdate.c\r
- $(CCRS) $(CFLAGS) getdate.c\r
-getenvrs.obj: getenv.c\r
- $(CCRS) $(CFLAGS) getenv.c\r
-getpassrs.obj: getpass.c\r
- $(CCRS) $(CFLAGS) getpass.c\r
-hostiprs.obj: hostip.c\r
- $(CCRS) $(CFLAGS) hostip.c\r
-if2iprs.obj: if2ip.c\r
- $(CCRS) $(CFLAGS) if2ip.c\r
-mprintfrs.obj: mprintf.c\r
- $(CCRS) $(CFLAGS) mprintf.c\r
-netrcrs.obj: netrc.c\r
- $(CCRS) $(CFLAGS) netrc.c\r
-progressrs.obj: progress.c\r
- $(CCRS) $(CFLAGS) progress.c\r
-sendfrs.obj: sendf.c\r
- $(CCRS) $(CFLAGS) sendf.c\r
-speedcheckrs.obj: speedcheck.c\r
- $(CCRS) $(CFLAGS) speedcheck.c\r
-sslusers.obj: ssluse.c\r
- $(CCRS) $(CFLAGS) ssluse.c\r
-timevalrs.obj: timeval.c\r
- $(CCRS) $(CFLAGS) timeval.c\r
-urlrs.obj: url.c\r
- $(CCRS) $(CFLAGS) url.c\r
-filers.obj: file.c\r
- $(CCRS) $(CFLAGS) file.c\r
-getinfors.obj: getinfo.c\r
- $(CCRS) $(CFLAGS) getinfo.c\r
-versionrs.obj: version.c\r
- $(CCRS) $(CFLAGS) version.c\r
-easyrs.obj: easy.c\r
- $(CCRS) $(CFLAGS) easy.c\r
-strequalrs.obj: strequal.c\r
- $(CCRS) $(CFLAGS) strequal.c\r
-strtokrs.obj:strtok.c\r
- $(CCRS) $(CFLAGS) strtok.c\r
-connectrs.obj:connect.c\r
- $(CCR) $(CFLAGS) connect.c\r
+\r
+LNKDLL = link.exe /DLL /def:libcurl.def\r
+LNKLIB = link.exe -lib\r
+LFLAGS = /nologo\r
+LFLAGSSSL = /LIBPATH:$(OPENSSL_PATH)/out32dll\r
+LINKLIBS = ws2_32.lib\r
+SSLLIBS = libeay32.lib ssleay32.lib RSAglue.lib\r
+CFGSET = FALSE\r
+\r
+######################\r
+# release\r
+\r
+!IF "$(CFG)" == "release" \r
+TARGET =$(LIB_NAME).lib\r
+DIROBJ =.\$(CFG)\r
+LNK = $(LNKLIB) /out:$(TARGET)\r
+CC = $(CCNODBG)\r
+CFGSET = TRUE\r
+!ENDIF\r
+\r
+######################\r
+# release-dll\r
+\r
+!IF "$(CFG)" == "release-dll" \r
+TARGET =$(LIB_NAME).dll\r
+DIROBJ =.\$(CFG)\r
+LNK = $(LNKDLL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME).lib"\r
+CC = $(CCNODBG)\r
+CFGSET = TRUE\r
+!ENDIF\r
+\r
+######################\r
+# release-ssl\r
+#todo\r
+!IF "$(CFG)" == "release-ssl" \r
+TARGET =$(LIB_NAME).dll\r
+DIROBJ =.\$(CFG)\r
+LNK = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)\r
+LINKLIBS = $(LINKLIBS) $(SSLLIBS)\r
+CC = $(CCNODBG) $(CFLAGSSSL)\r
+CFGSET = TRUE \r
+!ENDIF\r
+\r
+######################\r
+# release-ssl-dll\r
+\r
+!IF "$(CFG)" == "release-ssl-dll" \r
+TARGET =$(LIB_NAME).dll\r
+DIROBJ =.\$(CFG)\r
+LNK = $(LNKDLL) $(LFLAGSSSL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME).lib" \r
+LINKLIBS = $(LINKLIBS) $(SSLLIBS)\r
+CC = $(CCNODBG) $(CFLAGSSSL)\r
+CFGSET = TRUE \r
+!ENDIF\r
+\r
+\r
+\r
+\r
+######################\r
+# debug\r
+\r
+!IF "$(CFG)" == "debug" \r
+TARGET =$(LIB_NAME_DEBUG).lib\r
+DIROBJ =.\$(CFG)\r
+LNK = $(LNKLIB) /out:$(TARGET)\r
+CC = $(CCDEBUG)\r
+CFGSET = TRUE\r
+!ENDIF\r
+\r
+######################\r
+# debug-dll\r
+\r
+!IF "$(CFG)" == "debug-dll" \r
+TARGET =$(LIB_NAME_DEBUG).dll\r
+DIROBJ =.\$(CFG)\r
+LNK = $(LNKDLL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME_DEBUG).lib"\r
+CC = $(CCDEBUG)\r
+CFGSET = TRUE\r
+!ENDIF\r
+\r
+######################\r
+# debug-ssl\r
+#todo\r
+!IF "$(CFG)" == "debug-ssl" \r
+TARGET = $(LIB_NAME_DEBUG).lib\r
+DIROBJ =.\$(CFG)\r
+LNK = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)\r
+LINKLIBS = $(LINKLIBS) $(SSLLIBS)\r
+CC = $(CCDEBUG) $(CFLAGSSSL)\r
+CFGSET = TRUE\r
+!ENDIF\r
+\r
+######################\r
+# debug-ssl-dll\r
+\r
+!IF "$(CFG)" == "debug-ssl-dll" \r
+TARGET =$(LIB_NAME_DEBUG).dll\r
+DIROBJ =.\$(CFG)\r
+LNK = $(LNKDLL) $(LFLAGSSSL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME_DEBUG).lib" \r
+LINKLIBS = $(LINKLIBS) $(SSLLIBS)\r
+CC = $(CCDEBUG) $(CFLAGSSSL)\r
+CFGSET = TRUE\r
+!ENDIF\r
+\r
+#######################\r
+# Usage\r
+#\r
+!IF "$(CFGSET)" == "FALSE"\r
+!MESSAGE Usage: nmake -f makefile.vc6 CFG=<config> <target>\r
+!MESSAGE where <config> is one of:\r
+!MESSAGE release - release static library\r
+!MESSAGE release-dll - release dll\r
+!MESSAGE release-ssl - release static library with ssl\r
+!MESSAGE release-ssl-dll - release dll library with ssl\r
+!MESSAGE debug - debug static library\r
+!MESSAGE debug-dll - debug dll\r
+!MESSAGE debug-ssl - debug static library with ssl\r
+!MESSAGE debug-ssl-dll - debug dll library with ssl\r
+!MESSAGE <target> can be left blank in which case all is assumed\r
+!ERROR please choose a valid configuration "$(CFG)"\r
+!ENDIF\r
+\r
+#######################\r
+#\r
+X_OBJS= \\r
+ $(DIROBJ)\base64.obj \\r
+ $(DIROBJ)\cookie.obj \\r
+ $(DIROBJ)\transfer.obj \\r
+ $(DIROBJ)\escape.obj \\r
+ $(DIROBJ)\formdata.obj \\r
+ $(DIROBJ)\ftp.obj \\r
+ $(DIROBJ)\http.obj \\r
+ $(DIROBJ)\http_chunks.obj \\r
+ $(DIROBJ)\ldap.obj \\r
+ $(DIROBJ)\dict.obj \\r
+ $(DIROBJ)\telnet.obj \\r
+ $(DIROBJ)\getdate.obj \\r
+ $(DIROBJ)\getenv.obj \\r
+ $(DIROBJ)\getpass.obj \\r
+ $(DIROBJ)\hostip.obj \\r
+ $(DIROBJ)\if2ip.obj \\r
+ $(DIROBJ)\mprintf.obj \\r
+ $(DIROBJ)\netrc.obj \\r
+ $(DIROBJ)\progress.obj \\r
+ $(DIROBJ)\sendf.obj \\r
+ $(DIROBJ)\speedcheck.obj \\r
+ $(DIROBJ)\ssluse.obj \\r
+ $(DIROBJ)\timeval.obj \\r
+ $(DIROBJ)\url.obj \\r
+ $(DIROBJ)\file.obj \\r
+ $(DIROBJ)\getinfo.obj \\r
+ $(DIROBJ)\version.obj \\r
+ $(DIROBJ)\easy.obj \\r
+ $(DIROBJ)\strequal.obj \\r
+ $(DIROBJ)\strtok.obj\r
+\r
+\r
+all : $(TARGET)\r
+\r
+\r
+$(TARGET): $(X_OBJS)\r
+ $(LNK) $(LFLAGS) $(LINKLIBS) $(X_OBJS)\r
+\r
+$(X_OBJS): $(DIROBJ)\r
+\r
+$(DIROBJ):\r
+ @if not exist "$(DIROBJ)" mkdir $(DIROBJ)\r
+\r
+.SUFFIXES: .c .obj\r
+\r
+{.\}.c{$(DIROBJ)\}.obj:\r
+ $(CC) $(CFLAGS) /Fo"$@" $<\r
\r
clean:\r
- -@erase *.obj\r
+ -@erase $(DIROBJ)\*.obj\r
-@erase vc60.idb\r
- -@erase vc60.pch\r
-\r
-distrib: clean\r
- -@erase $(PROGRAM_NAME)\r
-\r
+ -@erase vc60.pch
\ No newline at end of file