In its simplest form, a description file tells NMAKE which files depend on others and which commands need to be executed if a file changes.
A description file contains from one to 1048 description blocks. A description block indicates the relationship among various parts of the program, and contains commands to bring all components up-to-date. A description file has the following format:
targets. . . : dependents. . .
command
command
command
. . .
For example, you might use the following description file to compile and link two files:
target.lib: a.cob b.cob
cob2 a.cob b.cob
ilink target a.obj b.obj