htlle-da-vorlage/Makefile

102 lines
3.1 KiB
Makefile
Raw Normal View History

# Where are the
SOURCEDIR=./example
STYLEDIR=$(CURDIR)/style
STAGINGDIR=$(CURDIR)/staging
INPUTDIR=$(STAGINGDIR)
OUTPUTDIR=$(STAGINGDIR)
2020-04-13 16:42:44 +02:00
BIBFILE=$(INPUTDIR)/literatur.bib
METADATAFILE = $(INPUTDIR)/metadata.yaml
OUTPUTFILE = $(OUTPUTDIR)/diplomarbeit.pdf
LOGFILE = $(OUTPUTFILE).log
SPELLERRORFILE = $(OUTPUTDIR)/spellcheck-results.txt
SHELL := /bin/bash
2020-04-13 16:42:44 +02:00
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 '
2020-04-13 16:42:44 +02:00
@echo 'Usage: '
@echo ' make pdf generate a PDF file '
@echo ' make spellcheck checks the output for misspelled words '
2020-04-13 16:42:44 +02:00
@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 theses 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 \
2020-04-13 16:42:44 +02:00
-o "$(OUTPUTFILE)" \
--template="$(STAGINGDIR)/style/template.tex" \
--bibliography="$(BIBFILE)" 2>"$(LOGFILE)" \
--csl="$(STAGINGDIR)/style/htlle-diplomarbeit.csl" \
2020-04-13 16:42:44 +02:00
--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
@pandoc "$(STAGINGDIR)"/*.md -t plain | hunspell -d de_AT,de_AT_frami,en_US -p ignore.dict -l -t | sort | uniq > "$(SPELLERRORFILE)"
# Ausgabe der Rechtschreibfehler
@cat "$(SPELLERRORFILE)" | sed 's/^/ /'
# Spell resultate zuueckkopieren
@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
2020-04-13 16:42:44 +02:00
.PHONY: help pdf clean