Re: [boost] New getting started guide

I've made some changes on my local system and want to re-run all my tests for a specific compiler - int this case VC 7.1. I want to switch to V2 bjam. I seems that the Jamfile.v2 should be OK as I see it being used with the 1.34 tests without problems. the command line I've been useing for v1 is: bjam --dump-test -sTOOLS=$1 test >bjam.log 2>&1 In trying to figure out the v2 equivalent, I perused the bjam v2 document as well as the new "getting started" guide. I also preused the code in user-config.jam in tools/v2/build/... The bjam v2 document seemed somewhat incomplete. But then it was never really clear to where the --dump-test switch and test target came from with V1. So I tried the naive approach and just tried to follow the instructions in the new "getting started" guide. It looks to me that the old system of using environmental variables has been preplaced with with the new user-config.jam system. So it would seem that I have to edit user-config.jam to specify the paths of the vc compilers ( as well as others). On the other hand, there is no mention of anything like this in the "getting started" guide. Indeed, invoking bjam --v2 msvc-7.1 >bjam.log & returns - among other things - warning: No toolsets are configured. So, the "getting started" guide seems incomplete to me. This concludes my observations on the new documentation. Now I'm want to know what I have to do to make this work. From msvc.jam I get the following examples which might be added to the right place in the user-config.jam file using msvc : 6.5 : cl.exe ; using msvc : 7.0 : Y:/foo/bar/cl.exe ; Which raises a couple of questions. How is the include directory for the compiler determined? Is it just asssumed that its in a particular place relative to the executable - or what? When I want to test with msvc-6.5 and stlport 5.0 how do I specify this? I'm guessing it would be something like msvc-7.1-stlport-5.0 - but that's just a guess - I didn't see it in the documentation. I probably will have other questions but that's enough for now. Robert Ramey

"Robert Ramey" <ramey@rrsd.com> writes:
It looks to me that the old system of using environmental variables has been preplaced with with the new user-config.jam system.
Not exactly. * There never was a "system of using environmental variables;" it was always a system of using Jam variables. It just so happens that, as with Make, Jam sucks its initial global variable values out of the environment. It has always been a principle of Boost.Build to avoid a design that forces the user to litter his environment with variable settings to make Boost.Build work. * user-config.jam and site-config.jam form a system for setting up a semi-permanent description of your system's configuration, e.g. what compilers and libraries you have installed, where they are, etc. There never really was a system for doing that with v1. What I did with v1 was to hack together a script called "myjam" that prepared a bunch of variable settings and then invoked bjam. * That is not the only way to configure your compilers; you can do it from the command-line unless you have a truly bizarre installation.
So it would seem that I have to edit user-config.jam to specify the paths of the vc compilers ( as well as others). On the other hand, there is no mention of anything like this in the "getting started" guide.
That's because you don't need to do it.
Indeed, invoking
bjam --v2 msvc-7.1 >bjam.log &
returns - among other things - warning: No toolsets are configured.
You're not following the guide. bjam --v2 toolset=msvc-7.1 ^^^^^^^^ will work.
So, the "getting started" guide seems incomplete to me.
I think you just started with a different set of directions and failed to read the guide carefully. -- Dave Abrahams Boost Consulting www.boost-consulting.com

You're not following the guide.
bjam --v2 toolset=msvc-7.1 ^^^^^^^^
will work.
Not for me. Here is what I get: warning: Python location is not configured warning: the Boost.Python library won't be built Building Boost.Regex with the optional Unicode/ICU support disabled. Please refer to the Boost.Regex documentation for more information (and if you don't know what ICU is then you probably don't need it). Jamfile.v2:239: in Jamfile</C:/BoostHead>.tag rule stage.add-variant-and-compiler unknown in module Jamfile</C:/BoostHead>. .. a bunch of other stuff its not clear to me how something like that could work. How does the system know on what path my compiler is installed? also http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/bbv2/advance... suggests to me that the following syntax should work bjam msvc release some_target which I take to mean that the following should work bjam --v2 msvc release some_target and which would lead me to expect that the following should work bjam --v2 msvc which doesn't work. I've studied the "getting started" as well as the boost build documentation and I can't see how one is expected to specify all the toolsets he uses. FYI in my case I want to use the following: msvc 6.5 msvc 7.1 msvc 8.0 bcc 5.51 bcc 5.64 comeau gcc 3.3 stlport 5.0 stlport 4.53 I expect to find a place - with a syntax to specify it - a set of path names for each of the above. If its in the documents it certainly doesn't jump out at me. Robert Ramey

"Robert Ramey" <ramey@rrsd.com> writes:
You're not following the guide.
bjam --v2 toolset=msvc-7.1 ^^^^^^^^
will work.
Not for me. Here is what I get:
warning: Python location is not configured warning: the Boost.Python library won't be built Building Boost.Regex with the optional Unicode/ICU support disabled. Please refer to the Boost.Regex documentation for more information (and if you don't know what ICU is then you probably don't need it). Jamfile.v2:239: in Jamfile</C:/BoostHead>.tag rule stage.add-variant-and-compiler unknown in module Jamfile</C:/BoostHead>. .. a bunch of other stuff
its not clear to me how something like that could work. How does the system know on what path my compiler is installed?
Magic :) No, seriously: if you're on windows, most compilers install information about their locations in the Registry, which the system will use to look them up. Otherwise, there are default installation locations that we guess at. Only in the rarest of cases do we ever need to be told very much about the compiler. On *nix the compilers are almost always in the PATH, and when they're not, there are default locations to use, and there are command-line options that can be used to deduce the compiler versions. Look through some of the toolsets in tools/build/v2/tools/ to see what I mean.
also http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/bbv2/advance...
suggests to me that the following syntax should work
bjam msvc release some_target
Yeah, on the RC branch, and *if* you've got your user-config.jam set up. But you really should try to draw your conclusions from documentation instead.
which I take to mean that the following should work
bjam --v2 msvc release some_target
In the HEAD, until I change that, yes, --v2 is needed.
and which would lead me to expect that the following should work
bjam --v2 msvc
which doesn't work.
I've studied the "getting started" as well as the boost build documentation and I can't see how one is expected to specify all the toolsets he uses. FYI in my case I want to use the following:
msvc 6.5 msvc 7.1 msvc 8.0 bcc 5.51 bcc 5.64 comeau gcc 3.3 stlport 5.0 stlport 4.53
I expect to find a place - with a syntax to specify it - a set of path names for each of the above. If its in the documents it certainly doesn't jump out at me.
Well, that's a separate issue from the Getting Started guide. We don't want people to have to edit a user-config.jam and learn a special syntax if they only intend to use Boost.Build to create binaries for use with Visual Studio, for example. -- Dave Abrahams Boost Consulting www.boost-consulting.com

"Robert Ramey" <ramey@rrsd.com> writes:
You're not following the guide.
bjam --v2 toolset=msvc-7.1 ^^^^^^^^
will work.
Not for me. Here is what I get:
warning: Python location is not configured warning: the Boost.Python library won't be built Building Boost.Regex with the optional Unicode/ICU support disabled. Please refer to the Boost.Regex documentation for more information (and if you don't know what ICU is then you probably don't need it). Jamfile.v2:239: in Jamfile</C:/BoostHead>.tag rule stage.add-variant-and-compiler unknown in module Jamfile</C:/BoostHead>. .. a bunch of other stuff
By the way, I'm not ignoring this, but I don't know what could be causing it. IIRC you've asked for help on the Boost.Build list; hopefully that will pan out. -- Dave Abrahams Boost Consulting www.boost-consulting.com
participants (2)
-
David Abrahams
-
Robert Ramey