I could use a little help figuring out the best way to get around this problem.

Suppose I have something like this in my Jamroot:

   lib BOOST_THREAD 
     : : <file>$(BOOST_LOCATION)/lib/libboost_thread-mt.so
       <cxxflags>-pthread
     : : <include>$(BOOST_LOCATION)/include/boost-1_39 ;

   use-project /APPROOT : . ;
   use-project /MY_PROJ : MyProj ;

   build-project MY_PROJ ;

   install install-bin : MY_PROJ 
     :
       <install-type>EXE
       <variant>release:<location>$(INSTALL)/release/bin
       <variant>debug:<location>$(INSTALL)/debug/bin
       <install-dependencies>on
       <hardcode-dll-paths>false
   ;

   install install-lib : MY_PROJ :
       <install-type>LIB
       <variant>release:<location>$(INSTALL)/release/lib
       <variant>debug:<location>$(INSTALL)/debug/lib
       <install-dependencies>on
       <hardcode-dll-paths>false
   ;

And in the Jamfile for MyProj:

   exe MyProj 
     : /APPROOT//BOOST_THREAD
       [ glob src/*.cpp ]
     : <include>include
   ;

And suppose that in $(BOOST_LOCATION)/lib, libboost_thread-mt.so is actually a symlink to libboost_thread-gcc43-mt-1_39.so.1.39.0.

The problem I'm having is that when I build the thing from the Jamroot directory, and it installs and brings in dependencies, it copies a file named "libboost_thread-mt.so", but if I do a ldd on MyProj, it says it's looking for "libboost_thread-gcc43-mt-1_39.so.1.39.0".  I'm completely baffled as to why.  Shouldn't the executable depend on the library with the name I gave it in Jamroot?  Or if not, shouldn't it copy the library with the longer name that the executable is really dependent on?  (I mean, the option is called "install-dependencies," not "install-irrelevant-stuff," right?)

I'm a relative newbie on this sort of stuff, so any efforts to help me actually *understand* what's going on here would be greatly appreciated.

Thanks,

Alex Wagner