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
|
#!/usr/bin/make -f
# -*- makefile -*-
PY3 = $(shell py3versions -vd)
PY3VERS = $(shell py3versions -vr)
LAST_CHANGE = $(shell dpkg-parsechangelog -S Date)
BUILD_DATE = $(shell LC_ALL=C date -u "+%B %d, %Y" -d "$(LAST_CHANGE)")
# build-time tests should be more reliable with these settings
# see https://github.com/mpi4py/setup-mpi/blob/master/setup-mpi.sh#L65
export OMPI_MCA_plm=isolated
export OMPI_MCA_rmaps_base_oversubscribe=true
export OMPI_MCA_btl_base_warn_component_unused=false
export OMPI_MCA_btl_vader_single_copy_mechanism=none
# Specify a specific version of MPI to use in the build, otherwise
# just use the default.
# MPI=.openmpi
export http_proxy=http://127.0.0.1:9/
export https_proxy=http://127.0.0.1:9/
# disable build tests for these arches:
# x32 consistently times out on tests
NO_TEST_ARCH_LIST = x32
empty :=
space := $(empty)$(empty)
# run tests, or not
RUNTEST=yes
ifneq (,$(findstring $(space)$(DEB_HOST_ARCH)$(space), $(space)$(NO_TEST_ARCH_LIST)$(space)))
RUNTEST=no
endif
ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
RUNTEST=no
endif
# hurd fails a couple of tests
# but hell, hurd needs all the help it can get, so let it pass
ARCH_IGNORE_FAILED_TESTS = hurd-i386
# normally, do not ignore test failures
IGNORE_FAILED_TESTS=/bin/false
ifneq (,$(findstring $(space)$(DEB_HOST_ARCH)$(space), $(space)$(ARCH_IGNORE_FAILED_TESTS)$(space)))
IGNORE_FAILED_TESTS=/bin/true
endif
%:
dh $@ --with python3,sphinxdoc --buildsystem pybuild
cythonize:
@echo "D: removing previously generated by Cython sources"
find -iname *.c | xargs grep -l 'Generated by Cython' | xargs -r rm
python3 setup.py build_src
override_dh_autoreconf:
dh_autoreconf debian/rules -- cythonize
override_dh_auto_build-arch:
dh_auto_build $@ -- \
--build-args "--mpicc=/usr/bin/mpicc$(MPI) --mpicxx=/usr/bin/mpicxx$(MPI)"
override_dh_auto_build-indep: override_dh_auto_build-arch
PYTHONPATH=`pybuild --print "{build_dir}"` \
make -C docs/source/usrman/ html man info latexpdf SPHINXOPTS="-D today=\"$(BUILD_DATE)\""
override_dh_auto_install:
dh_auto_install
: # Remove python-mpi binaries
find $(CURDIR)/debian/tmp -name python-mpi -delete
find $(CURDIR)/debian/tmp -type d -empty -delete
override_dh_install-arch:
dh_install
: # create symlinks for .h files
: # Can have python$$v symlink pointing to python3.?m or python3.?mu
: # see #700995 for more details. So first look where it points to
: # and use that directory
set -e; for v in $(PY3VERS); do \
ABITAG=`python$$v -c "import sys; print(sys.abiflags)"`; \
[ -d $(CURDIR)/debian/python3-mpi4py/usr/include/python$$v$$ABITAG ] || \
mkdir -p $(CURDIR)/debian/python3-mpi4py/usr/include/python$$v$$ABITAG; \
dh_link -ppython3-mpi4py usr/lib/python3/dist-packages/mpi4py/include/mpi4py usr/include/python$$v$$ABITAG/mpi4py; \
done
override_dh_auto_test:
set -e; \
if [ "$(RUNTEST)" = "no" ]; then \
echo Build tests have been disabled; \
else \
for vv in $(PY3VERS); do \
echo "I: testing using python$$vv"; \
echo "I: running tests with single process"; \
PYTHONPATH=`pybuild -p $$vv --print "{build_dir}"` \
/usr/bin/python$$vv $(CURDIR)/test/runtests.py -v || $(IGNORE_FAILED_TESTS); \
echo "I: running tests with MPI (5 processes)"; \
PYTHONPATH=`pybuild -p $$vv --print "{build_dir}"` \
mpirun -n 5 /usr/bin/python$$vv $(CURDIR)/test/runtests.py -fv || $(IGNORE_FAILED_TESTS); \
done; \
fi
override_dh_sphinxdoc:
ifeq (,$(findstring nodoc,$(DEB_BUILD_OPTIONS)))
dh_sphinxdoc -ppython-mpi4py-doc
endif
override_dh_installchangelogs:
dh_installchangelogs CHANGES.rst
## Immediately useable documentation
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 -Xobjects.inv -X.pdf
override_dh_dwz:
echo "dh_dwz is currently deactivated since it generates an error: \".debug_line reference above end of section\""
override_dh_auto_clean:
dh_auto_clean $@
rm -rf `find -name build -type d`
rm -rf `find -name _build -type d`
rm -rf docs/source/usrman/reference
: # Remove Cython generated files
rm -f src/mpi4py.MPE.c src/mpi4py.MPI.c src/include/mpi4py/mpi4py.MPI_api.h
get-orig-dev-source:
cd ../mpi4py-hg/; \
uver=`sed -ne "/__version__/s,.*= *'\(.*\)' *$$,\1,gp" src/__init__.py`; \
tarball=../tarballs/mpi4py_$$uver+hg`date +"20%y%m%d"`.orig.tar.gz; \
echo "I: Generating $$tarball"; \
hg archive --exclude 'misc' -t tgz $$tarball;
|