-
Notifications
You must be signed in to change notification settings - Fork 26
/
Makefile
162 lines (118 loc) · 4.59 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
#
# Makefile (gnu make)
#
# A GNU makefile for creating DVI, PS, and PDF documents from LaTeX.
#
# Allows the user to specify for input:
# - a list of .tex files
# - a .bib file
# - a list of .eps files
#
# ...and for output:
# - a method for creating PDFs
#
# Lawrence You <you@cs.ucsc.edu>
#
##############################################################################
# configuration parameters (BEGIN)
##############################################################################
PAPER = uctest
DIRNAME = thesis-phd
GRAPHICS =
BIBS = uctest.bib
BIBTEX = bibtex
TEX = latex
EPSGRAPHICSFILES =
# PDFMETHOD is one of {pdftex, dvipdfm, ps2pdf}
# for PDF output, pdftex is probably best
PDFMETHOD = pdftex
default: pdf
# other likely defaults that you can use
#default: view-mac
#default: $(PAPER).pdf
#default: $(PAPER).dvi
##############################################################################
# configuration parameters (END)
##############################################################################
##############################################################################
# .pdf, .ps, .dvi - Acrobat, PostScript, and DVI files (BEGIN)
##############################################################################
# Three methods for generating PDF from TeX documents (choose one)
# 1. pdftex (in teTeX) seems to have problems with embedded .eps directly
# so we convert EPS to PDF first by using epstopdf
# see http://www.2pi.info/latex/Includingeps.html
# 2. dvipdfm works great, requires installation of dvipdfm
# 3. ps2pdf (in teTeX) make sure dvips uses "-Ppdf" (may have encoding
# problems with ligatures on older versions)
# PDFMETHOD is one of {pdftex, dvipdfm, ps2pdf}, defined above
##############################################################################
# 1. pdftex (actually pdflatex) method
##############################################################################
ifeq ($(PDFMETHOD), pdftex)
#
# a. first convert EPS to PDF
#
%.pdf : %.eps
epstopdf $< || (echo "must convert EPS to PDF before including them with pdftex"; exit 1)
PDFGRAPHICSFILES := $(patsubst %.eps,%.pdf,$(EPSGRAPHICSFILES))
#
# b. use pdflatex to combine the PDFs containing EPS into the LaTeX-generated PDF
#
TEX = pdflatex
$(PAPER).pdf: $(PAPER).tex *.tex $(BIBS) $(PDFGRAPHICSFILES)
$(TEX) $(PAPER); ${BIBTEX} $(PAPER); $(TEX) $(PAPER); $(TEX) $(PAPER)
endif # pdftex
##############################################################################
# 2. dvipdfm method
##############################################################################
ifeq ($(PDFMETHOD), dvipdfm)
$(PAPER).pdf: $(PAPER).dvi
dvipdfm $(PAPER).dvi || (echo "You might need to install dvipdfm from a package or built it from source."; exit 1)
$(PAPER).ps: $(PAPER).dvi
dvips -t letter $(PAPER) -o
$(PAPER).dvi: $(PAPER).tex *.tex $(BIBS) $(GRAPHICS) $(EPSGRAPHICSFILES)
$(TEX) $(PAPER); ${BIBTEX} $(PAPER); $(TEX) $(PAPER); $(TEX) $(PAPER)
endif # dvipdfm
##############################################################################
# 3. ps2pdf method
##############################################################################
ifeq ($(PDFMETHOD), ps2pdf)
$(PAPER).pdf: $(PAPER).ps
ps2pdf $(PAPER).ps
$(PAPER).ps: $(PAPER).dvi
dvips -Ppdf -t letter $(PAPER) -o
$(PAPER).dvi: $(PAPER).tex *.tex $(BIBS) $(GRAPHICS) $(EPSGRAPHICSFILES)
$(TEX) $(PAPER); ${BIBTEX} $(PAPER); $(TEX) $(PAPER); $(TEX) $(PAPER)
endif # ps2pdf
##############################################################################
# .pdf, .ps, .dvi - Acrobat, PostScript, and DVI files (END)
##############################################################################
##############################################################################
# common rules
##############################################################################
dvi: $(PAPER).dvi
pdf: $(PAPER).pdf
#ps: $(PAPER).ps -- not defined because it .ps is not required by all PDFMETHODs
#
# clean: remove intermediate files (leave .ps and .pdf alone)
#
clean:
$(RM) -f *.aux *.bbl *.blg *.dvi *.lof *.log *.lot *.toc $(PAPER).out
#
# clean-all: all files PLUS pdf and ps files
#
clean-all: clean
$(RM) -f $(PAPER).pdf $(PAPER).ps
$(RM) -f $(PDFGRAPHICSFILES)
# cd data && make clean
#
# release - create a package for distribution
#
release: clean-all
tar -C .. -cvf ../$(DIRNAME).tar $(DIRNAME) && gzip ../$(DIRNAME).tar
#
# you will find the .tar.gz file in the parent directory
#
##############################################################################
# Custom rules
##############################################################################