2013-07-22 17:25:49 +00:00
|
|
|
[![Build Status](https://travis-ci.org/leodemoura/lean.png?branch=master)](https://travis-ci.org/leodemoura/lean)
|
2013-07-22 13:36:19 +00:00
|
|
|
|
2013-07-18 21:31:17 +00:00
|
|
|
Requirements
|
|
|
|
============
|
|
|
|
|
|
|
|
- C++11 compatible compiler
|
|
|
|
- GMP (GNU multiprecision library)
|
|
|
|
http://gmplib.org/
|
|
|
|
- (optional) gperftools
|
|
|
|
https://code.google.com/p/gperftools/
|
|
|
|
- cmake
|
|
|
|
http://www.cmake.org
|
2013-08-02 14:50:49 +00:00
|
|
|
- flex++ (lex generator)
|
|
|
|
- bison++ (parser generator)
|
2013-07-18 21:31:17 +00:00
|
|
|
|
2013-07-25 07:20:39 +00:00
|
|
|
Install Packages on Ubuntu
|
|
|
|
--------------------------
|
2013-07-18 21:31:17 +00:00
|
|
|
|
2013-07-19 00:52:56 +00:00
|
|
|
Instructions for installing gperftools on Ubuntu
|
|
|
|
|
|
|
|
sudo add-apt-repository ppa:agent-8131/ppa
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get dist-upgrade
|
|
|
|
sudo apt-get install libgoogle-perftools-dev
|
|
|
|
|
2013-08-02 14:50:49 +00:00
|
|
|
Instructions for installing flex on Ubuntu
|
|
|
|
|
|
|
|
sudo apt-get install flex
|
|
|
|
|
|
|
|
Instructions for installing bison on Ubuntu
|
|
|
|
|
|
|
|
sudo apt-get install bison++
|
|
|
|
|
2013-07-18 21:31:17 +00:00
|
|
|
Instructions for installing gcc-4.8 (C++11 compatible) on Ubuntu
|
|
|
|
|
|
|
|
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
|
|
|
sudo update-alternatives --remove-all gcc
|
|
|
|
sudo update-alternatives --remove-all g++
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install g++-4.8 -y
|
|
|
|
sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y
|
|
|
|
|
|
|
|
Instructions for installing clang-3.3 (C++11 compatible) on Ubuntu
|
|
|
|
|
|
|
|
sudo add-apt-repository ppa:h-rayflood/llvm
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get dist-upgrade
|
|
|
|
sudo apt-get install clang-3.3 clang-3.3-doc
|
|
|
|
|
|
|
|
Note that you [still need][1] to have g++-4.8's C++ runtime library to
|
|
|
|
support some C++11 features that we are using.
|
|
|
|
|
|
|
|
You can specify the C++ compiler to use by using ``-DCMAKE_CXX_COMPILER``
|
|
|
|
option. For example
|
|
|
|
|
|
|
|
cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_CXX_COMPILER=clang++-3.3 ../../src
|
|
|
|
|
|
|
|
[1]: http://clang.llvm.org/cxx_status.html
|
2013-07-25 07:20:39 +00:00
|
|
|
|
|
|
|
Install Packages on OS X
|
|
|
|
------------------------
|
|
|
|
We assume that you are using [homebrew][homebrew], "The missing package manager for OS X".
|
|
|
|
|
|
|
|
[homebrew]: http://brew.sh
|
|
|
|
|
|
|
|
Instructions for installing gperftools on OS X 10.8
|
|
|
|
|
|
|
|
$ brew install gperftools
|
|
|
|
|
|
|
|
Instructions for installing gcc-4.8 (C++11 compatible) on OS X 10.8
|
|
|
|
|
|
|
|
$ brew tap homebrew/versions
|
|
|
|
$ brew install gcc48
|
|
|
|
|
|
|
|
Instructions for installing clang-3.3 (C++11 compatible) on OS X 10.8
|
|
|
|
|
|
|
|
$ brew install llvm --with-clang --with-asan
|
|
|
|
|
|
|
|
Build Instructions
|
|
|
|
==================
|
|
|
|
|
|
|
|
Using [CMake][cmake] + Make
|
|
|
|
---------------------
|
|
|
|
Instructions for DEBUG build
|
|
|
|
|
|
|
|
mkdir -p build/debug
|
|
|
|
cd build/debug
|
|
|
|
cmake -DCMAKE_BUILD_TYPE=DEBUG ../../src
|
|
|
|
make
|
|
|
|
|
|
|
|
Instructions for RELEASE build
|
|
|
|
|
|
|
|
mkdir -p build/release
|
|
|
|
cd build/release
|
|
|
|
cmake -DCMAKE_BUILD_TYPE=RELEASE ../../src
|
|
|
|
make
|
|
|
|
|
|
|
|
Using [CMake][cmake] + [Ninja][ninja]
|
|
|
|
-------------------------------
|
|
|
|
[CMake 2.8.11][cmake] supports [Ninja][ninja] build system using
|
2013-08-01 22:52:02 +00:00
|
|
|
``-G`` option. [Some people report][1] that using [Ninja][ninja] can
|
|
|
|
reduce the build time, esp when a build is incremental.
|
2013-07-25 07:20:39 +00:00
|
|
|
|
|
|
|
[1]: https://plus.google.com/108996039294665965197/posts/SfhrFAhRyyd
|
|
|
|
|
|
|
|
Instructions for DEBUG build
|
|
|
|
|
|
|
|
mkdir -p build/debug
|
|
|
|
cd build/debug
|
|
|
|
cmake -DCMAKE_BUILD_TYPE=DEBUG -G Ninja ../../src
|
|
|
|
ninja
|
|
|
|
|
|
|
|
Instructions for RELEASE build
|
|
|
|
|
|
|
|
mkdir -p build/release
|
|
|
|
cd build/release
|
|
|
|
cmake -DCMAKE_BUILD_TYPE=RELEASE -G Ninja ../../src
|
|
|
|
ninja
|
|
|
|
|
|
|
|
[cmake]: http://www.cmake.org/
|
|
|
|
[ninja]: http://martine.github.io/ninja/
|