
Steven Watanabe wrote:
3. Old-school buildable libraries. These have a dependency on /boost/headers.
4. Newfangled buildable libraries. These enumerate all of their dependencies in their Jamfile, including type 2 header-only ones. If they use no type 1 libraries, they don't need a dependency on /boost/headers, and don't need the header links.
I mostly agree with you, except for one issue: This is severely complicated by the fact that the dependency on headers is currently implicit. How are we going to distinguish (3) from (4)? If we're making incremental updates, then we can't make any changes at all to the old-school libraries, so we can't rely on them telling us that they need /boost/headers.
There aren't that many type 3 libraries, and they already have build/Jamfiles, so making the dependency explicit for type 3 is feasible. We can just add it to them. Testing might be a problem. test/Jamfile for header-only type 1 libraries needs the implicit headers too. Still doable though.