PLUGIN = $(wildcard plugin/*.vim) SOURCES = $(PLUGIN) LIB = $(wildcard autoload/*.vim) SOURCES += $(LIB) DOC = $(wildcard doc/*.txt) SOURCES += $(DOC) NAME = delimitMate VERSION = $(shell $(SED) -n -e '/Current \+release/{s/^ \+\([0-9.]\+\).*/\1/;p;}' $(firstword $(DOC))) FILENAME = $(NAME)-$(VERSION) DESTDIR = $(HOME)/.vim VIM = vim SED = $(shell command -v gsed || command -v sed) PERL = perl comma := , empty := space := $(empty) $(empty) .PHONY: version clean distclean undo release test install uninstall all: zip gzip dist: version all vimball: $(FILENAME).vmb zip: $(FILENAME).zip $(FILENAME).vmb.zip gzip: $(FILENAME).tar.gz $(FILENAME).vmb.gz clean: rm -f */*.orig *.~* .VimballRecord *.zip *.gz *.vmb distclean: clean -zsh -c 'setopt extendedglob; rm -f ^(README.md|Makefile|basic_vimrc)(.)' -zsh -c 'setopt extendedglob; rm -f .^(git|README.md|Makefile|basic_vimrc)*' undo: for i in */*.orig; do mv -f "$$i" "$${i%.*}"; done version: $(PERL) -i.orig -pne 'if (/^"\sVersion:/) {s/(\d+\.\S+)/$(VERSION)/}' $(PLUGIN) $(LIB) $(PERL) -i.orig -pne \ 'if (/let\sdelimitMate_version/) {s/"(\d+\.\S+)"/"$(VERSION)"/}' $(PLUGIN) $(PERL) -i.orig -pne 'if (/beasts/) {s/(v\d+\.\S+)/v$(VERSION)/}' $(DOC) $(PERL) -i.orig -MPOSIX -pne \ 'if (/^"\sModified:/) {$$now_string = strftime "%F", localtime; s/(\d+-\d+-\d+)/$$now_string/e}' \ $(PLUGIN) $(LIB) $(PERL) -i.orig -MPOSIX -pne \ 'if (/^\s+$(VERSION)\s+\d+-\d+-\d+\s+\*/) {$$now_string = strftime "%F", localtime; s/(\d+-\d+-\d+)/$$now_string/}' \ $(DOC) test: $(MAKE) -C test install: $(SOURCES) for dir in $(^D);\ do install -d -m 0755 $(DESTDIR)$(PREFIX)/$$dir;\ done;\ for file in $^;\ do install -m 0644 $$file $(DESTDIR)$(PREFIX)/$$file;\ done; uninstall: for file in $(SOURCES);\ do rm -f $(DESTDIR)$(PREFIX)/$$file;\ done; %.vmb: $(SOURCES) $(VIM) -N -es -u NORC \ -c 'call setline(1,["$(subst $(space),"$(comma)",$^)"])'\ -c "%MkVimball! $(basename $@) ." -c 'q!' %.vmb.zip: vimball zip $@ $(basename $@) %.zip: $(SOURCES) zip $@ $^ %.vmb.gz: vimball gzip -f < $(basename $@) > $@ %.tar.gz: $(SOURCES) tar -cvzf $@ $^ # vim:ts=2:sw=2