In order to build EFM-SYMBEX, you'll need :
EFM-SYMBEX build is driven by CMake and tested with the following generators :
Following instructions are given for debian-like distributions. You should adapt them to the package manager used by your distribution.
sudo apt-get install cmake
sudo apt-get install cmake-gui
sudo apt-get install boost-1.53
sudo apt-get install libgmp-dev
sudo apt-get install libantlr-dev
As no ANTLR 3.4 package seems available, it is necessary to compile a source distribution :
Download
libantlr3c-3.4.tar.gz then :
tar zxvf libantlr3c-3.4.tar.gz
./configure --enable-static=true --enable-shared=false
, add
--enable-64bit
according to your system.
make
make check
sudo make install
Headers and library should be automatically installed in /usr/local. Use
.\configure --prefix=<yourpath>
to install in another location. In this case, you'll need to set
ANTLR3_ROOT
variable to this location for CMake to know about it.
Add the following lines in
/etc/apt/sources.list
:
deb http://cvc4.cs.nyu.edu/debian/ stable/
deb http://cvc4.cs.nyu.edu/debian unstable/
deb_src http://cvc4.cs.nyu.edu/debian unstable/
Then do :
sudo apt-get update
sudo apt-get install cvc4 libcvc4-dev
No package being available for Omega, it is necessary to compile a source distribution. Clone the source repository :
git clone https://github.com/davewathaverford/the-omega-project.git
Then do :
make depends
make libomega.a
sudo make install
Headers and library should be automatically installed in /usr/local. Use .\configure --prefix=/usr/local to install in another location. In this case, you'll need to set
OMEGA_ROOT
variable to this location for CMake to know about it.
TO BE DONE
WARNING : Currently under test
Use the Windows installer found here
Follow the instructions of INSTALL_MSYS.md.
Download the sources archive cvc4-1.4.tar.gz
TO BE CONTINUED
Launch cmake (or cMake-gui), set the source directory and the desired build directory.
Choose a valid generator, select your compilers (native compilers are recommended), configure and generate.
If your prerequisites are installed in non-standard locations, you'll have to set
<PREREQUISITE>_ROOT
variable(s) in the CMake cache editor.
Then build the project using the built-in commands of the generator :
make
in the build directory.
A the end of the process, the symbex executable is built and can be checked using
symbex -test
.
To customize the build, you'll have to modify CMake Files. All CMake files are
CMakeLists.txt
or
*.cmake
.
Each project target (main executable and internal libraries) is associated with a
CMakeLists.txt
in which every thing specific to this target are defined. All things relative to the project as a whole (prerequisites, cmake detection module, ...) are stored stored in the cmake directory.
Options which hold for all target and whatever the platform are set in
DefineGeneric.cmake
Options which hold for all target and are platform-specific are set in
<Platform>Specific.cmake
.
Options which hold for one target and whatever the platform are set in the
CMakeLists.txt
of this target.
Main target link is defined in
LinkMainTarget.cmake
Prerequisites are defined and searched for in
LookForMandatoryPrerequisites.cmake
.
Here you can add a new prerequisite or change the way an existing prerequisite is search for.
Simply add a new subdirectory(ies) into existing target(s) source hierarchy.
To add a new
newtarget
to the project, you have to :
newtarget
source hierarchy in
src/newtarget/
CMakeLists.txt
into target root directory
newtarget/
(it is easy to adapt a
CMakeLists.txt
from other targets)
add_subdirectory (newtarget)
in
DefineProjectStructure.cmake
to make CMake aware to the new sources
LinkMainTarget.cmake
by adding
newtarget
to the link line.