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 136 137 138 139 140 141 142 143 144
|
#! /usr/bin/make -f
#export DH_VERBOSE=1
include /usr/share/dpkg/architecture.mk
include /usr/share/mpi-default-dev/debian_defaults
DESTDIR = $(CURDIR)/debian/tmp
UPSTREAM_VERSION = $(shell dpkg-parsechangelog | awk '/^Version:/ { sub("-[^-]*$$", "", $$2); print $$2}')
UPSTREAM_VERSION_ABI = $(shell echo $(UPSTREAM_VERSION) | sed -e 's/[\.\+]dfsg.*$$//' | awk 'BEGIN { FS="."}; {print $$1"."$$2 }')
%:
dh $@ --buildsystem=cmake
PY3DEF=$(shell py3versions -dv)
# many libvtk*.so files link to the specific python version
# so we can only support the default python
PY3VERS=$(PY3DEF)
PY3RANGE=$(shell echo $(PY3DEF) | awk 'BEGIN { FS="." }; { print $$1 "." $$2 "-" $$1 "." $$2 + 1 }')
# The Qt Svg component library is not detected automatically
# but is needed for labels and icons in the paraview GUI.
# QT_SVG_DEB identifies the debian binary package for the library.
QT_SVG_DEB = libqt6svg6
QT_SVG_VER = $(shell dpkg-query -f '$${Version}' -W $(QT_SVG_DEB))
QT_SVG_DEPENDS = "$(QT_SVG_DEB) (>= $(QT_SVG_VER)~)"
export LD_LIBRARY_PATH+=:$(CURDIR)/debian/paraview/usr/lib/paraview
CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS)
CFLAGS:=$(shell dpkg-buildflags --get CFLAGS) $(CPPFLAGS) -Wall -pedantic
CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS) $(CPPFLAGS) -O0
LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS) -Wl,--as-needed
# libatomic is not automatically linked by the tool chain even when needed
ifneq (,$(filter $(DEB_HOST_ARCH), armel m68k mips mipsel powerpc sh4))
export DEB_CXXFLAGS_MAINT_APPEND += -Wl,--no-as-needed -latomic -Wl,--as-needed
export DEB_LDFLAGS_MAINT_APPEND += -Wl,--no-as-needed -latomic -Wl,--as-needed
endif
# Investigate: Pixie Needs ADIOS1
# -DPARAVIEW_PLUGIN_ENABLE_AdiosReaderPixie=ON
# -DPARAVIEW_PLUGIN_ENABLE_AdiosReaderStaging=ON
ifneq (,$(filter $(DEB_HOST_ARCH), mips64el))
USE_XMDF3=OFF
else
USE_XMDF3=ON
endif
# Explicit settings of MPI_* is required see
# http://www.vtk.org/Bug/view.php?id=12572
extra_flags += -Wno-dev \
-DBUILD_TESTING=OFF \
-DCMAKE_C_FLAGS="${CFLAGS}" -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_BUILD_TYPE=DEBUG \
-DPARAVIEW_BUILD_DEVELOPER_DOCUMENTATION=ON \
-DCMAKE_INSTALL_RPATH=/usr/lib/paraview \
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \
-DCMAKE_SKIP_RPATH=OFF \
-DPARAVIEW_ENABLE_FFMPEG=ON \
-DPARAVIEW_ENABLE_WEB=ON \
-DPARAVIEW_BUILD_SHARED_LIBS=ON \
-DVTK_SOURCE_DIR=$(CURDIR)/VTK \
-DHDF5_ROOT=/usr/lib/$(DEB_HOST_MULTIARCH)/hdf5/$(ARCH_DEFAULT_MPI_IMPL) \
-DPARAVIEW_PYTHON_SITE_PACKAGES_SUFFIX="lib/python3/dist-packages" \
-DVTK_MODULE_USE_EXTERNAL_VTK_mpi4py=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_theora=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_lz4=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_lzma=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_utf8=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_glew=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps=ON \
-DPARAVIEW_USE_MPI=ON \
-DPARAVIEW_USE_PYTHON=ON \
-DPARAVIEW_ENABLE_VISITBRIDGE=OFF \
-DPARAVIEW_ENABLE_GDAL=ON \
-DPARAVIEW_ENABLE_XDMF3=$(USE_XMDF3) \
-DPARAVIEW_ENABLE_MOTIONFX=ON \
-DPARAVIEW_PLUGIN_ENABLE_GmshIO=ON \
-DPARAVIEW_PLUGIN_CONF_EXTRA_PATHS="/usr/share/paraview/plugins" \
-DPARAVIEW_CONF_IN_LIBDIR=ON \
-DDEB_HOST_MULTIARCH=$(DEB_HOST_MULTIARCH)
# Adios2 is only available on 64-bit systems
ifneq ($(DEB_HOST_ARCH_BITS),32)
extra_flags += -DPARAVIEW_ENABLE_ADIOS2=ON \
-DCMAKE_PREFIX_PATH="$(CMAKE_PREFIX_PATH);/usr/lib/$(DEB_HOST_MULTIARCH)/cmake/adios2/mpi"
endif
override_dh_auto_clean:
dh_auto_clean
rm -fr build.*
my_configure_python%: pyver=$(patsubst my_configure_python%,%,$@)
my_configure_python%:
dh_auto_configure -Bbuild.python$(pyver) -- $(extra_flags) -DPython3_EXECUTABLE=/usr/bin/python$(pyver) -DDEBIAN_PYTHON_VERSION=$(pyver)
override_dh_auto_configure: $(foreach pyver,$(PY3VERS), my_configure_python$(pyver))
my_build_python%: pyver=$(patsubst my_build_python%,%,$@)
my_build_python%:
dh_auto_build -Bbuild.python$(pyver)
override_dh_auto_build: $(foreach pyver,$(PY3VERS), my_build_python$(pyver))
my_install_python%: pyver=$(patsubst my_install_python%,%,$@)
my_install_python%:
dh_auto_install -Bbuild.python$(pyver)
cd build.python$(pyver)/bin $(foreach exe,pvbatch pvpython,&& cp $(exe) $(DESTDIR)/usr/bin/$(exe)$(pyver))
override_dh_auto_install: $(foreach pyver,$(PY3VERS), my_install_python$(pyver))
# Use the defaut python3 version for the tools
cd debian/tmp/usr/bin $(foreach exe,pvbatch pvpython,&& ln -fs $(exe)$(PY3DEF) $(exe))
# Drop unwanted mpi4py module
rm -fr debian/tmp/usr/lib/python3*/dist-packages/mpi4py
my_test_python%: pyver=$(patsubst my_test_python%,%,$@)
my_test_python%:
dh_auto_test -Bbuild.python$(pyver)
override_dh_python3:
dh_python3 -V $(PY3RANGE)
override_dh_auto_test: $(foreach pyver,$(PY3VERS), my_test_python$(pyver))
override_dh_compress:
dh_compress -X.qch
override_dh_makeshlibs:
dh_makeshlibs -V'paraview (>= $(UPSTREAM_VERSION)), paraview (<< $(UPSTREAM_VERSION).)'
override_dh_gencontrol:
dh_gencontrol -- -VQtsvg:Depends=$(QT_SVG_DEPENDS)
|