[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
10.5 Obsoleting Macros
Configuration and portability technology has evolved over the years.
Often better ways of solving a particular problem are developed, or
ad-hoc approaches are systematized. This process has occurred in many
parts of Autoconf. One result is that some of the macros are now
considered obsolete; they still work, but are no longer considered
the best thing to do, hence they should be replaced with more modern
macros. Ideally, autoupdate
should replace the old macro calls
with their modern implementation.
Autoconf provides a simple means to obsolete a macro.
- Macro: AU_DEFUN (old-macro, implementation, [message]@c)
-
Define old-macro as implementation. The only difference with
AC_DEFUN
is that the user is warned that old-macro is now obsolete.If she then uses
autoupdate
, the call to old-macro is replaced by the modern implementation. message should include information on what to do after runningautoupdate
;autoupdate
prints it as a warning, and includes it in the updated ‘configure.ac’ file.The details of this macro are hairy: if
autoconf
encounters anAU_DEFUN
ed macro, all macros inside its second argument are expanded as usual. However, whenautoupdate
is run, only M4 and M4sugar macros are expanded here, while all other macros are disabled and appear literally in the updated ‘configure.ac’.
- Macro: AU_ALIAS (old-name, new-name)
-
Used if the old-name is to be replaced by a call to new-macro with the same parameters. This happens for example if the macro was renamed.