[Haskell-cafe] binding to C libraries on Windows was Low Level Audio - Writing bytes to the sound card?

john lask jvlask at hotmail.com
Sat Dec 5 17:17:45 EST 2009

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.

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.

Other packages such as SDL package are relatively straightforward to 
build on windows - all that is required is to have an import library 
corresponding to your dll (or static lib) and the headers. You then 
update the library path field in the cabal file and include path. There 
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. If you don't have ".a" import library 
but have the dll then the '.a' import library be built for any dll 
relativley easily.

The correct '.a' import libraries and the libraries themselves for many
standard unix/gnu packages can be found under the gnuwin32 project. Many 
unix libraries provide a windows build based on the mingw port of the 
gcc tool chain which will contain the correct import library.

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)

Another problem hampering the install of haskell packages on windows is 
the use of the unix autoconf build system (./configure) , for which 
there is no substitute on windows other than cygwin and to lesser extent 
msys/mingw, this problem could be obviated by the provision of a 
standard win32 conf (forgetting about win64 for the moment) - package 
writters note!

> Date: Sat, 5 Dec 2009 20:58:14 +0000
> Subject: Re: [Haskell-cafe] Low Level Audio - Writing bytes to the sound card?
> From: stephen.tetley at gmail.com
> To: Haskell-Cafe at haskell.org
> CC: 
> Hi Andrew
> 2009/12/5 Andrew Coppin <andrewcoppin at btinternet.com>:
> > I don't think it should be necessary to install a Unix emulator just so that
> > I can write Windows programs. Maybe others disagree.
> >
> ...
> >
> > I'm by no means an expert here, but isn't it usual for C libraries on
> > Windows to be supplied as a compiled DLL and a header file for using it? I
> > don't quite understand why you need a C compiler.
> The thing is, all the bindings on Hackage (or at least something most
> likely above 95%) are to "Unix" C libraries so you need a C compiler
> and a Unix emulator to use them. I do have have some sympathy with
> your point though - it is possible to get things to compile once you
> have Cygwin, but deployment on any other machine Windows thereafter is
> 'challenging' to say the least.
> > Apparently there is some talk of removing OpenGL from the Haskell Platform.
> > And if this happens, it'll be one more thing I can't use on Windows. :-(
> I didn't realise until I looked today that OpenGL was in the Haskell
> Platform. If the proposal to remove it is from Sven Panne then fair
> enough, otherwise it would be a bit disappointing - it always "just
> worked" when it was part of GHCs extralibs...
> Best wishes
> Stephen
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
If It Exists, You'll Find it on SEEK Australia's #1 job site
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20091205/0abf8b3f/attachment.html

More information about the Haskell-Cafe mailing list