Microsoft KB Archive/44131

From BetaArchive Wiki
Knowledge Base

Specifying a Path in an NMAKE Inference Rule

Article ID: 44131

Article Last Modified on 11/17/2003


  • Microsoft Program Maintenance Utility 1.4
  • Microsoft Program Maintenance Utility 1.4
  • Microsoft Program Maintenance Utility 1.4

This article was previously published under Q44131


In an NMAKE makefile, you can specify a path in an inference rule. The syntax of an inference rule without a path is as follows:

.<from extension>.<to extension >:

This syntax is somewhat limited because both the "from file" and "to file" are evaluated as if each exists in the current directory. In NMAKE, you can add a path specifier to an inference rule by using the following syntax:

{frompath}.<from extension>{topath}.<to extension>:

Note: If you specify a path for one element of an inference rule, you must specify a path for both rules. For example, to compare a C source code file in the current directory with its corresponding object file in the C:\OBJECTS directory, use an inference rule like the following:

cl /c $<;


When NMAKE encounters a target and dependency line that is not followed by any commands, NMAKE searches the makefile for an inference rule to use. During the process of searching for a match, NMAKE uses the directories of the target and the dependent. In other words, the following target and dependency line does not use the inference rule defined above because the object file path does not match the path specified in the inference rule:

test.obj : test.c

This line would invoke the predefined .c.obj: inference rule. To invoke the above inference rule, modify the line to the following:

c:\objects\test.obj : test.c

Additional query words: kbinf 1.20 1.30 1.40 1.50

Keywords: KB44131