#***************************************************************************
#                                  _   _ ____  _
#  Project                     ___| | | |  _ \| |
#                             / __| | | | |_) | |
#                            | (__| |_| |  _ <| |___
#                             \___|\___/|_| \_\_____|
#
# Copyright (C) 1999 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at http://curl.haxx.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
#***************************************************************************

# All files in the Makefile.vc* series are generated automatically from the
# one made for MSVC version 6. Alas, if you want to do changes to any of the
# fiels and send back to the project, edit the version six, make your diff and
# mail curl-users.

#############################################################
#
## Makefile for building curl.exe with MSVC6
## Use: nmake -f makefile.vc6 [release | debug] [CFG=release-ssl]
##      (default is release)
## "nmake -f makefile.vc6 CFG=release-ssl" statically links OpenSSL
## into curl.exe producing a standalone SSL-enabled executable.
##
#
#############################################################

PROGRAM_NAME = curl.exe

# -------------------------------------------
# Verify that current subdir is curl's 'src'
# -------------------------------------------

!IF ! EXIST(.\main.c)
!  MESSAGE Can not process this makefile from outside of curl's 'src' subdirectory.
!  MESSAGE Change to curl's 'src' subdirectory, and try again.
!  ERROR   See previous message.
!ENDIF

# ------------------------------------------------
# Makefile.msvc.names provides libcurl file names
# ------------------------------------------------

!INCLUDE ..\Makefile.msvc.names



!IFNDEF OPENSSL_PATH
OPENSSL_PATH = ../../openssl-0.9.8r
!ENDIF

!IFNDEF ZLIB_PATH
ZLIB_PATH = ../../zlib-1.2.5
!ENDIF

!IFNDEF MACHINE
MACHINE  = X86
!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". Since at least with MSVC6 the sspi.h
# header is broken it is either required to install the Windows SDK,
# or to fix sspi.h with adding this define at the beginning of sspi.h:
# #define FreeCredentialHandle FreeCredentialsHandle
#
# 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/

# WINDOWS_SSPI = 1

!IFDEF WINDOWS_SSPI
!IFNDEF WINDOWS_SDK_PATH
WINDOWS_SDK_PATH = "$(PROGRAMFILES)\Microsoft SDK"
!ENDIF
!ENDIF

########################################################
## Nothing more to do below this line!
ZLIB_CFLAGS   = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ /I "$(ZLIB_PATH)"
ZLIB_LFLAGS   = "/LIBPATH:$(ZLIB_PATH)"
ZLIB_LIBS     = zlib.lib
ZLIB_IMP_LIBS = zdll.lib

SSL_CFLAGS     = /DUSE_SSLEAY
SSL_LFLAGS     = /LIBPATH:"$(OPENSSL_PATH)/out32"
SSL_IMP_LFLAGS = /LIBPATH:"$(OPENSSL_PATH)/out32dll"
SSL_LIBS       = libeay32.lib ssleay32.lib gdi32.lib user32.lib advapi32.lib

# Runtime library configuration
RTLIB   = /MD
RTLIBD  = /MDd

!IF "$(RTLIBCFG)" == "static"
RTLIB  = /MT
RTLIBD = /MTd
!ENDIF

## Release
CCR   = cl.exe $(RTLIB) /O2 /DNDEBUG
LINKR = link.exe /incremental:no /libpath:"../lib"
RCR   = rc.exe /dDEBUGBUILD=0

## Debug
CCD   = cl.exe $(RTLIBD) /Gm /ZI /Od /D_DEBUG /GZ
LINKD = link.exe /incremental:yes /debug /libpath:"../lib"
RCD   = rc.exe /dDEBUGBUILD=1

CFLAGS   = /I../lib /I../include /nologo /W3 /GX /DWIN32 /YX /FD /c /D_BIND_TO_CURRENT_VCLIBS_VERSION=1
LFLAGS   = /nologo /out:$(PROGRAM_NAME) /subsystem:console /machine:$(MACHINE)
RESFLAGS = /i../include

# This manifest thing is for VC8, enabled by the maketgz script that
# builds the VC8 version of this makefile. Left commented out in the VC6
# version!
#MANIFESTTOOL = mt -manifest $(PROGRAM_NAME).manifest -outputresource:$(PROGRAM_NAME);1

!IFDEF WINDOWS_SSPI
CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include
!ENDIF

RELEASE_OBJS= \
	curlutilr.obj \
	getpassr.obj \
	homedirr.obj \
	hugehelpr.obj \
	mainr.obj \
	nonblockr.obj \
	os-specificr.obj \
	rawstrr.obj \
	strtoofftr.obj \
	urlglobr.obj \
	writeoutr.obj \
	xattrr.obj \
	curlr.res

DEBUG_OBJS= \
	curlutild.obj \
	getpassd.obj \
	homedird.obj \
	hugehelpd.obj \
	maind.obj \
	nonblockd.obj \
	os-specificd.obj \
	rawstrd.obj \
	strtoofftd.obj \
	urlglobd.obj \
	writeoutd.obj \
	xattrd.obj \
	curld.res

#################################################
# If CFG not specified, use static libs

CFLAGS         = $(CFLAGS) /DCURL_STATICLIB
LINKLIBS       = $(LIBCURL_STA_LIB_REL)
LINKLIBS_DEBUG = $(LIBCURL_STA_LIB_DBG)

#################################################
# release dynamic library

!IF "$(CFG)" == "release-dll"
LINKLIBS       = $(LIBCURL_IMP_LIB_REL)
LINKLIBS_DEBUG = $(LIBCURL_IMP_LIB_DBG)
!ENDIF

#################################################
# release static library with zlib

!IF "$(CFG)" == "release-zlib"
CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
LINKLIBS       = $(LIBCURL_STA_LIB_REL) $(ZLIB_LIBS)
LINKLIBS_DEBUG = $(LIBCURL_STA_LIB_DBG) $(ZLIB_LIBS)
LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)
!ENDIF

#################################################
# release static library with ssl

!IF "$(CFG)" == "release-ssl"
CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB
LINKLIBS       = $(LIBCURL_STA_LIB_REL) $(SSL_LIBS)
LINKLIBS_DEBUG = $(LIBCURL_STA_LIB_DBG) $(SSL_LIBS)
LFLAGS         = $(LFLAGS) $(SSL_LFLAGS)
!ENDIF

#################################################
# release dynamic library with dynamic ssl

!IF "$(CFG)" == "release-dll-ssl-dll"
CFLAGS         = $(CFLAGS) $(SSL_CFLAGS)
LINKLIBS       = $(LIBCURL_IMP_LIB_REL) $(SSL_LIBS)
LINKLIBS_DEBUG = $(LIBCURL_IMP_LIB_DBG) $(SSL_LIBS)
LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS)
!ENDIF

#################################################
# release static library with ssl and zlib

!IF "$(CFG)" == "release-ssl-zlib"
CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
LINKLIBS       = $(LIBCURL_STA_LIB_REL) $(SSL_LIBS) $(ZLIB_LIBS)
LINKLIBS_DEBUG = $(LIBCURL_STA_LIB_DBG) $(SSL_LIBS) $(ZLIB_LIBS)
LFLAGS         = $(LFLAGS) $(SSL_LFLAGS) $(ZLIB_LFLAGS)
!ENDIF

#################################################
# release static library with dynamic ssl

!IF "$(CFG)" == "release-ssl-dll"
CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB
LINKLIBS       = $(LIBCURL_STA_LIB_REL) $(SSL_LIBS)
LINKLIBS_DEBUG = $(LIBCURL_STA_LIB_DBG) $(SSL_LIBS)
LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS)
!ENDIF

#################################################
# release static library with dynamic zlib

!IF "$(CFG)" == "release-zlib-dll"
CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
LINKLIBS       = $(LIBCURL_STA_LIB_REL) $(ZLIB_IMP_LIBS)
LINKLIBS_DEBUG = $(LIBCURL_STA_LIB_DBG) $(ZLIB_IMP_LIBS)
LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)
!ENDIF

#################################################
# release dynamic library with dynamic zlib

!IF "$(CFG)" == "release-dll-zlib-dll"
CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS)
LINKLIBS       = $(LIBCURL_IMP_LIB_REL) $(ZLIB_IMP_LIBS)
LINKLIBS_DEBUG = $(LIBCURL_IMP_LIB_DBG) $(ZLIB_IMP_LIBS)
LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)
!ENDIF

#################################################
# release static library with dynamic ssl and dynamic zlib

!IF "$(CFG)" == "release-ssl-dll-zlib-dll"
CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
LINKLIBS       = $(LIBCURL_STA_LIB_REL) $(SSL_LIBS) $(ZLIB_IMP_LIBS)
LINKLIBS_DEBUG = $(LIBCURL_STA_LIB_DBG) $(SSL_LIBS) $(ZLIB_IMP_LIBS)
LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)
!ENDIF

#################################################
# release dynamic library with dynamic ssl and dynamic zlib

!IF "$(CFG)" == "release-dll-ssl-dll-zlib-dll"
CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS)
LINKLIBS       = $(LIBCURL_IMP_LIB_REL) $(SSL_LIBS) $(ZLIB_IMP_LIBS)
LINKLIBS_DEBUG = $(LIBCURL_IMP_LIB_DBG) $(SSL_LIBS) $(ZLIB_IMP_LIBS)
LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)
!ENDIF


LINKLIBS       = $(LINKLIBS) ws2_32.lib wldap32.lib
LINKLIBS_DEBUG = $(LINKLIBS_DEBUG) ws2_32.lib wldap32.lib

all : release

release: $(RELEASE_OBJS)
	$(LINKR) $(LFLAGS) $(LINKLIBS) $(RELEASE_OBJS)
        $(MANIFESTTOOL)

debug: $(DEBUG_OBJS)
	$(LINKD) $(LFLAGS) $(LINKLIBS_DEBUG) $(DEBUG_OBJS)
        $(MANIFESTTOOL)

## Release
hugehelpr.obj: hugehelp.c
	$(CCR) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c
writeoutr.obj: writeout.c
	$(CCR) $(CFLAGS) /Fo"$@" writeout.c
urlglobr.obj: urlglob.c
	$(CCR) $(CFLAGS) /Fo"$@" urlglob.c
getpassr.obj: getpass.c
	$(CCR) $(CFLAGS) /Fo"$@" getpass.c
homedirr.obj: homedir.c
	$(CCR) $(CFLAGS) /Fo"$@" homedir.c
curlutilr.obj: curlutil.c
	$(CCR) $(CFLAGS) /Fo"$@" curlutil.c
os-specificr.obj: os-specific.c
	$(CCR) $(CFLAGS) /Fo"$@" os-specific.c
nonblockr.obj: ../lib/nonblock.c
	$(CCR) $(CFLAGS) /Fo"$@" ../lib/nonblock.c
rawstrr.obj: ../lib/rawstr.c
	$(CCR) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
strtoofftr.obj: ../lib/strtoofft.c
	$(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
xattrr.obj: xattr.c
	$(CCR) $(CFLAGS) /Fo"$@" xattr.c
mainr.obj: main.c
	$(CCR) $(CFLAGS) /Fo"$@" main.c
curlr.res : curl.rc
	$(RCR) $(RESFLAGS) /Fo"$@" curl.rc

## Debug
hugehelpd.obj: hugehelp.c
	$(CCD) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c
writeoutd.obj: writeout.c
	$(CCD) $(CFLAGS) /Fo"$@" writeout.c
urlglobd.obj: urlglob.c
	$(CCD) $(CFLAGS) /Fo"$@" urlglob.c
getpassd.obj: getpass.c
	$(CCD) $(CFLAGS) /Fo"$@" getpass.c
homedird.obj: homedir.c
	$(CCD) $(CFLAGS) /Fo"$@" homedir.c
curlutild.obj: curlutil.c
	$(CCD) $(CFLAGS) /Fo"$@" curlutil.c
os-specificd.obj: os-specific.c
	$(CCD) $(CFLAGS) /Fo"$@" os-specific.c
nonblockd.obj: ../lib/nonblock.c
	$(CCD) $(CFLAGS) /Fo"$@" ../lib/nonblock.c
rawstrd.obj: ../lib/rawstr.c
	$(CCD) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
strtoofftd.obj: ../lib/strtoofft.c
	$(CCD) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
xattrd.obj: xattr.c
	$(CCD) $(CFLAGS) /Fo"$@" xattr.c
maind.obj: main.c
	$(CCD) $(CFLAGS) /Fo"$@" main.c
curld.res : curl.rc
	$(RCD) $(RESFLAGS) /Fo"$@" curl.rc

clean:
	@-erase $(PROGRAM_NAME) 2> NUL
	@-erase $(RELEASE_OBJS) 2> NUL
	@-erase $(DEBUG_OBJS) 2> NUL
	@-erase *.idb 2> NUL
	@-erase *.pdb 2> NUL
	@-erase *.pch 2> NUL
	@-erase *.ilk 2> NUL
