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