* lib/Automake/Variable.pm, lib/Automake/VarDef.pm: New files. * lib/Automake/Makefile.am (dist_perllib_DATA): Add Variable.pm and VarDef.pm. * automake.in: Use Automake::Variable and Automake::VarDef. (MACRO_PATTERN): Delete. Now Automake::Variable::_MACRO_PATTERN. (am_macro_for_var): Delete. Now Automake::Variable::_am_macro_for_var. (ac_macro_for_var): Delete. Now Automake::Variable::_ac_macro_for_var. (silent_variable_override): Delete. Now Automake::Variable::_silent_variable_override. (var_value, var_location, var_comment, var_type, var_owner, var_pretty, content_seen): Delete. This functionality is now offered by Automake::Variable and Automake::VarDef. (VAR_AUTOMAKE, VAR_CONFIGURE, VAR_MAKEFILE, VAR_ASIS, VAR_PRETTY): Delete. Now defined in Automake::VarDef. (var_order): Delete. Now Automake::Variable::_var_order. (appendvar): Delete. Now Automake::Variable::_appendvar. (var_SUFFIX_trigger): Register using Automake::Variable::hook. (initialize_per_input): Call Automake::Variable::reset. (err_var, msg_cond_var, msg_var, reject_var): Delete. Now defined in Automake::Variable. (generate_makefile, process_option_list, handle_languages) (traverse_variable_recursively_worker) (transform_variable_recursively, handle_compile) (handle_libraries, handle_ltlibraries) (check_typos, handle_dist, handle_subdirs, scan_autoconf_files): Adjust to use Automake::Variable functions. (check_ambiguous_condition): Delete. Now Automake::Variable::_check_ambiguous_condition. (condition_ambiguous_p): Delete. Now Automake::Variable::condition_ambiguous_p. (variable_not_always_defined_in_cond): Delete. Now Automake::Variable::not_always_defined_in_cond. (macro_define): Delete. Now Automake::Variable::define. (macro_delete): Delete. Now Automake::Variable::variable_delete. (macro_dump): Delete. Now Automake::Variable::variable_dump. (macros_dump): Delete. Now Automake::Variable::variables_dump. (variable_defined): Delete. Now Automake::Variable::variable_defined, with the target check temporarily disabled. (variable_assert): Delete. Now Automake::Variable::variable_assert. (examine_variable): Delete. Now Automake::Variable::examine_variable. (variable_conditions): Delete. Now Automake::Variable::conditions. (scan_variable_expansions): Delete. Now Automake::Variable::scan_variable_expansions. (check_variable_expansions): Delete. Now Automake::Variable::check_variable_expansions. (check_variable_defined_unconditionally): Delete. Now Automake::Variable::check_defined_unconditionally. (variable_value): Delete. Now Automake::Variable::variable_value. (variable_value_as_list): Delete. Now Automake::Variable::variable_value_as_list. (variable_value_as_list_recursive_worker): Adjust to use Automake::Variable functions. (variable_output): Delete. Now Automake::Variable::output. (define_pretty_variable, define_configure_variable, read_am_file) (define_standard_variables, read_main_am_file): Adjust to use Automake::Variable functions. (handle_variables): Delete. Now Automake::Variable::output_variables. (file_contents_internal, am_primary_prefixes, am_install_var) (require_file_with_macro, require_conf_file_with_macro) (push_dist_common): : Adjust to use Automake::Variable functions. (require_variables): Delete. Now Automake::Variable::require_variables. (require_variables_for_macro): Delete. Now Automake::Variable::require_variables_for_variable. * tests/Makefile.am (XFAIL_TESTS): Add target.test.