* automake.in (CLEAN, MAINTAINER_CLEAN): New constants. (maintainer_clean_files): Replace by ... (clean_files): ... this new variable. (initialize_per_input, lang_yacc_target_hook, lang_lex_target_hook): Use %clean_files instead of @maintainer_clean_files. (handle_clean): Rewrite, using %clean_files. (require_build_directory_maybe): Use %clean_files instead of %compile_clean_files. This allows using &require_build_directory_maybe for non-compiling targets. * lib/am/clean.am (mostlyclean-generic, clean-generic, distclean-generic, maintainer-clean-generic): Rewrite using %MOSTLYCLEAN_RMS%, %CLEAN_RMS%, %DISTCLEAN_RMS%, and %MAINTAINER_CLEAN_RMS%.