Boost logo

Boost-Build :

From: Zbynek Winkler (zwin_at_[hidden])
Date: 2003-05-04 15:20:11


Here is an impression I got as a first time user.

http://boost.sourceforge.net/boost-build2/boost_build_v2.html claims to
be "user manual" which I think it is not. First of all it is too long.
Second, the first part gives overall view of how things work in the
build system, which is fine. What is not fine is the fact that the
manual cannot be read from the beginning (without going back and forth).
One example is "Project hierarchy". It says
-----------------
For example, if [top]/Jamfile has

<include>/home/ghost/local

in requirements, then all other projects will have that in their
requirements too.
-----------------
After going through the sources I've found out that you just cannot
place <include>/home/ghost/local in the jamfile (or can you?). You have
to put it in project->requirements. When reading this I had no notion
what an "requirements" could be (or that it is something really really
special, that it really is a "feature"), neither that it has some
special syntax.

So... It gives the impression that the system is really cool and
powerfull. But the more you try to do the things in the "tutorial", the
more this impression changes to "too powerfull to be of any good" or
"not cool at all" because you cannot just copy&paste the lines and
expect it to work. Not even such a basic command as "bjam --version"
(from istallation step #2) works out of the box. The catch is that the
"bjam" needs to find the configuration files. When you happen (as me) to
run the bjam exe from directory boost/tools/build you get some bullshit as
d:\devel\boost\boost\tools\build>bjam --version
Jamfile: No such file or directory
Jamfile: No such file or directory
...found 8 targets...

Then there is something that claims to be "Reference" where is a lot of
theory and no facts. When I almost figured out the overall syntax of the
jamfile I tried <runtime-link> "feature" only to find out that it is
<link-runtime>... (found it in the msvc.jam). The <link-runtime> feature
can be set to "shared" which finaly gave me the /MD in the command line.
Too bad that it is giving me /MD even for debug build (instead of /MDd).
Often mention option <threading>multi (what I kind of expected to select
the multithreding runtime) only broke my jamfile when I added it to the
requirements. I would expect "reference" to be a description of the
grammar used and a list of things that can be set and how. The things
there are now claimed to be a reference would be more a decription of
the architecture.

Do not get me wrong. I think that the Boost.Build v2 is The Next Big
Thing (at least for me :-)). I really like the idea (otherwise I would
not spend the whole day today trying to get a hold of it :-)). It is
just that the documentation is not much helpful for a boost.build newbie
(such as me). So if you think I can help, let me know. I do not have
much spare time but I can always at least test something here or there...

Zbynek

PS. One more thing - to find out if the build has been successful you
have to read an awful lot of text. When 'make' fails you get nice big
Error at the end...

-- 
<zwin at robotika.cz>
http://zw.matfyz.cz/ http://robotika.cz/
Faculty of Mathematics and Physics, Charles University, Prague, Czech 
Republic
 

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