Here are the Makefile targets that I frequently use during development. Note that you can chain those together in a single command (e.g. "make rclean rgen").
all - produce all local files, in this directory only - will in sequence e.g. produce x.jj from x.jjt, x.java from x.jj, and finally x.class from x.java
rclean - recursively remove all generated files from this directory and all subdirectories (the leading r stands for "recursive")
rgen - re-generate all generated Java files in the sub-directories (first pass), then generate all the class files from the Java files (second pass) - a "cio" target is always preferable to the more brute-force rgen if it exists
rgenjava - do just the first pass of rgen (this is rarely but occasionally useful - for example I often generate three JAR files for a directory tree: 1. the pure sources, 2. latter plus generated Java files, 3. latter plus generated class files - this target is used before jarring up the second of those JARs)
rclasses - make .class files for .java files in all subdirectories, without generating any Java files (this one is also rarely used)
clio - stands for "clean in order". For example, you can open two shell windows, type "make clio" in the first, wait a little, then type "make cio" in the second - the first shell will clean while the next re-compiles in its wake
cvsupdate - do a "cvs update -d" in this directory as well as in ones that this package depends on (such as etc or lib, for example)
fresh - does an rclean, followed by a "make cvsupdate", followed by a cio or rgen - this sledgehammer re-making is especially desirable if .mjCode files are deleted (Meta-Java will not remove any .java file for which there is no .mjCode file)