Andiff is another version of bsdiff application focused on performance. Original application can be found here.
- C++11 compiler - tested with GCC 4.8, GCC 5.3 and Clang 3.8
- bzip2 library: http://www.bzip.org/
- CMake 3.1: https://cmake.org/
- libdivsufsort: https://github.com/y-256/libdivsufsort
Ubuntu 14.04:
sudo apt-get install build-essential libbz2-dev
Note: For Ubuntu 14.04 required CMake is not available in Ubuntu repository and should be downloaded from CMake site.
Fedora 22:
sudo dnf install gcc-c++ bzip2-libs cmake
Note: It is strongly recommended to compile libdivsufsort with OpenMP support.
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DUSE_OPENMP:BOOL=ON \
-DBUILD_DIVSUFSORT64:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=OFF \
-DCMAKE_INSTALL_PREFIX:PATH=${LIBDIVSUFSORT_INSTALL_PREFIX} ../libdivsufsort/
make
make install
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release \
-DLIBDIVSUFSORT_PREFIX:PATH=${LIBDIVSUFSORT_INSTALL_PREFIX} ../andiff
make
ENABLE_ADDRESS_SANITIZER
- Enable Address Sanitizer; Default: OFFENABLE_THREAD_SANITIZER
- Enable Thread Sanitizer; Default: OFFGENERATE_DWARF
- Generate DWARF debug symbols with Debug build; Default: OFFENABLE_NATIVE
- Add -march=native to compiler for Release build; Default:ON
Warning: If you want to use andiff on different machine than was compiler disable this option. Other wise you may end with Illegal instruction exception.
Generating patch:
./andiff oldfile newfile patchfile
Applying patch:
./anpatch odlfile newfile patchfile