The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 1 | # Makefile for zlib |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 2 | # Copyright (C) 1995-2010 Jean-loup Gailly. |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 3 | # For conditions of distribution and use, see copyright notice in zlib.h |
| 4 | |
| 5 | # To compile and test, type: |
| 6 | # ./configure; make test |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 7 | # Normally configure builds both a static and a shared library. |
| 8 | # If you want to build just a static library, use: ./configure --static |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 9 | |
| 10 | # To use the asm code, type: |
| 11 | # cp contrib/asm?86/match.S ./match.S |
| 12 | # make LOC=-DASMV OBJA=match.o |
| 13 | |
| 14 | # To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type: |
| 15 | # make install |
| 16 | # To install in $HOME instead of /usr/local, use: |
| 17 | # make install prefix=$HOME |
| 18 | |
| 19 | CC=cc |
| 20 | |
| 21 | CFLAGS=-O |
| 22 | #CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7 |
| 23 | #CFLAGS=-g -DDEBUG |
| 24 | #CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \ |
| 25 | # -Wstrict-prototypes -Wmissing-prototypes |
| 26 | |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 27 | SFLAGS=-O |
| 28 | LDFLAGS= |
| 29 | TEST_LDFLAGS=-L. libz.a |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 30 | LDSHARED=$(CC) |
| 31 | CPP=$(CC) -E |
| 32 | |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 33 | STATICLIB=libz.a |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 34 | SHAREDLIB=libz.so |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 35 | SHAREDLIBV=libz.so.1.2.5 |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 36 | SHAREDLIBM=libz.so.1 |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 37 | LIBS=$(STATICLIB) $(SHAREDLIBV) |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 38 | |
| 39 | AR=ar rc |
| 40 | RANLIB=ranlib |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 41 | LDCONFIG=ldconfig |
| 42 | LDSHAREDLIBC=-lc |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 43 | TAR=tar |
| 44 | SHELL=/bin/sh |
| 45 | EXE= |
| 46 | |
| 47 | prefix = /usr/local |
| 48 | exec_prefix = ${prefix} |
| 49 | libdir = ${exec_prefix}/lib |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 50 | sharedlibdir = ${libdir} |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 51 | includedir = ${prefix}/include |
| 52 | mandir = ${prefix}/share/man |
| 53 | man3dir = ${mandir}/man3 |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 54 | pkgconfigdir = ${libdir}/pkgconfig |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 55 | |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 56 | OBJC = adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o \ |
| 57 | gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 58 | |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 59 | PIC_OBJC = adler32.lo compress.lo crc32.lo deflate.lo gzclose.lo gzlib.lo gzread.lo \ |
| 60 | gzwrite.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo uncompr.lo zutil.lo |
| 61 | |
| 62 | # to use the asm code: make OBJA=match.o, PIC_OBJA=match.lo |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 63 | OBJA = |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 64 | PIC_OBJA = |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 65 | |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 66 | OBJS = $(OBJC) $(OBJA) |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 67 | |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 68 | PIC_OBJS = $(PIC_OBJC) $(PIC_OBJA) |
| 69 | |
| 70 | all: static shared |
| 71 | |
| 72 | static: example$(EXE) minigzip$(EXE) |
| 73 | |
| 74 | shared: examplesh$(EXE) minigzipsh$(EXE) |
| 75 | |
| 76 | all64: example64$(EXE) minigzip64$(EXE) |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 77 | |
| 78 | check: test |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 79 | |
| 80 | test: all teststatic testshared |
| 81 | |
| 82 | teststatic: static |
| 83 | @if echo hello world | ./minigzip | ./minigzip -d && ./example; then \ |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 84 | echo ' *** zlib test OK ***'; \ |
| 85 | else \ |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 86 | echo ' *** zlib test FAILED ***'; false; \ |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 87 | fi |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 88 | -@rm -f foo.gz |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 89 | |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 90 | testshared: shared |
| 91 | @LD_LIBRARY_PATH=`pwd`:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \ |
| 92 | LD_LIBRARYN32_PATH=`pwd`:$(LD_LIBRARYN32_PATH) ; export LD_LIBRARYN32_PATH; \ |
| 93 | DYLD_LIBRARY_PATH=`pwd`:$(DYLD_LIBRARY_PATH) ; export DYLD_LIBRARY_PATH; \ |
| 94 | SHLIB_PATH=`pwd`:$(SHLIB_PATH) ; export SHLIB_PATH; \ |
| 95 | if echo hello world | ./minigzipsh | ./minigzipsh -d && ./examplesh; then \ |
| 96 | echo ' *** zlib shared test OK ***'; \ |
| 97 | else \ |
| 98 | echo ' *** zlib shared test FAILED ***'; false; \ |
| 99 | fi |
| 100 | -@rm -f foo.gz |
| 101 | |
| 102 | test64: all64 |
| 103 | @if echo hello world | ./minigzip64 | ./minigzip64 -d && ./example64; then \ |
| 104 | echo ' *** zlib 64-bit test OK ***'; \ |
| 105 | else \ |
| 106 | echo ' *** zlib 64-bit test FAILED ***'; false; \ |
| 107 | fi |
| 108 | -@rm -f foo.gz |
| 109 | |
| 110 | libz.a: $(OBJS) |
| 111 | $(AR) $@ $(OBJS) |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 112 | -@ ($(RANLIB) $@ || true) >/dev/null 2>&1 |
| 113 | |
| 114 | match.o: match.S |
| 115 | $(CPP) match.S > _match.s |
| 116 | $(CC) -c _match.s |
| 117 | mv _match.o match.o |
| 118 | rm -f _match.s |
| 119 | |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 120 | match.lo: match.S |
| 121 | $(CPP) match.S > _match.s |
| 122 | $(CC) -c -fPIC _match.s |
| 123 | mv _match.o match.lo |
| 124 | rm -f _match.s |
| 125 | |
| 126 | example64.o: example.c zlib.h zconf.h |
| 127 | $(CC) $(CFLAGS) -D_FILE_OFFSET_BITS=64 -c -o $@ example.c |
| 128 | |
| 129 | minigzip64.o: minigzip.c zlib.h zconf.h |
| 130 | $(CC) $(CFLAGS) -D_FILE_OFFSET_BITS=64 -c -o $@ minigzip.c |
| 131 | |
| 132 | .SUFFIXES: .lo |
| 133 | |
| 134 | .c.lo: |
| 135 | -@mkdir objs 2>/dev/null || test -d objs |
| 136 | $(CC) $(SFLAGS) -DPIC -c -o objs/$*.o $< |
| 137 | -@mv objs/$*.o $@ |
| 138 | |
| 139 | $(SHAREDLIBV): $(PIC_OBJS) |
| 140 | $(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS) |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 141 | rm -f $(SHAREDLIB) $(SHAREDLIBM) |
| 142 | ln -s $@ $(SHAREDLIB) |
| 143 | ln -s $@ $(SHAREDLIBM) |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 144 | -@rmdir objs |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 145 | |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 146 | example$(EXE): example.o $(STATICLIB) |
| 147 | $(CC) $(CFLAGS) -o $@ example.o $(TEST_LDFLAGS) |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 148 | |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 149 | minigzip$(EXE): minigzip.o $(STATICLIB) |
| 150 | $(CC) $(CFLAGS) -o $@ minigzip.o $(TEST_LDFLAGS) |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 151 | |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 152 | examplesh$(EXE): example.o $(SHAREDLIBV) |
| 153 | $(CC) $(CFLAGS) -o $@ example.o -L. $(SHAREDLIBV) |
| 154 | |
| 155 | minigzipsh$(EXE): minigzip.o $(SHAREDLIBV) |
| 156 | $(CC) $(CFLAGS) -o $@ minigzip.o -L. $(SHAREDLIBV) |
| 157 | |
| 158 | example64$(EXE): example64.o $(STATICLIB) |
| 159 | $(CC) $(CFLAGS) -o $@ example64.o $(TEST_LDFLAGS) |
| 160 | |
| 161 | minigzip64$(EXE): minigzip64.o $(STATICLIB) |
| 162 | $(CC) $(CFLAGS) -o $@ minigzip64.o $(TEST_LDFLAGS) |
| 163 | |
| 164 | install-libs: $(LIBS) |
| 165 | -@if [ ! -d $(DESTDIR)$(exec_prefix) ]; then mkdir -p $(DESTDIR)$(exec_prefix); fi |
| 166 | -@if [ ! -d $(DESTDIR)$(libdir) ]; then mkdir -p $(DESTDIR)$(libdir); fi |
| 167 | -@if [ ! -d $(DESTDIR)$(sharedlibdir) ]; then mkdir -p $(DESTDIR)$(sharedlibdir); fi |
| 168 | -@if [ ! -d $(DESTDIR)$(man3dir) ]; then mkdir -p $(DESTDIR)$(man3dir); fi |
| 169 | -@if [ ! -d $(DESTDIR)$(pkgconfigdir) ]; then mkdir -p $(DESTDIR)$(pkgconfigdir); fi |
| 170 | cp $(STATICLIB) $(DESTDIR)$(libdir) |
| 171 | cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir) |
| 172 | cd $(DESTDIR)$(libdir); chmod u=rw,go=r $(STATICLIB) |
| 173 | -@(cd $(DESTDIR)$(libdir); $(RANLIB) libz.a || true) >/dev/null 2>&1 |
| 174 | -@cd $(DESTDIR)$(sharedlibdir); if test "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \ |
| 175 | chmod 755 $(SHAREDLIBV); \ |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 176 | rm -f $(SHAREDLIB) $(SHAREDLIBM); \ |
| 177 | ln -s $(SHAREDLIBV) $(SHAREDLIB); \ |
| 178 | ln -s $(SHAREDLIBV) $(SHAREDLIBM); \ |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 179 | ($(LDCONFIG) || true) >/dev/null 2>&1; \ |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 180 | fi |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 181 | cp zlib.3 $(DESTDIR)$(man3dir) |
| 182 | chmod 644 $(DESTDIR)$(man3dir)/zlib.3 |
| 183 | cp zlib.pc $(DESTDIR)$(pkgconfigdir) |
| 184 | chmod 644 $(DESTDIR)$(pkgconfigdir)/zlib.pc |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 185 | # The ranlib in install is needed on NeXTSTEP which checks file times |
| 186 | # ldconfig is for Linux |
| 187 | |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 188 | install: install-libs |
| 189 | -@if [ ! -d $(DESTDIR)$(includedir) ]; then mkdir -p $(DESTDIR)$(includedir); fi |
| 190 | cp zlib.h zconf.h $(DESTDIR)$(includedir) |
| 191 | chmod 644 $(DESTDIR)$(includedir)/zlib.h $(DESTDIR)$(includedir)/zconf.h |
| 192 | |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 193 | uninstall: |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 194 | cd $(DESTDIR)$(includedir); rm -f zlib.h zconf.h |
| 195 | cd $(DESTDIR)$(libdir); rm -f libz.a; \ |
| 196 | if test "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \ |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 197 | rm -f $(SHAREDLIBV) $(SHAREDLIB) $(SHAREDLIBM); \ |
| 198 | fi |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 199 | cd $(DESTDIR)$(man3dir); rm -f zlib.3 |
| 200 | cd $(DESTDIR)$(pkgconfigdir); rm -f zlib.pc |
| 201 | |
| 202 | docs: zlib.3.pdf |
| 203 | |
| 204 | zlib.3.pdf: zlib.3 |
| 205 | groff -mandoc -f H -T ps zlib.3 | ps2pdf - zlib.3.pdf |
| 206 | |
| 207 | zconf.h.in: zconf.h.cmakein |
| 208 | sed "/^#cmakedefine/D" < zconf.h.cmakein > zconf.h.in |
| 209 | touch -r zconf.h.cmakein zconf.h.in |
| 210 | |
| 211 | zconf: zconf.h.in |
| 212 | cp -p zconf.h.in zconf.h |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 213 | |
| 214 | mostlyclean: clean |
| 215 | clean: |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 216 | rm -f *.o *.lo *~ \ |
| 217 | example$(EXE) minigzip$(EXE) examplesh$(EXE) minigzipsh$(EXE) \ |
| 218 | example64$(EXE) minigzip64$(EXE) \ |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 219 | libz.* foo.gz so_locations \ |
| 220 | _match.s maketree contrib/infback9/*.o |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 221 | rm -rf objs |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 222 | |
| 223 | maintainer-clean: distclean |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 224 | distclean: clean zconf docs |
| 225 | rm -f Makefile zlib.pc |
| 226 | -@rm -f .DS_Store |
| 227 | -@printf 'all:\n\t-@echo "Please use ./configure first. Thank you."\n' > Makefile |
| 228 | -@printf '\ndistclean:\n\tmake -f Makefile.in distclean\n' >> Makefile |
| 229 | -@touch -r Makefile.in Makefile |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 230 | |
| 231 | tags: |
| 232 | etags *.[ch] |
| 233 | |
| 234 | depend: |
| 235 | makedepend -- $(CFLAGS) -- *.[ch] |
| 236 | |
| 237 | # DO NOT DELETE THIS LINE -- make depend depends on it. |
| 238 | |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 239 | adler32.o zutil.o: zutil.h zlib.h zconf.h |
| 240 | gzclose.o gzlib.o gzread.o gzwrite.o: zlib.h zconf.h gzguts.h |
| 241 | compress.o example.o minigzip.o uncompr.o: zlib.h zconf.h |
| 242 | crc32.o: zutil.h zlib.h zconf.h crc32.h |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 243 | deflate.o: deflate.h zutil.h zlib.h zconf.h |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 244 | infback.o inflate.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h inffixed.h |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 245 | inffast.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 246 | inftrees.o: zutil.h zlib.h zconf.h inftrees.h |
The Android Open Source Project | 9e38dfa | 2009-03-03 19:31:38 -0800 | [diff] [blame] | 247 | trees.o: deflate.h zutil.h zlib.h zconf.h trees.h |
Elliott Hughes | 381716e | 2010-04-19 17:17:14 -0700 | [diff] [blame] | 248 | |
| 249 | adler32.lo zutil.lo: zutil.h zlib.h zconf.h |
| 250 | gzclose.lo gzlib.lo gzread.lo gzwrite.lo: zlib.h zconf.h gzguts.h |
| 251 | compress.lo example.lo minigzip.lo uncompr.lo: zlib.h zconf.h |
| 252 | crc32.lo: zutil.h zlib.h zconf.h crc32.h |
| 253 | deflate.lo: deflate.h zutil.h zlib.h zconf.h |
| 254 | infback.lo inflate.lo: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h inffixed.h |
| 255 | inffast.lo: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h |
| 256 | inftrees.lo: zutil.h zlib.h zconf.h inftrees.h |
| 257 | trees.lo: deflate.h zutil.h zlib.h zconf.h trees.h |