Ich habe ein Verzeichnis von generierten Markdown-Dateien. Jeder dieser Dateien möchte ich nun in ein PDF umwandeln. Das mache ich mit
pandoc:
Code: Alles auswählen
pandoc -s --pdf-engine=xelatex -V papersize=a4 foo.md -o foo.pdf
pandoc -s --pdf-engine=xelatex -V papersize=a4 bar.md -o bar.pdf
Das funktioniert soweit. Nun kann es sein, dass sich einige Markdown-Dateien ändern, andere aber nicht. So wäre es doch schön, wenn ich mithilfe von einem
Makefile nur diejenigen PDFs neu generieren muss, für welche sich die Markdown-Datei richtig geändert hat.
Grundsätzlich gibt es ja Suffixes, welche einem das Formulieren allgemeiner Regeln erlauben:
Code: Alles auswählen
.SUFFIXES .md .pdf
.md.pdf:
pandoc -s --pdf-engine=xelatex -V papersize=a4 $< -o $@
Das Problem ist nun, dass ich nicht im Voraus (d.h. beim Verfassen vom
Makefile) weiss, welche Markdown-Dateien es gibt. So müsste ich
make etwas umständlich wie folgendermassen aufrufen:
Code: Alles auswählen
$ find . -type f -name '*.md' | sed 's/\.md$/.pdf/' | xargs make
So wird der Target-Name für jedes PDF dynamisch anhand des Namens der jeweiligen Markdown-Datei erstellt.
Kann ich das irgendwie in mein
Makefile integrieren? Eine portable Lösung wäre mit natürlich am liebsten...