Boost logo

Boost :

From: Dan Nuffer (dnuffer_at_[hidden])
Date: 2001-02-16 13:40:14


Hi,
I work for Caldera Systems, and have used boost to do some development.
So, we will be shipping boost in the next version of our Linux
distribution. I have created a boost RPM and I want to get and give
some feedback.

For those not familiary with RPM, it stands for RedHat package manager,
and is a fairly good system for packaging software.
It works like this:
I write a file called boost.spec which contains instructions to RPM on
how to build and install boost.
I then run "rpm -ba boost.spec" and RPM builds boost and creates three
binary distribution files:
boost-1.20.2-1.i386.rpm
boost-devel-1.20.2-1.i386.rpm
boost-devel-static-1.20.2-1.i386.rpm

boost-1.20.2-1.i386.rpm contains the following files:
/usr/lib/libpycpp.so
/usr/lib/libregex++.so

boost-devel-1.20.2-1.i386.rpm contains these files:
/usr/include/boost/* (all the headers copied from the boost
subdirectory)
/usr/share/doc/packages/boost-devel-1.20.2/* (all the documentation,
website stuff, and test cases)

boost-devel-static-1.20.2-1.i386.rpm contains:
/usr/lib/libpycpp.a
/usr/lib/libregex++.a

The only two libraries that get compiled are pycpp and regex++. I tried
building dir_it/directory.cpp, but it seems to be broken, does anyone
know what it's status is?
Are there any other libraries which need to be compiled that I missed?

Now for the part where I give a little feedback about building a few
libraries :)
A common practice with Makefiles is to have CXXFLAGS or CFLAGS which can
be overridden with specific compiler options. When building RPMS, it is
common to override these variables:
make CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS="$RPM_OPT_FLAGS"
now $RPM_OPT_FLAGS is a variable that is defined in rpm's configuration
and contains specific optimizations we like to apply to all the software
being built.
The python lib makefile doesn't use CXXFLAGS, and it would be nice if it
did.
regex has a configure script that can be used with CXXFLAGS, however the
makefile that's created doesn't have rules to create a shared library.
Luckily there is the makefile lib/gcc-shared.mak which can make a shared
library. Unfortunately it doesn't have CXXFLAGS! So, I would propose
to either fix the configure script to create a makefile that has support
for compiling a shared library, or add CXXFLAGS support to lib/gcc.mak
and lib/gcc-shared.mak

If anybody is interested in the boost.spec file I created to build the
RPM, I can send it to the mailing list.

--Dan Nuffer


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk