WML_FILES=$(filter-out ./template.wml, $(shell find -name \*.wml)) MAKEFILE_DIRS=$(dir $(filter-out ./Makefile, $(shell find -name Makefile))) HTML_GENERATED=$(WML_FILES:.wml=.html) OLD_GENERATED=$(WML_FILES:.wml=.wml.old) .SUFFIXES: .wml .html all: makesub $(MAKE) makewml makewml: $(HTML_GENERATED) makesub: for s in $(MAKEFILE_DIRS); do $(MAKE) -C $$s; done .wml.html: @( diff -q $<.old $< 2> /dev/null > /dev/null && \ test -e $(basename $<).html ) || \ (echo Running WML on $<; cp $< $<.old ; \ cd $(dir $<); \ wml -o $(basename $(notdir $<)).html -DSRCFILE=$(notdir $<) $(notdir $<)) clean: rm -rf $(HTML_GENERATED) $(OLD_GENERATED) for s in $(MAKEFILE_DIRS); do $(MAKE) -C $$s clean; done sterile: clean for s in $(MAKEFILE_DIRS); do $(MAKE) -C $$s sterile; done