%% "Dmitry V. Levin" <[EMAIL PROTECTED]> writes: dvl> Upcoming version of GNU Make introduces new incompatibility. dvl> The NEWS file says: dvl> * WARNING: Backward-incompatibility! dvl> GNU make now implements a generic "second expansion" feature on the dvl> prerequisites of both explicit and implicit (pattern) targets. After dvl> the rule has been parsed, the prerequisites are expanded a second dvl> time, this time with all the automatic variables in scope. This means dvl> that in addition to using standard SysV $$@ in prerequisites lists, dvl> you can also use complex functions such as $$(patsubst f%r,b%o,$$@) etc. dvl> This behavior applies to implicit rules, as well, where the second dvl> expansion occurs after the rule is matched. dvl> However, this means that you need to double-quote any "$" in your dvl> filenames; instead of "foo: boo$$bar" you must write "foo: foo$$$$bar"
dvl> GNU Make developers suggest to adjust dollar.test, to make it work with dvl> both the old and new versions of GNU make, see dvl> http://savannah.gnu.org/bugs/?func=detailitem&item_id=12260 Hi Dmitry; I was going to post something here about this when I saw your message :-). I'm interested in discussing the issue and possible solutions. The one I added to the bug report involves using :=, since simply-expanded variables in GNU make are always only expanded one time, no matter how many times they're referenced (unless within an eval function). But, obviously, using := does not yield a portable makefile. I'm not actually sure whether there's any way to write a makefile that doesn't rely on any GNU make features, that handles "$" in filenames "properly". -- ------------------------------------------------------------------------------- Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at: http://www.gnu.org http://make.paulandlesley.org "Please remain calm...I may be mad, but I am a professional." --Mad Scientist