diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | Makefile | 18 |
2 files changed, 19 insertions, 2 deletions
@@ -3,6 +3,9 @@ # ignore everyting * # but these: +!.gitignore +!img +img/* !img/swoosh.svg !style.scss !header.php.patch @@ -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))) |