Hello Graham,
(b) derives the list of files by including all *.d files, except those in directories named 'test' and except those which contain a main() function.
I'm thinking of how to make this work for the simple publication model of "Put it all out via HTTP/SVN/CVS/GIT/etc.". Anything that works for that should generalize well.
How about: Download files as needed to do imports from any local code but don't build them. Once you have copies of everything you need, build one lib per mapping rule that includes everything retrieved via that rule. At that point the name doesn't hardly matter at all. You can make it the FQN of the mapped package if you want it easy to interpret.
As for linker flags... pragams or header comments? or how about a default flags file at the root of the mapped source.
-- ... <IXOYE><
