#!/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 DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) 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/-[^-]*$$//') export PETSC4PY_VERSION=$(DEB_UPSTREAM_VERSION) # use only major.minor as PETSc version (not major.minor.patch) PETSC_VERSION=$(shell echo $(DEB_UPSTREAM_VERSION) | awk 'BEGIN { FS="."}; {print $$1"."$$2 }')$(PETSC_EXT) export PETSC_DIR_REAL=/usr/lib/petscdir/petsc$(PETSC_VERSION)/$(DEB_HOST_MULTIARCH)-real export PETSC_DIR_COMPLEX=/usr/lib/petscdir/petsc$(PETSC_VERSION)/$(DEB_HOST_MULTIARCH)-complex export PETSC64_DIR_REAL=/usr/lib/petscdir/petsc64-$(PETSC_VERSION)/$(DEB_HOST_MULTIARCH)-real export PETSC64_DIR_COMPLEX=/usr/lib/petscdir/petsc64-$(PETSC_VERSION)/$(DEB_HOST_MULTIARCH)-complex # 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 # main packaging script based on dh7 syntax %: dh $@ --with python3 --buildsystem=pybuild override_dh_clean: dh_clean rm -rf .eggs # no need to build anything for arch-indep packages (doc, dummy package) override_dh_auto_configure-indep: ; override_dh_auto_build-indep: ; override_dh_auto_install-indep: ; override_dh_auto_configure-arch: PYBUILD_NAME=petsc4py_real$(PETSC_VERSION) PETSC_DIR=$(PETSC_DIR_REAL) dh_auto_configure -ppython3-petsc4py-real$(PETSC_VERSION) PYBUILD_NAME=petsc4py_complex$(PETSC_VERSION) PETSC_DIR=$(PETSC_DIR_COMPLEX) dh_auto_configure -ppython3-petsc4py-complex$(PETSC_VERSION) PYBUILD_NAME=petsc4py_64_real$(PETSC_VERSION) PETSC_DIR=$(PETSC64_DIR_REAL) dh_auto_configure -ppython3-petsc4py-64-real$(PETSC_VERSION) PYBUILD_NAME=petsc4py_64_complex$(PETSC_VERSION) PETSC_DIR=$(PETSC64_DIR_COMPLEX) dh_auto_configure -ppython3-petsc4py-64-complex$(PETSC_VERSION) override_dh_auto_build-arch: PYBUILD_NAME=petsc4py_real$(PETSC_VERSION) PETSC_DIR=$(PETSC_DIR_REAL) dh_auto_build -ppython3-petsc4py-real$(PETSC_VERSION) -- --build-args=--force PYBUILD_NAME=petsc4py_complex$(PETSC_VERSION) PETSC_DIR=$(PETSC_DIR_COMPLEX) dh_auto_build -ppython3-petsc4py-complex$(PETSC_VERSION) PYBUILD_NAME=petsc4py_64_real$(PETSC_VERSION) PETSC_DIR=$(PETSC64_DIR_REAL) dh_auto_build -ppython3-petsc4py-64-real$(PETSC_VERSION) -- --build-args=--force PYBUILD_NAME=petsc4py_64_complex$(PETSC_VERSION) PETSC_DIR=$(PETSC64_DIR_COMPLEX) dh_auto_build -ppython3-petsc4py-64-complex$(PETSC_VERSION) # petsc4py embeds the deep PETSC_DIR path as RPATH in its library. # Swap it out for a standard path, or else dh_shlibdeps gets confused chrpath -d .pybuild/*python*/build/petsc4py/lib/PETSc*.so override_dh_auto_install-arch: PYBUILD_NAME=petsc4py_real$(PETSC_VERSION) PETSC_DIR=$(PETSC_DIR_REAL) dh_auto_install -ppython3-petsc4py-real$(PETSC_VERSION) PYBUILD_NAME=petsc4py_complex$(PETSC_VERSION) PETSC_DIR=$(PETSC_DIR_COMPLEX) dh_auto_install -ppython3-petsc4py-complex$(PETSC_VERSION) PYBUILD_NAME=petsc4py_64_real$(PETSC_VERSION) PETSC_DIR=$(PETSC64_DIR_REAL) dh_auto_install -ppython3-petsc4py-64-real$(PETSC_VERSION) PYBUILD_NAME=petsc4py_64_complex$(PETSC_VERSION) PETSC_DIR=$(PETSC64_DIR_COMPLEX) dh_auto_install -ppython3-petsc4py-64-complex$(PETSC_VERSION) override_dh_installdocs-indep: dh_installdocs -i rm debian/python-petsc4py-doc/usr/share/doc/python-petsc4py-doc/usrman/_static/jquery*.js ln -sf /usr/share/javascript/jquery/jquery.js debian/python-petsc4py-doc/usr/share/doc/python-petsc4py-doc/usrman/_static/jquery.js rm debian/python-petsc4py-doc/usr/share/doc/python-petsc4py-doc/usrman/_static/underscore*.js ln -sf /usr/share/javascript/underscore/underscore.js debian/python-petsc4py-doc/usr/share/doc/python-petsc4py-doc/usrman/_static/underscore.js rm debian/python-petsc4py-doc/usr/share/doc/python-petsc4py-doc/usrman/_static/searchtools.js ln -s /usr/share/sphinx/themes/basic/static/searchtools.js debian/python-petsc4py-doc/usr/share/doc/python-petsc4py-doc/usrman/_static/searchtools.js rm debian/python-petsc4py-doc/usr/share/doc/python-petsc4py-doc/usrman/_static/doctools.js ln -s /usr/share/sphinx/themes/basic/static/doctools.js debian/python-petsc4py-doc/usr/share/doc/python-petsc4py-doc/usrman/_static/doctools.js rm debian/python-petsc4py-doc/usr/share/doc/python-petsc4py-doc/usrman/_static/language_data.js ln -s /usr/share/javascript/sphinxdoc/1.0/language_data.js debian/python-petsc4py-doc/usr/share/doc/python-petsc4py-doc/usrman/_static/language_data.js override_dh_python3-indep: dh_python3 -i dh_numpy3 -i override_dh_python3-arch: dh_python3 -a dh_numpy3 -a mkdir -p debian/python3-petsc4py-real$(PETSC_VERSION)/$(PETSC_DIR_REAL)/lib debian/python3-petsc4py-complex$(PETSC_VERSION)/$(PETSC_DIR_COMPLEX)/lib mv debian/python3-petsc4py-real$(PETSC_VERSION)/usr/lib/python* debian/python3-petsc4py-real$(PETSC_VERSION)/$(PETSC_DIR_REAL)/lib mv debian/python3-petsc4py-complex$(PETSC_VERSION)/usr/lib/python* debian/python3-petsc4py-complex$(PETSC_VERSION)/$(PETSC_DIR_COMPLEX)/lib mkdir -p debian/python3-petsc4py-64-real$(PETSC_VERSION)/$(PETSC64_DIR_REAL)/lib debian/python3-petsc4py-64-complex$(PETSC_VERSION)/$(PETSC64_DIR_COMPLEX)/lib mv debian/python3-petsc4py-64-real$(PETSC_VERSION)/usr/lib/python* debian/python3-petsc4py-64-real$(PETSC_VERSION)/$(PETSC64_DIR_REAL)/lib mv debian/python3-petsc4py-64-complex$(PETSC_VERSION)/usr/lib/python* debian/python3-petsc4py-64-complex$(PETSC_VERSION)/$(PETSC64_DIR_COMPLEX)/lib override_dh_compress: dh_compress -Xpdf override_dh_installdeb: dh_installdeb grep __PETSC4PY_VERSION__ -ls debian/*/DEBIAN/* | xargs -r sed -i -e 's/__PETSC4PY_VERSION__/$(PETSC4PY_VERSION)/'