DJGPP Port of XDelta 1.1.2 ~~~~~~~~~~~~~~~~~~~~~~~~~~ Installing the Binary Package ----------------------------- Unzip the distribution preserving the directory structure - use PKUNZIP's -d option; use an equivalent option with other unzippers. Unzip into the top DJGPP installation directory, e.g. c:\djgpp. XDelta should now be ready for use. A man page for XDelta is provided - use: man xdelta to view it. You will need to have installed the man program from the v2apps/ directory of the DJGPP archive for this to work. Installing the Source Package ----------------------------- You should only install the source package if you want to rebuild XDelta from the sources. To build the port, I used the following packages: . DJGPP 2.03 . GNU bash 2.04 . GNU gcc 2.95.3 . GNU binutils 2.11.2 . GNU sed 3.02 . GNU awk 3.0.3 . GNU fileutils 4.0 . GNU shellutils 1.12 . GNU textutils 2.0 . glib 1.2.10 . zlib 1.1.3 It may be possible to build XDelta with other versions of each package, but this has not been tested. Unzip the distribution preserving the directory structure - use PKUNZIP's -d option; use an equivalent option with other unzippers. Unzip into the top DJGPP installation directory, e.g. c:\djgpp. No changes were needed to XDelta to make it work with DJGPP. Before building XDelta, it must be configured. This is done from bash in the source directory using: ./configure --disable-shared The parameter '--disable-shared' is needed to get round a bug in libtool 1.4. libtool tries to use gcc's '-fPIC' option, which produces code that binutils does not understand (for DJGPP). '-fPIC' is used for generating relocatable code for dynamic linking. Since DJGPP does not support dynamic linking, we can use '--disable-shared' to stop '-fPIC' from being used. For more information on the libtool problem, please see the following post on djgpp-workers: http://www.delorie.com/djgpp/mail-archives/browse.cgi?p=djgpp-workers/2001/06/18/16:32:47 You may wish to install XDelta somewhere else. In that case, use the '--prefix' option, e.g. ./configure --disable-shared --prefix=/where/i/want/xdelta Once this has compelted, build using: make If these compelte successfully, XDelta and its libraries can be installed using: make install Some notes on using XDelta -------------------------- * XDelta is fairly simple - to see what options are available, use: xdelta --help * The '-p' or '--pristine' option prevents XDelta from using gzip compression, this avoids creating temporary files. This option is presented because gzip does not support exact re-compression, since there is no way to save the configuration used to produce a particular gzip file. * XDelta's buffers are sized (by default) according to the amount of free physical memory. It defaults to using 87.5% (7/8) of the available memory. Under Windows this sometimes does not detect the amount of free memory correctly (well, on this author's machine at least). Sometimes it was necessary to tell xdelta what amount of memory to use: xdelta patch --maxmem=32M ... NB: More memory means faster patching, with large patches & files. It is recommend you run XDelta in verbose mode, to see how much memory it is using: xdelta patch -V ... libxdelta and libedsio ---------------------- XDelta is actually just a front-end for two libraries - libxdelta and libedsio. libxdelta is a library for handling XDelta-format deltas. libedsio is a library for handling serialised I/O. Both these libraries are included in the port and can be used in your own programs. Unfortunately, there is no documentation for these libraries - the only reference is the source code. If you are interested in libxdelta and libedsio, please download the source distribution. Please note that I am not familiar with these libraries and I will not be able to answer any queries on them. libxdelta and libedsio come with *-config files, which return compilation and linking parameters. They are similar to glib-config. Example: bash-2.04$ xdelta-config --cflags -I/dev/env/DJDIR/lib/glib/include -I/dev/env/DJDIR/include bash-2.04$ $DJDIR/bin/xdelta-config --libs -L/dev/env/DJDIR/lib -lxdelta -ledsio -lglib Finally ------- If you have any comments or problems with this port, please feel free to e-mail me. I hope this port is useful. Thanks, bye, Richard Dawe 2001-10-05