I've been thinking about modularity problems (aside from actual module systems).  One of the problems I have is that invoking gsc from a Makefile is pretty rough because of dependencies.  I almost always end up with files not recompiling.

I'm thinking of a simple build tool which takes a directory structure like so:

bin/
lib/
test/

And just does the right thing.  All the lib files compiled independently, with dependencies calculated, files which have a hash mark in them are skipped.  The resulting files are linked against each program in bin/ and test/, and test programs are run.

Just this much functionality would be a huge improvement for my workflow.

Deisgn thoughts?
-Jason