-
Notifications
You must be signed in to change notification settings - Fork 17
build
For building and installing Souffle, following software must be installed:
- Make, Autoconf tools, GNU G++ supporting C++11 and OpenMP (from version 4.8), Bison (from version 3.0.2), Flex, DoxyGen, Java JDK
CLANG++ with OpenMP support can be used as an alternative for G++.
On a Ubuntu/Debian system, following command installs the necessary developer tools to compile and build Soufflé:
sudo apt-get install build-essential g++ automake autoconf bison flex doxygen openjdk-7-jdk
Note that the Ubuntu/Debian version needs to be recent such that G++ 4.8 is part of the standard distribution.
The Soufflé project follows automake/autoconf conventions for configuring, installing and building software. To configure, build, test, and install the project, type:
cd souffle
sh ./bootstrap
./configure
make
On a MAC OS X system, following command installs the necessary packages:
brew update
brew reinstall gcc --without-multilib
brew install bison
and Soufflé is built by
cd souffle
export CXX=/usr/local/bin/g++-5
export CXXFLAGS=-fopenmp
export SOUFFLECPP=/usr/local/bin/cpp-5
sh ./bootstrap
./configure
make
With
make check
numerous unit tests and regression tests are performed. This may take up to 45min.
If you would like to install Soufflé in your system, specify an installation directory with ./configure --prefix=<install-dir>
. The executable, scripts, and header files will be stored in the directory <install-dir>
. Use an absolute path for <install-dir>
. Type
make install
to install Soufflé. By setting the path variable
PATH=$PATH:<install-dir>/bin
the Soufflé commands souffle
and souffle-profile
are available to the users.
Create the following Datalog program and save it to reachable.dl
.
// Type Node
.type Node
//
// Edge
//
.decl Edge (n:Node, n:Node)
Edge("0","1").
Edge("1","2").
Edge("2","3").
Edge("1","4").
//
// Reachable
//
.decl Reachable (n:Node, n:Node) output
Reachable(x,y) :- Edge(x,y).
Reachable(x,y) :- Edge(x,z), Reachable(z,y).
This program computes a transitive closure of the input graph that is given by the set of edges (facts for relation Edge
). The following command evaluates the program and prints the output via option -D-
.
souffle -D- reachable.dl
The command-line options for the tool are shown via command:
souffle -h
More Datalog examples can be found in the directory tests/evaluation/
of the repository.
The next topic is how to compile/execute Datalog programs with Soufflé.