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