OTAWA

Building for MacOSX

(by H. Ozaktas)

This guide is mainly written for OS X Lion and uses MacPorts.

Installing MacPorts

MacPorts needs Xcode which is most easily installed from the Mac App Store. Once Xcode is installed, open it, go to PreferencesDownloadsComponents and install Command Line Tools.
Now you can install MacPorts.

Installing build tools

Install packages mercurial, cmake, coreutils, libxslt and ocaml through MacPorts:
$ sudo port install PKG_NAME

If a need for any other tool or library arises, it can be searched in available ports:
$ port search KEYWORD

Basic Libraries Installation

OTAWA and its modules must be compiled in the same parent directory that we call BUILD_DIR. So, create a BUILD_DIR and chdir in it:
$ mkdir BUILD_DIR
$ cd BUILD_DIR

You also need to decide for an installation directory that we call INSTALL_DIR. If you don’t specify one, /usr/local is generally used by default.

Which module you’ll need depends on what you want to do with OTAWA but in any case, you will need gel, gliss2, a loader for your preferred ISA and elm. So grab and install them. For gel:
$ hg clone https://anon:ok@wwwsecu.irit.fr/hg/TRACES/gel/trunk gel
$ cd gel
$ cmake . -DCMAKE_INSTALL_PREFIX=
INSTALL_DIR
$ make install
$ cd ..

For gliss2:
$ hg clone https://anon:ok@wwwsecu.irit.fr/hg/TRACES/gliss2/trunk gliss2
$ cd gliss2
$ make
$ cd ..

Loader Installation

Now it’s time to install a loader. OTAWA has support for several architectures including ARM, PPC, SPARC and more. You can install any combination of them, here is how to install PowerPC loader with VLE instructions support:
$ hg clone https://anon:ok@wwwsecu.irit.fr/hg/TRACES/ppc2/trunk ppc2
$ cd ppc2
$ make WITH_DYNLIB=1
$ cd ..

LP Solver Installation

OTAWA also needs an LP solver. It currently uses lp_solve.
As patches are needed to let OTAWA using it, yon can either download our patched version lp_solve5.tar.gz, or try to patch another version as below.

Grab v5.5 of it (up to 5.5.0.13) and put it in the BUILD_DIR. Now, extract it and change its name to lp_solve5:
$ tar xvf DOWNLOADED_LP_SOLVE5
$ mv lp_solve_5.5 lp_solve5

Now grab the patch file lp_solve5.txt, patch lp_solve5 and compile it:
$ cd lp_solve5
$ patch -p1 <
PATCH_FILE cd lpsolve55 sh ccc cd ../..

Installing OTAWA

Now it’s time to install elm:
$ hg clone https://anon:ok@wwwsecu.irit.fr/hg/TRACES/elm/trunk elm
$ cd elm
$ cmake . -DCMAKE_INSTALL_PREFIX=
INSTALL_DIR
$ make install cd ..

And finally OTAWA:
$ hg clone https://anon:ok@wwwsecu.irit.fr/hg/TRACES/otawa/trunk otawa
$ cd otawa cmake . -DCMAKE_INSTALL_PREFIX=
INSTALL_DIR
$ make install
$ cd ..

Installing oRange

You can now install oRange which is a tool that determines loop bounds automatically. Since it need frontc, first grab and compile frontc:
$ hg clone https://anon:ok@wwwsecu.irit.fr/hg/TRACES/frontc/trunk frontc
$ cd frontc
$ make NATIVE=1
$ cd ..

and then oRange:
$ hg clone https://anon:ok@wwwsecu.irit.fr/hg/TRACES/orange/trunk orange
$ cd orange
$ make install PREFIX=
INSTALL_DIR NATIVE=1
$ cd ..

Environment Configuration

Now that the installation has completed, you can configure your environment for OTAWA binaries. Add these lines to your ~/.profile (don’t forget to replace INSTALL_DIR as before):
# otawa bin path export PATH=INSTALL_DIR/bin:$PATH