X-Git-Url: https://git.madduck.net/code/vcsh.git/blobdiff_plain/189cb6bd1558c7cb4aabd9fa05624e44ce0afa3d..3e6f33668ac3507812168b6118bcb05bee572c8c:/Makefile?ds=sidebyside

diff --git a/Makefile b/Makefile
index 7c04077..b9154e7 100644
--- a/Makefile
+++ b/Makefile
@@ -1,45 +1,51 @@
-PREFIX=/usr
-
-manpages=vcsh.1
+PREFIX?=/usr
+DOCDIR_PREFIX=$(PREFIX)/share/doc
+DOCDIR=$(DOCDIR_PREFIX)/$(self)
+ZSHDIR=$(PREFIX)/share/zsh/vendor-completions
+RONN ?= ronn
+
+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 README.md $(DESTDIR)$(PREFIX)/share/doc/vcsh
-	install -m 0644 doc/hooks $(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 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..."