`hmake' - a tool for automated compilation of Haskell programs
`hmake' is a tool similar to the standard Unix Make tool, but tailor-made
for compiling Haskell programs. It has at least two advantages over
the standard Make tool:
* `hmake' automatically extract dependencies from the source files.
This removes the need to construct and maintain Makefiles of the kind
used by the ordinary Make tool, and it makes it easy to compile large
programs distributed over several directories or to keep several
smaller programs, possibly sharing some modules, in the same
directory.
* Haskell differs from the languages taken into account when the
standard Make tool was designed, in that compilers often generate two
files for each module compiled: an object file and and interface file.
The object file is updated each time the module is compiled. The
interface file is updated only when the interface information changes,
in which case it will be necessary to recompile other modules that
import from this module. This behaviour is tricky to express in the
Makefiles used by Make, but is handled correctly by `hmake'.
`hmake' is implemented as a Haskell program and a shell script (obey file
on RISC OS). The Haskell program extracts the dependencies from the source
files and generates the appropriate list of compilation commands in the
appropriate order. The shell script (obey file) parses command line
arguments, invokes the Haskell program and finally executes the commands
generated by the Haskell program.
|