ghc-shake is a compiler plugin which is comparable to ghc --make, but caches dependencies (through Shake). Here's an implementation that works with 7.10 (with frontend plugins; that patch hasn't been backported to 7.10) https://github.com/ezyang/ghc-shake
(The approach here is not so useful for ghc --make, probably, because shake maintains a separate file cache for information like dependencies.)
dobenour: SQLite, or really any single file database, could be used, but this would change GHC's compilation model to output some extra files besides the files it normally outputs. I'm a little loathe to do this when we ought to be able to just read out the cached dependencies from the interface files we generate.