NMAKE uses a description file to determine what to do. 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 looks like this:
targets...: dependents...│ command │ ──description block : │ targets... : dependents... command