source: doc/theses/thierry_delisle/Makefile @ e76bd39

aaron-thesisarm-ehcleanup-dtorsdeferred_resndemanglerjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerresolv-newwith_gc
Last change on this file since e76bd39 was e76bd39, checked in by Thierry Delisle <tdelisle@…>, 4 years ago

Documented makefile for my thesis

  • Property mode set to 100644
File size: 4.1 KB
Line 
1## Define the appropriate configuration variables.
2
3TeXLIB = .:./style:./text:./annex:./build:../../LaTeXmacros:../../LaTeXmacros/listings:../../LaTeXmacros/enumitem:~/bibliographies:/usr/local/bibliographies:
4LaTeX  = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error -output-directory=build -interaction=nonstopmode
5BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex -terse
6
7## Define the text source files.
8
9SOURCES = ${addsuffix .tex, \
10thesis \
11style/style \
12style/cfa-format \
13annex/glossary \
14text/frontpgs \
15text/intro \
16text/basics \
17text/cforall \
18text/concurrency \
19text/internals \
20text/parallelism \
21text/results \
22text/together \
23text/future \
24}
25
26FIGURES = ${addprefix build/, ${addsuffix .tex, \
27        monitor \
28        ext_monitor \
29        int_monitor \
30        dependency \
31}}
32
33PICTURES = ${addprefix build/, ${addsuffix .pstex, \
34        system \
35        monitor_structs \
36}}
37
38PROGRAMS = ${addsuffix .tex, \
39}
40
41GRAPHS = ${addsuffix .tex, \
42}
43
44## Define the documents that need to be made.
45
46DOCUMENT = thesis.pdf
47
48# Directives #
49
50all : ${DOCUMENT}
51
52clean :
53        @rm -fv ${DOCUMENT} \
54        build/*.acn     \
55        build/*.acr     \
56        build/*.alg     \
57        build/*.aux     \
58        build/*.bbl     \
59        build/*.blg     \
60        build/*.brf     \
61        build/*.cf      \
62        build/*.dvi     \
63        build/*.glg     \
64        build/*.glo     \
65        build/*.gls     \
66        build/*.ist     \
67        build/*.idx     \
68        build/*.ilg     \
69        build/*.ind     \
70        build/*.log     \
71        build/*.out     \
72        build/*.ps      \
73        build/*.pstex   \
74        build/*.pstex_t \
75        build/*.tex     \
76        build/*.toc     \
77        build/*.lof     \
78        build/*.lol     \
79        build/*.lot     \
80        figures/*.tex   \
81        *.png           \
82
83
84# File Dependencies #
85
86${DOCUMENT} : build/${basename ${DOCUMENT}}.ps
87        ps2pdf $<
88
89build/${basename ${DOCUMENT}}.ps : build/${basename ${DOCUMENT}}.dvi
90        dvips $< -o $@
91
92build/${basename ${DOCUMENT}}.dvi : Makefile ${GRAPHS} ${PROGRAMS} ${PICTURES} ${FIGURES} ${SOURCES} ${basename ${DOCUMENT}}.tex ../../LaTeXmacros/common.tex ../../LaTeXmacros/indexstyle annex/local.bib
93
94        @ if [ ! -r ${basename $@}.ind ] ; then touch ${basename $@}.ind ; fi                           # Conditionally create an empty *.ind (index) file for inclusion until makeindex is run.
95        @ echo "Citation lookup"                                                                                        # Must have *.aux file containing citations for bibtex
96        @ if [ ! -r ${basename $@}.aux ] ; then ${LaTeX} ${basename ${notdir $@}}.tex ; fi
97        @ echo "Citation Pass 1"
98        @ -${BibTeX} ${basename $@}                                                                                     # Some citations reference others so run steps again to resolve these citations
99        @ echo "Citation Pass 2"
100        @ ${LaTeX} ${basename ${notdir $@}}.tex
101        @ -${BibTeX} ${basename $@}
102        @ echo "Glossary"
103        @ makeglossaries -q -s ${basename $@}.ist ${basename $@}                                                # Make index from *.aux entries and input index at end of document
104        @ echo ".dvi generation"
105        @ -build/bump_ver.sh
106        @ ${LaTeX} ${basename ${notdir $@}}.tex                                                                 # Run again to get index title into table of contents
107
108
109predefined :
110        sed -f predefined.sed ${basename ${DOCUMENT}}.tex > ${basename $@}.cf
111
112## Define the default recipes.
113
114build/%.tex : figures/%.fig
115        fig2dev -L eepic $< > $@
116
117build/%.ps : figures/%.fig
118        fig2dev -L ps $< > $@
119
120build/%.pstex : figures/%.fig
121        fig2dev -L pstex $< > $@
122        fig2dev -L pstex_t -p $@ $< > $@_t
123
124#-----------------------------------------------------------------------------------
125# Tools to generate png files
126# to create a png we create a pdf and convert it to png
127%.png : build/%.pstex figures/%.tex
128        echo ${basename $@}
129        ${LaTeX} figures/${basename $@}.tex
130        dvips build/${basename $@}.dvi -o build/${basename $@}.ps
131        ps2pdf build/${basename $@}.ps
132        convert -negate ${basename $@}.pdf $@
133
134# creating a pdf of a figure requires generating some latex that just includes the figure
135figures/%.tex: build/%.pstex
136        echo -n         "\documentclass[preview]{standalone}\n"         \
137                        "\usepackage[T1]{fontenc}\n"                    \
138                        "\usepackage[usenames]{color}\n"                \
139                        "\usepackage{graphicx}\n"                       \
140                        "\usepackage{listings}\n"                       \
141                        "\usepackage{xspace}\n"                         \
142                        "\input{style}\n"                               \
143                        "\\\\begin{document}\n"                         \
144                        "{\\\\resizebox{3\\\\textwidth}{!}{\input{${basename ${notdir $@}}.pstex_t}}}\n" \
145                        "\end{document}" > $@
146
147
148
149# Local Variables: #
150# compile-command: "make" #
151# End: #
Note: See TracBrowser for help on using the repository browser.