GENERATOR='./generate.rb' MAKE_TARGETS=$(patsubst dates/%.yaml, dates/%/ALL, $(wildcard dates/*.yaml)) CLEAN_TARGETS=$(patsubst dates/%.yaml, dates/%/*, $(wildcard dates/*.yaml)) ALL: ${MAKE_TARGETS} clean: rm -rf ${CLEAN_TARGETS} # Keep Makefiles .SECONDARY: $(patsubst dates/%/ALL, dates/%/Makefile, $(MAKE_TARGETS)) dates/%/Makefile: dates/%.yaml $(wildcard decks/*.yaml) mkdir -p $(shell dirname $@) $(GENERATOR) $< $(shell dirname $@) || printf "\033[1;31minterpreter or script missing\033[0m\n" dates/%/ALL: dates/%/Makefile $(MAKE) -C $(shell dirname $@)