98 lines
3.1 KiB
Makefile
98 lines
3.1 KiB
Makefile
# 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
|
|
@pandoc "$(STAGINGDIR)"/*.md -t plain | hunspell -d de_AT,de_AT_frami,en_US -p "$(STAGINGDIR)"/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
|
|
.PHONY: help pdf clean
|