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

_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to