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
|
#!/usr/bin/make -f
export DH_VERBOSE=1
# The magic debhelper rule:
%:
dh $@ --buildsystem cmake --with python2,python3
include /usr/share/mpi-default-dev/debian_defaults
MPI:=$(ARCH_DEFAULT_MPI_IMPL)
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
TMPDIR=$(CURDIR)/debian/tmp
LIBDIR=/usr/lib/${DEB_HOST_MULTIARCH}
PY2:=$(shell pyversions -d)
PY3:=$(shell py3versions -d)m
CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS) -fPIC
BUILD_DIRS:= debian/build-mpi-py2 debian/build-serial-py2 debian/build-mpi-py3 debian/build-serial-py3
CMAKE_FLAGS:= -DXDMF_SYSTEM_ZLIB=ON -DXDMF_SYSTEM_LIBXML2=ON -DXDMF_USE_BZIP2=ON -DXDMF_USE_GZIP=ON \
-DXDMF_SYSTEM_HDF5=ON \
-DXDMF_USE_RPATH=OFF \
-DXDMF_BUILD_UTILS=ON \
-DCMAKE_INSTALL_PREFIX=/usr \
-DXDMF_WRAP_PYTHON=ON \
-DXDMF_REGENERATE_WRAPPERS=ON \
-DGZSTREAM_LIBRARY=$(LIBDIR)/libgzstream.so \
-DBUILD_SHARED_LIBS=TRUE
override_dh_auto_configure:
mkdir -p $(BUILD_DIRS)
(cd debian/build-serial-py2 && \
HDF5_ROOT=$(LIBDIR)/hdf5/serial cmake ../.. \
$(CMAKE_FLAGS) \
-DPYTHON_INCLUDE_PATH=/usr/include/$(PY2) \
-DPYTHON_LIBRARY=$(LIBDIR)/lib$(PY2).so \
-DXDMF_BUILD_MPI=OFF -DXDMF_SYSTEM_HDF5_IS_PARALLEL=OFF \
-DHDF5_ROOT=$(LIBDIR)/hdf5/serial )
(cd debian/build-serial-py3 && \
HDF5_ROOT=$(LIBDIR)/hdf5/serial cmake ../.. \
$(CMAKE_FLAGS) \
-DPYTHON_INCLUDE_PATH=/usr/include/$(PY3) \
-DPYTHON_LIBRARY=$(LIBDIR)/lib$(PY3).so \
-DXDMF_BUILD_MPI=OFF -DXDMF_SYSTEM_HDF5_IS_PARALLEL=OFF \
-DHDF5_ROOT=$(LIBDIR)/hdf5/serial )
(cd debian/build-mpi-py2 && \
HDF5_ROOT=$(LIBDIR)/hdf5/$(MPI) cmake ../.. \
$(CMAKE_FLAGS) \
-DPYTHON_INCLUDE_PATH=/usr/include/$(PY2) \
-DPYTHON_LIBRARY=$(LIBDIR)/lib$(PY2).so \
-DXDMF_BUILD_MPI=ON -DXDMF_SYSTEM_HDF5_IS_PARALLEL=ON \
-DHDF5_ROOT=$(LIBDIR)/hdf5/$(MPI) )
(cd debian/build-mpi-py3 && \
HDF5_ROOT=$(LIBDIR)/hdf5/$(MPI) cmake ../.. \
$(CMAKE_FLAGS) \
-DPYTHON_INCLUDE_PATH=/usr/include/$(PY3) \
-DPYTHON_LIBRARY=$(LIBDIR)/lib$(PY3).so \
-DXDMF_BUILD_MPI=ON -DXDMF_SYSTEM_HDF5_IS_PARALLEL=ON \
-DHDF5_ROOT=$(LIBDIR)/hdf5/$(MPI) )
override_dh_auto_build:
for p in $(BUILD_DIRS) ; do \
$(MAKE) -C $$p ; done
override_dh_auto_test:
@echo "Ignore; no tests present"
override_dh_auto_install:
# should not be necessary; USE_RPATH=OFF not working ?
for p in $(BUILD_DIRS) ; do \
find $$p -name '*.so' -exec chrpath -d {} \; ; done
# Assemble something workable from the 4 install dirs.
$(MAKE) -C debian/build-mpi-py3 install DESTDIR=$(TMPDIR)
# Add the (non-default) serial cases into a NoMpi subdirectory
mkdir -p $(TMPDIR)/usr/lib/$(PY3)/xdmf/NoMpi $(TMPDIR)/usr/lib/$(PY2)/xdmf/NoMpi
# standard shared libs into {serial,$MPI} directories as elswehere
mkdir -p $(TMPDIR)/$(LIBDIR)/xdmf/serial $(TMPDIR)/$(LIBDIR)/xdmf/$(MPI)
mv $(TMPDIR)/usr/lib/lib* $(TMPDIR)/$(LIBDIR)/xdmf/$(MPI)
cp debian/build-serial-py3/lib*.so debian/build-serial-py3/lib*.a $(TMPDIR)/$(LIBDIR)/xdmf/serial
mv $(TMPDIR)/usr/lib/python/* $(TMPDIR)/usr/lib/$(PY3)/xdmf
cp $(TMPDIR)/usr/lib/$(PY3)/xdmf/*.py $(TMPDIR)/usr/lib/$(PY2)/xdmf
cp debian/build-mpi-py2/_*.so $(TMPDIR)/usr/lib/$(PY2)/xdmf
cp debian/build-serial-py2/_*.so $(TMPDIR)/usr/lib/$(PY2)/xdmf/NoMpi
cp debian/build-serial-py3/_*.so $(TMPDIR)/usr/lib/$(PY3)/xdmf/NoMpi
#mv $(TMPDIR)/usr/lib/libXdmf.so.3 $(TMPDIR)/$(LIBDIR)/libXdmf.so.3.0
#mkdir -p $(TMPDIR)/$(LIBDIR)/cmake
#mv $(TMPDIR)/usr/lib/XdmfCMake $(TMPDIR)/$(LIBDIR)/cmake
#dh_link -p libxdmf-dev $(LIBDIR)/libXdmf.so.3.0 $(LIBDIR)/libXdmf.so
#dh_link -p libxdmf2 $(LIBDIR)/libXdmf.so.3.0 $(LIBDIR)/libXdmf.so.3
## https://bugs.launchpad.net/ubuntu/+source/xdmf/+bug/1154071
#sed -e 's%@ARCH@%$(DEB_HOST_MULTIARCH)%' < debian/cmake.patch.in > debian/cmake.patch
#(cd $(TMPDIR)/$(LIBDIR)/cmake/XdmfCMake && patch < ../../../../../../cmake.patch )
mkdir -p $(TMPDIR)/usr/lib/$(PY2)/dist-packages $(TMPDIR)/usr/lib/$(PY3)/dist-packages
mv $(TMPDIR)/usr/lib/$(PY2)/xdmf $(TMPDIR)/usr/lib/$(PY2)/dist-packages/xdmf
mv $(TMPDIR)/usr/lib/$(PY3)/xdmf $(TMPDIR)/usr/lib/$(PY3)/dist-packages/xdmf
touch $(TMPDIR)/usr/lib/$(PY2)/dist-packages/xdmf/__init__.py
touch $(TMPDIR)/usr/lib/$(PY3)/dist-packages/xdmf/__init__.py
override_dh_auto_fixperms:
dh_auto_fixperms
find debian/libxdmf-dev -type f -exec chmod 644 {} \;
override_dh_auto_clean:
dh_auto_clean
rm -f debian/cmake.patch libsrc/gzstream
-find $(CURDIR) -name CVS -exec rm -rf {} \;
rm -rf $(BUILD_DIRS)
|