about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--INSTALL48
-rw-r--r--Makefile14
2 files changed, 26 insertions, 36 deletions
diff --git a/INSTALL b/INSTALL
index 9939c11b..b5b1f066 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,45 +1,25 @@
 Installing
 ==========
 
-You don't need to install anything.
+Use the package manager of your operating system to install ranger.
 
-You can run ranger by simply starting the executable file ranger.py
-in the top directory of this package.
-Use the --clean option and it will leave no trace whatsoever on your system.
+To install ranger manually, use either:
+sudo ./setup.py install --optimize=1 --record=uninstall_info
 
-
-If you insist on conventionally install it, use the package manager
-of your operating system.  If there is no package or it is out of date,
-you can also follow these instructions:
-
-
-Step by step
-============
-
-(This is all done automagically if you type `sudo make install',
-though you might want to read the Makefile first)
-
-0. Make sure you have a recent version of python, including the
-   curses module, which is the case if this shell command prints no errors:
-   python -c 'import curses, sys; assert sys.version >= "2.6"'
-
-
-1. Copy the file "ranger.py" into any of the directories in the PATH
-   environment variable, for example to "/usr/bin/ranger"
-
-
-2. Copy the directory "ranger" into one of the python module search
-   paths, for example to "/usr/lib/python2.6/site-packages/ranger".
-
-   Ensure that the path is listed by the command:
-   python -c 'import sys; print("\n".join(sys.path))'
+or for short:
+sudo make install
 
 
 Uninstalling
 ============
 
-Use your package manager to uninstall ranger.  If you manually installed
-it, revert the steps described above.
+Ranger uses python distutils to install ranger which does not support automatic
+uninstalling.
+
+However, after installing ranger with one of the ways above, all installed
+files are recorded to "uninstall_info".  This information can be used to
+remove ranger:
+cat uninstall_info | xargs -d "\n" sudo rm --
 
-Ranger can also create a configuration directory at ~/.ranger which
-you might want to remove as well.
+or simply:
+sudo make uninstall
diff --git a/Makefile b/Makefile
index fc5b1cf8..2f2417de 100644
--- a/Makefile
+++ b/Makefile
@@ -16,8 +16,11 @@
 NAME = ranger
 VERSION = $(shell cat README | grep -m 1 -o '[0-9][0-9.]\+')
 SNAPSHOT_NAME ?= $(NAME)-$(VERSION)-$(shell git rev-parse HEAD | cut -b 1-8).tar.gz
-PYTHON ?= python
+# Find suitable python version (need python >= 2.6 or 3.1):
+PYTHON ?= $(shell python -c 'import sys; sys.exit(sys.version < "2.6")' && \
+	which python || which python3.1 || which python3 || which python2.6)
 DOCDIR ?= doc/pydoc
+DESTDIR ?= /
 PYOPTIMIZE ?= 1
 BMCOUNT ?= 5  # how often to run the benchmarks?
 
@@ -40,6 +43,13 @@ help:
 	@echo 'make snapshot: Create a tar.gz of the current git revision'
 	@echo 'make test: Run all unittests.'
 
+install:
+	$(PYTHON) setup.py install --record=uninstall_info \
+		'--root=$(DESTDIR)' --optimize=$(PYOPTIMIZE)
+
+uninstall:
+	cd $(DESTDIR) && cat $(CWD)/uninstall_info | xargs -d "\n" rm --
+
 compile: clean
 	PYTHONOPTIMIZE=$(PYOPTIMIZE) $(PYTHON) -m compileall -q ranger
 
@@ -66,4 +76,4 @@ bm:
 snapshot:
 	git archive --prefix='$(NAME)-$(VERSION)/' --format=tar HEAD | gzip > $(SNAPSHOT_NAME)
 
-.PHONY: default options compile clean doc cleandoc test bm snapshot
+.PHONY: default options compile clean doc cleandoc test bm snapshot install uninstall