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