Microsoft KB Archive/71286

= Macro Cannot Substitute String in Another Macro =

Article ID: 71286

Article Last Modified on 10/23/2003

-

APPLIES TO


 * Microsoft Program Maintenance Utility 1.2
 * Microsoft Program Maintenance Utility 1.2
 * Microsoft Program Maintenance Utility 1.2
 * Microsoft Program Maintenance Utility 1.2
 * Microsoft Program Maintenance Utility 1.2
 * Microsoft Program Maintenance Utility 1.3
 * Microsoft Program Maintenance Utility 1.4
 * Microsoft Program Maintenance Utility 1.4
 * Microsoft Program Maintenance Utility 1.4

-



This article was previously published under Q71286



SUMMARY
NMAKE supports macro substitution that allows you to replace the occurrences of one string in a macro with a substitute string. However, NMAKE does not support nesting macros; NMAKE does not evaluate a macro in another macro's replacement text.



MORE INFORMATION
Consider a makefile that contains the following lines: SAMPLE=sit sat set NEW=m

all: echo $(SAMPLE:s=b) The echo command displays the contents of the SAMPLE macro after all occurrences of the letter &quot;s&quot; in the macro have been replaced by the letter &quot;b&quot; (the resulting output is &quot;bit bat bet&quot;). However, the following macro substitution does not function as intended: echo $(SAMPLE:s=$(NEW)) This macro is designed to provide the output &quot;mit mat met.&quot; However, in an NMAKE macro substitution, any characters between the equal sign and the right parenthesis are taken literally and NMAKE does not evaluate the embedded macro. In this case, the NMAKE produces the following output: &quot;$(NEWit $(NEWat $(NEWet)&quot;.

Additional query words: 1.10 1.20 1.30 1.40 1.50 kbinf

Keywords: KB71286

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.