Hello all -- looking for a small bit of guidance please. I'm
building a 64bit Boost library from scratch. I'm fairly sure I did almost
everything correctly, but would like to check one nagging
detail. My system is Windows 7, Visual Studio 2005 and I'm building for 64 bit,
specifically AMD64.
I believe bjam.exe built correctly because my path
was set up properly for the x64 toolset and bjam.exe was deposited in the
auto-generated directory BOOST_ROOT\tools\jam\src\bin.ntx86_64. To do
this, I ran "build vc8" on the command
line.
My question concerns the use of bjam along with the "using"
instruction in the ...\V2\user-config.jam
file. I set the "using" instruction to be
using msvc : 8.0 : cl : <setup-amd64>vcvarsall
;
and my command line is
bjam address-model=64
--build-dir="C:\Program Files\boost\boost_1_42_0\boost-build"
--build-type=complete stage
I built two different ways:
1) In a virgin cmd window -- which is not set up for 64 bit
tools by default -- I ran vcvarsall manually on the command line (with no args, I set it up to default
to setting up 64 bit), which sets up my 64 bit environment
and which I have echo to the screen "AMD64 env"
for confirmation. I confirmed I was then defaulting to the correct "cl", etc., and then executed in BOOST_ROOT the
bjam command line above. I have yet to test the output, but it seemed to
work.
2) In another virgin cmd window, I cd'd to BOOST_ROOT and
executed ONLY the bjam command line above. According to the documentation for
the "using" instruction, the batch file vcvarsall
(which is in my default PATH) is supposed to be called before any
tools are used, but I never saw "AMD64 env"
echoed to the screen, nor to a .log file which I piped to in order to make sure
I didn't miss anything. Yet, bjam created an output tree containing various
"address-model-64" directories. When I checked my PATH after the build, it
did not contain the paths that vcvarsall is
supposed to set up.
Question: In scenario (2) above, vcvarsall clearly did not run in my cmd session, but
did bjam run it in some
internally generated shell? If no, why not (did I
do something incorrectly)? If yes, is this why I didn't see my echo
confirmation?
So I'm wondering if I have a 64 bit build or not -- and I
prefer scenario (2) to scenario (1)!
Thanks in advance,
Rick