|
Boost-Build : |
From: David Abrahams (dave_at_[hidden])
Date: 2002-11-29 17:27:42
Vladimir Prus <ghost_at_[hidden]> writes:
> David Abrahams wrote:
>
>>> Moreover, consider that on Windows, a library
>>> called 'expat' must be built by Boost.Build, so we
>>> have to write
>>>
>>> exe main : main.cpp : <library>expat
>>>
>>> But on Linux this library is already awailable, so we better
>>> use
>>>
>>> exe main : main.cpp : <find-library>expat
>>>
>>> This difference is messy.
>>
>>
>> Yup.
>>
>> I think it's time to look at
>> http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Configuration_And_Installation
>> again.
>
> I had that in mind all the time. Moreover, I've recently implemented and just
> documented "prebuilt" targets, which do almost what is proposed in the page
> you mention. At least I think so, check out:
>
> http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/boost/boost/tools/build/boost_build_v2.html?rev=HEAD&content-type=text/html#prebuilt_targets
Hmm, I don't think that was really the idea. Ullrich's idea was to
create a small Jam description file that could be "installed" by
Boost.Build along with built products (or crafted by hand). When
working with prebuilt targets, Boost.Build would look for a
corresponding Jamreport file to learn about the build properties of
the targets.
> > ...I think the idea of reducing the number of ways to specify a library is
> > good. But I think the "system-lib" UI is not enough of a reduction. A rather
> > more flexible and cohesive solution would be to incorporate the various
> > instances of a library into the "lib" target. Here are the various ones I
> > can think of, and how they might be declared:
>
> I agree that using a single "lib" is attractive. After all, we
> already use it for both static and dynamic libraries. But note that
> we have separate target types: STATIC_LIB and SHARED_LIB. And since
> system libraries are special in some sense (you'd need to add "-l") flags,
> to library names to command line, it makes perfect sense to introduce
> SYSTEM_LIB target type first (and system-lib rule), and make it working.
On linux, apparently, -lfoo will find libfoo.so or libfoo.a.
-- David Abrahams dave_at_[hidden] * http://www.boost-consulting.com Boost support, enhancements, training, and commercial distribution
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk