# Makefile for zlib for compiling by MSVC

!ifndef _SUBMAKE

#clean default extension list
.SUFFIXES:
#append extensions to list
.SUFFIXES: .cc .cpp .c

CC       = cl /nologo
CXX      = $(CC) /TP
LD       = $(CXX)

CFLAGS   = -O2 $(INC) -D_WIN32 /GR- /GX-
LDFLAGS  =

!endif

O        = .o


# variables
OBJ1 = gzio$(O) deflate$(O) adler32$(O) compress$(O) crc32$(O) uncompr$(O) \
  trees$(O)
OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \
  infutil$(O) inffast$(O)

all::  zlib.lib

adler32.o: adler32.c zutil.h zlib.h zconf.h
	$(CC) -c $(CFLAGS) $*.c -Fo$*.o

compress.o: compress.c zlib.h zconf.h
	$(CC) -c $(CFLAGS) $*.c -Fo$*.o

crc32.o: crc32.c zutil.h zlib.h zconf.h
	$(CC) -c $(CFLAGS) $*.c -Fo$*.o

deflate.o: deflate.c deflate.h zutil.h zlib.h zconf.h
	$(CC) -c $(CFLAGS) $*.c -Fo$*.o

gzio.o: gzio.c zutil.h zlib.h zconf.h
	$(CC) -c $(CFLAGS) $*.c -Fo$*.o

infblock.o: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h\
   infcodes.h infutil.h
	$(CC) -c $(CFLAGS) $*.c -Fo$*.o

infcodes.o: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h\
   infcodes.h inffast.h
	$(CC) -c $(CFLAGS) $*.c -Fo$*.o

inflate.o: inflate.c zutil.h zlib.h zconf.h infblock.h
	$(CC) -c $(CFLAGS) $*.c -Fo$*.o

inftrees.o: inftrees.c zutil.h zlib.h zconf.h inftrees.h
	$(CC) -c $(CFLAGS) $*.c -Fo$*.o

infutil.o: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h
	$(CC) -c $(CFLAGS) $*.c -Fo$*.o

inffast.o: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h
	$(CC) -c $(CFLAGS) $*.c -Fo$*.o

trees.o: trees.c deflate.h zutil.h zlib.h zconf.h
	$(CC) -c $(CFLAGS) $*.c -Fo$*.o

uncompr.o: uncompr.c zlib.h zconf.h
	$(CC) -c $(CFLAGS) $*.c -Fo$*.o

zutil.o: zutil.c zutil.h zlib.h zconf.h
	$(CC) -c $(CFLAGS) $*.c -Fo$*.o

zlib.lib: $(OBJ1) $(OBJ2)
	-del zlib.lib
	lib /OUT:zlib.lib $(OBJ1) $(OBJ2)


example.exe: example.o zlib.lib
	$(LD) $(LDFLAGS) example.o zlib.lib

minigzip.exe: minigzip.o zlib.lib
	$(LD) $(LDFLAGS) minigzip.o zlib.lib

test: example.exe minigzip.exe
	example
	echo hello world | minigzip | minigzip -d 

clean:
	del *.o
	del *.exe
	del *.dll
	del *.lib
	del *.tds

