.PHONY: clean-local clean-local: $(RM) $(CLEANABLE) .PHONY: clean-subdirs clean-subdirs: @list="$(SUBDIRS)"; for i in $$list; do \ $(MAKE) -C $$i clean; \ done .PHONY: clean clean: clean-subdirs clean-local .PHONY: distclean-local distclean-local: clean-local $(RM) $(DISTCLEANABLE) .PHONY: distclean-subdirs distclean-subdirs: @list="$(SUBDIRS)"; for i in $$list; do \ if test -d "$$i"; then \ $(MAKE) -C $$i distclean; \ else :; fi; \ done .PHONY: distclean realclean distclean realclean: distclean-subdirs distclean-local