-
Notifications
You must be signed in to change notification settings - Fork 11
Installation guide
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.
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.
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
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