Boost logo

Boost-Build :

From: Daniel Einspanjer (deinspanjer_at_[hidden])
Date: 2006-01-31 11:10:40

I am trying to put together a presentation for our development team to
switch from make to Boost.Build V2. I've been stumbling through the
documentation and trying to search the archives of this mailing list (using
Google queries with for answers to problems and
concerns I have, but it has been slow going.

I'm working with:
Boost.Build V2 (Milestone 10)
Boost.Jam 03.01.11

My first question I'd like to put to the list is regarding the msvc toolset.
Is it required to set up the msvc 8 environment before running bjam? Looking
at the msvc.jam code and the references to toolkit configuration in the
docs, it seems to me that bjam is supposed to be able to find msvc
installations that follow standard installation paths.

In my sandbox, I have msvc 8 installed, and if I open up a command prompt, I
need to run %VS80COMNTOOLS%vsvars32.bat first.

In my boost-build root, I have a user-config.jam that declares "using msvc

If I try to run bjam before running vsvars32.bat, I get the following
  warning: toolset msvc initialization: can't find tool cl.exe
  warning: initialized from c:/bin/buildtools/boost-jam\user-config.jam:29
  ...found 32 targets...
  ...updating 4 targets...
  msvc.compile.c++ bin\msvc\debug\test.obj
  '/Zm800' is not recognized as an internal or external command,
  operable program or batch file.
     /Zm800 -nologo -TP /Z7 /Od /Ob0 /EHsc /GR /MDd -c
-Fo"bin\msvc\debug\test.obj" "test.cpp"

If I run bjam after vsvars32.bat then I get:
  Setting environment for using Microsoft Visual Studio 2005 x86 tools.
  ...found 32 targets...
  ...updating 4 targets...
  msvc.compile.c++ bin\msvc\debug\test.obj
      call "c:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat"
> nul
  cl /Zm800 -nologo -TP /Z7 /Od /Ob0 /EHsc /GR /MDd -c
-Fo"bin\msvc\debug\test.obj" "test.cpp"

I've been trying to reverse engineer the msvc.jam toolkit to understand how
it looks for stuff, and as near as I can tell, it looks for cl.exe in the
path. If it finds it then it will call vcvars32.bat before ever invocation
of cl.exe.

That just seems a bit strange to me. Is there any further documentation on
how bjam is supposed to behave with determining toolset locations?

Daniel Einspanjer

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at