#!/usr/bin/env bash
set -euo pipefail
unset MAKEFLAGS MFLAGS GNUMAKEFLAGS
make_bin=$(command -v gmake || command -v make)
m() { "$make_bin" --no-print-directory -rR "$@"; }
work_dir=$(mktemp -d)
if [ "${KEEP_WORK:-0}" = 1 ]; then
  trap 'printf "Artifacts: %s\n" "$work_dir"' EXIT
else
  trap 'rm -rf -- "$work_dir"' EXIT
fi
cd "$work_dir"
export TMPDIR="$work_dir"
cat > article.tex <<'INPUT_88_1'
\documentclass{article}
\begin{document}
An independent article.
\end{document}
INPUT_88_1
cat > notes.tex <<'INPUT_88_2'
\documentclass{article}
\begin{document}
Independent working notes.
\end{document}
INPUT_88_2
cat > Makefile <<'MAKEFILE'
LATEXMK ?= latexmk
FLAGS := -norc -pdf -no-shell-escape
FLAGS += -interaction=nonstopmode -halt-on-error
.DELETE_ON_ERROR:
.DEFAULT_GOAL := all
DOCS := article notes
PDFS := $(addsuffix /main.pdf,$(addprefix build/,$(DOCS)))
.PHONY: all
all: $(PDFS)
build/%/main.pdf: %.tex
	@mkdir -p $(@D)
	@$(LATEXMK) $(FLAGS) -outdir=$(@D) -jobname=main $< > $(@D)/latexmk.log 2>&1 || \
	  { cat $(@D)/latexmk.log >&2; exit 1; }
MAKEFILE
m -s -j2 all
pdftotext build/article/main.pdf article.txt
pdftotext build/notes/main.pdf notes.txt
grep -q 'An independent article.' article.txt
grep -q 'Independent working notes.' notes.txt
test -s build/article/main.aux
test -s build/notes/main.aux
m -q all
printf "two independent PDFs built with -j2\n"
