Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2008-03-08 14:00:07

Steve M. Robbins wrote:

> Hi,
> I'm trying to decipher the following bit of tools/gcc.jam from the
> Boost 1.34.1 distribution, directory tools/build/v2:
> actions link.dll bind LIBRARIES
> {
> "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])"
> $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)"
> }
> In particular, I'd like to know:
> (a) what does $(<[-1]:D=) expand to, and

        $(<) is the list of targets produced
        $(<[-1]) is the last element of that list
        $(<[-1]:D=) is that same, with directory name stripped

> (b) where is that computed.

in tools/virtual-target.jam, which eventually calls
the 'tag' rule in Jamroot, in Boost's root directory.
In 1.34.1 that file is called Jamfile.v2

> I've searched doc/userman.pdf without success. Did I miss it? Where
> should I be looking?
> If you've read this far: my goal is to remove the compiler-name
> decoration from the SONAME of the shared libraries. This decoration
> causes grief building packages for distributions like Debian. I do
> know about --layout=system, but that causes even more grief because
> the resulting libraries have *no* SONAME at all.

Hmm, this is highly strange. On SVN HEAD, when I do:

        bjam --layout-system --with-program_options release stage

I get:

ghost_at_wind:~/Work/Boost/boost-svn$ readelf -d

Dynamic section at offset 0x366bc contains 27 entries:
  Tag Type Name/Value
 0x0000000e (SONAME) Library soname: []

So, there's neither version, nor 'gcc' name. I don't see any big changes between
1.34.1, 1.35 branch and SVN HEAD.

- Volodya

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at