Skip to content
mfrey edited this page Sep 15, 2014 · 11 revisions

This page provides a rough installation guide for installing OMNeT++ and libara on Linux based systems. It also assumes that you have a fair understanding of the linux command line.

Requirements

Software

OMNeT++

Download the latest version of OMNeT++.

[frey@pandora ~]$ curl -L -O http://www.omnetpp.org/omnetpp/doc_download/2282-omnet-45-source--ide-tgz

rename the package

[frey@pandora ~]$ mv 2282-omnet-45-source--ide-tgz omnet-45-source--ide.tgz

and extract the content

[frey@pandora ~]$ tar xzf omnet-45-source--ide.tgz 

and build it

[frey@pandora ~]$ mv omnetpp-4.5/ ~/Software/.
[frey@pandora ~]$ ./configure ; make

If you prefer a headless build, start the configure script with the following option

[frey@pandora ~]$ NO_TCL=1 ./configure ; make

You should also add the location of the *.so file to the LD_LIBRARY_PATH environment variable. For example by setting it in your bashrc

[frey@pandora ~]$ vim .bashrc

and

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/Software/omnetpp-4.5/lib

Replace $HOME/Software/omnetpp-4.5/lib with the location of your OMNeT++ 4.5 lib directory.

libdessert

You have to obtain the source code from the official website, fetch it from the github repository or try to find a package for your linux distribution. Please note, that the libdessert version shipped in Debian and Ubuntu is outdated and is '''not''' working with libara.

For ArchLinux there is a AUR package. Download

[frey@pandora ~]$ curl -O https://aur.archlinux.org/packages/li/libdessert/libdessert.tar.gz

and extract it

[frey@pandora ~]$ tar xzf libdessert.tar.gz ; cd libdessert

Build the package using the following command

[frey@pandora libdessert]$ makepkg -s

libara

Clone the repository

[frey@pandora ~]$ git clone git://github.com/des-testbed/libara.git

and build the sources and simulation via

[frey@pandora ~]$ make all

When you want to build libARA, you can decide if you want to use another compiler than clang. Our main compiler is still clang but setting CXX = gcc in the Makefile should also work.

You may have trouble if your GNUmake version is too old (< GNU Make 3.82) you also need to add $(INETMANET_FOLDERS_INCLUDE) to the Makefile target $(OUTPUT_DIR)/%.o: %.cpp The whole target should then look like this:

#
# Builds most of the cpp files (omnetARA & omnetARATest cpps are handled above)
#
$(OUTPUT_DIR)/%.o: %.cpp
        @$(MKPATH) $(dir $@)
        @echo "Compiling $<";
        @$(CXX) $(CFLAGS) $(INCLUDE_PATH) $(ADDITIONAL_INCLUDES) $(INETMANET_FOLDERS_INCLUDE) -c $< -o $@
        @$(CXX) $(CFLAGS) $(INCLUDE_PATH) $(ADDITIONAL_INCLUDES) $(INETMANET_FOLDERS_INCLUDE) -MM -MT $@ $< > $(OUTPUT_DIR)/$*.d;

If you have build a headless version of OMNeT++ you should also build a headless version of libara

[frey@pandora ~]$ make HEADLESS=TRUE

If you don't it is very likely that you get the following linker error

ld: cannot find -lopptkenvd
collect2: error: ld returned 1 exit status
make: *** [out/g++-debug/omnetpp/ara-sim] Error 1

If you only need libARA code, just build libARA via

make NO_OMNET=TRUE
Clone this wiki locally