Hi I'm new to jam.  I am working on a project that is built with boost jam (version 3.1.13), using almost none of the provided rules.  I am trying to break the code into smaller projects that can be built independent from each other.  Each project needs to compile/link with a specific version of some common code that is in a separate directory.  I would like the intermediate build files to go in a separate directory tree, organized by source directory location so that the common code doesn't need to be rebuilt for each project.

I have set up a basic project to experiment with that doesn't use any of our custom rules.  I have TOP defined in my environment.  From TOP my directory structure looks like this:

TOP:
Jamrules

TOP/src:
Jamfile  hello.cc

TOP/swap_code:
swaps.cc  swaps.hh

My Jamrules file defines only the compiler options/locations to work with the basic jam rules.

Here is TOP/Jamfile:
#######################
SubDir TOP src ;
SubDir TOP swap_code ;

Main hello : hello.cc swaps.cc ;
#######################

With this setup, src would represent the main project a user is trying to build, and swap_code represents the read-only code that must be compiled/linked with the files in src.  Now when I run Jam from TOP/src, all of my files end up in the exact wrong location, the swap_code directory:

-> ls ../swap_code/
hello  hello.o  swaps.cc  swaps.hh  swaps.o

I'd really appreciate any help that can be provided.  I've spent over a week scouring the web/www.boost.org/perforce site/mailing lists/etc trying to find how to do this.  If someone could point out what I'm doing wrong, or point me in the right direction I'd really appreciate it.

Thanks in advance,
Ashley