Next: Coding Style Prev: Dependencies Between Macros Up: Writing Autoconf Macros
9.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])
Define OLD-MACRO as IMPLEMENTATION. The only difference with
`AC_DEFUN' is that the user is warned that OLD-MACRO is now
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 running `autoupdate'; `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 an
`AU_DEFUN'ed macro, all macros inside its second argument are
expanded as usual. However, when `autoupdate' 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
automatically generated by info2www