MakeDo executes whatever commands are necessary to produce up-to-date versions of given files. For instance, it will run the compiler and binder, on the right files, in the right order. You have the option of delimiting what MakeDo is allowed to cause to be changed. Excercizing this option gives you added safety and error reporting.
Each argument to MakeDo is a bare name, or something with a switch. Bare names are taken to be goals. Here is what the switches mean:
-gr DF file name: Take the files in the DF file marked as verify-roots (i.e., preceeded by a "+") to be goals.
-gm DF file name: Take all the modifiable files in it (i.e., ones that might be stored if you did an SModel) to be goals.
-dr DF file name: Take the files in it marked as verify-roots to be goals. Add to the delimited set of what MakeDo may change all of the modifiable files in the DF-file.
-dm DF file name: Take all the modifiable files in it to be goals.
-md DF file name: Add to the delimited set of what MakeDo may change all of the modifiable files in the DF-file.
-mn file name: Add it to the delimited set of what MakeDo may change.
-assumeAllInconsistent: Assume that every derived file is inconsistent with its sources.
-dontAssumeAllInconsistent: Don't make that assumption --- check it out.
-do: MakeDo is allowed to execute commands to achieve consistency.
-dontDo: MakeDo is not allowed to execute commands to achieve consistency.
-record: MakeDo is to report the commands it did (or would) execute.
-dontRecord: That report is not to be given.
-p number: Reset the limit of auxilliary processes MakeDo may use to the given value --- if you don't use this switch, the limit won't change.
If one of the switches dr, dm, md, or mn is used, the set of things MakeDo may cause to be changed is delimited to what was explicitly asked for, plus, of course, the goals. Otherwise, what MakeDo may change is undelimited --- it may change anything.