Chris@4: # Makefile for zlib using Microsoft (Visual) C Chris@4: # zlib is copyright (C) 1995-2006 Jean-loup Gailly and Mark Adler Chris@4: # Chris@4: # Usage: Chris@4: # nmake -f win32/Makefile.msc (standard build) Chris@4: # nmake -f win32/Makefile.msc LOC=-DFOO (nonstandard build) Chris@4: # nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" \ Chris@4: # OBJA="inffas32.obj match686.obj" (use ASM code, x86) Chris@4: # nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -I." \ Chris@4: # OBJA="inffasx64.obj gvmat64.obj inffas8664.obj" (use ASM code, x64) Chris@4: Chris@4: # optional build flags Chris@4: LOC = Chris@4: Chris@4: # variables Chris@4: STATICLIB = zlib.lib Chris@4: SHAREDLIB = zlib1.dll Chris@4: IMPLIB = zdll.lib Chris@4: Chris@4: CC = cl Chris@4: AS = ml Chris@4: LD = link Chris@4: AR = lib Chris@4: RC = rc Chris@4: CFLAGS = -nologo -MD -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC) Chris@4: WFLAGS = -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE Chris@4: ASFLAGS = -coff -Zi $(LOC) Chris@4: LDFLAGS = -nologo -debug -incremental:no -opt:ref Chris@4: ARFLAGS = -nologo Chris@4: RCFLAGS = /dWIN32 /r Chris@4: Chris@4: OBJS = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj \ Chris@4: gzwrite.obj infback.obj inflate.obj inftrees.obj inffast.obj trees.obj uncompr.obj zutil.obj Chris@4: OBJA = Chris@4: Chris@4: Chris@4: # targets Chris@4: all: $(STATICLIB) $(SHAREDLIB) $(IMPLIB) \ Chris@4: example.exe minigzip.exe example_d.exe minigzip_d.exe Chris@4: Chris@4: $(STATICLIB): $(OBJS) $(OBJA) Chris@4: $(AR) $(ARFLAGS) -out:$@ $(OBJS) $(OBJA) Chris@4: Chris@4: $(IMPLIB): $(SHAREDLIB) Chris@4: Chris@4: $(SHAREDLIB): win32/zlib.def $(OBJS) $(OBJA) zlib1.res Chris@4: $(LD) $(LDFLAGS) -def:win32/zlib.def -dll -implib:$(IMPLIB) \ Chris@4: -out:$@ -base:0x5A4C0000 $(OBJS) $(OBJA) zlib1.res Chris@4: if exist $@.manifest \ Chris@4: mt -nologo -manifest $@.manifest -outputresource:$@;2 Chris@4: Chris@4: example.exe: example.obj $(STATICLIB) Chris@4: $(LD) $(LDFLAGS) example.obj $(STATICLIB) Chris@4: if exist $@.manifest \ Chris@4: mt -nologo -manifest $@.manifest -outputresource:$@;1 Chris@4: Chris@4: minigzip.exe: minigzip.obj $(STATICLIB) Chris@4: $(LD) $(LDFLAGS) minigzip.obj $(STATICLIB) Chris@4: if exist $@.manifest \ Chris@4: mt -nologo -manifest $@.manifest -outputresource:$@;1 Chris@4: Chris@4: example_d.exe: example.obj $(IMPLIB) Chris@4: $(LD) $(LDFLAGS) -out:$@ example.obj $(IMPLIB) Chris@4: if exist $@.manifest \ Chris@4: mt -nologo -manifest $@.manifest -outputresource:$@;1 Chris@4: Chris@4: minigzip_d.exe: minigzip.obj $(IMPLIB) Chris@4: $(LD) $(LDFLAGS) -out:$@ minigzip.obj $(IMPLIB) Chris@4: if exist $@.manifest \ Chris@4: mt -nologo -manifest $@.manifest -outputresource:$@;1 Chris@4: Chris@4: .c.obj: Chris@4: $(CC) -c $(WFLAGS) $(CFLAGS) $< Chris@4: Chris@4: {test}.c.obj: Chris@4: $(CC) -c -I. $(WFLAGS) $(CFLAGS) $< Chris@4: Chris@4: {contrib/masmx64}.c.obj: Chris@4: $(CC) -c $(WFLAGS) $(CFLAGS) $< Chris@4: Chris@4: {contrib/masmx64}.asm.obj: Chris@4: $(AS) -c $(ASFLAGS) $< Chris@4: Chris@4: {contrib/masmx86}.asm.obj: Chris@4: $(AS) -c $(ASFLAGS) $< Chris@4: Chris@4: adler32.obj: adler32.c zlib.h zconf.h Chris@4: Chris@4: compress.obj: compress.c zlib.h zconf.h Chris@4: Chris@4: crc32.obj: crc32.c zlib.h zconf.h crc32.h Chris@4: Chris@4: deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h Chris@4: Chris@4: gzclose.obj: gzclose.c zlib.h zconf.h gzguts.h Chris@4: Chris@4: gzlib.obj: gzlib.c zlib.h zconf.h gzguts.h Chris@4: Chris@4: gzread.obj: gzread.c zlib.h zconf.h gzguts.h Chris@4: Chris@4: gzwrite.obj: gzwrite.c zlib.h zconf.h gzguts.h Chris@4: Chris@4: infback.obj: infback.c zutil.h zlib.h zconf.h inftrees.h inflate.h \ Chris@4: inffast.h inffixed.h Chris@4: Chris@4: inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h inflate.h \ Chris@4: inffast.h Chris@4: Chris@4: inflate.obj: inflate.c zutil.h zlib.h zconf.h inftrees.h inflate.h \ Chris@4: inffast.h inffixed.h Chris@4: Chris@4: inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h Chris@4: Chris@4: trees.obj: trees.c zutil.h zlib.h zconf.h deflate.h trees.h Chris@4: Chris@4: uncompr.obj: uncompr.c zlib.h zconf.h Chris@4: Chris@4: zutil.obj: zutil.c zutil.h zlib.h zconf.h Chris@4: Chris@4: gvmat64.obj: contrib\masmx64\gvmat64.asm Chris@4: Chris@4: inffasx64.obj: contrib\masmx64\inffasx64.asm Chris@4: Chris@4: inffas8664.obj: contrib\masmx64\inffas8664.c zutil.h zlib.h zconf.h \ Chris@4: inftrees.h inflate.h inffast.h Chris@4: Chris@4: inffas32.obj: contrib\masmx86\inffas32.asm Chris@4: Chris@4: match686.obj: contrib\masmx86\match686.asm Chris@4: Chris@4: example.obj: test/example.c zlib.h zconf.h Chris@4: Chris@4: minigzip.obj: test/minigzip.c zlib.h zconf.h Chris@4: Chris@4: zlib1.res: win32/zlib1.rc Chris@4: $(RC) $(RCFLAGS) /fo$@ win32/zlib1.rc Chris@4: Chris@4: Chris@4: # testing Chris@4: test: example.exe minigzip.exe Chris@4: example Chris@4: echo hello world | minigzip | minigzip -d Chris@4: Chris@4: testdll: example_d.exe minigzip_d.exe Chris@4: example_d Chris@4: echo hello world | minigzip_d | minigzip_d -d Chris@4: Chris@4: Chris@4: # cleanup Chris@4: clean: Chris@4: -del $(STATICLIB) Chris@4: -del $(SHAREDLIB) Chris@4: -del $(IMPLIB) Chris@4: -del *.obj Chris@4: -del *.res Chris@4: -del *.exp Chris@4: -del *.exe Chris@4: -del *.pdb Chris@4: -del *.manifest Chris@4: -del foo.gz