From 1b57de3aef88bd0a7b80c11db3631281b08b650a Mon Sep 17 00:00:00 2001 From: Mark Adler Date: Mon, 21 Nov 2011 18:56:02 -0800 Subject: [PATCH] Move example.c and minigzip.c to test/. --- CMakeLists.txt | 8 ++++---- FAQ | 4 ++-- INDEX | 4 +++- Makefile.in | 16 ++++++++-------- README | 12 ++++++------ contrib/delphi/zlibd32.mak | 4 ++-- contrib/pascal/zlibd32.mak | 4 ++-- examples/README.examples | 9 --------- make_vms.com | 8 ++++---- msdos/Makefile.bor | 4 ++-- msdos/Makefile.msc | 4 ++-- msdos/Makefile.tc | 4 ++-- old/visualc6/example.dsp | 2 +- {examples => test}/example.c | 0 {examples => test}/minigzip.c | 0 win32/Makefile.bor | 4 ++-- win32/Makefile.msc | 4 ++-- zlib.3 | 6 +++--- zlib.3.pdf | Bin 8722 -> 8746 bytes 19 files changed, 45 insertions(+), 52 deletions(-) rename {examples => test}/example.c (100%) rename {examples => test}/minigzip.c (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index a64fe0b..e173dd7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -171,20 +171,20 @@ endif() # Example binaries #============================================================================ -add_executable(example example.c) +add_executable(example test/example.c) target_link_libraries(example zlib) add_test(example example) -add_executable(minigzip minigzip.c) +add_executable(minigzip test/minigzip.c) target_link_libraries(minigzip zlib) if(HAVE_OFF64_T) - add_executable(example64 example.c) + add_executable(example64 test/example.c) target_link_libraries(example64 zlib) set_target_properties(example64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64") add_test(example64 example64) - add_executable(minigzip64 minigzip.c) + add_executable(minigzip64 test/minigzip.c) target_link_libraries(minigzip64 zlib) set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64") endif() diff --git a/FAQ b/FAQ index 03676dd..99b7cf9 100644 --- a/FAQ +++ b/FAQ @@ -44,8 +44,8 @@ The lastest zlib FAQ is at http://zlib.net/zlib_faq.html 6. Where's the zlib documentation (man pages, etc.)? - It's in zlib.h . Examples of zlib usage are in the files example.c and - minigzip.c, with more in examples/ . + It's in zlib.h . Examples of zlib usage are in the files test/example.c + and test/minigzip.c, with more in examples/ . 7. Why don't you use GNU autoconf or libtool or ...? diff --git a/INDEX b/INDEX index d05a009..0967554 100644 --- a/INDEX +++ b/INDEX @@ -7,6 +7,8 @@ Makefile.in template for Unix Makefile README guess what configure configure script for Unix make_vms.com makefile for VMS +test/example.c zlib usages examples for build testing +test/minigzip.c minimal gzip-like functionality for build testing treebuild.xml XML description of source file dependencies zconf.h.cmakein zconf.h template for cmake zconf.h.in zconf.h template for configure @@ -17,7 +19,7 @@ zlib.pc.in Template for pkg-config descriptor zlib2ansi perl script to convert source files for C++ compilation amiga/ makefiles for Amiga SAS C -as400/ makefiles for AS/400 +as400/ makefiles for AS/400 doc/ documentation for formats and algorithms msdos/ makefiles for MSDOS nintendods/ makefile for Nintendo DS diff --git a/Makefile.in b/Makefile.in index 01a9016..f349569 100644 --- a/Makefile.in +++ b/Makefile.in @@ -127,17 +127,17 @@ match.lo: match.S mv _match.o match.lo rm -f _match.s -example.o: examples/example.c zlib.h zconf.h - $(CC) $(CFLAGS) -I. -c -o $@ examples/example.c +example.o: test/example.c zlib.h zconf.h + $(CC) $(CFLAGS) -I. -c -o $@ test/example.c -minigzip.o: examples/minigzip.c zlib.h zconf.h - $(CC) $(CFLAGS) -I. -c -o $@ examples/minigzip.c +minigzip.o: test/minigzip.c zlib.h zconf.h + $(CC) $(CFLAGS) -I. -c -o $@ test/minigzip.c -example64.o: examples/example.c zlib.h zconf.h - $(CC) $(CFLAGS) -I. -D_FILE_OFFSET_BITS=64 -c -o $@ examples/example.c +example64.o: test/example.c zlib.h zconf.h + $(CC) $(CFLAGS) -I. -D_FILE_OFFSET_BITS=64 -c -o $@ test/example.c -minigzip64.o: examples/minigzip.c zlib.h zconf.h - $(CC) $(CFLAGS) -I. -D_FILE_OFFSET_BITS=64 -c -o $@ examples/minigzip.c +minigzip64.o: test/minigzip.c zlib.h zconf.h + $(CC) $(CFLAGS) -I. -D_FILE_OFFSET_BITS=64 -c -o $@ test/minigzip.c .SUFFIXES: .lo diff --git a/README b/README index 3b517f7..02dc3dc 100644 --- a/README +++ b/README @@ -8,15 +8,15 @@ rfc1952 (gzip format). All functions of the compression library are documented in the file zlib.h (volunteer to write man pages welcome, contact zlib@gzip.org). A usage example -of the library is given in the file example.c which also tests that the library -is working correctly. Another example is given in the file minigzip.c. The -compression library itself is composed of all source files except example.c and -minigzip.c. +of the library is given in the file test/example.c which also tests that +the library is working correctly. Another example is given in the file +test/minigzip.c. The compression library itself is composed of all source +files in the root directory. To compile all files and run the test program, follow the instructions given at the top of Makefile.in. In short "./configure; make test", and if that goes -well, "make install" should work for most flavors of Unix. For Windows, use one -of the special makefiles in win32/ or contrib/vstudio/ . For VMS, use +well, "make install" should work for most flavors of Unix. For Windows, use +one of the special makefiles in win32/ or contrib/vstudio/ . For VMS, use make_vms.com. Questions about zlib should be sent to , or to Gilles Vollant diff --git a/contrib/delphi/zlibd32.mak b/contrib/delphi/zlibd32.mak index 0d0699a..9bb00b7 100644 --- a/contrib/delphi/zlibd32.mak +++ b/contrib/delphi/zlibd32.mak @@ -63,9 +63,9 @@ uncompr.obj: uncompr.c zlib.h zconf.h zutil.obj: zutil.c zutil.h zlib.h zconf.h -example.obj: example.c zlib.h zconf.h +example.obj: test/example.c zlib.h zconf.h -minigzip.obj: minigzip.c zlib.h zconf.h +minigzip.obj: test/minigzip.c zlib.h zconf.h # For the sake of the old Borland make, diff --git a/contrib/pascal/zlibd32.mak b/contrib/pascal/zlibd32.mak index 0d0699a..9bb00b7 100644 --- a/contrib/pascal/zlibd32.mak +++ b/contrib/pascal/zlibd32.mak @@ -63,9 +63,9 @@ uncompr.obj: uncompr.c zlib.h zconf.h zutil.obj: zutil.c zutil.h zlib.h zconf.h -example.obj: example.c zlib.h zconf.h +example.obj: test/example.c zlib.h zconf.h -minigzip.obj: minigzip.c zlib.h zconf.h +minigzip.obj: test/minigzip.c zlib.h zconf.h # For the sake of the old Borland make, diff --git a/examples/README.examples b/examples/README.examples index fddb8df..56a3171 100644 --- a/examples/README.examples +++ b/examples/README.examples @@ -6,10 +6,6 @@ enough.c - calculates the maximum table space used in inflate tree construction over all possible Huffman codes -example.c - usage examples of zlib - - used in zlib build Makefile for testing - fitblk.c compress just enough input to nearly fill a requested output size - zlib isn't designed to do this, but fitblk does it anyway @@ -38,11 +34,6 @@ gzlog.h and deflateSetDictionary() - illustrates use of a gzip header extra field -minigzip.c - minimal implementation of gzip-like functionality using zlib - - used in zlib build Makefile for testing - - is not meant for and should not be used as a gzip replacement - zlib_how.html painfully comprehensive description of zpipe.c (see below) - describes in excruciating detail the use of deflate() and inflate() diff --git a/make_vms.com b/make_vms.com index 6576490..11be527 100644 --- a/make_vms.com +++ b/make_vms.com @@ -175,13 +175,13 @@ $ write sys$output "Building Zlib ..." $ CALL MAKE libz.OLB "lib/crea libz.olb *.obj" *.OBJ $ write sys$output "Building example..." $ CALL MAKE example.OBJ "CC ''CCOPT' example" - - example.c zlib.h zconf.h + test/example.c zlib.h zconf.h $ call make example.exe "LINK example,libz.olb/lib" example.obj libz.olb $ if f$search("x11vms:xvmsutils.olb") .nes. "" $ then $ write sys$output "Building minigzip..." $ CALL MAKE minigzip.OBJ "CC ''CCOPT' minigzip" - - minigzip.c zlib.h zconf.h + test/minigzip.c zlib.h zconf.h $ call make minigzip.exe - "LINK minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib" - minigzip.obj libz.olb @@ -431,7 +431,7 @@ adler32.obj : adler32.c zutil.h zlib.h zconf.h compress.obj : compress.c zlib.h zconf.h crc32.obj : crc32.c zutil.h zlib.h zconf.h deflate.obj : deflate.c deflate.h zutil.h zlib.h zconf.h -example.obj : example.c zlib.h zconf.h +example.obj : test/example.c zlib.h zconf.h gzclose.obj : gzclose.c zutil.h zlib.h zconf.h gzlib.obj : gzlib.c zutil.h zlib.h zconf.h gzread.obj : gzread.c zutil.h zlib.h zconf.h @@ -439,7 +439,7 @@ gzwrite.obj : gzwrite.c zutil.h zlib.h zconf.h inffast.obj : inffast.c zutil.h zlib.h zconf.h inftrees.h inffast.h inflate.obj : inflate.c zutil.h zlib.h zconf.h inftrees.obj : inftrees.c zutil.h zlib.h zconf.h inftrees.h -minigzip.obj : minigzip.c zlib.h zconf.h +minigzip.obj : test/minigzip.c zlib.h zconf.h trees.obj : trees.c deflate.h zutil.h zlib.h zconf.h uncompr.obj : uncompr.c zlib.h zconf.h zutil.obj : zutil.c zutil.h zlib.h zconf.h diff --git a/msdos/Makefile.bor b/msdos/Makefile.bor index 0c1b99c..3d12a2c 100644 --- a/msdos/Makefile.bor +++ b/msdos/Makefile.bor @@ -86,9 +86,9 @@ uncompr.obj: uncompr.c zlib.h zconf.h zutil.obj: zutil.c zutil.h zlib.h zconf.h -example.obj: example.c zlib.h zconf.h +example.obj: test/example.c zlib.h zconf.h -minigzip.obj: minigzip.c zlib.h zconf.h +minigzip.obj: test/minigzip.c zlib.h zconf.h # the command line is cut to fit in the MS-DOS 128 byte limit: diff --git a/msdos/Makefile.msc b/msdos/Makefile.msc index cd2816f..ae83786 100644 --- a/msdos/Makefile.msc +++ b/msdos/Makefile.msc @@ -80,10 +80,10 @@ uncompr.obj: uncompr.c zlib.h zconf.h zutil.obj: zutil.c zutil.h zlib.h zconf.h -example.obj: example.c zlib.h zconf.h +example.obj: test/example.c zlib.h zconf.h $(CC) -c $(CFLAGS) $*.c -minigzip.obj: minigzip.c zlib.h zconf.h +minigzip.obj: test/minigzip.c zlib.h zconf.h $(CC) -c $(CFLAGS) $*.c diff --git a/msdos/Makefile.tc b/msdos/Makefile.tc index bcd0d18..5aec82a 100644 --- a/msdos/Makefile.tc +++ b/msdos/Makefile.tc @@ -71,9 +71,9 @@ uncompr.obj: uncompr.c zlib.h zconf.h zutil.obj: zutil.c zutil.h zlib.h zconf.h -example.obj: example.c zlib.h zconf.h +example.obj: test/example.c zlib.h zconf.h -minigzip.obj: minigzip.c zlib.h zconf.h +minigzip.obj: test/minigzip.c zlib.h zconf.h # the command line is cut to fit in the MS-DOS 128 byte limit: diff --git a/old/visualc6/example.dsp b/old/visualc6/example.dsp index d358052..54f3f30 100644 --- a/old/visualc6/example.dsp +++ b/old/visualc6/example.dsp @@ -259,7 +259,7 @@ LINK32=link.exe # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File -SOURCE=..\..\example.c +SOURCE=..\..\test\example.c # End Source File # End Group # Begin Group "Header Files" diff --git a/examples/example.c b/test/example.c similarity index 100% rename from examples/example.c rename to test/example.c diff --git a/examples/minigzip.c b/test/minigzip.c similarity index 100% rename from examples/minigzip.c rename to test/minigzip.c diff --git a/win32/Makefile.bor b/win32/Makefile.bor index 3981d42..d152bbb 100644 --- a/win32/Makefile.bor +++ b/win32/Makefile.bor @@ -74,9 +74,9 @@ uncompr.obj: uncompr.c zlib.h zconf.h zutil.obj: zutil.c zutil.h zlib.h zconf.h -example.obj: example.c zlib.h zconf.h +example.obj: test/example.c zlib.h zconf.h -minigzip.obj: minigzip.c zlib.h zconf.h +minigzip.obj: test/minigzip.c zlib.h zconf.h # For the sake of the old Borland make, diff --git a/win32/Makefile.msc b/win32/Makefile.msc index 2714b45..53e66ca 100644 --- a/win32/Makefile.msc +++ b/win32/Makefile.msc @@ -125,9 +125,9 @@ inffas32.obj: contrib\masmx86\inffas32.asm match686.obj: contrib\masmx86\match686.asm -example.obj: example.c zlib.h zconf.h +example.obj: test/example.c zlib.h zconf.h -minigzip.obj: minigzip.c zlib.h zconf.h +minigzip.obj: test/minigzip.c zlib.h zconf.h zlib1.res: win32/zlib1.rc $(RC) $(RCFLAGS) /fo$@ win32/zlib1.rc diff --git a/zlib.3 b/zlib.3 index 3e4280b..aedf220 100644 --- a/zlib.3 +++ b/zlib.3 @@ -1,4 +1,4 @@ -.TH ZLIB 3 "xx Sep 2011" +.TH ZLIB 3 "27 Nov 2011" .SH NAME zlib \- compression/decompression library .SH SYNOPSIS @@ -36,9 +36,9 @@ All functions of the compression library are documented in the file .IR zlib.h . The distribution source includes examples of use of the library in the files -.I example.c +.I test/example.c and -.IR minigzip.c, +.IR test/minigzip.c, as well as other examples in the .IR examples/ directory. diff --git a/zlib.3.pdf b/zlib.3.pdf index 24cf58aed12fd1389f9de81f810b07ae4b8e000a..45f40e8dac94fe3a2fcfa072db5680fcbb84f1cb 100644 GIT binary patch delta 6228 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 DBDXSv