Notice that all the Tcl command names are lowercase. In contrast, commands added by pimake have mixed-case names. The most common OOMMF commands you'll find in makerules.tcl files are
/* FILE: mmdispsh.cc -*-Mode: c++-*- * * A shell program which includes Tcl commands needed to support a * vector display application. * */ #include "oc.h" #include "vf.h" #include "mmdispcmds.h" /* End includes */ ...The /* End includes */ statement terminates the search for further #include statements in that file.
MakeRule Define { -targets all -script {Recursive all} }All of makerules.tcl files one level below oommf/pkg and oommf/app have ``all'' targets that compile and link their corresponding libraries or executables. So
tclsh oommf.tcl pimake allrun in the root OOMMF directory will build all of those libraries and applications. In contrast, makerules.tcl files under oommf/doc do not have explicit all targets, so the tclsh oommf.tcl pimake all call has no effect in the oommf/doc/ subtree.
On the other hand, the makerules.tcl in directories under oommf/pkg/, oommf/app/, and oommf/doc/ do have explicit rules for the various clean targets, so
tclsh oommf.tcl pimake maintainer-cleanrun from the OOMMF root directory will be active throughout all three subtrees. The maintainer-clean rules delete all files that can be regenerated from source, meaning object files, libraries, executables, and notably all the documentation files under oommf/doc/. Building the OOMMF documentation requires a working installation of LATEX and either LATEX2HTML or , so don't run the maintainer-clean target unless you are prepared to rebuild the OOMMF documentation!