----------------------------------------------------------------------------- INTRODUCTION Mercury has been ported to Windows 95 and Windows NT using the "Cygwin" (formerly also known as "Cygwin32" and "gnu-win32") Unix emulation package from Cygnus. It should work on Windows 98 too, but we haven't tested that. This file documents how to build the source distribution of Mercury on Windows using Cygwin. (Note: we don't have any plans for a port to Windows 3.1.) ----------------------------------------------------------------------------- PREPARATION To use or build Mercury on Windows, you need to first get Cygwin from Cygnus, and install it. If you're going to use a binary distribution of Mercury for Windows, you need to make sure that you get a version of Cygwin that is compatible with the one that the binary distribution was compiled with. This will normally be specified in the filename of the Mercury binary distribution. For example, if the file name is mercury-0.8.1.pc-windows-cygwin-b20.1.tar.gz then you need version b20.1 of Cygwin. The version of gcc that came with Cygwin version b19 (and b19.1), called `gcc 2.7-b19', had a bug which causes it to generate incorrect code when compiling Mercury. So if you want to use Cygwin version b19, then you need to also install a version of gcc that has this bug fixed, such as egcs version 1.0.2 or later. It's probably simpler to just get version b20.1 or later of Cygwin. You can download Cygwin from . Follow the installation instructions that come with Cygwin. Make sure that the Cygwin binaries are in your PATH, that you have a /tmp directory, that you have a copy of sh.exe in /bin. Before continuing, check that `sh' and `gcc' work. For more information on Cygwin, see the Cygwin web site mentioned above. ----------------------------------------------------------------------------- RUNNING CONFIGURE Configure with sh configure as described in the INSTALL file. Reportedly running configure sometimes results in permission errors, but apparently the errors go away if you run configure a second time. This is probably due to a bug in Cygwin. If you are using Cygwin version b18, and you want to use the `--prefix' option to configure to install Mercury onto a different drive, then you should probably first use the `mount' command to mount that drive (e.g. `mount d:/ /d'), and use the mount name (e.g.`configure --prefix /d/foo'), rather than using the `//d' notation (e.g. --prefix //d/foo'). We got a report that using the `//d' notation (a Cygwin feature: this is supposed to name the root directory of drive `d') does not work with the version of gcc included with Cygwin version b18. In addition, support for the `//d' notation is going to be dropped from future versions of Cygwin. ----------------------------------------------------------------------------- RUNNING MAKE Due to bugs in Cygwin, you need to apply the patches which are listed at the end of this file: patch < README.MS-Windows Also, the date-stamps seem to get screwed up by Cygwin; to avoid errors about `mercury_compile: Command not found', or `makeinfo: Command not found', you need to do the following: touch configure make touch_files Then do make ----------------------------------------------------------------------------- RUNNING MAKE INSTALL Just type make install ----------------------------------------------------------------------------- USING MERCURY Once you've finished installing, you need to add the appropriate directory, normally /usr/local/mercury-/bin, to your PATH. You should be able to read the HTML version of the Mercury documentation, which by default gets installed in /usr/local/mercury-/lib/mercury/html, using Netscape or MS Internet Explorer. Or you can get a copy of GNU Emacs for NT and use it to browse the INFO version. If you use mmake files named `Mmake' rather than `Mmakefile', there can be some problems with case-insensitive filenames and the name clash between `mmake' and `Mmake'. If you run into any such problems, rename your `Mmake' file to `Mmakefile'. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- --- Mmakefile Sat Feb 7 02:48:13 1998 +++ Mmakefile.windows Sat Feb 7 02:49:58 1998 @@ -23,8 +23,8 @@ #-----------------------------------------------------------------------------# # For Windows 95 or Windows NT, uncomment the following two lines: -# PREINSTALL_HACK = preinstall_hack_for_windows -# POSTINSTALL_HACK = postinstall_hack_for_windows +PREINSTALL_HACK = preinstall_hack_for_windows +POSTINSTALL_HACK = postinstall_hack_for_windows #-----------------------------------------------------------------------------#