123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- #
- #
- #
- # Variables
- #
- #
- #
- export MAKE_FLAGS=--no-print-directory
- export OUT=$(shell pwd)/bin
- export OUT_PDF=$(OUT)/pdf/
- export OUT_HTML=$(OUT)/html/
- export OUT_MAN=$(OUT)/man/
- DOCUMENT_CLASS=article
- SETTING_FONTSIZE=11pt
- ## Source directory
- SRC_DIR=$(shell pwd)/src
- ## Templates
- TEMPLATES=$(shell pwd)/templates
- ## CSS directory
- CSS_DIR=$(TEMPLATES)/css
- CSS_SRC=$(shell find $(CSS_DIR) -type f -name "*.css")
- CSS_INCLUDES=$(foreach x, $(CSS_SRC), --variable css=$(x))
- ## All markdown files in the working directory
- export SRC=$(shell find $(SRC_DIR) -name "*.md" | sort)
- DOCUMENT_SETTINGS_PDF= \
- --listings \
- --variable fontsize=$(SETTING_FONTSIZE) \
- --variable papersize=a4paper \
- --variable classoption=cleardoublepage=empty \
- --variable classoption=index=totoc \
- --variable classoption=openright \
- --variable classoption=final \
- --variable classoption=listof=nochaptergap \
- --variable documentclass=$(DOCUMENT_CLASS) \
- --variable babel-lang=english \
- --variable geometry=portrait
- DOCUMENT_SETTINGS_HTML= \
- $(CSS_INCLUDES) \
- --variable lang=de \
- --variable lof=true \
- --variable lol=true \
- --variable lot=true \
- --variable toc=true \
- --table-of-contents \
- --webtex
- DOCUMENT_SETTINGS_MAN= \
- -s \
- --variable section=5 \
- #
- #
- #
- # Binary and argument construction
- #
- #
- #
- ECHO_CMD=$(shell which echo)
- ECHO_ARG=-e
- ECHO=$(ECHO_CMD) $(ECHO_ARG)
- export ECHO
- MKDIR_CMD=$(shell which mkdir)
- MKDIR_ARG=-p
- MKDIR=$(MKDIR_CMD) $(MKDIR_ARG)
- export MKDIR
- RM_CMD=$(shell which rm)
- RM_ARG=-fr
- RM=$(RM_CMD) $(RM_ARG)
- export RM
- PANDOC=$(shell which pandoc)
- PANDOC_PARAMS=-r markdown+simple_tables+table_captions+yaml_metadata_block+definition_lists+raw_html+markdown_in_html_blocks \
- --filter pandoc-crossref
- PANDOC_CC=$(PANDOC) $(PANDOC_PARAMS)
- export PANDOC_CC_PDF=$(PANDOC) \
- $(PANDOC_PARAMS) \
- --latex-engine=pdflatex \
- $(DOCUMENT_SETTINGS_PDF)
- export PANDOC_CC_HTML=$(PANDOC) $(PANDOC_PARAMS) $(DOCUMENT_SETTINGS_HTML)
- export PANDOC_CC_MAN=$(PANDOC) $(PANDOC_PARAMS) $(DOCUMENT_SETTINGS_MAN)
- TARGET_PDF=$(OUT_PDF)/paper.pdf
- TARGET_HTML=$(OUT_HTML)/index.html
- TARGET_MAN=$(OUT_MAN)/imag.5
- #
- #
- # Tasks
- #
- #
- # Main task
- all: $(TARGET_PDF) $(TARGET_HTML)
- @$(ECHO) "\t[ALL ]"
- # create out directory
- $(OUT):
- @$(ECHO) "\t[MKDIR ] $@"
- @$(MKDIR) $(OUT)
- # create html out directory
- $(OUT_HTML): $(OUT)
- @$(ECHO) "\t[MKDIR ] $@"
- @$(MKDIR) $(OUT_HTML)
- # create html out directory
- $(OUT_PDF): $(OUT)
- @$(ECHO) "\t[MKDIR ] $@"
- @$(MKDIR) $(OUT_PDF)
- # create man out directory
- $(OUT_MAN): $(OUT)
- @$(ECHO) "\t[MKDIR ] $@"
- @$(MKDIR) $(OUT_MAN)
- # cleanup task
- clean:
- @$(ECHO) "\t[RM ] $@"
- @$(RM) $(OUT)
- pdf: $(TARGET_PDF)
- $(TARGET_PDF): $(OUT_PDF)
- @$(ECHO) "\t[PANDOC] pdf"
- @$(PANDOC_CC_PDF) \
- --template $(TEMPLATES)/default.latex \
- $(SRC) -o $@
- html: $(TARGET_HTML)
- $(TARGET_HTML): $(OUT_HTML)
- @$(ECHO) "\t[PANDOC] html"
- @$(PANDOC_CC_HTML) \
- --template $(TEMPLATES)/default.html5 \
- $(SRC) -o $@
- man: $(TARGET_MAN)
- $(TARGET_MAN): $(OUT_MAN)
- @$(ECHO) "\t[PANDOC] man"
- @$(PANDOC_CC_MAN) \
- $(SRC) -o $@
- .PHONY: $(TARGET_PDF) $(TARGET_HTML)
|