SRC ?= haskelltut ODIR ?= . BIBLIOGRAPHY ?= bibliography ALLSRC = $(shell find . -name "*.ms") SOELIM_OPTS ?= SOELIM = soelim $(SOELIM_OPTS) SPECHAR = specialchar2ms.sh PRECONV_OPTS ?= -e utf-8 PRECONV = preconv $(PRECONV_OPTS) EQN_OPTS ?= -Tpdf EQN = eqn $(EQN_OPTS) # source-highlight stuff # GH_INTRO: instructions before each source code provided by source-highlight # GH_OUTRO: ------------ after ---- ------ ---- -------- -- ---------------- # GH_INTRO/GH_OUTRO: values are separated by ';' # GH_INTRO := .b1;.nr DI 0;.DS I;.fam C GH_OUTRO := .fam;.DE;.b2 # export GH_INTRO export GH_OUTRO # # SHOPTS: cmd line parameter given to source-highlight SHOPTS = --outlang-def=./.source-highlight_groff-output-definition export SHOPTS # ghighlight brings `source-highlight` to troff GHIGHLIGHT_OPTS ?= GHIGHLIGHT = ghighlight $(GHIGHLIGHT_OPTS) GRAP_OPTS ?= GRAP = grap $(GRAP_OPTS) PIC_OPTS ?= PIC = pic $(PIC_OPTS) # -P => move ponctuation after reference # -S => label and bracket-label options # -e => accumulate (use a reference section) # -p bib => bibliography file REFER_OPTS ?= -PS -e -p $(BIBLIOGRAPHY) REFER = refer $(REFER_OPTS) # -k => iconv conversion (did it ever worked?) # -ms => ms macro # -Tpdf => output device is PDF GROFF_OPTS ?= -ms -t -Tpdf GROFF = groff $(GROFF_OPTS) $(SRC).pdf: cat $(SRC).ms |\ $(SOELIM) |\ $(SPECHAR) |\ $(PRECONV) |\ $(EQN) |\ $(GHIGHLIGHT) |\ $(GRAP) |\ $(PIC) |\ $(REFER) |\ $(GROFF) > $(ODIR)/$@ # Keep options in memory for the recursive 'make' call export SOELIM_OPTS PRECONV_OPTS EQN_OPTS GHIGHLIGHT_OPTS GRAP_OPTS PIC_OPTS REFER_OPTS serve: find . -name "*.ms" | entr gmake -B $(SRC).pdf