Build system woes
Simon Marlow
marlowsd at gmail.com
Wed Jul 30 09:46:41 EDT 2008
We can talk about the general issues on IRC. But I thought I'd answer a
few of the specific questions quickly:
Roman Leschinskiy wrote:
> I don't think I understand how GHC itself is built any longer, either.
> What does cabal-bin do?
It's effectively a pre-compiled Setup.hs for packages that have no need for
a custom Setup.hs. cabal-install does the same job for end-users, but we
can't rely on having cabal-install in the GHC build system.
> What is runghc.wrapper?
it's a template used to make a shell wrapper for a binary. There seems to
be new functionality in Cabal to support this.
> What is the difference
> between make.library.* and build.library.* and why do we need both
This one is my fault. build.* runs 'cabal-bin build', whereas make.* runs
'cabal-bin makefile' followed by 'make'. That is, build.* ends up using
ghc --make, whereas make.* ends up using a traditional makefile with ghc -M
for dependencies and individual single-module compilations. The latter was
added so that we could (a) use make -j and (b) compile single modules for
testing/debugging purposes.
We don't *need* both - the build system normally only uses make.* (and it
would also work perfectly well using build.*, except you'd get no
parallelism). One day make.* will go away when Cabal provides the
necessary functionality via 'cabal build'.
> (and why doesn't one of them work for dph)?
no idea about that, sorry.
Cheers,
Simon
More information about the Glasgow-haskell-users
mailing list