| 12
 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
 
 | #!/usr/bin/make -f
export PYTHONWARNINGS=d
export PYTHONHASHSEED=random
-include /usr/share/python/python.mk
scripts = \
	rst-buildhtml \
	rst2html \
	rst2html4 \
	rst2html5 \
	rst2latex \
	rst2man \
	rst2odt \
	rst2odt_prepstyles \
	rst2pseudoxml \
	rst2s5 \
	rst2xetex \
	rst2xml \
	rstpep2html \
pre_localize_css = 's,href="(([.][.]/)*)docutils/.*/([^/]+[.]css)",href="$$1css/$$3",g;'
pre_strip_images1 = 's,<img src="http://[^"]+" alt="([^"]*)"[^>]*>,$$1,g;'
pre_strip_images2 = 's,<img alt="([^"]*)"[^>]*\bsrc="http://[^"]+"[^>]*>,$$1,g;'
pre_strip_images = $(pre_strip_images1)$(pre_strip_images2)
python_all = pyversions -r | tr ' ' '\n' | xargs -t -I {} env {}
python3_all = $(patsubst py%,py3%,$(python_all))
build build-indep: build-stamp
build-stamp:
	dh_testdir
	# Remove convenience copy of the roman module
	rm -f docutils/utils/roman.py
	# Check if move-data-to-usr-share.diff is up-to-date
	if grep -r __file__ --include='*.py' docutils/ | grep -vw _datadir; then \
		echo "Error: Some uses of __file__ are not guarded by _datadir()." \
			"Is move-data-to-usr-share.diff up-to-date?"; \
		exit 1; \
	fi
	# Build modules for Python 2.X
	python setup.py build --build-lib=build/py2/
ifeq "$(filter nocheck,$(DEB_BUILD_OPTIONS))" ""
	# Run test suite for Python 2.X:
	$(python_all) test/alltests.py --verbose
	# Run rst-buildhtml tests:
	PYTHONPATH=$(CURDIR)/build/py2 python tools/test/test_buildhtml.py --verbose
endif
	# Build modules for Python 3.X
	python3 setup.py build --build-lib=build/py3/
ifeq "$(filter nocheck,$(DEB_BUILD_OPTIONS))" ""
	# Run test suite for Python 3.X:
	$(python3_all) test3/alltests.py --verbose
endif
	# Build documentation:
	PYTHONPATH=. python tools/buildhtml.py \
		--local --link-stylesheet --traceback \
		.
	PYTHONPATH=. python tools/buildhtml.py \
		--link-stylesheet --traceback \
		docs
	( ls *.html && find docs/ -name '*.html' ) \
	| xargs perl -0777 -p -i -e $(pre_localize_css)$(pre_strip_images)
	touch build-stamp
clean:
	dh_testdir
	rm -f build-stamp
	rm -rf build/
	find -name '*.py[co]' -delete
	rm -f *.html
	find docs -name '*.html' -not -name 'quickref.html' -delete
	rm -rf docutils.egg-info
	cd test && rm -rf alltests.out record.txt functional/output/*/ functional/output/[a-z]*.*
	rm -rf test3/
	dh_clean
install: build
	dh_testdir
	dh_testroot
	dh_installdirs
	mkdir -p debian/tmp
	python setup.py build --build-lib=build/py2/ install \
	    --root debian/tmp --no-compile $(py_setup_install_args) \
	    --install-scripts=/usr/share/docutils/scripts/python2/
	python3 setup.py build --build-lib=build/py3/ install \
	    --root debian/tmp --no-compile $(py_setup_install_args) \
	    --install-scripts=/usr/share/docutils/scripts/python3/
	# Move data files outside dist-packages:
	mkdir -p debian/tmp/usr/share/
	cp -rlf debian/tmp/usr/lib/python2.*/*-packages/docutils debian/tmp/usr/share/
	find debian/tmp/usr/lib/python[23]*/*-packages/docutils/ -type f '!' -name '*.py' -delete
	find debian/tmp/usr/share/docutils/ \( -name '*.py' -o -name '*.py[co]' \) '!' -path '*/scripts/*' -delete
	find debian/tmp/ -type d -empty -delete
	sed -i -e 's/^\(_debian_package\) = /\1 = 1/' debian/tmp/usr/lib/python[23]*/*-packages/docutils/__init__.py
	# Give scripts canonical names
	mkdir -p debian/tmp/usr/share/docutils/scripts/python2/
	set -ex && for python in python2 python3; do \
		dir=debian/tmp/usr/share/docutils/scripts/$$python/; \
		for exe in $(filter-out rst-buildhtml,$(scripts)); do \
			mv $$dir/$$exe.py $$dir/$$exe; \
		done; \
		install tools/buildhtml.py $$dir/rst-buildhtml; \
		sed -i -e "1 s,^#!.*,#!/usr/bin/$${python%2}," $$dir/rst-buildhtml; \
	done
	: # Make the man pages (we want to do this *after* renaming all the
	: # tools, because their executable name goes into the --help output)
	mkdir -p debian/tmp/man/
	set -ex && for exe in $(filter-out rst2odt_prepstyles,$(scripts)); do \
		export PYTHONPATH=debian/tmp/usr/lib/python2.7/dist-packages; \
		cp debian/$$exe.txt debian/tmp/man/$$exe.txt; \
		python debian/tmp/usr/share/docutils/scripts/python2/$$exe --help | \
			sed \
				-e '1 s/^Usage$$/Synopsis/' \
				-e 's/^=/====/' \
				-e '3 s/^  //' \
				-e '4 a Description' \
				-e '4 a ===========' \
			>> debian/tmp/man/$$exe.txt;\
		python tools/rst2man.py debian/tmp/man/$$exe.txt \
			debian/tmp/man/$$exe.1; \
	done
	PYTHONPATH=. python tools/rst2man.py debian/rst2odt_prepstyles.txt \
		debian/tmp/man/rst2odt_prepstyles.1
	sed -i -e 's,"\(docutils/writers/\),"/usr/share/\1,g' debian/tmp/man/*
# Build architecture-independent files here.
binary-indep: build install
	dh_testdir
	dh_testroot
	dh_installdocs -XCOPYING
	mkdir -p debian/docutils-doc/usr/share/doc/python-docutils/
	cd debian/docutils-doc/usr/share/doc/python-docutils/ && ln -sf ../docutils-doc/*.html .
	dh_install -p docutils-common -X /scripts/
	dh_install -N docutils-common
	dh_lintian
	dh_python2 -p python-docutils
	dh_python3 -p python3-docutils
	dh_installexamples
	dh_installcatalogs
	dh_installxmlcatalogs
	dh_installman
	dh_installchangelogs -XHISTORY
	dh_link
	dh_compress -p docutils-doc -X.dtd -X.html -X.txt
	dh_compress -N docutils-doc
	dh_fixperms
	dh_installdeb
	dh_gencontrol
	dh_md5sums
	dh_builddeb
build-arch binary-arch:
# We have nothing to do by default.
binary: binary-indep binary-arch
.PHONY: build build-arch build-indep clean binary-indep binary-arch binary install configure
 |