[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[IMPORTANT] Could we just assuming support for make recursive variable e
[IMPORTANT] Could we just assuming support for make recursive variable expansion unconditionally?
Thu, 03 Jan 2013 19:54:48 +0100
[This is posted also to the automake list to ensure a wider audience.
Discussion should continue exclusively on the bug-automake list.]
The known make implementations that does not support recursive variable
expansion -- as in $(foo_$(bar)) -- should by today be either very old
or very "fringe"; so it would be nice if, starting from Automake 1.14,
we could begin assuming unconditionally that this feature is supported.
Users of those old-and-poor make implementations can still download
and install GNU make (which, as we all know, doesn't require a
pre-existing make installation to be bootstrappped).
This change would simplify our codebase a little, would reduce the
number of configure-time checks for the client packages (eventually,
at first we should still check for our intended feature, and bail
out loudly and with a clear error message if that is not working),
and also reduce the differences between mainline Automake an
Of course, we should first ensure that our estimate on how support for
recursive make variable expansion is effectively widespread is correct.
So, here is the tentative roadmap:
* Automake 1.13.2
- Add a 'spy-make-recurs-var.sh' test verifying that the make
implementation used in the testsuite truly support recursive
- Enhance the checks in the AM_SILENT_RULES macro to print a loud
message at configure runtime if the make implementation on the
system isn't able to grasp recursive variable expansion, telling
the user to report the situation to our upstream (bug-automake).
This is of paramount importance for us to know how the situation
"in the wild" really is. In the past, Autoconf did something
similar to ensure the presence of shell functions in all the
shells worth supporting.
* Automake 1.14 (assuming no relevant complaints has been received in
the previous "probing" step).
- Just assume, throughout our codebase, that '$(foo_$(var))' works.
Related simplifications and refactorings.
- Have AM_SILENT_RULES abort configure with a fatal error if the
make implementation on the system isn't able to grasp recursive
- Make the 'portability-recursive' warnings a no-op, and have their
use print a warning in either the 'obsolete' and 'unsupported'
* Automake 1.15
- Remove all the runtime checks from AM_SILENT_RULES; the only role
of this macro will at this point be the ability to set the
default verbosity, and to implement the '--enable-silent-rules'
and '--disable-silent-rules' configure options.
- Remove the 'portability-recursive' warnings altogether.
Comments would be welcome. Patches even more so ;-) (especially for
what concerns the changes intended for 1.13.2).
|[Prev in Thread]
||[Next in Thread]|
- [IMPORTANT] Could we just assuming support for make recursive variable expansion unconditionally?,
Stefano Lattarini <=