all: build/card.html .PHONY: dev dev: git ls-files | entr bash -c "make all" .PHONY: clean clean: rm build/* build/card.html: build/card.xml build/style.xsl xsltproc \ -o build/card.html \ build/style.xsl \ build/card.xml define PYTHON_MAKE_CARD_XML from jinja2 import Environment, FileSystemLoader with open("card.yaml") as f: data = f.read() out = (Environment( loader=FileSystemLoader('templates')) .get_template('card.xml.j2') .render(data=data)) with open("build/card.xml", "w") as f: f.write(out) endef export PYTHON_MAKE_CARD_XML build/card.xml: card.yaml python -c "$$PYTHON_MAKE_CARD_XML" define PYTHON_MAKE_STYLE_XSL from jinja2 import Environment, FileSystemLoader with open("style.css") as f: css_data = f.read() with open("style.html.j2") as f: jinja_data = f.read() with open("style.js") as f: js_data = f.read() out = (Environment( loader=FileSystemLoader('templates')) .get_template('style.xsl.j2') .render( css_data=css_data, jinja_data=jinja_data, js_data=js_data)) #print(out) with open("build/style.xsl", "w") as f: f.write(out) endef export PYTHON_MAKE_STYLE_XSL build/style.xsl: style.css templates/style.xsl.j2 style.html.j2 style.js python -c "$$PYTHON_MAKE_STYLE_XSL"