#!/usr/bin/make -f # -*- makefile -*- ifeq (,$(findstring get-orig-source, $(MAKECMDGOALS))) export http_proxy=http://127.0.0.1:9/ endif LAST_CHANGE=$(shell dpkg-parsechangelog -S Date) BUILD_DATE=$(shell LC_ALL=C date -u "+%B %d, %Y" -d "$(LAST_CHANGE)") SPHINXOPTS = -D html_last_updated_fmt="$(BUILD_DATE)" PACKAGE_NAME = python-brian PACKAGE_ROOT_DIR = debian/${PACKAGE_NAME} INSTALL_PATH = $(CURDIR)/debian/tmp # default Python PYTHON=$(shell pyversions -d) PYTHON_VERSION=$(shell pyversions -d -v) # override HOME (setfor weave) and matplotlib config directory # to allow building in chroots with read-only HOME export HOME=$(CURDIR)/build export MPLCONFIGDIR=$(HOME) # Brian allows to install without extensions. We want to assure that # they are there export BRIAN_SETUP_FAIL_ON_ERROR=1 %: dh $@ --with python2 override_dh_auto_test: : # Do not test just after build, lets install and then test override_dh_auto_install: dh_auto_install echo "backend : Agg" >| $(MPLCONFIGDIR)/matplotlibrc : # Only now lets build docs ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS))) mkdir -p docs_sphinx/_static # to avoid crashes with older sphinx (e.g. on jaunty) export PYTHONPATH=$$(/bin/ls -d $(INSTALL_PATH)/usr/lib/$(PYTHON)/*-packages); \ { cd docs_sphinx; sphinx-build -a -E $(SPHINXOPTS) -b html . ../docs; } -rmdir docs_sphinx/_static # remove directory possibly created above rm docs/_static/jquery.js rm -r docs/.doctrees : # objects inventory is of no use for the package rm docs/objects.inv # : # fresh PDF # { cd docs_sphinx/_latexbuild; make clean; make; } endif # All tests later on # cd build to prevent use of local/not-built source tree ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) set -e; cd build; \ for PYTHON in $(shell pyversions -r); do \ echo "I: Running Brian unittests using $$PYTHON"; \ PYTHONPATH=$$(/bin/ls -d $(INSTALL_PATH)/usr/lib/$$PYTHON/*-packages) \ $$PYTHON /usr/bin/nosetests -v -s -P --exclude='(experimental|modelfitting)' brian; \ done endif : # Everything is relevant for python-brian pkg -- moving accordingly rm -rf debian/python-brian mv debian/tmp debian/python-brian ## move binary libraries into -lib override_dh_install: dh_install : # Move platform-specific libraries into -lib set -e; for lib in $$(find $(PACKAGE_ROOT_DIR)/usr -name '*.so'); do \ sdir=$$(dirname $$lib) ; \ tdir=$(PACKAGE_ROOT_DIR)-lib/$${sdir#*$(PACKAGE_NAME)/} ; \ mkdir -p $$tdir ; \ echo "Moving '$$lib' into '$$tdir'." ; \ mv $$lib $$tdir ; \ done if [ -x /usr/bin/dh_numpy ]; then dh_numpy -ppython-brian-lib; fi ## immediately useable documentation ## and exemplar data (they are small excerpts anyway) override_dh_compress: dh_compress -X.py -X.html -X.css -X.jpg -X.txt -X.js -X.json -X.rtc -X.par -X.bin ## Some custom rules test_examples: install set -e; cd examples; \ for f in `find -iname *.py`; do echo -n "$$f: "; \ PYTHONPATH=$$(/bin/ls -d $(CURDIR)/build/lib.*-$(PYTHON_VERSION)) MPLCONFIGDIR=../build \ python $$f >& $$f.output && echo "Ok" || echo "Failed"; done