Boost logo

Boost :

From: Steve M. Robbins (steven.robbins_at_[hidden])
Date: 2002-03-02 18:08:47


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.

> > The best way is to specify the above in the dll target spec itself
> with
> > <linkflags>, which is what Dave was refering to above. It might look
> like:
> >
> > dll test : test.cpp
> > : <gcc><linkflags>"-Wl,-soname -Wl,libtest.so.$(BOOST_VERSION)"
> > : debug release ;
> >
> >
> > But even that seems somewhat cumbersome.

Looks cumbersome to me.

I have two new problems:

1. Static libs should NOT be built using -fPIC. I noticed that
libboost_python does this, so I made the following change. Can
someone confirm that this is the correct change?

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) ;
 

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.

Thanks,
-Steve

-- 
by Rocket to the Moon,
by Airplane to the Rocket,
by Taxi to the Airport,
by Frontdoor to the Taxi,
by throwing back the blanket and laying down the legs ...
- They Might Be Giants

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