123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- #############################################################
- #
- # 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.
- #
- ##############################################################
- # CHANGE LOG
- # ------------------------------------------------------------
- # 05.11.2001 John Lask Initial Release
- # 02.05.2002 Miklos Nemeth OPENSSL_PATH environment; no need
- # for OpenSSL libraries when creating a
- # static libcurl.lib
- # 10.14.2003 Added a target release-libcurl-ssl-dll which
- # is intended to allow static linking of libcurl with dynamic
- # linking of openssl
- ##############################################################
- LIB_NAME = libcurl
- LIB_NAME_DEBUG = libcurld
- !IFNDEF OPENSSL_PATH
- OPENSSL_PATH = ../../openssl-0.9.7a
- !ENDIF
- #############################################################
- ## 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"
- 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
- # 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-dll
- !IF "$(CFG)" == "release-dll"
- TARGET =$(LIB_NAME).dll
- DIROBJ =.\$(CFG)
- LNK = $(LNKDLL) /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) $(LFLAGSSSL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME).lib"
- CC = $(CCNODBG) $(CFLAGSSSL)
- CFGSET = TRUE
- RESOURCE = $(DIROBJ)\libcurl.res
- !ENDIF
- ######################
- # release-libcurl-ssl-dll
- !IF "$(CFG)" == "release-libcurl-ssl-dll"
- TARGET =$(LIB_NAME).lib
- DIROBJ =.\$(CFG)
- LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)/out32dll"
- LNK = $(LNKLIB) $(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) /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-ssl-dll
- !IF "$(CFG)" == "debug-ssl-dll"
- TARGET =$(LIB_NAME_DEBUG).dll
- DIROBJ =.\$(CFG)
- LFLAGSSSL = /LIBPATH:$(OPENSSL_PATH)/out32dll
- LNK = $(LNKDLL) $(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-ssl - release static library with ssl
- !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-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)\getdate.obj \
- $(DIROBJ)\getenv.obj \
- $(DIROBJ)\inet_pton.obj \
- $(DIROBJ)\hostip.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)\curl_strerror.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
|