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