blob: 57472bd1279cbd958a6a2f096661b9a947614020 [file] [log] [blame]
PYTHON = $(shell test -x bin/python && echo bin/python || \
echo `which python`)
PYVERS = $(shell $(PYTHON) -c 'import sys; print "%s.%s" % sys.version_info[0:2]')
VIRTUALENV = $(shell /bin/echo -n `which virtualenv || \
which virtualenv-$(PYVERS) || \
which virtualenv$(PYVERS)`)
VIRTUALENV += --no-site-packages
PAGER ?= less
DEPS := $(shell find $(PWD)/deps -type f -printf "file://%p ")
COVERAGE = $(shell test -x bin/coverage && echo bin/coverage || echo true)
SETUP = $(PYTHON) ./setup.py
EZ_INSTALL = $(SETUP) easy_install -f "$(DEPS)"
PYLINT = bin/pylint
PLATFORM = $(shell $(PYTHON) -c "from pkg_resources import get_build_platform; print get_build_platform()")
OS := $(shell uname)
EGG := $(shell $(SETUP) --fullname)-py$(PYVERS).egg
SDIST := $(shell $(SETUP) --fullname).tar.gs
SRCDIR := oauth2
SOURCES := $(shell find $(SRCDIR) -type f -name \*.py -not -name 'test_*')
TESTS := $(shell find $(SRCDIR) -type f -name test_\*.py)
COVERED := $(SOURCES)
ROOT = $(shell pwd)
ROOTCMD = fakeroot
SIGN_KEY ?= nerds@simplegeo.com
BUILD_NUMBER ?= 1
.PHONY: test dev clean extraclean debian/changelog
all: egg
egg: dist/$(EGG)
dist/$(EGG):
$(SETUP) bdist_egg
sdist:
$(SETUP) sdist
debian/changelog:
-git branch -D changelog
git checkout -b changelog
git-dch -a -N $(shell $(SETUP) --version) --debian-branch changelog \
--snapshot --snapshot-number=$(BUILD_NUMBER)
deb: debian/changelog
test -d dist/deb || mkdir -p dist/deb
dpkg-buildpackage -r$(ROOTCMD) -k$(SIGN_KEY)
mv ../python-oauth2_* dist/deb
test:
$(SETUP) test --with-coverage --cover-package=oauth2
sdist:
python setup.py sdist
xunit.xml: bin/nosetests $(SOURCES) $(TESTS)
$(SETUP) test --with-xunit --xunit-file=$@
bin/nosetests: bin/easy_install
@$(EZ_INSTALL) nose
coverage: .coverage
@$(COVERAGE) html -d $@ $(COVERED)
coverage.xml: .coverage
@$(COVERAGE) xml $(COVERED)
.coverage: $(SOURCES) $(TESTS) bin/coverage bin/nosetests
-@$(COVERAGE) run $(SETUP) test
bin/coverage: bin/easy_install
@$(EZ_INSTALL) coverage
profile: .profile bin/pyprof2html
bin/pyprof2html -o $@ $<
.profile: $(SOURCES) bin/nosetests
-$(SETUP) test -q --with-profile --profile-stats-file=$@
bin/pyprof2html: bin/easy_install bin/
@$(EZ_INSTALL) pyprof2html
docs: $(SOURCES) bin/epydoc
@echo bin/epydoc -q --html --no-frames -o $@ ...
@bin/epydoc -q --html --no-frames -o $@ $(SOURCES)
bin/epydoc: bin/easy_install
@$(EZ_INSTALL) epydoc
bin/pep8: bin/easy_install
@$(EZ_INSTALL) pep8
pep8: bin/pep8
@bin/pep8 --repeat --ignore E225 $(SRCDIR)
pep8.txt: bin/pep8
@bin/pep8 --repeat --ignore E225 $(SRCDIR) > $@
lint: bin/pylint
-$(PYLINT) -f colorized $(SRCDIR)
lint.html: bin/pylint
-$(PYLINT) -f html $(SRCDIR) > $@
lint.txt: bin/pylint
-$(PYLINT) -f parseable $(SRCDIR) > $@
bin/pylint: bin/easy_install
@$(EZ_INSTALL) pylint
README.html: README.mkd | bin/markdown
bin/markdown -e utf-8 $^ -f $@
bin/markdown: bin/easy_install
@$(EZ_INSTALL) Markdown
# Development setup
rtfm:
$(PAGER) README.mkd
tags: TAGS.gz
TAGS.gz: TAGS
gzip $^
TAGS: $(SOURCES)
ctags -eR .
env: bin/easy_install
bin/easy_install:
$(VIRTUALENV) .
-test -f deps/setuptools* && $@ -U deps/setuptools*
dev: develop
develop: env
nice -n 20 $(SETUP) develop
@echo " ---------------------------------------------"
@echo " To activate the development environment, run:"
@echo " . bin/activate"
@echo " ---------------------------------------------"
clean:
clean:
find . -type f -name \*.pyc -exec rm {} \;
rm -rf build dist TAGS TAGS.gz digg.egg-info tmp .coverage \
coverage coverage.xml docs lint.html lint.txt profile \
.profile *.egg xunit.xml
@if test "$(OS)" = "Linux"; then $(ROOTCMD) debian/rules clean; fi
xclean: extraclean
extraclean: clean
rm -rf bin lib .Python include