HAMcast developers

Version 21 (modified by Sebastian Meiling, 13 years ago) (diff)

--

Building the HAMcast prototype

Overview

We developed and tested the HAMcast prototype under Ubuntu Linux (> 10.10) and MacOS X. However, it should compile and run under any other Linux distribution as well - let us know if you encounter any problems. HAMcast and most of its components are mainly written in C/C++ and use parts of the boost libraries. Some technology modules and tools need additional libraries. As HAMcast is released as open source, all external tools and libraries are also freely available and no fees have to be paid. Most, if not all of them, are available in package repositories of any common Linux distribution.

The latest release of the HAMcast prototype is available under Download.


Requirements

To build and run HAMcast certain tools and libraries must be available.

  • General dependencies:
    • C/C++ Compiler (gcc, g++)
    • C/C++ standard Libraries
    • cmake tool chain (v2.6 or higher)
    • make
    • Boost Developers Libraries (v1.42 or higher)
    • Ubuntu shortcut:
      sudo apt-get install build-essential libboost-all-dev cmake
      
  • IP module dependencies:
    • PCAP Developers Library (optional, for service discovery)
    • Ubuntu shortcut:
      sudo apt-get install libpcap-dev
      
  • Scribe module dependencies:
    • OpenSSL Developers Library
    • Ubuntu shortcut:
      sudo apt-get install libssl-dev
      
  • Monitoring Framework dependencies:
    • QT Developers Tools and Libraries (optional, for viewer only)
    • iGraph Developers Library (optional, for viewer only)
    • Ubuntu shortcut:
      sudo apt-get install libqt4-dev  libigraph0-dev
      

Build instructions

general

Our build toolchain uses the cmake framework. For all build processes we recommend an out-of-source build, this complies to cmake BCP. Our core release contains a main CMakeLists.txt, that recursivly builds libhamcast, middleware and modules. To build the full core release, follow these steps:

  • change to core release folder hamcast_core/
  • create a build folder, e.g. hamcast_core/build
  • change to build folder
  • run cmake:
    cmake ../
    
  • If no errors occure cmake creates a Makefile, run in build folder:
    make
    
  • Afterwards all libraries (libhamcast and modules) are stored in hamcast_core/lib and the middleware in hamcast_core/bin

You can also compile each part of HAMcast separately, see instructions below.

libhamcast

Libhamcast is the core library of the HAMcast prototype and must be build first. Follow these steps to compile libhamcast:

  • change to folder libhamcast/, this is where CMakeLists.txt lies
  • create a build folder, e.g. libhamcast/build
  • change to build folder
  • run:
    cmake ../
    
  • If no errors occure cmake creates a Makefile, now run in build folder:
    make
    
  • Compiled library is stored in build folder.
  • Note: you may copy libhamcast.so* files to source folder, then you only have to specify HAMCAST_INCLUDE_PATH for other builds that depend on libhamcast and its header files (see below).

middleware, modules and others

All other components of the HAMcast prototype as well as all programs depend on libhamcast, its header files and optional libraries. For further information have a look at the README file in the corresponding source folder. The general build steps are as follows:

  • change to <source-dir>/, this is where CMakeLists.txt lies
  • create a build folder, e.g. <source-dir>/build
  • change to build folder
  • if HAMcast library and header are installed to standard folders (/usr/lib/, /usr/include), run:
    cmake ../
    
  • otherwise specify header and library location as follows:
    cmake -DHAMCAST_INCLUDE_PATH=<path-to-headers> -DHAMCAST_LIBRARY_PATH=<path-to-libhamcast> ../
    
  • Note: <path-to-headers> must point to directory where hamcast/hamcast.hpp lies.
  • If no errors occure cmake creates a Makefile, now run in build folder:
    make
    
  • Compiled binary or library are stored in build folder

To configure and run HAMcast see Documentation.


Notes