ID Number: Q76073
1.11 | 1.11
MS-DOS | OS/2
buglist1.11 fixlist1.12
Summary:
PROBLEM ID: NMK9109001
SYMPTOMS
When using the Microsoft NMAKE Utility version 1.11, the special
macros $(@D) and $(*D) may not work correctly.
CAUSE
These macros are built to return only the drive and directory of
the given target. However, $(@D) will sometimes return the entire
path and filename, and $(*D) will sometimes return the entire path
and base of the filename.
STATUS
Microsoft has confirmed this to be a problem in the NMAKE utility
version 1.11. This problem was corrected in version 1.12.
More Information:
The example make files below set up a command description block for a
non-existent target. Since it does not exist, the echo command will
always be performed. Page 114 of the "Microsoft C Advanced Programming
Techniques" manual distributed with Microsoft C version 6.0 describes
the expected functionality of these macros. However, these examples
give incorrect results as shown.
Sample Makefile #1
------------------
test1\test2\test.c:
echo $(@D)
Results:
echo test1\test2\test.c
test1\test2\test.c
Sample Makefile #2
------------------
test1\test2\test.c:
echo $(*D)
Results:
echo test1\test2\test
test1\test2\test