README.md 1.93 KB
Newer Older
Andres S. CHARIF-RUBIAL's avatar
Andres S. CHARIF-RUBIAL committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
MAQAO (Modular Assembly Quality Analyzer and Optimizer)


# Outline

[Pre requisites](#pre-requisites)   
[Installation](#installation)   
[Documentation](#documentation)   
[Running MAQAO tools](#running-maqao-tools)

# Pre-requisites
The following packages and softwares have to be installed before launching the installation:
- gcc
- g++
- cmake (>= 2.8.8, available at http://www.cmake.org/cmake/resources/software.html)
- glibc-static
- libstdc++-static  
 
If you choose the original lua package (and not luajit) then you will also need:   
- libreadline-dev
- libncurses-dev

# Installation
MAQAO is a cmake based project.   
Cédric VALENSI's avatar
Cédric VALENSI committed
25 26
Go into the MAQAO folder   
If no "build" directory is present, create it   
Andres S. CHARIF-RUBIAL's avatar
Andres S. CHARIF-RUBIAL committed
27
` >$ mkdir build`   
Cédric VALENSI's avatar
Cédric VALENSI committed
28
Go into the build folder:   
Andres S. CHARIF-RUBIAL's avatar
Andres S. CHARIF-RUBIAL committed
29 30 31 32 33
` >$ cd build`   
Then run the following commands:   
` >$ cmake ..`   
` >$ make`   

Cédric VALENSI's avatar
Cédric VALENSI committed
34
# Documentation
Andres S. CHARIF-RUBIAL's avatar
Andres S. CHARIF-RUBIAL committed
35 36 37
The documentation generation is optional and need several softwares:
- for the LUA API documentation, luadoc is needed (http://keplerproject.github.com/luadoc/)
- for the C API documentation, doxygen is needed (http://www.stack.nl/~dimitri/doxygen/)
Cédric VALENSI's avatar
Cédric VALENSI committed
38

Andres S. CHARIF-RUBIAL's avatar
Andres S. CHARIF-RUBIAL committed
39 40 41 42 43 44
To build the documentation, go in the build directory and type:   
` >$ make doc`   
Generated files are available trough a web browser. The LUA API documentation is called   
DeveloperGuide.html and the C API documentation is called CoreDeveloperGuide.html. Both   
are located in MAQAO/doc

Cédric VALENSI's avatar
Cédric VALENSI committed
45 46 47 48
# Running MAQAO modules
A MAQAO module can be launched with the following command:   
` >$ maqao <module> [args] `   
For instance to list the functions in the binary /path_to/my_binary:   
Andres S. CHARIF-RUBIAL's avatar
Andres S. CHARIF-RUBIAL committed
49 50 51
` >$ maqao analyze --list-functions /path_to/my_binary`   


Cédric VALENSI's avatar
Cédric VALENSI committed
52
The -h option provides help for a given module.   
Andres S. CHARIF-RUBIAL's avatar
Andres S. CHARIF-RUBIAL committed
53 54


Cédric VALENSI's avatar
Cédric VALENSI committed
55
To execute user-defined MAQAO/Lua scripts, use:   
Andres S. CHARIF-RUBIAL's avatar
Andres S. CHARIF-RUBIAL committed
56
` >$ maqao <lua-script> [args] `   
Cédric VALENSI's avatar
Cédric VALENSI committed
57
Note that MAQAO scripts are Lua scripts that can use the MAQAO Lua API extensions (see documentation for more information)   
Andres S. CHARIF-RUBIAL's avatar
Andres S. CHARIF-RUBIAL committed
58 59 60 61 62


For general help on MAQAO:    
` >$ maqao -h`