[rrd-developers] Preliminary libtooled version of RRDtool available

Blair Zajac bzajac at geostaff.com
Sat Aug 7 02:28:19 MEST 1999


I spent some time retooling the autoconf stuff in RRDtool to support
automake and libtool so that RRDtool can now generate a single shared
library containing all of the png, z, gd libraries.  This should help
RRDtool compile and build shared libraries on many more platforms.
Personally, I'll be using this shared library to attach to SE programs,
which can do a dlopen.

This work is not completed, but it does do the most important part,
which is build rrdtool, rrdcgi and the perl-shared library.  I have
only checked it on Solaris hosts and it works great.  I wanted to
get this out so other people can try it.

Here are some quick notes on what I did.

I stole many ideas from Amanda's (www.amanda.org) automake/libtool
configuration.  Any design flaws in RRDtool are due to the way
automake/libtool is set up in Amanda.  I have set up RRdtool to
not compile static libraries by default.  This seems to be ok, since
so many people link against the shared library to get the Perl
RRDs.pm module, so there's no point in a static library.  In any
case, if the host does not support shared libraries, then it will
build a static library.  If the perl-shared module does not
find the archive of PIC compiled object files, then Make breaks.
This should probably fail nicer.

rrdtool and rrdcgi now get installed as linked to a shared library.

In the src directory I create librrd.la and librrd_private.la.  The
first is what gets installed in $prefix/lib and the second is used
to create RRDs.so.  Libtool does not create an archive of PIC compiled
object files to create librrd.so, so librrd_private is created as
a convenience library, and here libtool creates a
src/.libs/librrd_private.al file that contains all of the PIC compiled
object files.

All of the Makefile.am's that compile something redefine COMPILE,
LTCOMPILE and LINK to include CFLAGS_EXTRA in the compile.  This
has warnings appear in cgilib.

I have not done the following things:

1) Made sure all the RRdtool pieces get installed in the correct place
   with a make install.
2) Added all files to the Makefile.am's such that a make dist can
   be performed to create a RRDtool distribution.
3) docs/Makefile has not been touched.  This could also probably be
   automake'd.
4) I have not figured out how to put perl-shared and perl-piped
   inside the automake structure nicely, but it works.  Look at the
   top level Makefile.am to see how I do it.

Since this work has a lot of changes, I'm just leaving the new tar file
up at

ftp://ftp.gps.caltech.edu/pub/blair/rrdtool-1.0.3a.tar.gz

The diffs between this and pure 1.0.3 are 165 k in size.

If you do any developing on this, please make sure to download and
install the latest autoconf (2.13), automake (1.4), and libtool
(1.3.3) from ftp.gnu.org.

Good luck,
Blair
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bzajac.vcf
Type: text/x-vcard
Size: 311 bytes
Desc: Card for Blair Zajac
Url : https://lists.oetiker.ch/pipermail/rrd-developers/attachments/19990806/3ca9f99c/attachment.vcf 


More information about the rrd-developers mailing list