1 RRDBUILD(1) rrdtool RRDBUILD(1)
6 rrdbuild - Instructions for building RRDtool
9 If you downloaded the source of rrdtool you have to compile it. This
10 document will give some information on how this is done.
12 RRDtool relies on services of third part libraries. Some of these
13 libraries may already be installed on your system. You have to compile
14 copies of the other ones before you can build RRDtool.
16 This document will tell you about all the necessary steps to get going.
20 pilation or if you know what you are doing just replace the export bits
21 with setenv.
23 We further assume that your copies of t\bta\bar\br and m\bma\bak\bke\be are actually G\bGN\bNU\bU t\bta\bar\br
24 and G\bGN\bNU\bU m\bma\bak\bke\be respectively. It could be that they are installed as g\bgt\bta\bar\br
28 Before you start to build RRDtool, you have to decide two things:
30 1. In which directory you want to build the software.
32 2. Where you want to install the software.
34 Once you have decided. Save the two locations into environment vari-
35 ables.
37 BUILD_DIR=/tmp/rrdbuild
38 INSTALL_DIR=/usr/local/rrdtool-1.3.5
41 you have to choose a different directory!
43 Now make sure the BUILD_DIR exists and go there:
45 mkdir -p $BUILD_DIR
46 cd $BUILD_DIR
48 Lets first assume you already have all the necessary libraries
49 pre-installed.
51 wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3.5.tar.gz
52 gunzip -c rrdtool-1.3.5.tar.gz | tar xf -
53 cd rrdtool-1.3.5
54 ./configure --prefix=$INSTALL_DIR && make && make install
56 Ok, this was very optimistic. This try will probably have ended with
60 If your OS lets you install additional packages from a software reposi-
61 tory, you may get away with installing the missing packages. When the
62 packages are installed, run configure again and try to compile again.
63 Below you find some hints on getting your OS ready for the rrdtool com-
64 pilation.
66 Additions to this list are welcome.
70 Just add a compiler and the gnome development package:
72 pkg install sunstudioexpress
73 pkg install SUNWgnome-common-devel
76 der is required for compilation with cairo. This is not true and also
77 bad since opensolaris does not include an _\bx_\br_\be_\bn_\bd_\be_\br_\b._\bp_\bc file. Use perl to
78 fix this:
80 perl -i~ -p -e 's/(Requires.*?)\s*xrender.*/$1/' /usr/lib/pkgconfig/cairo.pc
82 Make sure rrdtool finds your new compiler
84 export PATH=/opt/SunStudioExpress/bin
86 Since there does not seem to ba a viable msgfmt tool on opensolaris
87 (short of installing it yourself). You have to call configure with the
89 --disable-libintl
91 option.
95 Use apt-get to make sure you have all that is required. A number of
96 packages will get added through dependencies.
98 apt-get install libpango1.0-dev libxml2-dev
104 system. The only thing you should care about are USE flags, which allow
105 you fine tune features rrdtool will be built with. Currently the fol-
106 lowing USE flags are available:
108 doc - install .html and .txt documentation
109 into /usr/share/doc/rrdtool-1.x.xx/
110 perl - build and install perl language bindings
111 python - build and install python language bindings
112 ruby - build and install ruby language bindings
113 tcl - build and install tcl language bindings
114 rrdcgi - build and install rrdcgi
116 After you've decided which USE flags you need, set them either in
117 _\bm_\ba_\bk_\be_\b._\bc_\bo_\bn_\bf or _\b/_\be_\bt_\bc_\b/_\bp_\bo_\br_\bt_\ba_\bg_\be_\b/_\bp_\ba_\bc_\bk_\ba_\bg_\be_\b._\bu_\bs_\be and finally run:
119 # emerge -va rrdtool
121 Take a look at Gentoo handbook for further details on how to manage USE
122 flags: http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2
125 But again this may have been too optimistic still, and you actually
126 have to compile your own copies of some of the required libraries.
127 Things like libpng and zlib are pretty standard so you will probably
128 have them on your system anyway. Freetype, Fontinst, Cairo, Pango may
129 be installed, but it is possible that they are pretty old and thus
130 don't live up to our expectations, so you may want to compile their
131 latest versions.
135 If you are working with AIX, you may find the the -\b--\b-d\bdi\bis\bsa\bab\bbl\ble\be-\b-s\bsh\bha\bar\bre\bed\bd
136 option will cause things to break for you. In that case you may have to
137 install the shared libraries into the rrdtool PREFIX and work with
140 Another hint to get rrdtool working on AIX is to use the IBM XL C Com-
141 piler:
143 export CC=/usr/vac/bin/cc
144 export PERLCC=$CC
146 (Better instructions for AIX welcome!)
150 Some libraries want to know where other libraries are. For this to
151 work, set the following environment variable
153 export PKG_CONFIG_PATH=${INSTALL_DIR}/lib/pkgconfig
154 export PATH=$INSTALL_DIR/bin:$PATH
157 find instructions on how to compile pkgconfig.
159 Since we are compiling libraries dynamically, they must know where to
160 find each other. This is done by setting an appropriate LDFLAGS. Unfor-
161 tunately, the syntax again differs from system to system:
163 Solaris
164 export LDFLAGS=-R${INSTALL_DIR}/lib
166 if you are using the Sun Studio/Forte compiler, you may also want
167 to set
169 CFLAGS="-xO3 -xcode=pic13" (SPARC)
170 CFLAGS="-xO3 -Kpic" (x86)
172 Linux
173 export LDFLAGS="-Wl,--rpath -Wl,${INSTALL_DIR}/lib"
175 HPUX
176 export LDFLAGS="+b${INSTALL_DIR}/lib"
178 AIX
179 export LDFLAGS="-Wl,-blibpath:${INSTALL_DIR}/lib"
181 If you have GNUmake installed and it is not called 'make', then do
183 export MAKE=gmake
184 export GNUMAKE=gmake
186 otherwise just do
188 export MAKE=make
192 As mentioned above, without pkgconfig the whole build process will be
193 lots of pain and suffering, so make sure you have a copy on your sys-
194 tem. If it is not available natively, here is how to compile it.
196 wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz
197 gunzip -c pkg-config-0.23.tar.gz | tar xf -
198 cd pkg-config-0.23
199 ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
200 $MAKE
201 $MAKE install
205 Chances are very high that you already have that on your system ...
207 cd $BUILD_DIR
208 wget http://oss.oetiker.ch/rrdtool/pub/libs/zlib-1.2.3.tar.gz
209 gunzip -c zlib-1.2.3.tar.gz | tar xf -
210 cd zlib-1.2.3
211 ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" --shared
212 $MAKE
213 $MAKE install
217 Libpng itself requires zlib to build, so we need to help a bit. If you
218 already have a copy of zlib on your system (which is very likely) you
219 can drop the settings of LDFLAGS and CPPFLAGS. Note that the backslash
220 (\) at the end of line 4 means that line 4 and line 5 are on one line.
222 cd $BUILD_DIR
223 wget http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.18.tar.gz
224 gunzip -c libpng-1.2.18.tar.gz | tar xf -
225 cd libpng-1.2.10
226 env CFLAGS="-O3 -fPIC" ./configure --prefix=$INSTALL_DIR
227 $MAKE
228 $MAKE install
232 cd $BUILD_DIR
233 wget http://oss.oetiker.ch/rrdtool/pub/libs/freetype-2.3.5.tar.gz
234 gunzip -c freetype-2.3.5.tar.gz | tar xf -
235 cd freetype-2.3.5
236 ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
237 $MAKE
238 $MAKE install
240 If you run into problems building freetype on Solaris, you may want to
241 try to add the following at the start the configure line:
243 env EGREP=egrep
247 cd $BUILD_DIR
248 wget http://oss.oetiker.ch/rrdtool/pub/libs/libxml2-sources-2.6.31.tar.gz
249 gunzip -c libxml2-sources-2.6.31.tar.gz | tar xf -
250 cd libxml2-sources-2.6.31
251 ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
252 $MAKE
253 $MAKE install
257 Note that fontconfig has a run time configuration file in
258 INSTALL_DIR/etc you may want to adjust that so that fontconfig finds
259 the fonts on your system. Run the fc-cache program to build the font-
260 config cache after changing the config file.
262 cd $BUILD_DIR
263 wget http://oss.oetiker.ch/rrdtool/pub/libs/fontconfig-2.4.2.tar.gz
264 gunzip -c fontconfig-2.4.2.tar.gz | tar xf -
265 cd fontconfig-2.4.2
266 ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
267 $MAKE
268 $MAKE install
272 cd $BUILD_DIR
273 wget http://oss.oetiker.ch/rrdtool/pub/libs/pixman-0.10.0.tar.gz
274 gunzip -c pixman-0.10.0.tar.gz | tar xf -
275 cd pixman-0.10.0
276 ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
277 $MAKE
278 $MAKE install
282 cd $BUILD_DIR
283 wget http://oss.oetiker.ch/rrdtool/pub/libs/cairo-1.6.4.tar.gz
284 gunzip -c cairo-1.6.4.tar.gz | tar xf -
285 cd cairo-1.4.10
286 ./configure --prefix=$INSTALL_DIR \
287 --enable-xlib=no \
288 --enable-xlib-render=no \
289 --enable-win32=no \
290 CFLAGS="-O3 -fPIC"
291 $MAKE
292 $MAKE install
296 cd $BUILD_DIR
297 wget http://oss.oetiker.ch/rrdtool/pub/libs/glib-2.15.4.tar.gz
298 gunzip -c glib-2.15.4.tar.gz | tar xf -
299 cd glib-2.15.4
300 ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
301 $MAKE
302 $MAKE install
306 cd $BUILD_DIR
307 wget http://oss.oetiker.ch/rrdtool/pub/libs/pango-1.21.1.tar.gz
308 gunzip -c pango-1.21.1.tar.gz | tar xf -
309 cd pango-1.21.1
310 ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" --without-x
311 $MAKE
312 $MAKE install
314 B\bBu\bui\bil\bld\bdi\bin\bng\bg r\brr\brd\bdt\bto\boo\bol\bl (\b(s\bse\bec\bco\bon\bnd\bd t\btr\bry\by)\b)
316 Now all the dependent libraries are built and you can try again. This
317 time you tell configure where it should be looking for libraries and
318 include files. This is done via environment variables. Depending on the
319 shell you are running, the syntax for setting environment variables is
320 different.
322 And finally try building again. We disable the python and tcl bindings
323 because it seems that a fair number of people have ill configured
324 python and tcl setups that would prevent rrdtool from building if they
325 are included in their current state.
327 cd $BUILD_DIR/rrdtool-1.3.5
328 ./configure --prefix=$INSTALL_DIR --disable-tcl --disable-python
329 $MAKE clean
330 $MAKE
331 $MAKE install
333 SOLARIS HINT: if you want to build the perl module for the native perl
334 (the one shipping with Solaris) you will need the Sun Forte compiler
335 installed on your box or you have to hand-tune bind-
336 ings/perl-shared/Makefile while building!
338 Now go to _\b$_\bI_\bN_\bS_\bT_\bA_\bL_\bL_\b__\bD_\bI_\bR/\b/s\bsh\bha\bar\bre\be/\b/r\brr\brd\bdt\bto\boo\bol\bl/\b/e\bex\bxa\bam\bmp\bpl\ble\bes\bs/\b/ and run them to see if
339 your build has been successful.
342 Tobias Oetiker <tobi@oetiker.ch>
346 1.3.5 2008-12-15 RRDBUILD(1)