FILES = README Makeincl Makefile core $(wildcard *.*) DIRS = $(filter-out $(FILES),$(wildcard *)) CLEAN = $(addsuffix .clean,$(DIRS)) .PHONY: all $(DIRS) clean $(CLEAN) all: $(DIRS) clean: $(CLEAN) $(DIRS): cd $@ && $(MAKE) $(CLEAN): cd $(basename $@) && $(MAKE) clean