]> git.lizzy.rs Git - zlib.git/blob - win32/Makefile.msc
zlib 1.2.3.5
[zlib.git] / win32 / Makefile.msc
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 OBJA=match.obj  (use ASM code)
8
9
10 # optional build flags
11 LOC =
12
13
14 # variables
15 STATICLIB = zlib.lib
16 SHAREDLIB = zlib1.dll
17 IMPLIB    = zdll.lib
18
19 CC = cl
20 AS = ml
21 LD = link
22 AR = lib
23 RC = rc
24 CFLAGS  = -nologo -MD -O2 -Oy- $(LOC)
25 WFLAGS  = -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
26 ASFLAGS = -coff
27 LDFLAGS = -nologo -debug -release
28 ARFLAGS = -nologo
29 RCFLAGS = /dWIN32 /r
30
31 OBJS = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzio.obj gzlib.obj gzread.obj \
32        gzwrite.obj infback.obj inffast.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj
33 OBJA =
34
35
36 # targets
37 all: $(STATICLIB) $(SHAREDLIB) $(IMPLIB) \
38      example.exe minigzip.exe example_d.exe minigzip_d.exe
39
40 $(STATICLIB): $(OBJS) $(OBJA)
41         $(AR) $(ARFLAGS) -out:$@ $(OBJS) $(OBJA)
42
43 $(IMPLIB): $(SHAREDLIB)
44
45 $(SHAREDLIB): win32/zlib.def $(OBJS) $(OBJA) zlib1.res
46         $(LD) $(LDFLAGS) -def:win32/zlib.def -dll -implib:$(IMPLIB) \
47           -out:$@ $(OBJS) $(OBJA) zlib1.res
48         if exist $@.manifest \
49           mt -nologo -manifest $@.manifest -outputresource:$@;2
50
51 example.exe: example.obj $(STATICLIB)
52         $(LD) $(LDFLAGS) example.obj $(STATICLIB)
53         if exist $@.manifest \
54           mt -nologo -manifest $@.manifest -outputresource:$@;1
55
56 minigzip.exe: minigzip.obj $(STATICLIB)
57         $(LD) $(LDFLAGS) minigzip.obj $(STATICLIB)
58         if exist $@.manifest \
59           mt -nologo -manifest $@.manifest -outputresource:$@;1
60
61 example_d.exe: example.obj $(IMPLIB)
62         $(LD) $(LDFLAGS) -out:$@ example.obj $(IMPLIB)
63         if exist $@.manifest \
64           mt -nologo -manifest $@.manifest -outputresource:$@;1
65
66 minigzip_d.exe: minigzip.obj $(IMPLIB)
67         $(LD) $(LDFLAGS) -out:$@ minigzip.obj $(IMPLIB)
68         if exist $@.manifest \
69           mt -nologo -manifest $@.manifest -outputresource:$@;1
70
71 .c.obj:
72         $(CC) -c $(WFLAGS) $(CFLAGS) $<
73
74 .asm.obj:
75         $(AS) -c $(ASFLAGS) $<
76
77 adler32.obj: adler32.c zlib.h zconf.h
78
79 compress.obj: compress.c zlib.h zconf.h
80
81 crc32.obj: crc32.c zlib.h zconf.h crc32.h
82
83 deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h
84
85 gzclose.obj: gzclose.c zlib.h zconf.h gzguts.h
86
87 gzio.obj: gzio.c zutil.h zlib.h zconf.h
88
89 gzlib.obj: gzlib.c zlib.h zconf.h gzguts.h
90
91 gzread.obj: gzread.c zlib.h zconf.h gzguts.h
92
93 gzwrite.obj: gzwrite.c zlib.h zconf.h gzguts.h
94
95 infback.obj: infback.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
96              inffast.h inffixed.h
97
98 inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
99              inffast.h
100
101 inflate.obj: inflate.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
102              inffast.h inffixed.h
103
104 inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h
105
106 trees.obj: trees.c zutil.h zlib.h zconf.h deflate.h trees.h
107
108 uncompr.obj: uncompr.c zlib.h zconf.h
109
110 zutil.obj: zutil.c zutil.h zlib.h zconf.h
111
112 example.obj: example.c zlib.h zconf.h
113
114 minigzip.obj: minigzip.c zlib.h zconf.h
115
116 zlib1.res: win32/zlib1.rc
117         $(RC) $(RCFLAGS) /fo$@ win32/zlib1.rc
118
119
120 # testing
121 test: example.exe minigzip.exe
122         example
123         echo hello world | minigzip | minigzip -d
124
125 testdll: example_d.exe minigzip_d.exe
126         example_d
127         echo hello world | minigzip_d | minigzip_d -d
128
129
130 # cleanup
131 clean:
132         -del $(STATICLIB)
133         -del $(SHAREDLIB)
134         -del $(IMPLIB)
135         -del *.obj
136         -del *.res
137         -del *.exp
138         -del *.exe
139         -del *.pdb
140         -del *.manifest
141         -del foo.gz