-PREFIX=/usr
+PREFIX?=/usr
+DOCDIR_PREFIX=$(PREFIX)/share/doc
+DOCDIR=$(DOCDIR_PREFIX)/$(self)
+ZSHDIR=$(PREFIX)/share/zsh/vendor-completions
+RONN ?= ronn
-manpages=vcsh.1
-all=manpages
+self=vcsh
+manpages=$(self).1
+all=test manpages
all: $(all)
install: all
install -d $(DESTDIR)$(PREFIX)/bin
- install -m 0755 vcsh $(DESTDIR)$(PREFIX)/bin
+ install -m 0755 $(self) $(DESTDIR)$(PREFIX)/bin
install -d $(DESTDIR)$(PREFIX)/share/man/man1
- install -m 0644 $(manpages) $(DESTDIR)$(PREFIX)/share/man/man1
- install -d $(DESTDIR)$(PREFIX)/share/doc/vcsh
- install -m 0644 INSTALL.md README.md $(DESTDIR)$(PREFIX)/share/doc/vcsh
- install -d $(DESTDIR)$(PREFIX)/share/zsh/vendor-completions
- install -m 0644 _vcsh $(DESTDIR)$(PREFIX)/share/zsh/vendor-completions
+ install -m 0644 $(manpages) $(DESTDIR)$(PREFIX)/share/man/man1
+ install -d $(DESTDIR)$(DOCDIR)
+ install -m 0644 README.md $(DESTDIR)$(DOCDIR)
+ install -m 0644 doc/hooks $(DESTDIR)$(DOCDIR)
+ install -d $(DESTDIR)$(ZSHDIR)
+ install -m 0644 _$(self) $(DESTDIR)$(ZSHDIR)
manpages: $(manpages)
-vcsh.1: doc/vcsh.1.ronn
- ronn < doc/vcsh.1.ronn > vcsh.1
+$(self).1: doc/$(self).1.ronn
+ $(RONN) < doc/$(self).1.ronn > $(self).1 || rm $(self).1
clean:
- rm -rf vcsh.1
+ rm -rf $(self).1
uninstall:
- rm -rf $(DESTDIR)$(PREFIX)/bin/vcsh
- rm -rf $(DESTDIR)$(PREFIX)/share/man/man1/vcsh.1
- rm -rf $(DESTDIR)$(PREFIX)/share/doc/vcsh
- rm -rf $(DESTDIR)$(PREFIX)/share/zsh/vendor-completions/_vcsh
+ rm -rf $(DESTDIR)$(PREFIX)/bin/$(self)
+ rm -rf $(DESTDIR)$(PREFIX)/share/man/man1/$(self).1
+ rm -rf $(DESTDIR)$(DOCDIR)
+ rm -rf $(DESTDIR)$(ZSHDIR)/_$(self)
# Potentially harmful, used a non-standard option on purpose.
# If PREFIX=/usr/local and that's empty...
purge: uninstall
rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(PREFIX)/bin/
rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(PREFIX)/share/man/man1/
- rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(PREFIX)/share/doc/
- rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(PREFIX)/share/zsh/vendor-completions/
+ rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(DOCDIR)
+ rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(ZSHDIR)
+
+test:
+ @if which git > /dev/null; then : ; else echo "'git' not found, exiting..."; exit 1; fi
+ @if which prove > /dev/null; then prove; else echo "'prove' not found; not running tests"; fi
moo:
- if [ -x /usr/games/cowsay ]; then /usr/games/cowsay "I hope you're happy now..."; fi
+ @ which cowsay >/dev/null 2>&1 && cowsay "I hope you're happy now..."