Boost logo

Boost-Build :

Subject: Re: [Boost-build] Jam rename?
From: Vladimir Prus (ghost_at_[hidden])
Date: 2009-03-14 09:04:03


On Saturday 14 March 2009 15:27:50 Mike Jackson wrote:
> On Sat, Mar 14, 2009 at 6:58 AM, Vladimir Prus <ghost_at_[hidden]> wrote:
> > On Saturday 14 March 2009 12:41:40 Alexander Bernauer wrote:
> >> Hi
> >>
> >> On Saturday 14 March 2009 09:26:45 Vladimir Prus wrote:
> >> > Quite a number of folks tend to confuse Boost.Build and Boost.Jam,
> >>
> >> So do I, since I read your mail ;-) I am quite new to the matter so
> >> maybe my impressions might give some answer to your question.
> >>
> >> What I know so far is http://www.boost.org/doc/tools/build/index.html
> >> saying "Boost.Build is an easy way to build C++ projects," and
> >> http://www.boost.org/doc/tools/jam/index.html saying "Boost.Jam (BJam)
> >> is a build tool". Not that much distinction here. Is it that Boost.Jam
> >> is a generic build tool while Boost.Build is a set of bjam libraries
> >> focusing on building C++ projects?
> >>
> >> I used to consult the documentation of the former in order to write
> >> Jam-files which are interpreted by the latter. So, looking back, I have
> >> always been wondering why there are actually two websites for what I
> >> considered being the same thing.
> >
> > I have a todo item to start the Boost.Jam page with a warning in big
> > red font that reads: "Boost.Jam is the low-level build engine used
> > by Boost.Build. You better read Boost.Build docs".
> >
> > OTOH, I am not sure if that warning will fully help.
> >
> > - Volodya
>
> I'll toss out my opinion for what it is worth as a complete outsider
> looking in..
>
> I _still_ do not understand what Boost.Build is. I always figured it
> was just part of the Boost project and was the custom build system
> used by Boost, hence the name Boost.Build and bjam but I had no idea
> you could use it separately. Let me see if I can figure this out using
> what I know: CMake:
>
> So CMake has the actual CMake executable tool, this seems equivalent
> to bjam. Then CMake has a bunch of "modules" that help do things like
> find libraries, test for symbols, install stuff. I guess those are
> like the Boost.Build system or the Boost.Build "libraries"? Then you
> write your own cmake files specific to your project which I guess is
> like the part where you write your own project.bjam files? Is that
> right?

Yes, kind of. bjam binary ~= cmake binary. Boost.Build ~= Modules/*.cmake.
and Jamroot/Jamfile ~= CMakeLists.txt. The only difference is that for
CMake, lot of core functionality is implemented in the C binary. For example,
add_program appears to be in C. On the contrast, in Boost.Build, much
more in written in interpreted language provided by Boost.Jam.

> Do I actually need Boost to run Boost.Build?

No.

> Does Boost have
> anything to do with Boost.Build?

There are no direct links.

> If not then I would pick an entirely
> different name in order to provide clear separation between the Boost
> project and the Boost.Build build system.

Unfortunately, Boost.Build is already a brand name this project is
known with. The fact that we have another brand name, Boost.Jam,
causes some confusion which might justify killing, or downplaying,
that other brand name. Killing both brand names does not seem like
good idea at this point.

- Volodya


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