Makefile 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # -*- Makefile -*-
  2. # --------------------------------------------------------------------
  3. export BIBINPUTS := ${PWD}/cryptobib/:${BIBINPUTS}
  4. export TEXINPUTS := ${PWD}/drawings:${TEXINPUTS}
  5. # --------------------------------------------------------------------
  6. MAIN := main
  7. LATEXMK := latexmk -bibtex -output-directory=_build
  8. LATEXMK += -pdflatex="pdflatex -synctex=1 -file-line-error"
  9. EXTRAMK ?=
  10. LINKS := log synctex.gz
  11. ifneq (${DRAFT},)
  12. KO := -
  13. LATEXMK += -e '$$max_repeat = 1' -interaction=nonstopmode
  14. endif
  15. LATEXMK += $(EXTRAMK)
  16. # --------------------------------------------------------------------
  17. .PHONY: all links force scratch clean purge __force__
  18. define latex
  19. $(LATEXMK) -pdf $* $(MAIN); err=$$?; \
  20. [ -f _build/$(MAIN).pdf ] && cp _build/$(MAIN).pdf .; \
  21. exit $$err
  22. endef
  23. all: prepare __force__
  24. $(KO)$(call latex)
  25. force: prepare __force__
  26. $(KO)$(call latex,-g)
  27. prepare: __force__
  28. for i in $(LINKS); do ln -sf _build/$(MAIN).$$i .; done
  29. rm -f _build/$(MAIN).pdf
  30. scratch: purge all
  31. @true
  32. clean:
  33. rm -rf _build/ $(LINKS:%=$(MAIN).%)
  34. purge: clean
  35. rm -f $(MAIN).pdf