Mosmake is a project compilation manager for complex multi-unit projects, built using Moscow ML. Its straightforward approach simplifies recompilation and ensures efficient management.
Mosmake acts as a makefile generator, allowing you to write down the dependencies between your SML units in a simple format. From there, Mosmake expands the dependencies into a makefile fragment that compiles and links your program. It works perfectly with code that's spread over several subdirectories and even supports mixing structure-mode and toplevel-mode units. It also seamlessly integrates with GNU autoconf and your own makefile rules for generating SML source or running SML programs to generate other data.
An important feature of Mosmake is its ability to actively track actual content changes to .ui and .uo files. This means spurious recompilation cascades are kept in check. If you need to fix a comment in a low-level .sig file, it won't trigger a recompilation of the entire program. Mosmake is compatible with both Unix/Linux and MS Windows environments (if using the Cygwin version of GNU make). It requires GNU make and Perl to work.
When it comes to installation, you can copy all the files from the `mosmake-X.Y.tar.gz' tarball to a suitable subdirectory of your own project directory. Follow the instructions in the manual for further guidance. While it's possible to install Mosmake centrally at a site, it only makes limited sense unless you're using it as a source for copying into project directories. If you distribute code without a copy of Mosmake, your users won't be able to build it, so it's best to copy Mosmake to your project.
If space is a concern, you can remove the `mosmake.dvi', `mosmake.info', and `mosmake.info-NNN' files, which are formatted versions of the manual. Another file that can be removed is the source of the manual, `mosmake.txi0', but it'll be a disservice to people who want to play with change in your program as the build process will be completely mysterious without documentation.
Version 0.9: N/A