#!/usr/bin/make -f export XDG_RUNTIME_DIR=/tmp PY3VERS := $(shell py3versions -v -r debian/control) DEFPY3 := $(shell py3versions -v -d) PY_PLATFORM := $(shell python -c 'from distutils.util import get_platform; print get_platform()') pd := python-matplotlib-doc p3 := python3-matplotlib pdata := python-matplotlib-data p3dbg := python3-matplotlib-dbg DEB_BUILD_OPTIONS += --no-parallel # build build: build-arch build-indep build-indep: build-indep-stamp build-indep-stamp: build-arch-stamp dh_testdir # build the doc MPLCONFIGDIR=. MATPLOTLIBDATA=$(CURDIR)/lib/matplotlib/mpl-data/ PYTHONPATH=$(CURDIR)/build/lib.$(PY_PLATFORM)-$(DEFPY3) $(MAKE) -C doc html touch $@ build-arch: build-arch-stamp build-arch-stamp: dh_testdir cp -f debian/setup.cfg setup.cfg for v in $(PY3VERS); do \ python$$v ./setup.py build $(PY_BUILD_FLAGS) ; \ python$$v-dbg ./setup.py build $(PY_BUILD_FLAGS) ; \ done ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) echo "backend : TkAgg" > matplotlibrc -for v in $(PY3VERS); do \ LIB=$$(python$$v -c "from distutils.command.build import build ; from distutils.core import Distribution ; b = build(Distribution()) ; b.finalize_options() ; print(b.build_platlib)") ; \ PYTHONPATH=$$LIB MATPLOTLIBDATA=$(CURDIR)/lib/matplotlib/mpl-data/ MPLCONFIGDIR=. xvfb-run -a python$$v tests.py --no-network --verbose --full-trace ; \ LIB=$$(python$$v-dbg -c "from distutils.command.build import build ; from distutils.core import Distribution ; b = build(Distribution()) ; b.finalize_options() ; print(b.build_platlib)") ; \ PYTHONPATH=$$LIB MATPLOTLIBDATA=$(CURDIR)/lib/matplotlib/mpl-data/ MPLCONFIGDIR=. xvfb-run -a python$$v-dbg tests.py --no-network --verbose --full-trace ; \ done rm -f matplotlibrc endif touch $@ # clean clean: dh_testdir dh_testroot for i in $(PY3VERS); do \ python$$i ./setup.py clean --all; \ python$$i-dbg ./setup.py clean --all; \ done # clean the doc # workaround for cleaning the doc ("doc/make.py clean" only runs useless svn-clean) rm -f doc/api/_as_gen/* #rm -rf doc/build doc/examples #rm -f doc/mpl_examples/api/*.png #rm -f doc/mpl_examples/pylab_examples/*.png #rm -f doc/mpl_examples/pylab_examples/*.pdf #rm -f doc/mpl_examples/units/*.png #rm -f doc/pyplots/tex_demo.png #rm -f doc/_static/matplotlibrc #rm -f doc/_templates/gallery.html find . -name '*.pyc' -exec rm {} \; dh_clean lib/matplotlib/mpl-data/matplotlib.conf \ lib/matplotlib/mpl-data/matplotlibrc setup.cfg rm -rf build rm -rf lib/matplotlib.egg-info # restore "pristine" doc/matplotlibrc sed -i '/^examples\./d' $(CURDIR)/doc/matplotlibrc ## remove doc symlinks to examples directory #rm -rf doc/mpl_examples #rm -rf doc/mpl_toolkits/axes_grid/examples # build twice in a row rm -rf doc/tex.cache/ fontList.py3k.cache result_images/ test_cache/ tex.cache/ examples/pylab_examples/test.xls rm -rf doc/finance.cache/ doc/fontList.cache fontList.cache # remove embedded CXX to prevent it to be picked up rm -rf extern/CXX/ # install install-arch: build-arch install-arch-stamp dh_testdir dh_testroot dh_numpy3 install-arch-stamp: build-arch-stamp dh_testdir dh_testroot for v in $(PY3VERS) ; do \ python$$v ./setup.py install_lib --install-dir $(CURDIR)/debian/$(p3)/usr/lib/python3/dist-packages/ ; \ python$$v ./setup.py install_egg_info --install-dir $(CURDIR)/debian/$(p3)/usr/lib/python3/dist-packages/ ; \ python$$v-dbg ./setup.py install --root=$(CURDIR)/debian/$(p3dbg) --install-layout=deb ; \ done find debian/$(p3dbg) ! -type d ! -name '*.so' | xargs rm -f find debian/$(p3dbg) -depth -empty -exec rmdir {} \; find debian/ -name '*.pyc' | xargs rm -rf find debian/ -name '__pycache__' | xargs rm -rf # don't install baseline_images, needed for tests only, but huge # leave the dir tho, as matplotlib/tests/__init__.py checks for it for v in $(PY3VERS) ; do \ rm -rf $(CURDIR)/debian/$(p3)/usr/lib/python3/dist-packages/matplotlib/tests/baseline_images/* ; \ mkdir -p $(CURDIR)/debian/$(p3)/usr/lib/python3/dist-packages/matplotlib/tests/baseline_images/ ; \ touch $(CURDIR)/debian/$(p3)/usr/lib/python3/dist-packages/matplotlib/tests/baseline_images/.keep ; \ done rm -rf $(CURDIR)/debian/$(p3)/usr/lib/python3/dist-packages/matplotlib/mpl-data/ rm -rf $(CURDIR)/debian/$(p3)/usr/lib/python3/dist-packages/matplotlib/backends/Matplotlib.nib/ rm -rf $(CURDIR)/debian/$(p3dbg)/usr/lib/python3/dist-packages/matplotlib/mpl-data/ rm -rf $(CURDIR)/debian/$(p3dbg)/usr/lib/python3/dist-packages/matplotlib/backends/Matplotlib.nib/ -rm $(CURDIR)/debian/$(p3)/usr/lib/python3/dist-packages/matplotlib/backends/web_backend/jquery/js/jquery-1.7.1.min.js -rm $(CURDIR)/debian/$(p3)/usr/lib/python3/dist-packages/matplotlib/backends/web_backend/jquery/js/jquery-ui.min.js -rm $(CURDIR)/debian/$(p3)/usr/lib/python3/dist-packages/matplotlib/backends/web_backend/jquery/css/themes/base/jquery-ui.min.css # replace minified jquery with packaged version and hope it works for i in $(PY3VERS); do \ dh_link -ppython3-matplotlib usr/share/javascript/jquery/jquery.min.js \ usr/lib/python3/dist-packages/matplotlib/backends/web_backend/jquery/js/jquery-1.7.1.min.js; \ dh_link -ppython3-matplotlib usr/share/javascript/jquery-ui/jquery-ui.min.js \ usr/lib/python3/dist-packages/matplotlib/backends/web_backend/jquery/js/jquery-ui.min.js; \ dh_link -ppython3-matplotlib usr/share/javascript/jquery-ui/css/smoothness/jquery-ui.min.css \ usr/lib/python3/dist-packages/matplotlib/backends/web_backend/jquery/css/themes/base/jquery-ui.min.css; \ done touch $@ install-indep: build-indep dh_testdir -i dh_testroot -i dh_prep dh_install -p $(pdata) rm -fr $(CURDIR)/debian/$(pdata)/usr/share/matplotlib/mpl-data/fonts/ttf/Vera*.ttf rm -fr $(CURDIR)/debian/$(pdata)/usr/share/matplotlib/mpl-data/fonts/ttf/*.TXT rm -fr $(CURDIR)/debian/$(pdata)/usr/share/matplotlib/mpl-data/fonts/ttf/local.conf rm -fr $(CURDIR)/debian/$(pdata)/usr/share/matplotlib/mpl-data/fonts/pdfcorefonts/readme.txt chmod 644 $(CURDIR)/debian/$(pdata)/usr/share/matplotlib/mpl-data/images/*.svg # binary binary-indep: build-indep install-indep dh_testdir -i dh_testroot -i dh_installchangelogs dh_installdocs -p$(pd) -i doc/build/html/ tutorials/ # remove pyc file from doc dh_installexamples -p$(pd) -i examples/* dh_compress -i -Xexamples -Xexamples/data -Xpdf -X.js -X.py -Xobjects.inv -X.html dh_link -i dh_sphinxdoc find $(CURDIR)/debian/$(pd)/ -type f -name '*.pyc' | xargs --no-run-if-empty rm dh_lintian -i dh_fixperms -i dh_installdeb -i dh_gencontrol -i dh_md5sums -i dh_builddeb -i binary-arch: build-arch install-arch dh_testdir -a dh_testroot -a dh_installchangelogs dh_installdocs -p$(p3) -a README.rst # make python scripts starting with '#!' executable for i in `find debian -mindepth 2 -type f ! -perm 755`; do \ if head -1 $$i | grep -q '^#!'; then \ chmod 755 $$i; \ echo "made executable: $$i"; \ fi; \ done dh_python3 -a dh_link -a dh_lintian -a dh_strip -a -p$(p3) --dbg-package=$(p3dbg) dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install