Add git url for slides to last page
[obnox/slides/2016-04-vault.git] / Makefile
1 TARGET_BASE_NAME := $(shell cat BASENAME)
2
3 TARGET_PR = $(TARGET_BASE_NAME).pr
4 TARGET_HO = $(TARGET_BASE_NAME).ho
5 TARGET_HO2 = $(TARGET_BASE_NAME).ho2
6
7 TARGET = $(TARGET_BASE_NAME)
8
9 IMAGE_MC_V1 = smb3-mc-samba
10 IMAGE_MC_V2 = smb3-mc-samba-v2
11 IMAGE_MC_DAEMONS_N1 = smb3-mc-daemons-n1
12 IMAGE_MC_DAEMONS_N1A = smb3-mc-daemons-n1a
13 IMAGE_MC_DAEMONS_N2 = smb3-mc-daemons-n2
14 IMAGE_MC_DAEMONS_N3 = smb3-mc-daemons-n3
15 IMAGE_RDMA_V2 = smb3-rdma-samba-v2
16 # IMAGE_CTDB_3N = design-ctdb-three-nodes
17 IMAGE_CTDB_3N_WITNESS_STEP0 = design-ctdb-three-nodes-with-witness-step0
18 IMAGE_CTDB_3N_WITNESS_STEP1 = design-ctdb-three-nodes-with-witness-step1
19 IMAGE_CTDB_3N_WITNESS_STEP2A = design-ctdb-three-nodes-with-witness-step2a
20 IMAGE_CTDB_3N_WITNESS_STEP2B = design-ctdb-three-nodes-with-witness-step2b
21 IMAGE_CTDB_3N_WITNESS_STEP3A = design-ctdb-three-nodes-with-witness-step3a
22 IMAGE_CTDB_3N_WITNESS_STEP3B = design-ctdb-three-nodes-with-witness-step3b
23 IMAGE_CTDB_3N_WITNESS_STEP4 = design-ctdb-three-nodes-with-witness-step4
24 IMAGE_CTDB_3N_WITNESS_STEP5 = design-ctdb-three-nodes-with-witness-step5
25 # IMAGE_CTDB_DAEMONS = ctdb-design-daemons
26 # IMAGE_SAMBA_LAYERS = samba-layers
27 # IMAGE_SAMBA_RELEASES = samba-release-stream
28
29 DIAIMAGES_BASE := $(IMAGE_MC_V1) \
30                   $(IMAGE_MC_V2) \
31                   $(IMAGE_MC_DAEMONS_N1) \
32                   $(IMAGE_MC_DAEMONS_N1A) \
33                   $(IMAGE_MC_DAEMONS_N2) \
34                   $(IMAGE_MC_DAEMONS_N3)\
35                   $(IMAGE_RDMA_V2) \
36                   $(IMAGE_CTDB_3N_WITNESS_STEP0) \
37                   $(IMAGE_CTDB_3N_WITNESS_STEP1) \
38                   $(IMAGE_CTDB_3N_WITNESS_STEP2A) \
39                   $(IMAGE_CTDB_3N_WITNESS_STEP2B) \
40                   $(IMAGE_CTDB_3N_WITNESS_STEP3A) \
41                   $(IMAGE_CTDB_3N_WITNESS_STEP3B) \
42                   $(IMAGE_CTDB_3N_WITNESS_STEP4) \
43                   $(IMAGE_CTDB_3N_WITNESS_STEP5)
44 #                 $(IMAGE_CTDB_3N) \
45 #                 $(IMAGE_CTDB_DAEMONS) \
46 #                 $(IMAGE_SAMBA_LAYERS) \
47 #                 $(IMAGE_SAMBA_RELEASES)
48
49 #DIAIMAGES_BASE :=
50
51 DIAIMAGES :=     $(foreach image, $(DIAIMAGES_BASE), $(image).dia)
52 DIAIMAGES_PNG := $(foreach image, $(DIAIMAGES_BASE), $(image).png)
53 DIAIMAGES_SVG := $(foreach image, $(DIAIMAGES_BASE), $(image).svg)
54 DIAIMAGES_FIG := $(foreach image, $(DIAIMAGES_BASE), $(image).fig)
55
56 #IMAGES = $(DIAIMAGES_PNG) \
57 #        regedit.png \
58 #        ctdb-status.png \
59 #        ctdb-status-1.png \
60 #        ctdb-ip.png \
61 #        ctdb-ip-1.png \
62 #        smbstatus.png
63
64 IMAGES = $(DIAIMAGES_PNG)
65
66
67 EXTRA_WIKI_FILES = \
68                    intro-history.wiki \
69                    smb3.wiki \
70                    multichannel.wiki \
71                    smb-direct.wiki \
72                    witness.wiki \
73                    persistent.wiki \
74                    next.wiki \
75                    thanks.wiki
76
77
78 CMN_DEPS = Makefile $(IMAGES)
79
80 CMN_DEPS_WIKI = $(CMN_DEPS) document.part1.wiki document.part2.wiki document.part3.wiki content.wiki info.wiki
81
82 CMN_DEPS_TEX = $(CMN_DEPS) beamercolorthemeobnoxsamba.sty beamerouterthemeobnoxinfolines.sty beamerthemeObnoxSamba.sty
83
84 CONTENT_DEPS_WIKI = $(CMN_DEPS) content.wiki $(EXTRA_WIKI_FILES)
85
86 COMMON_DEPS = $(CMN_DEPS)
87
88 VIEWER = evince
89 SHOW = yes
90
91 .SUFFIXES: .tex .pdf .dia .png .fig .svg .wiki
92
93 .PHONY: all
94
95 all: pr
96
97
98 .PHONY: pr $(TARGET_PR)
99
100 pr: $(TARGET_PR)
101
102 $(TARGET_PR): $(TARGET_PR).pdf
103         if [ "$(SHOW)" = "yes" ]; then $(VIEWER) $@.pdf ; fi &
104
105 $(TARGET_PR).pdf: $(CMN_DEPS) pr.pdf
106         cp pr.pdf $@
107
108 pr.pdf: $(CMN_DEPS_TEX) pr.tex
109
110 pr.tex: pr.wiki $(CONTENT_DEPS_WIKI)
111
112 pr.wiki: $(CMN_DEPS_WIKI) pr.class.wiki
113         cat document.part1.wiki pr.class.wiki document.part2.wiki info.wiki document.part3.wiki > $@
114
115
116 .PHONY: ho $(TARGET_HO)
117
118 ho: $(TARGET_HO)
119
120 $(TARGET_HO): $(TARGET_HO).pdf
121         if [ "$(SHOW)" = "yes" ]; then $(VIEWER) $@.pdf ; fi &
122
123 $(TARGET_HO).pdf: $(CMN_DEPS) ho.pdf
124         cp ho.pdf $@
125
126 ho.pdf: $(CMN_DEPS_TEX) ho.tex
127
128 ho.tex: ho.wiki $(CONTENT_DEPS_WIKI)
129
130 ho.wiki: $(CMN_DEPS_WIKI) ho.class.wiki
131         cat document.part1.wiki ho.class.wiki document.part2.wiki info.wiki document.part3.wiki > $@
132
133
134 .PHONY: ho2 $(TARGET_HO2)
135
136 ho2: $(TARGET_HO2)
137
138 $(TARGET_HO2): $(TARGET_HO2).pdf
139         if [ "$(SHOW)" = "yes" ]; then $(VIEWER) $@.pdf ; fi &
140
141 $(TARGET_HO2).pdf: $(CMN_DEPS) ho2.pdf
142         cp ho2.pdf $@
143
144 ho2.pdf: $(CMN_DEPS_TEX) ho2.tex
145
146 ho2.tex: ho2.wiki $(CONTENT_DEPS_WIKI)
147
148 ho2.wiki: $(CMN_DEPS_WIKI) ho2.class.wiki
149         cat document.part1.wiki ho2.class.wiki document.part2.wiki info.wiki document.part3.wiki > $@
150
151
152
153 .wiki.tex:
154         wiki2beamer $< > $@
155
156 .tex.pdf:
157         pdflatex $<
158         pdflatex $<
159         #if [ "$(SHOW)" = "yes" ]; then $(VIEWER) $@ ; fi &
160
161 .dia.png:
162         @dia -e $@ -s x1280 $<
163
164 .dia.fig:
165         @dia -e $@ $<
166
167 .dia.svg:
168         @dia -e $@ $<
169
170
171 .PHONY: png fig svg images
172
173 png: $(DIAIMAGES_PNG)
174
175 fig: $(DIAIMAGES_FIG)
176
177 svg: $(DIAIMAGES_SVG)
178
179 images: $(IMAGES)
180
181
182 .PHONY: archive
183
184 archive: $(TARGET).tar.gz
185
186 $(TARGET).tar.gz: $(TARGET).tar
187         @echo "Creating $@"
188         @rm -f $(TARGET).tar.gz
189         @gzip $(TARGET).tar
190
191
192 # make $(TARGET).tar phony - it vanishes by gzipping...
193 .PHONY: $(TARGET).tar
194
195 $(TARGET).tar: pr ho ho2
196         @echo "Creating $@"
197         @git archive --prefix=$(TARGET)/ HEAD > $@
198         @rm -rf $(TARGET)
199         @mkdir $(TARGET)
200         @cp $(TARGET_PR).pdf $(TARGET)
201         @cp $(TARGET_HO).pdf $(TARGET)
202         @cp $(TARGET_HO2).pdf $(TARGET)
203         @tar rf $@ $(TARGET)/$(TARGET_PR).pdf
204         @tar rf $@ $(TARGET)/$(TARGET_HO).pdf
205         @tar rf $@ $(TARGET)/$(TARGET_HO2).pdf
206
207
208
209 .PHONY: clean
210
211 clean:
212         @git clean -f