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.