summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2010-05-03 13:36:20 +0200
committerhut <hut@lavabit.com>2010-05-03 23:58:07 +0200
commitb0a216f59a7770f5ce35f4a56b5055c51ceec284 (patch)
tree5a5f58cf901bf55e8d47ba3d2fcfe91ae73b8094
parentcb116bf0dc119977f69f3146c786b09315ac9c50 (diff)
downloadranger-b0a216f59a7770f5ce35f4a56b5055c51ceec284.tar.gz
Makefile: cleaned up, added automatic uninstall
-rw-r--r--Makefile115
1 files changed, 57 insertions, 58 deletions
diff --git a/Makefile b/Makefile
index 05c565e6..bef340ec 100644
--- a/Makefile
+++ b/Makefile
@@ -2,37 +2,74 @@ NAME = ranger
 VERSION = 1.0.4
 PYTHON ?= python
 DOCDIR ?= doc/pydoc
-PREFIX ?= /usr/local
+PREFIX ?= /usr
+MANPREFIX ?= /share/man
 PYTHONOPTIMIZE ?= 2
 CWD = $(shell pwd)
-EDITOR ?= vim
-DEST ?= $(shell $(PYTHON) -c 'import sys; sys.stdout.write( \
-	[p for p in sys.path if "site" in p][0])' 2> /dev/null)/ranger
+PYTHON_SITE_DEST ?= $(shell $(PYTHON) -c 'import sys; sys.stdout.write( \
+	[p for p in sys.path if "site" in p][0])' 2> /dev/null)
 
-.PHONY: all compile clean doc cleandoc edit push test commit \
-	install uninstall info snapshot minimal_snapshot
+default: test compile
+	@echo 'Run `make options` for a list of all options'
 
-info:
-	@echo 'This makefile provides shortcuts for common tasks.'
-	@echo 'make clean: Remove all unnecessary files (.pyc, .pyo)'
-	@echo 'make cleandoc: Remove the pydoc documentation'
+options: help
+	@echo
+	@echo 'Options:'
+	@echo 'PYTHON = $(PYTHON)'
+	@echo 'PYTHONOPTIMIZE = $(PYTHONOPTIMIZE)'
+	@echo 'PYTHON_SITE_DEST = $(PYTHON_SITE_DEST)'
+	@echo 'PREFIX = $(PREFIX)'
+	@echo 'MANPREFIX = $(MANPREFIX)'
+	@echo 'DOCDIR = $(DOCDIR)'
+
+help:
+	@echo 'make: Compile $(NAME)'
 	@echo 'make doc: Create the pydoc documentation'
 	@echo 'make install: Install ranger'
+	@echo 'make clean: Remove the compiled files (*.pyc, *.pyo)'
+	@echo 'make cleandoc: Remove the pydoc documentation'
+	@echo 'make uninstall: Uninstall ranger'
 	@echo 'make snapshot: Create a tar.gz of the current git revision'
-	@echo
-	@echo 'For developers:'
-	@echo 'make commit: Test and commit the changes'
 	@echo 'make test: Run all unittests.'
-	@echo 'make push: push the changes via git'
-	@echo 'make edit: open all relevant files in your editor'
 
-all: test install
+all: test compile install
+
+install:
+	@if [ '$(PYTHON_SITE_DEST)' == '' ]; then \
+		echo -n 'Cannot find a suitable destination for the files.'; \
+		echo '  Please install $(NAME) manually.'; \
+		false; \
+	fi
+	@echo "Installing $(NAME) version $(VERSION)..."
+	@mkdir -p $(PREFIX)/bin
+	cp -f ranger.py $(PREFIX)/bin/ranger
+	@mkdir -p $(PYTHON_SITE_DEST)
+	cp -fruT ranger $(PYTHON_SITE_DEST)/ranger
+	@chmod 755 $(PREFIX)/bin/ranger
+	@chmod -R +rX $(PYTHON_SITE_DEST)/ranger
+	@mkdir -p $(PREFIX)$(MANPREFIX)/man1
+	cp -f doc/ranger.1 $(PREFIX)$(MANPREFIX)/man1/ranger.1
+	@chmod 644 $(PREFIX)$(MANPREFIX)/man1/ranger.1
+
+uninstall:
+	rm -f $(PREFIX)/bin/ranger
+	rm -f '$(PREFIX)$(MANPREFIX)/man1/ranger.1'
+	@if [ '$(PYTHON_SITE_DEST)' == '' ]; then \
+		echo 'Cannot find a possible location of rangers library files'; \
+		false; \
+	fi
+	rm -rf '$(PYTHON_SITE_DEST)/ranger/*'
+	@echo 'NOTE: By default, configuration files are stored at "~/.ranger".'
+	@echo 'This script will not delete those.'
 
 compile: clean
 	@echo 'Compiling...'
 	python -m compileall -q ranger
 	PYTHONOPTIMIZE=$(PYTHONOPTIMIZE) python -m compileall -q ranger
 
+clean:
+	find . -regex .\*.py[co]\$$ -exec rm -f -- {} \;
+
 doc: cleandoc
 	mkdir -p $(DOCDIR)
 	cd $(DOCDIR); \
@@ -40,53 +77,15 @@ doc: cleandoc
 		sys.path[0] = "$(CWD)"; \
 		pydoc.writedocs("$(CWD)")'
 
-uninstall:
-	@echo 'To uninstall ranger, please remove these files:'
-	@echo $(DEST)'/*'
-	@echo $(PREFIX)'/bin/ranger'
-	@echo 'and optionally the config files at:'
-	@echo '~/.ranger'
-
-install: compile
-	@if [ '$(DEST)' == '/ranger' ]; then \
-		echo 'Cannot find a suitable destination for the files.'; \
-		false; \
-	fi
-	@echo "Installing..."
-	cp ranger.py $(PREFIX)/bin/ranger
-	cp -ruT ranger $(DEST)
-	chmod 755 $(PREFIX)/bin/ranger
-	chmod -R +rX $(DEST)
-	@echo '--------------------------------------'
-	@echo 'Finished.'
-	@echo 'If you use BASH or ZSH, you can activate an extra feature now:'
-	@echo 'When you exit ranger, the directory of the current shell can be'
-	@echo 'changed to the last visited directory in ranger.  To do so, add'
-	@echo 'this alias to your shell rc file (like ~/.bashrc):'
-	@echo 'alias rng="source ranger ranger"'
-	@echo 'And run ranger by typing rng.'
-
-
 cleandoc:
 	test -d $(DOCDIR) && rm -f -- $(DOCDIR)/*.html
 
-clean:
-	find . -regex .\*.py[co]\$$ -exec rm -f -- {} \;
-
 test:
 	./all_tests.py 1
-
-edit:
-	@$(EDITOR) ranger.py Makefile README COPYING HACKING INSTALL $(shell find ranger test -regex .\*py$ )
-
-push:
-	@for repo in $(shell git remote); do \
-		echo "Pushing to $$repo..."; \
-		git push $$repo master; \
-	done
-
-commit: test
-	@git citool
+	./all_benchmarks.py 1
 
 snapshot:
 	git archive HEAD | gzip > $(NAME)-$(VERSION)-$(shell git rev-parse HEAD | cut -b 1-8).tar.gz
+
+.PHONY: default options all compile clean doc cleandoc test \
+	install uninstall snapshot