From 636d93936d26fccdf6fe530568db1b4c41c3f2bf Mon Sep 17 00:00:00 2001 From: hut Date: Fri, 18 Jun 2010 12:58:17 +0200 Subject: Makefile: removed functions which are now handled by setup.py --- Makefile | 55 ++++--------------------------------------------------- 1 file changed, 4 insertions(+), 51 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 047f4e26..fc5b1cf8 100644 --- a/Makefile +++ b/Makefile @@ -15,17 +15,10 @@ 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 DOCDIR ?= doc/pydoc -PREFIX ?= /usr -MANPREFIX ?= /share/man PYOPTIMIZE ?= 1 -# this finds the shortest item in sys.path that contains "site" or "dist" -# for example: /usr/lib/python2.6/site-packages -PYTHON_SITE_DEST ?= $(shell $(PYTHON) -c 'import sys; \ - dests = sorted([p for p in sys.path if "site" in p or "dist" in p], \ - key=lambda dest: len(dest)); \ - sys.stdout.write(dests[0])' 2> /dev/null) BMCOUNT ?= 5 # how often to run the benchmarks? CWD = $(shell pwd) @@ -38,69 +31,30 @@ options: help @echo 'Options:' @echo 'PYTHON = $(PYTHON)' @echo 'PYOPTIMIZE = $(PYOPTIMIZE)' - @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 'make test: Run all unittests.' -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 $(DESTDIR)$(PREFIX)/bin - cp -f ranger.py $(DESTDIR)$(PREFIX)/bin/ranger - @mkdir -p $(DESTDIR)$(PYTHON_SITE_DEST) - cp -fruT ranger $(DESTDIR)$(PYTHON_SITE_DEST)/ranger - @chmod 755 $(DESTDIR)$(PREFIX)/bin/ranger - @chmod -R +rX $(DESTDIR)$(PYTHON_SITE_DEST)/ranger - @mkdir -p $(DESTDIR)$(PREFIX)$(MANPREFIX)/man1 - cp -f doc/ranger.1 $(DESTDIR)$(PREFIX)$(MANPREFIX)/man1/ranger.1 - @chmod 644 $(DESTDIR)$(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...' PYTHONOPTIMIZE=$(PYOPTIMIZE) $(PYTHON) -m compileall -q ranger clean: - @echo 'Cleaning...' find . -regex .\*.py[co]\$$ -exec rm -f -- {} \; doc: cleandoc - @echo 'Creating pydoc html documentation...' mkdir -p $(DOCDIR) cd $(DOCDIR); \ $(PYTHON) -c 'import pydoc, sys; \ sys.path[0] = "$(CWD)"; \ pydoc.writedocs("$(CWD)")' + rm $(DOCDIR)/test* cleandoc: - @echo 'Removing pydoc html documentation...' test -d $(DOCDIR) && rm -f -- $(DOCDIR)/*.html test: @@ -110,7 +64,6 @@ bm: @$(PYTHON) test/all_benchmarks.py $(BMCOUNT) snapshot: - git archive --prefix='$(NAME)-$(VERSION)/' --format=tar HEAD | gzip > $(NAME)-$(VERSION)-$(shell git rev-parse HEAD | cut -b 1-8).tar.gz + git archive --prefix='$(NAME)-$(VERSION)/' --format=tar HEAD | gzip > $(SNAPSHOT_NAME) -.PHONY: default options all compile clean doc cleandoc test bm \ - install uninstall snapshot +.PHONY: default options compile clean doc cleandoc test bm snapshot -- cgit 1.4.1-2-gfad0 From 582f3519f70332f88fea0055cdd1b2291e029a2e Mon Sep 17 00:00:00 2001 From: hut Date: Fri, 18 Jun 2010 16:04:43 +0200 Subject: Rewrote INSTALL and "make (un)install" --- INSTALL | 48 ++++++++++++++---------------------------------- Makefile | 14 ++++++++++++-- 2 files changed, 26 insertions(+), 36 deletions(-) (limited to 'Makefile') 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 -- cgit 1.4.1-2-gfad0 From b06433bc03632ae0fe74381fa0a474d64b0fee94 Mon Sep 17 00:00:00 2001 From: hut Date: Fri, 18 Jun 2010 17:11:54 +0200 Subject: Removed built-in support for uninstalling. Since distutils (setup.py) is used and distutils doesn't support uninstalling, I shouldn't implement my own half-assed, potentially dangerous uninstall script either. --- INSTALL | 14 ++++++-------- Makefile | 9 ++++----- 2 files changed, 10 insertions(+), 13 deletions(-) (limited to 'Makefile') diff --git a/INSTALL b/INSTALL index b5b1f066..3f4e0198 100644 --- a/INSTALL +++ b/INSTALL @@ -13,13 +13,11 @@ sudo make install Uninstalling ============ -Ranger uses python distutils to install ranger which does not support automatic -uninstalling. +Again, use your package manager to uninstall ranger. No other way for +automatically removing ranger is supported! -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 -- +However, if you installed ranger with the command above, all installed files +have been recorded to "uninstall_info". This information can be used to remove +ranger by hand, e.g.: -or simply: -sudo make uninstall +cat uninstall_info | xargs -d "\n" sudo rm -- diff --git a/Makefile b/Makefile index 2f2417de..88abe024 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,7 @@ SNAPSHOT_NAME ?= $(NAME)-$(VERSION)-$(shell git rev-parse HEAD | cut -b 1-8).tar # 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) +SETUPOPTS ?= '--record=uninstall_info' DOCDIR ?= doc/pydoc DESTDIR ?= / PYOPTIMIZE ?= 1 @@ -37,6 +38,7 @@ options: help @echo 'DOCDIR = $(DOCDIR)' help: + @echo 'make install: Install $(NAME)' @echo 'make doc: Create the pydoc documentation' @echo 'make clean: Remove the compiled files (*.pyc, *.pyo)' @echo 'make cleandoc: Remove the pydoc documentation' @@ -44,12 +46,9 @@ help: @echo 'make test: Run all unittests.' install: - $(PYTHON) setup.py install --record=uninstall_info \ + $(PYTHON) setup.py install $(SETUPOPTS) \ '--root=$(DESTDIR)' --optimize=$(PYOPTIMIZE) -uninstall: - cd $(DESTDIR) && cat $(CWD)/uninstall_info | xargs -d "\n" rm -- - compile: clean PYTHONOPTIMIZE=$(PYOPTIMIZE) $(PYTHON) -m compileall -q ranger @@ -76,4 +75,4 @@ bm: snapshot: git archive --prefix='$(NAME)-$(VERSION)/' --format=tar HEAD | gzip > $(SNAPSHOT_NAME) -.PHONY: default options compile clean doc cleandoc test bm snapshot install uninstall +.PHONY: default options compile clean doc cleandoc test bm snapshot install -- cgit 1.4.1-2-gfad0