Inference Rule May Fail If Blank Command Line Contains Spaces

ID Number: Q50383

1.00 1.01 1.10 1.11 1.12 | 1.11 1.12

MS-DOS | OS/2

Summary:

When using inference rules in an NMAKE description file, the target/

dependency line must be followed by a blank line (no space

characters); otherwise, the inference rule commands will not be

executed. NMAKE checks this line for any ASCII characters; if ANY

characters exist, NMAKE will ignore the inference rule and try to

execute the line, even if it contains only a space or spaces.

The following is a simple example, which demonstrates this problem:

.c.exe:

cl $**

ALL : main.exe

main.exe : main.c

<space>

Nothing happens if this description file is passed to NMAKE because

the space character will cause NMAKE to assume there are explicit

commands following the target/dependency line, causing it to ignore

the inference rule. Note that this is expected behavior for NMAKE.

More Information:

MAKE version 4.x inference rules/description blocks do not exhibit

this behavior. This is something to keep in mind when converting

description files from MAKE to NMAKE.