You have two options available, (1) either get a working code base container using Docker, or (2) download the repository and its dependencies.
For Multi-platform execution (Windows, MAC, Linux, Azure, AWS)
You can quickly get a contained working copy in few minutes of the latest LAPKT version in the repository using Docker. For instructions, please visit:
git clone https://github.com/LAPKT-dev/LAPKT-public.git <directory>
will create a clone of the LAPKT master repository in <directory>. The directory is created if it does not yet exist.
LAPKT requires the following libraries & tools:
In order to compile LAPKT, we recommend g++ 4.7 or better. However, any compiler able to handle both boost libraries and C++11 standard new features, should also be usable (we have been able to compile it under Visual Studio 2010, llvm, and the new Linux bash shell on windows 10). makedepend comes in xutils-dev package. Currently boost::python-dev is compatible only with python2.7
In order to build LAPKT you need to install scons (a GNU Makefile replacement) in your system. Refer to http://www.scons.org for directions on how to achieve this.
In order to compile some of the examples, you will also need a version >= 1.49 of the Boost C++ libraries available on your system. You can check the version you have either manually by looking at the macro defined in
boost/version.hpp or, on debian systems, by running
dpkg -s libboost-dev. Be aware that systems such as the Ubuntu 12.04LTS release ship with older versions of Boost.
Finally, LAPKT requires the Judy library (http://judy.sourceforge.net/index.html) to support the bitmap array class ‘Varset Judy’. NOTE: This dependency will be optional or entirely deprecated in the future.
The following command installs all the dependencies on Ubuntu version > 12.04LTS:
sudo apt-get update && sudo apt-get install --no-install-recommends -y \ build-essential \ ca-certificates \ xutils-dev \ scons \ gcc-multilib \ flex \ bison \ python \ python-dev \ python3 \ python3-dev \ libboost-python-dev \ libboost-dev \ libjudy-dev \ libboost-program-options-dev \ g++-multilib
Issue the command
at the root of the source directory to obtain the (static) library containing essential data structures and other miscellaneous utilities. If debug symbols are needed, the command
$ scons debug=1
builds the library with optimizations disabled and debug symbols enabled.
If you want to use FF-parser, compile the ff into a library by running the following commands:
cd external/libff make clean make depend make
If you are a Mac OS X user, run this command to create the final dynamic library
libtool -o libff.a *.o
As Mac OS X don't like static libraries, if you run scons and you get the following error:
ld: library not found for -lcrt0.o
edit the SConstruct and comment (add #) the following line:
common_env.Append( LINKFLAGS = [ '-static' ] )