OUTDIR = public dirname = $(patsubst %/,%,$(dir $(1))) dirnames = $(sort $(call dirname,$(1))) pages_src = $(filter-out template.html,$(wildcard *.html)) pages = $(foreach p,$(pages_src),$(OUTDIR)/$(p)) members_src = $(basename $(wildcard *.in)) members_pages = $(foreach m,$(members_src),$(OUTDIR)/$(m).html) feeds = $(wildcard *.xml) resources_src = $(feeds) resources = $(foreach f,$(resources_src),$(OUTDIR)/$(f)) images = $(foreach img,$(shell find images -type f),$(OUTDIR)/$(img)) images_folders = $(call dirnames,$(images)) stylesheets = $(foreach img,$(shell find stylesheets -type f),$(OUTDIR)/$(img)) stylesheets_folders = $(call dirnames,$(stylesheets)) .PHONY: all clean site all: site site: $(pages) $(members_pages) $(resources) $(images) $(stylesheets) $(OUTDIR) $(images_folders) $(stylesheets_folders): mkdir $@ $(resources): $(OUTDIR)/%: % | $(OUTDIR) cp $< $@ $(images): $(OUTDIR)/%: % | $(images_folders) cp $< $@ $(stylesheets): $(OUTDIR)/%: % | $(stylesheets_folders) cp $< $@ $(pages): $(OUTDIR)/%.html: %.html %.sh template.html | $(OUTDIR) ./build.sh $< $*.sh $@ $(members_pages): $(OUTDIR)/%.html: %.in template.html | $(OUTDIR) ./build-member.sh $< $@ $(OUTDIR)/quatuor.html: quatuor.md clean: -rm -r $(OUTDIR)