summaryrefslogtreecommitdiff
path: root/Makefile
blob: 8dc01e7ad7e91787799df064378c0f7514feefa3 (plain)
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
OUTDIR = public

dirname = $(patsubst %/,%,$(dir $(1)))
dirnames = $(sort $(call dirname,$(1)))

pages_src = $(filter-out template.html,$(wildcard *.html))
pages = $(foreach p,$(pages_src),$(OUTDIR)/$(p))

members_src = $(wildcard *.membre.in)
members_pages = $(patsubst %.membre.in,$(OUTDIR)/%.html,$(members_src))

feeds = $(wildcard *.xml)
resources_src = $(feeds)
resources = $(foreach f,$(resources_src),$(OUTDIR)/$(f))

images = $(foreach img,$(shell find images -type f),$(OUTDIR)/$(img))
images_folders = $(call dirnames,$(images))

stylesheets = $(foreach img,$(shell find stylesheets -type f),$(OUTDIR)/$(img))
stylesheets_folders = $(call dirnames,$(stylesheets))

.PHONY: all clean site

all: site

clean:
	-rm -r $(OUTDIR)

site: $(pages) $(members_pages) $(resources) $(images) $(stylesheets)

$(resources) $(images) $(stylesheets): $(OUTDIR)/%: %
	cp $< $@

$(pages): $(OUTDIR)/%.html: %.html %.sh template.html
	./build.sh $< $*.sh $@

$(members_pages): $(OUTDIR)/%.html: %.membre.in build-member.sh template.html
	./build-member.sh $< $@

$(OUTDIR)/quatuor.html: quatuor.md
$(OUTDIR)/programmes.html: programs.in

# Rules for automatic, incremental folder creation.

# Our lists of target directories are created from the lists of leaf
# resources; some intermediate directories that only hold subdirs do
# not appear in these lists.  Work around that with -p.
$(OUTDIR) $(images_folders) $(stylesheets_folders):
	mkdir -p $@

.SECONDEXPANSION:
$(resources) $(images) $(stylesheets) $(pages) $(members_pages): | $$(@D)