Mercurial > hg
annotate contrib/Makefile.python @ 28501:66513f6ca038
commands: centralize code to update with extra care for non-file components
This patch centralizes similar code paths to update the working
directory with extra care for non-file components (e.g. bookmark) into
newly added function updatetotally().
'if True' at the beginning of updatetotally() is redundant at this
patch, but useful to reduce amount of changes in subsequent patch.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Sat, 12 Mar 2016 04:35:42 +0900 |
parents | 9f8b8c4e5076 |
children | 5e947367606c |
rev | line source |
---|---|
26735
ec74ea542201
contrib: offer Python 2.7.10
Mads Kiilerich <madski@unity3d.com>
parents:
26734
diff
changeset
|
1 PYTHONVER=2.7.10 |
20388
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:' |
26735
ec74ea542201
contrib: offer Python 2.7.10
Mads Kiilerich <madski@unity3d.com>
parents:
26734
diff
changeset
|
20 @echo ' $$ make -f Makefile.python python PYTHONVER=${PYTHONVER} PREFIX=/tmp/p27' |
ec74ea542201
contrib: offer Python 2.7.10
Mads Kiilerich <madski@unity3d.com>
parents:
26734
diff
changeset
|
21 @echo ' $$ /tmp/p27/bin/python -V' |
ec74ea542201
contrib: offer Python 2.7.10
Mads Kiilerich <madski@unity3d.com>
parents:
26734
diff
changeset
|
22 @echo ' Python 2.7' |
20388
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:' |
26735
ec74ea542201
contrib: offer Python 2.7.10
Mads Kiilerich <madski@unity3d.com>
parents:
26734
diff
changeset
|
30 @echo ' $$ for v in 2.{6{,.1,.2,.9},7{,.8,.10}}; do' |
20388
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 |
26734
b000d34f863f
contrib: drop Python < 2.6 from Makefile.python
Mads Kiilerich <madski@unity3d.com>
parents:
23880
diff
changeset
|
41 printf 'import sys, zlib, bz2, docutils, ssl' | $(PREFIX)/bin/python |
20388
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: |
23824
e278fc8bb0c3
Makefile.python: try curl if wget fails
Augie Fackler <augie@google.com>
parents:
23140
diff
changeset
|
47 [ -f $(PYTHON_SRCFILE) ] || wget http://www.python.org/ftp/python/$(PYTHONVER)/$(PYTHON_SRCFILE) || curl -OL http://www.python.org/ftp/python/$(PYTHONVER)/$(PYTHON_SRCFILE) || [ -f $(PYTHON_SRCFILE) ] |
20388
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) |
27230
9f8b8c4e5076
contrib: disable SSLv3_method() to build old Python with recent libssl
Yuya Nishihara <yuya@tcha.org>
parents:
26735
diff
changeset
|
50 # Debian/Ubuntu disables SSLv2,3 the hard way, disable it on old Pythons too |
9f8b8c4e5076
contrib: disable SSLv3_method() to build old Python with recent libssl
Yuya Nishihara <yuya@tcha.org>
parents:
26735
diff
changeset
|
51 -sed -i 's,self.*SSLv[23]_method(),0;//\0,g' $(PYTHON_SRCDIR)/Modules/_ssl.c |
20388
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
52 # 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
|
53 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
|
54 BASECFLAGS=-U_FORTIFY_SOURCE; \ |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
55 export LDFLAGS BASECFLAGS; \ |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
56 cd $(PYTHON_SRCDIR) && ./configure --prefix=$(PREFIX) && make all SVNVERSION=pwd && make install |
26734
b000d34f863f
contrib: drop Python < 2.6 from Makefile.python
Mads Kiilerich <madski@unity3d.com>
parents:
23880
diff
changeset
|
57 printf 'import sys, zlib, bz2, ssl' | $(PREFIX)/bin/python |
20388
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
58 rm -rf $(PYTHON_SRCDIR) |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
59 |
23140
fbd79c2552a6
contrib: update build defaults to latest Python and docutils versions
Mads Kiilerich <madski@unity3d.com>
parents:
20388
diff
changeset
|
60 DOCUTILSVER=0.12 |
20388
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
61 DOCUTILS_SRCDIR=docutils-$(DOCUTILSVER) |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
62 DOCUTILS_SRCFILE=$(DOCUTILS_SRCDIR).tar.gz |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
63 |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
64 docutils: $(PREFIX)/bin/python |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
65 @$(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
|
66 [ -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
|
67 rm -rf $(DOCUTILS_SRCDIR); \ |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
68 tar xf $(DOCUTILS_SRCFILE); \ |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
69 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
|
70 $(PREFIX)/bin/python -c 'import docutils'; \ |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
71 rm -rf $(DOCUTILS_SRCDIR); ) |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
72 |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
73 symlink: python $(SYMLINKDIR) |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
74 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
|
75 |
9fe578297b5c
contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com>
parents:
diff
changeset
|
76 .PHONY: help python docutils symlink |