Specifying a Path in an NMAKE Inference Rule (44131)



The information in this article applies to:

  • Microsoft NMAKE Utility for MS-DOS
  • Microsoft NMAKE Utility for OS/2
  • Microsoft NMAKE Utility for Windows NT

This article was previously published under Q44131

SUMMARY

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:

{}.c{c:\objects}.obj:
cl /c $<;

MORE INFORMATION

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


Modification Type:MajorLast Reviewed:11/17/2003
Keywords:KB44131