X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=doc%2Frrdbuild.txt;fp=doc%2Frrdbuild.txt;h=e825521189917fc368ee17841b964ef1139e935e;hb=412b079ae92adc47a82bfc6a27de37a537420a26;hp=d63f1396ae32288cb117ceb27afbeac8f5fad306;hpb=5ae9312d35bd9931a761a15cbf1e8effe2e7b5d4;p=pkg-rrdtool.git diff --git a/doc/rrdbuild.txt b/doc/rrdbuild.txt index d63f139..e825521 100644 --- a/doc/rrdbuild.txt +++ b/doc/rrdbuild.txt @@ -5,9 +5,7 @@ RRDBUILD(1) rrdtool RRDBUILD(1) NNAAMMEE rrdbuild - Instructions for building RRDtool -DDEESSCCRRIIPPTTIIOONN - OOvveerrvviieeww - +OOVVEERRVVIIEEWW If you downloaded the source of rrdtool you have to compile it. This document will give some information on how this is done. @@ -17,8 +15,16 @@ DDEESSCCRRIIPPTTIIOONN This document will tell you about all the necessary steps to get going. - BBuuiillddiinngg + These instructions assume you are using a bbaasshh shell. If you use + csh/tcsh, then you can either type _b_a_s_h to switch to bash for the com- + pilation or if you know what you are doing just replace the export bits + with setenv. + + We further assume that your copies of ttaarr and mmaakkee are actually GGNNUU ttaarr + and GGNNUU mmaakkee respectively. It could be that they are installed as ggttaarr + and ggmmaakkee on your system. +OOPPTTIIMMIISSTTIICC BBUUIILLDD Before you start to build RRDtool, you have to decide two things: 1. In which directory you want to build the software. @@ -26,16 +32,10 @@ DDEESSCCRRIIPPTTIIOONN 2. Where you want to install the software. Once you have decided. Save the two locations into environment vari- - ables. Depending on the shell you are using, you can do either - (bash,zsh): + ables. BUILD_DIR=/tmp/rrdbuild - INSTALL_DIR=/usr/local/rrdtool-1.2.27 - - Or if you run tcsh: - - set BUILD_DIR=/tmp/rrdbuild - set INSTALL_DIR=/usr/local/rrdtool-1.2.27 + INSTALL_DIR=/usr/local/rrdtool-1.3rc4 If your _/_t_m_p is mounted with the option noexec (RHEL seems todo that) you have to choose a different directory! @@ -46,24 +46,52 @@ DDEESSCCRRIIPPTTIIOONN cd $BUILD_DIR Lets first assume you already have all the necessary libraries - pre-installed. Note that these instructions assume that your copies of - ttaarr and mmaakkee are actually GGNNUU ttaarr and GGNNUU mmaakkee respectively. It could - be that they are installed as ggttaarr and ggmmaakkee on your system. + pre-installed. - wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz - tar zxf rrdtool-1.2.27.tar.gz - cd rrdtool-1.2.27 + wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3rc4.tar.gz + gunzip -c rrdtool-1.3rc4.tar.gz | tar xf - + cd rrdtool-1.3rc4 ./configure --prefix=$INSTALL_DIR && make && make install Ok, this was very optimistic. This try will probably have ended with - ccoonnffiigguurree complaining about several missing libraries. If you are on a - Linux or *bsd system you may want to just install the missing bits from - your software repository. When you do that, make sure you also get the - --ddeevv package for each library you install. Once you have the missing - bits on board, just re-run the last line of the instructions above. + ccoonnffiigguurree complaining about several missing libraries. + +IINNSSTTAALLLLIINNGG DDEEPPEENNDDEENNCCIIEESS + If your OS lets you install additional packages from a software reposi- + tory, you may get away with installing the missing packages. When the + packages are installed, run configure again and try to compile again. + Below you find some hints on getting your OS ready for the rrdtool com- + pilation. Additions to this list are welcome. + + OOppeennSSoollaarriiss 22000088..0055 + + Just add a compiler and the gnome development package: + + pkg install sunstudioexpress + pkg install SUNWgnome-common-devel - But again this may have been too optimistic, and you actually have to - compile your own copies of the required libraries. + There is a a problem with _c_a_i_r_o_._p_c on opensolaris. It suggests that + xrender is required for compilation with cairo. This is not true and + also bad since opensolaris does not include an _x_r_e_n_d_e_r_._p_c file. Use + perl to fix this: + + perl -i~ -p -e 's/(Requires.*?)\s*xrender.*/$1/' /usr/lib/pkgconfig/cairo.pc + + DDeebbiiaann // UUbbuunnttuu + + Use apt-get to make sure you have all that is required. A number of + packages will get added through dependencies. + + apt-get install libpango1.0-dev libxml2-dev + +BBUUIILLDDIINNGG DDEEPPEENNDDEENNCCIIEESS + But again this may have been too optimistic still, and you actually + have to compile your own copies of some of the required libraries. + Things like libpng and zlib are pretty standard so you will probably + have them on your system anyway. Freetype, Fontinst, Cairo, Pango may + be installed, but it is possible that they are pretty old and thus + don't live up to the expectations, so you may want to compile their + latest versions. _B_u_i_l_d _T_i_p_p_s _f_o_r _A_I_X @@ -91,14 +119,51 @@ DDEESSCCRRIIPPTTIIOONN Sun Forte CFLAGS="-xO3 -kPIC" + Some libraries want to know where other libraries are. For this to + work, set the following environamen variable + + export PKG_CONFIG_PATH=${INSTALL_DIR}/lib/pkgconfig + export PATH=$INSTALL_DIR/bin:$PATH + + Since we are compiling libraries dynamically, you they must further + know where to find each other. This is done by setting an appropri- + ate LDFLAG. Unfortunatly the syntax differs from system to system: + + Solaris + export LDFLAGS=-R${INSTALL_DIR}/lib + + Linux + export LDFLAGS="-Wl,--rpath -Wl,${INSTALL_DIR}/lib" + + If you are on a 64bit platform, but would like to continue to + use the rrd files created on your old 32bit linux, you may be + able + + HPUX + export LDFLAGS="+b${INSTALL_DIR}/lib" + + AIX + export LDFLAGS="-Wl,-blibpath:${INSTALL_DIR}/lib" + + If you have GNUmake installed and it is not called 'make', then do + + export MAKE=gmake + export GNUMAKE=gmake + + otherwhise just do + + export MAKE=make + Building zlib + Chances are very high that you already have that on your system ... + cd $BUILD_DIR wget http://oss.oetiker.ch/rrdtool/pub/libs/zlib-1.2.3.tar.gz - tar zxf zlib-1.2.3.tar.gz + gunzip -c zlib-1.2.3.tar.gz | tar xf - cd zlib-1.2.3 - env CFLAGS="-O3 -fPIC" ./configure --prefix=$BUILD_DIR/lb - make - make install + ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" --shared + $MAKE + $MAKE install Building libpng Libpng itself requires zlib to build, so we need to help a bit. If @@ -108,74 +173,106 @@ DDEESSCCRRIIPPTTIIOONN are on one line. cd $BUILD_DIR - wget http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.10.tar.gz - tar zxvf libpng-1.2.10.tar.gz + wget http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.18.tar.gz + gunzip -c libpng-1.2.18.tar.gz | tar xf - 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 - make install + env CFLAGS="-O3 -fPIC" ./configure --prefix=$INSTALL_DIR + $MAKE + $MAKE install Building freetype cd $BUILD_DIR - 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 + wget http://oss.oetiker.ch/rrdtool/pub/libs/freetype-2.3.5.tar.gz + gunzip -c freetype-2.3.5.tar.gz | tar xf - + cd freetype-2.3.5 + ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" + $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: + to try to add the following at the start the configure line: - GNUMAKE=gmake EGREP=egrep + env EGREP=egrep + + Building LibXML2 + cd $BUILD_DIR + wget http://oss.oetiker.ch/rrdtool/pub/libs/libxml2-sources-2.6.31.tar.gz + gunzip -c libxml2-sources-2.6.32.tar.gz | tar xf - + cd libxml2-sources-2.6.32 + ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" + $MAKE + $MAKE install + + 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. - Building libart_lgpl cd $BUILD_DIR - 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 - make install - - Now all the dependent libraries are built and you can try again. Since - these are static libraries, you may have to use _r_a_n_l_i_b to make them - accessible. Especially BSD systems like Mac OS X may require this, - Linux and Solaris will do just fine without since their _a_r 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" - setenv LDFLAGS -L$BUILD_DIR/lb/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" - CFLAGS=-O3 - export CPPFLAGS LDFLAGS CFLAGS + wget http://oss.oetiker.ch/rrdtool/pub/libs/fontconfig-2.4.2.tar.gz + gunzip -c fontconfig-2.4.2.tar.gz | tar xf - + cd fontconfig-2.4.2 + ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" + $MAKE + $MAKE install + + Building Pixman + cd $BUILD_DIR + wget http://oss.oetiker.ch/rrdtool/pub/libs/pixman-0.10.0.tar.gz + gunzip -c pixman-0.10.0.tar.gz | tar xf - + cd fontconfig-2.4.2 + ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" + $MAKE + $MAKE install + + Building Cairo + cd $BUILD_DIR + wget http://oss.oetiker.ch/rrdtool/pub/libs/cairo-1.6.4.tar.gz + gunzip -c cairo-1.4.10.tar.gz | tar xf - + cd cairo-1.4.10 + ./configure --prefix=$INSTALL_DIR \ + --enable-xlib=no \ + --enable-xlib-render=no \ + --enable-win32=no \ + CFLAGS="-O3 -fPIC" + $MAKE + $MAKE install + + Building Glib + cd $BUILD_DIR + wget http://oss.oetiker.ch/rrdtool/pub/libs/glib-2.15.4.tar.gz + gunzip -c glib-2.12.13.tar.gz | tar xf - + cd glib-2.12.13 + ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" + $MAKE + $MAKE install + + Building Pango + cd $BUILD_DIR + wget http://oss.oetiker.ch/rrdtool/pub/libs/pango-1.21.1.tar.gz + gunzip -c pango-1.21.1.tar.gz | tar xf - + cd pango-1.21.1 + ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" --without-x + $MAKE + $MAKE install + + 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. 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. - cd $BUILD_DIR/rrdtool-1.2.27 - ./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl - make clean - make - make install + cd $BUILD_DIR/rrdtool-1.3rc4 + ./configure --prefix=$INSTALL_DIR --disable-tcl --disable-python + $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 @@ -190,4 +287,4 @@ AAUUTTHHOORR -1.2.27 2008-02-17 RRDBUILD(1) +1.3rc4 2008-05-18 RRDBUILD(1)