# hmake - a make tool for Haskell programs

What is hmake? How do I use it? hmake interactive (hi) hmake-config runhs | Recent news Downloads Build and install Known bugs Contacts

### What is hmake?

- hmake is a compilation manager for Haskell programs. See hmake.html for more details.
- hmake interactive, or hi for short, is an interactive program development environment for Haskell, rather like Hugs. See interactive.html for more details.
- hmake-config is an auxiliary tool for managing the set of compilers known by hmake, useful when you install a new compiler, or a new version of a compiler. See hmake-config.html for more details.
- runhs is a `#!` script 'interpreter' for Haskell, using hmake underneath to build and run the program script. See runhs.html for more details.

### Recent News

The current version is hmake-3.13 (date 2006-11-01).

- No, really fix hmake to build with ghc-6.6.

The previous version was hmake-3.12 (date 2006-09-12).

- New feature: hmake -M dependency analysis now adds "# -cpp" if cpp is required.
- Fix to enable hmake to build with ghc-6.6.

See changes.html for the full history of versions, bugfixes, and other updates.

Currently known bugs are listed in bugs.html.

### Download

Download the full hmake sources from
`http://www.haskell.org/hmake/hmake-3.12.tar.gz`

Mirror at:
`ftp://ftp.cs.york.ac.uk/pub/haskell/hmake/`
`http://www.cs.york.ac.uk/fp/hmake/hmake-3.12.tar.gz`

Fedora: `http://haskell.org/fedora/`

If you're running the unstable version of Debian GNU/Linux system, you can download and install hmake with a command like `apt-get install hmake`, or download the package file from: `http://ftp.debian.org/debian/pool/main/h/hmake/` (The package is not yet available for the stable version of Debian.)

(Note: If you have the nhc98 compiler, then you already have some version of hmake. However, if you installed another compiler after nhc98, you will probably need to run hmake-config to add the new compiler to hmake's database. Also, it is perfectly safe to download a newer version of hmake and install it on top of the version that came with nhc98.)

### Configure, compile, and install

      $ ./configure  --prefix=/my/installation
      $ make
      $ make install

Use

      $ configure --help

to discover what options you can change at configuration time. The configuration process actually does quite a good job of detecting what Haskell compilers you have, where they live, and anything special they might need. However, should you need to change anything by hand, after installation, use the hmake-config utility.

Notes

`harch' is a little script for determining your processor/OS combination. It is supplied because many sites have heterogeneous networks of machines all accessing a common filespace. You only need to install one copy of the `hmake' script, which uses `harch' to select the correct executables for any particular machine.

For hi to work on the Windows/Cygwin platform, you must export the SHELL environment variable before starting the interpreter.

The system-wide hmakerc configuration file lives in:

        /usr/local/lib/hmake/$MACHINE/hmakerc

(Of course, you don't have to use the root location /usr/local for your installation. Just use --prefix= at configuration time to reflect your preference.)

A personal hmakerc configuration file can live in:

        $HOME/.hmakerc/$MACHINE

Normally, a user will simply use the system-wide hmakerc. If you want to make any customisations, for instance to add a new compiler or change the default, you first need to create a personal hmakerc file with hmake-config new. Only the person who installs hmake can change the system-wide hmakerc.

### Contacts

Please send bug reports, bug fixes, and suggestions for improvements to `Malcolm.Wallace@cs.york.ac.uk`

Copyright

hmake is based on code from hbcmake and nhc13make, which are both
© copyright to Thomas Hallgren, 1991-1997,
with additions and modifications © copyright to Malcolm Wallace, 1998-2006.
Hmake interactive (hi) is © copyright to Malcolm Wallace, 2000.
Hmake-config is © copyright to Malcolm Wallace, 2002-2005.

You may use, re-distribute, or modify this software under the terms of this licence.

Some library code is incorporated from cpphs, which is © copyright to Malcolm Wallace, 2004-2006, and distributed under a separate licence, the LGPL.

Runhs is © copyright to Malcolm Wallace, 2005, and is licensed under the GPL.

The latest updates to this software are available on the WWW from `http://www.haskell.org/hmake/` (main site)
`http://www.cs.york.ac.uk/fp/hmake/` (mirror)

Information last updated: 1st Nov 2006
York Functional Programming Group
Malcolm.Wallace@cs.york.ac.uk