I have been playing with Boost Build on simple projects for a while,  I though I would have a go at porting an existing complex project which use a very strange Makefile to use boost build instead.

This is the problem,  the project uses pre built dynamic libraries which are arranged like this:

/$(src_root_path)/$(library_name)/include/

with the binaries arranged like this

/$(bin_root_path)/$(library_name)/$(lib_version)/

This runs on a UNIX platform and the paths of the shared objects are hardcoded into the executable  ( <dll-paths> true ? )

At the moment I have got it working on one example by using this as a rule

lib monkey_biz : : <name>monkey_biz.6.5
                           <search>$(bin_root_path)/6.5/lib_debug
                            <include>$(src_root_path)/monkey_biz/src ;

(the debug and release versions of the libraries are in separate places too, but I think I can handle that!)

and repeating for every library, and adding this as a target later on.  Now while this functions, it is ugly and I know (hope?!) boost build can do better.

What I would like to do is have a list of (module_name,  module_version)  ,  pass each onto a function which than creates the target as above, so that the jamfile itself can be clear and simple.   Trouble is I'm not sure where to start.  Do I need to create a generator, or a class or something else.

Any help is appreciated.

Chris