-include lib/Makefile.local
-include compat/Makefile.local
-include Makefile.local
-
-# The user has not set any verbosity, default to quiet mode and inform the
-# user how to enable verbose compiles.
-ifeq ($(V),)
-quiet_DOC := "Use \"$(MAKE) V=1\" to see the verbose compile lines.\n"
-quiet = @printf $(quiet_DOC)$(eval quiet_DOC:=)" $1 $@\n"; $($1)
-endif
-# The user has explicitly enabled quiet compilation.
-ifeq ($(V),0)
-quiet = @printf " $1 $@\n"; $($1)
+# We make all targets depend on the Makefiles themselves.
+global_deps = Makefile Makefile.config Makefile.local \
+ $(subdirs:%=%/Makefile) $(subdirs:%=%/Makefile.local)
+
+INCLUDE_MORE := yes
+ifneq ($(filter clean distclean dataclean, $(word 1, $(MAKECMDGOALS))),)
+CLEAN_GOAL := $(word 1, $(MAKECMDGOALS))
+
+# If there are more goals following CLEAN_GOAL, run $(MAKE)s in parts.
+ifneq ($(word 2, $(MAKECMDGOALS)),)
+INCLUDE_MORE := no
+FOLLOWING_GOALS := $(wordlist 2, 99, $(MAKECMDGOALS))
+
+.PHONY: $(FOLLOWING_GOALS) make_in_parts
+$(FOLLOWING_GOALS):
+ @true
+$(CLEAN_GOAL): make_in_parts
+make_in_parts:
+ $(MAKE) $(CLEAN_GOAL)
+ $(MAKE) $(FOLLOWING_GOALS) configure_options="$(configure_options)"