Copyright (c) 2012 Moinak Ghosh Prerequisites ============= 64-bit System. GCC 4.4 (with mpfr, ppl and cloog support packages for loop vectorization). libz (zlib) and development packages. Libbz2 and development packages. OpenSSL version 0.9.8 or greater. Libarchive 3.x or greater and its development packages. Basic Installation ================== The simplest process to build and install this utility is: ./config make make install The current makefiles and config scripts assume Gcc compiler is in the PATH. Please update PATH before running config if that is not the case. In order to remove all binaries: make clean Remove all binaries and the generated Makefile: make distclean Strictly speaking the 'make install' step is not required to run the utility as it is a single stand alone program for now. The config script controls various compile time parameters and generates the actual Makefile. You can get a short description of all the options by running: ./config --help NOTE: Basic Installation does not enable support for Libbsc, a new block-sorting compressor (similar to but better than Bzip2). See below for details. Testing ======= After running make as given above you can run: make test This will generate some data files from /usr/bin /usr/share and /usr/include directories and then run a whole lot of tests. These execute pcompress with a wide variety of combinations of options. For every test both compression and decompression are performed and after every decompression the decompressed file is verified byte for byte with the original using the diff utility. It takes a long time to run all the tests. The complete test log is stored in the file test.log. Test failures are indicated by the error message starting with the word "FATAL". All other error messages visible in the log are a result of negative testing where the utility is expected to exit with an error. The files test/t1.tst, test/t2.tst and so on are individual test suites. It is possible to run a single test suite. For example to run test/t4.tst the following command can be used: make test TESTSUITE=4 Custom Installation =================== The options to the config script are detailed below. Note that this is not the usual GNU Autoconf script. ./config [] can be one of the following: can be one of the following: --prefix= The installation prefix (default: /usr). --enable-debug Enable debug mode compilation (default: disabled). --disable-allocator Disable use of internal memory allocator mechanism (default: enabled). --enable-debug-stats Enable printing of some verbose debug info (default: disabled). --with-openssl= (Default: System) This defaults to the system's OpenSSL library. You can use this option if you want to use an alternate OpenSSL installation. --with-zlib= (Default: System) Enable building against an alternate Zlib installation. --with-bzlib= (Default: System) Enable building against an alternate Bzip2 and library installation. --with-external-libbsc= Enable building with exernal libbsc sources. Can be used to link with ASLv2 libbsc when using MPLv2 licensed sources. --wavpack-dir= Points to the directory containing the WavPack sources. This option must be specified if --disable-wavpack is not provided. --disable-wavpack Disables the WavPack filter. --no-sse-detect Do NOT attempt to probe the system's SSE capability for build flags. Implies '--no-avx-detect' below. --no-avx-detect Do NOT attempt to probe the system's AVX capability for build flags. --no-1.3-archive-compat Disable compatibility with compressed archives created with Pcompress version 1.3 (default: retain compatibility). Hash formats changed from version 1.3 to 1.4 so this option is required if files created using 1.3 need to be decompressed by version 1.4 onwards. --limit-key128 Limit key length to 128-bit encryption keys. Otherwise the default is to use 256-bit keys changeable at runtime via the '-k ' option. --help Display this help message. Additional compilation flags can be passed to make like this: make EXTRA_CPPFLAGS=<...> EXTRA_LDFLAGS=<...>