Fossil SCM

fossil-scm / compat / zlib / win32 / Makefile.gcc
Blame History Raw 178 lines
1
# Makefile for zlib, derived from Makefile.dj2.
2
# Modified for mingw32 by C. Spieler, 6/16/98.
3
# Updated for zlib 1.2.x by Christian Spieler and Cosmin Truta, Mar-2003.
4
# Last updated: Mar 2012.
5
# Tested under Cygwin and MinGW.
6
7
# Copyright (C) 1995-2026 Jean-loup Gailly.
8
# For conditions of distribution and use, see copyright notice in zlib.h
9
10
# To compile, or to compile and test, type from the top level zlib directory:
11
#
12
# make -fwin32/Makefile.gcc; make test testdll -fwin32/Makefile.gcc
13
#
14
# To install libz.a, zconf.h and zlib.h in the system directories, type:
15
#
16
# make install -fwin32/Makefile.gcc
17
#
18
# BINARY_PATH, INCLUDE_PATH and LIBRARY_PATH must be set.
19
#
20
# To install the shared lib, append SHARED_MODE=1 to the make command :
21
#
22
# make install -fwin32/Makefile.gcc SHARED_MODE=1
23
24
# Note:
25
# If the platform is *not* MinGW (e.g. it is Cygwin or UWIN),
26
# the DLL name should be changed from "zlib1.dll".
27
28
STATICLIB = libz.a
29
SHAREDLIB = zlib1.dll
30
IMPLIB = libz.dll.a
31
32
#
33
# Set to 1 if shared object needs to be installed
34
#
35
SHARED_MODE=0
36
37
#LOC = -DZLIB_DEBUG -g
38
39
PREFIX =
40
CC = $(PREFIX)gcc
41
CFLAGS = $(LOC) -O3 -Wall
42
43
AS = $(CC)
44
ASFLAGS = $(LOC) -Wall
45
46
LD = $(CC)
47
LDFLAGS = $(LOC)
48
49
AR = $(PREFIX)ar
50
ARFLAGS = rcs
51
52
RC = $(PREFIX)windres
53
RCFLAGS =
54
55
STRIP = $(PREFIX)strip
56
57
CP = cp -fp
58
# If GNU install is available, replace $(CP) with install.
59
INSTALL = $(CP)
60
RM = rm -f
61
62
prefix ?= /usr/local
63
exec_prefix = $(prefix)
64
65
OBJS = adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o \
66
gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o
67
OBJA =
68
69
all: $(STATICLIB) $(SHAREDLIB) $(IMPLIB) example.exe minigzip.exe example_d.exe minigzip_d.exe
70
71
test: example.exe minigzip.exe
72
./example
73
echo hello world | ./minigzip | ./minigzip -d
74
75
testdll: example_d.exe minigzip_d.exe
76
./example_d
77
echo hello world | ./minigzip_d | ./minigzip_d -d
78
79
%.o: %.c
80
$(CC) $(CFLAGS) -c -o $@ $<
81
82
%.o: %.S
83
$(AS) $(ASFLAGS) -c -o $@ $<
84
85
$(STATICLIB): $(OBJS) $(OBJA)
86
$(AR) $(ARFLAGS) $@ $(OBJS) $(OBJA)
87
88
$(IMPLIB): $(SHAREDLIB)
89
90
$(SHAREDLIB): win32/zlib.def $(OBJS) $(OBJA) zlibrc.o
91
$(CC) -shared -static-libgcc -Wl,--out-implib,$(IMPLIB) $(LDFLAGS) \
92
-o $@ win32/zlib.def $(OBJS) $(OBJA) zlibrc.o
93
$(STRIP) $@
94
95
example.exe: example.o $(STATICLIB)
96
$(LD) $(LDFLAGS) -o $@ example.o $(STATICLIB)
97
$(STRIP) $@
98
99
minigzip.exe: minigzip.o $(STATICLIB)
100
$(LD) $(LDFLAGS) -o $@ minigzip.o $(STATICLIB)
101
$(STRIP) $@
102
103
example_d.exe: example.o $(IMPLIB)
104
$(LD) $(LDFLAGS) -o $@ example.o $(IMPLIB)
105
$(STRIP) $@
106
107
minigzip_d.exe: minigzip.o $(IMPLIB)
108
$(LD) $(LDFLAGS) -o $@ minigzip.o $(IMPLIB)
109
$(STRIP) $@
110
111
example.o: test/example.c zlib.h zconf.h
112
$(CC) $(CFLAGS) -I. -c -o $@ test/example.c
113
114
minigzip.o: test/minigzip.c zlib.h zconf.h
115
$(CC) $(CFLAGS) -I. -c -o $@ test/minigzip.c
116
117
zlibrc.o: win32/zlib1.rc
118
$(RC) $(RCFLAGS) -o $@ win32/zlib1.rc
119
120
.PHONY: install uninstall clean
121
122
install: zlib.h zconf.h $(STATICLIB) $(IMPLIB)
123
@if test -z "$(DESTDIR)$(INCLUDE_PATH)" -o -z "$(DESTDIR)$(LIBRARY_PATH)" -o -z "$(DESTDIR)$(BINARY_PATH)"; then \
124
echo INCLUDE_PATH, LIBRARY_PATH, and BINARY_PATH must be specified; \
125
exit 1; \
126
fi
127
-@mkdir -p '$(DESTDIR)$(INCLUDE_PATH)'
128
-@mkdir -p '$(DESTDIR)$(LIBRARY_PATH)' '$(DESTDIR)$(LIBRARY_PATH)'/pkgconfig
129
-if [ "$(SHARED_MODE)" = "1" ]; then \
130
mkdir -p '$(DESTDIR)$(BINARY_PATH)'; \
131
$(INSTALL) $(SHAREDLIB) '$(DESTDIR)$(BINARY_PATH)'; \
132
$(INSTALL) $(IMPLIB) '$(DESTDIR)$(LIBRARY_PATH)'; \
133
fi
134
-$(INSTALL) zlib.h '$(DESTDIR)$(INCLUDE_PATH)'
135
-$(INSTALL) zconf.h '$(DESTDIR)$(INCLUDE_PATH)'
136
-$(INSTALL) $(STATICLIB) '$(DESTDIR)$(LIBRARY_PATH)'
137
sed \
138
-e 's|@prefix@|${prefix}|g' \
139
-e 's|@exec_prefix@|${exec_prefix}|g' \
140
-e 's|@libdir@|$(LIBRARY_PATH)|g' \
141
-e 's|@sharedlibdir@|$(LIBRARY_PATH)|g' \
142
-e 's|@includedir@|$(INCLUDE_PATH)|g' \
143
-e 's|@VERSION@|'`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' zlib.h`'|g' \
144
zlib.pc.in > '$(DESTDIR)$(LIBRARY_PATH)'/pkgconfig/zlib.pc
145
146
uninstall:
147
-if [ "$(SHARED_MODE)" = "1" ]; then \
148
$(RM) '$(DESTDIR)$(BINARY_PATH)'/$(SHAREDLIB); \
149
$(RM) '$(DESTDIR)$(LIBRARY_PATH)'/$(IMPLIB); \
150
fi
151
-$(RM) '$(DESTDIR)$(INCLUDE_PATH)'/zlib.h
152
-$(RM) '$(DESTDIR)$(INCLUDE_PATH)'/zconf.h
153
-$(RM) '$(DESTDIR)$(LIBRARY_PATH)'/$(STATICLIB)
154
155
clean:
156
-$(RM) $(STATICLIB)
157
-$(RM) $(SHAREDLIB)
158
-$(RM) $(IMPLIB)
159
-$(RM) *.o
160
-$(RM) *.exe
161
-$(RM) foo.gz
162
163
adler32.o: zlib.h zconf.h
164
compress.o: zlib.h zconf.h
165
crc32.o: crc32.h zlib.h zconf.h
166
deflate.o: deflate.h zutil.h zlib.h zconf.h
167
gzclose.o: zlib.h zconf.h gzguts.h
168
gzlib.o: zlib.h zconf.h gzguts.h
169
gzread.o: zlib.h zconf.h gzguts.h
170
gzwrite.o: zlib.h zconf.h gzguts.h
171
inffast.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
172
inflate.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
173
infback.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
174
inftrees.o: zutil.h zlib.h zconf.h inftrees.h
175
trees.o: deflate.h zutil.h zlib.h zconf.h trees.h
176
uncompr.o: zlib.h zconf.h
177
zutil.o: zutil.h zlib.h zconf.h
178

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button