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