[Haskell-cafe] Organizing big repository

Evan Laforge qdunkan at gmail.com
Thu Oct 27 22:00:19 CEST 2011

On Thu, Oct 27, 2011 at 10:02 AM, Konstantin Litvinenko
<to.darkangel at gmail.com> wrote:
> I am trying to understand how to organize my code and edit-compile-run
> cycles. I can't figure out how to setup environment in such why that when I
> build some program using cabal, cabal will rebuild program dependencies if
> some was changed. I don't want to configure/build/install manually.
> Having program 'foo' depends on lib 'bar' I want to edit some files in 'bar'
> than build 'foo' and get 'bar' rebuilt and 'foo' rebuilt/relink.
> How can I do this?

I use make.

I think cabal may not have any understanding of rebuilding
dependencies, it just calls ghc --make, which does dependency
resolution on its own, but only for one target.  You could just always
build all the deps and rely on ghc --make to figure out if any
recompilation need be done, but it will get slow as the number of
files increases.

There's a haskell-using build system called "shake" that shows
promising, but the open source version openshake seems to be on hold
at the moment.  So as far as I know there isn't really a build system
for larger or cross language haskell repos beyond make (I've played
with waf some, that also might be a possibility).

More information about the Haskell-Cafe mailing list