source: doc/theses/thierry_delisle_PhD/thesis/Makefile@ 622a358

ADT ast-experimental pthread-emulation qualifiedEnum stuck-waitfor-destruct
Last change on this file since 622a358 was 622a358, checked in by Thierry Delisle <tdelisle@…>, 4 years ago

A whole lot of results and some text section done

  • Property mode set to 100644
File size: 4.8 KB
Line 
1## Define the configuration variables.
2
3Build = build
4Figures = img
5Macros = ../../../LaTeXmacros
6TeXLIB = .:${Macros}:${Build}:../../../bibliography:
7LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error -output-directory=${Build}
8BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex
9
10MAKEFLAGS = --no-print-directory # --silent
11VPATH = ${Build} ${Figures}
12
13## Define the text source files.
14TEXTS = ${addprefix text/, ${addsuffix .tex, \
15 front \
16 intro \
17 existing \
18 runtime \
19 core \
20 practice \
21 io \
22 eval_micro \
23 eval_macro \
24}}
25
26FIGURES = ${addsuffix .tex, \
27}
28
29PICTURES = ${addsuffix .pstex, \
30 base \
31 base_avg \
32 cache-share \
33 cache-noshare \
34 empty \
35 emptybit \
36 emptytls \
37 emptytree \
38 fairness \
39 idle \
40 idle1 \
41 idle2 \
42 idle_state \
43 io_uring \
44 pivot_ring \
45 system \
46 cycle \
47 result.cycle.jax.ops \
48 result.yield.jax.ops \
49 result.churn.jax.ops \
50 result.cycle.jax.ns \
51 result.yield.jax.ns \
52 result.churn.jax.ns \
53 result.cycle.low.jax.ops \
54 result.yield.low.jax.ops \
55 result.churn.low.jax.ops \
56 result.cycle.low.jax.ns \
57 result.yield.low.jax.ns \
58 result.churn.low.jax.ns \
59 result.memcd.updt.qps \
60 result.memcd.updt.lat \
61 result.memcd.rate.qps \
62 result.memcd.rate.99th \
63}
64
65PROGRAMS = ${addsuffix .tex, \
66}
67
68GRAPHS = ${addsuffix .tex, \
69}
70
71## Define the documents that need to be made.
72all: thesis.pdf
73thesis.pdf: ${TEXTS} ${FIGURES} ${PICTURES} thesis.tex glossary.tex local.bib ../../../LaTeXmacros/common.tex ../../../LaTeXmacros/common.sty
74
75DOCUMENT = thesis.pdf
76BASE = ${basename ${DOCUMENT}}
77
78# Directives #
79
80.NOTPARALLEL: # cannot make in parallel
81
82.PHONY : all clean # not file names
83
84all : ${DOCUMENT}
85
86clean :
87 @rm -frv ${DOCUMENT} ${BASE}.ps ${Build}
88
89# File Dependencies #
90
91%.pdf : build/%.ps | ${Build}
92 ps2pdf $<
93
94build/%.ps : build/%.dvi | ${Build}
95 dvips $< -o $@
96
97build/%.dvi : %.tex Makefile | ${Build}
98 # Conditionally create an empty *.ind (index) file for inclusion until makeindex is run.
99 if [ ! -r ${basename $@}.ind ] ; then touch ${basename $@}.ind ; fi
100 # Must have *.aux file containing citations for bibtex
101 if [ ! -r ${basename $@}.aux ] ; then ${LaTeX} $< ; fi
102 -${BibTeX} ${basename $@}
103 # Some citations reference others so run again to resolve these citations
104 ${LaTeX} $<
105 -${BibTeX} ${basename $@}
106 # Make index from *.aux entries and input index at end of document
107 -makeglossaries -q -s ${basename $@}.ist ${basename $@}
108 # Make index from *.aux entries and input index at end of document
109 -makeindex ${basename $@}.idx
110 # Run again to finish citations
111 ${LaTeX} $<
112
113## Define the default recipes.
114
115${Build}:
116 mkdir -p ${Build}
117
118%.tex : fig/%.fig | ${Build}
119 fig2dev -L eepic $< > ${Build}/$@
120
121%.ps : fig/%.fig | ${Build}
122 fig2dev -L ps $< > ${Build}/$@
123
124%.pstex : fig/%.fig | ${Build}
125 fig2dev -L pstex $< > ${Build}/$@
126 fig2dev -L pstex_t -p ${Build}/$@ $< > ${Build}/$@_t
127
128%.pstex : build/%.svg | ${Build}
129 inkscape -z -D --file=$< --export-eps=${Build}/$@ --export-latex
130 mv ${Build}/$@_tex ${Build}/$@_t
131 echo "sed -i 's/$@/${Build}/$@/g' ${Build}/$@_t"
132 sed -i 's/$@/${Build}\/$@/g' ${Build}/$@_t
133
134build/fairness.svg : fig/fairness.py | ${Build}
135 python3 $< $@
136
137cycle_jax_ops_FLAGS = --MaxY=120000000
138cycle_low_jax_ops_FLAGS = --MaxY=120000000
139cycle_jax_ns_FLAGS = --MaxY=2000
140cycle_low_jax_ns_FLAGS = --MaxY=2000
141
142yield_jax_ops_FLAGS = --MaxY=150000000
143yield_low_jax_ops_FLAGS = --MaxY=150000000
144yield_jax_ns_FLAGS = --MaxY=1500
145yield_low_jax_ns_FLAGS = --MaxY=1500
146
147build/result.%.ns.svg : data/% Makefile | ${Build}
148 ../../../../benchmark/plot.py -f $< -o $@ -y "ns per ops/procs" $($(subst .,_,$*)_ns_FLAGS)
149
150build/result.%.ops.svg : data/% Makefile | ${Build}
151 ../../../../benchmark/plot.py -f $< -o $@ -y "Ops per second" $($(subst .,_,$*)_ops_FLAGS)
152
153build/result.memcd.updt.qps.svg : data/memcd.updt Makefile | ${Build}
154 ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Update Ratio"
155
156build/result.memcd.updt.lat.svg : data/memcd.updt Makefile | ${Build}
157 ../../../../benchmark/plot.py -f $< -o $@ -y "Average Read Latency" -x "Update Ratio"
158
159build/result.memcd.rate.qps.svg : data/memcd.rate Makefile | ${Build}
160 ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Target QPS"
161
162build/result.memcd.rate.99th.svg : data/memcd.rate Makefile | ${Build}
163 ../../../../benchmark/plot.py -f $< -o $@ -y "Tail Read Latency" -x "Target QPS"
164
165## pstex with inverted colors
166%.dark.pstex : fig/%.fig Makefile | ${Build}
167 fig2dev -L pstex $< > ${Build}/$@
168 sed -i 's/\/col-1 {0 setgray} bind def/\/col-1 {1 setgray} bind def/g' ${Build}/$@
169 sed -i 's/\/col0 {0.000 0.000 0.000 srgb} bind def/\/col0 {1.000 1.000 1.000 srgb} bind def/g' ${Build}/$@
170 sed -i 's/\/col7 {1.000 1.000 1.000 srgb} bind def/\/col7 {0.000 0.000 0.000 srgb} bind def/g' ${Build}/$@
171 fig2dev -L pstex_t -p ${Build}/$@ $< > ${Build}/$@_t
172
173# Local Variables: #
174# compile-command: "make" #
175# End: #
Note: See TracBrowser for help on using the repository browser.