# Makefile for Win32 zlib.dll and the static library zlibstat.lib
# -- Microsoft (Visual) C.
# Author: Cosmin Truta, 11-Mar-2003
#         Christian Spieler, 19-Mar-2003
#
# Usage: nmake -f win32/Makefile.msc

CC = cl
LD = cl
RC = rc
CFLAGS = -nologo -MD -O2
LDFLAGS = -nologo

OBJS = adler32.obj compress.obj crc32.obj deflate.obj gzio.obj infback.obj \
       inffast.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj

# targets
all: zlib.dll zlibstat.lib example.exe minigzip.exe exampl_s.exe minigz_s.exe

zlibstat.lib: $(OBJS)
	lib -out:$@ $(OBJS)

zlib.dll: $(OBJS) zlib.res win32/zlib.def
	link -release -def:win32/zlib.def -dll -out:$@ $(OBJS) zlib.res

zlib.lib: zlib.dll

example.exe: example.obj zlib.lib
	$(LD) $(LDFLAGS) example.obj zlib.lib

minigzip.exe: minigzip.obj zlib.lib
	$(LD) $(LDFLAGS) minigzip.obj zlib.lib

exampl_s.exe: example.obj zlibstat.lib
	$(LD) $(LDFLAGS) -o $@ example.obj zlibstat.lib

minigz_s.exe: minigzip.obj zlibstat.lib
	$(LD) $(LDFLAGS) -o $@ minigzip.obj zlibstat.lib

.c.obj:
	$(CC) -c $(CFLAGS) $<

zlib.res: win32/zlib.rc
	$(RC) /l 0x409 /fo$@ /d WIN32 win32/zlib.rc

adler32.obj: adler32.c zlib.h zconf.h

compress.obj: compress.c zlib.h zconf.h

crc32.obj: crc32.c zlib.h zconf.h crc32.h

deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h

gzio.obj: gzio.c zutil.h zlib.h zconf.h

infback.obj: infback.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
             inffast.h inffixed.h

inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
             inffast.h

inflate.obj: inflate.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
             inffast.h inffixed.h

inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h

trees.obj: trees.c zutil.h zlib.h zconf.h deflate.h trees.h

uncompr.obj: uncompr.c zlib.h zconf.h

zutil.obj: zutil.c zutil.h zlib.h zconf.h

example.obj: example.c zlib.h zconf.h

minigzip.obj: minigzip.c zlib.h zconf.h

# testing
test: example.exe minigzip.exe
	example
	echo hello world | minigzip | minigzip -d 

teststat: exampl_s.exe minigz_s.exe
	exampl_s
	echo hello world | minigz_s | minigz_s -d 

# cleanup
clean:
	del *.obj
	del *.dll
	del *.lib
	del *.exp
	del *.exe
