Merge branch 'release/20200525.01'
[themediocreprogrammer.git] / Makefile
1 BUILD = build
2 BOOKNAME = the_mediocre_programmer
3 TITLE = title.txt
4 METADATA_XML = metadata.xml
5 METADATA_YAML = metadata.yaml
6 CHAPTERS = intro.md chapter01.md chapter02.md chapter03.md chapter04.md chapter05.md chapter06.md chapter07.md epilogue.md gratitude.md appendixa.md
7 TOC = --toc --toc-depth=2
8 COVER_IMAGE = images/cover_ebook_1600x2400.png
9 LATEX_CLASS = book
10 FONTS = fonts/LinBiolinum_R.ttf fonts/LinBiolinum_RI.ttf fonts/LinBiolinum_RB.ttf
11
12 all: book
13
14 book: epub html pdf
15
16 clean:
17         rm -r $(BUILD)
18
19 epub: $(BUILD)/epub/$(BOOKNAME).epub
20
21 html: $(BUILD)/html/$(BOOKNAME).html fonts css
22
23 fonts: $(patsubst %,$(BUILD)/html/%,$(FONTS))
24
25 css: $(BUILD)/html/css/$(BOOKNAME).css
26
27 pdf: $(BUILD)/pdf/$(BOOKNAME).pdf
28
29 $(BUILD)/epub/$(BOOKNAME).epub: $(TITLE) $(CHAPTERS) $(METADATA_YAML)
30         mkdir -p $(BUILD)/epub
31         pandoc -s $(TOC) --chapters --number-offset=0 -S --epub-metadata=$(METADATA_XML) --epub-cover-image=$(COVER_IMAGE) -o $@ $^
32
33 $(BUILD)/html/$(BOOKNAME).html: $(CHAPTERS) $(METADATA_YAML)
34         mkdir -p $(BUILD)/html
35         pandoc -s $(TOC) --chapters --number-offset=0 --standalone --to=html5 --css=css/$(BOOKNAME).css -o $@ $^
36
37 $(BUILD)/html/fonts/%: fonts/%
38         mkdir -p $(BUILD)/html/fonts
39         cp $< $@
40
41 $(BUILD)/html/css/%: css/%
42         mkdir -p $(BUILD)/html/css
43         cp $< $@
44
45 $(BUILD)/pdf/$(BOOKNAME).pdf: $(CHAPTERS) $(METADATA_YAML)
46         mkdir -p $(BUILD)/pdf
47         # pandoc $(TOC) --chapters --number-offset=0 --latex-engine=pdflatex -V documentclass=$(LATEX_CLASS) -V papersize=6x9 -o $@ $^
48         pandoc -s $(TOC) --chapters --number-offset=0 --template=Pandoc/templates/cs-6x9-pdf.latex --latex-engine=xelatex  -o $@ $^
49
50 .PHONY: all book clean epub html fonts css pdf