An Overlay-based
Virtual Network Substrate
SpoVNet

source: INSTALL @ 10642

Last change on this file since 10642 was 10642, checked in by s_taenzer@…, 6 years ago

Testing commit access

File size: 6.8 KB
Line 
1Please see the latest Installation instructions on http://ariba-underlay.org/
2here: http://ariba-underlay.org/trac/spovnet-base/wiki/BaseInstall
3
4Please see also http://spovnet.de/ for further information
5about Ariba and its application.
6
7Prerequisites
8=============
9ariba depends on libraries that may not be installed on your system:
10
11    * Boost (version >=1.39)
12    * Log4cxx (version >= 0.10.0)
13    * GMP (no specific version)
14
15Furthermore, you need default development tools - that are most likely already installed on your system - such as
16gcc/g++, autoconf, automake, aclocal, libtool, liblt-dev ...
17
18Quick Install (If all dependencies are satisfied)
19=============
20
21ariba currently build on Linux systems. Our reference platform is
22Ubuntu 8.04 with the g++ compiler version 4.1. However, latest
23Ubuntu releases should work, too. Download the latest
24ariba package from the the download site
25http://ariba-underlay.org/downloads
26or get the latest trunk code:
27svn co https://svn.tm.kit.edu/SpoVNet-KA/entwicklung/ariba/trunk ariba-trunk
28
29Extract the archive and change into the project directory:
30
31> tar xfz ./ariba-x.x.x.tar.gz
32> cd ariba-x.x.x
33
34For SVN checkout you have to
35> cd ariba-trunk
36
37Now, configure, compile, and install ariba (if not all libraries
38needed by Ariba are available on your system, read the section
39'Prequisites').
40
41If no configure script is available (e.g. when you checked out an svn
42version), run the ./bootstrap script first and then type:
43
44> ./configure
45> make
46> make install
47
48HINT: you may use
49> make -j 2
50for a double processor/core system to speed up the compilation,
51make -j 4 if you have quad-core respectively, and so on. If
52the compilation stops, try make without the -j option again.
53
54
55In case you don't want to install Ariba into your system but to a
56local place, do:
57
58> mkdir build
59> ./configure --prefix=$PWD/build
60> make
61> make install
62
63
64Local install (Download library dependencies and install ariba in a
65=============  local subdirectory)
66
67
68If the required libraries are not available on your system or don't
69want to install them to the system you can use the bootstrap_libs
70script that comes with the ariba package. It will download all
71dependencies, compile and install them locally, and compile and
72install ariba:
73
74> tar xfz ./ariba-x.x.x.tar.gz
75> cd ariba-x.x.x
76> ./bootstrap_libs
77
78This script will automatically download all necessary libraries and
79compile them inside a new ./libs subdirectory and install them into
80./build. In the end the ariba library itself is compiled to
81./build. You can safely delete the ./libs subdirectory after the
82process.
83
84Here is the manual way to go: If you install Ariba locally and have
85the required libraries also installed locally, you can use a
86config.site script to make it easier. The config.site file must reside
87in a folder called share. If your install path is /home/foo/local and
88you do a ./configure --prefix=/home/foo/local, ariba headers will be
89installed in /home/foo/local/include, and the ariba library in
90/home/foo/local/lib. To use a config.site script, create a folder
91/home/foo/local/share and create a file config.site. Such a file has
92paths towards required header files and libraries.
93
94with_boost=/home/foo/Libraries/include
95test -z "$CPPFLAGS" && CPPFLAGS='-I/home/foo/Libraries/include'
96test -z "$LDFLAGS" && LDFLAGS='-L/home/foo/Libraries/lib'
97
98If you now do a ./configure --prefix=/home/foo/local, the config.site
99will be found and the paths therein used for finding libraries. If you
100e.g. have multiple libraries distributed in their own include folders,
101you can also have multiple includes:
102
103test -z "$CPPFLAGS" && CPPFLAGS='-I/home/foo/Libraries/include -I/home/foo/otherlibrary/include'
104
105Running the PingPong Sample
106===========================
107The PingPong binary pingpong is installed in build/bin. It has one
108parameter, a configuration file. You can find sample configuration
109files in the etc/pingpongconfig folder. If no configuration file is
110given, the node will randomly select its NodeID but will not find
111other nodes. This is because bootstrap modules are selected in the
112configuration file.
113
114> ./pingpong ../../etc/pingpong/settings_node1.cnf
115
116If this fails to find the libariba you may have to set
117the LD_LIBRARY_PATH correctly in your current terminal,
118or better add it to your .bashrc
119
120> export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/ariba/build/lib
121
122When running the pingpong application it will output a large number of
123log messages and the initiator will wait for other nodes to join. You
124can start them using the configuration files settings_node1.cnf and
125settings_node2.cnf. You may need to adjust the configurations files:
126currently both node1 and node2 try to join the initiator on the local
127machine. This will only work if you start all instances on a local
128machine.
129
130Once the PingPong sample is running and the nodes have connected, each
131node will send out ping messages to every node he knows in the overlay
132structure every 5 seconds. You can now e.g. test mobility of Ariba and
133change the IP address of a node, or swith from LAN connection to
134WLAN. The links established by the PingPong sample through Ariba are
135mobility invariant and automatically repaired.  Selecting a compiler
136
137As the g++-4.3 compiler is very restrictive when compiling C++ and you
138will have some trouble with Boost and Log4cxx, we suggest to use
139e.g. g++-4.1. You then have to compile the libraries and Ariba with
140this compiler. You can tell Log4cxx and Ariba to use a different
141compiler using:
142
143./configure --prefix=... CXX=g++-4.1
144
145This will not work in Boost as the configure script is just a wrapper around the Boost Build.System bjam. You can edit the jamfile in the Boost root directory:
146
147using gcc : 4.1 ;
148
149and then build using bjam as described in http://www.boost.org/doc/libs/1_38_0/more/getting_started/unix-variants.html.
150
151Cross-Comiling for Maemo
152========================
153Ariba runs on Nokia Maemo 4 (tested) and probably Maemo 5. We have
154tested Ariba on an N810 device. Cross-Compiling is done using
155Scratchbox. Use the preassembled Scratchbox version provided by Nokia
156which will install and configure the complete Scratchbox system
157automatically.
158
159The Ariba configure will test for Maemo systems. Internally there are
160a number of special cases where handling on Maemo is different from
161normal Linux. If you require special handling, do the following in
162your code:
163
164#include "ariba/config.h"
165...
166#ifdef HAVE_MAEMO
167 // special Maemo handling
168#endif
169
170Overview of special configure options
171=====================================
172There are several options to configure that are specific to Ariba:
173
174    * --enable-debug=yes - for building a debug build
175    * --enable-profiling=yes - for profiling with gprof
176    * --enable-logcolors=yes - for colorful logging output
177    * --enable-doxygen=yes - for generating doxygen documentation (do a make html-local in ariba/docu/doxygen)
178
Note: See TracBrowser for help on using the repository browser.