1 1.1.1.2 christos # Makefile for zlib using Microsoft (Visual) C 2 1.1.1.3 christos # zlib is copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler 3 1.1 christos # 4 1.1 christos # Usage: 5 1.1.1.2 christos # nmake -f win32/Makefile.msc (standard build) 6 1.1.1.2 christos # nmake -f win32/Makefile.msc LOC=-DFOO (nonstandard build) 7 1.1 christos 8 1.1.1.2 christos # The toplevel directory of the source tree. 9 1.1.1.2 christos # 10 1.1.1.2 christos TOP = . 11 1.1 christos 12 1.1 christos # optional build flags 13 1.1 christos LOC = 14 1.1 christos 15 1.1 christos # variables 16 1.1 christos STATICLIB = zlib.lib 17 1.1 christos SHAREDLIB = zlib1.dll 18 1.1 christos IMPLIB = zdll.lib 19 1.1 christos 20 1.1 christos CC = cl 21 1.1 christos AS = ml 22 1.1 christos LD = link 23 1.1 christos AR = lib 24 1.1 christos RC = rc 25 1.1.1.2 christos CFLAGS = -nologo -MD -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC) 26 1.1.1.2 christos WFLAGS = -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE 27 1.1.1.2 christos ASFLAGS = -coff -Zi $(LOC) 28 1.1.1.2 christos LDFLAGS = -nologo -debug -incremental:no -opt:ref 29 1.1 christos ARFLAGS = -nologo 30 1.1 christos RCFLAGS = /dWIN32 /r 31 1.1 christos 32 1.1.1.2 christos OBJS = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj \ 33 1.1.1.2 christos gzwrite.obj infback.obj inflate.obj inftrees.obj inffast.obj trees.obj uncompr.obj zutil.obj 34 1.1 christos OBJA = 35 1.1 christos 36 1.1 christos 37 1.1 christos # targets 38 1.1 christos all: $(STATICLIB) $(SHAREDLIB) $(IMPLIB) \ 39 1.1 christos example.exe minigzip.exe example_d.exe minigzip_d.exe 40 1.1 christos 41 1.1 christos $(STATICLIB): $(OBJS) $(OBJA) 42 1.1 christos $(AR) $(ARFLAGS) -out:$@ $(OBJS) $(OBJA) 43 1.1 christos 44 1.1 christos $(IMPLIB): $(SHAREDLIB) 45 1.1 christos 46 1.1.1.2 christos $(SHAREDLIB): $(TOP)/win32/zlib.def $(OBJS) $(OBJA) zlib1.res 47 1.1.1.2 christos $(LD) $(LDFLAGS) -def:$(TOP)/win32/zlib.def -dll -implib:$(IMPLIB) \ 48 1.1.1.2 christos -out:$@ -base:0x5A4C0000 $(OBJS) $(OBJA) zlib1.res 49 1.1.1.2 christos if exist $@.manifest \ 50 1.1.1.2 christos mt -nologo -manifest $@.manifest -outputresource:$@;2 51 1.1 christos 52 1.1 christos example.exe: example.obj $(STATICLIB) 53 1.1 christos $(LD) $(LDFLAGS) example.obj $(STATICLIB) 54 1.1.1.2 christos if exist $@.manifest \ 55 1.1.1.2 christos mt -nologo -manifest $@.manifest -outputresource:$@;1 56 1.1 christos 57 1.1 christos minigzip.exe: minigzip.obj $(STATICLIB) 58 1.1 christos $(LD) $(LDFLAGS) minigzip.obj $(STATICLIB) 59 1.1.1.2 christos if exist $@.manifest \ 60 1.1.1.2 christos mt -nologo -manifest $@.manifest -outputresource:$@;1 61 1.1 christos 62 1.1 christos example_d.exe: example.obj $(IMPLIB) 63 1.1 christos $(LD) $(LDFLAGS) -out:$@ example.obj $(IMPLIB) 64 1.1.1.2 christos if exist $@.manifest \ 65 1.1.1.2 christos mt -nologo -manifest $@.manifest -outputresource:$@;1 66 1.1 christos 67 1.1 christos minigzip_d.exe: minigzip.obj $(IMPLIB) 68 1.1 christos $(LD) $(LDFLAGS) -out:$@ minigzip.obj $(IMPLIB) 69 1.1.1.2 christos if exist $@.manifest \ 70 1.1.1.2 christos mt -nologo -manifest $@.manifest -outputresource:$@;1 71 1.1 christos 72 1.1.1.2 christos {$(TOP)}.c.obj: 73 1.1.1.2 christos $(CC) -c $(WFLAGS) $(CFLAGS) $< 74 1.1.1.2 christos 75 1.1.1.2 christos {$(TOP)/test}.c.obj: 76 1.1.1.2 christos $(CC) -c -I$(TOP) $(WFLAGS) $(CFLAGS) $< 77 1.1.1.2 christos 78 1.1.1.2 christos {$(TOP)/contrib/masmx64}.c.obj: 79 1.1.1.2 christos $(CC) -c $(WFLAGS) $(CFLAGS) $< 80 1.1.1.2 christos 81 1.1.1.2 christos {$(TOP)/contrib/masmx64}.asm.obj: 82 1.1.1.2 christos $(AS) -c $(ASFLAGS) $< 83 1.1 christos 84 1.1.1.2 christos {$(TOP)/contrib/masmx86}.asm.obj: 85 1.1 christos $(AS) -c $(ASFLAGS) $< 86 1.1 christos 87 1.1.1.2 christos adler32.obj: $(TOP)/adler32.c $(TOP)/zlib.h $(TOP)/zconf.h 88 1.1.1.2 christos 89 1.1.1.2 christos compress.obj: $(TOP)/compress.c $(TOP)/zlib.h $(TOP)/zconf.h 90 1.1.1.2 christos 91 1.1.1.2 christos crc32.obj: $(TOP)/crc32.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/crc32.h 92 1.1.1.2 christos 93 1.1.1.2 christos deflate.obj: $(TOP)/deflate.c $(TOP)/deflate.h $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h 94 1.1.1.2 christos 95 1.1.1.2 christos gzclose.obj: $(TOP)/gzclose.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/gzguts.h 96 1.1.1.2 christos 97 1.1.1.2 christos gzlib.obj: $(TOP)/gzlib.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/gzguts.h 98 1.1.1.2 christos 99 1.1.1.2 christos gzread.obj: $(TOP)/gzread.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/gzguts.h 100 1.1.1.2 christos 101 1.1.1.2 christos gzwrite.obj: $(TOP)/gzwrite.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/gzguts.h 102 1.1 christos 103 1.1.1.2 christos infback.obj: $(TOP)/infback.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/inftrees.h $(TOP)/inflate.h \ 104 1.1.1.2 christos $(TOP)/inffast.h $(TOP)/inffixed.h 105 1.1 christos 106 1.1.1.2 christos inffast.obj: $(TOP)/inffast.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/inftrees.h $(TOP)/inflate.h \ 107 1.1.1.2 christos $(TOP)/inffast.h 108 1.1 christos 109 1.1.1.2 christos inflate.obj: $(TOP)/inflate.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/inftrees.h $(TOP)/inflate.h \ 110 1.1.1.2 christos $(TOP)/inffast.h $(TOP)/inffixed.h 111 1.1 christos 112 1.1.1.2 christos inftrees.obj: $(TOP)/inftrees.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/inftrees.h 113 1.1 christos 114 1.1.1.2 christos trees.obj: $(TOP)/trees.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/deflate.h $(TOP)/trees.h 115 1.1 christos 116 1.1.1.2 christos uncompr.obj: $(TOP)/uncompr.c $(TOP)/zlib.h $(TOP)/zconf.h 117 1.1 christos 118 1.1.1.2 christos zutil.obj: $(TOP)/zutil.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h 119 1.1 christos 120 1.1.1.2 christos gvmat64.obj: $(TOP)/contrib\masmx64\gvmat64.asm 121 1.1 christos 122 1.1.1.2 christos inffasx64.obj: $(TOP)/contrib\masmx64\inffasx64.asm 123 1.1 christos 124 1.1.1.2 christos inffas8664.obj: $(TOP)/contrib\masmx64\inffas8664.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h \ 125 1.1.1.2 christos $(TOP)/inftrees.h $(TOP)/inflate.h $(TOP)/inffast.h 126 1.1 christos 127 1.1.1.2 christos inffas32.obj: $(TOP)/contrib\masmx86\inffas32.asm 128 1.1 christos 129 1.1.1.2 christos match686.obj: $(TOP)/contrib\masmx86\match686.asm 130 1.1 christos 131 1.1.1.2 christos example.obj: $(TOP)/test/example.c $(TOP)/zlib.h $(TOP)/zconf.h 132 1.1 christos 133 1.1.1.2 christos minigzip.obj: $(TOP)/test/minigzip.c $(TOP)/zlib.h $(TOP)/zconf.h 134 1.1 christos 135 1.1.1.2 christos zlib1.res: $(TOP)/win32/zlib1.rc 136 1.1.1.2 christos $(RC) $(RCFLAGS) /fo$@ $(TOP)/win32/zlib1.rc 137 1.1 christos 138 1.1 christos # testing 139 1.1 christos test: example.exe minigzip.exe 140 1.1 christos example 141 1.1 christos echo hello world | minigzip | minigzip -d 142 1.1 christos 143 1.1 christos testdll: example_d.exe minigzip_d.exe 144 1.1 christos example_d 145 1.1 christos echo hello world | minigzip_d | minigzip_d -d 146 1.1 christos 147 1.1 christos 148 1.1 christos # cleanup 149 1.1 christos clean: 150 1.1 christos -del $(STATICLIB) 151 1.1 christos -del $(SHAREDLIB) 152 1.1 christos -del $(IMPLIB) 153 1.1 christos -del *.obj 154 1.1 christos -del *.res 155 1.1 christos -del *.exp 156 1.1 christos -del *.exe 157 1.1.1.2 christos -del *.pdb 158 1.1.1.2 christos -del *.manifest 159 1.1 christos -del foo.gz 160