
On Thu, Jul 28, 2005 at 02:07:53PM -0500, Brian Smith wrote:
On Thu, Jul 28, 2005 at 11:53:23AM +1000, Bernard Pope wrote:
Is it a goal of cabal to be able to avoid autotools?
It seems to be. The Visual Haskell Studio.NET project uses _just_ the Cabal package description to build projects. So, if your Cabal project requires autotools then it won't work in that environment. In general, it seems like at least the GHC and Hugs teams want to support Windows users that don't have MinGW/MSYS or Cygwin (which means that they don't have autotools).
Some packages interfacing to C need to discover information that varies between systems: which functions and header files are available, which header files and libraries are needed to get certain C functions, various quirks of compilers, etc. That information needs to go into the .buildinfo file, and possibly header files used by C and Haskell code. On Unix systems, autoconf does all that fairly efficiently. It's true that such packages can't be used under Windows, at least not without tweaking the .cabal or .buildinfo files by hand. That's unfortunate -- we need something new to make such packages work under Windows. But at least the answers to all those questions are (mostly) invariant across Windows systems. So perhaps we could combine autoconf for Unix with fixed files for Windows (and any other non-Unix systems that come along).