Boost logo

Boost :

From: Noel Yap (yap_noel_at_[hidden])
Date: 2002-05-02 18:35:34


--- "Steve M. Robbins" <steven.robbins_at_[hidden]>
wrote:
> In addition, it is very convenient if those three
> variables are given
> default values based on another variable,
> traditionally named "prefix"
> as follows:
>
> includedir = $prefix/include
> libdir = $prefix/lib
> htmldir = $prefix/share/doc

Correct me if I'm wrong, but I believe it's actually
prefixdir.

> and the default for prefix should be "/usr/local".
> This scheme
> supports the common installation scenarios:
>
> 1. specify nothing -- stuff ends up in
> /usr/local/include and
> /usr/local/lib which are commonly on the
> compiler search path
>
> 2. install using, e.g. prefix=/opt/boost-1.27 to
> put everything
> together into its own hierarchy
>
> 3. go wild and customize all three directories
> individually!
>
> At install time, $includedir/boost would become a
> copy of
> boost-1.27.0/boost, the libboost* files would end up
> in $libdir,
> and the HTML hierarchy rooted at
> boost-1.27.0/index.htm would
> be copied to $htmldir/boost.

I think only the *.hpp files should be installed.
Also, installation on Unix might want to change the
suffixes (or at least make it configurable for all
platforms). Everything else sounds great.

> * library names
>
> The library names in use -- libboost_thread,
> libboost_regex,
> libboost_python, and libbgl-viz are reasonable
> enough.

I agree.

> * library versioning
>
> My understanding is that boost is still moving too
> fast to maintain an
> ABI across versions. If that is true, my suggestion
> is to simply
> version them using boost's version number (e.g.
> 1.27).

If we were to do this, we would need to synch the
releases of the packages with the release of Boost.
I'm not sure if it would be good to be limited in this
respect.

I guess an alternative would be to have packages adopt
the boost release number (eg 1.27.0) and use a fourth
digit for bug-fix releases (eg 1.27.0.1).

> * symlinks etc
>
> Here things get muddy. The only way I know how to
> build shared libs
> in a reasonably portable way is to use libtool. I
> suspect someone
> with enough motivation could teach jam how to use
> libtool.
>
> I don't have the requisite motivation, so I just
> fiddled with jam so
> that it builds shared libs with the correct SONAME
> for linux. This
> hack isn't complete, as the filename is not correct,
> but I just rename
> it afterwards.
>
> With the following patch, I invoke
>
> jam .... -sSOVERSION=1.27
>
> and end up with libboost_regex.so, which I then
> rename to
> libboost_regex.so.1.27. In the libdir, one ought to
> have
> the following files
>
> libboost_regex.a
> libboost_regex.so.1.27
> libboost_regex.so (a symlink to
> libboost_regex.so.1.27)
>
> At least, this is the linux style. Other systems
> have other
> requirements.
>
> I realise this is incomplete and I apologize for
> that.
> I hope it is of some utility.

This is great work. I hope it gets built on.

Noel

__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com


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