diff options
Diffstat (limited to 'bzip2/install.txt')
-rw-r--r-- | bzip2/install.txt | 258 |
1 files changed, 258 insertions, 0 deletions
diff --git a/bzip2/install.txt b/bzip2/install.txt new file mode 100644 index 0000000..87d45ad --- /dev/null +++ b/bzip2/install.txt @@ -0,0 +1,258 @@ +HOW TO ADD BZIP2 SUPPORT TO ZIP + +This document describes how to add bzip2 support to Zip. + +Compiling or linking in the bzip2 library adds an additional bzip2 +compression method to Zip. This new method can be selected instead +of the Zip traditional compression method deflation to compress files +and often gives a better compression ratio (perhaps at the cost of +greater CPU time). The compression method is specified using the +"-Z method" command-line option, where "method" may be either "deflate" +(the default), or "bzip2" (if Zip is built with bzip2 support). Zip +has been tested with bzip2 library 1.0.5 and earlier. + +Notes + +Compression method bzip2 requires a modern unzip. Before using bzip2 +compression in Zip, verify that a modern UnZip program with bzip2 support +will be used to read the resulting zip archive so that entries compressed +with bzip2 (compression method 12) can be read. Older unzips probably +won't recognize the compression method and will skip those entries. + +The Zip source kit does not include the bzip2 library or source files, but +these can be found at "http://www.bzip.org/" for example. See below for +how to add bzip2 to Zip for various operating systems. + +Zip using bzip2 compression is not compatible with the bzip2 application, +but instead provides an additional way to compress files before adding +them to a Zip archive. It does not replace the bzip2 program itself, +which creates bzip2 archives in a different format that are not +compatible with zip or unzip. + +The bzip2 code and algorithms are provided under the bzip2 license +(provided in the bzip2 source kit) and what is not covered by that license +is covered under the Info-ZIP license. Info-ZIP will look at issues +involving the use of bzip2 compression in Zip, but any questions about +the bzip2 code and algorithms or bzip2 licensing, for example, should be +directed to the bzip2 maintainer. + + +Installation + +To build Zip with bzip2 support, Zip generally needs one bzip2 header +file, "bzlib.h", and the object library, typically "libbz2.a", except +in cases where the source files are compiled in directly. If you +are either compiling the bzip2 library or compiling in the bzip2 +source files, we recommend defining the C macro BZ_NO_STDIO, which +excludes a lot of standalone error code (not used when bzip2 is +used as a library and makes the library smaller) and provides hooks +that Zip can use to provide better error handling. However, a +standard bzip2 object library will work, though any errors that bzip2 +generates may be more cryptic. + +Building the bzip2 library from the bzip2 source files (recommended): + + Download the latest bzip2 package (from "http://www.bzip.org/", for + example). + + Unpack the bzip2 source kit (bzip2-1.0.5.tar.gz was current as of + this writing, but the latest should work). + + Read the README file in the bzip2 source kit. + + Compile the bzip2 library for your OS, preferably defining + BZ_NO_STDIO. Note: On UNIX systems, this may be done automatically + when building Zip, as explained below. + + +Installation on UNIX (see below for installation on other systems): + + Note: Zip on UNIX uses the "bzlib.h" include file and the compiled + "libbz2.a" library to static link to bzip2. Currently we do not + support using the shared library (patches welcome). + + The easiest approach may be to drop the two above files in the + bzip2 directory of the Zip source tree and build Zip using the + "generic" target, that is, using a command like + make -f unix/Makefile generic + If all goes well, make should confirm that it found the files and + will be compiling in bzip2 by setting the BZIP2_SUPPORT flag and + then including the libraries while compiling and linking Zip. + + To use bzlib.h and libbz2.a from somewhere else on your system, + define the "make" macro IZ_BZIP2 to point to that directory. For + example: + make -f unix/Makefile generic IZ_BZIP2=/mybz2 + where /mybz2 might be "/usr/local/src/bzip2/bzip2-1.0.5" on some + systems. Only a compiled bzip2 library can be pointed to using + IZ_BZIP2 and Zip will not compile bzip2 source in other than the + bzip2 directory. + + If IZ_BZIP2 is not defined, Zip will look for the bzip2 files in + the "bzip2" directory in the Zip source directory. The bzip2 + directory is empty in the Zip source distribution (except for + this install.txt file) and is provided as a place to put the + bzip2 files. To use this directory, either drop bzlib.h and + libbz2.a in it to use the compiled library as noted above or drop + the contents of the bzip2 source kit in this directory so that + bzlib.h is directly in the bzip2 directory and Zip will try to + compile it if no compiled library is already there. + + + Unpacking bzip2 so Zip compiles it: + + To make this work, the bzip2 source kit must be unpacked directly + into the Zip "bzip2" directory. For example: + + # Unpack the Zip source kit. + gzip -cd zip30.tar-gz | tar xfo - + # Move down to the Zip kit's "bzip2" directory, ... + cd zip30/bzip2 + # ... and unpack the bzip2 source kit there. + gzip -cd ../../bzip2-1.0.5.tar.gz | tar xfo - + # Move the bzip2 source files up to the Zip kit's bzip2 directory. + cd bzip2-1.0.5 + mv * .. + # Return to the Zip source kit directory, ready to build. + cd ../.. + # Build Zip. + make -f unix/Makefile generic + + + Using a system bzip2 library: + + If IZ_BZIP2 is not defined and both a compiled library and the bzip2 + source files are missing from the Zip bzip2 directory, Zip will test + to see if bzip2 is globally defined on the system in the default + include and library paths and, if found, link in the system bzip2 + library. This is automatic. + + + Preventing inclusion of bzip2: + + To build Zip with _no_ bzip2 support on a system where the automatic + bzip2 detection scheme will find bzip2, you can specify a bad + IZ_BZIP2 directory. For example: + + make -f unix/Makefile generic IZ_BZIP2=no_such_directory + + You can also define NO_BZIP2_SUPPORT to exclude bzip2. + + + Verifying bzip2 support in Zip: + + When the Zip build is complete, verify that bzip2 support has been + enabled by checking the feature list: + + ./zip -v + + If all went well, bzip2 (and its library version) should be listed. + + +Installation on other systems + + MSDOS: + + Thanks to Robert Riebisch, the DJGPP 2.x Zip port now supports bzip2. + To include bzip2, first install bzip2. The new msdos/makebz2.dj2 + makefile then looks in the standard bzip2 installation directories + for the needed files. As he says: + It doesn't try to be clever about finding libbz2.a. It just + expects bzip2 stuff installed to the default include and library + folders, e.g., "C:\DJGPP\include" and "C:\DJGPP\lib" on DOS. + + Given a standard DJGPP 2.x installation, this should create a + version of Zip 3.0 with bzip2 support. + + The bzip2 library for DJGPP can be found on any DJGPP mirror in + "current/v2apps" (or "beta/v2apps/" for the latest beta). This + library has been ported to MSDOS/DJGPP by Juan Manuel Guerrero. + + + WIN32 (Windows NT/2K/XP/2K3/... and Windows 95/98/ME): + + For Windows there seems to be two approaches, either use bzip2 + as a dynamic link library or compile the bzip2 source in directly. + I have not gotten the static library libbz2.lib to work, but that + may be me. + + Using bzip2 as a dynamic link library: + + Building bzip2: + + If you have the needed bzlib.h, libbz2.lib, and libbz2.dll files + you can skip building bzip2. If not, open the libbz2.dsp project + and build libbz2.dll + + This creates + debug/libbz2.lib + and + libbz2.dll + + + Building Zip: + + Copy libbz2.lib to the bzip2 directory in the Zip source tree. This + is needed to compile Zip with bzip2 support. Also copy the matching + bzlib.h from the bzip2 source to the same directory. + + Add libbz2.lib to the link list for whatever you are building. Also + define the compiler define BZIP2_SUPPORT. + + Build Zip. + + + Using Zip with bzip2 as dll: + + Put libbz2.dll in your command path. This is needed to run Zip with + bzip2 support. + + Verify that bzip2 is enabled with the command + + zip -v + + You should see bzip2 listed. + + Compiling in bzip2 from the bzip2 source: + + This approach compiles in the bzip2 code directly. No external + library is needed. + + Get a copy of the bzip2 source and copy the contents to the bzip2 + directory in the Zip source tree so that bzlib.h is directly in + the bzip2 directory. + + Use the vc6bz2 project to build Zip. This project knows of the + added bzip2 files. + + Verify that bzip2 is enabled with the command + + zip -v + + + Windows DLL (WIN32): + + Nothing yet. + + + Mac OS X: + + Follow the standard UNIX build procedure. Mac OS X includes bzip2 + and the UNIX builders should find the bzip2 files in the standard + places. Note that the version of bzip2 on your OS may not be + current and you can instead specify a different library or compile + your own bzip2 library as noted in the Unix procedures above. + + + OS/2: + + Nothing yet. + + + VMS (OpenVMS): + + See [.vms]install_vms.txt for how to enable bzip2 support on VMS. + + +Last updated 26 March 2007, 15 July 2007, 9 April 2008, 27 June 2008 +S. Schweda, E. Gordon |