48 lines
1.3 KiB
Makefile
48 lines
1.3 KiB
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: help
|
|
help:
|
|
@echo Targets:
|
|
@echo all Builds models and thumbnails
|
|
@echo help Shows this help file
|
|
@echo clean Removes generated files
|
|
@echo models Builds all models
|
|
@echo thumbnails Generates model thumbnails
|
|
@echo webpage Generates web page
|
|
@echo MODEL Builds an STL and a PNG for the given model
|
|
@echo
|
|
@echo Available models: $(PARAMETERS)
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -f $(STL) $(PNG) $(INDEX)
|
|
|
|
.PHONY: models
|
|
models: $(STL)
|
|
|
|
.PHONY: thumbnails
|
|
thumbnails: $(PNG)
|
|
|
|
.PHONY: webpage
|
|
webpage: thumbnails $(INDEX)
|
|
|
|
$(PARAMETERS): % : $(DESTDIR)/%.png $(DESTDIR)/%.stl
|
|
|
|
$(STL) $(PNG): $(SCAD) $(CONFIG) Makefile
|
|
mkdir -p $(@D)
|
|
openscad -o $@ -p $(CONFIG) -P $(basename $(@F)) --camera=0,0,0,60,0,135,0 --autocenter --viewall $(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 >> $@
|