[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: I: adjust test suite for upcoming GNU Make 3.83
From: |
Paul Smith |
Subject: |
Re: I: adjust test suite for upcoming GNU Make 3.83 |
Date: |
10 Mar 2005 12:42:39 -0500 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 |
%% "Dmitry V. Levin" <address@hidden> 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 <address@hidden> 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