Makefile 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. PLUGIN = $(wildcard plugin/*.vim)
  2. SOURCES = $(PLUGIN)
  3. LIB = $(wildcard autoload/*.vim)
  4. SOURCES += $(LIB)
  5. DOC = $(wildcard doc/*.txt)
  6. SOURCES += $(DOC)
  7. NAME = delimitMate
  8. VERSION = $(shell $(SED) -n -e '/Current \+release/{s/^ \+\([0-9.]\+\).*/\1/;p;}' $(firstword $(DOC)))
  9. FILENAME = $(NAME)-$(VERSION)
  10. DESTDIR = $(HOME)/.vim
  11. VIM = vim
  12. SED = $(shell command -v gsed || command -v sed)
  13. PERL = perl
  14. comma := ,
  15. empty :=
  16. space := $(empty) $(empty)
  17. .PHONY: version clean distclean undo release test install uninstall
  18. all: zip gzip
  19. dist: version all
  20. vimball: $(FILENAME).vmb
  21. zip: $(FILENAME).zip $(FILENAME).vmb.zip
  22. gzip: $(FILENAME).tar.gz $(FILENAME).vmb.gz
  23. clean:
  24. rm -f */*.orig *.~* .VimballRecord *.zip *.gz *.vmb
  25. distclean: clean
  26. -zsh -c 'setopt extendedglob; rm -f ^(README.md|Makefile|basic_vimrc)(.)'
  27. -zsh -c 'setopt extendedglob; rm -f .^(git|README.md|Makefile|basic_vimrc)*'
  28. undo:
  29. for i in */*.orig; do mv -f "$$i" "$${i%.*}"; done
  30. version:
  31. $(PERL) -i.orig -pne 'if (/^"\sVersion:/) {s/(\d+\.\S+)/$(VERSION)/}' $(PLUGIN) $(LIB)
  32. $(PERL) -i.orig -pne \
  33. 'if (/let\sdelimitMate_version/) {s/"(\d+\.\S+)"/"$(VERSION)"/}' $(PLUGIN)
  34. $(PERL) -i.orig -pne 'if (/beasts/) {s/(v\d+\.\S+)/v$(VERSION)/}' $(DOC)
  35. $(PERL) -i.orig -MPOSIX -pne \
  36. 'if (/^"\sModified:/) {$$now_string = strftime "%F", localtime; s/(\d+-\d+-\d+)/$$now_string/e}' \
  37. $(PLUGIN) $(LIB)
  38. $(PERL) -i.orig -MPOSIX -pne \
  39. 'if (/^\s+$(VERSION)\s+\d+-\d+-\d+\s+\*/) {$$now_string = strftime "%F", localtime; s/(\d+-\d+-\d+)/$$now_string/}' \
  40. $(DOC)
  41. test:
  42. $(MAKE) -C test
  43. install: $(SOURCES)
  44. for dir in $(^D);\
  45. do install -d -m 0755 $(DESTDIR)$(PREFIX)/$$dir;\
  46. done;\
  47. for file in $^;\
  48. do install -m 0644 $$file $(DESTDIR)$(PREFIX)/$$file;\
  49. done;
  50. uninstall:
  51. for file in $(SOURCES);\
  52. do rm -f $(DESTDIR)$(PREFIX)/$$file;\
  53. done;
  54. %.vmb: $(SOURCES)
  55. $(VIM) -N -es -u NORC \
  56. -c 'call setline(1,["$(subst $(space),"$(comma)",$^)"])'\
  57. -c "%MkVimball! $(basename $@) ." -c 'q!'
  58. %.vmb.zip: vimball
  59. zip $@ $(basename $@)
  60. %.zip: $(SOURCES)
  61. zip $@ $^
  62. %.vmb.gz: vimball
  63. gzip -f < $(basename $@) > $@
  64. %.tar.gz: $(SOURCES)
  65. tar -cvzf $@ $^
  66. # vim:ts=2:sw=2