SUBDIRS = $(wildcard */) clean_SUBDIRS = $(addprefix clean_SUBDIRS_, $(SUBDIRS)) .PHONY: all clean clean_all $(clean_SUBDIRS) all: clean: clean_all clean_all: $(clean_SUBDIRS) $(clean_SUBDIRS): - $(MAKE) clean -C $(patsubst clean_SUBDIRS_%, %, $@)