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
59 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239