-
Notifications
You must be signed in to change notification settings - Fork 8
/
Makefile
154 lines (121 loc) · 4.89 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
# Copyright (C) 2008, 2009 Bert Burgemeister
#
# Permission is granted to copy, distribute and/or modify this
# document under the terms of the GNU Free Documentation License,
# Version 1.2 or any later version published by the Free Software
# Foundation; with no Invariant Sections, no Front-Cover Texts and
# no Back-Cover Texts. For details see file COPYING.
CLQR = clqr
SEND-TO-LOG = | tee -a lastbuild.log
LATEX = latex
MAKEINDEX = makeindex -c
DVIPS = dvips
PSNUP-A4 = psnup -W10.5cm -H29.7cm -pa4 -2
PSNUP-LETTER = psnup -W4.25in -H11in -pletter -2
PSBOOK-ALL = psbook
PSBOOK-FOUR = psbook -s4
PS2PDF = ps2pdf
CONVERT = convert
MONTAGE = montage
HEAD = head
TAIL = tail
TOUCH = touch
CP = cp --verbose
RM = rm --force --verbose
MV = mv --force --verbose
MAKE = make
GZIP = gzip
GIT_REVISION = git-describe | sed 's/\(.*-.*\)-.*/\1/'
GIT_ARCHIVE = git-archive --format=tar --prefix=$(CLQR)/ HEAD | $(GZIP)
GIT_COMMIT = git-commit -a
DATE = git-log HEAD^..HEAD --date=short | awk '/Date:/{print $$2}' | tr -d '\n\\'
RSYNC = rsync -va
SSH = ssh
all: letter a4
letter:
$(MAKE) letter-booklets
$(MAKE) $(CLQR)-letter-consec.pdf
a4:
$(MAKE) a4-booklets
$(MAKE) $(CLQR)-a4-consec.pdf
letter-booklets: $(CLQR)-letter-booklet-all.pdf $(CLQR)-letter-booklet-four.pdf
a4-booklets: $(CLQR)-a4-booklet-all.pdf $(CLQR)-a4-booklet-four.pdf
$(CLQR)-%-consec.pdf: $(CLQR)-%-consec.ps
$(PS2PDF) $< $@ $(SEND-TO-LOG)
$(CLQR)-letter-booklet-%.pdf: $(CLQR)-letter-booklet-%.ps
$(PS2PDF) -sPAPERSIZE=letter $< $@ $(SEND-TO-LOG)
$(CLQR)-a4-booklet-%.pdf: $(CLQR)-a4-booklet-%.ps
$(PS2PDF) -sPAPERSIZE=a4 $< $@ $(SEND-TO-LOG)
$(CLQR)-letter-booklet-%.ps: $(CLQR)-letter-signature-%.ps color-black.flag
$(PSNUP-LETTER) $< > $@ $(SEND-TO-LOG)
$(CLQR)-a4-booklet-%.ps: $(CLQR)-a4-signature-%.ps color-black.flag
$(PSNUP-A4) $< > $@ $(SEND-TO-LOG)
$(CLQR)-%-signature-all.ps: $(CLQR)-%-consec.ps
$(PSBOOK-ALL) $< $@ $(SEND-TO-LOG)
$(CLQR)-%-signature-four.ps: $(CLQR)-%-consec.ps
$(PSBOOK-FOUR) $< $@ $(SEND-TO-LOG)
$(CLQR)-%-consec.ps: $(CLQR)-%.dvi color-colorful.flag
$(DVIPS) -o $@ $< $(SEND-TO-LOG)
$(CLQR)-%.dvi: $(CLQR).tex $(CLQR)-*.tex paper-%.flag DATE.tex revision-number
$(TOUCH) $(CLQR).ind $(SEND-TO-LOG)
$(LATEX) $(CLQR).tex $(SEND-TO-LOG)
$(LATEX) $(CLQR).tex $(SEND-TO-LOG)
$(MAKEINDEX) -s $(CLQR).ist $(CLQR).idx $(SEND-TO-LOG)
$(LATEX) $(CLQR).tex $(SEND-TO-LOG)
$(MV) $(CLQR).dvi $@ $(SEND-TO-LOG)
paper-a4.flag:
$(CP) paper-a4.tex paper-current.tex $(SEND-TO-LOG)
$(RM) paper-letter.flag $(SEND-TO-LOG)
$(TOUCH) $@
paper-letter.flag:
$(CP) paper-letter.tex paper-current.tex $(SEND-TO-LOG)
$(RM) paper-a4.flag $(SEND-TO-LOG)
$(TOUCH) $@
color-colorful.flag:
$(CP) color-colorful.tex color-current.tex $(SEND-TO-LOG)
$(RM) color-black.flag $(SEND-TO-LOG)
$(TOUCH) $@
color-black.flag:
$(CP) color-black.tex color-current.tex $(SEND-TO-LOG)
$(RM) color-colorful.flag $(SEND-TO-LOG)
$(TOUCH) $@
revision-number:
$(GIT_REVISION) > REVISION.tex
DATE.tex: $(CLQR).tex $(CLQR)-*.tex
$(DATE) > $@
clean:
$(RM) *.dvi *.toc *.aux *.log *.idx *.ilg *.ind *.out *.ps *.pdf *~ html/*~ \
*.flag *.jpg html/*.jpg *.tar.gz REVISION.tex DATE.tex \
paper-current.tex color-current.tex
# Project hosting
maintainance: release publish
publish: html/sample-frontcover.jpg \
html/sample-firstpage-all.jpg html/sample-firstpage-four.jpg \
html/sample-firstpage-consec.jpg html/sample-source.jpg $(CLQR)-a4-consec.pdf
$(MAKE) publishclean
$(RSYNC) --delete ./ trebb@shell.berlios.de:/home/groups/ftp/pub/clqr/clqr/ $(SEND-TO-LOG)
$(RSYNC) ./html/ trebb@shell.berlios.de:/home/groups/clqr/htdocs/ $(SEND-TO-LOG)
$(SSH) trebb@shell.berlios.de /home/groups/ftp/pub/clqr/clqr/fetch-news.sh $(SEND-TO-LOG)
release: emergency-commit letter a4 $(CLQR).tar.gz
./upload.sh
html/sample-frontcover.jpg: $(CLQR)-a4-consec.pdf
$(CONVERT) $<'[0]' -verbose -resize 40% temp.jpg $(SEND-TO-LOG)
$(MONTAGE) temp.jpg -tile 1x1 -geometry +1+1 -background gray $@ $(SEND-TO-LOG)
$(RM) temp.jpg
html/sample-firstpage-%.jpg: $(CLQR)-a4-booklet-%.pdf
$(CONVERT) $<'[0]' -verbose -resize 15% temp.jpg $(SEND-TO-LOG)
$(MONTAGE) temp.jpg -tile 1x1 -geometry +1+1 -background gray $@ $(SEND-TO-LOG)
$(RM) temp.jpg
html/sample-firstpage-consec.jpg: $(CLQR)-a4-consec.pdf
$(CONVERT) $<'[0]' -verbose -resize 15% temp.jpg $(SEND-TO-LOG)
$(MONTAGE) temp.jpg -tile 1x1 -geometry +1+1 -background gray $@ $(SEND-TO-LOG)
$(RM) temp.jpg
html/sample-source.jpg: $(CLQR)-numbers.tex
$(HEAD) -n 57 $< | $(TAIL) -n 40 | $(CONVERT) -font Courier -crop 120x80+30+2 +repage label:@- temp.jpg $(SEND-TO-LOG)
$(MONTAGE) temp.jpg -tile 1x1 -geometry +1+1 -background gray $@ $(SEND-TO-LOG)
$(RM) temp.jpg
emergency-commit $(CLQR).tar.gz:
if $(GIT_COMMIT) -aF commit-message; then true; else true; fi $(SEND-TO-LOG)
if $(GIT_ARCHIVE) > $(CLQR).tar.gz; then true; else true; fi $(SEND-TO-LOG)
publishclean:
$(RM) *.ps *~ html/*~