Version control systems

Simon Marlow marlowsd at gmail.com
Wed Aug 13 04:03:34 EDT 2008


Matthias Kilian wrote:

> I mean the GHC-specific template used for building the Makefile
> (Distribution/Simple/GHC/Makefile.in) and the function `makefile`
> in Distribution/Simple/GHC.hs (this function even spills out some
> some make rules in addition to what's in Makefile.in, which looks
> very wrong to me).
> 
> Yes, it relies only on the Cabal metadata, but the output is a
> Makefile only useful for building GHC.

Ok, this statement is plainly not true, since I can use 'cabal makefile' 
to build any package outside of the GHC build tree.  So perhaps I've 
misunderstood your point?

> It'd be better to be able to run
> 
> $ ./Setup mkmetadata -prefix foo-
> 
> which just produces some simple variable declarations like
> 
> 	foo-impl-ghc-build-depends = rts
> 	foo-impl-ghc-exposed-modules = Data.Generics Data.Generics.Aliases ...
> 	...
> 	foo-exposed-modules = Control.Applicative Control.Arrow ...
> 	...
> 	foo-c-sources = cbits/PrelIOUtils.c cbits/WCsubst.c ...
> 	...
> 	foo-windows-extra-libaries = wsock32 msvcrt kernel32 user32 shell32
> 	foo-extensions = CPP
> 	foo-ghc-options =  -package-name base
> 	foo-nhc98-options = -H4M -K3M

Yes, we could use this to implement GHC's build system.  It's somewhat 
similar to the scheme I suggested in the other thread, but more generic. 
  I'd be completely happy to do it this way if the functionality would 
be useful to others outside GHC too.

Cheers,
	Simon



More information about the Glasgow-haskell-users mailing list