#!/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,([^]*>,$$1,g;' pre_strip_images2 = 's,([^]*\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