Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2002-11-06 14:08:53


Rene Rivera <grafik666_at_[hidden]> writes:

> I'm done with the first pass at the new build scripts for b/jam. They are:
>
> * build.bat; Bootstrap build on Windows command.com shell. Currently
> supports:
>
> - Detection of: Borland(BCC5) tools - tested; CodeWarrior 8 tools -
> tested; MSVC in the three variants of C++/98, Studio, and .NET
> (untested)

How does it detect them? Environment? Registry?

> - Bootstraps both jam and mkjambase (if needed). Doesn't bootstrap the
> grammar because of the generally missing "yyacc" script on Windows.

Good.

> * build.sh; Bootstrap build on Unix type SH shell, supports:
>
> - Detection of: GCC tools - tested on Linux; MacOSX Drawin GCC tools -
> tested; Intel Linux - untested; VisualAge C/C++ - untested.
> - Bootstraps jam, mkjambase, and the gramar.

Nice, though I worry about bootstraping the grammar...

> * build.jam; Does the regular building, supports:
>
> - All the current toolsets we have regular Boost.Build support for. But
> I've only tested the ones mentioned above.
> - Automatic detection of bison or yacc. Prefers bison over yacc.

I don't think it's best to prefer bison. The problem is that bison
generates files which require alloca, which isn't available on all
systems. If someone rebuilds bjam with bison, and then checks in, he
will scuttle buildability for other people.

Maybe it would be best to disable building the grammar unless you
supply explicit flags. We might want to distinguish between developers
and build-to-install people.

> - Doesn't remove files for things it can't build normally, like the
> grammar files when it can't find bison/yacc, or
> mkjambase(jambase.c).

That's very important.

> - Has a single "dist" target for building the various distribution
> parts: source archive, binary archive, and single binary.
> - Autodetection of RPM tool to build the rpm archive as part of the dist
> target.

Nifty!

> The scripts are targeted mostly at enduser building, and as such us
> developers have to do the extra typing. Users just do either
> "./build.sh" or ".\build.bat".

OK. What's the extra typing look like?

> The one thing I could not keep compatible in the still present
> Jamfile was the RPM building. This is because the command to build
> b/jam is embedded in the boost-jam.spec. So to build RPMs you must
> use these new scripts. If we can't live with this I can try and make
> changes to "Jamfile" to get that working.

I'm not sure I understand what the consequences of this are.

> So now we just need to implement more bootstrap tool detection code
> ;-) One other thing should we replace the now very outdated building
> instructions (INSTALL,README,RELNOTES) with more text files or a
> single Boost looking HTML page?

For sure, as soon as things settle down.

-- 
David Abrahams
dave_at_[hidden] * http://www.boost-consulting.com
 

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