File: rules

package info (click to toggle)
python-coverage 4.2+dfsg.1-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,352 kB
  • ctags: 2,233
  • sloc: python: 16,048; ansic: 1,163; makefile: 184; sh: 162; xml: 42
file content (169 lines) | stat: -rwxr-xr-x 5,365 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
#! /usr/bin/make -f
#
# debian/rules
# Part of the Debian ‘python-coverage’ package.
#
# Copyright © 2010–2016 Ben Finney <bignose@debian.org>
#
# This is free software; you may copy, modify, and/or distribute this
# work under the terms of the Apache License, version 2.0 as published
# by the Apache Software Foundation. No warranty expressed or implied.
# See the file ‘/usr/share/common-licenses/Apache-2.0’ for details.

export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

export PYBUILD_NAME = coverage
export PYBUILD_DISABLE = test

PYTHON2_PACKAGE_NAME = python-${PYBUILD_NAME}
PYTHON3_PACKAGE_NAME = python3-${PYBUILD_NAME}
package_working_root = debian
package_install_root = debian/{package}

DISTRIBUTION_NAME = coverage

HTMLFILES_DIR = ${DISTRIBUTION_NAME}/htmlfiles
htmlfiles_dirname = $(notdir ${HTMLFILES_DIR})
bundled_libraries += $(addprefix ${HTMLFILES_DIR}/, \
	jquery.hotkeys.js \
	jquery.isonscreen.js \
	)

RESOURCES_DIR = usr/share/{package}
package_install_resources_root = ${package_install_root}/${RESOURCES_DIR}

DOCUMENTATION_DIR = doc
MANPAGE_SUFFIX = .1
manpage_tempfile_suffix = ${MANPAGE_SUFFIX}.tmp
default_manpage_name = python-coverage${MANPAGE_SUFFIX}
python2_command_names = $(sort $(notdir $(wildcard \
	${package_working_root}/*/usr/bin/python2*-coverage)))
python3_command_names = $(sort $(notdir $(wildcard \
	${package_working_root}/*/usr/bin/python3*-coverage)))
versioned_command_names = ${python2_command_names} ${python3_command_names}
versioned_manpage_names = $(addsuffix ${MANPAGE_SUFFIX}, \
	${versioned_command_names})
versioned_manpage_paths = $(addprefix ${DOCUMENTATION_DIR}/, \
	${versioned_manpage_names})
GENERATED_FILES += ${DOCUMENTATION_DIR}/*${MANPAGE_SUFFIX}
GENERATED_FILES += ${DOCUMENTATION_DIR}/*${manpage_tempfile_suffix}

DOCUMENTATION_BUILD_DIR = ${DOCUMENTATION_DIR}/_build
DOCUMENTATION_BUILD_HTML_DIR = ${DOCUMENTATION_BUILD_DIR}/html
GENERATED_FILES += ${DOCUMENTATION_BUILD_DIR}

INSTALL = install

# Send HTTP traffic to the “discard” service during packaging actions.
export http_proxy = http://127.0.1.1:9/
export https_proxy = ${http_proxy}

RST_SUFFIX = .txt

RST2MAN = rst2man

SPHINX = sphinx-build
SPHINX_OPTS = -N


%:
	dh $@ --with python2,python3,sphinxdoc --buildsystem=pybuild


.PHONY: remove-bundled-libraries
remove-bundled-libraries:
	$(RM) ${bundled_libraries}

.PHONY: manpage-aliases
manpage-aliases: ${versioned_manpage_paths}

${DOCUMENTATION_DIR}:
	$(INSTALL) --directory "$@"

${DOCUMENTATION_DIR}/${default_manpage_name}: ${DOCUMENTATION_DIR}
${DOCUMENTATION_DIR}/${default_manpage_name}: ${package_working_root}/${default_manpage_name}
	$(INSTALL) --mode=u=rw,go=r "$<" "$@"

${DOCUMENTATION_DIR}/%${MANPAGE_SUFFIX}: ${DOCUMENTATION_DIR}/${default_manpage_name}
	$(INSTALL) --mode=u=rw,go=r "$<" "$@"

%.1: %.1${RST_SUFFIX}
	$(RST2MAN) "$<" > "$@".tmp
	cat debian/manpage_encoding_declaration.UTF-8 "$@".tmp > "$@"


.PHONY: get-packaged-orig-source
get-packaged-orig-source:
	$(uscan-download-source) --download-current-version

# Policy §4.9 strongly recommends the ‘get-orig-source’ target:
# “This target is optional, but providing it if possible is a good idea.”
#
# This target is an anomaly: per Policy §4.9, it fetches the *latest*
# upstream source, regardless of this package's version. To fetch the
# upstream source corresponding to this package's *declared* version
# in ‘debian/changelog’, use ‘get-packaged-orig-source’ instead.
.PHONY: get-orig-source
get-orig-source:
	$(uscan-download-source)

get-orig-source get-packaged-orig-source: http_proxy =
get-orig-source get-packaged-orig-source: makefile_dir = $(abspath $(dir $(firstword ${MAKEFILE_LIST})))
get-orig-source get-packaged-orig-source: package_dir = $(abspath $(dir ${makefile_dir}))

define uscan-download-source
	uscan --noconf --verbose \
	    --force-download \
	    --rename \
	    --destdir=$(CURDIR) \
	    --check-dirname-level=0 ${package_dir}
endef # uscan-download-source


override_dh_auto_build: remove-bundled-libraries
override_dh_auto_build:
	dh_auto_build --buildsystem=pybuild

# Upstream test suite doesn't currently run in our build environment.
override_dh_auto_test:

override_dh_auto_install:
	dh_auto_install --buildsystem=pybuild
	$(RM) $(addprefix ${package_working_root}/${PYTHON3_PACKAGE_NAME}/, \
	    usr/bin/python-coverage)

export PYBUILD_AFTER_INSTALL = \
	$(INSTALL) --mode=u=rwx,go=rx --directory \
	    "${package_install_resources_root}" ; \
	$(INSTALL) --mode=u=rwx,go=rx --directory \
	    "${package_install_resources_root}/${htmlfiles_dirname}" ; \
	$(INSTALL) --mode=u=rw,go=r "${HTMLFILES_DIR}"/* \
	    "${package_install_resources_root}/${htmlfiles_dirname}" ; \
	dh_link \
	    --package={package} \
	    "/${RESOURCES_DIR}/${htmlfiles_dirname}" \
	    usr/lib/python{version}/dist-packages/${HTMLFILES_DIR}

override_dh_installchangelogs:
	dh_installchangelogs CHANGES.rst

override_dh_installman: manpage-aliases
	dh_installman

override_dh_auto_clean:
	dh_auto_clean
	$(RM) -r ${GENERATED_FILES}

override_dh_auto_build:
	dh_auto_build
	$(SPHINX) ${SPHINX_OPTS} -bhtml ${DOCUMENTATION_DIR}/ \
		${DOCUMENTATION_BUILD_HTML_DIR}/


# Local variables:
# mode: makefile
# coding: utf-8
# End:
# vim: filetype=make fileencoding=utf-8 :