########################################################
## Makefile for building curl.exe with MSVC6
## Use: nmake -f makefile.vc6 [release | debug]
##      (default is release)
##
## Comments to: Troy Engel <tengel@sonic.net>

PROGRAM_NAME = curl.exe

########################################################
## Nothing more to do below this line!

## Release
CCR = cl.exe /ML /O2 /D "NDEBUG"
LINKR = link.exe /incremental:no /libpath:"../lib"

## Debug
CCD = cl.exe /MLd /Gm /ZI /Od /D "_DEBUG" /GZ
LINKD = link.exe /incremental:yes /debug

CFLAGS = /nologo /W3 /GX /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
LFLAGS = /nologo /out:$(PROGRAM_NAME) /subsystem:console /machine:I386
LINKLIBS = kernel32.lib wsock32.lib libcurl.lib

RELEASE_OBJS= \
	hugehelpr.obj \
	mainr.obj

DEBUG_OBJS= \
	hugehelpd.obj \
	maind.obj
	
LINK_OBJS= \
	hugehelp.obj \
	main.obj

all : release

release: $(RELEASE_OBJS)
	$(LINKR) $(LFLAGS) $(LINKLIBS) $(LINK_OBJS)

debug: $(DEBUG_OBJS)
	$(LINKD) $(LFLAGS) $(LINKLIBS) $(LINK_OBJS)

## Release
hugehelpr.obj: hugehelp.c
	$(CCR) $(CFLAGS) /Zm200 hugehelp.c
mainr.obj: main.c
	$(CCR) $(CFLAGS) main.c

## Debug
hugehelpd.obj: hugehelp.c
	$(CCD) $(CFLAGS) /Zm200 hugehelp.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)

