.PHONY: default
SHELL=/bin/bash

MA_NAME="MA-Master"
MA_NAME_FINAL="Masterarbeit Konzeption und Umsetzung IPv6-VPN"

CA_DOC_NAME="CA-DOC-Master"
CA_DOC_NAME_FINAL="Dokumentation CA IPv6-VPN"

SRV_DOC_NAME="SRV-DOC-Master"
SRV_DOC_NAME_FINAL="Serverdokumentation IPv6-VPN"

CLNT_DOC_NAME="CLNT-DOC-Master"
CLNT_DOC_NAME_FINAL="Benutzeranleitung IPv6-VPN"

FULL_BUNDLE_NAME="FULL-BUNDLE"
FULL_BUNDLE_NAME_FINAL="Druckversion Masterarbeit Konzeption und Umsetzung IPv6-VPN"

LAST_EXPORT=`cat LAST_EXPORT`

# Custom command enhancements
PDFLATEX=pdflatex -interaction=nonstopmode -file-line-error -output-directory build
PDFLATEXGREP=""
#PDFLATEXGREP=| grep -i ".*:[0-9]*:.*\|warning"

default: cleanall render_all

render_all: render_all_md render_all_html render_all_pdf

render_all_pdf: render_ma_pdf render_ca_doc_pdf render_srv_doc_pdf render_clnt_doc_pdf render_full_bundle_pdf
render_all_md: render_ma_md render_ca_doc_md render_srv_doc_md render_clnt_doc_md
render_all_html: render_ma_html render_ca_doc_html render_srv_doc_html render_clnt_doc_html

render_ma_md:
	pandoc -s ${MA_NAME}.tex -o build/${MA_NAME}.md
	cp build/${MA_NAME}.md release/${MA_NAME_FINAL}.md

render_ma_html:
	pandoc -s ${MA_NAME}.tex -o build/${MA_NAME}.html
	cp build/${MA_NAME}.html release/${MA_NAME_FINAL}.html

render_ma_pdf:
	${PDFLATEX} ${MA_NAME}.tex ${PDFLATEXGREP}
	bibtex build/${MA_NAME}
	${PDFLATEX} ${MA_NAME}.tex ${PDFLATEXGREP}
	${PDFLATEX} ${MA_NAME}.tex ${PDFLATEXGREP}
	cp build/${MA_NAME}.pdf release/${MA_NAME_FINAL}.pdf

render_ca_doc_md:
	pandoc -s ${CA_DOC_NAME}.tex -o build/${CA_DOC_NAME}.md
	cp build/${CA_DOC_NAME}.md release/${CA_DOC_NAME_FINAL}.md

render_ca_doc_html:
	pandoc -s ${CA_DOC_NAME}.tex -o build/${CA_DOC_NAME}.html
	cp build/${CA_DOC_NAME}.html release/${CA_DOC_NAME_FINAL}.html

render_ca_doc_pdf:
	${PDFLATEX} ${CA_DOC_NAME}.tex ${PDFLATEXGREP}
	${PDFLATEX} ${CA_DOC_NAME}.tex ${PDFLATEXGREP}
	cp build/${CA_DOC_NAME}.pdf release/${CA_DOC_NAME_FINAL}.pdf

render_srv_doc_md:
	pandoc -s ${SRV_DOC_NAME}.tex -o build/${SRV_DOC_NAME}.md
	cp build/${SRV_DOC_NAME}.md release/${SRV_DOC_NAME_FINAL}.md

render_srv_doc_html:
	pandoc -s ${SRV_DOC_NAME}.tex -o build/${SRV_DOC_NAME}.html
	cp build/${SRV_DOC_NAME}.html release/${SRV_DOC_NAME_FINAL}.html

render_srv_doc_pdf:
	${PDFLATEX} ${SRV_DOC_NAME}.tex ${PDFLATEXGREP}
	${PDFLATEX} ${SRV_DOC_NAME}.tex ${PDFLATEXGREP}
	cp build/${SRV_DOC_NAME}.pdf release/${SRV_DOC_NAME_FINAL}.pdf

render_clnt_doc_md:
	pandoc -s ${CLNT_DOC_NAME}.tex -o build/${CLNT_DOC_NAME}.md
	cp build/${CLNT_DOC_NAME}.md release/${CLNT_DOC_NAME_FINAL}.md

render_clnt_doc_html:
	pandoc -s ${CLNT_DOC_NAME}.tex -o build/${CLNT_DOC_NAME}.html
	cp build/${CLNT_DOC_NAME}.html release/${CLNT_DOC_NAME_FINAL}.html

render_clnt_doc_pdf:
	${PDFLATEX} ${CLNT_DOC_NAME}.tex ${PDFLATEXGREP}
	${PDFLATEX} ${CLNT_DOC_NAME}.tex ${PDFLATEXGREP}
	cp build/${CLNT_DOC_NAME}.pdf release/${CLNT_DOC_NAME_FINAL}.pdf

render_full_bundle_pdf:
	${PDFLATEX} ${FULL_BUNDLE_NAME}.tex ${PDFLATEXGREP}
	cp build/${FULL_BUNDLE_NAME}.pdf release/${FULL_BUNDLE_NAME_FINAL}.pdf


view_all: viewer_ma viewer_ca_doc viewer_srv_doc viewer_clnt_doc

viewer_ma:
	okular build/${MA_NAME}.pdf &

viewer_ca_doc:
	okular build/${CA_DOC_NAME}.pdf &

viewer_srv_doc:
	okular build/${SRV_DOC_NAME}.pdf &

viewer_clnt_doc:
	okular build/${CLNT_DOC_NAME}.pdf &


clean:
	cd build; rm -v *.aux *.bbl *.blg *.log *.out *.toc *.synctex.gz; cd ..; exit 0;

cleanall:
	rm -rfv build; mkdir build
	rm -rfv release; mkdir release

show_all: cleanall render_all view_all

release: cleanall render_all clean
