Convert COMPILING to markdown format

This commit is contained in:
reuk 2017-10-16 14:26:37 +01:00
parent 554cb54400
commit 1dcc82cbc5
1 changed files with 131 additions and 160 deletions

View File

@ -1,218 +1,198 @@
What architecture?
------------------
# What architecture?
CPROVER now needs a C++11 compliant compiler and works in the following
environments:
- Linux
- MacOS X
- Solaris 11
- FreeBSD 11
- Cygwin (We recommend the i686-pc-mingw32-g++ cross compiler, version 5.4 or
above.)
- Microsoft's Visual Studio version 12 (2013), version 14 (2015), or version 15
(older versions won't work)
- Cygwin
(We recommend the i686-pc-mingw32-g++ cross compiler, version 5.4 or above.)
The rest of this document is split up into three parts: compilation on Linux,
MacOS, Windows. Please read the section appropriate for your machine.
- Microsoft's Visual Studio version 12 (2013), version 14 (2015),
or version 15 (older versions won't work)
The rest of this document is split up into three parts: compilation on
Linux, MacOS, Windows. Please read the section appropriate for your
machine.
COMPILATION ON LINUX
--------------------
# COMPILATION ON LINUX
We assume that you have a Debian/Ubuntu or Red Hat-like distribution.
0) You need a C/C++ compiler, Flex and Bison, and GNU make.
1. You need a C/C++ compiler, Flex and Bison, and GNU make.
The GNU Make needs to be version 3.81 or higher.
On Debian-like distributions, do
```
apt-get install g++ gcc flex bison make git libwww-perl patch
```
On Red Hat/Fedora or derivates, do
```
yum install gcc gcc-c++ flex bison perl-libwww-perl patch devtoolset-6
```
Note that you need g++ version 4.9 or newer.
1) As a user, get the CBMC source via
2. As a user, get the CBMC source via
```
git clone https://github.com/diffblue/cbmc cbmc-git
2) On Debian or Ubuntu, do
```
3. On Debian or Ubuntu, do
```
cd cbmc-git/src
make minisat2-download
make
```
On Redhat/Fedora etc., do
```
cd cbmc-git/src
make minisat2-download
scl enable devtoolset-6 bash
make
```
# COMPILATION ON SOLARIS 11
COMPILATION ON SOLARIS 11
-------------------------
1) As root, get the necessary development tools:
1. As root, get the necessary development tools:
```
pkg install system/header developer/lexer/flex developer/parser/bison developer/versioning/git
pkg install --accept developer/gcc/gcc-c++-5
2) As a user, get the CBMC source via
```
2. As a user, get the CBMC source via
```
git clone https://github.com/diffblue/cbmc cbmc-git
3) Get MiniSat2 by entering
```
3. Get MiniSat2 by entering
```
cd cbmc-git
wget http://ftp.debian.org/debian/pool/main/m/minisat2/minisat2_2.2.1.orig.tar.gz
gtar xfz minisat_2.2.1.orig.tar.gz
mv minisat2-2.2.1 minisat-2.2.1
(cd minisat-2.2.1; patch -p1 < ../scripts/minisat-2.2.1-patch)
4) Type
```
4. Type
```
cd src; gmake
```
That should do it. To run, you will need
```
export LD_LIBRARY_PATH=/usr/gcc/4.9/lib
```
# COMPILATION ON FREEBSD 11
COMPILATION ON FREEBSD 11
-------------------------
1) As root, get the necessary tools:
1. As root, get the necessary tools:
```
pkg install bash gmake git www/p5-libwww patch flex bison
2) As a user, get the CBMC source via
```
2. As a user, get the CBMC source via
```
git clone https://github.com/diffblue/cbmc cbmc-git
3) Do
```
3. Do
```
cd cbmc-git/src
4) Do
```
4. Do
```
gmake minisat2-download
gmake
```
COMPILATION ON MACOS X
----------------------
# COMPILATION ON MACOS X
Follow these instructions:
0) You need a C/C++ compiler, Flex and Bison, and GNU make. To this
end, first install the XCode from the App-store and then type
1. You need a C/C++ compiler, Flex and Bison, and GNU make. To this end, first
install the XCode from the App-store and then type
```
xcode-select --install
```
in a terminal window.
1) Then get the CBMC source via
2. Then get the CBMC source via
```
git clone https://github.com/diffblue/cbmc cbmc-git
2) Then type
```
3. Then type
```
cd cbmc-git/src
make minisat2-download
make
```
# COMPILATION ON WINDOWS
COMPILATION ON WINDOWS
----------------------
There are two options: compilation using g++ from Cygwin, or using
Visual Studio's compiler. As Cygwin has significant overhead during
process creation, we advise you use Visual Studio.
There are two options: compilation using g++ from Cygwin, or using Visual
Studio's compiler. As Cygwin has significant overhead during process creation,
we advise you use Visual Studio.
Follow these instructions:
0) You need a C/C++ compiler, Flex and Bison, GNU tar, gzip2,
GNU make, and patch. The GNU Make needs to be version 3.81 or
higher. If you don't already have the above, we recommend you install
Cygwin.
1) You need a SAT solver (in source). We recommend MiniSat2. Using a
1. You need a C/C++ compiler, Flex and Bison, GNU tar, gzip2, GNU make, and
patch. The GNU Make needs to be version 3.81 or higher. If you don't
already have the above, we recommend you install Cygwin.
2. You need a SAT solver (in source). We recommend MiniSat2. Using a
browser, download from
```
http://ftp.debian.org/debian/pool/main/m/minisat2/minisat2_2.2.1.orig.tar.gz
```
and then unpack with
```
tar xfz minisat-2.2.1.tar.gz
mv minisat minisat-2.2.1
cd minisat-2.2.1
patch -p1 < ../scripts/minisat-2.2.1-patch
The patch removes the dependency on zlib and prevents a problem
with a header file that is often unavailable on Windows.
2A) To compile with Cygwin, install the mingw compilers, and adjust
the second line of config.inc to say
BUILD_ENV = MinGW
2B) To compile with Visual Studio, make sure you have at least Visual
Studio version 12 (2013), and adjust the second line of config.inc to say
BUILD_ENV = MSVC
Open the Visual Studio Command prompt, and then bash.exe -login from
Cygwin from in there.
3) Type cd src; make - that should do it.
```
The patch removes the dependency on zlib and prevents a problem with a
header file that is often unavailable on Windows.
1. To compile with Cygwin, install the mingw compilers, and adjust
the second line of config.inc to say
```
BUILD_ENV = MinGW
```
2. To compile with Visual Studio, make sure you have at least Visual
Studio version 12 (2013), and adjust the second line of config.inc to say
```
BUILD_ENV = MSVC
```
Open the Visual Studio Command prompt, and then bash.exe -login from
Cygwin from in there.
3. Type cd src; make - that should do it.
(Optional) A Visual Studio project file can be generated with the script
"generate_vcxproj" that is in the subdirectory "scripts". The project file
is helpful for GUI-based tasks, e.g., the class viewer, debugging, etc., and
can be used for building with MSBuild. Note that you still need to run
flex/bison using "make generated_files" before opening the project.
"generate_vcxproj" that is in the subdirectory "scripts". The project file is
helpful for GUI-based tasks, e.g., the class viewer, debugging, etc., and can
be used for building with MSBuild. Note that you still need to run flex/bison
using "make generated_files" before opening the project.
WORKING WITH CMAKE (EXPERIMENTAL)
---------------------------------
# WORKING WITH CMAKE (EXPERIMENTAL)
There is an experimental build based on CMake instead of hand-written
makefiles. It should work on a wider variety of systems than the standard
makefile build, and can integrate better with IDEs and static-analysis tools.
0) Run `cmake --version`. If you get a command-not-found error, or the installed
version is lower than 3.2, go and install a new version. Most Linux
distributions have a package for CMake, and Mac users can get it through
Homebrew. Windows users should download it manually from cmake.org.
1) Create a directory to store your build:
`mkdir build`
1. Run `cmake --version`. If you get a command-not-found error, or the
installed version is lower than 3.2, go and install a new version. Most
Linux distributions have a package for CMake, and Mac users can get it
through Homebrew. Windows users should download it manually from cmake.org.
2. Create a directory to store your build:
```
mkdir build
```
Run this from the *top level* folder of the project. This is different from
the other builds, which require you to `cd src` first.
2) Generate build files with CMake:
`cmake -H. -Bbuild`
3. Generate build files with CMake:
```
cmake -H. -Bbuild
```
This command tells CMake to use the configuration in the current directory,
and to generate build files into the `build` directory.
This is the point to specify custom build settings, such as compilers and
build back-ends. You can use clang (for example) by adding the argument
`-DCMAKE_CXX_COMPILER=clang++` to the command line. You can also tell
CMake to generate IDE projects by supplying the `-G` flag.
Run `cmake -G` for a comprehensive list of supported back-ends.
and to generate build files into the `build` directory. This is the point
to specify custom build settings, such as compilers and build back-ends. You
can use clang (for example) by adding the argument
`-DCMAKE_CXX_COMPILER=clang++` to the command line. You can also tell CMake
to generate IDE projects by supplying the `-G` flag. Run `cmake -G` for a
comprehensive list of supported back-ends.
Generally it is not necessary to manually specify individual compiler or
linker flags, as CMake defines a number of "build modes" including Debug
and Release modes. To build in a particular mode, add the flag
linker flags, as CMake defines a number of "build modes" including Debug and
Release modes. To build in a particular mode, add the flag
`-DCMAKE_BUILD_TYPE=Debug` (or `Release`) to the initial invocation.
If you *do* need to manually add flags, use `-DCMAKE_CXX_FLAGS=...` and
@ -222,44 +202,35 @@ makefile build, and can integrate better with IDEs and static-analysis tools.
Finally, to enable building universal binaries on macOS, you can pass the
flag `-DCMAKE_OSX_ARCHITECTURES=i386;x86_64`. If you don't supply this flag,
the build will just be for the architecture of your machine.
3) Run the build:
`cmake --build build`
4. Run the build:
```
cmake --build build
```
This command tells CMake to invoke the correct tool to run the build in the
`build` directory. You can also use the build back-end directly by invoking
`make`, `ninja`, or opening the generated IDE project as appropriate.
WORKING WITH ECLIPSE
--------------------
# WORKING WITH ECLIPSE
To work with Eclipse, do the following:
1) Select File -> New -> Makefile Project with Existing Code
1. Select File -> New -> Makefile Project with Existing Code
2. Type "cprover" as "Project Name"
3. Select the "src" subdirectory as "Existing Code Location"
4. Select a toolchain appropriate for your platform
5. Click "Finish"
6. Select Project -> Build All
2) Type "cprover" as "Project Name"
# CODE COVERAGE
3) Select the "src" subdirectory as "Existing Code Location"
4) Select a toolchain appropriate for your platform
5) Click "Finish"
6) Select Project -> Build All
CODE COVERAGE
-------------
Code coverage metrics are provided using gcov and lcov. Ensure that you
have installed lcov from http://ltp.sourceforge.net/coverage/lcov.php
note for ubuntu lcov is available in the standard apt-get repos.
To get coverage metrics run the following script from the regression
directory:
get_coverage.sh
Code coverage metrics are provided using gcov and lcov. Ensure that you have
installed lcov from http://ltp.sourceforge.net/coverage/lcov.php note for
ubuntu lcov is available in the standard apt-get repos.
To get coverage metrics run the following script from the regression directory:
```
get_coverage.sh
```
This will:
1) Rebuild CBMC with gcov enabled
2) Run all the regression tests