X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=doc%2Frrdbuild.pod;h=3aed7080b340edba2c5910e8d370b5f46dace4d3;hp=142b359368639a6a4d90e7e865b2943a5433a67b;hb=2e0426189bddf9165a3e7e6b66cf563d5a979d4c;hpb=96db36a7a6ff75d2fc1353e45434a7f6b1db801b diff --git a/doc/rrdbuild.pod b/doc/rrdbuild.pod index 142b359..3aed708 100644 --- a/doc/rrdbuild.pod +++ b/doc/rrdbuild.pod @@ -17,15 +17,45 @@ This document will tell you about all the necessary steps to get going. =head2 Building +Before you start to build RRDtool, you have to decide two things: + +=over + +=item 1. + +In which directory you want to build the software. + +=item 2. + +Where you want to install the software. + +=back + +Once you have decided. Save the two locations into environment variables. +Depending on the shell you are using, you can do either (bash,zsh): + + BUILD_DIR=/tmp/rrdbuild + INSTALL_DIR=/usr/local/rrdtool-1.2.9 + +Or if you run tcsh: + + set BUILD_DIR=/tmp/rrdbuild + set INSTALL_DIR=/usr/local/rrdtool-1.2.9 + +Now make sure the BUILD_DIR exists and go there: + + mkdir -p $BUILD_DIR + cd $BUILD_DIR + Lets first assume you already have all the necessary libraries per-installed. Note that these instructions assume that your copies of B and B are actually B and B respectively. It could be that they are installed as B and B on your system. - wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/rrdtool-1.2.7 - tar zxf rrdtool-1.2.7 - cd rrdtool-1.2.7 - ./configure --prefix=/path/to/installation && make && make install + wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/rrdtool-1.2.9.tar.gz + tar zxf rrdtool-1.2.9.tar.gz + cd rrdtool-1.2.9 + ./configure --prefix=$INSTALL_DIR && make && make install Ok, this was very optimistic. This try will probably have ended with B complaining about several missing libraries. If you are on a @@ -41,25 +71,32 @@ compile your own copies of the required libraries. Here is how: =item Building cgilib + 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 + +If you are on Mac OSX you want to fix a little header problem here by doing + + touch malloc.h + +and now you are ready to build + make CC=gcc CFLAGS="-O3 -fPIC -I." - mkdir -p ../lb/include - cp *.h ../lb/include - mkdir -p ../lb/lib - cp libcgi* ../lb/lib - cd .. + mkdir -p $BUILD_DIR/lb/include + cp *.h $BUILD_DIR/lb/include + mkdir -p $BUILD_DIR/lb/lib + cp libcgi* $BUILD_DIR/lb/lib =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 - env CFLAGS="-O3 -fPIC" ./configure --prefix=`pwd`/../lb - make + env CFLAGS="-O3 -fPIC" ./configure --prefix=$BUILD_DIR/lb + make make install - cd .. =item Building libpng @@ -68,58 +105,72 @@ already have a copy of zlib on your system (which is very likley) you can drop the settings of LDFLAGS and CPPFLAGS. Note that the backslash (\) at 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 - env CPPFLAGS="-I../lb/include" LDFLAGS="-L../lb/lib" CFLAGS="-O3 -fPIC" \ - ./configure --disable-shared --prefix=`pwd`/../lb + 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 - cd .. =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 - env CPPFLAGS="-I../lb/include" LDFLAGS="-L../lb/lib" CFLAGS="-O3 -fPIC" \ - ./configure --disable-shared --prefix=`pwd`/../lb + 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 - cd .. =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 + tar zxvf libart_lgpl-2.3.17.tar.gz cd libart_lgpl-2.3.17 - env CFLAGS="-O3 -fPIC" ./configure --disable-shared --prefix=`pwd`/../lb + env CFLAGS="-O3 -fPIC" ./configure --disable-shared --prefix=$BUILD_DIR/lb + make make install - cd .. =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 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 command does ranlibs job as well. - set IR=-I`pwd`/lb/include + 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" - setenv LDFLAGS -L`pwd`/lb/lib + setenv LDFLAGS -L$BUILD_DIR/lb/lib setenv CFLAGS -O3 If you are running bash/sh/ash/ksh/zsh use this: - IR=-I`pwd`/lb/include + IR=-I$BUILD_DIR/lb/include CPPFLAGS="$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng" - LDFLAGS="-L`pwd`/lb/lib" + LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS=-O3 export CPPFLAGS LDFLAGS CFLAGS -And finally try building again: - - ./configure --prefix=/path/to/installation && make && make install +And finally try building again. We disable the python bindings because it +seems that a fair number of people have ill configured python setups that +would prevent rrdtool from building if they are included in their current +state. + + cd $BUILD_DIR/rrdtool-1.2.9 + ./configure --prefix=$INSTALL_DIR --disable-python && make clean && make && make install -Now go to IB and run them to see if your +Now go to I<$INSTALL_DIR>B and run them to see if your build has been successful. =head1 AUTHOR