imag/doc/Makefile

161 lines
3.3 KiB
Makefile

#
#
#
# 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) \
--pdf-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)