.PHONY: check clean serve gendeps = ${filter-out %/index.html,${wildcard ${1}/*}} includes := ${wildcard include/*} srcdirs := ${shell find src -type d} outdirs := ${srcdirs:src%=out%} sources := ${shell find src -type f -regextype egrep -regex '.*/(index\.html|.*\.(css|svg|png|dot))'} outputs := ${sources:src/%=out/%} outputs := ${outputs:%.dot=%.svg} all: ${outdirs} ${outputs} ${outdirs}: @mkdir -p $@ @printf 'MKDIR\t%s\n' "$@" out/%: src/% @cp $< $@ @printf 'CP\t%s\n' "$@" out/%.svg: src/%.dot @dot -Tsvg $< >$@ @printf 'DOT\t%s\n' "$@" out/%.html: src/%.html ${includes} src/style.css @PATH="$$PATH:./include" m4 -P ${foreach dir,${^D},-I${dir}} include/lib.m4 $< >$@ @printf 'M4\t%s\n' "$@" src/srp/fw-ec/index.html: ${call gendeps,src/srp/fw-ec} @touch $@ src/prj/mmv/index.html: ${call gendeps,src/prj/mmv} @touch $@ check: LANG=en_US.UTF-8 find src -name 'index.html' -exec \ aspell --home-dir=./ --ignore-case check {} \; clean: rm -rf out serve: darkhttpd out --daemon