spego/Makefile

33 lines
843 B
Makefile

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 | sed "s/%date/`date '+%Y-%m-%d at %T'`/g" | sed "s/%version/`git describe --always --dirty`/g" > $@
$(foreach P,$(PARAMETERS),cat entry.html | sed 's/%/$P/g' >> $@;)
cat footer.html >> $@