Install Guide
Install Guide
Installation Guide
Version 5.0
Table of Contents
1. General Information ........................................................................................... 1
2. Windows ............................................................................................................. 2
3. Mac OS X ........................................................................................................... 6
4. Linux ................................................................................................................ 12
5. Ubuntu ............................................................................................................. 19
6. Fedora 23 ......................................................................................................... 23
7. Red Hat ............................................................................................................ 25
8. OpenSUSE ....................................................................................................... 27
9. Generic Unix .................................................................................................... 29
10. Build Options ................................................................................................. 36
iii
Chapter1.General Information
1.1.Introduction
This document describes how to install OMNeT++ on various platforms. One chapter
is dedicated to each operating system.
1.2.Supported Platforms
OMNeT++ has been tested and is supported on the following operating systems:
Windows 7 and 10
Mac OS X 10.10 or later
Linux distributions covered in this Installation Guide
The Simulation IDE can be used on the following platforms:
Linux x86 32/64-bit
Windows 7, 10
Mac OS X 10.10 or later
Simulations can be run practically on any unix-like environment with a decent and
fairly up-to-date C++ compiler, for example gcc 4.x. Certain OMNeT++ features
(Tkenv, parallel simulation, XML support, etc.) depend on the availability of external
libraries (Tcl/Tk, MPI, LibXML or Expat, etc.)
IDE platforms are restricted because the IDE relies on a native shared library, which
we compile for the above platforms and distribute in binary form for convenience.
Chapter2.Windows
2.1.Supported Windows Versions
OMNeT++ supports the Intel 32-bit versions of Windows 7 and 10.
64-bit Windows versions are also supported, but be aware that binaries bundled with
OMNeT++ are 32-bit ones, and simulations will also be compiled in 32-bit mode.
2.2.Installing OMNeT++
Download the OMNeT++ source code from http://omnetpp.org. Make sure you select
the Windows-specific archive, named omnetpp-5.0-src-windows.zip.
The package is nearly self-contained: in addition to OMNeT++ files it includes a C++
compiler, a command-line build environment, and all libraries and programs required
by OMNeT++.
Copy the OMNeT++ archive to the directory where you want to install it. Choose
a directory whose full path does not contain any space; for example, do not put
OMNeT++ under Program Files.
Extract the zip file. To do so, right-click the zip file in Windows Explorer, and select
Extract All from the menu. You can also use external programs like Winzip or 7zip.
Rename the resulting directory to omnetpp-5.0.
When you look into the new omnetpp-5.0 directory, should see directories named
doc, images, include, tools, etc., and files named mingwenv.cmd, configure,
Makefile, and others.
First, check the contents of the configure.user file to make sure it contains the
settings you need. In most cases you dont need to change anything.
notepad configure.user
Then enter the following commands:
$ ./configure
$ make
The build process will create both debug and release binaries.
Windows
2.6.Environment Variables
If you want to start OMNeT++ simulations outside the shell as well (for example from
Exlorer), you need to add OMNeT++'s bin directory to the path.
First, open the Environment Variables dialog.
Click the Start button, then start typing environment variables into the search box.
Choose Edit environment variables for your account when it appears in the list. The
dialog comes up.
In the dialog, select path or PATH in the list, click Edit. Append ";<omnetppdir>\bin" to the value (without quotes), where <omnetpp-dir> is the name of the
OMNeT++ root directory (for example C:\omnetpp-5.0). Hit Enter to accept.
You need to close and re-open any command windows for the changes to take effect
in them.
Windows
$ make
If you want to recompile just a single library, then change to the directory of the library
(e.g. cd src/sim) and type:
$ make clean
$ make
By default, libraries are compiled in both debug and release mode. If you want to make
release or debug builds only, use:
$ make MODE=release
or
$ make MODE=debug
By default, shared libraries will be created. If you want to build static libraries, set
SHARED_LIBS=no in configure.user and re-configure your project.
The built libraries and programs are immediately copied to the lib/ and bin/
subdirs.
2.8.Portability Issues
OMNeT++ has been tested with both the gcc and the clang compiler from the MinGWw64 package.
Microsoft Visual C++ is not supported in the Academic Edition.
2.9.Additional Packages
Note that Doxygen and GraphViz are already included in the OMNeT++ package, and
do not need to be downloaded.
2.9.1.MPI
MPI is only needed if you would like to run parallel simulations.
There are several MPI implementations for Windows, and OMNeT++ does not
mandate any specific one. We recommend DeinoMPI, which can be downloaded from
http://mpi.deino.net.
After installing DeinoMPI, adjust the MPI_DIR setting
configure.user, and reconfigure and recompile OMNeT++:
in
OMNeT++'s
$ ./configure
$ make cleanall
$ make
In general, if you would like to run parallel simulations, we recommend that you use
Linux, OS X, or another unix-like platform.
2.9.2.PCAP
The optional WinPcap library allows simulation models to capture and transmit
network packets bypassing the operating systems protocol stack. It is not used directly
Windows
by OMNeT++, but OMNeT++ detects the necessary compiler and linker options for
models in case they need it.
2.9.3.Akaroa
Akaroa 2.7.9, which is the latest version at the time of writing, does not support
Windows. You may try to port it using the porting guide from the Akaroa distribution.
Chapter3.Mac OS X
3.1.Supported Releases
This chapter provides additional information for installing OMNeT++ on Mac OS X.
The following releases are covered:
Mac OS X 10.10 and 10.11
Mac OS X
You must quit the Keychain Access application in order to use the certificate and restart
the system.
Now sign the executable:
$ sudo codesign -s gdb-cert /opt/local/bin/ggdb
After installing the OMNeT++ IDE, you have to change the name of the executable used
for debugging. Go to Preferences > C++ > Debug > gdb in the IDE, and change the
executable name from gdb to ggdb.
3.5.Environment Variables
OMNeT++ needs its bin/ directory to be in the path. To add bin/ to PATH temporarily
(in the current shell only), change into the OMNeT++ directory and source the setenv
script:
$ cd omnetpp-5.0
$ . setenv
To set the environment variables permanently, edit .bashrc in your home directory.
Use your favourite text editor to edit .bashrc, for example TextEdit:
$ touch ~/.bashrc
$ open -e ~/.bashrc
touch is needed because open -e only opens existing files. Alternatively, you can use
the terminal-based pico editor (pico ~/.bashrc)
Add the following line at the end of the file, then save it:
export PATH=$PATH:$HOME/omnetpp-5.0/bin
You need to close and re-open the terminal for the changes to take effect.
Alternatively, you can put the above line into ~/.bash_profile, but then you need to
log out and log in again for the changes to take effect.
If you use a shell other than the default one, bash, consult the man page of that shell
to find out which startup file to edit, and how to set and export variables.
Mac OS X
When ./configure has finished, you can compile OMNeT++. Type in the terminal:
$ make
To take advantage of multiple processor cores, add the -j4 option to the make
command line.
The build process will not write anything outside its directory, so no special privileges
are needed.
The make command will seemingly compile everything twice. This is because both
debug and optimized versions of the libraries are built. If you only want to build one
set of the libraries, specify MODE=debug or MODE=release:
$ make MODE=release
Mac OS X
If you want to recompile just a single library, then change to the directory of the library
(e.g. cd src/sim) and type:
$ make clean
$ make
By default, libraries are compiled in both debug and release mode. If you want to make
release or debug builds only, use:
$ make MODE=release
Mac OS X
or
$ make MODE=debug
By default, shared libraries will be created. If you want to build static libraries, set
SHARED_LIBS=no in configure.user and re-configure your project.
The built libraries and programs are immediately copied to the lib/ and bin/
subdirectories.
The Tcl/Tk environment uses the native Aqua version of Tcl/Tk, so you will see native
widgets. However, due to problems in the Tk/Aqua port, you may experience minor UI
quirks. We are aware of these problems, and are working on the solution.
3.11.Additional Packages
3.11.1.OpenMPI
OS X does not come with OpenMPI, so you must install it manually. Download it
from http://open-mpi.org and follow the installation instructions. Alternatively, you
can install it from the MacPorts repo by typing sudo port install openmpi.
In this case, you have to manually set the MPI_CFLAGS and MPI_LIBS variables
in configure.user and re-run ./configure. Please note that we do not provide
support for OpenMPI installed from the MacPorts repository.
MacPorts is a repository of several open source packages for Mac OS X. Using MacPorts
packages may save you some manual work. You can install MacPorts from http://
www.macports.org.
3.11.2.GraphViz
GraphViz is needed if you want to have diagrams in HTML documentation that you
generate from NED files in the IDE (Generate NED Documentation item in the
project context menu).
Download and install the GraphViz OS X binaries from http://www.pixelglow.com/
graphviz/download/. Download the latest, version 2.x package; at the time of writing,
the link is at the top of the page.
Alternatively, you can install it from the MacPorts project by typing sudo
install graphviz.
port
After installation, make sure that the dot program is available from the command line.
Open a terminal, and type
$ dot -V
Note the capital V. The command should normally work out of the box. If you get the
"command not found" error, you need to put dot into the path. Find the dot program
in the GraphViz installation directory, and soft link it into /usr/local/bin (sudo ln
-s <path>/dot /usr/local/bin).
3.11.3.Doxygen
Doxygen is needed if you want to generate documentation for C++ code, as part of
the HTML documentation that you generate from NED files in the IDE (Generate NED
Documentation item in the project context menu).
10
Mac OS X
Download the Doxygen OS X binaries from the Doxygen web sites download page,
http://www.stack.nl/~dimitri/doxygen/download.html, and install it.
Alternatively, you can install it from the MacPorts project by typing sudo
install doxygen.
port
After installation, ensure that the doxygen program is available from the command
line. Open a terminal, and type
$ doxygen
If you get the "command not found" error, you need to put doxygen into the path. Enter
into a terminal:
$ cd /Applications/Doxygen.app/Contents/Resources/
$ sudo ln -s doxygen doxytags /usr/local/bin
3.11.4.Akaroa
Akaroa 2.7.9, which is the latest version at the time of writing, does not support Mac
OS X. You may try to port it using the porting guide from the Akaroa distribution.
11
Chapter4.Linux
4.1.Supported Linux Distributions
This chapter provides instructions for installing OMNeT++ on selected Linux
distributions:
Ubuntu 14.04 LTS, 15.10
Fedora Core 23
Red Hat Enterprise Linux Desktop Workstation 7.x
OpenSUSE 42
This chapter describes the overall process. Distro-specific information, such as how
to install the prerequisite packages, are covered by distro-specific chapters.
If your Linux distribution is not listed above, you still may be able to use some distrospecific instructions in this Guide.
Ubuntu derivatives (Ubuntu instructions may apply):
Kubuntu, Xubuntu, Edubuntu,
Linux Mint
Some Debian-based distros (Ubuntu instructions may apply, as Ubuntu itself is based
on Debian):
Knoppix and derivatives
Mepis
Some Fedora-based distros (Fedora instructions may apply):
Simplis
Eeedora
Linux
4.4.Environment Variables
OMNeT++ needs its bin/ directory to be in the path. To add bin/ to PATH temporarily
(in the current shell only), change into the OMNeT++ directory and source the setenv
script:
$ cd omnetpp-5.0
$ . setenv
The script also adds the lib/ subdirectory to LD_LIBRARY_PATH, which may be
necessary on systems that dont support the rpath mechanism.
To set the environment variables permanently, edit .bashrc in your home directory.
Use your favourite text editor to edit .bashrc, for example gedit:
$ gedit ~/.bashrc
Add the following line at the end of the file, then save it:
export PATH=$PATH:$HOME/omnetpp-5.0/bin
You need to close and re-open the terminal for the changes to take effect.
Alternatively, you can put the above line into ~/.bash_profile, but then you need to
log out and log in again for the changes to take effect.
If you use a shell other than bash, consult the man page of that shell to find out which
startup file to edit, and how to set and export variables.
Note that all Linux distributions covered in this Installation Guide use bash unless
the user has explicitly selected another shell.
13
Linux
Figure4.1.Configuring OMNeT++
Normally, the configure script needs to be running under the graphical environment
(X11) in order to test for wish, the Tcl/Tk shell. If you are logged in via an ssh session,
or there is some other reason why X is not running, the easiest way to work around
the problem is to tell OMNeT++ to build without Tcl/Tk. To do that, use the command
$ ./configure WITH_TKENV=no
instead of plain ./configure.
If there is an error during configure, the output may give hints about what went
wrong. Scroll up to see the messages. (Use Shift+PgUp; you may need to increase the
scrollback buffer size of the terminal and re-run ./configure.) The script also writes
a very detailed log of its operation into config.log to help track down errors. Since
config.log is very long, it is recommended that you open it in an editor and search
for phrases like error or the name of the package associated with the problem.
When ./configure has finished, you can compile OMNeT++. Type in the terminal:
$ make
14
Linux
Figure4.2.Building OMNeT++
To take advantage of multiple processor cores, add the -j4 option to the make
command line.
The build process will not write anything outside its directory, so no special privileges
are needed.
The make command will seemingly compile everything twice. This is because both
debug and optimized versions of the libraries are built. If you only want to build one
set of the libraries, specify MODE=debug or MODE=release:
$ make MODE=release
15
Linux
16
Linux
$ make MODE=release
or
$ make MODE=debug
By default, shared libraries will be created. If you want to build static libraries, set
SHARED_LIBS=no in configure.user and re-configure your project.
For detailed description of all options please read the Build Options chapter.
4.10.Additional Packages
Note that at this point, MPI, Doxygen and GraphViz have been installed as part of the
prerequisites.
4.10.1.Qtenv
OMNeT++ 5 comes with a new Qt based runtime environment that supports also
3D visualization. The new environment can be disabled by commenting out the
QT_VERSION variable in the configure.user file and then running ./configure.
4.10.2.Akaroa
Linux distributions do not contain the Akaroa package. It must be downloaded,
compiled and installed manually before installing OMNeT++.
As of version 2.7.9, Akaroa only supports Linux and Solaris.
4.10.3.PCAP
The optional Pcap library allows simulation models to capture and transmit network
packets bypassing the operating systems protocol stack. It is not used directly by
OMNeT++, but OMNeT++ detects the necessary compiler and linker options for
models in case they need it.
4.10.4.Nemiver
Nemiver is the default debugger for the OMNeT++ just-in-time debugging facility (see
the debugger-attach-on-startup and debugger-attach-on-error configuration
17
Linux
options). Nemiver can be installed via the package manager in most Linux distros. For
example, on Ubuntu and other Debian-based distros you can install it by the following
command:
$ sudo apt-get install nemiver
18
Chapter5.Ubuntu
5.1.Supported Releases
This chapter provides additional information for installing OMNeT++ on Ubuntu
Linux installations. The overall installation procedure is described in the Linux
chapter.
The following Ubuntu releases are covered:
Ubuntu 14.04 LTS
Ubuntu 15.10
They were tested on the following architectures:
Intel 32-bit and 64-bit
The instructions below assume that you use the Gnome desktop and the bash shell,
which are the defaults. If you use another desktop environment or shell, you may need
to adjust the instructions accordingly.
5.2.Opening a Terminal
Type terminal in Dash and click on the Terminal icon.
5.3.1.Command-Line Installation
Before starting the installation, refresh the database of available packages. Type in the
terminal:
$ sudo apt-get update
To install the required packages, type in the terminal:
$ sudo apt-get install build-essential gcc g++ bison flex perl \
tcl-dev tk-dev libxml2-dev zlib1g-dev default-jre \
doxygen graphviz libwebkitgtk-1.0-0
To use Qtenv with 3D visualization support, install the development packages for Qt4,
OpenSceneGraph (3.2) and the osgEarth (2.5 or later) packages:
$ sudo apt-get install qt4-qmake libqt4-dev libqt4-opengl-dev \
openscenegraph libopenscenegraph-dev openscenegraph-plugin-osgearth \
osgearth osgearth-data libosgearth-dev
You may opt to use clang and clang++ instead of the gcc and g++ compilers.
19
Ubuntu
To enable the optional parallel simulation support you will need to install the MPI
packages:
$ sudo apt-get install openmpi-bin libopenmpi-dev
At the confirmation questions (Do you want to continue? [Y/N]), answer Y.
5.3.2.Graphical Installation
Ubuntus graphical installer, Synaptic, can be started with the System >
Administration > Synaptic package manager menu item.
Since software installation requires root permissions, Synaptic will ask you to type
your password.
Search for the following packages in the list, click the squares before the names, then
choose Mark for installation or Mark for upgrade.
If the Mark additional required changes? dialog comes up, choose the Mark button.
The packages:
required: build-essential, gcc, g++, bison, flex, perl, tcl-dev, tk-dev, libxml2-dev,
zlib1g-dev, default-jre, doxygen, graphviz, libwebkitgtk-1.0-0
recommended: qt4-qmake, libqt4-dev, libqt4-opengl-dev, openscenegraph,
libopenscenegraph-dev, openscenegraph-plugin-osgearth, osgearth, osgearth-data,
libosgearth-dev, openmpi-bin, libopenmpi-dev
20
Ubuntu
5.3.3.Post-Installation Steps
Fixing Tooltip Colors
The default tooltip background color in Ubuntu is black, which causes certain tooltips
in the OMNeT++ IDE to become unreadable (black-on-black). This annoyance can be
resolved by changing the tooltip colors in Ubuntu.
21
Ubuntu
Find the Tooltips group on the Specific tab, and change the settings to black foreground
over pale yellow background. Click Apply.
22
Chapter6.Fedora 23
6.1.Supported Releases
This chapter provides additional information for installing OMNeT++ on Fedora
installations. The overall installation procedure is described in the Linux chapter.
The following Fedora release is covered:
Fedora 23
It was tested on the following architectures:
Intel 32-bit and 64-bit
6.2.Opening a Terminal
Choose Applications > System Tools > Terminal from the menu.
6.3.1.Command-Line Installation
To install the required packages, type in the terminal:
$ su -c 'yum install make gcc gcc-c++ bison flex perl \
tcl-devel tk-devel qt-devel libxml2-devel zlib-devel \
java doxygen graphviz webkitgtk openmpi-devel libpcap-devel'
To use 3D visualization support in Qtenv, you should install OpenSceneGraph 3.2 and
osgEarth 2.5 or later (recommended):
$ su -c 'yum install OpenSceneGraph-devel osgearth-devel'
You may opt to use clang and clang++ instead of the gcc and g++ compilers.
Note that openmpi will not be available by default, it needs to be activated in every
session with the
$ module load openmpi-<arch>
command, where <arch> is your architecture (usually i386 or x86_64). When in
doubt, use module avail to display the list of available modules. If you need MPI
in every session, you may add the module load command to your startup script
(.bashrc).
6.3.2.Graphical Installation
The graphical installer can be launched by choosing System > Administration > Add/
Remove Software from the menu.
23
Fedora 23
Figure6.1.Add/Remove Software
Search for the following packages in the list. Select the checkboxes in front of the
names, and pick the latest version of each package.
The packages:
bison, gcc, gcc-c++, flex, perl, tcl-devel, tk-devel, qt-devel, libxml2-devel, zlibdevel, webkitgtk, make, java, doxygen, graphviz, openmpi-devel, libpcap-devel,
OpenSceneGraph-devel, osgearth-devel
Click Apply, then follow the instructions.
24
Chapter7.Red Hat
7.1.Supported Releases
This chapter provides additional information for installing OMNeT++ on Red Hat
Enterprise Linux installations. The overall installation procedure is described in the
Linux chapter.
The following Red Hat release is covered:
Red Hat Enterprise Linux Desktop Workstation 7.x
It was tested on the following architectures:
Intel 32-bit and 64-bit
7.2.Opening a Terminal
Choose Applications > Accessories > Terminal from the menu.
7.3.1.Command-Line Installation
To install the required packages, type in the terminal:
$ su -c 'yum install make gcc gcc-c++ bison flex perl \
tcl-devel tk-devel qt-devel libxml2-devel zlib-devel \
java doxygen graphviz openmpi-devel libpcap-devel'
To use 3D visualization support in Qtenv (recommended), you should install the
OpenSceneGraph-devel (3.2) and osgEarth-devel (2.5 or later) packages. These
packages are not available from the official RedHat repository so you may need to get
them from different sources (e.g. rpmfind.net).
You may opt to use clang and clang++ instead of the gcc and g++ compilers.
To install additional (optional) packages for parallel simulation and packet capture
support, type:
$ su -c 'yum install openmpi-devel libpcap'
Note that openmpi will not be available by default, it needs to be activated in every
session with the
25
Red Hat
7.3.2.Graphical Installation
The graphical installer can be launched by choosing Applications > Add/Remove
Software from the menu.
Search for the following packages in the list. Select the checkboxes in front of the
names, and pick the latest version of each package.
The packages:
make gcc, gcc-c++, bison, flex, perl, tcl-devel, tk-devel, qt-devel, libxml2-devel, zlibdevel, make, java, doxygen, graphviz, openmpi-devel, libpcap-devel
Click Apply, then follow the instructions.
7.4.SELinux
You may need to turn off SELinux when running certain simulations. To do so, click
on System > Administration > Security Level > Firewall, go to the SELinux tab, and
choose Disabled.
You can verify the SELinux status by typing the sestatus command in a terminal.
From OMNeT++ 4.1 on, makefiles that build shared libraries include the chcon -t
textrel_shlib_t lib<name>.so command that properly sets the security context
for the library. This should prevent the SELinux-related "cannot restore segment prot
after reloc: Permission denied" error from occurring, unless you have a shared library
which was built using an obsolete or hand-crafted makefile that does not contain the
chcon command.
26
Chapter8.OpenSUSE
8.1.Supported Releases
This chapter provides additional information for installing OMNeT++ on openSUSE
installations. The overall installation procedure is described in the Linux chapter.
The following openSUSE release is covered:
openSUSE 42.1
It was tested on the following architectures:
Intel 32-bit and 64-bit
8.2.Opening a Terminal
Choose Applications > System > Terminal > Terminal from the menu.
8.3.1.Command-Line Installation
To install the required packages, type in the terminal:
$ sudo zypper install make gcc gcc-c++ bison flex perl \
tcl-devel tk-devel libqt4-devel libxml2-devel zlib-devel \
java-1_8_0-openjdk doxygen graphviz openmpi-devel libpcap-devel \
libwebkitgtk-1_0-0
To use 3D visualization support in Qtenv (recommended), you should install the
OpenSceneGraph-devel (3.2) and osgEarth-devel (2.5 or later) packages. These
packages are not available from the official RedHat repository so you may need to get
them from different sources (e.g. rpmfind.net).
Note that openmpi will not be available by default, first you need to log out and log in
again, or source your .profile script:
$ . ~/.profile
8.3.2.Graphical Installation
The graphical installer can be launched by choosing Computer > Yast > System >
Software > Software Management from the menu.
27
OpenSUSE
28
Chapter9.Generic Unix
9.1.Introduction
This chapter provides additional information for installing OMNeT++ on Unix-like
operating systems not specifically covered by this Installation Guide. The list includes
FreeBSD, Solaris, and Linux distributions not covered in other chapters.
In addition to Windows and Mac OS X, the Simulation IDE will only work on
Linux x86 32/64-bit platforms. Other operating systems (FreeBSD, Solaris, etc.) and
architectures may still be used as simulation platforms, without the IDE.
9.2.Dependencies
The following packages are required for OMNeT++ to work:
build-essential, GNU make,
gcc, g++, bison (2.x+), flex,
perl
The following packages are strongly recommended, because their absence results in
severe feature loss:
Tcl/Tk 8.5 or later
LibXML2 or Expat
The Java runtime is required to run the Eclipsebased Simulation IDE. Other implementations, for
example Kaffe, have been found to have problems
running the IDE. You do not need this package if you
do not plan to use the Simulation IDE.
Qt 4
OpenSceneGraph and
osgEarth
The following packages are required if you want to take advantage of some advanced
OMNeT++ features:
29
Generic Unix
GraphViz, Doxygen
MPI
Akaroa
Pcap
9.3.1.Tcl/Tk
Tcl/Tk may be present as separate packages (tcl and tk), or in one package (tcltk).
The version number (e.g. 8.5) is usually part of the name in some form (85, 8.5, etc).
You will need the development packages, which are usually denoted with the -dev or
-devel name suffix.
Troubleshooting:
If your platform does not have suitable Tcl/Tk packages, you may still use OMNeT++ to
run simulations from the command line. To disable the graphical runtime environment
use:
$ ./configure WITH_TKENV=no
This will prevent the build system to link with Tcl/Tk libraries. This is required also if
you are installing OMNeT++ from a remote terminal session.
By default, the configure script expects to find the Tcl/Tk libraries in the standard
linker path (without any -Ldirectory linker option) and under the standard names
(i.e. with the -ltcl8.4 or -ltcl84 linker option). If you have them in different places
or under different names, you have to edit configure.user and explicitly set TK_LIBS
there (see the Build Options chapter for further details).
If you get the error no display and DISPLAY environment variable not set, then youre
either not running X (the wish command, and thus ./configure wont work just in
the console) or you really need to set the DISPLAY variable (export DISPLAY=:0.0
usually does it).
If you get the error: Tcl_Init failed: Cant find a usable init.tcl
The TCL_LIBRARY environment variable should point to the directory which contains
init.tcl. That is, you probably want to put a line like
export TCL_LIBRARY=/usr/lib/tcl8.4
30
Generic Unix
into your ~/.bashrc.
If you still have problems installing Tcl/Tk, we recommend visiting the OMNeT++
sites wiki packages for further troubleshooting tips: http://www.omnetpp.org/pmwiki/
index.php?n=Main.TclTkRelatedProblems
9.3.3.MPI
OMNeT++ is not sensitive to the particular MPI implementation. You may use
OpenMPI, or any other standards-compliant MPI package.
9.5.Environment Variables
In general OMNeT++ requires that its bin directory should be in the PATH. You should
add a line something like this to your .bashrc:
$ export PATH=$PATH:$HOME/omnetpp-5.0/bin
You may also have to specify the path where shared libraries are loaded from. Use:
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/omnetpp-5.0/lib
If configure complains about not finding the Tcl library directory, you may specify it
by setting the TCL_LIBRARY environment variable.
If you use a shell other than bash, consult the man page of that shell to find out which
startup file to edit, and how to set and export variables.
31
Generic Unix
Figure9.1.Configuring OMNeT++
Normally, the configure script needs to be running under the graphical environment
(X11) in order to test for wish, the Tcl/Tk shell. If you are logged in via an ssh session,
or there is some other reason why X is not running, the easiest way to work around
the problem is to tell OMNeT++ to build without Tcl/Tk. To do that, use the command
$ ./configure WITH_TKENV=no
instead of plain ./configure.
If there is an error during configure, the output may give hints about what went
wrong. Scroll up to see the messages. (Use Shift+PgUp; you may need to increase the
scrollback buffer size of the terminal and re-run ./configure.) The script also writes
a very detailed log of its operation into config.log to help track down errors. Since
config.log is very long, it is recommended that you open it in an editor and search
for phrases like error or the name of the package associated with the problem.
The configure script tries to build and run small test programs that are using specific
libraries or features of the system. You can check the config.log file to see which
test program has failed and why. In most cases the problem is that the script cannot
figure out the location of a specific library. Specifying the include file or library location
in the configure.user file and then re-running the configure script usually solves
the problem.
When ./configure has finished, you can compile OMNeT++. Type in the terminal:
$ make
32
Generic Unix
Figure9.2.Building OMNeT++
To take advantage of multiple processor cores, add the -j2 option to the make
command line.
The build process will not write anything outside its directory, so no special privileges
are needed.
The make command will seemingly compile everything twice. This is because both
debug and optimized versions of the libraries are built. If you only want to build one
set of the libraries, specify MODE=debug or MODE=release:
$ make MODE=release
You can run the IDE by typing the following command in the terminal:
$ omnetpp
33
Generic Unix
9.9.Optional Packages
9.9.1.Akaroa
If you wish to use Akaroa, it must be downloaded, compiled, and installed manually
before installing OMNeT++.
As of version 2.7.9, Akaroa only supports Linux and Solaris.
9.9.2.PCAP
The optional Pcap library allows simulation models to capture and transmit network
packets bypassing the operating systems protocol stack. It is not used directly by
34
Generic Unix
OMNeT++, but OMNeT++ detects the necessary compiler and linker options for
models in case they need it.
35
Chapter10.Build Options
10.1.Configure.user Options
The configure.user file contains several options that can be used to fine-tune the
simulation libraries.
You always need to re-run the configure script in the installation root after changing
the configure.user file.
$ ./configure
After this step, you have to remove all previous libraries and recompile OMNeT++:
$ make cleanall
$ make
Options:
PREFER_CLANG=yes
USE_CXX11=yes
<COMPONENTNAME>_CFLAGS,
<COMPONENTNAME>_LIBS
WITH_PARSIM=no
WITH_NETBUILDER=no
WITH_TKENV=no
36
Build Options
WITH_QTENV=no
QT_VERSION=4
PREFER_QTENV=yes
EMBED_TCL_CODE=no
CFLAGS_[RELEASE/DEBUG]
LDFLAGS
SHARED_LIBS
37
Build Options
OMNETPP_TKENV_DIR
LD_LIBRARY_PATH
38
Build Options
IBM compiler (xlc, xlC)
If you want to use compilers other than the above ones, you should specify the compiler
name in the CC and CXX variables, and re-run the configuration script.
Different compilers may have different command line options. If you use a compiler
other than the default gcc, you may have to revise the CFLAGS_[RELEASE/DEBUG]
and LDFLAGS variables.
39