H/Direct build on Windows (with mingw, by preference...)

Paul Moore pf_moore at yahoo.co.uk
Sun Apr 17 12:48:36 EDT 2005

I apologise if this is a FAQ - I have searched various places, but
not found anything. I'd be more than happy to be pointed at a
document I've missed.

I have GHC 6.4 installed on my Windows XP Pro PC, and the mingw free
compiler suite. I've downloaded H/Direct 0.21, and tried to follow the
instructions in the file INSTALL, but they don't work for me.

First of all, I tried the install using the standard Windows CMD. It
looks like the makefiles expect a Unix-type shell, as they fail due
to the lack of a "case" command:

>mingw32-make boot
"===fptools== Recursively making \`boot' in src ..."
"PWD = C:\Data\hdirect-0.21"
'case' is not recognized as an internal or external command,
operable program or batch file.
mingw32-make: *** [boot] Error 1

I then tried using the mingw "MSys" environment, which does give a
POSIX shell (bash). This failed because (I think) I am lacking

$ mingw32-make boot
===fptools== Recursively making `boot' in src ...
PWD = c:\Data\hdirect-0.21
==fptools== c:/apps/mingw/bin/mingw32-make.exe boot ;
 in c:\Data\hdirect-0.21/src
rm -f Version.hs
echo "--Automatically generated"         > Version.hs
echo "module Version where"             >> Version.hs
echo ""                                 >> Version.hs
echo "pkg_name :: String"               >> Version.hs
echo "pkg_name    = \"HaskellDirect (ihc.exe)\""    >> Version.hs
echo "pkg_version :: String"            >> Version.hs
echo "pkg_version = \"snapshot 170405\"" >> Version.hs
../../happy/src/happy -g   -g +RTS -H6m -RTS  Parser.y
process_begin: CreateProcess((null), ../../happy/src/happy -g -g +RTS -H6m -RTS Parser.y, ...) failed.
make (e=2): The system cannot find the file specified.
c:\apps\mingw\bin\mingw32-make.exe[1]: *** [Parser.hs] Error 2
c:\apps\mingw\bin\mingw32-make.exe: *** [boot] Error 1

OK, I got happy, and got going again. But it appears that something
weird happens with the NativeInfo file. I don't know much about
compiling Haskell (I'm pretty new at this, as must be apparent :-))
but from some investigation, it looks like NativeInfo is included as
a built in module in GHC 6.4, so the H/Direct build is clashing with
it. But if I try to exclude the provided NativeInfo, the built in one
is not being found properly. So I'm stuck.

Ultimately, I'd just like H/Direct binaries for Windows. I'm willing
to build them, but I'd like to not have to hack sources or makefiles,
download further packages, and generally debug the build process for
myself :-( A quick check of CVS shows no recent changes to any thing
that looks relevant, so I suspect that "use CVS" isn't going to be
the answer either...

As I say, I'm fairly new at this. I want to learn Haskell, but to
make it more "relevant" to me, I was hoping to do some simple stuff
using the Windows API and/or COM - so H/Direct looked like exactly
what I need.

Thanks for any help,
The only reason some people get lost in thought is because it's
unfamiliar territory -- Paul Fix

More information about the FFI mailing list