Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Boost Jam vs Jam

Tags:

boost

bjam

I recently built the Boost libraries in Linux and noticed the package needed an executable called bjam in order to do the build. Is bjam related to jam? If it is related to jam, did they somehow extend (or even dumb-down) bjam? Is it used only for building Boost libraries or is it a general build tool for anything?

like image 988
User1 Avatar asked Mar 22 '10 20:03

User1


People also ask

What is boost jam?

Boost. Jam (BJam) is a build tool based on FTJam, which in turn is based on Perforce Jam. It contains significant improvements made to facilitate its use in the Boost Build System, but should be backward compatible with Perforce Jam.

What does bjam do?

Binding. After parsing, bjam recursively descends the dependency graph and binds every file target with a location in the filesystem. If bjam detects a circular dependency in the graph, it issues a warning. File target names are given as absolute or relative path names in the filesystem.

What is Boost build?

Boost. Build is a high-level build system which makes it as easy as possible to manage C++ projects. The idea is to specify in configuration files just as much as necessary to build a program. For example it is not required to tell Boost. Build how to use a certain compiler.

What is b2 in boost?

Build, b2 , bjam and Perforce Jam? Boost. Build is the name of the complete build system. The executable that runs it is b2 . That executable is written in C and implements performance-critical algorithms, like traversal of dependency graph and executing commands.


2 Answers

Boost.Jam originally was a slightly modified version of classic Jam. It gradually diverged very far. Boost.Jam is actually a low-level engine component of Boost.Build and is not meant to be used independently. Boost.Build is a general build tool, it's not tied to C++ Boost libraries in any way.

like image 93
Vladimir Prus Avatar answered Sep 29 '22 23:09

Vladimir Prus


Boost jam (bjam) is an extension, more like forked version, of perforce jam. It is not only for building Boost libraries. It can be used as a general build tool. There is also ft-jam for that matter. All incantations spawned from perforce jam based on my research of the tool. I believe Boost Jam V2 is so far removed from the original Perforce Jam implementation that they aren't the same tool except at a very, very high level.

like image 20
C Johnson Avatar answered Sep 29 '22 23:09

C Johnson