#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#export DH_VERBOSE = 1
# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk
# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
# Overriding this with "contrib" attempts to link with parmetis (unimplemented).
DEBIAN_DIST=main
DEB_SOURCE_PACKAGE := $(strip $(shell egrep '^Source: ' debian/control | cut -f 2 -d ':'))
DEB_VERSION := $(shell dpkg-parsechangelog -S Version)
DEB_NOEPOCH_VERSION := $(shell echo $(DEB_VERSION) | cut -d: -f2-)
DEB_UPSTREAM_VERSION := $(shell echo $(DEB_NOEPOCH_VERSION) | sed 's/-[^-]*$$//')
DEB_STRIPPED_UPSTREAM_VERSION = $(shell echo $(DEB_UPSTREAM_VERSION) | sed -n -e 's/[\.\+]dfsg.*$$//p' )
include /usr/share/dpkg/architecture.mk
SLEPC_REAL_ARCH=$(DEB_HOST_MULTIARCH)-real
SLEPC_COMPLEX_ARCH=$(DEB_HOST_MULTIARCH)-complex
# This defines the MPI implementation to use. The easiest way to override this
# default is to specify while building, e.g. debian/rules SLEPC_MPI=lam binary.
# Again, only arch-dependent .debs are generated when you do this.
# Note that as of PETSc 2.3.0 this only specifies the name of the PETSc
# packages, the implementation is chosen by BuildSystem according to what's
# available at build time.
include /usr/share/mpi-default-dev/debian_defaults
SLEPC_MPI=$(ARCH_DEFAULT_MPI_IMPL)
SLEPC_MPI_DIR=/usr/lib/$(SLEPC_MPI)
# facilitate build-time testing (invoking OpenMPI) when building in a chroot (pbuilder or sbuild)
export PRTE_MCA_plm_ssh_agent=/bin/false
export PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe
SLEPC_HDF5_FLAGS=$(shell if [ -e /usr/lib/libhdf5.so ]; then echo "--with-hdf5=1 --with-hdf5-dir=/usr"; fi)
# need correct build dir to perform tests, since SLEPc uses
# PETSC_ARCH rather SLEPC_ARCH in lib/slepc/conf/slepc_variables
# and at the same time the build dir is set in configure.py
# using python's sys.platform to a specific string.
BUILDDIR_ARCH := $(shell python3 -c "import sys; print(sys.platform.replace('linux','linux2'))" )
SLEPC_REAL_BUILD_DIR=installed-arch-$(BUILDDIR_ARCH)-c-opt
SLEPC_COMPLEX_BUILD_DIR=installed-arch-$(BUILDDIR_ARCH)-c-opt-complex
SLEPC64_REAL_BUILD_DIR=installed-arch-$(BUILDDIR_ARCH)-c-opt-64
SLEPC64_COMPLEX_BUILD_DIR=installed-arch-$(BUILDDIR_ARCH)-c-opt-complex-64
# SLEPC_VERSION is used for the package names, library sonames, and
# /usr/lib/slepcdir subdirectory names.
export SLEPC_VERSION=$(DEB_STRIPPED_UPSTREAM_VERSION)$(SLEPC_EXT)
# use only major.minor as general soname (rather than major.minor.patch.build)
export SLEPC_SONAME_VERSION=$(shell echo $(SLEPC_VERSION) | awk 'BEGIN { FS="."}; {print $$1"."$$2 }')
# SLEPC_NAME is the install dir under /usr/lib and the base for package names
SLEPC_NAME=slepc$(SLEPC_SONAME_VERSION)
SLEPC_REAL_NAME=slepc-real$(SLEPC_SONAME_VERSION)
SLEPC_COMPLEX_NAME=slepc-complex$(SLEPC_SONAME_VERSION)
SLEPC64_NAME=slepc64-$(SLEPC_SONAME_VERSION)
SLEPC64_REAL_NAME=slepc64-real$(SLEPC_SONAME_VERSION)
SLEPC64_COMPLEX_NAME=slepc64-complex$(SLEPC_SONAME_VERSION)
# debian binary package names
SLEPC_REAL_DEV_PACKAGE=lib$(SLEPC_REAL_NAME)-dev
SLEPC_REAL_PACKAGE=lib$(SLEPC_REAL_NAME)
SLEPC_COMPLEX_DEV_PACKAGE=lib$(SLEPC_COMPLEX_NAME)-dev
SLEPC_COMPLEX_PACKAGE=lib$(SLEPC_COMPLEX_NAME)
SLEPC64_REAL_DEV_PACKAGE=lib$(SLEPC64_REAL_NAME)-dev
SLEPC64_REAL_PACKAGE=lib$(SLEPC64_REAL_NAME)
SLEPC64_COMPLEX_DEV_PACKAGE=lib$(SLEPC64_COMPLEX_NAME)-dev
SLEPC64_COMPLEX_PACKAGE=lib$(SLEPC64_COMPLEX_NAME)
export SLEPC_DOC_PACKAGE=$(SLEPC_NAME)-doc
export SLEPC_DEV_EXAMPLE_PACKAGE=lib$(SLEPC_NAME)-dev-examples
# install into /usr/lib/slepcdir rather than /usr/lib/slepc
# to allow /usr/lib/slepc to be configured by alternatives
export SLEPC_REAL_DIR_PREFIX=/usr/lib/slepcdir/$(SLEPC_NAME)/$(SLEPC_REAL_ARCH)
export SLEPC_COMPLEX_DIR_PREFIX=/usr/lib/slepcdir/$(SLEPC_NAME)/$(SLEPC_COMPLEX_ARCH)
export SLEPC64_REAL_DIR_PREFIX=/usr/lib/slepcdir/$(SLEPC64_NAME)/$(SLEPC_REAL_ARCH)
export SLEPC64_COMPLEX_DIR_PREFIX=/usr/lib/slepcdir/$(SLEPC64_NAME)/$(SLEPC_COMPLEX_ARCH)
export PACKAGE_REAL_INSTALL_DIR=debian/tmp/$(SLEPC_NAME)-real
PACKAGE_COMPLEX_INSTALL_DIR=debian/tmp/$(SLEPC_NAME)-complex
export PACKAGE_64_REAL_INSTALL_DIR=debian/tmp/$(SLEPC64_NAME)-real
PACKAGE_64_COMPLEX_INSTALL_DIR=debian/tmp/$(SLEPC64_NAME)-complex
PETSC_SONAME_VERSION=$(SLEPC_SONAME_VERSION)
PETSC_DIR_BASE=/usr/lib/petscdir/petsc$(PETSC_SONAME_VERSION)
PETSC_DIR_REAL=$(PETSC_DIR_BASE)/$(SLEPC_REAL_ARCH)
PETSC_DIR_COMPLEX=$(PETSC_DIR_BASE)/$(SLEPC_COMPLEX_ARCH)
PETSC64_DIR_BASE=/usr/lib/petscdir/petsc64-$(PETSC_SONAME_VERSION)
PETSC64_DIR_REAL=$(PETSC64_DIR_BASE)/$(SLEPC_REAL_ARCH)
PETSC64_DIR_COMPLEX=$(PETSC64_DIR_BASE)/$(SLEPC_COMPLEX_ARCH)
export SLEPC_DIR=$(CURDIR)
MPIEXEC_ALLOW_ROOT := mpiexec --oversubscribe --allow-run-as-root
# main packaging script based on dh7 syntax
%:
dh $@ --with python3,fortran_mod
override_dh_auto_clean:
if [ -d $(SLEPC_REAL_BUILD_DIR) ]; then \
dh_auto_clean -p$(SLEPC_REAL_DEV_PACKAGE) -p$(SLEPC_DOC_PACKAGE) -- \
SLEPC_DIR=$(CURDIR) PETSC_ARCH=$(SLEPC_REAL_BUILD_DIR) PETSC_DIR=$(PETSC_DIR_REAL); \
fi
if [ -d $(SLEPC_COMPLEX_BUILD_DIR) -a -f $(PETSC_DIR_REAL)/lib/petsc/conf/petscrules ]; then \
dh_auto_clean -p$(SLEPC_COMPLEX_DEV_PACKAGE) -- \
SLEPC_DIR=$(CURDIR) PETSC_ARCH=$(SLEPC_COMPLEX_BUILD_DIR) PETSC_DIR=$(PETSC_DIR_COMPLEX); \
fi
if [ -d $(SLEPC64_REAL_BUILD_DIR) -a -f $(PETSC_DIR_REAL)/lib/petsc/conf/petscrules ]; then \
dh_auto_clean -p$(SLEPC64_REAL_DEV_PACKAGE) -- \
SLEPC_DIR=$(CURDIR) PETSC_ARCH=$(SLEPC64_REAL_BUILD_DIR) PETSC_DIR=$(PETSC64_DIR_REAL); \
fi
if [ -d $(SLEPC64_COMPLEX_BUILD_DIR) -a -f $(PETSC_DIR_REAL)/lib/petsc/conf/petscrules ]; then \
dh_auto_clean -p$(SLEPC64_COMPLEX_DEV_PACKAGE) -- \
SLEPC_DIR=$(CURDIR) PETSC_ARCH=$(SLEPC64_COMPLEX_BUILD_DIR) PETSC_DIR=$(PETSC64_DIR_COMPLEX); \
fi
override_dh_clean: override_dh_auto_clean
dh_clean
rm -rf installed-*
rm -f lib/slepc/conf/slepcvariables
rm -f make.log configure.log
find config -name *.pyc | xargs rm -f
rm -rf $(SLEPC_REAL_BUILD_DIR) $(SLEPC_COMPLEX_BUILD_DIR) $(SLEPC64_REAL_BUILD_DIR) $(SLEPC64_COMPLEX_BUILD_DIR)
# SLEPc differentiates different configurations (real, complex, etc)
# at build time from values in petscconf.h given by PETSC_DIR
override_dh_auto_configure:
if PETSC_DIR=$(PETSC_DIR_REAL) \
./configure --prefix=$(SLEPC_REAL_DIR_PREFIX) \
--with-arpack=1 ; then \
: ; \
else \
err=$$?; \
echo "real configure failed with exit value $$err"; \
echo "===== show real configure.log ====="; \
cat $(SLEPC_REAL_BUILD_DIR)/lib/slepc/conf/configure.log; \
echo "===== end real configure.log ====="; \
(exit $$err); \
fi
if PETSC_DIR=$(PETSC_DIR_COMPLEX) \
./configure --prefix=$(SLEPC_COMPLEX_DIR_PREFIX) \
--with-arpack=1 ; then \
: ; \
else \
err=$$?; \
echo "complex configure failed with exit value $$err"; \
echo "===== show complex configure.log ====="; \
cat $(SLEPC_COMPLEX_BUILD_DIR)/lib/slepc/conf/configure.log; \
echo "===== end complex configure.log ====="; \
(exit $$err); \
fi
if PETSC_DIR=$(PETSC64_DIR_REAL) \
./configure --prefix=$(SLEPC64_REAL_DIR_PREFIX) \
--build-suffix="64" ; then \
: ; \
else \
err=$$?; \
echo "64-bit real configure failed with exit value $$err"; \
echo "===== show 64-bit real configure.log ====="; \
cat $(SLEPC64_REAL_BUILD_DIR)/lib/slepc/conf/configure.log; \
echo "===== end 64-bit real configure.log ====="; \
(exit $$err); \
fi
if PETSC_DIR=$(PETSC64_DIR_COMPLEX) \
./configure --prefix=$(SLEPC64_COMPLEX_DIR_PREFIX) \
--build-suffix="64" ; then \
: ; \
else \
err=$$?; \
echo "64-bit complex configure failed with exit value $$err"; \
echo "===== show 64-bit complex configure.log ====="; \
cat $(SLEPC64_COMPLEX_BUILD_DIR)/lib/slepc/conf/configure.log; \
echo "===== end 64-bit complex configure.log ====="; \
(exit $$err); \
fi
override_dh_auto_build:
dh_auto_build -p$(SLEPC_REAL_DEV_PACKAGE) -p$(SLEPC_DOC_PACKAGE) -- V=1 \
SLEPC_DIR=$(CURDIR) \
PETSC_DIR=$(PETSC_DIR_REAL) PETSC_ARCH=$(SLEPC_REAL_BUILD_DIR)
dh_auto_build -p$(SLEPC_COMPLEX_DEV_PACKAGE) -- V=1 \
SLEPC_DIR=$(CURDIR) \
PETSC_DIR=$(PETSC_DIR_COMPLEX) PETSC_ARCH=$(SLEPC_COMPLEX_BUILD_DIR)
dh_auto_build -p$(SLEPC64_REAL_DEV_PACKAGE) -- V=1 \
SLEPC_DIR=$(CURDIR) \
PETSC_DIR=$(PETSC64_DIR_REAL) PETSC_ARCH=$(SLEPC64_REAL_BUILD_DIR)
dh_auto_build -p$(SLEPC64_COMPLEX_DEV_PACKAGE) -- V=1 \
SLEPC_DIR=$(CURDIR) \
PETSC_DIR=$(PETSC64_DIR_COMPLEX) PETSC_ARCH=$(SLEPC64_COMPLEX_BUILD_DIR)
# ia64, x32 consistently time out during tests, so skip
ARCH_NO_TEST_LIST = ia64 x32
empty :=
space := $(empty)$(empty)
# run tests, or not
RUNTEST=yes
ifneq (,$(findstring $(space)$(DEB_HOST_ARCH)$(space), $(space)$(ARCH_NO_TEST_LIST)$(space)))
RUNTEST=no
endif
ifeq (nocheck,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
RUNTEST=no
endif
override_dh_auto_test:
set -e; \
if [ "$(RUNTEST)" = "no" ]; then \
echo Tests have been disabled on $(DEB_HOST_ARCH); \
else \
dh_auto_test -p$(SLEPC_REAL_DEV_PACKAGE) -- \
SLEPC_DIR=$(CURDIR) \
PETSC_DIR=$(PETSC_DIR_REAL) PETSC_ARCH=$(SLEPC_REAL_BUILD_DIR) \
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(SLEPC_REAL_BUILD_DIR)/lib \
OMP_NUM_THREADS=1 \
MPIEXEC="$(MPIEXEC_ALLOW_ROOT)"; \
dh_auto_test -p$(SLEPC_COMPLEX_DEV_PACKAGE) -- \
SLEPC_DIR=$(CURDIR) \
PETSC_DIR=$(PETSC_DIR_COMPLEX) PETSC_ARCH=$(SLEPC_COMPLEX_BUILD_DIR) \
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(SLEPC_COMPLEX_BUILD_DIR)/lib \
OMP_NUM_THREADS=1 \
MPIEXEC="$(MPIEXEC_ALLOW_ROOT)" ; \
dh_auto_test -p$(SLEPC64_REAL_DEV_PACKAGE) -- \
SLEPC_DIR=$(CURDIR) \
PETSC_DIR=$(PETSC64_DIR_REAL) PETSC_ARCH=$(SLEPC64_REAL_BUILD_DIR) \
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(SLEPC64_REAL_BUILD_DIR)/lib \
OMP_NUM_THREADS=1 \
MPIEXEC="$(MPIEXEC_ALLOW_ROOT)"; \
dh_auto_test -p$(SLEPC64_COMPLEX_DEV_PACKAGE) -- \
SLEPC_DIR=$(CURDIR) \
PETSC_DIR=$(PETSC64_DIR_COMPLEX) PETSC_ARCH=$(SLEPC64_COMPLEX_BUILD_DIR) \
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(SLEPC64_COMPLEX_BUILD_DIR)/lib \
OMP_NUM_THREADS=1 \
MPIEXEC="$(MPIEXEC_ALLOW_ROOT)" ; \
fi
override_dh_auto_install:
SLEPC_DIR=$(CURDIR) \
PETSC_DIR=$(PETSC_DIR_REAL) PETSC_ARCH=$(SLEPC_REAL_BUILD_DIR) \
dh_auto_install -p$(SLEPC_REAL_DEV_PACKAGE) -p$(SLEPC_DOC_PACKAGE) \
--destdir=$(PACKAGE_REAL_INSTALL_DIR)
SLEPC_DIR=$(CURDIR) \
PETSC_DIR=$(PETSC_DIR_COMPLEX) PETSC_ARCH=$(SLEPC_COMPLEX_BUILD_DIR) \
dh_auto_install -p$(SLEPC_COMPLEX_DEV_PACKAGE) --destdir=$(PACKAGE_COMPLEX_INSTALL_DIR)
SLEPC_DIR=$(CURDIR) \
PETSC_DIR=$(PETSC64_DIR_REAL) PETSC_ARCH=$(SLEPC64_REAL_BUILD_DIR) \
dh_auto_install -p$(SLEPC64_REAL_DEV_PACKAGE) --destdir=$(PACKAGE_64_REAL_INSTALL_DIR)
SLEPC_DIR=$(CURDIR) \
PETSC_DIR=$(PETSC64_DIR_COMPLEX) PETSC_ARCH=$(SLEPC64_COMPLEX_BUILD_DIR) \
dh_auto_install -p$(SLEPC64_COMPLEX_DEV_PACKAGE) --destdir=$(PACKAGE_64_COMPLEX_INSTALL_DIR)
override_dh_install-arch:
dh_install -p$(SLEPC_REAL_PACKAGE) --sourcedir $(PACKAGE_REAL_INSTALL_DIR) --exclude=*html $(SLEPC_REAL_DIR_PREFIX)/lib/libslepc_real.so.$(SLEPC_VERSION) usr/lib/$(DEB_HOST_MULTIARCH)
dh_install -p$(SLEPC_REAL_DEV_PACKAGE) --sourcedir $(PACKAGE_REAL_INSTALL_DIR) --autodest --exclude='include/*.mod' --exclude=*html --exclude=libslepc_real.so.$(SLEPC_VERSION) --exclude=conf/uninstall.py --exclude=share/slepc/examples --exclude=share/slepc/datafiles usr
dh_install -p$(SLEPC_COMPLEX_PACKAGE) --sourcedir $(PACKAGE_COMPLEX_INSTALL_DIR) --exclude=*html $(SLEPC_COMPLEX_DIR_PREFIX)/lib/libslepc_complex.so.$(SLEPC_VERSION) usr/lib/$(DEB_HOST_MULTIARCH)
dh_install -p$(SLEPC_COMPLEX_DEV_PACKAGE) --sourcedir $(PACKAGE_COMPLEX_INSTALL_DIR) --autodest --exclude='include/*.mod' --exclude=*html --exclude=libslepc_complex.so.$(SLEPC_VERSION) --exclude=conf/uninstall.py --exclude=share/slepc/examples --exclude=share/slepc/datafiles usr
dh_install -p$(SLEPC64_REAL_PACKAGE) --sourcedir $(PACKAGE_64_REAL_INSTALL_DIR) --exclude=*html $(SLEPC64_REAL_DIR_PREFIX)/lib/libslepc64_real.so.$(SLEPC_VERSION) usr/lib/$(DEB_HOST_MULTIARCH)
dh_install -p$(SLEPC64_REAL_DEV_PACKAGE) --sourcedir $(PACKAGE_64_REAL_INSTALL_DIR) --autodest --exclude='include/*.mod' --exclude=*html --exclude=libslepc64_real.so.$(SLEPC_VERSION) --exclude=conf/uninstall.py --exclude=share/slepc/examples --exclude=share/slepc/datafiles usr
chrpath -d debian/$(SLEPC64_REAL_PACKAGE)/usr/lib/$(DEB_HOST_MULTIARCH)/libslepc64_real.so.$(SLEPC_VERSION)
dh_install -p$(SLEPC64_COMPLEX_PACKAGE) --sourcedir $(PACKAGE_64_COMPLEX_INSTALL_DIR) --exclude=*html $(SLEPC64_COMPLEX_DIR_PREFIX)/lib/libslepc64_complex.so.$(SLEPC_VERSION) usr/lib/$(DEB_HOST_MULTIARCH)
dh_install -p$(SLEPC64_COMPLEX_DEV_PACKAGE) --sourcedir $(PACKAGE_64_COMPLEX_INSTALL_DIR) --autodest --exclude='include/*.mod' --exclude=*html --exclude=libslepc64_complex.so.$(SLEPC_VERSION) --exclude=conf/uninstall.py --exclude=share/slepc/examples --exclude=share/slepc/datafiles usr
chrpath -d debian/$(SLEPC64_COMPLEX_PACKAGE)/usr/lib/$(DEB_HOST_MULTIARCH)/libslepc64_complex.so.$(SLEPC_VERSION)
override_dh_install-indep:
dh_install -p$(SLEPC_DEV_EXAMPLE_PACKAGE)
override_dh_installdocs:
dh_installdocs --exclude=makefile
# html docs for header files in include have been installed,
# but dh_installdocs cannot exclude the .h (-X.h bans the .html files)
# so remove the excess .h files
# test if header docs were installed (in a binary-only build they won't be)
if [ -d ./debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/include ]; then \
find debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/include -name *.h -o -name *.h90 | xargs -r rm; \
# make header docs "generic" (pointing to headers in preferred alternative /usr/include/slepc) \
for hdoc in `find ./debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/include/ -name "*.html"`; do \
h=`echo $${hdoc} | xargs basename | sed "s/.html//"`; \
hdir=`echo $${hdoc} | xargs dirname | sed "s|^.*/include||"`; \
sed "s|href=\"$${h}\"|href=\"/usr/include/slepc$${hdir}/$${h}\"|" -i $${hdoc}; \
done; \
# drop images to avoid privacy breaches \
for hdoc in `find ./debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/ -name "*.html"`; do \
sed -i '/
]*class="icon-link-image"[^>]*>/d' $${hdoc}; \
sed -i '/
]*alt="logo-upv"[^>]*>/d' $${hdoc}; \
sed -i '/
]*alt="AEI"[^>]*>/d' $${hdoc}; \
done; \
# use local MathJax.js \
for hdoc in `find ./debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/ -name "*.html"`; do \
sed -i "s|https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js|file:///usr/share/javascript/mathjax/MathJax.js|" $${hdoc}; \
done; \
fi
for exampledoc in `find src -name *.html`; do \
dh_install -p$(SLEPC_DEV_EXAMPLE_PACKAGE) $$exampledoc usr/share/slepc/$(SLEPC_SONAME_VERSION)/examples/`dirname $$exampledoc`; \
done
# remove local javascript files
if [ -d ./debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/docs ]; then \
rm -rf debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/docs/_static/language_data.js; \
ln -s /usr/share/javascript/sphinxdoc/1.0/language_data.js debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/docs/_static/; \
rm -rf debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/docs/slepc4py/_static/language_data.js; \
ln -s /usr/share/javascript/sphinxdoc/1.0/language_data.js debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/docs/slepc4py/_static/; \
for j in jquery searchtools underscore doctools; do \
rm -rf debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/docs/_static/$${j}.js ; \
ln -s /usr/share/sphinx/themes/basic/static/$${j}.js debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/docs/_static/$${j}.js ; \
rm -rf debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/docs/slepc4py/_static/$${j}.js ; \
ln -s /usr/share/sphinx/themes/basic/static/$${j}.js debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/docs/slepc4py/_static/$${j}.js ; \
done; \
rm -rf debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/docs/_static/jquery-?.?.?.js; \
rm -rf debian/$(SLEPC_DOC_PACKAGE)/usr/share/doc/$(SLEPC_DOC_PACKAGE)/docs/_static/underscore-?.?.?.js; \
fi
# dh_installchangelogs can't handle a directory of changelog files, so skip them here
override_dh_installchangelogs:
dh_installchangelogs --exclude=docs/changes
override_dh_python3:
dh_python3 --shebang=/usr/bin/python3
dh_python3 --shebang=/usr/bin/python3 -p$(SLEPC_REAL_DEV_PACKAGE) $(SLEPC_REAL_DIR_PREFIX)/bin
dh_python3 --shebang=/usr/bin/python3 -p$(SLEPC_COMPLEX_DEV_PACKAGE) $(SLEPC_COMPLEX_DIR_PREFIX)/bin
dh_python3 --shebang=/usr/bin/python3 -p$(SLEPC64_REAL_DEV_PACKAGE) $(SLEPC64_REAL_DIR_PREFIX)/bin
dh_python3 --shebang=/usr/bin/python3 -p$(SLEPC64_COMPLEX_DEV_PACKAGE) $(SLEPC64_COMPLEX_DIR_PREFIX)/bin
dh_python3 --shebang=/usr/bin/python3 -p$(SLEPC_DEV_EXAMPLE_PACKAGE) /usr/share/slepc/$(SLEPC_SONAME_VERSION)/examples
dh_python3 --shebang=/usr/bin/python3 -p$(SLEPC_DEV_EXAMPLE_PACKAGE) /usr/share/slepc/$(SLEPC_SONAME_VERSION)/datafiles
# a sample binary build is made to build docs, but those binaries are not installed in an arch-indep build
# (so are "missing" in arch-indep builds)
override_dh_missing-indep:
dh_missing --list-missing
override_dh_installdeb:
dh_installdeb
for pkg in $$(dh_listpackages -a); do \
sed -i -e 's/__SLEPC_SONAME_VERSION__/$(SLEPC_SONAME_VERSION)/; s/__SLEPC_VERSION__/$(SLEPC_VERSION)/; s/__DEB_HOST_MULTIARCH__/$(DEB_HOST_MULTIARCH)/' debian/$$pkg/DEBIAN/*; \
done
override_dh_strip:
dh_strip -p$(SLEPC_REAL_PACKAGE)
dh_strip -p$(SLEPC_COMPLEX_PACKAGE)
dh_strip -p$(SLEPC64_REAL_PACKAGE)
dh_strip -p$(SLEPC64_COMPLEX_PACKAGE)
override_dh_gencontrol:
# SLEPc.pc depends on specific patch version of PETSc (as defined in PETSc.pc)
dh_gencontrol -- -Vpetsc:dev="libpetsc-real$(PETSC_SONAME_VERSION)-dev" \
-Vpetsc:complex-dev="libpetsc-complex$(PETSC_SONAME_VERSION)-dev" \
-Vpetsc64:dev="libpetsc64-real$(PETSC_SONAME_VERSION)-dev" \
-Vpetsc64:complex-dev="libpetsc64-complex$(PETSC_SONAME_VERSION)-dev"
USCAN_DESTDIR := $(CURDIR)