source: INSTALL@ 9636

Last change on this file since 9636 was 9636, checked in by bless, 14 years ago
  • filled the INSTALL file with meat
File size: 6.3 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. Download the latest
23ariba package from the the download site
24http://ariba-underlay.org/downloads
25
26Extract the archive and change into the project directory:
27
28> tar xfz ./ariba-x.x.x.tar.gz
29> cd ariba-x.x.x
30
31Now, configure, compile, and install ariba (if not all libraries
32needed by Ariba are available on your system, read the section
33'Prequisites').
34
35If no configure script is available (e.g. when you checked out an svn
36version), run the ./bootstrap script first.:
37
38> ./configure
39> make
40> make install
41
42In case you don't want to install Ariba into your system but to a
43local place, do:
44
45> mkdir build
46> ./configure --prefix=$PWD/build
47> make
48> make install
49
50
51Local install (Download library dependencies and install ariba in a
52============= local subdirectory)
53
54
55If the required libraries are not available on your system or don't
56want to install them to the system you can use the bootstrap_libs
57script that comes with the ariba package. It will download all
58dependencies, compile and install them locally, and compile and
59install ariba:
60
61> tar xfz ./ariba-x.x.x.tar.gz
62> cd ariba-x.x.x
63> ./bootstrap_libs
64
65This script will automatically download all necessary libraries and
66compile them inside a new ./libs subdirectory and install them into
67./build. In the end the ariba library itself is compiled to
68./build. You can safely delete the ./libs subdirectory after the
69process.
70
71Here is the manual way to go: If you install Ariba locally and have
72the required libraries also installed locally, you can use a
73config.site script to make it easier. The config.site file must reside
74in a folder called share. If your install path is /home/foo/local and
75you do a ./configure --prefix=/home/foo/local, ariba headers will be
76installed in /home/foo/local/include, and the ariba library in
77/home/foo/local/lib. To use a config.site script, create a folder
78/home/foo/local/share and create a file config.site. Such a file has
79paths towards required header files and libraries.
80
81with_boost=/home/foo/Libraries/include
82test -z "$CPPFLAGS" && CPPFLAGS='-I/home/foo/Libraries/include'
83test -z "$LDFLAGS" && LDFLAGS='-L/home/foo/Libraries/lib'
84
85If you now do a ./configure --prefix=/home/foo/local, the config.site
86will be found and the paths therein used for finding libraries. If you
87e.g. have multiple libraries distributed in their own include folders,
88you can also have multiple includes:
89
90test -z "$CPPFLAGS" && CPPFLAGS='-I/home/foo/Libraries/include -I/home/foo/otherlibrary/include'
91
92Running the PingPong Sample
93===========================
94The PingPong binary pingpong is installed in build/bin. It has one
95parameter, a configuration file. You can find sample configuration
96files in the etc/pingpongconfig folder. If no configuration file is
97given, the node will randomly select its NodeID but will not find
98other nodes. This is because bootstrap modules are selected in the
99configuration file.
100
101> ./pingpong ../../etc/pingpong/settings_node1.cnf
102
103If this will fail to find the libariba you may have to set the LD_LIBRARY_PATH correctly in your current terminal, or better add it to your .bashrc
104
105> export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/ariba/build/lib
106
107When running the pingpong application it will output a large number of
108log messages and the initiator will wait for other nodes to join. You
109can start them using the configuration files settings_node1.cnf and
110settings_node2.cnf. You may need to adjust the configurations files:
111currently both node1 and node2 try to join the initiator on the local
112machine. This will only work if you start all instances on a local
113machine.
114
115Once the PingPong sample is running and the nodes have connected, each
116node will send out ping messages to every node he knows in the overlay
117structure every 5 seconds. You can now e.g. test mobility of Ariba and
118change the IP address of a node, or swith from LAN connection to
119WLAN. The links established by the PingPong sample through Ariba are
120mobility invariant and automatically repaired. Selecting a compiler
121
122As the g++-4.3 compiler is very restrictive when compiling C++ and you
123will have some trouble with Boost and Log4cxx, we suggest to use
124e.g. g++-4.1. You then have to compile the libraries and Ariba with
125this compiler. You can tell Log4cxx and Ariba to use a different
126compiler using:
127
128./configure --prefix=... CXX=g++-4.1
129
130This 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:
131
132using gcc : 4.1 ;
133
134and then build using bjam as described in http://www.boost.org/doc/libs/1_38_0/more/getting_started/unix-variants.html.
135
136Cross-Comiling for Maemo
137========================
138Ariba runs on Nokia Maemo 4 (tested) and probably Maemo 5. We have
139tested Ariba on an N810 device. Cross-Compiling is done using
140Scratchbox. Use the preassembled Scratchbox version provided by Nokia
141which will install and configure the complete Scratchbox system
142automatically.
143
144The Ariba configure will test for Maemo systems. Internally there are
145a number of special cases where handling on Maemo is different from
146normal Linux. If you require special handling, do the following in
147your code:
148
149#include "ariba/config.h"
150...
151#ifdef HAVE_MAEMO
152 // special Maemo handling
153#endif
154
155Overview of special configure options
156=====================================
157There are several options to configure that are specific to Ariba:
158
159 * --enable-debug=yes - for building a debug build
160 * --enable-profiling=yes - for profiling with gprof
161 * --enable-logcolors=yes - for colorful logging output
162 * --enable-doxygen=yes - for generating doxygen documentation (do a make html-local in ariba/docu/doxygen)
Note: See TracBrowser for help on using the repository browser.