310 lines
8.3 KiB
Makefile
310 lines
8.3 KiB
Makefile
#############################################################
|
|
#
|
|
# 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 $
|
|
##############################################################
|
|
|
|
LIB_NAME = libcurl
|
|
LIB_NAME_DEBUG = libcurld
|
|
!IFNDEF OPENSSL_PATH
|
|
OPENSSL_PATH = ../../openssl-0.9.7d
|
|
!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 /D "NDEBUG"
|
|
CCDEBUG = cl.exe /MDd /Od /Gm /Zi /D "_DEBUG" /GZ
|
|
CFLAGSSSL = /D "USE_SSLEAY" /I "$(OPENSSL_PATH)/inc32" /I "$(OPENSSL_PATH)/inc32/openssl"
|
|
CFLAGSZLIB = /D "HAVE_ZLIB_H" /D "HAVE_ZLIB" /D "HAVE_LIBZ" /I "$(ZLIB_PATH)"
|
|
CFLAGS = /I "." /I "../include" /nologo /W3 /GX /D "WIN32" /D "VC6" /D "_MBCS" /D "_LIB" /YX /FD /c /D "MSDOS"
|
|
LNKDLL = link.exe /DLL /def:libcurl.def
|
|
LNKLIB = link.exe /lib
|
|
LFLAGS = /nologo
|
|
SSLLIBS = libeay32.lib ssleay32.lib
|
|
!IFDEF USEMM_LIBS
|
|
WINLIBS = wsock32.lib winmm.lib
|
|
!ELSE
|
|
WINLIBS = wsock32.lib
|
|
CFLAGS = $(CFLAGS) /D "WITHOUT_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:$(TARGET)
|
|
CC = $(CCNODBG)
|
|
CFGSET = TRUE
|
|
!ENDIF
|
|
|
|
######################
|
|
# release-zlib
|
|
|
|
!IF "$(CFG)" == "release-zlib"
|
|
TARGET =$(LIB_NAME).lib
|
|
DIROBJ =.\$(CFG)
|
|
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
|
|
LNK = $(LNKLIB) $(LFLAGSZLIB) /out:$(TARGET)
|
|
CC = $(CCNODBG) $(CFLAGSZLIB)
|
|
CFGSET = TRUE
|
|
!ENDIF
|
|
|
|
######################
|
|
# release-dll
|
|
|
|
!IF "$(CFG)" == "release-dll"
|
|
TARGET =$(LIB_NAME).dll
|
|
DIROBJ =.\$(CFG)
|
|
LNK = $(LNKDLL) $(WINLIBS) /out:$(TARGET) /IMPLIB:"$(LIB_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:$(TARGET)
|
|
CC = $(CCNODBG) $(CFLAGSSSL)
|
|
CFGSET = TRUE
|
|
!ENDIF
|
|
|
|
######################
|
|
# release-ssl-dll
|
|
|
|
!IF "$(CFG)" == "release-ssl-dll"
|
|
TARGET =$(LIB_NAME).dll
|
|
DIROBJ =.\$(CFG)
|
|
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)/out32dll"
|
|
LNK = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(WINLIBS) $(LFLAGSSSL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME).lib"
|
|
CC = $(CCNODBG) $(CFLAGSSSL)
|
|
CFGSET = TRUE
|
|
RESOURCE = $(DIROBJ)\libcurl.res
|
|
!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:$(TARGET)
|
|
CC = $(CCNODBG) $(CFLAGSSSL) $(CFLAGSZLIB)
|
|
CFGSET = TRUE
|
|
!ENDIF
|
|
|
|
######################
|
|
# release-libcurl-ssl-dll
|
|
!IF "$(CFG)" == "release-libcurl-ssl-dll"
|
|
TARGET =$(LIB_NAME).lib
|
|
DIROBJ =.\$(CFG)
|
|
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)/out32dll"
|
|
LNK = $(LNKLIB) $(SSLLIBS) $(LFLAGSSSL) /out:$(TARGET)
|
|
CC = $(CCNODBG) $(CFLAGSSSL)
|
|
CFGSET = TRUE
|
|
RESOURCE = $(DIROBJ)\libcurl.res
|
|
!ENDIF
|
|
|
|
|
|
######################
|
|
# debug
|
|
|
|
!IF "$(CFG)" == "debug"
|
|
TARGET =$(LIB_NAME_DEBUG).lib
|
|
DIROBJ =.\$(CFG)
|
|
LNK = $(LNKLIB) /out:$(TARGET)
|
|
CC = $(CCDEBUG)
|
|
CFGSET = TRUE
|
|
!ENDIF
|
|
|
|
######################
|
|
# debug-dll
|
|
|
|
!IF "$(CFG)" == "debug-dll"
|
|
TARGET =$(LIB_NAME_DEBUG).dll
|
|
DIROBJ =.\$(CFG)
|
|
LNK = $(LNKDLL) $(WINLIBS) /DEBUG /out:$(TARGET) /IMPLIB:"$(LIB_NAME_DEBUG).lib" /PDB:"$(LIB_NAME_DEBUG).pdb"
|
|
CC = $(CCDEBUG)
|
|
CFGSET = TRUE
|
|
RESOURCE = $(DIROBJ)\libcurl.res
|
|
!ENDIF
|
|
|
|
######################
|
|
# debug-ssl
|
|
#todo
|
|
!IF "$(CFG)" == "debug-ssl"
|
|
TARGET = $(LIB_NAME_DEBUG).lib
|
|
DIROBJ =.\$(CFG)
|
|
LNK = $(LNKLIB) $(LFLAGSSSL) /out:$(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) $(LFLAGSZLIB) /out:$(TARGET)
|
|
CC = $(CCDEBUG) $(CFLAGSZLIB)
|
|
CFGSET = TRUE
|
|
!ENDIF
|
|
|
|
######################
|
|
# debug-ssl-dll
|
|
|
|
!IF "$(CFG)" == "debug-ssl-dll"
|
|
TARGET =$(LIB_NAME_DEBUG).dll
|
|
DIROBJ =.\$(CFG)
|
|
LFLAGSSSL = /LIBPATH:$(OPENSSL_PATH)/out32dll
|
|
LNK = $(LNKDLL) $(WINLIBS) $(LFLAGSSSL) /DEBUG /out:$(TARGET) /IMPLIB:"$(LIB_NAME_DEBUG).lib" /PDB:"$(LIB_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)\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)\strerror.obj \
|
|
$(DIROBJ)\content_encoding.obj \
|
|
$(RESOURCE)
|
|
|
|
all : $(TARGET)
|
|
|
|
|
|
$(TARGET): $(X_OBJS)
|
|
$(LNK) $(LFLAGS) $(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
|
|
|
|
clean:
|
|
-@erase $(DIROBJ)\*.obj
|
|
-@erase $(DIROBJ)\*.res
|
|
-@erase vc60.idb
|
|
-@erase vc60.pch
|