diff --git a/doc/rrdbuild.pod b/doc/rrdbuild.pod
index a7cf9e6ae3d77fbcbd48cf0e4e7f79d4e24529c2..593b7e980583743312af66a324aa6b94d062d4f7 100644 (file)
--- a/doc/rrdbuild.pod
+++ b/doc/rrdbuild.pod
Depending on the shell you are using, you can do either (bash,zsh):
BUILD_DIR=/tmp/rrdbuild
- INSTALL_DIR=/usr/local/rrdtool-1.2.8
+ INSTALL_DIR=/usr/local/rrdtool-1.2.22
Or if you run tcsh:
set BUILD_DIR=/tmp/rrdbuild
- set INSTALL_DIR=/usr/local/rrdtool-1.2.8
+ set INSTALL_DIR=/usr/local/rrdtool-1.2.22
+
+If your F</tmp> is mounted with the option noexec (RHEL seems todo that) you have to choose
+a different directory!
Now make sure the BUILD_DIR exists and go there:
cd $BUILD_DIR
Lets first assume you already have all the necessary libraries
-per-installed. Note that these instructions assume that your copies of
+pre-installed. Note that these instructions assume that your copies of
B<tar> and B<make> are actually B<GNU tar> and B<GNU make> respectively. It
could be that they are installed as B<gtar> and B<gmake> on your system.
- wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/rrdtool-1.2.8.tar.gz
- tar zxf rrdtool-1.2.8.tar.gz
- cd rrdtool-1.2.8
- ./configure --prefix=/path/to/installation && make && make install
+ wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.22.tar.gz
+ tar zxf rrdtool-1.2.22.tar.gz
+ cd rrdtool-1.2.22
+ ./configure --prefix=$INSTALL_DIR && make && make install
Ok, this was very optimistic. This try will probably have ended with
B<configure> complaining about several missing libraries. If you are on a
board, just re-run the last line of the instructions above.
But again this may have been too optimistic, and you actually have to
-compile your own copies of the required libraries. Here is how:
+compile your own copies of the required libraries.
+
+=head3 Build Tipps for AIX
+
+If you are woking with AIX, you may find the the B<--disable-shared> option
+will cause things to break for you. In that case you may have to install the
+shared libraries into the rrdtool PREFIX and work with B<--disable-static>
+instead.
+
+Another hint to get rrdtool working on AIX is to use the IBM XL C Compiler:
+
+ export CC=/usr/vac/bin/cc
+ export PERLCC=$CC
+
+(Better instructions for AIX welcome!)
+
+=head2 Building Libraries
+
+In order to build the libraries you need a compiler on your system.
+Unfortunately compilers are not all alike. This has an effect on the CFLAGS
+you want to set. The examples below are for the popular GCC compiler suite.
+If you have an other compile you have to use the following settings:
=over
-=item Building cgilib
+=item Sun Forte
- cd $BUILD_DIR
- wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/cgilib-0.5.tar.gz
- tar zxf cgilib-0.5.tar.gz
- cd cgilib-0.5
- make CC=gcc CFLAGS="-O3 -fPIC -I."
- mkdir -p $BUILD_DIR/lb/include
- cp *.h $BUILD_DIR/lb/include
- mkdir -p $BUILD_DIR/lb/lib
- cp libcgi* $BUILD_DIR/lb/lib
+ CFLAGS="-xO3 -kPIC"
+
+=back
+
+=over
=item Building zlib
cd $BUILD_DIR
- wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/zlib-1.2.2.tar.gz
- tar zxf zlib-1.2.2.tar.gz
- cd zlib-1.2.2
+ wget http://oss.oetiker.ch/rrdtool/pub/libs/zlib-1.2.3.tar.gz
+ tar zxf zlib-1.2.3.tar.gz
+ cd zlib-1.2.3
env CFLAGS="-O3 -fPIC" ./configure --prefix=$BUILD_DIR/lb
make
make install
the end of line 4 means that line 4 and line 5 are on one line.
cd $BUILD_DIR
- wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/libpng-1.2.8-config.tar.gz
- tar zxvf libpng-1.2.8-config.tar.gz
- cd libpng-1.2.8-config
+ wget http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.10.tar.gz
+ tar zxvf libpng-1.2.10.tar.gz
+ cd libpng-1.2.10
env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \
./configure --disable-shared --prefix=$BUILD_DIR/lb
make
=item Building freetype
cd $BUILD_DIR
- wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/freetype-2.1.9.tar.gz
- tar zxvf freetype-2.1.9.tar.gz
- cd freetype-2.1.9
+ wget http://oss.oetiker.ch/rrdtool/pub/libs/freetype-2.1.10.tar.bz2
+ tar jxvf freetype-2.1.10.tar.bz2
+ cd freetype-2.1.10
env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \
./configure --disable-shared --prefix=$BUILD_DIR/lb
make
make install
+If you run into problems building freetype on Solaris, you may want to try to
+add the following at the end of the configure line:
+
+ GNUMAKE=gmake EGREP=egrep
=item Building libart_lgpl
cd $BUILD_DIR
- wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/libart_lgpl-2.3.17.tar.gz
+ wget http://oss.oetiker.ch/rrdtool/pub/libs/libart_lgpl-2.3.17.tar.gz
+ tar zxvf libart_lgpl-2.3.17.tar.gz
cd libart_lgpl-2.3.17
env CFLAGS="-O3 -fPIC" ./configure --disable-shared --prefix=$BUILD_DIR/lb
make
=back
-Now all the dependent libraries are built and you can try again. This time
-you tell configure where it should be looking for libraries and include
-files. This is done via environment variables. Depending on the shellyou are running, the syntax for setting
-environment variables is different. Under csh/tcsh you use:
+Now all the dependent libraries are built and you can try again. Since these
+are static libraries, you may have to use F<ranlib> to make them accessible.
+Especially BSD systems like Mac OS X may require this, Linux and Solaris
+will do just fine without since their F<ar> command does ranlibs job as well.
+
+ ranlib $BUILD_DIR/lb/lib/*.a
+
+This time you tell configure where it should be looking for libraries and
+include files. This is done via environment variables. Depending on the
+shell you are running, the syntax for setting environment variables is
+different. Under csh/tcsh you use:
set IR=-I$BUILD_DIR/lb/include
setenv CPPFLAGS "$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng"
CFLAGS=-O3
export CPPFLAGS LDFLAGS CFLAGS
-And finally try building again:
+And finally try building again. We disable the python and tcl bindings
+because it seems that a fair number of people have ill configured python and
+tcl setups that would prevent rrdtool from building if they are included in
+their current state.
- ./configure --prefix=$INSTALL_DIR && make && make install
+ cd $BUILD_DIR/rrdtool-1.2.22
+ ./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl
+ make clean
+ make
+ make install
+
+SOLARIS HINT: if you want to build the perl module for the native perl (the
+one shipping with solaris) you will need the sun forte compiler
+installed on your box or you have to hand-tune bindings/perl-shared/Makefile
+while building!
-Now go to I<$INSTALL_DIR>B</examples> and run them to see if your
+Now go to I<$INSTALL_DIR>B</share/rrdtool/examples/> and run them to see if your
build has been successful.
=head1 AUTHOR
-Tobias Oetiker E<lt>oetiker@ee.ethz.chE<gt>
+Tobias Oetiker E<lt>tobi@oetiker.chE<gt>