diff options
Diffstat (limited to 'reproduce/src/make/paper.mk')
-rw-r--r-- | reproduce/src/make/paper.mk | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/reproduce/src/make/paper.mk b/reproduce/src/make/paper.mk index db20279..f3db1de 100644 --- a/reproduce/src/make/paper.mk +++ b/reproduce/src/make/paper.mk @@ -22,16 +22,39 @@ +# The bibliography +# ---------------- +# +# We need to run the `biber' program on the output of LaTeX to generate the +# necessary bibliography before making the final paper. +# +# NOTE: `tex/pipeline.tex' is an order-only-prerequisite for +# `paper.bbl'. This is because we need to run LaTeX in both the `paper.bbl' +# recipe and the `paper.pdf' recipe. But if `tex/references.tex' hasn't +# been modified, we don't want to re-build the bibliography, only the final +# PDF. +$(texbdir)/paper.bbl: tex/references.tex \ + | $(tikzdir) $(texbdir) tex/pipeline.tex + + # We'll run LaTeX first to generate the `.bcf' file (necessary for + # `biber') and then run `biber' to generate the `.bbl' file. + p=$$(pwd); \ + export TEXINPUTS=$$p:$$TEXINPUTS; \ + cd $(texbdir); \ + pdflatex -shell-escape -halt-on-error $$p/paper.tex; \ + biber paper + + + + + # The final paper # --------------- # # The commands to build the final report. We want the pipeline version to # be checked everytime the final PDF is to be built. -texbdir=$(texdir)/build -tikzdir=$(texbdir)/tikz -$(texbdir): | $(texdir); mkdir $@ -$(tikzdir): | $(texbdir); mkdir $@ -paper.pdf: tex/pipeline.tex paper.tex | $(tikzdir) $(texbdir) +paper.pdf: tex/pipeline.tex paper.tex $(texbdir)/paper.bbl \ + | $(tikzdir) $(texbdir) # Make the report. p=$$(pwd); \ |