$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: [boost] [build] Tests automatically create header links, but library builds do not
From: Peter Dimov (lists_at_[hidden])
Date: 2015-01-03 12:00:30
If I remove my boost/ directory, and attempt to build, for example, atomic, 
by going into libs/atomic/build and invoking b2, it fails due to a missing 
header:
D:\tmp2\libs\atomic\build>b2 toolset=msvc-8.0
...found 1 target...
...updating 1 target...
msvc.write-setup-script 
C:\Users\PETERD~1\AppData\Local\Temp\b2_msvc_8.0_vcvarsall_x86.cmd
...updated 1 target...
...found 1 target...
...updating 1 target...
msvc.write-setup-script 
C:\Users\PETERD~1\AppData\Local\Temp\b2_msvc_8.0_vcvarsall_x86_amd64.cmd
...updated 1 target...
Performing configuration checks
    - symlinks supported       : no
    - junctions supported      : yes
    - hardlinks supported      : yes
...found 208 targets...
...updating 5 targets...
common.mkdir 
..\..\..\bin.v2\libs\atomic\build\msvc-8.0\debug\threading-multi
compile-c-c++ 
..\..\..\bin.v2\libs\atomic\build\msvc-8.0\debug\threading-multi\lockpool.obj
lockpool.cpp
..\..\..\boost/atomic/detail/ops_msvc_x86.hpp(20) : fatal error C1083: 
Cannot open include file: 'boost/type_traits/make_signed.hpp': No such file 
or directory
[...]
Same if I do b2 --with-atomic from root.
However, if I go into, say, libs/smart_ptr/test and invoke b2 there, it 
works:
D:\tmp2\libs\smart_ptr\test>b2 toolset=msvc-8.0
...found 1 target...
...updating 1 target...
msvc.write-setup-script 
C:\Users\PETERD~1\AppData\Local\Temp\b2_msvc_8.0_vcvarsa
ll_x86.cmd
...updated 1 target...
...found 1 target...
...updating 1 target...
msvc.write-setup-script 
C:\Users\PETERD~1\AppData\Local\Temp\b2_msvc_8.0_vcvarsa
ll_x86_amd64.cmd
...updated 1 target...
Performing configuration checks
    - symlinks supported       : no
    - junctions supported      : yes
    - hardlinks supported      : yes
...patience...
...found 1722 targets...
...updating 1253 targets...
common.mkdir ..\..\..\bin.v2\libs\smart_ptr
common.mkdir ..\..\..\bin.v2\libs\smart_ptr\test
common.mkdir ..\..\..\bin.v2\libs\smart_ptr\test\yield_k_test~mt.test
common.mkdir 
..\..\..\bin.v2\libs\smart_ptr\test\yield_k_test~mt.test\msvc-8.0
common.mkdir 
..\..\..\bin.v2\libs\smart_ptr\test\yield_k_test~mt.test\msvc-8.0\debug
common.mkdir 
..\..\..\bin.v2\libs\smart_ptr\test\yield_k_test~mt.test\msvc-8.0\debug\threading-multi
mklink-or-dir ..\..\..\boost\smart_ptr
Junction created for ..\..\..\boost\smart_ptr <<===>> 
..\include\boost\smart_ptr
link.hardlink ..\..\..\boost\predef.h
Hardlink created for ..\..\..\boost\predef.h <<===>> 
..\..\predef\include\boost\predef.h
[...]
Why is that?
My first thought was that this was due to the fact that I was missing 
libs/Jamfile.v2 (I do various "clean" installations as an experiment to see 
what's needed and what isn't), but I put it back there and it doesn't help.