Imported from Trac wiki; be wary of outdated information or markup mishaps.
Cabal does not currently do any of its own dependency tracking, it
ghc --make for this. Many desirable features in Cabal rely
on this capability.
Saizan's GSoC project aimed to create a dependency framework for use in Cabal. This page describes the plan for integration.
Instead of directly integrating the new framework into Cabal the plan is
to develop things in an external usable
hbuild tool and eventually to
completely replace the building code in Cabal with this new system.
The first major milestone is to make a tool with the use case and rough
feature set of
ghc --make (though not with all of
command line options!), supporting parallel builds. Specifically that
means cases like:
$ hbuild -j 4 -i src Foo.Bar Foo.Baz
and it will look for source files to compile those modules, including chasing pre-processors. But essentially zero configuration. No equivalent of the .cabal file.
The next major milestone should be to integrate configuration into the
dependency framework. This involves getting configuration from the
.cabal file which provides extra targets like libraries and
executables. It also involves making sure things are rebuilt as
appropriate when configuration setting change.
The code is available via darcs and can be built using cabal.
darcs get --partial http://code.haskell.org/hbuild/