# Where are the SOURCEDIR=./example STYLEDIR=$(CURDIR)/style STAGINGDIR=$(CURDIR)/staging INPUTDIR=$(STAGINGDIR) OUTPUTDIR=$(STAGINGDIR) BIBFILE=$(INPUTDIR)/literatur.bib METADATAFILE = $(INPUTDIR)/metadata.yaml OUTPUTFILE = $(OUTPUTDIR)/diplomarbeit.pdf LOGFILE = $(OUTPUTFILE).log SPELLERRORFILE = $(OUTPUTDIR)/spellcheck-results.txt SHELL := /bin/bash help: @echo ' ' @echo 'Makefile für Pandoc Markdown Vorlage ' @echo 'für Diplomarbeiten der HTL Leoben ' @echo ' ' @echo 'Autor: Günther Hutter, basierend auf der Arbeit von Michael Heinemann ' @echo ' sowie auf dem Template der HTL Rennweg3 ' @echo ' ' @echo 'Änderungswünsche werden ausschließlich via issue und pullrequest ' @echo 'Usage: ' @echo ' make pdf generate a PDF file ' @echo ' make spellcheck checks the output for misspelled words ' @echo ' ' @echo ' ' # Helper Targets build-stage: # Kopieren der DA-Quellen in das staging Verzeichnis @echo "Source directory = $(SOURCEDIR)" @echo "Copying source files into the staging directory" @rsync -av $(SOURCEDIR)/ $(STAGINGDIR) \ --cvs-exclude \ --exclude=HTLLE-DA-Vorlage \ --exclude=$(OUTPUTFILE) \ --exclude=$(LOGFILE) \ --quiet # Style in das staging Verzeichnis mergen @echo "Merging style files into the staging directory" @rsync -av $(STYLEDIR)/ $(STAGINGDIR)/style --quiet compile-pdf: # Bauen der Arbeit aus dem staging verzeichnis heraus @echo "Compiling the thesis into the pdf: $(OUTPUTFILE)" # Builden mit pandoc. Als Basisverzeichnis springen wir ins staging. # Damit sollten alle relativen Links stimmen @cd staging && pandoc "$(STAGINGDIR)"/*.md "$(STAGINGDIR)/style/"*.md *.yaml \ -o "$(OUTPUTFILE)" \ --template="$(STAGINGDIR)/style/template.tex" \ --bibliography="$(BIBFILE)" 2>"$(LOGFILE)" \ --csl="$(STAGINGDIR)/style/htlle-diplomarbeit.csl" \ --highlight-style=pygments \ --listings \ --metadata link-citations=true \ -N # Ausgabe der Warnungen @cat $(LOGFILE) # Build erfolgreich -> Resultate zurückkopieren @rsync -az $(OUTPUTFILE) $(SOURCEDIR)/ @rsync -az $(LOGFILE) $(SOURCEDIR)/ do-spellcheck: @echo "Performing a spellcheck on all Markdown files" # Überprüft die staging Dateien auf Rechtschreibfehler @hunspell -d de_AT,de_AT_frami,en_US -p "$(STAGINGDIR)"/ignore.dict -u3 -t "$(STAGINGDIR)"/*.md > "$(SPELLERRORFILE)" # Ausgabe der Rechtschreibfehler @cat "$(SPELLERRORFILE)" | sort | uniq | sed 's/^/ /' # Spell resultate zurueckkopieren @rsync -az $(SPELLERRORFILE) $(SOURCEDIR)/ remove-stage: #Remove the staging directory @echo "Removing the staging directory" @rm -rf $(STAGINGDIR) # Targets which are intended to be used directly spellcheck: build-stage do-spellcheck remove-stage pdf: build-stage compile-pdf remove-stage # Special Targets .PHONY: help pdf clean