Mercurial > hg
annotate contrib/Makefile.python @ 21537:1ab30e9ba0fc
update: specify custom conflict markers for update (BC)
Add custom conflict markers 'working copy' and 'destination' for doing hg update
when there are conflicts between your working copy and the destination.
author | Durham Goode <durham@fb.com> |
---|---|
date | Fri, 09 May 2014 18:09:11 -0700 |
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 |