summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--Makefile18
2 files changed, 19 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index 639f69d..3c706a1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,9 @@
# ignore everyting
*
# but these:
+!.gitignore
+!img
+img/*
!img/swoosh.svg
!style.scss
!header.php.patch
diff --git a/Makefile b/Makefile
index c782b9b..f0eb157 100644
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,13 @@
+pathsearch = $(firstword $(wildcard $(addsuffix /$(1),$(subst :, ,$(PATH)))))
+
RM = rm -f
CP = cp
PATCH = patch
SASS = sass
-PHP = php5
+PHP := $(firstword $(call pathsearch,php5) $(call pathsearch,php))
srcfiles = \
+ .gitignore \
img/swoosh.svg \
style.scss \
header.php.patch \
@@ -32,10 +35,21 @@ style.css: logo-style.scss twentyeleven-fix.scss
%.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:' >> '$@'
- for file in $(srcfiles); do echo !"$$file" >> '$@'; done
+ $(foreach file,$(srcfiles),$(call gitignore_file,$(file)))