I am doing the following:


import feature ;


feature.feature test : E A B C D : composite ;

feature.compose <test>A : <define>_TEST=0 ;

feature.compose <test>B : <define>_TEST=1 ;

feature.compose <test>C : <define>_TEST=2 ;

feature.compose <test>D : <define>_TEST=3 ;

feature.compose <test>E : <define>_TEST=4 ;


exe main : main.c : <test>A ;


And for some reason, _TEST=4 is always set even though I am specifying that <test>A  (_TEST=0 is also set) should be used. I am obviously misunderstanding the documentation regarding the default value of test since I would have expected it to not be used in this case.  Can someone explain why this is happening and how I can have a default value set when <test> is not specified but when it is specified, have it use the specified value not the default?


$ boost-build/bin/bjam.exe -d2 -a

...found 11 targets...

...updating 3 targets...


file bin\msvc-8.0\debug\test-A\threading-multi\main.obj.rsp

"main.c" -Fo"bin\msvc-8.0\debug\test-A\threading-multi\main.obj"    -TC /Z7 /Od /Ob0 /W3 /GR /MDd /Zc:forScope /Zc:wchar_t -c



compile-c-c++ bin\msvc-8.0\debug\test-A\threading-multi\main.obj


    call "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86 >nul

cl /Zm800 -nologo @"bin\msvc-8.0\debug\test-A\threading-multi\main.obj.rsp"




file bin\msvc-8.0\debug\test-A\threading-multi\main.exe.rsp



msvc.link bin\msvc-8.0\debug\test-A\threading-multi\main.exe


        call "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86 >nul

link /NOLOGO /INCREMENTAL:NO /DEBUG /MACHINE:X86 /subsystem:console /out:"bin\msvc-8.0\debug\test-A\threading-multi\main.exe"   @"bin\msvc-8.0\debug\test-A\threading-multi\main.exe.rsp"



msvc.manifest bin\msvc-8.0\debug\test-A\threading-multi\main.exe


        if exist "bin\msvc-8.0\debug\test-A\threading-multi\main.exe.manifest" (

            call "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86 >nul

mt -nologo -manifest "bin\msvc-8.0\debug\test-A\threading-multi\main.exe.manifest" "-outputresource:bin\msvc-8.0\debug\test-A\threading-multi\main.exe;1"



...updated 3 targets...








This e-mail and any attachments may contain confidential material for the sole use of the intended recipient. If you are not the intended recipient, please be aware that any disclosure, copying, distribution or use of this e-mail or any attachment is prohibited. If you have received this e-mail in error, please contact the sender and delete all copies.

Thank you for your cooperation.