Mosmake 0.9

Mosmake is a no-nonsense recomplication manager for large multi-unit projects written in Moscow ML.

  Add it to your Download Basket!

 Add it to your Watch List!


Rate it!
send us
an update
GPL (GNU General Public License) 
2.9/5 14
Henning Makholm
ROOT \ Utilities
Mosmake is a no-nonsense recomplication manager for large multi-unit projects written in Moscow ML.

Moscow ML 2.0 is a well-known, attractive implementation of Standard ML. One of the practical problems with developing a large project with Moscow ML is that intelligent recompilation management is cumbersome. Its separate-compilation model is simple and elegant, but because it does not match the C-centric viewpoint of the standard make tool, it is surprisingly difficult to write a makefile that correctly and efficiently handles the recompilation of a large Moscow ML project.

Mosmake provides an unified solution to this problem. The most productive way to think of it is as a makefile generator: You write down the dependencies between your SML units in a simple, terse format, and Mosmake will expand them to a makefile fragment that invokes the `mosmlc' command-line compiler with the appropriate arguments to compile and link your program. (There's more to it than this, but it will do for an introduction).

Here are some key features of "Mosmake":

Requires GNU make and perl.
Works in unix/linux environments as well as MS Windows (if using the Cygwin version of GNU make).
Works with code spread over several subdirectories.
Seamlessly mix structure-mode and toplevel-mode units.
Seamlessly mix units with .sig files and units without.
Integrates well with GNU autoconf, and with your own makefile rules for generating SML source and/or running SML programs to generate other data.
Actively tracks actual content changes to .ui and .uo files, such that spurious recompilation cascades are kept in check. You can fix a comment in a low-level .sig file without triggering a recompilation of the entire program. [This only works with sufficiently new releases of GNU make].

Installation instructions

The `mosmake-X.Y.tar.gz' tarball unpacks to a directory `mosmake-X.Y' with several files in it. Copy all the files to a suitable subdirectory of your own project directory, and follow the instructions in the manual.

It only makes limited sense to install Mosmake centrally at a site, except as a source for copying into project directories. You _can_ use Mosmake as installed in a central location, but if you distribute your code without a copy of Mosmake, your users will not be able to build it. So you might as well copy it to your project.

If you're concerned about space, you can remove the files `mosmake.dvi', `' and `'; they are formatted versions of this manual. A further saving could be obtained by also removing the _source_ of the manual, which is `mosmake.txi0', but doing so would be a disservice to people who want to play with change in your program, because the build process will be completely mysterious without documentation.

Last updated on May 6th, 2008

#Moscow ML builder #recomplication manager #multi-unit projects #Moscow ML #builder #multi-unit #recomplication

Add your review!