79 lines
2.4 KiB
Makefile
79 lines
2.4 KiB
Makefile
####################################################################################################
|
|
# Configuration
|
|
####################################################################################################
|
|
|
|
# Build configuration
|
|
|
|
BUILD = build
|
|
MAKEFILE = Makefile
|
|
OUTPUT_FILENAME = book
|
|
METADATA = metadata.yml
|
|
CHAPTERS = chapters/*.md
|
|
TOC = --toc --toc-depth=2
|
|
METADATA_ARGS = --metadata-file=$(METADATA)
|
|
IMAGES_FOLDER = images
|
|
IMAGES = $(IMAGES_FOLDER)/*
|
|
COVER_IMAGE = $(IMAGES_FOLDER)/cover.png
|
|
MATH_FORMULAS = --webtex
|
|
CSS_FILE = style.css
|
|
CSS_ARGS = --css=$(CSS_FILE)
|
|
|
|
# Debugging
|
|
|
|
# DEBUG_ARGS = --verbose
|
|
|
|
# Pandoc filtes - uncomment the following variable to enable cross references filter. For more
|
|
# information, check the "Cross references" section on the README.md file.
|
|
|
|
# FILTER_ARGS = --filter pandoc-crossref
|
|
|
|
# Combined arguments
|
|
|
|
ARGS = $(TOC) $(MATH_FORMULAS) $(CSS_ARGS) $(METADATA_ARGS) $(FILTER_ARGS) $(DEBUG_ARGS)
|
|
PANDOC_COMMAND = pandoc
|
|
|
|
# Per-format options
|
|
|
|
EPUB_ARGS = --epub-cover-image=$(COVER_IMAGE)
|
|
HTML_ARGS = --standalone --to=html5
|
|
PDF_ARGS = -V geometry:margin=1in -V documentclass=report --pdf-engine=xelatex
|
|
|
|
####################################################################################################
|
|
# Basic actions
|
|
####################################################################################################
|
|
|
|
all: book
|
|
|
|
book: epub html pdf
|
|
|
|
clean:
|
|
rm -r $(BUILD)
|
|
|
|
####################################################################################################
|
|
# File builders
|
|
####################################################################################################
|
|
|
|
epub: $(BUILD)/epub/$(OUTPUT_FILENAME).epub
|
|
|
|
html: $(BUILD)/html/$(OUTPUT_FILENAME).html
|
|
|
|
pdf: $(BUILD)/pdf/$(OUTPUT_FILENAME).pdf
|
|
|
|
$(BUILD)/epub/$(OUTPUT_FILENAME).epub: $(MAKEFILE) $(METADATA) $(CHAPTERS) $(CSS_FILE) $(IMAGES) \
|
|
$(COVER_IMAGE)
|
|
mkdir -p $(BUILD)/epub
|
|
$(PANDOC_COMMAND) $(ARGS) $(EPUB_ARGS) -o $@ $(CHAPTERS)
|
|
@echo "$@ was built"
|
|
|
|
$(BUILD)/html/$(OUTPUT_FILENAME).html: $(MAKEFILE) $(METADATA) $(CHAPTERS) $(CSS_FILE) $(IMAGES)
|
|
mkdir -p $(BUILD)/html
|
|
$(PANDOC_COMMAND) $(ARGS) $(HTML_ARGS) -o $@ $(CHAPTERS)
|
|
cp -R $(IMAGES_FOLDER)/ $(BUILD)/html/$(IMAGES_FOLDER)/
|
|
cp $(CSS_FILE) $(BUILD)/html/$(CSS_FILE)
|
|
@echo "$@ was built"
|
|
|
|
$(BUILD)/pdf/$(OUTPUT_FILENAME).pdf: $(MAKEFILE) $(METADATA) $(CHAPTERS) $(CSS_FILE) $(IMAGES)
|
|
mkdir -p $(BUILD)/pdf
|
|
$(PANDOC_COMMAND) $(ARGS) $(PDF_ARGS) -o $@ $(CHAPTERS)
|
|
@echo "$@ was built"
|