DESTDIR = public PARAMETERS := $(shell cat Lego.json | grep -v '"parameterSets": ""' | jq -r '.parameterSets | keys[]') STL = $(PARAMETERS:%=$(DESTDIR)/%.stl) PNG = $(PARAMETERS:%=$(DESTDIR)/%.png) INDEX = $(DESTDIR)/index.html SCAD = Lego.scad CONFIG = Lego.json .PHONY: all all: models thumbnails .PHONY: clean clean: rm -f $(STL) $(PNG) $(INDEX) .PHONY: models models: $(STL) .PHONY: thumbnails thumbnails: $(PNG) .PHONY: webpage webpage: thumbnails $(INDEX) $(STL) $(PNG): $(SCAD) $(CONFIG) Makefile mkdir -p $(@D) openscad -o $@ -p $(CONFIG) -P $(basename $(@F)) $(SCAD) $(INDEX): header.html entry.html footer.html Makefile cat header.html > $@ $(foreach P,$(PARAMETERS),cat entry.html | sed 's/%/$P/g' >> $@;) cat footer.html >> $@