#### # # This makefile generates human-readable document forms from the common troff # source. It uses the mkdocs shell script, q.v. # # MKDOCS = /users/gfisher/bin/mkdocs # # The FILES definition specifies which files to build. Note that since targets # are specified with a ".ps" extension, the update process is driven by the # dates of .ps files vis a vis the corresponding .me files. The dates of .html # and .pdf files are not considered. Since all three forms of the target # generated at the same time, this is not a problem. # FILES = \ cvs.ps \ design-imple-c+-.ps \ design-imple.ps \ imple-subdirs.ps \ makefile.ps \ project-dir-structure.ps \ rsl.ps \ spec-doc-organization.ps \ spec-doc-outline.ps \ sys-specs.ps \ work-in-progress.ps # # The all: rule cajoles make into rebuilding a .me file only if it is newer # than the corresponding .ps file. # # A couple alternatives to this form of all: rule are worth noting. The form # that uses *.ps instead of the individual target target names has the # disadvantage of not rebuilding if the .ps file is missing entirely. This is # due to the fact that make cannot guess from "*.ps" that some .ps file is # missing. (One might hope that it could, but alas, it does not.) # # A second alternative is one that eliminates this all: rule altogether, # leaving the %-based pattern rule as the default. The problem with this is # again one of make not being ultra-smart about wild carding. In this case, # the effect is to rebuild all files every time make is invoked. # # The drawback of enumerating the .ps file targets is the possibility of # forgetting to add a new target when a new .me file is created. This problem # is potentially serious, given the convention of relying on makefiles to # generate *all* necessary files in a release directory. (See support/ # documentation/conventions/{makefile,cvs}). This problem must be avoided by # careful administrative control. At some point, we may determine a # (partially) automated way to deal with this problem. # all: $(FILES) %.ps: %.me @ echo Making $< @ csh -c "$(MKDOCS) $<" @ rm -rf toc*.* @ echo " " # # This rule forces a complete remake, independent file dates. # force-all: @ csh -c .make-all.csh @ rm -rf toc*.*