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
configure       configure script for Unix
make_vms.com	makefile for VMS
zconf.in.h      template for zconf.h (used by configure)
zlib.3		Man page for zlib
zlib.map	Linux symbol information
zlib.pc.in	??

amiga/          makefiles for Amiga SAS C
as400/          makefiles for IBM AS/400
doc/		documentation for formats and algorithms
msdos/          makefiles for MSDOS
old/            makefiles for various architectures and zlib documentation
                files that have not yet been updated for zlib 1.2.x
projects/       projects for various Integrated Development Environments
qnx/            makefiles for QNX
todo/		works in progress
watcom/		makefiles for OpenWatcom
win32/          makefiles for Windows

                zlib public header files (required for library use):
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
See examples/README.examples for more

                unsupported contribution by third parties
See contrib/README.contrib
