48 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| MD = $(wildcard src/*.md)
 | |
| DOTS = $(wildcard src/*.dot)
 | |
| ASYS = $(wildcard src/*.asy)
 | |
| PYS = $(wildcard src/img_*.py)
 | |
| PDFS = $(MD:src/%.md=out/%.pdf)
 | |
| 
 | |
| IMG_PDFS = $(ASYS:src/%.asy=img/%.pdf) $(PYS:src/img_%.py=img/%.pdf) $(DOTS:src/%.dot=img/%.pdf)
 | |
| 
 | |
| IMGS = $(IMG_PDFS)
 | |
| 
 | |
| TEMPLATE = eisvogel
 | |
| PDF_ENGINE = xelatex
 | |
| PANDOC = pandoc
 | |
| PANDOC_OPTIONS = -F panflute -F pandoc-citeproc --pdf-engine=$(PDF_ENGINE) --template $(TEMPLATE) -N --standalone --listings
 | |
| 
 | |
| GRAPHVIZ = dot
 | |
| GRAPHVIZ_OPTIONS = -Tpdf
 | |
| 
 | |
| ASY = asy
 | |
| ASY_OPTIONS = -noV -f pdf
 | |
| 
 | |
| PYTHON = python
 | |
| PYTHON_OPTIONS =
 | |
| 
 | |
| mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
 | |
| current_dir := $(notdir $(patsubst %/,%,$(dir $(mkfile_path))))
 | |
| 
 | |
| .PHONY: clean all default
 | |
| all: $(PDFS)
 | |
| default: all
 | |
| 
 | |
| out/%.pdf: src/%.md $(IMGS) Makefile
 | |
| 	$(PANDOC) $(PANDOC_OPTIONS) -o $@ $<
 | |
| 
 | |
| img/%.pdf: src/%.dot
 | |
| 	$(GRAPHVIZ) $(GRAPHVIZ_OPTIONS) -o $@ $<
 | |
| 
 | |
| img/%.pdf: src/img_%.py
 | |
| 	$(PYTHON) $(PYTHON_OPTIONS) $< $@
 | |
| 
 | |
| img/%.pdf: src/%.asy
 | |
| 	$(ASY) $(ASY_OPTIONS) -o $@ $<
 | |
| 
 | |
| watch:
 | |
| 	watchexec -w src -w data -w filters -w Makefile make all
 | |
| 
 | |
| clean:
 | |
| 	-rm $(PDFS) $(IMGS)
 |