gen-makefile reads the
file Defaults at the root of the build tree and the
Makegen files in each subdirectory. Both of these files can
contain arbitrary Perl code, but in practice are highly stylized. There is
considerable user documentation in comments in the source. In addition to the
file start comment, see the comments on the routines tagged
mk-build-tree creates a build tree using a source tree as a template, and populates it with Makefiles by calling gen-makefile.
Note: Melange and parsergen are written in Dylan. This means that you must have a working Dylan compiler in order to compile them. And you must have a compiled parsergen in order to compile the compiler. This circularity was originally bootstrapped by using Mindy, but the source distribution also includes the output Dylan files generated by these tools, so you don't actually need to run Melange and parsergen to build the system.