ChangeLog       history of changes
FAQ             Frequently Asked Questions about zlib
INDEX           this file
Makefile        makefile for Unix (generated by configure)
Makefile.in     makefile for Unix (template for configure)
README          guess what
algorithm.txt   description of the (de)compression algorithm
configure       configure script for Unix
zconf.in.h      template for zconf.h (used by configure)

aix/            instructions for building an AIX shared library
msdos/		makefiles for MSDOS
old/            makefiles for various architectures and zlib documentation
                files that have not yet been updated for zlib 1.2.x
win32/		makefiles for Windows

                zlib public header files (must be kept):
zconf.h
zlib.h

                private source files used to build the zlib library:
adler32.c
compress.c
crc32.c
crc32.h
deflate.c
deflate.h
gzio.c
infback.c
inffast.c
inffast.h
inffixed.h
inflate.c
inflate.h
inftrees.c
inftrees.h
trees.c
trees.h
uncompr.c
zutil.c
zutil.h

                source files for sample programs:
example.c
minigzip.c

                unsupported contribution by third parties
See contrib/README.contrib
