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