|
Boost : |
From: David Abrahams (david.abrahams_at_[hidden])
Date: 2002-03-02 18:26:35
----- Original Message -----
From: "Steve M. Robbins" <steven.robbins_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Saturday, March 02, 2002 6:08 PM
Subject: Re: [boost] building shared boost libraries
> On Sat, Mar 02, 2002 at 05:00:41PM -0500, David Abrahams wrote:
> >
> > ----- Original Message -----
> > From: "Rene Rivera" <grafik666_at_[hidden]>
> > > Try $(<[1]:G=:D=).
> >
> > Grist is always gone by the time you get inside an action, so :G= is
> > redundant.
>
> Thanks! Using $(<[1]:D=) does what I want.
>
>
> > > There is one problem with this solution... it will tag any library
> > > created
> > > regardless of wether it's in Boost or not. If you happen to use
the
> > > Boost.Build system for something other than Boost, which I do, the
> > > above would
> > > not be "a good thing".
>
> Good point. However, I'm only interested in using jam to build boost.
> The Debian packages install into /usr/lib and /usr/include, so nobody
> need be using jam after that.
However, you're not the only one using these toolset files. We're not
going to break them for people who want to use Boost.Build as more than
a boost install system (since it isn't one).
> I have two new problems:
>
> 1. Static libs should NOT be built using -fPIC.
They should if they're being linked into a dynamic lib, shouldn't they?
> I noticed that
> libboost_python does this, so I made the following change. Can
> someone confirm that this is the correct change?
Seems wrong to me; I did that for a reason. Python extension modules
which link to it are all dynamic libraries.
> Index: libs/python/build/Jamfile
> ===================================================================
> RCS file: /home/steve/lib/cvs/debian/boost/libs/python/build/Jamfile,v
> retrieving revision 1.1.1.2
> diff -u -b -B -r1.1.1.2 Jamfile
> --- libs/python/build/Jamfile 7 Feb 2002 15:31:27 -0000 1.1.1.2
> +++ libs/python/build/Jamfile 2 Mar 2002 22:50:04 -0000
> @@ -84,7 +84,7 @@
> lib libboost_python_static : ../src/$(CPP_SOURCES).cpp
> # requirements
> : $(BOOST_PYTHON_INCLUDES)
> - <shared-linkable>true
> + <shared-linkable>false
> <define>BOOST_PYTHON_STATIC_LIB=1
> $(PYTHON_PROPERTIES) ;
However, libboost_python_static is really obsolete; it's just there for
legacy users who are attached to the idea of using a static lib. Using
the dynamic library results in much smaller extension modules.
> 2. I actually need to build a file named "libboost_foo.so.1.27",
> with "libboost_foo.so" being a symlink to the former. I thought
> I could just change the gcc-Link-action to use
>
> -o "$(<[1]).$(SOVERSION)"
>
> However, there is a "chmod" rule that follows the link and it assumes
> that the output is named "$(<[1])". I plan to hack around this in
> debian/rules, but I thought I may as well mention this.
I think I'll let Rene help you with this one ;-)
-Dave
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk