makeauto
makeauto is a Python script which executes make automatically every time any of the source files listed in the Makefile change. Installation and usage instructions can be found in my github repository. I hope that you would find makeauto useful and would love to hear in the comments about your use cases.
My use case
I use makeauto to get automatic previews of documents written in LaTeX. This is
particularly helpful when trying to create a plot with just right font sizes, line widths,
etc. Normally, such figures are included as separate files via the \includegraphics
command. Most LaTeX editing environments or tools fail to detect changes of such files.
Thus, every time you create a new version of a figure, you need to trigger the compilation
process manually. This is not the case with makeauto when you specify the figure files
or the directory containing them as prerequisites of the make target. Here is an example
Makefile I used to write one paper.
BASENAME=paper
all : ${BASENAME}.tex ${BASENAME}.bib figures plots
latexmk -pdf -bibtex ${BASENAME}.tex
Because the directories figures and plots, which I used to store my images, were
specified as prerequisites of the all
target, makeauto was calling makeauto every
time I saved a new file into these directories.
PDF viewer
The last thing required is a pdf viewer, which can refresh the opened file every time the file changes. I personally like using Skim.