############################################################# # # 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 # # ############################################################## LIB_NAME = libcurl LIB_NAME_DEBUG = libcurld !IFNDEF OPENSSL_PATH OPENSSL_PATH = ../../openssl-0.9.6 !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 "../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 LINKLIBS = ws2_32.lib winmm.lib SSLLIBS = libeay32.lib ssleay32.lib RSAglue.lib 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 !ENDIF ###################### # release-ssl !IF "$(CFG)" == "release-ssl" TARGET =$(LIB_NAME).lib DIROBJ =.\$(CFG) LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)/out32" LNK = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET) LINKLIBS = $(LINKLIBS) 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" LINKLIBS = $(LINKLIBS) $(SSLLIBS) CC = $(CCNODBG) $(CFLAGSSSL) CFGSET = TRUE !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) /out:$(TARGET) /IMPLIB:"$(LIB_NAME_DEBUG).lib" CC = $(CCDEBUG) CFGSET = TRUE !ENDIF ###################### # debug-ssl #todo !IF "$(CFG)" == "debug-ssl" TARGET = $(LIB_NAME_DEBUG).lib DIROBJ =.\$(CFG) LNK = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET) LINKLIBS = $(LINKLIBS) CC = $(CCDEBUG) $(CFLAGSSSL) CFGSET = TRUE !ENDIF ###################### # debug-ssl-dll !IF "$(CFG)" == "debug-ssl-dll" TARGET =$(LIB_NAME_DEBUG).dll DIROBJ =.\$(CFG) LNK = $(LNKDLL) $(LFLAGSSSL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME_DEBUG).lib" LINKLIBS = $(LINKLIBS) $(SSLLIBS) CC = $(CCDEBUG) $(CFLAGSSSL) CFGSET = TRUE !ENDIF ####################### # Usage # !IF "$(CFGSET)" == "FALSE" !MESSAGE Usage: nmake -f makefile.vc6 CFG= !MESSAGE where 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 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 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)\getpass.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)\connect.obj \ $(DIROBJ)\hash.obj \ $(DIROBJ)\llist.obj \ $(DIROBJ)\multi.obj all : $(TARGET) $(TARGET): $(X_OBJS) $(LNK) $(LFLAGS) $(LINKLIBS) $(X_OBJS) $(X_OBJS): $(DIROBJ) $(DIROBJ): @if not exist "$(DIROBJ)" mkdir $(DIROBJ) .SUFFIXES: .c .obj {.\}.c{$(DIROBJ)\}.obj: $(CC) $(CFLAGS) /Fo"$@" $< clean: -@erase $(DIROBJ)\*.obj -@erase vc60.idb -@erase vc60.pch