Makefile: introduce testpy-% target for testing with a specifc Python

This makes it easy to do 'make testpy-2.4.6 TESTFLAGS="-j 16"' and the
Makefile will build Python if needed and then run tests (with -j 16)
with the resulting Python.

You can set the environment variable HGPYTHONS to a nice location on
your machine to cache the Python builds globally. If that's not set,
it builds them inside build/pythons.
This commit is contained in:
Augie Fackler 2015-02-04 12:26:16 -05:00
parent 3fea7e90e6
commit bc6c2de805

View File

@ -7,6 +7,8 @@
PREFIX=/usr/local PREFIX=/usr/local
export PREFIX export PREFIX
PYTHON=python PYTHON=python
$(eval HGROOT := $(shell pwd))
HGPYTHONS ?= $(HGROOT)/build/pythons
PURE= PURE=
PYFILES:=$(shell find mercurial hgext doc -name '*.py') PYFILES:=$(shell find mercurial hgext doc -name '*.py')
DOCFILES=mercurial/help/*.txt DOCFILES=mercurial/help/*.txt
@ -98,6 +100,13 @@ tests:
test-%: test-%:
cd tests && $(PYTHON) run-tests.py $(TESTFLAGS) $@ cd tests && $(PYTHON) run-tests.py $(TESTFLAGS) $@
testpy-%:
@echo Looking for Python $* in $(HGPYTHONS)
[ -e $(HGPYTHONS)/$*/bin/python ] || ( \
cd $$(mktemp --directory --tmpdir) && \
$(MAKE) -f $(HGROOT)/contrib/Makefile.python PYTHONVER=$* PREFIX=$(HGPYTHONS)/$* python )
cd tests && $(HGPYTHONS)/$*/bin/python run-tests.py $(TESTFLAGS)
check-code: check-code:
hg manifest | xargs python contrib/check-code.py hg manifest | xargs python contrib/check-code.py