Boost logo

Boost-Build :

From: John Maddock (john_at_[hidden])
Date: 2006-09-03 14:16:51

I've been trying to test the lib/dll naming schemes under bbv2 to check that
everything is compatible with our existing auto-linking code, and just
generally doing the right thing.

Unfortunately I'm not getting to far :-(

If I place the Jamfile below in libs/config/test/link/test and try and build
(with vc-7.1) it fails for a number of reasons:

1) If I place <link>static in the executables requirements, dependent lib's
are *not* built as static libs, but as dll's. Consequently the build fails
because of the conflict between the auto-link code looking for a static lib,
and bbv2 insisting on building a dll.

2) If I place <link>static on the dependency name as in
..//link_test/<link>static I still get a dll built and not a static lib.

3) If I build with link=static on the command line then a static lib does
get built, but it's completely the wrong variant: it builds and tries to
link to the <runtime-link>dynamic <threading>multi variant, which would in
any case be completely binary incompatible with the <runtime-link>static
<threading>single executable.

4) An executable built with <runtime-link>static should in any case link to
a static lib by default: it's highly unlikely that linking to a dll will
actually work, given all the problems with different runtimes etc.

On the plus side the lib names do actually look correct, although I should
warn you that I've hardly begun testing this! :->

This is all on the cvs HEAD BTW, but the release branch will need fixing as
well. I don't believe we can release until we're confident that we can
correctly build and install. Incidentally there are also several lib's that
are flagging up regressions in the test matrix apparently because of this
(or a related?) issue, see for example:

Here's the Jamfile if you want to try for yourself, and or criticise my
rather flaky Jamfile writing capabilities :-)

lib link_test : ../link_test.cpp

run ../main.cpp ..//link_test/<link>static
  : : : <link>static <runtime-link>static <threading>single debug :
link_test_static_single_debug ;

run ../main.cpp ..//link_test/<link>static
  : : : <link>static <runtime-link>static <threading>single release :
link_test_static_single_release ;

Many thanks, John.

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