-
Notifications
You must be signed in to change notification settings - Fork 3
/
Makefile
40 lines (34 loc) · 1.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
# Due variabili che conteranno rispettivamente la lista dei PDF da produrre
# e dei file LaTeX prodotti durate il procedimento *.Rtex -> *.pdf. Da
# notare che l'utente non è più obbligato a specificare in alcun modo il
# nome del file da "compilare": qualunque file con estensione Rtex viene
# "massaggiato" nella speranza di ottenere un bel PDF.
documenti=$(patsubst %.tex,%.pdf,$(wildcard *.tex))
tarfiles=$(wildcard *.cls) $(wildcard *.pdf) $(patsubst %.pdf,%.tex,$(wildcard *.pdf)) Makefile
# Il target di default (potete anche chiamarlo Pippo, per quel che vale,
# dato che viene eseguito se l'utente non specifica altro (quindi basterà un
# semplice `make` senza fronzoli per compilare tutto)).
all: $(documenti)
# Static pattern rule: se la variabile "documenti" non è vuota la regola
# prende un valore alla volta (<file>.pdf) ed assume che esso dipenda da un
# file con lo stesso nome ma estensione diversa (<file>.tex), che diventa il
# prerequisito su cui agire.
$(documenti): %.pdf: %.tex
pdflatex $<
pdflatex $<
# Target di comodo
# Permette di compilare un file dato il nome di quel file senza estensione
%: %.tex
pdflatex $<
pdflatex $<
tarball:
tar cjvf lezioni_`date +%F`.tar.bz2 $(tarfiles)
# Tanto per stare sicuri, conviene indicare target come questi (cioè quelli
# che non sono il nome di un file ma rappresentano un'azione) come phony
# target, per evitare problemi nel caso capiti fra i piedi un file con il
# nome del target.
.PHONY: clean distclean all
clean:
rm -f *~ *.aux *.log *.nav *.snm *.out *.toc
distclean: clean
rm -f *.dvi *.ps *.pdf