You can divide large Modula-3 programs into multiple packages. A package is a collection of a interfaces and modules. The Modula-3 convention is to have each package reside in its own directory, with sources included in an src subdirectory, and a build directory, which contains all the files that are generated in the process of building your program. For example, a package 'List' residing in the directory /proj/harry/m3 would contain source code in the directory /proj/harry/m3/List/src, and on a SunOS 4.1 running on Sparcs, the build directory would be /proj/harry/m3/List/SPARC.
The advantages of this distinction of source and derived files are two-folds:
This, combined with Modula-3's multi-platform libraries, simplify the management of large, multi-platform programs.
The easiest way to build Modula-3 programs is using the CM3-IDE user interface. Using CM3-IDE is as easy as browsing web pages. All you have to do is to find yourself to the project you are working on by selecting the "Private Packages" link from the CM3-IDE front page. Once at a private package, you can easily browse through files, and build, clean, and ship programs. It is as easy as using the web browser!
Alternatively, you may use the Critical Mass Modula-3 compiler from the command line, via issuing the "cm3" command in an package directory. CM Modula-3 will automatically scan your package and build it with or without an m3makefile.