* lib/Automake/Conditional.pm: New file. * lib/Automake/Makefile.am (dist_perllib_DATA): Add Conditional.pm. * automake.in: Use Automake::Conditional. (TRUE, FALSE): New constants. (%var_value, %var_location, %var_comment, %var_type, %var_owner, %targets, %target_source, %target_name, %target_owner): Tie to Tie::RefHash::Nestable. (generate_makefile, process_option_list, handle_options, handle_languages, handle_source_transform, handle_compile, handle_libtool, handle_texinfo_helper, handle_dist, handle_subdirs, scan_aclocal_m4, handle_emacs_lisp, handle_python, scan_autoconf_files, variable_assert, define_variable, define_pretty_variable, define_configure_variable, am_install_var, push_dist_common): Use TRUE. (define_objects_from_sources): Fix return value on "recursively-defined" errors. (conditional_string, conditional_true_when, conditional_is_redundant, conditional_implies_any, make_conditions): Remove these functions, obsoleted by Conditional.pm. (cond_stack_if, cond_stack_else, cond_stack_endif): Return an Automake::Conditional instance. (by_condition, conditional_ambiguous_p, variable_not_always_defined_in_cond, macro_define, variable_conditions_recursive, variable_conditions_recursive_sub, variable_conditions_reduce, invert_conditions, variable_conditions_permutations, check_variable_defined_unconditionally, variable_value_as_list, variable_output, variable_pretty_output, rule_define, read_am_file, file_contents_internal, require_variables): Adjust to use Automake::Conditional objects. (handle_footer): Get $(SUFFIXES) in 'all' conditions. * tests/cond12.test: Adjust to use Automake::Conditional objects.