DESTDIR = .
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 >> $@