-
Notifications
You must be signed in to change notification settings - Fork 676
/
Makefile
180 lines (150 loc) · 5.55 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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# settings precedence: command line>usercfg.mk>{windows,unix}.mk
# user settings
# include before variable definitions
ifneq ($(wildcard usercfg.mk),)
include usercfg.mk
endif
# platform specific settings
# include before variable definitions
ifeq ($(OS),Windows_NT)
include windows.mk
else
include unix.mk
endif
# Ghostscript-based pdf postprocessing
include compress.mk
# Config file
MKRC ?= latexmkrc
# Source .tex file
SOURCE ?= dissertation
# LaTeX compiler output .pdf file
TARGET ?= $(SOURCE)
# LaTeX version:
# -pdf = pdflatex
# -pdfdvi = pdflatex with dvi
# -pdfps = pdflatex with ps
# -pdfxe = xelatex with dvi (faster than -xelatex)
# -xelatex = xelatex without dvi
# -pdflua = lualatex with dvi (faster than -lualatex)
# -lualatex = lualatex without dvi
BACKEND ?= -pdfxe
# Do not modify the section below. Edit usercfg.mk instead.
DRAFTON ?= # 1=on;0=off
SHOWMARKUP ?= # 1=on;0=off
FONTFAMILY ?= # 0=CMU;1=MS fonts;2=Liberation fonts
ALTFONT ?= # 0=Computer Modern;1=pscyr;2=XCharter
USEBIBER ?= # 0=bibtex8;1=biber
USEFOOTCITE ?= # 0=no;1=yes
BIBGROUPED ?= # 0=no;1=yes
IMGCOMPILE ?= # 1=on;0=off
NOTESON ?= # 0=off;1=on, separate slide;2=on, same slide
LATEXFLAGS ?= -halt-on-error -file-line-error
LATEXMKFLAGS ?= -silent
BIBERFLAGS ?= # --fixinits
REGEXDIRS ?= . Dissertation Synopsis Presentation # distclean dirs
TIMERON ?= # show CPU usage
TIKZFILE ?= # .tikz file for tikz rule
USEDEV ?= # use development version
# Makefile options
MAKEFLAGS := -s
.DEFAULT_GOAL := all
.NOTPARALLEL:
export DRAFTON
export SHOWMARKUP
export FONTFAMILY
export ALTFONT
export USEBIBER
export USEFOOTCITE
export BIBGROUPED
export IMGCOMPILE
export NOTESON
export LATEXFLAGS
export BIBERFLAGS
export REGEXDIRS
export TIMERON
export TIKZFILE
export USEDEV
##! компиляция всех файлов
all: synopsis dissertation presentation
define compile
latexmk -norc -r $(MKRC) $(LATEXMKFLAGS) $(BACKEND) -jobname=$(TARGET) $(SOURCE)
endef
##! компиляция диссертации
dissertation: TARGET=dissertation
dissertation: SOURCE=dissertation
dissertation:
$(compile)
##! компиляция автореферата
synopsis: TARGET=synopsis
synopsis: SOURCE=synopsis
synopsis:
$(compile)
##! компиляция презентации
presentation: TARGET=presentation
presentation: SOURCE=presentation
presentation:
$(compile)
##! компиляция черновика диссертации
dissertation-draft: DRAFTON=1
dissertation-draft: dissertation
##! компиляция черновика автореферата
synopsis-draft: DRAFTON=1
synopsis-draft: synopsis
##! компиляция диссертации, автореферата, и презентации при помощи pdflatex
pdflatex: BACKEND=-pdf
pdflatex: dissertation synopsis presentation
##! компиляция черновиков всех файлов
draft: dissertation-draft synopsis-draft
##! компиляция автореферата в формате А4 для печати
synopsis-booklet: synopsis
synopsis-booklet: SOURCE=synopsis_booklet
synopsis-booklet: TARGET=synopsis_booklet
synopsis-booklet:
$(compile)
##! компиляция презентации в формате А4 для печати
presentation-booklet: presentation
presentation-booklet: SOURCE=presentation_booklet
presentation-booklet: TARGET=presentation_booklet
presentation-booklet:
$(compile)
##! компиляция презентации в формате А4 с комментариями для совета (раздаточный материал)
presentation-handout: presentation
presentation-handout: SOURCE=presentation_handout
presentation-handout: TARGET=presentation_handout
presentation-handout:
$(compile)
##! компиляция tikz графики
tikz: SOURCE=tikz
tikz: BACKEND=-pdflua # некоторые библиотеки работают только с lualatex
tikz: TARGET=$(basename $(notdir $(TIKZFILE)))
tikz:
$(compile)
##! добавление .pdf автореферата и диссертации в систему контроля версий
release: all
git add dissertation.pdf
git add synopsis.pdf
##! очистка от временных файлов цели TARGET
clean-target:
latexmk -norc -r $(MKRC) -f $(LATEXMKFLAGS) $(BACKEND) -jobname=$(TARGET) -c $(SOURCE)
##! полная очистка от временных файлов цели TARGET
distclean-target:
latexmk -norc -r $(MKRC) -f $(LATEXMKFLAGS) $(BACKEND) -jobname=$(TARGET) -C $(SOURCE)
##! очистка проекта от временных файлов
clean:
"$(MAKE)" SOURCE=dissertation TARGET=dissertation clean-target
"$(MAKE)" SOURCE=synopsis TARGET=synopsis clean-target
"$(MAKE)" SOURCE=presentation TARGET=presentation clean-target
"$(MAKE)" SOURCE=presentation_booklet TARGET=presentation_booklet clean-target
"$(MAKE)" SOURCE=presentation_handout TARGET=presentation_handout clean-target
##! полная очистка проекта от временных файлов
distclean:
"$(MAKE)" SOURCE=dissertation TARGET=dissertation distclean-target
"$(MAKE)" SOURCE=synopsis TARGET=synopsis distclean-target
"$(MAKE)" SOURCE=presentation TARGET=presentation distclean-target
"$(MAKE)" SOURCE=presentation_booklet TARGET=presentation_booklet distclean-target
"$(MAKE)" SOURCE=presentation_handout TARGET=presentation_handout distclean-target
# include after "all" rule
include examples.mk
.PHONY: all dissertation synopsis presentation dissertation-draft \
synopsis-draft pdflatex draft synopsis-booklet presentation-booklet\
tikz release clean-target distclean-target clean distclean