Skip to content
Makefile.vc6 4.66 KiB
Newer Older
########################################################
## Makefile for building curl.exe with MSVC6
## Use: nmake -f makefile.vc6 [release | debug] [CFG=release-ssl]
## "nmake -f makefile.vc6 CFG=release-ssl" statically links OpenSSL
## into curl.exe producing a standalone SSL-enabled executable.
##
## Comments to: Troy Engel <tengel@sonic.net>
## Updated by: Craig Davison <cd@securityfocus.com>
## release-ssl added by Miklos Nemeth <mnemeth@kfkisystems.com>
## winmm.lib added by Miklos Nemeth <mnemeth@kfkisystems.com> to support
## timeGetTime() in timeval.c
Guenter Knauf's avatar
Guenter Knauf committed
!IFNDEF ZLIB_PATH
ZLIB_PATH = ../../zlib-1.2.1
Guenter Knauf's avatar
Guenter Knauf committed
!ENDIF

!IFNDEF OPENSSL_PATH
OPENSSL_PATH = ../../openssl-0.9.9d
!ENDIF

########################################################
## Nothing more to do below this line!
CFLAGSZLIB = /D "HAVE_ZLIB_H" /D "HAVE_ZLIB" /D "HAVE_LIBZ" /I "$(ZLIB_PATH)"
LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
ZLIBLIBS   = zlib.lib
SSLINC     = /I "$(OPENSSL_PATH)/inc32" /I "$(OPENSSL_PATH)/inc32/openssl"
CFLAGSSSL  = /D "USE_SSLEAY"
LFLAGSSSL  = /LIBPATH:"$(OPENSSL_PATH)/out32"
SSLLIBS    = libeay32.lib ssleay32.lib gdi32.lib

## Release
CCR = cl.exe /MD /O2 /D "NDEBUG"
LINKR = link.exe /incremental:no /libpath:"../lib"
RCR = rc.exe /dCURLDEBUG=0

## Debug
CCD = cl.exe /MDd /Gm /ZI /Od /D "_DEBUG" /GZ
LINKD = link.exe /incremental:yes /debug /libpath:"../lib"
RCD = rc.exe /dCURLDEBUG=1
CFLAGS = /I "../lib" /I "../include" /nologo /W3 /GX /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
LFLAGS = /nologo /out:$(PROGRAM_NAME) /subsystem:console /machine:I386
RESFLAGS = /i "../include"
LINKLIBS = wsock32.lib libcurl.lib winmm.lib
LINKLIBS_DEBUG = wsock32.lib libcurld.lib winmm.lib

RELEASE_OBJS= \
	hugehelpr.obj \
	writeoutr.obj \
	urlglobr.obj \
	homedirr.obj \
	timevalr.obj \
	strtoofftr.obj \
	mainr.obj \
	curlr.res

DEBUG_OBJS= \
	hugehelpd.obj \
	writeoutd.obj \
	urlglobd.obj \
	homedird.obj \
	timevald.obj \
	strtoofftd.obj \
	maind.obj \
	curld.res

######################
# release-zlib

!IF "$(CFG)" == "release-zlib"
CFLAGS = $(CFLAGS) $(CFLAGSZLIB) /DCURL_STATICLIB
LINKLIBS = $(LINKLIBS) $(ZLIBLIBS)
LINKLIBS_DEBUG = $(LINKLIBS_DEBUG) $(ZLIBLIBS)
LFLAGS = $(LFLAGS) $(LFLAGSZLIB)
!ENDIF

Daniel Stenberg's avatar
Daniel Stenberg committed
######################
# release-ssl
Daniel Stenberg's avatar
Daniel Stenberg committed
!IF "$(CFG)" == "release-ssl"
CFLAGS = $(CFLAGS) $(CFLAGSSSL) /DCURL_STATICLIB
Daniel Stenberg's avatar
Daniel Stenberg committed
LINKLIBS  = $(LINKLIBS) $(SSLLIBS)
LINKLIBS_DEBUG  = $(LINKLIBS_DEBUG) $(SSLLIBS)
Daniel Stenberg's avatar
Daniel Stenberg committed
LFLAGS = $(LFLAGS) $(LFLAGSSSL)
!ENDIF
######################
# release-libcurl-ssl-dll

!IF "$(CFG)" == "release-libcurl-ssl-dll"
CFLAGS = $(CFLAGS) $(CFLAGSSSL)
LINKLIBS  = $(LINKLIBS) $(SSLLIBS)
LINKLIBS_DEBUG  = $(LINKLIBS_DEBUG) $(SSLLIBS)
LFLAGS = $(LFLAGS) $(LFLAGSSSL)
!ENDIF

######################
# release-ssl-zlib
!IF "$(CFG)" == "release-ssl-zlib"
CFLAGS = $(CFLAGS) $(CFLAGSSSL) $(CFLAGSZLIB)
LINKLIBS  = $(LINKLIBS) $(SSLLIBS) $(ZLIBLIBS)
LINKLIBS_DEBUG  = $(LINKLIBS_DEBUG) $(SSLLIBS) $(ZLIBLIBS)
LFLAGS = $(LFLAGS) $(LFLAGSSSL) $(LFLAGSZLIB)
!ENDIF

	$(LINKR) $(LFLAGS) $(LINKLIBS) $(RELEASE_OBJS)
	$(LINKD) $(LFLAGS) $(LINKLIBS_DEBUG) $(DEBUG_OBJS)
	$(CCR) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c
	$(CCR) $(CFLAGS) /Fo"$@" writeout.c
	$(CCR) $(CFLAGS) /Fo"$@" urlglob.c
	$(CCR) $(CFLAGS) /Fo"$@" getpass.c
homedirr.obj: homedir.c
	$(CCR) $(CFLAGS) /Fo"$@" homedir.c
timevalr.obj: ../lib/timeval.c
	$(CCR) $(CFLAGS) /Fo"$@" ../lib/timeval.c
strtoofftr.obj: ../lib/strtoofft.c
	$(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
curlr.res : curl.rc
	$(RCR) $(RESFLAGS) /Fo"$@" curl.rc
	$(CCD) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c
	$(CCD) $(CFLAGS) /Fo"$@" writeout.c
	$(CCD) $(CFLAGS) /Fo"$@" urlglob.c
	$(CCD) $(CFLAGS) /Fo"$@" getpass.c
homedird.obj: homedir.c
	$(CCD) $(CFLAGS) /Fo"$@" homedir.c
timevald.obj: timeval.c
	$(CCR) $(CFLAGS) /Fo"$@" timeval.c
strtoofftd.obj: ../lib/strtoofft.c
	$(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
curld.res : curl.rc
	$(RCD) $(RESFLAGS) /Fo"$@" curl.rc
	-@erase $(RELEASE_OBJS)
	-@erase $(DEBUG_OBJS)
	-@erase vc60.idb
	-@erase vc60.pdb
	-@erase vc60.pch
	-@erase curl.ilk
	-@erase curl.pdb

distrib: clean
	-@erase $(PROGRAM_NAME)