Building by hand

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:ok@wwwsecu.irit.fr/hg/TRACES/MODULE/trunk MODULE


The following tools are required to build OTAWA:

  • GNU C++,
  • GNU make,
  • flex,
  • bison,
  • CMake,
  • 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.

retrieve and compile the GLISS2 utility

$ cd gliss2
$ make

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
$ 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.

Building oRange

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
$ make

Then compile oRange and install it

$ cd oRange
$ make install PREFIX=

Building extensions

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:

$ 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.