#############################################################
#
# 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.
#
##############################################################

#
# 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_WINDOWS_SSPI uses windows libraries to allow NTLM authentication
# without an openssl installation and offers the ability to authenticate
# using the "current logged in user".  It does however require that the
# Windows SDK be installed.
#
# If, for some reason the Windows SDK is installed but not installed
# in the default location, you can specify WINDOWS_SDK_PATH.
# It can be downloaded from:
# http://www.microsoft.com/msdownload/platformsdk/sdkupdate/

# USE_WINDOWS_SSPI = 1

!IFDEF WINDOWS_SSPI
!IFNDEF WINDOWS_SDK_PATH
WINDOWS_SDK_PATH = "C:\Program Files\Microsoft SDK"
!ENDIF
!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 /O2 /DNDEBUG
CCDEBUG    = cl.exe /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
CFLAGSLIB  = /DCURL_STATICLIB
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

!IFDEF WINDOWS_SSPI
CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include
!ENDIF

##############################################################
# Runtime library configuration

RTLIB   = /MD
RTLIBD  = /MDd

!IF "$(RTLIBCFG)" == "static"
RTLIB  = /MT
RTLIBD = /MTd
!ENDIF


######################
# release

!IF "$(CFG)" == "release"
TARGET = $(LIB_NAME).lib
DIROBJ = $(CFG)
LNK    = $(LNKLIB) /out:$(DIROBJ)\$(TARGET)
CC     = $(CCNODBG) $(RTLIB) $(CFLAGSLIB)
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) $(RTLIB) $(CFLAGSZLIB) $(CFLAGSLIB)
CFGSET   = TRUE
!ENDIF

######################
# release-dll

!IF "$(CFG)" == "release-dll"
TARGET = $(LIB_NAME).dll
DIROBJ = $(CFG)
LNK    = $(LNKDLL) $(RTLIB) $(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) $(RTLIB) $(CFLAGSSSL) $(CFLAGSLIB)
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) $(RTLIB) $(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) $(RTLIB) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)
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) $(RTLIB) $(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) $(RTLIB) $(CFLAGSZLIB) $(CFLAGSLIB)
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) $(RTLIB) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)
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) $(RTLIB) $(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) $(RTLIB) $(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) $(RTLIBD) $(CFLAGSLIB)
CFGSET = TRUE
!ENDIF

######################
# debug-ssl

!IF "$(CFG)" == "debug-ssl"
TARGET   = $(LIB_NAME_DEBUG).lib
DIROBJ   = $(CFG)
LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"
LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET)
CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSLIB)
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) $(RTLIBD) $(CFLAGSZLIB) $(CFLAGSLIB)
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) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSLIB)
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) $(ZLIBLIBS) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)
CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)
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) $(RTLIBD) $(CFLAGSZLIB) $(CFLAGSLIB)
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) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)
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)\$(IMPLIB_NAME_DEBUG).lib /PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb
CC     = $(CCDEBUG) $(RTLIBD) 
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)\$(IMPLIB_NAME_DEBUG).lib /PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb
CC       = $(CCDEBUG) $(RTLIBD) $(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)\$(IMPLIB_NAME_DEBUG).lib /PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb
CC       = $(CCDEBUG) $(RTLIBD) $(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)\$(IMPLIB_NAME_DEBUG).lib /PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb
CC       = $(CCDEBUG) $(RTLIBD) $(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)\gtls.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)\sslgen.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 \
	$(DIROBJ)\tftp.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_DEBUG).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.
