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