Skip to content

Building from source

Hannes Hauswedell edited this page Mar 28, 2016 · 23 revisions

Getting the source

Either download the source from the [releases] (https://github.com/seqan/lambda/releases) page as lambda-vX.Y.Z.tar.gz or check out the master branch with git:

% git clone https://github.com/seqan/lambda.git

The latest master branch is not always guaranteed to build, although I do my best to prevent breakage. Current status of the master branch: Travis CI build status

Build requirements

  • platforms: Linux, FreeBSD, MacOS X or OpenBSD (only 64bit tested for each)
  • compilers: gcc ≥ 4.9.1 or clang ≥ 3.8.0
  • cmake ≥ 3.0.0

Other platforms are currently not a priority, but I do accept patches if they don't break anything else.

Build instructions

% tar xzf lambda-vX.Y.Z.tar.gz
% mkdir -p lambda-build/release
% cd lambda-build/release
% cmake ../../lambda-vX.Y.Z
% make -j2

Please be aware that due to excessive use of templating and compile-time optimizations the build might take well over 10min. If your most recent version of GCC is not the default, you have to give it the path with -DCMAKE_CXX_COMPILER=/path/to/g++.

For unknown reasons mac builds are even slower at the moment and can take more than 30min.

Build options

NAME description default since
LAMBDA_FASTBUILD Setting this is useful for debugging, because the build will be faster. Only BLASTP and BLASTX and only Blosum62 scoring will be supported. off 0.9.0
LAMBDA_MMAPPED_DB Use memory-mapped IO to access the database. on 0.9.1
LAMBDA_NATIVE_BUILD Deactivating this will disable CPU-specific optimization, but in return your binary will work on different hardware than the one you are building from. on 0.9.0
LAMBDA_STATIC_BUILD Activate to include all libs in the binary. This will result in a bigger binary but in return work on different software than the one you are building from (e.g. compiler and OS version). off 0.9.0

To build portable binaries of Lambda, deactivate native builds and activate static builds, i.e. pass -DLAMBDA_NATIVE_BUILD=0 -DLAMBDA_STATIC_BUILD=1 to cmake.

Please note that it is not possible to build completely static binaries on Mac OS X, but the the last flag at least packages the compiler specific bits into the binary.