john lask wrote:
I think there are some misapprehensions here:-
Many haskell packages binding to c libraries will compile with ghc
without problems on windows - without cygwin, without mingw/msys system.
OK, well I haven't tried building every C binding on all of Hackage,
just a few of them. So far none of them have worked. (Including
wxHaskell, SDL, one of the database packages, etc.) It's got to the
point where I've simply given up trying. Most such packages just don't
seem to work on Windows, and nobody on the mailing lists or on IRC has
any clue why. (I guess because few people in the Haskell community use
Windows and understand how it's supposed to work.)
Some such packages build "out of the box" on windows, like the zlib
package which contains the c source for the c zlib library. GHC is able
to compile and build this packages without any other c
compiler/libraries/unix emulators etc because ghc itself contains part
of the gcc c compiler tool chain and comes with all c standard headers,
c++ headers and c/c++ runtime libraries.
Yes, I realised long ago that GHC uses GCC and other GNU build tools.
(Presumably this makes porting to Windows far easier.) More recently I
realised that it also includes a surprisingly large set of header files,
seemingly including the entire Win32 API, which is interesting.
is only one gotch-ya - you need to have a import library for the gcc
tool chain (thats what ghc uses) i.e. a ".a" library and not the native
windows ".LIB" import library.
They're different?? o_O
Oh. Suddenly several things seem clearer...
If you don't have ".a" import library
but have the dll then the '.a' import library be built for any dll
Any idea how?
the bigest problem hamperring cleaner builds of haskell packages on
windows is the lack of any standardised scheme for the installation of
c-libraries and header files (and of course the availability of a
suitable build of the library).
Isn't one of Cabal's jobs to figure out where stuff is? Can't we get
Cabal on Windows to say "hey, I need to find foo.h, you know where that
is?" Or something like that?
Another problem hampering the install of haskell packages on windows is
the use of the unix autoconf build system (./configure) - package
Heh. I found one Wiki page once describing how to set up a Cabal
package. When it started talking about how to integrate Automake, I hung
my head is dispair. (I believe the page in question is fixed now. But a
lot of package authors seem to assume that everybody just uses Unix of
Haskell-Cafe mailing list