SUBDIRS := $(wildcard */.) SUBDIRSCLEAN=$(addsuffix clean,$(SUBDIRS)) all: $(SUBDIRS) $(SUBDIRS): $(MAKE) -k -C $@ clean: for dir in $(SUBDIRS); do \ $(MAKE) -C $$dir $@; \ done .PHONY: all $(SUBDIRS) $(SUBDIRSCLEAN)