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 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 sourcesLinkMainTarget.cmake
by adding newtarget
to the link line.