summaryrefslogtreecommitdiff
path: root/Makefile
blob: f0eb157c8e491b9b9e81d9f9916393083e3b0c76 (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
53
54
55
pathsearch = $(firstword $(wildcard $(addsuffix /$(1),$(subst :, ,$(PATH)))))

RM = rm -f
CP = cp
PATCH = patch
SASS = sass
PHP := $(firstword $(call pathsearch,php5) $(call pathsearch,php))

srcfiles = \
	.gitignore \
	img/swoosh.svg \
	style.scss \
	header.php.patch \
	Makefile \
	logo-style.scss.php \
	license.txt \
	css_shadow.php \
	twentyeleven-fix.scss

all: header.php style.css img/swoosh.png .gitignore

style.css: logo-style.scss twentyeleven-fix.scss

%: %.patch ../twentyeleven/%
	$(RM) $@
	$(CP) ../twentyeleven/$@ $@
	$(PATCH) $@ < $@.patch

%.css: %.scss
	$(SASS) $< $@

%: %.php
	$(PHP) -f $< > $@

%.png: %.svg
	rsvg-convert $< > $@.$$$$ && pngcrush $@.$$$$ $@ ; $(RM) $@.$$$$


in_dir = $(patsubst ./%,%,$(dir $1))
my_dir = $(patsubst %/,%,$(dir $1))
define gitignore_file
$(if $(in_dir),
    $(call gitignore_file,$(my_dir))
    echo '$(my_dir)/*' >> '$@';
)
echo '!$1' >> '$@';
endef

.gitignore: Makefile
	echo "# DO NOT EDIT, this file is automatically made by \`Makefile'" >$@
	echo '# '                 >> '$@'
	echo '# ignore everyting' >> '$@'
	echo '*'                  >> '$@'
	echo '# but these:'       >> '$@'
	$(foreach file,$(srcfiles),$(call gitignore_file,$(file)))