Retain all variable definitions until the whole Makefile.am has
been processed, then output all variables in one step, at the top
of Makefile.in. (Older revisions used to output user variables
before generating Automake targets, and to mix Automake variables
with Automake targets, preventing redefinitions of previously
output variables.)
* automake.in (%var_pretty): New variable.
(VAR_ASIS, VAR_PRETTY): New constants.
(@var_list): Rename as ...
(@var_order): ... this.
(initialize_per_input): Clear %var_pretty.
(handle_variables): New function, extracted from ...
(read_main_am_file): ... here.
(generate_makefile): Call handle_variable after everything else.
(handle_dist): Use define_pretty_variable, not pretty_print.
(pretty_print): Delete.
(macro_define): Augment with $COMMENT and $PRETTY parameters.
Update %var_comment, %var_pretty, and @var_order. Adjust callers.
(variable_pretty_output): Merge with ...
(variable_output): ... this, and choose the prettiness on a
per-condition basis.
(append_comments): Delete. This work is now done by macro_define.
(read_am_file, file_contents_internal): Don't call append_comments
nor update @var_list, adjust calls to macro_define.
(handle_subdirs): Don't explicitly output RECURSIVE_TARGETS,
just mark it as VAR_PRETTY.
* tests/exeext.test: Make sure bin_PROGRAMS is output only once.
Report from Jim Meyering.