Skip to content
Makefile.vc6 8.4 KiB
Newer Older
#############################################################
# Makefile for building libcurl with MSVC6
#
# Usage: see usage message below
#        Should be invoked from \lib directory
#        Edit the paths and desired library name
sm's avatar
sm committed
#        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
sm's avatar
sm committed
# in \src would need to be changed.
#
# $Id: Makefile.vc6,v 1.17 2004/01/13 08:57:01 bagder Exp $
##############################################################
Gisle Vanem's avatar
 
Gisle Vanem committed
#
# Stem for static libs and DLLs
#
LIB_NAME       = libcurl
LIB_NAME_DEBUG = libcurld
Gisle Vanem's avatar
 
Gisle Vanem committed

#
# Stem for DLL import libs
#
IMPLIB_NAME       = libcurl_imp
IMPLIB_NAME_DEBUG = libcurld_imp

Daniel Stenberg's avatar
Daniel Stenberg committed
!IFNDEF OPENSSL_PATH
OPENSSL_PATH   = ../../openssl-0.9.7d
Daniel Stenberg's avatar
Daniel Stenberg committed
!ENDIF
!IFNDEF ZLIB_PATH
ZLIB_PATH  = ../../zlib-1.2.1
# 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!
Gisle Vanem's avatar
 
Gisle Vanem committed
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)"
Gisle Vanem's avatar
 
Gisle Vanem committed
CFLAGS     = /I. /I../include /nologo /W3 /GX /DWIN32 /YX /FD /c /DBUILDING_LIBCURL
Gisle Vanem's avatar
 
Gisle Vanem committed
LNKDLL     = link.exe /DLL
LNKLIB     = link.exe /lib
LFLAGS     = /nologo
SSLLIBS    = libeay32.lib ssleay32.lib
WINLIBS    = wsock32.lib winmm.lib
Gisle Vanem's avatar
 
Gisle Vanem committed
WINLIBS    = wsock32.lib
CFLAGS     = $(CFLAGS) /DWITHOUT_MM_LIB
#  RSAglue.lib was formerly needed in the SSLLIBS

######################
# release

sm's avatar
sm committed
!IF "$(CFG)" == "release"
Gisle Vanem's avatar
 
Gisle Vanem committed
TARGET = $(LIB_NAME).lib
DIROBJ = .\$(CFG)
LNK    = $(LNKLIB) /out:$(TARGET)
CC     = $(CCNODBG)
CFGSET = TRUE
!ENDIF

######################
# release-zlib

!IF "$(CFG)" == "release-zlib"
Gisle Vanem's avatar
 
Gisle Vanem committed
TARGET   = $(LIB_NAME).lib
DIROBJ   = .\$(CFG)
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
LNK      = $(LNKLIB) $(LFLAGSZLIB) /out:$(TARGET)
CC       = $(CCNODBG) $(CFLAGSZLIB)
CFGSET   = TRUE
!ENDIF

######################
# release-dll

sm's avatar
sm committed
!IF "$(CFG)" == "release-dll"
Gisle Vanem's avatar
 
Gisle Vanem committed
TARGET = $(LIB_NAME).dll
DIROBJ = .\$(CFG)
LNK    = $(LNKDLL) $(WINLIBS) /out:$(TARGET) /IMPLIB:$(IMPLIB_NAME).lib
CC     = $(CCNODBG)
CFGSET = TRUE
RESOURCE = $(DIROBJ)\libcurl.res
!ENDIF

######################
# release-ssl
sm's avatar
sm committed

sm's avatar
sm committed
!IF "$(CFG)" == "release-ssl"
Gisle Vanem's avatar
 
Gisle Vanem committed
TARGET   = $(LIB_NAME).lib
DIROBJ   = .\$(CFG)
Daniel Stenberg's avatar
Daniel Stenberg committed
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)/out32"
LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)
CC       = $(CCNODBG) $(CFLAGSSSL)
sm's avatar
sm committed
CFGSET   = TRUE
!ENDIF

######################
# release-ssl-dll

sm's avatar
sm committed
!IF "$(CFG)" == "release-ssl-dll"
Gisle Vanem's avatar
 
Gisle Vanem committed
TARGET   = $(LIB_NAME).dll
DIROBJ   = .\$(CFG)
Daniel Stenberg's avatar
Daniel Stenberg committed
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)/out32dll"
Gisle Vanem's avatar
 
Gisle Vanem committed
LNK      = $(LNKDLL) $(SSLLIBS) $(WINLIBS) $(LFLAGSSSL) /out:$(TARGET) /IMPLIB:$(IMPLIB_NAME).lib
Gisle Vanem's avatar
 
Gisle Vanem committed
CC       = $(CCNODBG) $(CFLAGSSSL)
sm's avatar
sm committed
CFGSET   = TRUE
RESOURCE = $(DIROBJ)\libcurl.res
######################
# release-ssl-zlib
!IF "$(CFG)" == "release-ssl-zlib"
Gisle Vanem's avatar
 
Gisle Vanem committed
TARGET   = $(LIB_NAME).lib
DIROBJ   = .\$(CFG)
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)/out32"
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
LNK      = $(LNKLIB) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(TARGET)
CC       = $(CCNODBG) $(CFLAGSSSL) $(CFLAGSZLIB)
CFGSET   = TRUE
!ENDIF

######################
# release-libcurl-ssl-dll
!IF "$(CFG)" == "release-libcurl-ssl-dll"
Gisle Vanem's avatar
 
Gisle Vanem committed
TARGET   = $(LIB_NAME).lib
DIROBJ   = .\$(CFG)
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)/out32dll"
LNK      = $(LNKLIB) $(SSLLIBS) $(LFLAGSSSL) /out:$(TARGET)
Gisle Vanem's avatar
 
Gisle Vanem committed
CC       = $(CCNODBG) $(CFLAGSSSL)
RESOURCE = $(DIROBJ)\libcurl.res
######################
# debug

sm's avatar
sm committed
!IF "$(CFG)" == "debug"
Gisle Vanem's avatar
 
Gisle Vanem committed
TARGET = $(LIB_NAME_DEBUG).lib
DIROBJ = .\$(CFG)
LNK    = $(LNKLIB) /out:$(TARGET)
CC     = $(CCDEBUG)
CFGSET = TRUE
!ENDIF

######################
# debug-dll

sm's avatar
sm committed
!IF "$(CFG)" == "debug-dll"
Gisle Vanem's avatar
 
Gisle Vanem committed
TARGET = $(LIB_NAME_DEBUG).dll
DIROBJ = .\$(CFG)
LNK    = $(LNKDLL) $(WINLIBS) /DEBUG /out:$(TARGET) /IMPLIB:$(IMPLIB_NAME_DEBUG).lib /PDB:$(IMPLIB_NAME_DEBUG).pdb
CC     = $(CCDEBUG)
CFGSET = TRUE
RESOURCE = $(DIROBJ)\libcurl.res
!ENDIF

######################
# debug-ssl
#todo
sm's avatar
sm committed
!IF "$(CFG)" == "debug-ssl"
TARGET   = $(LIB_NAME_DEBUG).lib
Gisle Vanem's avatar
 
Gisle Vanem committed
DIROBJ   = .\$(CFG)
LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)
CC       = $(CCDEBUG) $(CFLAGSSSL)
CFGSET   = TRUE
!ENDIF

######################
# debug-zlib
!IF "$(CFG)" == "debug-zlib"
TARGET   = $(LIB_NAME_DEBUG).lib
Gisle Vanem's avatar
 
Gisle Vanem committed
DIROBJ   = .\$(CFG)
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
LNK      = $(LNKLIB) $(LFLAGSZLIB) /out:$(TARGET)
CC       = $(CCDEBUG) $(CFLAGSZLIB)
CFGSET   = TRUE
!ENDIF

######################
# debug-ssl-dll

sm's avatar
sm committed
!IF "$(CFG)" == "debug-ssl-dll"
Gisle Vanem's avatar
 
Gisle Vanem committed
TARGET   = $(LIB_NAME_DEBUG).dll
DIROBJ   = .\$(CFG)
LFLAGSSSL = /LIBPATH:$(OPENSSL_PATH)/out32dll
Gisle Vanem's avatar
 
Gisle Vanem committed
LNK      = $(LNKDLL) $(WINLIBS) $(LFLAGSSSL) /DEBUG /out:$(TARGET) /IMPLIB:$(IMPLIB_NAME_DEBUG).lib /PDB:$(IMPLIB_NAME_DEBUG).pdb
CC       = $(CCDEBUG) $(CFLAGSSSL)
CFGSET   = TRUE
RESOURCE = $(DIROBJ)\libcurl.res
!ENDIF

#######################
# Usage
#
!IF "$(CFGSET)" == "FALSE"
!MESSAGE Usage: nmake /f makefile.vc6 CFG=<config> <target>
!MESSAGE where <config> is one of:
!MESSAGE   release          - release static library
!MESSAGE   release-dll      - release dll
!MESSAGE   release-zlib     - release static library with zlib
!MESSAGE   release-ssl      - release static library with ssl
!MESSAGE   release-ssl-zlib - release static library with ssl and zlib
!MESSAGE   release-ssl-dll  - release dll library with ssl
!MESSAGE   release-libcurl-ssl-dll - static libcurl with shared ssl
!MESSAGE   debug            - debug static library
!MESSAGE   debug-dll        - debug dll
!MESSAGE   debug-zlib       - debug static library with zlib
!MESSAGE   debug-ssl        - debug static library with ssl
!MESSAGE   debug-ssl-dll    - debug dll library with ssl
!MESSAGE <target> can be left blank in which case all is assumed
!ERROR please choose a valid configuration "$(CFG)"
!ENDIF

#######################
#
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)\getenv.obj \
	$(DIROBJ)\hostip.obj \
	$(DIROBJ)\hostasyn.obj \
	$(DIROBJ)\hostsyn.obj \
	$(DIROBJ)\hostares.obj \
	$(DIROBJ)\hostthre.obj \
	$(DIROBJ)\hostip4.obj \
	$(DIROBJ)\hostip6.obj \
Daniel Stenberg's avatar
Daniel Stenberg committed
	$(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 \
Daniel Stenberg's avatar
Daniel Stenberg committed
	$(DIROBJ)\strtok.obj \
	$(DIROBJ)\strtoofft.obj \
sm's avatar
sm committed
	$(DIROBJ)\connect.obj \
	$(DIROBJ)\hash.obj \
Daniel Stenberg's avatar
Daniel Stenberg committed
	$(DIROBJ)\llist.obj \
Daniel Stenberg's avatar
Daniel Stenberg committed
	$(DIROBJ)\share.obj \
	$(DIROBJ)\multi.obj \
	$(DIROBJ)\http_digest.obj \
        $(DIROBJ)\http_negotiate.obj \
        $(DIROBJ)\http_ntlm.obj \
Gisle Vanem's avatar
 
Gisle Vanem committed
	$(DIROBJ)\memdebug.obj \
Daniel Stenberg's avatar
Daniel Stenberg committed
	$(DIROBJ)\strerror.obj \
	$(DIROBJ)\content_encoding.obj \

all : $(TARGET)


$(TARGET): $(X_OBJS)

$(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-ssl-dll\libcurl.res \
release-libcurl-ssl-dll\libcurl.res: libcurl.rc
	rc /dCURLDEBUG=1 /Fo $@ libcurl.rc

release-dll\libcurl.res \
release-ssl-dll\libcurl.res \
release-libcurl-ssl-dll\libcurl.res: libcurl.rc
	rc /dCURLDEBUG=0 /Fo $@ libcurl.rc
	-@erase $(DIROBJ)\*.obj
	-@erase $(DIROBJ)\*.res
sm's avatar
sm committed
	-@erase vc60.pch
Gisle Vanem's avatar
 
Gisle Vanem committed