So today's primary bogus result is courtesy of is due to leaving public headers hiding in modules/class/*.h paths for our builds.
I'd suggest one of two approaches, pick a favorite solution? [ ] Have the top level build copy all modules/*/mod_*.h definitions to the build tree include/ path (conditionally, based on datestamp)? [ ] Make individual modules/*/Makefile[*] responsible for moving their headers into the build tree include/ path (conditionally, based on datestamp)? Advantage to option 2 is that we could add magic to exclude those headers for modules not built. Advantage to both options is that we eliminate all of the module-specific cross-module-class inclusions. Overall logic change should be close to nill, since the 'make install' path no longer needs to be smart enough to look throughout all of the modules/*/mod_*.h files for the target installation. What doesn't end up in include/ wasn't needed for the target install tree anyways.