############################################################# | |
# | |
# Makefile for building libcurl with MSVC6 | |
# | |
# Usage: see usage message below | |
# Should be invoked from \lib directory | |
# Edit the paths and desired library name | |
# SSL path is only required if you intend compiling | |
# with SSL. | |
# | |
# This make file leaves the result either a .lib or .dll file | |
# in the \lib directory. It should be called from the \lib | |
# directory. | |
# | |
# An option would have been to allow the source directory to | |
# be specified, but I saw no requirement. | |
# | |
# Another option would have been to leave the .lib and .dll | |
# files in the "cfg" directory, but then the make file | |
# in \src would need to be changed. | |
# | |
# $Id: Makefile.vc6,v 1.17 2004/01/13 08:57:01 bagder Exp $ | |
############################################################## | |
# | |
# Stem for static libs and DLLs | |
# | |
LIB_NAME = libcurl | |
LIB_NAME_DEBUG = libcurld | |
# | |
# Stem for DLL import libs | |
# | |
IMPLIB_NAME = libcurl_imp | |
IMPLIB_NAME_DEBUG = libcurld_imp | |
!IFNDEF OPENSSL_PATH | |
OPENSSL_PATH = ../../openssl-0.9.7e | |
!ENDIF | |
!IFNDEF ZLIB_PATH | |
ZLIB_PATH = ../../zlib-1.2.1 | |
!ENDIF | |
# Use the high resolution time by default. Comment this out to use low | |
# resolution time and not require winmm.lib | |
USEMM_LIBS = YES | |
############################################################# | |
## Nothing more to do below this line! | |
CCNODBG = cl.exe /MD /O2 /DNDEBUG | |
CCDEBUG = cl.exe /MDd /Od /Gm /Zi /D_DEBUG /GZ | |
CFLAGSSSL = /DUSE_SSLEAY /I "$(OPENSSL_PATH)/inc32" /I "$(OPENSSL_PATH)/inc32/openssl" | |
CFLAGSZLIB = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ /I "$(ZLIB_PATH)" | |
CFLAGS = /I. /I../include /nologo /W3 /GX /DWIN32 /YX /FD /c /DBUILDING_LIBCURL | |
LNKDLL = link.exe /DLL | |
LNKLIB = link.exe /lib | |
LFLAGS = /nologo | |
SSLLIBS = libeay32.lib ssleay32.lib | |
ZLIBLIBSDLL= zdll.lib | |
ZLIBLIBS = zlib.lib | |
!IFDEF USEMM_LIBS | |
WINLIBS = wsock32.lib winmm.lib | |
!ELSE | |
WINLIBS = wsock32.lib | |
CFLAGS = $(CFLAGS) /DWITHOUT_MM_LIB | |
!ENDIF | |
# RSAglue.lib was formerly needed in the SSLLIBS | |
CFGSET = FALSE | |
###################### | |
# release | |
!IF "$(CFG)" == "release" | |
TARGET = $(LIB_NAME).lib | |
DIROBJ = $(CFG) | |
LNK = $(LNKLIB) /out:$(DIROBJ)\$(TARGET) | |
CC = $(CCNODBG) | |
CFGSET = TRUE | |
!ENDIF | |
###################### | |
# release-zlib | |
!IF "$(CFG)" == "release-zlib" | |
TARGET = $(LIB_NAME).lib | |
DIROBJ = $(CFG) | |
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)" | |
LNK = $(LNKLIB) $(ZLIBLIBS) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) | |
CC = $(CCNODBG) $(CFLAGSZLIB) | |
CFGSET = TRUE | |
!ENDIF | |
###################### | |
# release-dll | |
!IF "$(CFG)" == "release-dll" | |
TARGET = $(LIB_NAME).dll | |
DIROBJ = $(CFG) | |
LNK = $(LNKDLL) $(WINLIBS) /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME).lib | |
CC = $(CCNODBG) | |
CFGSET = TRUE | |
RESOURCE = $(DIROBJ)\libcurl.res | |
!ENDIF | |
###################### | |
# release-ssl | |
!IF "$(CFG)" == "release-ssl" | |
TARGET = $(LIB_NAME).lib | |
DIROBJ = $(CFG) | |
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32" | |
LNK = $(LNKLIB) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET) | |
CC = $(CCNODBG) $(CFLAGSSSL) | |
CFGSET = TRUE | |
!ENDIF | |
###################### | |
# release-ssl-dll | |
!IF "$(CFG)" == "release-ssl-dll" | |
TARGET = $(LIB_NAME).lib | |
DIROBJ = $(CFG) | |
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll" | |
LNK = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET) | |
CC = $(CCNODBG) $(CFLAGSSSL) | |
CFGSET = TRUE | |
!ENDIF | |
###################### | |
# release-ssl-zlib | |
!IF "$(CFG)" == "release-ssl-zlib" | |
TARGET = $(LIB_NAME).lib | |
DIROBJ = $(CFG) | |
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32" | |
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)" | |
LNK = $(LNKLIB) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) | |
CC = $(CCNODBG) $(CFLAGSSSL) $(CFLAGSZLIB) | |
CFGSET = TRUE | |
!ENDIF | |
###################### | |
# release-dll-ssl-dll | |
!IF "$(CFG)" == "release-dll-ssl-dll" | |
TARGET = $(LIB_NAME).dll | |
DIROBJ = $(CFG) | |
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll" | |
LNK = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME).lib | |
CC = $(CCNODBG) $(CFLAGSSSL) | |
CFGSET = TRUE | |
RESOURCE = $(DIROBJ)\libcurl.res | |
!ENDIF | |
###################### | |
# release-zlib-dll | |
!IF "$(CFG)" == "release-zlib-dll" | |
TARGET = $(LIB_NAME).lib | |
DIROBJ = $(CFG) | |
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)" | |
LNK = $(LNKLIB) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) | |
CC = $(CCNODBG) $(CFLAGSZLIB) | |
CFGSET = TRUE | |
!ENDIF | |
###################### | |
# release-ssl-dll-zlib-dll | |
!IF "$(CFG)" == "release-ssl-dll-zlib-dll" | |
TARGET = $(LIB_NAME).lib | |
DIROBJ = $(CFG) | |
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)" | |
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll" | |
LNK = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) | |
CC = $(CCNODBG) $(CFLAGSSSL) $(CFLAGSZLIB) | |
CFGSET = TRUE | |
!ENDIF | |
###################### | |
# release-dll-zlib-dll | |
!IF "$(CFG)" == "release-dll-zlib-dll" | |
TARGET = $(LIB_NAME).dll | |
DIROBJ = $(CFG) | |
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)" | |
LNK = $(LNKDLL) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME).lib | |
CC = $(CCNODBG) $(CFLAGSZLIB) | |
CFGSET = TRUE | |
RESOURCE = $(DIROBJ)\libcurl.res | |
!ENDIF | |
###################### | |
# release-dll-ssl-dll-zlib-dll | |
!IF "$(CFG)" == "release-dll-ssl-dll-zlib-dll" | |
TARGET = $(LIB_NAME).dll | |
DIROBJ = $(CFG) | |
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)" | |
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll" | |
LNK = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME).lib | |
CC = $(CCNODBG) $(CFLAGSSSL) $(CFLAGSZLIB) | |
CFGSET = TRUE | |
RESOURCE = $(DIROBJ)\libcurl.res | |
!ENDIF | |
###################### | |
# debug | |
!IF "$(CFG)" == "debug" | |
TARGET = $(LIB_NAME_DEBUG).lib | |
DIROBJ = $(CFG) | |
LNK = $(LNKLIB) /out:$(DIROBJ)\$(TARGET) | |
CC = $(CCDEBUG) | |
CFGSET = TRUE | |
!ENDIF | |
###################### | |
# debug-ssl | |
!IF "$(CFG)" == "debug-ssl" | |
TARGET = $(LIB_NAME_DEBUG).lib | |
DIROBJ = $(CFG) | |
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32" | |
LNK = $(LNKLIB) $(SSLLIBS) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET) | |
CC = $(CCDEBUG) $(CFLAGSSSL) | |
CFGSET = TRUE | |
!ENDIF | |
###################### | |
# debug-zlib | |
!IF "$(CFG)" == "debug-zlib" | |
TARGET = $(LIB_NAME_DEBUG).lib | |
DIROBJ = $(CFG) | |
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)" | |
LNK = $(LNKLIB) $(ZLIBLIBS) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) | |
CC = $(CCDEBUG) $(CFLAGSZLIB) | |
CFGSET = TRUE | |
!ENDIF | |
###################### | |
# debug-ssl-dll | |
!IF "$(CFG)" == "debug-ssl-dll" | |
TARGET = $(LIB_NAME_DEBUG).lib | |
DIROBJ = $(CFG) | |
LFLAGSSSL = /LIBPATH:$(OPENSSL_PATH)\out32dll | |
LNK = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET) | |
CC = $(CCDEBUG) $(CFLAGSSSL) | |
CFGSET = TRUE | |
!ENDIF | |
###################### | |
# debug-ssl-zlib | |
!IF "$(CFG)" == "debug-ssl-zlib" | |
TARGET = $(LIB_NAME_DEBUG).lib | |
DIROBJ = $(CFG) | |
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)" | |
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32" | |
LNK = $(LNKLIB) $(SSLLIBS) $(ZLIBLIBS) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) | |
CC = $(CCDEBUG) $(CFLAGSSSL) $(CFLAGSZLIB) | |
CFGSET = TRUE | |
!ENDIF | |
###################### | |
# debug-zlib-dll | |
!IF "$(CFG)" == "debug-zlib-dll" | |
TARGET = $(LIB_NAME_DEBUG).lib | |
DIROBJ = $(CFG) | |
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)" | |
LNK = $(LNKLIB) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) | |
CC = $(CCDEBUG) $(CFLAGSZLIB) | |
CFGSET = TRUE | |
!ENDIF | |
###################### | |
# debug-ssl-dll-zlib-dll | |
!IF "$(CFG)" == "debug-ssl-dll-zlib-dll" | |
TARGET = $(LIB_NAME_DEBUG).lib | |
DIROBJ = $(CFG) | |
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)" | |
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll" | |
LNK = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) | |
CC = $(CCDEBUG) $(CFLAGSSSL) $(CFLAGSZLIB) | |
CFGSET = TRUE | |
!ENDIF | |
###################### | |
# debug-dll | |
!IF "$(CFG)" == "debug-dll" | |
TARGET = $(LIB_NAME_DEBUG).dll | |
DIROBJ = $(CFG) | |
LNK = $(LNKDLL) $(WINLIBS) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIB_NAME_DEBUG).lib /PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb | |
CC = $(CCDEBUG) | |
CFGSET = TRUE | |
RESOURCE = $(DIROBJ)\libcurl.res | |
!ENDIF | |
###################### | |
# debug-dll-ssl-dll | |
!IF "$(CFG)" == "debug-dll-ssl-dll" | |
TARGET = $(LIB_NAME_DEBUG).dll | |
DIROBJ = $(CFG) | |
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll" | |
LNK = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIB_NAME_DEBUG).lib /PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb | |
CC = $(CCDEBUG) $(CFLAGSSSL) | |
CFGSET = TRUE | |
RESOURCE = $(DIROBJ)\libcurl.res | |
!ENDIF | |
###################### | |
# debug-dll-zlib-dll | |
!IF "$(CFG)" == "debug-dll-zlib-dll" | |
TARGET = $(LIB_NAME_DEBUG).dll | |
DIROBJ = $(CFG) | |
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)" | |
LNK = $(LNKDLL) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIB_NAME_DEBUG).lib /PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb | |
CC = $(CCDEBUG) $(CFLAGSZLIB) | |
CFGSET = TRUE | |
RESOURCE = $(DIROBJ)\libcurl.res | |
!ENDIF | |
###################### | |
# debug-dll-ssl-dll-zlib-dll | |
!IF "$(CFG)" == "debug-dll-ssl-dll-zlib-dll" | |
TARGET = $(LIB_NAME_DEBUG).dll | |
DIROBJ = $(CFG) | |
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)" | |
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll" | |
LNK = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) $(LFLAGSZLIB) /DEBUG /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIB_NAME_DEBUG).lib /PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb | |
CC = $(CCDEBUG) $(CFLAGSSSL) $(CFLAGSZLIB) | |
CFGSET = TRUE | |
RESOURCE = $(DIROBJ)\libcurl.res | |
!ENDIF | |
####################### | |
# Usage | |
# | |
!IF "$(CFGSET)" == "FALSE" && "$(CFG)" != "" | |
!MESSAGE Usage: nmake /f makefile.vc6 CFG=<config> <target> | |
!MESSAGE where <config> is one of: | |
!MESSAGE release - release static library | |
!MESSAGE release-ssl - release static library with ssl | |
!MESSAGE release-zlib - release static library with zlib | |
!MESSAGE release-ssl-zlib - release static library with ssl and zlib | |
!MESSAGE release-ssl-dll - release static library with dynamic ssl | |
!MESSAGE release-zlib-dll - release static library with dynamic zlib | |
!MESSAGE release-ssl-dll-zlib-dll - release static library with dynamic ssl and dynamic zlib | |
!MESSAGE release-dll - release dynamic library | |
!MESSAGE release-dll-ssl-dll - release dynamic library with dynamic ssl | |
!MESSAGE release-dll-zlib-dll - release dynamic library with dynamic zlib | |
!MESSAGE release-dll-ssl-dll-zlib-dll - release dynamic library with dynamic ssl and dynamic zlib | |
!MESSAGE debug - debug static library | |
!MESSAGE debug-ssl - debug static library with ssl | |
!MESSAGE debug-zlib - debug static library with zlib | |
!MESSAGE debug-ssl-zlib - debug static library with ssl and zlib | |
!MESSAGE debug-ssl-dll - debug static library with dynamic ssl | |
!MESSAGE debug-zlib-dll - debug static library with dynamic zlib | |
!MESSAGE debug-ssl-dll-zlib-dll - debug static library with dynamic ssl and dynamic zlib | |
!MESSAGE debug-dll - debug dynamic library | |
!MESSAGE debug-dll-ssl-dll - debug dynamic library with dynamic ssl | |
!MESSAGE debug-dll-zlib-dll - debug dynamic library with dynamic zlib1 | |
!MESSAGE debug-dll-ssl-dll-zlib-dll - debug dynamic library with dynamic ssl and dynamic zlib | |
!MESSAGE <target> can be left blank in which case all is assumed | |
!ERROR please choose a valid configuration "$(CFG)" | |
!ENDIF | |
####################### | |
# Only the clean target can be used if a config was not provided. | |
# | |
!IF "$(CFGSET)" == "FALSE" | |
clean: | |
@-erase /s *.dll 2> NUL | |
@-erase /s *.exp 2> NUL | |
@-erase /s *.idb 2> NUL | |
@-erase /s *.lib 2> NUL | |
@-erase /s *.obj 2> NUL | |
@-erase /s *.pch 2> NUL | |
@-erase /s *.pdb 2> NUL | |
@-erase /s *.res 2> NUL | |
!ELSE | |
# A config was provided, so the library can be built. | |
# | |
X_OBJS= \ | |
$(DIROBJ)\base64.obj \ | |
$(DIROBJ)\cookie.obj \ | |
$(DIROBJ)\transfer.obj \ | |
$(DIROBJ)\escape.obj \ | |
$(DIROBJ)\formdata.obj \ | |
$(DIROBJ)\ftp.obj \ | |
$(DIROBJ)\http.obj \ | |
$(DIROBJ)\http_chunks.obj \ | |
$(DIROBJ)\ldap.obj \ | |
$(DIROBJ)\dict.obj \ | |
$(DIROBJ)\telnet.obj \ | |
$(DIROBJ)\parsedate.obj \ | |
$(DIROBJ)\getenv.obj \ | |
$(DIROBJ)\inet_pton.obj \ | |
$(DIROBJ)\hostip.obj \ | |
$(DIROBJ)\hostasyn.obj \ | |
$(DIROBJ)\hostsyn.obj \ | |
$(DIROBJ)\hostares.obj \ | |
$(DIROBJ)\hostthre.obj \ | |
$(DIROBJ)\hostip4.obj \ | |
$(DIROBJ)\hostip6.obj \ | |
$(DIROBJ)\inet_ntop.obj \ | |
$(DIROBJ)\if2ip.obj \ | |
$(DIROBJ)\mprintf.obj \ | |
$(DIROBJ)\netrc.obj \ | |
$(DIROBJ)\progress.obj \ | |
$(DIROBJ)\sendf.obj \ | |
$(DIROBJ)\speedcheck.obj \ | |
$(DIROBJ)\ssluse.obj \ | |
$(DIROBJ)\timeval.obj \ | |
$(DIROBJ)\url.obj \ | |
$(DIROBJ)\file.obj \ | |
$(DIROBJ)\getinfo.obj \ | |
$(DIROBJ)\version.obj \ | |
$(DIROBJ)\easy.obj \ | |
$(DIROBJ)\strequal.obj \ | |
$(DIROBJ)\strtok.obj \ | |
$(DIROBJ)\strtoofft.obj \ | |
$(DIROBJ)\connect.obj \ | |
$(DIROBJ)\hash.obj \ | |
$(DIROBJ)\llist.obj \ | |
$(DIROBJ)\share.obj \ | |
$(DIROBJ)\multi.obj \ | |
$(DIROBJ)\http_digest.obj \ | |
$(DIROBJ)\http_negotiate.obj \ | |
$(DIROBJ)\http_ntlm.obj \ | |
$(DIROBJ)\md5.obj \ | |
$(DIROBJ)\memdebug.obj \ | |
$(DIROBJ)\strerror.obj \ | |
$(DIROBJ)\select.obj \ | |
$(DIROBJ)\content_encoding.obj \ | |
$(RESOURCE) | |
all : $(TARGET) | |
$(TARGET): $(X_OBJS) | |
$(LNK) $(LFLAGS) $(X_OBJS) | |
-xcopy $(DIROBJ)\$(LIB_NAME).dll . /y | |
-xcopy $(DIROBJ)\$(LIB_NAME).lib . /y | |
-xcopy $(DIROBJ)\$(LIB_NAME_DEBUG).dll . /y | |
-xcopy $(DIROBJ)\$(LIB_NAME_DEBUG).lib . /y | |
-xcopy $(DIROBJ)\$(IMPLIB_NAME).lib . /y | |
-xcopy $(DIROBJ)\$(IMPLIB_NAME).lib . /y | |
-xcopy $(DIROBJ)\*.exp . /y | |
-xcopy $(DIROBJ)\*.pdb . /y | |
$(X_OBJS): $(DIROBJ) | |
$(DIROBJ): | |
@if not exist "$(DIROBJ)" mkdir $(DIROBJ) | |
.SUFFIXES: .c .obj .res | |
{.\}.c{$(DIROBJ)\}.obj: | |
$(CC) $(CFLAGS) /Fo"$@" $< | |
debug-dll\libcurl.res \ | |
debug-dll-ssl-dll\libcurl.res \ | |
debug-dll-zlib-dll\libcurl.res \ | |
debug-dll-ssl-dll-zlib-dll\libcurl.res: libcurl.rc | |
rc /dCURLDEBUG=1 /Fo $@ libcurl.rc | |
release-dll\libcurl.res \ | |
release-dll-ssl-dll\libcurl.res \ | |
release-dll-zlib-dll\libcurl.res \ | |
release-dll-ssl-dll-zlib-dll\libcurl.res: libcurl.rc | |
rc /dCURLDEBUG=0 /Fo $@ libcurl.rc | |
!ENDIF # End of case where a config was provided. |