Installing nhc98 under Windows

System Requirements

In order to use nhc98 under Windows 95/98/SE/Me/NT/2000/XP, you first need to install the Cygwin DLL, the gcc C compiler, and GNU tools.

Full information on Cygwin, and downloads, are available from

For recent releases of Cygwin (from 1.1.0 onwards), you should download the small utility called setup.exe from a Cygwin mirror FTP site and follow its instructions to install the toolset. This is an interactive process where you can choose which components to collect and install.

Alongside the default set of packages that Cygwin installs for you, you will also need: gcc, binutils, tar, bc, gunzip, and make.

We tested successfully with Cygwin DLL release 1.3.20, together with gcc 3.2 and make 3.79.1, in March 2003.

And now...

Once you have installed gcc and tools, the standard installation instructions apply. You have the option of installing the binary or source distribution packages. (A prior installation of Cygwin is required even for the binary distribution.)


Caution: Some people report that their anti-virus software interacts badly with Cygwin, slowing the entire Windows system to a crawl. If you are surprised by the slowness of your system, try disabling (or changing the settings in) your anti-virus package.

Notes for GHC users: If you previously tried to build nhc98 on a Cygwin system with a version of GHC upwards of 5.00, then you might have encountered significant problems getting hmake or nhc98 to work. We believe these problems are all now fixed from nhc98 version 1.16 upwards.

Notes for older Cygwin releases: Some people have reported difficulty getting recent releases of nhc98 to build with older versions of Cygwin. The make fails very quickly, saying that there is "no rule to make target .../src/runtime/Kernel". This could be due to one of several causes.

  • Ensure that the environment variable MAKE_MODE is set to UNIX.
  • Gnu-make's $(patsubst ...) can't handle spaces in directory pathnames - so please ensure you don't have any!
  • Untarring the source package sometimes mistakenly creates directory names in upper-case instead of lower-case. (Ensure you untar in Windows itself, rather than onto a Windows partition from Linux, for example.)
  • Some distributions of Gnu-make do not handle globbing in static pattern rules as they should. (make 3.75 in Cygwin b20 is broken, although the same version works correctly on other platforms.) Upgrade (or downgrade) to a different (working) version of make.

The latest updates to these pages are available on the WWW from

Information last updated: 3rd January 2005
York Functional Programming Group