33 lines
843 B
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 >> $@
|