Mercurial > hg
annotate contrib/Makefile.python @ 21635:5f2cc464e502
convert: introduce hascommitfrommap sink method
Mercurial has stable revision identifiers and rollback and strip. Revisions
referenced in the shamap are thus not necessarily still present but we can
easily check for it.
Subversion do not have stable identifiers and no rollback or strip(?). We must
thus assume that all revisions referenced from a shamap still must be present.
This method is similar to hascommitforsplicemap but different ...
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Mon, 19 May 2014 22:12:30 +0200 |
parents | 9fe578297b5c |
children | fbd79c2552a6 |
rev | line source |
---|---|
20388
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
1 PYTHONVER=2.7.6 |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
2 PYTHONNAME=python- |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
3 PREFIX=$(HOME)/bin/prefix-$(PYTHONNAME)$(PYTHONVER) |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
4 SYMLINKDIR=$(HOME)/bin |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
5 |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
6 help: |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
7 @echo |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
8 @echo 'Make a custom installation of a Python version' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
9 @echo |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
10 @echo 'Common make parameters:' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
11 @echo ' PYTHONVER=... [$(PYTHONVER)]' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
12 @echo ' PREFIX=... [$(PREFIX)]' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
13 @echo ' SYMLINKDIR=... [$(SYMLINKDIR) creating $(PYTHONNAME)$(PYTHONVER)]' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
14 @echo |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
15 @echo 'Common make targets:' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
16 @echo ' python - install Python $$PYTHONVER in $$PREFIX' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
17 @echo ' symlink - create a $$SYMLINKDIR/$(PYTHONNAME)$$PYTHONVER symlink' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
18 @echo |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
19 @echo 'Example: create a temporary Python installation:' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
20 @echo ' $$ make -f Makefile.python python PYTHONVER=2.4 PREFIX=/tmp/p24' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
21 @echo ' $$ /tmp/p24/bin/python -V' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
22 @echo ' Python 2.4' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
23 @echo |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
24 @echo 'Some external libraries are required for building Python: zlib bzip2 openssl.' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
25 @echo 'Make sure their development packages are installed systemwide.' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
26 # fedora: yum install zlib-devel bzip2-devel openssl-devel |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
27 # debian: apt-get install zlib1g-dev libbz2-dev libssl-dev |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
28 @echo |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
29 @echo 'To build a nice collection of interesting Python versions:' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
30 @echo ' $$ for v in 2.{4{,.2,.3},5{,.6},6{,.1,.2,.9},7{,.6}}; do' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
31 @echo ' make -f Makefile.python symlink PYTHONVER=$$v || break; done' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
32 @echo 'To run a Mercurial test on all these Python versions:' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
33 @echo ' $$ for py in `cd ~/bin && ls $(PYTHONNAME)2.*`; do' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
34 @echo ' echo $$py; $$py run-tests.py test-http.t; echo; done' |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
35 @echo |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
36 |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
37 export LANGUAGE=C |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
38 export LC_ALL=C |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
39 |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
40 python: $(PREFIX)/bin/python docutils |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
41 printf 'import sys, zlib, bz2, docutils\nif sys.version_info >= (2,6):\n import ssl' | $(PREFIX)/bin/python |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
42 |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
43 PYTHON_SRCDIR=Python-$(PYTHONVER) |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
44 PYTHON_SRCFILE=$(PYTHON_SRCDIR).tgz |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
45 |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
46 $(PREFIX)/bin/python: |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
47 [ -f $(PYTHON_SRCFILE) ] || wget http://www.python.org/ftp/python/$(PYTHONVER)/$(PYTHON_SRCFILE) || [ -f $(PYTHON_SRCFILE) ] |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
48 rm -rf $(PYTHON_SRCDIR) |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
49 tar xf $(PYTHON_SRCFILE) |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
50 # Ubuntu disables SSLv2 the hard way, disable it on old Pythons too |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
51 -sed -i 's,self.*SSLv2_method(),0;//\0,g' $(PYTHON_SRCDIR)/Modules/_ssl.c |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
52 # Find multiarch system libraries on Ubuntu with Python 2.4.x |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
53 # http://lipyrary.blogspot.dk/2011/05/how-to-compile-python-on-ubuntu-1104.html |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
54 -sed -i "s|lib_dirs = .* \[|\0'/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`',|g" $(PYTHON_SRCDIR)/setup.py |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
55 # Find multiarch system libraries on Ubuntu and disable fortify error when setting argv |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
56 LDFLAGS="-L/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`"; \ |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
57 BASECFLAGS=-U_FORTIFY_SOURCE; \ |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
58 export LDFLAGS BASECFLAGS; \ |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
59 cd $(PYTHON_SRCDIR) && ./configure --prefix=$(PREFIX) && make all SVNVERSION=pwd && make install |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
60 printf 'import sys, zlib, bz2\nif sys.version_info >= (2,6):\n import ssl' | $(PREFIX)/bin/python |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
61 rm -rf $(PYTHON_SRCDIR) |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
62 |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
63 DOCUTILSVER=0.11 |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
64 DOCUTILS_SRCDIR=docutils-$(DOCUTILSVER) |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
65 DOCUTILS_SRCFILE=$(DOCUTILS_SRCDIR).tar.gz |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
66 |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
67 docutils: $(PREFIX)/bin/python |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
68 @$(PREFIX)/bin/python -c 'import docutils' || ( set -ex; \ |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
69 [ -f $(DOCUTILS_SRCFILE) ] || wget http://downloads.sourceforge.net/project/docutils/docutils/$(DOCUTILSVER)/$(DOCUTILS_SRCFILE) || [ -f $(DOCUTILS_SRCFILE) ]; \ |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
70 rm -rf $(DOCUTILS_SRCDIR); \ |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
71 tar xf $(DOCUTILS_SRCFILE); \ |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
72 cd $(DOCUTILS_SRCDIR) && $(PREFIX)/bin/python setup.py install --prefix=$(PREFIX); \ |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
73 $(PREFIX)/bin/python -c 'import docutils'; \ |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
74 rm -rf $(DOCUTILS_SRCDIR); ) |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
75 |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
76 symlink: python $(SYMLINKDIR) |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
77 ln -sf $(PREFIX)/bin/python $(SYMLINKDIR)/$(PYTHONNAME)$(PYTHONVER) |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
78 |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
79 .PHONY: help python docutils symlink |