X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=doc%2Frrdbuild.pod;h=9ca238bd7e3c0e499cca302e8268d4a6546fc8c6;hb=b7cb7376650646206c261b3d4653221ab46cba1f;hp=b2dfba2e60f2d3929d0a28899526910298c06b27;hpb=be67fb36af7b40e2cb388a4d8a1f3cc0bdba90b2;p=rrdtool.git diff --git a/doc/rrdbuild.pod b/doc/rrdbuild.pod index b2dfba2..9ca238b 100644 --- a/doc/rrdbuild.pod +++ b/doc/rrdbuild.pod @@ -35,12 +35,15 @@ 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.11 + INSTALL_DIR=/usr/local/rrdtool-1.2.99907080300 Or if you run tcsh: set BUILD_DIR=/tmp/rrdbuild - set INSTALL_DIR=/usr/local/rrdtool-1.2.11 + set INSTALL_DIR=/usr/local/rrdtool-1.2.99907080300 + +If your F 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: @@ -48,13 +51,13 @@ 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 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.11.tar.gz - tar zxf rrdtool-1.2.11.tar.gz - cd rrdtool-1.2.11 + wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.99907080300.tar.gz + tar zxf rrdtool-1.2.99907080300.tar.gz + cd rrdtool-1.2.99907080300 ./configure --prefix=$INSTALL_DIR && make && make install Ok, this was very optimistic. This try will probably have ended with @@ -65,17 +68,57 @@ package for each library you install. Once you have the missing bits on 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 Sun Forte + + CFLAGS="-xO3 -kPIC" + +=back + +=over + +Some libraries want to know where other libraries are. For this to work, +set the following environamen variable + + export PKG_CONFIG_PATH=${INSTALLDIR}/lib/pkgconfig + +or in tcsh + + setenv PKG_CONFIG_PATH ${INSTALLDIR}/lib/pkgconfig + =item Building zlib +Chances are very high that you already have that on your system ... + 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=$BUILD_DIR/lb + 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=$INSTALL_DIR make make install @@ -87,22 +130,21 @@ 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$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \ - ./configure --disable-shared --prefix=$BUILD_DIR/lb + wget http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.18.tar.gz + tar zxvf libpng-1.2.18.tar.gz + cd libpng-1.2.10 + env CFLAGS="-O3 -fPIC" ./configure --prefix=$INSTALL_DIR make make install =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$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \ - ./configure --disable-shared --prefix=$BUILD_DIR/lb + wget http://oss.oetiker.ch/rrdtool/pub/libs/freetype-2.3.5.tar.gz + tar zxvf freetype-2.3.5.tar.gz + cd freetype-2.3.5 + env CFLAGS="-O3 -fPIC" \ + ./configure --prefix=$INSTALL_DIR make make install @@ -111,40 +153,70 @@ add the following at the end of the configure line: GNUMAKE=gmake EGREP=egrep -=item Building libart_lgpl +=item Building fontconfig + +Note that fontconfig has a runtime configuration file in INSTALL_DIR/etc you +may want to adjust that so that fontconfig finds the fonts on your system. +Run the fc-cache program to build the fontconfig cache after changeing the +config file. 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=$BUILD_DIR/lb + wget http://oss.oetiker.ch/rrdtool/pub/libs/fontconfig-2.4.2.tar.gz + tar zxvf fontconfig-2.4.2.tar.gz + cd fontconfig-2.4.2 + env CFLAGS="-O3 -fPIC" ./configure --prefix=$INSTALL_DIR make make install -=back +=item Building Cairo -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. + cd $BUILD_DIR + wget http://oss.oetiker.ch/rrdtool/pub/libs/cairo-1.4.10.tar.gz + tar zxvf cairo-1.4.10.tar.gz + cd cairo-1.4.10 + env CFLAGS="-O3 -fPIC" ./configure --prefix=$INSTALL_DIR \ + --enable-xlib=no \ + --enable-xlib-render=no \ + --enable-win32=no + make + make install - ranlib $BUILD_DIR/lb/lib/*.a +=item Building Glib + + cd $BUILD_DIR + wget http://oss.oetiker.ch/rrdtool/pub/libs/glib-2.12.13.tar.gz + tar zxvf glib-2.12.13.tar.gz + cd glib-2.12.13 + env CFLAGS="-O3 -fPIC" ./configure --prefix=$INSTALL_DIR + make + make install -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: +=item Building Pango - set IR=-I$BUILD_DIR/lb/include - setenv CPPFLAGS "$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng" - setenv LDFLAGS -L$BUILD_DIR/lb/lib + cd $BUILD_DIR + wget http://oss.oetiker.ch/rrdtool/pub/libs/pango-1.17.5.tar.gz + tar zxvf pango-1.17.5.tar.gz + cd pango-1.17.5 + env CFLAGS="-O3 -fPIC" ./configure --prefix=$INSTALL_DIR + make + make install + +=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 shell you +are running, the syntax for setting environment variables is different. +Under csh/tcsh you use: + + setenv CPPFLAGS -I$INSTALL_DIR/include + setenv LDFLAGS "-L$INSTALL_DIR/lib -R$INSTALL_DIR/lib" setenv CFLAGS -O3 If you are running bash/sh/ash/ksh/zsh use this: - IR=-I$BUILD_DIR/lb/include - CPPFLAGS="$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng" - LDFLAGS="-L$BUILD_DIR/lb/lib" + CPPFLAGS=-I$INSTALL_DIR/include + LDFLAGS="-R$INSTALL_DIR/lib -L$INSTALL_DIR/lib" CFLAGS=-O3 export CPPFLAGS LDFLAGS CFLAGS @@ -153,16 +225,21 @@ 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. - cd $BUILD_DIR/rrdtool-1.2.11 - ./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl + cd $BUILD_DIR/rrdtool-1.2.99907080300 + ./configure --prefix=$INSTALL_DIR --disable-tcl --disable-python make clean make make install -Now go to I<$INSTALL_DIR>B and run them to see if your -build has been successful. +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 and run them to see if +your build has been successful. =head1 AUTHOR -Tobias Oetiker Eoetiker@ee.ethz.chE +Tobias Oetiker Etobi@oetiker.chE