
Robert Ramey wrote:
Reece Dunn wrote:
John Torjo wrote:
Maybe to simplify the process, in boost-root (where boost-build.jam file exists), we could have a makefile which automatically builds bjam from the source files and the invokes it with a given configuation.
like: make msvc (instead of bjam "-sTOOLS=msvc")
Unfortunately, I don't have any makefile knowledge.
It's a question of bootstrapping... One needs to decide what system is available in the variety of systems and provide a script written to bootstrap on each of those. And no, not everyone has make ;-)
ahhh - we've come full circle.
I am knowledgeable in makefiles, but this leads to a problem: you need to configure the makefile to handle all the various compiler and platform combinations - something bjam already handles, so why duplicate this effort?
Is there a bjam file for bjam?! That way it could be bootstrapped. But then why not just download a pre-built version of bjam?
Yes there is: boost-root/tools/build/jam_src/build.jam .. Which gets bootstrapped with boost-root/tools/build/jam_src/build.bat or ./build.sh or ./build_vms.com
Bascally I think the whole purpose of bjam is to address the concerns of the original poster. Unfortunately, this is not obvious from the information on bjam that comes with the system. I realise that the information is available - its just that is spread around in several places. Bjam is a large subject and requires almost a book to explain it. BUT it (or something like it is necessary for boost - as was obvious to the original poster.
Not sure a whole book is deserved, but certainly a good manual with tutorials.
The central purpose of the bjam system is to specify how to build programs in a generic way independent of any particular platform while at the same time specify how each platform handles particular aspects of the application developement. This is a very ambitious concept and has resulted (not surprisingly) in a system that is pretty elaborate. A very ambitiuos effort.
It is ambitious.. which is also why there are other build systems trying to solve the same problems, for example SCons, Bakefile.
In one important way, its not ambitious enough. Unlike the rest of boost, it seems directed a bit narrowly to building and testing boost libraries.
Not really... There are many people using it to build there own projects, myself included. In fact I use it more frequently to build my own stuff than to build Boost.
I get this impression from the fact that much effort is being invested in the code but relatively little in producing a complete, coherent and well organised explanation of how to make best usage of it. Maybe we can sucker someone in writing an O'Reilly book on this which would include the bjam system? Of course this would need a more polished system.
Having time to write documentation is the biggest problem we all have ;-) Especially when we are spending most free time getting things to just work.
I'm sorry go on about this, the thing just drives me crazy.
No problem... But perhaps you can go on about it at the Boost.Jam/Build list instead of the main list :-) -- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org - grafik/redshift-software.com - 102708583/icq