-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
68 lines (56 loc) · 1.92 KB
/
Makefile
File metadata and controls
68 lines (56 loc) · 1.92 KB
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
SHELL = /bin/bash
DISTDIR = dist/
INSTALLDIR = $(shell kpsewhich --var-value TEXMFHOME)/tex/latex/cablerobot/
SOURCES = $(shell find ./ -type f -name "cablerobot-*.dtx")
ADDL_INCLUDES = .latexmkrc
DOCS = $(SOURCES:dtx=pdf)
LATEX = pdflatex --shell-escape
MAKEINDEX = makeindex -s
LATEXMK = latexmk
.PHONY: all
all: ins docs dist
.PHONY: ins
ins: cablerobot.ins $(SOURCES)
$(LATEX) cablerobot.ins
.PHONY: docs
docs: ins $(DOCS)
# any PDF file depends on its base documented TeX file
%.pdf: %.dtx | ins
$(LATEX) $^
$(MAKEINDEX) gind.ist $*.idx
$(MAKEINDEX) gglo.ist -o $*.gls $*.glo
$(LATEX) $^
# class files depend on the insaller
%.cls: ins
# combination of everything that needs to be done for distributing
.PHONY:
dist: ins
mkdir -p $(DISTDIR)/
cp *.sty $(DISTDIR)/
cp *.pdf $(DISTDIR)/
# clean directory from all dirt
.PHONY: clean
clean:
[ `ls -1 *.cls 2>/dev/null | wc -l` == 0 ] || rm *.cls
[ `ls -1 *.sty 2>/dev/null | wc -l` == 0 ] || rm *.sty
[ `ls -1 *.dict 2>/dev/null | wc -l` == 0 ] || rm *.dict
[ `ls -1 *.dtx 2>/dev/null | wc -l` == 0 ] || $(LATEXMK) -c -silent *.dtx
[ `ls -1 *.tex 2>/dev/null | wc -l` == 0 ] || $(LATEXMK) -c -silent *.ins
[ `ls -1 *.tex 2>/dev/null | wc -l` == 0 ] || $(LATEXMK) -c -silent *.tex
# reseat directory to its original, distributed state
.PHONY: distclean
distclean: clean
[ `ls -1 *.dtx 2>/dev/null | wc -l` == 0 ] || $(LATEXMK) -C -silent *.dtx
[ `ls -1 *.dtx 2>/dev/null | wc -l` == 0 ] || $(LATEXMK) -C -silent *.ins
[ `ls -1 *.tex 2>/dev/null | wc -l` == 0 ] || $(LATEXMK) -C -silent *.tex && rm -f *.tex
[ ! -d $(DISTDIR) ] || rm -r $(DISTDIR)
# copy compiled files over to user's texmf home
.PHONY: install
install: ins
mkdir -p $(INSTALLDIR)
[ `ls -1 *.cls 2>/dev/null | wc -l` == 0 ] || cp *.cls $(INSTALLDIR)
[ `ls -1 *.sty 2>/dev/null | wc -l` == 0 ] || cp *.sty $(INSTALLDIR)
# uninstall from user's texmf home
.PHONY: uninstall
uninstall: distclean
rm -rf $(INSTALLDIR)