The hmake compilation toolHmake is intended as a replacement for both hbcmake and nhc13make, and also for those complex ghc Makefiles (although I have not tested the ghc option yet). For those who are unfamiliar with hbcmake etc., the big advantage is that you don't have to write a Makefile - the tools extract dependencies automatically from your source files, and issue appropriate commands to rebuild your target. In particular, they know about .hi interface files - even though a source module has changed, if its interface file has not changed, then other modules which import it do not need to be recompiled. The basic option summary is: Usage: hmake [-nhc13|-hbc|-ghc] [-q] [-n] [-g] [opts] target ... OptionsMost options are passed straight through to the appropriate compiler. However, hmake understands and strips the following options.
Hmake also makes use of some compiler options if you specify them.
Some options are passed to the compiler's runtime system (using whatever underlying mechanism is appropriate for the particular compiler).
You can force an option which would otherwise be interpreted by another part of the system to be passed to the compiler by enclosing it within +CTS ... -CTS delimiters. For example, with nhc13, to set the final executable's default heapsize rather than the compiler's heapsize, use +CTS -H4mb -CTS. Recent improvementsSome improvements over the previous tools are:
I'd welcome any bug reports, or ideas for other options or behaviours you would find useful. If you use ghc, please tell me how well (or otherwise) hmake works(!). The latest updates to these pages are available on the WWW from http://www.cs.york.ac.uk/fp/nhc13/
1998.06.22 |