Building OTAWA is a long and tedious task as there are a lot of dependencies. The description below gives information to build the core of OTAWA. Next section shows how to build the extensions.
OTAWA uses the Mercurial source manager. To get a module composing OTAWA (called MODULE in the commands below), you have to type:
hg clone https://anon:email@example.com/hg/TRACES/MODULE
The following tools are required to build OTAWA:
- GNU C++,
- GNU make,
- libxml2 (development),
- libxslt (development),
Building the core
The main assumption is that all OTAWA dependencies sources have been unpacked in a directory at the same level as the sources of OTAWA. We call this directory BUILD_DIR and call the installation directory INSTALL_DIR.
$ cd BUILD_DIR
retrieve and compile the GLISS2 utility
$ cd gliss2
get the core architectures and compile them (in the same directory as GLISS2) such that they can be linked with dynamic libraries
$ cd ARCH
$ make WITH_DYNLIB=1
get the the lp_solve package, unpack it and rename it
lp_solve5. Apply the following commands to compile it:
$ cd lp_solve5
$ patch -p1 < PACTH_FILE
$ cd lpsolve55 $ sh ccc
The PATCH_FILE file may be accessed here.
Finally, get gel, elm and otawa and compile them with the following commands:
$ cd PACK
$ cmake . -DCMAKE_INSTALL_PREFIX=INSTALL_DIR
$ make install
Important To get a full version of ELM (required by OTAWA), the header files of libxml2 and libxslt must be available. On most Linux distributions, these libraries are delivered under two packages, the run-time and the development which is not automatically installed.
oRange is a tool used to determine automatically loop bounds. It is very handy to compute WCET and you should need it. To compile it,
Get frontc and compile it (a simple make invocation is enough)
$ cd frontc
Then compile oRange and install it
$ cd oRangeINSTALL_DIR
$ make install PREFIX=
Building an extension is very easi: you have just to check that the otawa-config utility in the command path (add to your
PATH or equivalent variable the path INSTALL_DIR
/bin. Then, just type the following command:
$ cd PACKAGE
$ cmake .
$ make install
Notice that some extensions have dependencies on GLISS2 packages (for example, otawa-sparc extensions requires the Sparc instruction set). In this case, compile the GLISS extension before the OTAWA extension.