What is a jamfile?
Asked Answered
K

1

15

I'm trying to use the boost_1_55_0 libraries and I keep coming across references to jamfiles.

What are jamfiles?

Why are there things like bjam and multiple versions of jamfiles?

Kopans answered 7/4, 2014 at 0:3 Comment(6)
See Boost.Build.Twitt
Pretty common problem in C++, everybody comes up with their own build system. There's none to rule them all so never any guarantee of success. Cross-platform promises are weak when you can't even build the damn thing. So Boost did too, a jamfile says what needs to be built by bjam. Goes wrong all the time anyway :(Okeechobee
An even bigger problem than the existence of various make systems is that the compilation model of C/C++ simply sucks and you can put your cpp/header files wherever you want and opensource makefiles sometimes tend to overwrite/modify existing sources. Not to mention that we have header files (in the 21th century!!!) like we had include files in case of assembly and usually the order/location of the include directories is a mess. Sooner or later all build systems become monsters because they try to support the compilation of all opensource monster source trees and this is simply impossible.Medici
@Medici "opensource makefiles sometimes tend to overwrite/modify existing sources" - citation needed. There's nothing particular about open-source "monster" source trees.Freemanfreemartin
@Freemanfreemartin Well, its not actually the makefile that modifies the sources but the scripts executed by make. Generating a config.h should be enough. In my opinion both the build system and the organization of the sources should be more stricter as it is in case of some more modern languages.Medici
@Medici I hear you: +1 for modular compilation, +1 for an end to auto-tools. But, for the rest, I don't see how this contributes to "monster source trees" and think you're conflating the troubles of portable C/C++ codebases with bad organization/build tooling. This seems off-topic at best :)Freemanfreemartin
F
11

Jam is an open source make system built by Perforce.

Bjam is a boost variant of jam. One of the advantages of jam is that it is explicitly designed to be a platform independent build system, in contrast to other build systems such as make.

Forby answered 7/4, 2014 at 0:56 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.