# Required Tools

Build System and Code Generation

In order to keep track of the dependencies among the source files automatically, when compiling the project, the scons build system was choosen. This build system is written in Python, therefore this package is installed here too.

1. Python (mandatory)
   http://www.python.org
   Python is used as the central scripting language in this project, therefore it is mandatory to install. It is primarily used for the scons build system, utility scripts and PC applications. Python is used in version 2.x, starting with version 2.4 the build is tested. Version 3.x is not yet supported.
2. Scons (mandatory)
   http://www.scons.org
   Scons is a Python based build sytem, similiar to make. Its main strengths are
   - the clean dependency managment, which is based on hash sums instead of timestamps,
   - the flexible extension with Python functions and
   - the easy to read and understand build scripts.

AVR Tools

For cross compiling the µracoli sources the avr-gcc compiler and the avr-binutils are needed. The avr-libc package provides a standard C library for AVR micro controllers.

1. GNU AVR Binutils (mandatory)
   http://www.gnu.org/software/binutils
   This packages contain the assembler, linker and various utilities for generating and transforming executable programm code for AVR microcontrollers.
2. GNU AVR GCC (mandatory)
   http://www.gnu.org/software/gcc
   The GNU compiler collection provides compilers for different programming languages. For this project the AVR GCC compiler is used.
3. AVR Libc (mandatory)
   http://avr-libc.nongnu.org
   AVR Libc is collection of high quality C functions and macros to be used in conjunction with AVR microcontrollers.

Note:
  All the above mentioned tools are available in the package WinAvr for Windows users.

Programming and Debugging of Radio Boards

For loading and debugging executables on radio boards, different tools for Linux and Windows are used.

1. Programmer (mandatory)
   - Linux/Unix: avrdude
   - Windows: AvrStudio
2. Debugger (optional but highly recommended)
   - Linux/Unix: avarice, avr-gdb, ddd
   - Windows: AvrStudio

Documentation

The project documentation is generated as set of HTML files with doxygen. Additionally tool graphviz (dot) is needed to generate images of graphes.

1. Doxygen (optional)
   http://www.doxygen.org
   Doxygen is a documentation system for various programming languages, including C and Python. The tool should be installed, if the documentation has to be generated.
2. Graphviz (optional)
   http://www.graphviz.org
   Graphviz is a tool for visualization of dependency graphs and networks. It is mainly used inside the documentation for illustrating the relations of various programm components. The tool should be installed, if the documentation has to be generated.

Additional Packages

Because of its platform independence, the PC applications of the µracoli project are written in Python, which uses the packages pyserial and py2exe that are not part of the standard distribution.

1. pyserial (optional)
   http://pyserial.sourceforge.net
   The pyserial package provides plattform independent access to serial interfaces of a PC. It is mandatory needed for any Python application that communicates via serial interface with an AVR microcontroller. The package should be installed, and has to be installed, if the packet capturing is used.
2. py2exe (optional, only windows)
   http://www.py2exe.org/
   py2exe is a Python Distutils extension which converts Python scripts into executable Windows programs, able to run without requiring a Python installation. The package should be installed with windows esxecutables should be generated from python scripts.

Additionally when developping more complex wireless applications a wireless sniffer tool makes the debugging process a lot easier, therefore we go with Wireshark.

1. Wireshark (optional)
   http://www.wireshark.org/
   In conjunction with the µracoli packet capture tool, wireshark is used for decoding and displaying frames, captured on air. The package should be installed, and has to be installed, if the packet capturing is used.

Source Code Managment

This tools are used if you want to check in and check out the µracoli source code directly from the CVS repository.

1. CVS (optional but highly recommended)
   http://cvs.nongnu.org
   The cvs tool (Concurrent Versions System) is needed for checking out, comparing and committing files from and to the source code repository. The tool is needed to update the local µracoli project tree from the repository. Since the project changes rapidly in this development phase, the tool is highly recommended to be installed.
2. ssh and ssh-agent (optional)
   http://www.openssh.com/
   The secure shell is needed for accessing the repository as registered µracoli developer. All other people interested in the project, will be able to do an anonymous checkout via the pserver protocol.