Let us say for example that I have six or so different builds of the boost libraries.  Some are built from source with certain compilers, some are installed from binary versions that others have built.  Some have one layout, some another.  I want to specify the configuration of each (includepath, librarypath, layout) and the conditions under which they should be used (target-os, toolset).  Of course, all that the developers should need to do is specify which libraries they want to use (e.g. /boost/file_system) and have the correct one used for whatever build they are attempting.

My best guess at an answer is to write a boost.jam similar to python.jam or qt?.jam or contrib/boost.jam that allows one to specify several "using boost" versions with conditions and then either generate the 180 or so "lib xxx" commands and let b2 pick the right ones based on the conditions, or generate the 30 or so "lib xxx" commands that are appropriate for the current build.  Which would be better or is there some easier solution?