$include_dir="/home/hyper-archives/boost-build/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-build] Shared lib target is always rebuild
From: Pavel Machyniak (machyniak_at_[hidden])
Date: 2012-05-18 04:49:34
Hi,
When building a shared lib, the target is always rebuild. Tested on Windows
with MSVC toolset, with boost-build from boost 1.49.
Example:
### jamfile.jam ###
lib aaa : a.cpp : <link>shared ;
---
### a.cpp ###
void test() {}
---
To minimize output lets do release build. After running `bjam release` everything is build. When running `bjam release` second
time, `aaa.dll` is build again. Listing of `bjam release -d+3`:
D:\Temp\test>d:/libs/boost/1.49/bjam.exe release -d+3
...
make -- <p.>a.cpp
make -- <p.>a.cpp
bind -- <p.>a.cpp: a.cpp
time -- <p.>a.cpp: Thu May 17 19:51:24 2012
made stable <p.>a.cpp
made stable <p.-object(c-scanner)@61>a.cpp
made stable <pbin\msvc-10\release\threading-multi>a.obj
make -- <pbin\msvc-10\release\threading-multi>aaa.dll
make -- <pbin\msvc-10\release\threading-multi>aaa.dll
time -- <pbin\msvc-10\release\threading-multi>aaa.dll: unbound
make -- <pbin\msvc-10\release\threading-multi>aaa.lib
make -- <pbin\msvc-10\release\threading-multi>aaa.lib
bind -- <pbin\msvc-10\release\threading-multi>aaa.lib: bin\msvc-10\release\threading-multi\aaa.lib
time -- <pbin\msvc-10\release\threading-multi>aaa.lib: missing
make -- <pbin\msvc-10\release\threading-multi>aaa.lib
make -- <pbin\msvc-10\release\threading-multi>aaa.lib
time -- <pbin\msvc-10\release\threading-multi>aaa.lib: unbound
made+ missing <pbin\msvc-10\release\threading-multi>aaa.lib
made* stable <pbin\msvc-10\release\threading-multi>aaa.dll
made update all
It seems that it is missing `aaa.lib`, but it is never build. In output dir there are:
a.obj
a.obj.rsp
aaa.dll
aaa.dll.rsp
Thanks
Pavel Machyniak