########################################################
## Makefile for building curl.exe with MSVC6
## Use: nmake -f makefile.vc6 [release | debug]
##      (default is release)
##
## Comments to: Troy Engel <tengel@sonic.net>
## Updated by: Craig Davison <cd@securityfocus.com>

PROGRAM_NAME = curl.exe

########################################################
## Nothing more to do below this line!

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

## Debug
CCD = cl.exe /MDd /Gm /ZI /Od /D "_DEBUG" /GZ
LINKD = link.exe /incremental:yes /debug /libpath:"../lib"

CFLAGS = /I "../include" /nologo /W3 /GX /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
LFLAGS = /nologo /out:$(PROGRAM_NAME) /subsystem:console /machine:I386
LINKLIBS = wsock32.lib libcurl.lib
LINKLIBS_DEBUG = wsock32.lib libcurld.lib

RELEASE_OBJS= \
	hugehelpr.obj \
	writeoutr.obj \
	urlglobr.obj \
	mainr.obj

DEBUG_OBJS= \
	hugehelpd.obj \
	writeoutd.obj \
	urlglobd.obj \
	maind.obj
	
LINK_OBJS= \
	hugehelp.obj \
	writeout.obj \
	urlglob.obj \
	main.obj

all : release

release: $(RELEASE_OBJS)
	$(LINKR) $(LFLAGS) $(LINKLIBS) $(LINK_OBJS)

debug: $(DEBUG_OBJS)
	$(LINKD) $(LFLAGS) $(LINKLIBS_DEBUG) $(LINK_OBJS)

## Release
hugehelpr.obj: hugehelp.c
	$(CCR) $(CFLAGS) /Zm200 hugehelp.c
writeoutr.obj: writeout.c
	$(CCR) $(CFLAGS) writeout.c
urlglobr.obj: urlglob.c
	$(CCR) $(CFLAGS) urlglob.c
mainr.obj: main.c
	$(CCR) $(CFLAGS) main.c

## Debug
hugehelpd.obj: hugehelp.c
	$(CCD) $(CFLAGS) /Zm200 hugehelp.c
writeoutd.obj: writeout.c
	$(CCD) $(CFLAGS) writeout.c
urlglobd.obj: urlglob.c
	$(CCD) $(CFLAGS) urlglob.c
maind.obj: main.c
	$(CCD) $(CFLAGS) main.c

clean:
	-@erase hugehelp.obj
	-@erase main.obj
	-@erase vc60.idb
	-@erase vc60.pdb
	-@erase vc60.pch
	-@erase curl.ilk
	-@erase curl.pdb

distrib: clean
	-@erase $(PROGRAM_NAME)

