-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
124 lines (95 loc) · 3.36 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
BOOK_NAME=calvinisme
PDFX_NAME=$(BOOK_NAME)_pdfx_1a
LINENO_PATT=\\pagewiselinenumbers
TEXINPUTS=microtype:
TODAY=$(shell date --iso)
TARGETS=title_standalone $(BOOK_NAME) $(BOOK_NAME)_review $(BOOK_NAME)_pocket $(BOOK_NAME)_digest
FTP_TOPDIR=calvary
FTP_PDFDIR=$(FTP_TOPDIR)/pdf
FTP_JSONDIR=$(FTP_TOPDIR)/json
FTP_EBOOKDIR=$(FTP_TOPDIR)/ebooks
# Ebook settings
KINDLE_PATH=/documents/raphael
AUTHOR=Chuck Smith
LANGUAGE=fr
PUBDATE=$(shell date +'%Y-%m-%d')
COVER=calvinisme_cover_firstpage.jpg
TITLE=Calvinisme, Arminianisme & Parole de Dieu
EBOOK_CONVERT_OPTS=--authors "$(AUTHOR)" --title "$(TITLE)" --language "$(LANGUAGE)" --page-breaks-before "//*[name()='h1' or name()='h2']" --cover "$(COVER)" --use-auto-toc --level1-toc "//*[name()='h2']" --level2-toc "//*[name()='h3']" --minimum-line-height=0.4 --font-size-mapping "12,12,14,16,18,20,26,64"
# Include crocodoc conf
include ~/.crocodoc.conf
all: pdf
pdf: $(addsuffix .pdf,$(TARGETS))
ebooks: mobi epub
mobi: $(BOOK_NAME).mobi
epub: $(BOOK_NAME).epub
json: pdf $(addsuffix .json,$(TARGETS))
%_numbered.tex: %.tex
sed -e 's@%$(LINENO_PATT)@$(LINENO_PATT)@' $< > $@
%.pdf: %.tex
TEXINPUTS=$(TEXINPUTS) lualatex -shell-escape -interaction=batchmode $*
TEXINPUTS=$(TEXINPUTS) lualatex -shell-escape -interaction=batchmode $*
%.dvi: %.tex
-TEXINPUTS=$(TEXINPUTS) latex -interaction=batchmode $<
-TEXINPUTS=$(TEXINPUTS) latex -interaction=batchmode $<
#%.html: %.dvi
# # Generate PDF from DVI to make use of ifpdf
# dvipdf $<
# pdftohtml -noframes -enc UTF-8 -s -c $*.pdf
%.html: %.tex
TEXINPUTS=$(TEXINPUTS) htlatex $< \
'ebook.cfg,xhtml,charset=utf-8' ' -cunihtf -utf8 -cvalidate'
./cleanuphtml.sh $@
%_embedded.epub: %.epub
rm -rf $*
unzip -d $* $<
cp -r fonts $*/
# Add fons to stylesheet.css
cat fonts.css >> $*/stylesheet.css
# Insert fonts into content.opf
sed -i '/<manifest>/ r fonts.content' $*/content.opf
# Regenerate zip
cd $* && zip -Xr9D $(CURDIR)/$@ mimetype *
%.epub: %.html
ebook-convert $< $@ $(EBOOK_CONVERT_OPTS) --preserve-cover-aspect-ratio
%.mobi: %.epub
#ebook-convert $< $@ $(EBOOK_CONVERT_OPTS) --mobi-file-type "both"
kindlegen $<
make-split: make-split-stamp
make-split-stamp:
./split.sh
touch make-split-stamp
split: make-split $(BOOK_NAME)_split.pdf
split_numbered: make-split $(BOOK_NAME)_split_numbered.pdf
upload:
-ncftpput -f ~/.ncftp/cc.cfg $(FTP_PDFDIR)/ *.pdf
-ncftpput -f ~/.ncftp/cc.cfg $(FTP_JSONDIR)/ *.json
-ncftpput -f ~/.ncftp/cc.cfg $(FTP_EBOOKDIR)/ *.mobi *.epub
%.json: %.pdf
ifeq ($(strip $(TOKEN)),)
$(error No crocodoc token found in ~/.crocodoc.conf)
endif
curl -F "file=@$<" -F "token=$(TOKEN)" -F "title=$* $(TODAY)" \
https://crocodoc.com/api/v1/document/upload > $@
spellcheck:
find chapters/fr -name "*.tex" -exec aspell -l fr -c {} \;
crocupload: $(BOOK_NAME).json $(BOOK_NAME)_pocket.json $(BOOK_NAME)_digest.json
clean:
rm -f *.ps *.aux *.log *.out *.lol
rm -f *.idx *.ind *.ilg *.toc *.dvi
rm -f chapters/fr/*.aux
rm -f chapters/en/*.aux
rm -f make-split-stamp split-stamp
rm -rf splits split crocupload
rm -f *.xmpi
rm -f *.html *.png *.css *.4tc *.tmp *.xref *.4ct
rm -f *.epub *.mobi
rm -f *.idv *.lg
rm -f *.json
# Remove only target pdf
rm -f $(addsuffix *.pdf,$(TARGETS))
microtype.tar.xz:
wget http://tlcontrib.metatex.org/2010/archive/microtype.tar.xz
upgrade-microtype: microtype.tar.xz
rm -rf microtype
tar xf $< --strip-components=2