Show More
@@ -2,14 +2,51 b'' | |||
|
2 | 2 | # Uncomment this to turn on verbose mode. |
|
3 | 3 | # export DH_VERBOSE=1 |
|
4 | 4 | |
|
5 | # By default we build a .deb where the native components are built with the | |
|
6 | # current "default" version of py3 on the build machine. If you wish to build a | |
|
7 | # .deb that has native components built for multiple versions of py3: | |
|
8 | # | |
|
9 | # 1. install python3.x and python3.x-dev for each version you want | |
|
10 | # 2. set DEB_HG_MULTI_VERSION=1 or DEB_HG_PYTHON_VERSIONS in your environment | |
|
11 | # (if both are set, DEB_HG_PYTHON_VERSIONS has precedence) | |
|
12 | # | |
|
13 | # If you choose `DEB_HG_MULTI_VERSION=1`, it will build for every "supported" | |
|
14 | # version of py3 that's installed on the build machine. This may not be equal to | |
|
15 | # the actual versions that are installed, see the comment above where we set | |
|
16 | # DEB_HG_PYTHON_VERSIONS below. If you choose to set `DEB_HG_PYTHON_VERSIONS` | |
|
17 | # yourself, set it to a space-separated string of python version numbers, like: | |
|
18 | # DEB_HG_PYTHON_VERSIONS="3.7 3.8" make deb | |
|
19 | DEB_HG_MULTI_VERSION?=0 | |
|
20 | ||
|
5 | 21 | CPUS=$(shell cat /proc/cpuinfo | grep -E ^processor | wc -l) |
|
6 | 22 | |
|
23 | # By default, only build for the version of python3 that the system considers | |
|
24 | # the 'default' (which should be the one invoked by just running 'python3' | |
|
25 | # without a minor version). If DEB_HG_PYTHON_VERSIONS is set, this is ignored. | |
|
26 | ifeq ($(DEB_HG_MULTI_VERSION), 1) | |
|
27 | # If we're building for multiple versions, use all of the "supported" versions | |
|
28 | # on the build machine. Note: the mechanism in use here (`py3versions`) is the | |
|
29 | # recommended one, but it relies on a file written by the python3-minimal | |
|
30 | # package, and this file is not dynamic and does not account for manual | |
|
31 | # installations, just the ones that would be installed by `python3-all`. This | |
|
32 | # includes the `-i` flag, which claims it's to list all "installed" versions, | |
|
33 | # but it doesn't. This was quite confusing, hence this tale of woe. :) | |
|
34 | DEB_HG_PYTHON_VERSIONS?=$(shell py3versions -vs) | |
|
35 | else | |
|
36 | # If we're building for only one version, identify the "default" version on | |
|
37 | # the build machine and use that when building; this is just so that we don't | |
|
38 | # have to duplicate the rules below for multi-version vs. single-version. The | |
|
39 | # shebang line will still be /usr/bin/python3 (no minor version). | |
|
40 | DEB_HG_PYTHON_VERSIONS?=$(shell py3versions -vd) | |
|
41 | endif | |
|
42 | ||
|
7 | 43 | export HGPYTHON3=1 |
|
8 | 44 | export PYTHON=python3 |
|
9 | 45 | |
|
10 | 46 | %: |
|
11 | 47 | dh $@ --with python3 |
|
12 | 48 | |
|
49 | # Note: testing can be disabled using the standard `DEB_BUILD_OPTIONS=nocheck` | |
|
13 | 50 | override_dh_auto_test: |
|
14 | 51 | http_proxy='' dh_auto_test -- TESTFLAGS="-j$(CPUS)" |
|
15 | 52 | |
@@ -24,8 +61,15 b' override_dh_auto_build:' | |||
|
24 | 61 | $(MAKE) all |
|
25 | 62 | $(MAKE) -C contrib/chg all |
|
26 | 63 | |
|
27 | override_dh_auto_install: | |
|
28 | python3 setup.py install --root "$(CURDIR)"/debian/mercurial --install-layout=deb | |
|
64 | # Build the native extensions for a specfic python3 version (which must be | |
|
65 | # installed on the build machine). | |
|
66 | install-python%: | |
|
67 | python$* setup.py install --root "$(CURDIR)"/debian/mercurial --install-layout=deb | |
|
68 | ||
|
69 | # Build the final package. This rule has a dependencies section that causes the | |
|
70 | # native extensions to be compiled for every version of python3 listed in | |
|
71 | # DEB_HG_PYTHON_VERSIONS. | |
|
72 | override_dh_auto_install: $(DEB_HG_PYTHON_VERSIONS:%=install-python%) | |
|
29 | 73 | # chg |
|
30 | 74 | make -C contrib/chg \ |
|
31 | 75 | DESTDIR="$(CURDIR)"/debian/mercurial \ |
General Comments 0
You need to be logged in to leave comments.
Login now