########################################################
## 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 = ws2_32.lib libcurl.lib
LINKLIBS_DEBUG = ws2_32.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)

