Home | History | Annotate | Line # | Download | only in zlib
      1 # Makefile for zlib
      2 # Copyright (C) 1995-2024 Jean-loup Gailly, Mark Adler
      3 # For conditions of distribution and use, see copyright notice in zlib.h
      4 
      5 # To compile and test, type:
      6 #    ./configure; make test
      7 # Normally configure builds both a static and a shared library.
      8 # If you want to build just a static library, use: ./configure --static
      9 
     10 # To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type:
     11 #    make install
     12 # To install in $HOME instead of /usr/local, use:
     13 #    make install prefix=$HOME
     14 
     15 CC=cc
     16 
     17 CFLAGS=-O
     18 #CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
     19 #CFLAGS=-g -DZLIB_DEBUG
     20 #CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
     21 #           -Wstrict-prototypes -Wmissing-prototypes
     22 
     23 SFLAGS=-O
     24 LDFLAGS=
     25 TEST_LIBS=-L. libz.a
     26 LDSHARED=$(CC)
     27 CPP=$(CC) -E
     28 
     29 STATICLIB=libz.a
     30 SHAREDLIB=libz.so
     31 SHAREDLIBV=libz.so.1.3.1
     32 SHAREDLIBM=libz.so.1
     33 LIBS=$(STATICLIB) $(SHAREDLIBV)
     34 
     35 AR=ar
     36 ARFLAGS=rc
     37 RANLIB=ranlib
     38 LDCONFIG=ldconfig
     39 LDSHAREDLIBC=-lc
     40 TAR=tar
     41 SHELL=/bin/sh
     42 EXE=
     43 
     44 prefix = /usr/local
     45 exec_prefix = ${prefix}
     46 libdir = ${exec_prefix}/lib
     47 sharedlibdir = ${libdir}
     48 includedir = ${prefix}/include
     49 mandir = ${prefix}/share/man
     50 man3dir = ${mandir}/man3
     51 pkgconfigdir = ${libdir}/pkgconfig
     52 SRCDIR=
     53 ZINC=
     54 ZINCOUT=-I.
     55 
     56 OBJZ = adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o
     57 OBJG = compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o
     58 OBJC = $(OBJZ) $(OBJG)
     59 
     60 PIC_OBJZ = adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo
     61 PIC_OBJG = compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo
     62 PIC_OBJC = $(PIC_OBJZ) $(PIC_OBJG)
     63 
     64 # to use the asm code: make OBJA=match.o, PIC_OBJA=match.lo
     65 OBJA =
     66 PIC_OBJA =
     67 
     68 OBJS = $(OBJC) $(OBJA)
     69 
     70 PIC_OBJS = $(PIC_OBJC) $(PIC_OBJA)
     71 
     72 all: static shared
     73 
     74 static: example$(EXE) minigzip$(EXE)
     75 
     76 shared: examplesh$(EXE) minigzipsh$(EXE)
     77 
     78 all64: example64$(EXE) minigzip64$(EXE)
     79 
     80 check: test
     81 
     82 test: all teststatic testshared
     83 
     84 teststatic: static
     85 	@TMPST=tmpst_$$; \
     86 	if echo hello world | ${QEMU_RUN} ./minigzip | ${QEMU_RUN} ./minigzip -d && ${QEMU_RUN} ./example $$TMPST ; then \
     87 	  echo '		*** zlib test OK ***'; \
     88 	else \
     89 	  echo '		*** zlib test FAILED ***'; false; \
     90 	fi
     91 	@rm -f tmpst_$$
     92 
     93 testshared: shared
     94 	@LD_LIBRARY_PATH=`pwd`:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \
     95 	LD_LIBRARYN32_PATH=`pwd`:$(LD_LIBRARYN32_PATH) ; export LD_LIBRARYN32_PATH; \
     96 	DYLD_LIBRARY_PATH=`pwd`:$(DYLD_LIBRARY_PATH) ; export DYLD_LIBRARY_PATH; \
     97 	SHLIB_PATH=`pwd`:$(SHLIB_PATH) ; export SHLIB_PATH; \
     98 	TMPSH=tmpsh_$$; \
     99 	if echo hello world | ${QEMU_RUN} ./minigzipsh | ${QEMU_RUN} ./minigzipsh -d && ${QEMU_RUN} ./examplesh $$TMPSH; then \
    100 	  echo '		*** zlib shared test OK ***'; \
    101 	else \
    102 	  echo '		*** zlib shared test FAILED ***'; false; \
    103 	fi
    104 	@rm -f tmpsh_$$
    105 
    106 test64: all64
    107 	@TMP64=tmp64_$$; \
    108 	if echo hello world | ${QEMU_RUN} ./minigzip64 | ${QEMU_RUN} ./minigzip64 -d && ${QEMU_RUN} ./example64 $$TMP64; then \
    109 	  echo '		*** zlib 64-bit test OK ***'; \
    110 	else \
    111 	  echo '		*** zlib 64-bit test FAILED ***'; false; \
    112 	fi
    113 	@rm -f tmp64_$$
    114 
    115 infcover.o: $(SRCDIR)test/infcover.c $(SRCDIR)zlib.h zconf.h
    116 	$(CC) $(CFLAGS) $(ZINCOUT) -c -o $@ $(SRCDIR)test/infcover.c
    117 
    118 infcover: infcover.o libz.a
    119 	$(CC) $(CFLAGS) -o $@ infcover.o libz.a
    120 
    121 cover: infcover
    122 	rm -f *.gcda
    123 	${QEMU_RUN} ./infcover
    124 	gcov inf*.c
    125 
    126 libz.a: $(OBJS)
    127 	$(AR) $(ARFLAGS) $@ $(OBJS)
    128 	-@ ($(RANLIB) $@ || true) >/dev/null 2>&1
    129 
    130 match.o: match.S
    131 	$(CPP) match.S > _match.s
    132 	$(CC) -c _match.s
    133 	mv _match.o match.o
    134 	rm -f _match.s
    135 
    136 match.lo: match.S
    137 	$(CPP) match.S > _match.s
    138 	$(CC) -c -fPIC _match.s
    139 	mv _match.o match.lo
    140 	rm -f _match.s
    141 
    142 example.o: $(SRCDIR)test/example.c $(SRCDIR)zlib.h zconf.h
    143 	$(CC) $(CFLAGS) $(ZINCOUT) -c -o $@ $(SRCDIR)test/example.c
    144 
    145 minigzip.o: $(SRCDIR)test/minigzip.c $(SRCDIR)zlib.h zconf.h
    146 	$(CC) $(CFLAGS) $(ZINCOUT) -c -o $@ $(SRCDIR)test/minigzip.c
    147 
    148 example64.o: $(SRCDIR)test/example.c $(SRCDIR)zlib.h zconf.h
    149 	$(CC) $(CFLAGS) $(ZINCOUT) -D_FILE_OFFSET_BITS=64 -c -o $@ $(SRCDIR)test/example.c
    150 
    151 minigzip64.o: $(SRCDIR)test/minigzip.c $(SRCDIR)zlib.h zconf.h
    152 	$(CC) $(CFLAGS) $(ZINCOUT) -D_FILE_OFFSET_BITS=64 -c -o $@ $(SRCDIR)test/minigzip.c
    153 
    154 
    155 adler32.o: $(SRCDIR)adler32.c
    156 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)adler32.c
    157 
    158 crc32.o: $(SRCDIR)crc32.c
    159 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)crc32.c
    160 
    161 deflate.o: $(SRCDIR)deflate.c
    162 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)deflate.c
    163 
    164 infback.o: $(SRCDIR)infback.c
    165 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)infback.c
    166 
    167 inffast.o: $(SRCDIR)inffast.c
    168 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)inffast.c
    169 
    170 inflate.o: $(SRCDIR)inflate.c
    171 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)inflate.c
    172 
    173 inftrees.o: $(SRCDIR)inftrees.c
    174 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)inftrees.c
    175 
    176 trees.o: $(SRCDIR)trees.c
    177 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)trees.c
    178 
    179 zutil.o: $(SRCDIR)zutil.c
    180 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)zutil.c
    181 
    182 compress.o: $(SRCDIR)compress.c
    183 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)compress.c
    184 
    185 uncompr.o: $(SRCDIR)uncompr.c
    186 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)uncompr.c
    187 
    188 gzclose.o: $(SRCDIR)gzclose.c
    189 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)gzclose.c
    190 
    191 gzlib.o: $(SRCDIR)gzlib.c
    192 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)gzlib.c
    193 
    194 gzread.o: $(SRCDIR)gzread.c
    195 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)gzread.c
    196 
    197 gzwrite.o: $(SRCDIR)gzwrite.c
    198 	$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)gzwrite.c
    199 
    200 
    201 adler32.lo: $(SRCDIR)adler32.c
    202 	-@mkdir objs 2>/dev/null || test -d objs
    203 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/adler32.o $(SRCDIR)adler32.c
    204 	-@mv objs/adler32.o $@
    205 
    206 crc32.lo: $(SRCDIR)crc32.c
    207 	-@mkdir objs 2>/dev/null || test -d objs
    208 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/crc32.o $(SRCDIR)crc32.c
    209 	-@mv objs/crc32.o $@
    210 
    211 deflate.lo: $(SRCDIR)deflate.c
    212 	-@mkdir objs 2>/dev/null || test -d objs
    213 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/deflate.o $(SRCDIR)deflate.c
    214 	-@mv objs/deflate.o $@
    215 
    216 infback.lo: $(SRCDIR)infback.c
    217 	-@mkdir objs 2>/dev/null || test -d objs
    218 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/infback.o $(SRCDIR)infback.c
    219 	-@mv objs/infback.o $@
    220 
    221 inffast.lo: $(SRCDIR)inffast.c
    222 	-@mkdir objs 2>/dev/null || test -d objs
    223 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/inffast.o $(SRCDIR)inffast.c
    224 	-@mv objs/inffast.o $@
    225 
    226 inflate.lo: $(SRCDIR)inflate.c
    227 	-@mkdir objs 2>/dev/null || test -d objs
    228 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/inflate.o $(SRCDIR)inflate.c
    229 	-@mv objs/inflate.o $@
    230 
    231 inftrees.lo: $(SRCDIR)inftrees.c
    232 	-@mkdir objs 2>/dev/null || test -d objs
    233 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/inftrees.o $(SRCDIR)inftrees.c
    234 	-@mv objs/inftrees.o $@
    235 
    236 trees.lo: $(SRCDIR)trees.c
    237 	-@mkdir objs 2>/dev/null || test -d objs
    238 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/trees.o $(SRCDIR)trees.c
    239 	-@mv objs/trees.o $@
    240 
    241 zutil.lo: $(SRCDIR)zutil.c
    242 	-@mkdir objs 2>/dev/null || test -d objs
    243 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/zutil.o $(SRCDIR)zutil.c
    244 	-@mv objs/zutil.o $@
    245 
    246 compress.lo: $(SRCDIR)compress.c
    247 	-@mkdir objs 2>/dev/null || test -d objs
    248 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/compress.o $(SRCDIR)compress.c
    249 	-@mv objs/compress.o $@
    250 
    251 uncompr.lo: $(SRCDIR)uncompr.c
    252 	-@mkdir objs 2>/dev/null || test -d objs
    253 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/uncompr.o $(SRCDIR)uncompr.c
    254 	-@mv objs/uncompr.o $@
    255 
    256 gzclose.lo: $(SRCDIR)gzclose.c
    257 	-@mkdir objs 2>/dev/null || test -d objs
    258 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/gzclose.o $(SRCDIR)gzclose.c
    259 	-@mv objs/gzclose.o $@
    260 
    261 gzlib.lo: $(SRCDIR)gzlib.c
    262 	-@mkdir objs 2>/dev/null || test -d objs
    263 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/gzlib.o $(SRCDIR)gzlib.c
    264 	-@mv objs/gzlib.o $@
    265 
    266 gzread.lo: $(SRCDIR)gzread.c
    267 	-@mkdir objs 2>/dev/null || test -d objs
    268 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/gzread.o $(SRCDIR)gzread.c
    269 	-@mv objs/gzread.o $@
    270 
    271 gzwrite.lo: $(SRCDIR)gzwrite.c
    272 	-@mkdir objs 2>/dev/null || test -d objs
    273 	$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/gzwrite.o $(SRCDIR)gzwrite.c
    274 	-@mv objs/gzwrite.o $@
    275 
    276 
    277 placebo $(SHAREDLIBV): $(PIC_OBJS) libz.a
    278 	$(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS)
    279 	rm -f $(SHAREDLIB) $(SHAREDLIBM)
    280 	ln -s $@ $(SHAREDLIB)
    281 	ln -s $@ $(SHAREDLIBM)
    282 	-@rmdir objs
    283 
    284 example$(EXE): example.o $(STATICLIB)
    285 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ example.o $(TEST_LIBS)
    286 
    287 minigzip$(EXE): minigzip.o $(STATICLIB)
    288 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ minigzip.o $(TEST_LIBS)
    289 
    290 examplesh$(EXE): example.o $(SHAREDLIBV)
    291 	$(CC) $(CFLAGS) -o $@ example.o $(LDFLAGS) -L. $(SHAREDLIBV)
    292 
    293 minigzipsh$(EXE): minigzip.o $(SHAREDLIBV)
    294 	$(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS) -L. $(SHAREDLIBV)
    295 
    296 example64$(EXE): example64.o $(STATICLIB)
    297 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ example64.o $(TEST_LIBS)
    298 
    299 minigzip64$(EXE): minigzip64.o $(STATICLIB)
    300 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ minigzip64.o $(TEST_LIBS)
    301 
    302 install-libs: $(LIBS)
    303 	-@if [ ! -d $(DESTDIR)$(exec_prefix)  ]; then mkdir -p $(DESTDIR)$(exec_prefix); fi
    304 	-@if [ ! -d $(DESTDIR)$(libdir)       ]; then mkdir -p $(DESTDIR)$(libdir); fi
    305 	-@if [ ! -d $(DESTDIR)$(sharedlibdir) ]; then mkdir -p $(DESTDIR)$(sharedlibdir); fi
    306 	-@if [ ! -d $(DESTDIR)$(man3dir)      ]; then mkdir -p $(DESTDIR)$(man3dir); fi
    307 	-@if [ ! -d $(DESTDIR)$(pkgconfigdir) ]; then mkdir -p $(DESTDIR)$(pkgconfigdir); fi
    308 	rm -f $(DESTDIR)$(libdir)/$(STATICLIB)
    309 	cp $(STATICLIB) $(DESTDIR)$(libdir)
    310 	chmod 644 $(DESTDIR)$(libdir)/$(STATICLIB)
    311 	-@($(RANLIB) $(DESTDIR)$(libdir)/libz.a || true) >/dev/null 2>&1
    312 	-@if test -n "$(SHAREDLIBV)"; then \
    313 	  rm -f $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV); \
    314 	  cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir); \
    315 	  echo "cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)"; \
    316 	  chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV); \
    317 	  echo "chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV)"; \
    318 	  rm -f $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \
    319 	  ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB); \
    320 	  ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \
    321 	  ($(LDCONFIG) || true)  >/dev/null 2>&1; \
    322 	fi
    323 	rm -f $(DESTDIR)$(man3dir)/zlib.3
    324 	cp $(SRCDIR)zlib.3 $(DESTDIR)$(man3dir)
    325 	chmod 644 $(DESTDIR)$(man3dir)/zlib.3
    326 	rm -f $(DESTDIR)$(pkgconfigdir)/zlib.pc
    327 	cp zlib.pc $(DESTDIR)$(pkgconfigdir)
    328 	chmod 644 $(DESTDIR)$(pkgconfigdir)/zlib.pc
    329 # The ranlib in install is needed on NeXTSTEP which checks file times
    330 # ldconfig is for Linux
    331 
    332 install: install-libs
    333 	-@if [ ! -d $(DESTDIR)$(includedir)   ]; then mkdir -p $(DESTDIR)$(includedir); fi
    334 	rm -f $(DESTDIR)$(includedir)/zlib.h $(DESTDIR)$(includedir)/zconf.h
    335 	cp $(SRCDIR)zlib.h zconf.h $(DESTDIR)$(includedir)
    336 	chmod 644 $(DESTDIR)$(includedir)/zlib.h $(DESTDIR)$(includedir)/zconf.h
    337 
    338 uninstall:
    339 	cd $(DESTDIR)$(includedir) && rm -f zlib.h zconf.h
    340 	cd $(DESTDIR)$(libdir) && rm -f libz.a; \
    341 	if test -n "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \
    342 	  rm -f $(SHAREDLIBV) $(SHAREDLIB) $(SHAREDLIBM); \
    343 	fi
    344 	cd $(DESTDIR)$(man3dir) && rm -f zlib.3
    345 	cd $(DESTDIR)$(pkgconfigdir) && rm -f zlib.pc
    346 
    347 docs: zlib.3.pdf
    348 
    349 zlib.3.pdf: $(SRCDIR)zlib.3
    350 	groff -mandoc -f H -T ps $(SRCDIR)zlib.3 | ps2pdf - $@
    351 
    352 zconf.h.cmakein: $(SRCDIR)zconf.h.in
    353 	-@ TEMPFILE=zconfh_$$; \
    354 	echo "/#define ZCONF_H/ a\\\\\n#cmakedefine Z_PREFIX\\\\\n#cmakedefine Z_HAVE_UNISTD_H\n" >> $$TEMPFILE &&\
    355 	sed -f $$TEMPFILE $(SRCDIR)zconf.h.in > $@ &&\
    356 	touch -r $(SRCDIR)zconf.h.in $@ &&\
    357 	rm $$TEMPFILE
    358 
    359 zconf: $(SRCDIR)zconf.h.in
    360 	cp -p $(SRCDIR)zconf.h.in zconf.h
    361 
    362 minizip-test: static
    363 	cd contrib/minizip && { CC="$(CC)" CFLAGS="$(CFLAGS)" $(MAKE) test ; cd ../.. ; }
    364 
    365 minizip-clean:
    366 	cd contrib/minizip && { $(MAKE) clean ; cd ../.. ; }
    367 
    368 mostlyclean: clean
    369 clean: minizip-clean
    370 	rm -f *.o *.lo *~ \
    371 	   example$(EXE) minigzip$(EXE) examplesh$(EXE) minigzipsh$(EXE) \
    372 	   example64$(EXE) minigzip64$(EXE) \
    373 	   infcover \
    374 	   libz.* foo.gz so_locations \
    375 	   _match.s maketree contrib/infback9/*.o
    376 	rm -rf objs
    377 	rm -f *.gcda *.gcno *.gcov
    378 	rm -f contrib/infback9/*.gcda contrib/infback9/*.gcno contrib/infback9/*.gcov
    379 
    380 maintainer-clean: distclean
    381 distclean: clean zconf zconf.h.cmakein
    382 	rm -f Makefile zlib.pc configure.log
    383 	-@rm -f .DS_Store
    384 	@if [ -f Makefile.in ]; then \
    385 	printf 'all:\n\t-@echo "Please use ./configure first.  Thank you."\n' > Makefile ; \
    386 	printf '\ndistclean:\n\tmake -f Makefile.in distclean\n' >> Makefile ; \
    387 	touch -r $(SRCDIR)Makefile.in Makefile ; fi
    388 
    389 tags:
    390 	etags $(SRCDIR)*.[ch]
    391 
    392 adler32.o zutil.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
    393 gzclose.o gzlib.o gzread.o gzwrite.o: $(SRCDIR)zlib.h zconf.h $(SRCDIR)gzguts.h
    394 compress.o example.o minigzip.o uncompr.o: $(SRCDIR)zlib.h zconf.h
    395 crc32.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)crc32.h
    396 deflate.o: $(SRCDIR)deflate.h $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
    397 infback.o inflate.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h $(SRCDIR)inflate.h $(SRCDIR)inffast.h $(SRCDIR)inffixed.h
    398 inffast.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h $(SRCDIR)inflate.h $(SRCDIR)inffast.h
    399 inftrees.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h
    400 trees.o: $(SRCDIR)deflate.h $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)trees.h
    401 
    402 adler32.lo zutil.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
    403 gzclose.lo gzlib.lo gzread.lo gzwrite.lo: $(SRCDIR)zlib.h zconf.h $(SRCDIR)gzguts.h
    404 compress.lo example.lo minigzip.lo uncompr.lo: $(SRCDIR)zlib.h zconf.h
    405 crc32.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)crc32.h
    406 deflate.lo: $(SRCDIR)deflate.h $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
    407 infback.lo inflate.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h $(SRCDIR)inflate.h $(SRCDIR)inffast.h $(SRCDIR)inffixed.h
    408 inffast.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h $(SRCDIR)inflate.h $(SRCDIR)inffast.h
    409 inftrees.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h
    410 trees.lo: $(SRCDIR)deflate.h $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)trees.h
    411