jakule / andiff

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Andiff

Build Status

Andiff is another version of bsdiff application focused on performance. Original application can be found here.

Prerequisites

Building

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

libdivsufsort

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

andiff

cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release \
-DLIBDIVSUFSORT_PREFIX:PATH=${LIBDIVSUFSORT_INSTALL_PREFIX} ../andiff
make

CMake compilation options:

  • ENABLE_ADDRESS_SANITIZER - Enable Address Sanitizer; Default: OFF
  • ENABLE_THREAD_SANITIZER - Enable Thread Sanitizer; Default: OFF
  • GENERATE_DWARF - Generate DWARF debug symbols with Debug build; Default: OFF
  • ENABLE_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.

Usage

Generating patch:

./andiff oldfile newfile patchfile

Applying patch:

./anpatch odlfile newfile patchfile

About

License:BSD 2-Clause "Simplified" License


Languages

Language:C++ 84.9%Language:Python 8.6%Language:CMake 6.5%