HowTo Build the HAMcast prototype
Requirements
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. The minimal requirements to install HAMcast on your system are to provide the following tools and libraries:
- build tools (gcc ...)
- automake + libtool
- Boost library (1.42 or higher)
- SSL developer library
- PCAP developer library
Ubuntu or Debian users may use the following shortcuts to install all necessary packages via apt (root access required):
sudo apt-get install build-essential automake libtool
sudo apt-get install libboost-all-dev libssl-dev libpcap-dev
Build and run HAMcast on Linux or MacOS
In general it is quite simple to get HAMcast working on UNIX platforms. For a start you only have to download our latest prototype release (LINK) and the build.sh script provided. However, you may also manually compile HAMcast - this is pretty easy, as we use automake to generate configure-scripts and Makefiles. The source code of HAMcast is structured into three main parts, plus some software examples:
- Multicast API (libhamcast/)
- Middleware component (middleware/)
- Technology modules (modules/<technology>)
- Examples (programs/<software>)
Run the following sequence of commands in all subdirectories (libhamcast, middleware ...):
automake -i && ./configure && make
If you have root access, you may also install libhamcast on your system (though we recommend to test it first on a non-productive system) with:
make install
Note for Linux users
If you're getting the error "No CAS for this plattform", then you need to set your hardware architecture by hand using the configure script. run "uname -m" to see your hardware architecture, this should be one of i386, i568, i686 or x86_64, then (re)run the configure script as follows:
./configure CXXFLAGS="-march={YOUR_ARCH}"
where {YOUR_ARCH} is your hardware architecture (note: GCC expects x86-64 instead of x86_64), if you are unsure use native. Continue with make.