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
|
NAME = ekdosis
SHELL = bash
CMP = lualatex-dev
PWD = $(shell pwd)
VERS = $(shell ltxfileinfo -v $(NAME).dtx|sed -e 's/^v//')
LOCAL = $(shell kpsewhich --var-value TEXMFLOCAL)
UTREE = $(shell kpsewhich --var-value TEXMFHOME)
HOMEDIR := $$HOME
SAMPLES := samples
exts := md html ins dtx el
findopts := $(foreach ext,$(exts),-or -iname "*.$(ext)")
define do_documentation
$(CMP) --shell-escape --recorder --interaction=nonstopmode $(NAME).dtx >/dev/null
endef
all: sty $(NAME).pdf
testsamples:
if [ ! -d $(SAMPLES) ] ; \
then echo "$(SAMPLES)/ directory is needed. Aborting." && exit 1 ; \
fi
sty: clean
$(CMP) $(NAME).ins >/dev/null
$(NAME).pdf: testsamples $(NAME).dtx
@ echo "Making the sample files first..."
@ $(MAKE) --directory=$(SAMPLES) >/dev/null
@ echo "Done making samples"
@ echo "Building the documentation of $(NAME) with $(CMP). Please be patient..."
@ $(do_documentation)
@ echo "Now calling biber"
@ biber $(NAME) >/dev/null
@ echo "Returning to $(CMP)..."
@ for run in {1..4}; do $(do_documentation); done
@ echo "Building indexes..."
@ if [ -f $(NAME).glo ]; then makeindex -q -s gglo.ist -o $(NAME).gls $(NAME).glo; fi
@ if [ -f $(NAME).idx ]; then makeindex -q -s gind.ist -o $(NAME).ind $(NAME).idx; fi
@ echo "Final runs of $(CMP)..."
@ for run in {1..7}; do $(do_documentation); done
@ echo "Done"
samples: clean sty
$(MAKE) --directory=$(SAMPLES)
clean: testsamples
@ echo "Cleaning $(NAME) directory"
rm -rf auto
rm -f $(NAME).bib $(PWD)/TMP/*.bib
rm -rf .backup
find -iname "*~" -or -iname "*.pdf" -or -iname "*_out*.tex" | xargs rm -rf
find ./* -type f -iname "Makefile" $(findopts) > ls-R
find ./* -type f -iname "*.tex" | grep '/samples/' >> ls-R
rsync -aPr --files-from=ls-R . .backup
rm -rf *
cp -p -r .backup/* .
rm -rf .backup
pandoc:
pandoc -s README.md -o about.html
auctex:
if [ ! -d "$(HOMEDIR)/.emacs.d/auctex/auto" ]; then \
mkdir -p $(HOMEDIR)/.emacs.d/auctex/auto; \
fi
cp $(NAME)*.el $(HOMEDIR)/.emacs.d/auctex/auto
distclean: clean uninst
uninst:
rm -rf $(UTREE)/{tex,source,doc}/lualatex/$(NAME)
rm -rf $(HOMEDIR)/.emacs.d/auctex/auto/$(NAME).{el,elc}
inst: uninst auctex all
@ echo "Installing $(NAME) locally"
mkdir -p $(UTREE)/{tex,source,doc}/lualatex/$(NAME)
cp $(NAME).dtx $(UTREE)/source/lualatex/$(NAME)
cp $(NAME).sty $(UTREE)/tex/lualatex/$(NAME)
cp $(NAME).lua $(UTREE)/tex/lualatex/$(NAME)
cp $(NAME).pdf $(UTREE)/doc/lualatex/$(NAME)
cp -r samples/ $(UTREE)/doc/lualatex/$(NAME)
@ echo "Installation complete. Happy TeXing!"
local: uninst auctex
$(CMP) $(NAME).ins
mkdir -p $(UTREE)/{tex,source,doc}/lualatex/$(NAME)
cp $(NAME).sty $(UTREE)/tex/lualatex/$(NAME)
cp $(NAME).lua $(UTREE)/tex/lualatex/$(NAME)
if [ -e "$(NAME).pdf" ]; then cp $(NAME).pdf $(UTREE)/doc/lualatex/$(NAME) &&\
cp -r $(SAMPLES)/ $(UTREE)/doc/lualatex/$(NAME); fi
install: all
sudo mkdir -p $(LOCAL)/{tex,source,doc}/latex/$(NAME)
sudo cp $(NAME).dtx $(LOCAL)/source/latex/$(NAME)
sudo cp $(NAME).sty $(LOCAL)/tex/latex/$(NAME)
sudo cp $(NAME).pdf $(LOCAL)/doc/latex/$(NAME)
cp -r $(SAMPLES)/ $(LOCAL)/doc/latex/$(NAME)
uninstall:
rm -rf $(LOCAL)/{tex,source,doc}/latex/$(NAME)
zip: all
ln -sf . $(NAME)
zip -Drq $(PWD)/$(NAME)-$(VERS).zip $(NAME)/{samples,README.md,$(NAME).{pdf,sty,lua,el}}
rm $(NAME)
package: distclean all
mkdir $(NAME)/
cp Makefile README.md $(NAME).{ins,dtx,pdf,el} $(NAME)/
cp -r samples/ $(NAME)/
mkdir -p tex/lualatex/$(NAME)/
cp *.lua *.sty tex/lualatex/$(NAME)/
mkdir -p doc/lualatex/$(NAME)/
cp README.md *.el *.pdf doc/lualatex/$(NAME)/
cp -r samples/ doc/lualatex/$(NAME)/
mkdir -p source/lualatex/$(NAME)/
cp Makefile *.ins *.dtx source/lualatex/$(NAME)/
zip -r $(NAME).tds.zip tex doc source
rm -rf tex/ source/ doc/
tar czf $(NAME)-$(VERS).tar.gz $(NAME).tds.zip $(NAME)/
rm -rf $(NAME)/
.SILENT: testsamples
.PHONY: all clean distclean pandoc inst local uninst install uninstall zip package samples testsamples
|