This is a port of XZ utils 5.2.5 to MSDOS/DJGPP. 1.: DJGPP specific changes. ======================= The port has been configured and compiled on WinXP SP3 and Win98 SE. There is no guarantee that this may be possible with any other DOS- like OS. Due to the use of long file names it will not be possible to configure and compile without LFN support. This version of the port has been compiled using gcc346 and bnu2351b. The library code itself has not been changed. The code has already enough DJGPP support. But the driver program has no SFN support at all. It simply appends a ".xz" or ".lzma" extension to the original file name according to the compression algorithm used. This will work on systems with LFN support but not on plain DOS. I have applied the same schema that I have used for the BZIP2 port. Unfortunately the original file name is not stored in the compressed file header so there will be no possibility to restore the original file name extension on SFN systems. For SFN systems the following rules apply for ".xz" extension: compressed name uncompressed name filename.exx --> filename.ex filename.exz --> filename.e filename.xz --> filename uncompressed name compressed name filename.ext --> filename.exx filename.ex --> filename.exx filename.e --> filename.exz filename --> filename.xz For SFN systems the following rules apply for ".lzma" extension: compressed name uncompressed name filename.exl --> filename.ex filename.elz --> filename.e filename.lzm --> filename uncompressed name compressed name filename.ext --> filename.exl filename.ex --> filename.exl filename.e --> filename.elz filename --> filename.lzm The port will detect at run time if LFN support is available or not and will select the method to handle the extension creation accordingly. For LFN and SFN systems, ".txz" and ".tlz" extensions are always identified as tar archives. Their file name will always have a ".tar" extension. On SFN systems, this port will always give precedence to the above described naming convention over the naming convention defined by xz using the -S flag. This is absolute intentional, so that all DJGPP ports of bzip2, clzip and xz behave in the same maner and also backward compatibility is retained. If you do not like it, you can always revert the changes I have done and compile the sources from scratch. It has been configured with NLS support disabled by passing the no-nls flag as argument to config.bat. If you prefer NLS support you will have to reconfigure the sources omitting the no-nls flag when calling config.bat. A LFN environment is required to run the testsuite. The port has been configured and compiled on WinXP SP3 and Win98SE. There is no guarantee that this may be possible with any other DOS-like OS. Due to the massive use of long file names it will not be possible to configure and compile without LFN support. The version of the port has been compiled using gcc346 and bnu2351b. The port has been configured to be build in the "_build" directory. The usual configuration files have been added. They are located in the "djgpp" directory together with the diffs file that documents my changes against the original sources. For further information about XZ utils please read the info docs and NEWS file. 2.: Installing the binary package. ============================== 2.1.: Copy the binary distribution into the top DJGPP installation directory, just unzip it preserving the directory structure running *ONE* of the following commands: unzip32 xz-525b.zip or djtarx xz-525b.zip or pkunzip -d xz-525b.zip 3.: Building the binaries from sources. =================================== 3.1.: Create a temporary directory and copy the source package into the directory. If you download the source distribution from one of the DJGPP sites, just unzip it preserving the directory structure running *ONE* of the following commands: unzip32 xz-525s.zip or djtarx xz-525s.zip or pkunzip -d xz-525s.zip 3.2.: To build the binaries you will need the following binary packages: djdev205.zip (or a later but NOT a prior version) bsh417br3.zip (or a later but NOT a prior version) gccNNNb.zip, gppNNN.zip, bnuNNNb.zip, makNNNb.zip, filNNNb.zip, shlNNNb.zip, txtNNNb.zip, txiNNNb.zip, grepNNNb.zip, sedNNNb.zip, pcreNNNb.zip, mktmpNNb.zip and gwkNNNb.zip. If you want to configure and compile this packages with NLS support enabled you must install licvNNNb.zip, lunsNNNb.zip and gtxNNNNb.zip. If you want to run the check you will need also: difNNNb.zip and mktmpNNNb.zip NNN represents the latest version number of the binary packages. All this packages can be found in the /v2gnu directory of any ftp.delorie.com mirror. You will need bsh417br3.zip or later and *NOT* a prior version or the build will fail. The same applies to djdev205.zip. 3.3.: The package has been configured to be build in a separate build directory under the top srcdir (aka xz-5.2). To build the binaries cd into /_build directory. If for some reason you want to reconfigure the package cd into the build directory and run the following commands: del config.cache make clean ..\djgpp\config ./.. Please note that you *MUST* delete the config.cache file in the /_build directory or you will not really reconfigure the sources because the configuration informations will be read from the cache file instead of being newly computed. config.bat, among other things, will start the configure script passing to it a couple of arguments. You can control these argument passing the following command line arguments to config.bat: nls or no-nls, default nls. NLS support enabled. cache or no-cache, default cache. Cache in build directory. dep or no-dep, default no-dep. No dependency tracking. silent or no-silent, default silent. Controls the verbosity of the build process. debug or no-debug, default no-debug. threads or no-threads, default no-threads. Enables POSIX threads. scripts or no-scripts, default no-scripts. Enables the installing of the shell scripts. All other configure specific options are not set by config.bat so their values are left as they are. If no arguments are passed to config.bat then the default values are used. To build the programs in a directory other than where the sources are, you must add the parameter that specifies the source directory, e.g: x:\src\contrib\xz-5.2\djgpp\config x:/src/contrib/xz-5.2 Lets assume you want to build the binaries in a directory placed on a different drive (z:\build in this case) from where the sources are, then you will run the following commands: z: md \build cd \build x:\src\contrib\xz-5.2\djgpp\config x:/src/contrib/xz-5.2 The order of the options and the srcdir option does not matter. You *MUST* use forward slashes to specify the source directory. The batch file will set same environment variables, make MSDOS specific modifications to the Makefile.in's and supply all other needed options to the configure script. 3.4.: To compile the package run from the directory where you have configured the sources the command: make 3.5.: Now you can run the tests if you like. From the directory where you have configured the sources run the command: make check No test should fail. 3.6.: To install the binaries, header, library, catalogs, and man pages run the following command from the top srcdir: make install This will install the products into your DJGPP installation tree given by the default prefix "/dev/env/DJDIR". If you prefer to install them into some other directory you will have to set prefix to the appropriate value: make install prefix=z:/some/other/place Send XZ utils specific bug reports to . Send suggestions and bug reports concerning the DJGPP port to comp.os.msdos.djgpp or . Enjoy. Guerrero, Juan Manuel