On Dec 19, 2006, at 7:50 PM, Neil Mitchell wrote:
Have you looked into Bakefile or Interscript?  CMake looks more
powerful than Bakefile, which ends up using nmake on Windows, while
Interscript is really a literate programming language with the
ability to execute scripts.  Interscript works very well for Felix
but it is a bizarre system to work with.

No, haven't really looked at others than that. The original Yhc reason
for going to Scons was that KDE 4 is going to use it for all
platforms, including Windows. Since then, then dropped Scons and moved
to CMake - I am just playing follow the leader :)

I am doing essentially the same thing trying to get a Windows build together--trying to find a build system that:
(1) makes changes easy;
(2) encapsulates dependency searches for various operating systems and compiler settings for various compilers (gcc, CL); and,
(3) manages different build types, including tests.

So far, (2) is the main concern for Windows. My real worry is Windows Vista: the most recent reports I have seen show that mingw32 requires a special runtime dll and Administrator privileges to run while cygwin is buggy. The immediate problem GHC has is the CL compiler--and, probably, default front-end for the linker, depending on the link options required. Unless someone wants to redo the current Autotools build system to use the CL compiler and promptly discard it for a Windows-native build, the best thing to do is convert the build system to one that will use the CL compiler automatically.

I think Yhc will stick with Scons for a while yet, but if you do find
what the "one true answer" is, we'd love to hear it!

If I am the one who ends up rewriting the build system for GHC, chances are I will have learned enough to write Yhc's for you :)

It might be possible to
adapt or extend Cabal, even...

As it currently stands, that sounds like a very painful way to uncover
new cabal bugs :)

The way Cabal works, in the absence of Make everything would have to be done with hooks in Distribution.Simple and in any case it won't work outside of MSYS or Cygwin because it relies on configure shell scripts :( Dash it all, this is Haskell we are dealing with here! Although making a build system involves creating a small scripting language, interfacing to different system types (for search, file names, compilers, etc.) and managing directories, recompilation and testing it can't be that difficult to do it in Haskell; GHC's --make does a lot of the work already and (from the Yhc page) Yhc will support --depend enough fairly soon. A really great system would be truly dynamic (create functions on the fly) for certain operations and a truly excellent system may even be interactive, so users may correct errors and continue compiling--Lispy stuff. Just an idea.

Cheers,
Pete

_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to