Source: petsc Version: 3.14.5+dfsg1-4 Severity: wishlist Tags: patch Dear Maintainer,
I am the developer of a quantum chemistry code that deals with very large matrices. As such, it uses at the same time slepc/petsc, scalapack, and elpa libraries. Since matrices may easily become larger than the maximum size that can be indexed by standard scalapack (and underlying blas/lapack), I need to use the versions with long integer indices (i.e. lapack64, blas64, mkl scalapack with ilp64 interface), as well as a custom compiled version of elpa, also with support for the same versions of lapack/blas (i.e. compiled with the --64bit-integer-math-support configure option). Of course, I cannot link the same code with two different versions of lapack/blas, so I also need to compile petsc so that it uses the same versions of lapack/blas. Luckily, recent versions of the upstream package do support this, with the --with-64-bit-indices and --with-64-bit-blas-indices configure options. Now, since the current debian/rules already has all the machinery to produce the "petsc64" versions of all packages, using only the --with-64-bit-indices option, I thought I might hack it to also produce additional real packages also with the --with-64-bit-blas-indices option, producing additional packages that can coexist smootly with the other ones. The quick (and partial) hack that I put together successfully did the trick, producing real interface petsc libraries that passed all the tests and appear to work without problems. I am sending you all the modified/added files, in case you may want to add official support for this in debian, in some future. The hacked version also enables cuda in my custom compiled packages (not the 64bit blas ones), which would be a welcome addition as well (for me). Let me know if this is of any use, and/or if I may help producing a more complete and cleaner version of this. Best regards, and thanks for all the great work. Giacomo Mulas -- System Information: Debian Release: 11.0 APT prefers unstable APT policy: (401, 'unstable'), (10, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.10.0-7-amd64 (SMP w/12 CPU threads) Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=it_IT.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled debian/rules: #!/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_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 -e 's/[\.\+]dfsg.*$$//' ) # see FEATURE AREAS in dpkg-buildflags(1) #export DEB_BUILD_MAINT_OPTIONS = hardening=+all # see ENVIRONMENT in dpkg-buildflags(1) # package maintainers to append FLAGS export DEB_CFLAGS_MAINT_APPEND = -fPIC export DEB_CXXFLAGS_MAINT_APPEND = -fPIC export DEB_FFLAGS_MAINT_APPEND = -fPIC -ffree-line-length-0 export DEB_FCFLAGS_MAINT_APPEND = $(DEB_FFLAGS_MAINT_APPEND) export DEB_LDFLAGS_MAINT_APPEND = -fPIC # keep the build dir (in the -fdebug-prefix-map flag) out of the installed config files, # by applying the flag only at build time not configure time export CFLAGS_NO_DEBUG_PREFIX_MAP := $(shell echo $(CFLAGS) | sed "s/ -fdebug-prefix-map=[^ ]* / /" ) export CFLAGS_DEBUG_PREFIX_MAP := $(shell echo $(CFLAGS) | sed -n "s/^.*\(-fdebug-prefix-map=[^ ]*\) .*$$/\1/p" ) export CXXFLAGS_NO_DEBUG_PREFIX_MAP := $(shell echo $(CXXFLAGS) | sed "s/ -fdebug-prefix-map=[^ ]* / /" ) export CXXFLAGS_DEBUG_PREFIX_MAP := $(shell echo $(CXXFLAGS) | sed -n "s/^.*\(-fdebug-prefix-map=[^ ]*\) .*$$/\1/p" ) export FCFLAGS_NO_DEBUG_PREFIX_MAP := $(shell echo $(FCFLAGS) | sed "s/ -fdebug-prefix-map=[^ ]* / /" ) export FCFLAGS_DEBUG_PREFIX_MAP := $(shell echo $(FCFLAGS) | sed -n "s/^.*\(-fdebug-prefix-map=[^ ]*\) .*$$/\1/p" ) export FFLAGS_NO_DEBUG_PREFIX_MAP := $(shell echo $(FFLAGS) | sed "s/ -fdebug-prefix-map=[^ ]* / /" ) export FFLAGS_DEBUG_PREFIX_MAP := $(shell echo $(FFLAGS) | sed -n "s/^.*\(-fdebug-prefix-map=[^ ]*\) .*$$/\1/p" ) # Overriding this with "contrib" attempts to link with parmetis (unimplemented). DEBIAN_DIST=main export DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) # On Alpha, override this with debian/rules PETSC_ARCH=linux_alpha_dec binary # to build PETSc libs with the Compaq compilers, though that requires at least: # libots, cpml-ev(5|6), cxml-ev(5|6), cfal and ccc. # Note that only arch-dependent .debs are generated when you do this. PETSC_ARCH=$(DEB_HOST_MULTIARCH) CPU_COUNT := $(shell /usr/bin/nproc ) export DEB_BUILD_OPTIONS ?= parallel=$(CPU_COUNT) # This defines the MPI implementation to use. The easiest way to override this # default is to specify while building, e.g. debian/rules PETSC_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 PETSC_MPI=$(ARCH_DEFAULT_MPI_IMPL) # PETSc has a tight dependency on the MPI minor version: # the Major.Minor version of the current MPI must match the one that # PETSc was built against, see /usr/lib/petscdir/*/x86_64-linux-gnu-real/include/petscsys.h # Define the required version here: MPI_DEPENDS=$(shell debian/extract_MPI_dependency) # facilitate build-time testing (invoking OpenMPI) when building in a chroot (pbuilder or sbuild) export OMPI_MCA_plm_rsh_agent=/bin/false export OMPI_MCA_btl_base_warn_component_unused=0 HDF5_INCLUDE_DIR=$(shell for i in `pkg-config hdf5-mpi --cflags-only-I`; do echo $$i | grep "include/hdf5"; done | sed "s/-I//") HDF5_LIBS=$(shell pkg-config hdf5-mpi --libs) PETSC_HDF5_FLAGS=--with-hdf5-include=$(HDF5_INCLUDE_DIR) --with-hdf5-lib="$(HDF5_LIBS)" PETSC_REAL_BUILD_DIR=$(PETSC_ARCH)-real PETSC_REAL_DEBUG_BUILD_DIR=$(PETSC_ARCH)-real-debug PETSC_COMPLEX_BUILD_DIR=$(PETSC_ARCH)-complex PETSC_COMPLEX_DEBUG_BUILD_DIR=$(PETSC_ARCH)-complex-debug PETSC64_REAL_BUILD_DIR=$(PETSC_ARCH)-real-64 PETSC64_REAL_DEBUG_BUILD_DIR=$(PETSC_ARCH)-real-debug-64 PETSC64_COMPLEX_BUILD_DIR=$(PETSC_ARCH)-complex-64 PETSC64_COMPLEX_DEBUG_BUILD_DIR=$(PETSC_ARCH)-complex-debug-64 PETSC64B_REAL_BUILD_DIR=$(PETSC_ARCH)-real-64b # PETSC_VERSION is used for the package names, library sonames, and # /usr/lib/petscdir subdirectory names. export PETSC_VERSION=$(DEB_STRIPPED_UPSTREAM_VERSION)$(PETSC_EXT) # use only major.minor as general soname (rather than major.minor.patch.build) export PETSC_SONAME_VERSION=$(shell echo $(PETSC_VERSION) | awk 'BEGIN { FS="."}; {print $$1"."$$2 }') # PETSC_NAME is the install dir under /usr/lib and the base for package names PETSC_NAME=petsc$(PETSC_SONAME_VERSION) PETSC_REAL_SONAME=petsc-real$(PETSC_SONAME_VERSION) PETSC_COMPLEX_SONAME=petsc-complex$(PETSC_SONAME_VERSION) PETSC64_NAME=petsc64-$(PETSC_SONAME_VERSION) PETSC64_REAL_SONAME=petsc64-real$(PETSC_SONAME_VERSION) PETSC64_COMPLEX_SONAME=petsc64-complex$(PETSC_SONAME_VERSION) PETSC64B_NAME=petsc64b-$(PETSC_SONAME_VERSION) PETSC64B_REAL_SONAME=petsc64b-real$(PETSC_SONAME_VERSION) # debian binary package names PETSC_REAL_DEV_PACKAGE=lib$(PETSC_REAL_SONAME)-dev PETSC_REAL_PACKAGE=lib$(PETSC_REAL_SONAME) PETSC_REAL_DEBUG_PACKAGE=lib$(PETSC_REAL_SONAME)-dbg PETSC_COMPLEX_DEV_PACKAGE=lib$(PETSC_COMPLEX_SONAME)-dev PETSC_COMPLEX_PACKAGE=lib$(PETSC_COMPLEX_SONAME) PETSC_COMPLEX_DEBUG_PACKAGE=lib$(PETSC_COMPLEX_SONAME)-dbg PETSC64_REAL_DEV_PACKAGE=lib$(PETSC64_REAL_SONAME)-dev PETSC64_REAL_PACKAGE=lib$(PETSC64_REAL_SONAME) PETSC64_REAL_DEBUG_PACKAGE=lib$(PETSC64_REAL_SONAME)-dbg PETSC64_COMPLEX_DEV_PACKAGE=lib$(PETSC64_COMPLEX_SONAME)-dev PETSC64_COMPLEX_PACKAGE=lib$(PETSC64_COMPLEX_SONAME) PETSC64_COMPLEX_DEBUG_PACKAGE=lib$(PETSC64_COMPLEX_SONAME)-dbg PETSC64B_REAL_DEV_PACKAGE=libpetsc64i64b-real$(PETSC_SONAME_VERSION)-dev PETSC64B_REAL_PACKAGE=libpetsc64i64b-real$(PETSC_SONAME_VERSION) PETSC_DEV_COMMON_PACKAGE=lib$(PETSC_NAME)-dev-common export PETSC_DOC_PACKAGE=petsc$(PETSC_SONAME_VERSION)-doc export PETSC_DEV_EXAMPLE_PACKAGE=lib$(PETSC_NAME)-dev-examples # install into /usr/lib/petscdir rather than /usr/lib/petsc # to allow /usr/lib/petsc to be configured by alternatives export PETSC_REAL_DIR_PREFIX=/usr/lib/petscdir/$(PETSC_NAME)/$(PETSC_ARCH)-real export PETSC_REAL_DEBUG_DIR_PREFIX=/usr/lib/petscdir/$(PETSC_NAME)/$(PETSC_ARCH)-real-debug export PETSC_COMPLEX_DIR_PREFIX=/usr/lib/petscdir/$(PETSC_NAME)/$(PETSC_ARCH)-complex export PETSC_COMPLEX_DEBUG_DIR_PREFIX=/usr/lib/petscdir/$(PETSC_NAME)/$(PETSC_ARCH)-complex-debug export PETSC64_REAL_DIR_PREFIX=/usr/lib/petscdir/$(PETSC64_NAME)/$(PETSC_ARCH)-real export PETSC64_REAL_DEBUG_DIR_PREFIX=/usr/lib/petscdir/$(PETSC64_NAME)/$(PETSC_ARCH)-real-debug export PETSC64_COMPLEX_DIR_PREFIX=/usr/lib/petscdir/$(PETSC64_NAME)/$(PETSC_ARCH)-complex export PETSC64_COMPLEX_DEBUG_DIR_PREFIX=/usr/lib/petscdir/$(PETSC64_NAME)/$(PETSC_ARCH)-complex-debug export PETSC64B_REAL_DIR_PREFIX=/usr/lib/petscdir/$(PETSC64B_NAME)/$(PETSC_ARCH)-real PACKAGE_REAL_INSTALL_DIR=debian/tmp/$(PETSC_NAME)-real export PACKAGE_REAL_DEBUG_INSTALL_DIR=debian/tmp/$(PETSC_NAME)-real-debug PACKAGE_COMPLEX_INSTALL_DIR=debian/tmp/$(PETSC_NAME)-complex PACKAGE_COMPLEX_DEBUG_INSTALL_DIR=debian/tmp/$(PETSC_NAME)-complex-debug PACKAGE_64_REAL_INSTALL_DIR=debian/tmp/$(PETSC64_NAME)-real export PACKAGE_64_REAL_DEBUG_INSTALL_DIR=debian/tmp/$(PETSC64_NAME)-real-debug PACKAGE_64_COMPLEX_INSTALL_DIR=debian/tmp/$(PETSC64_NAME)-complex PACKAGE_64_COMPLEX_DEBUG_INSTALL_DIR=debian/tmp/$(PETSC64_NAME)-complex-debug PACKAGE_64B_REAL_INSTALL_DIR=debian/tmp/$(PETSC64B_NAME)-real CONFIGURATION_OPTIONS=--with-shared-libraries --with-pic=1 \ --with-cc=mpicc --with-cxx=mpicxx --with-fc=mpif90 \ --with-cxx-dialect=C++11 \ --with-opencl=1 \ --with-ptscotch=1 --with-ptscotch-include=/usr/include/scotch --with-ptscotch-lib="-lptesmumps -lptscotch -lptscotcherr" \ $(PETSC_HDF5_FLAGS) --CXX_LINKER_FLAGS="-Wl,--no-as-needed" MKL_OPTIONS=--with-blas-lib="-lmkl_blas95_lp64 -lmkl_cdft_core -lmkl_gf_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm" --with-lapack-lib="-lmkl_blas95_lp64 -lmkl_lapack95_lp64 -lmkl_cdft_core -lmkl_gf_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm" --with-scalapack=1 --with-scalapack-lib="-lmkl_blas95_lp64 -lmkl_lapack95_lp64 -lmkl_scalapack_lp64 -lmkl_cdft_core -lmkl_blacs_openmpi_lp64 -lmkl_gf_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm" MKL64B_OPTIONS=--with-blas-lib="-lmkl_blas95_ilp64 -lmkl_cdft_core -lmkl_gf_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm" --with-lapack-lib="-lmkl_blas95_ilp64 -lmkl_lapack95_ilp64 -lmkl_cdft_core -lmkl_gf_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm" FFTW_OPTIONS=--with-fftw=1 --with-fftw-include=[] --with-fftw-lib="-lfftw3 -lfftw3_mpi" FFTW64B_OPTIONS= CUDA_OPTIONS=--with-cuda=1 --with-cuda-lib="-lcufft -lcublas -lcudart -lcusparse -lcusolver -lcuda" --with-cuda-include=/usr/include CUDA64B_OPTIONS= # hypre is only supported with real numbers, not complex HYPRE_CONFIG=--with-hypre=1 --with-hypre-include=/usr/include/hypre \ --with-hypre-lib="-lHYPRE_core" # --with-64-bit-indices option requires Hypre built with --enable-bigint or --enable-mixedint (not yet available) HYPRE64_CONFIG= HYPRE64B_CONFIG= # standard MUMPS (32 bit) MUMPS_CONFIG=--with-mumps=1 --with-mumps-include=[] --with-mumps-lib="-ldmumps -lzmumps -lsmumps -lcmumps -lmumps_common -lpord" # 64-bit MUMPS MUMPS64_CONFIG=--with-mumps=1 --with-mumps-include=[] --with-mumps-lib="-ldmumps_64 -lzmumps_64 -lsmumps_64 -lcmumps_64 -lmumps_common_64 -lpord_64" MUMPS64B_CONFIG= # Cannot use SuperLU with 64 bit integers, it is not coded for this capability SUPERLU_CONFIG=--with-superlu=1 --with-superlu-include=/usr/include/superlu --with-superlu-lib=-lsuperlu SUPERLU64B_CONFIG=--with-superlu=0 SUPERLUDIST_CONFIG=--with-superlu_dist=1 --with-superlu_dist-include=/usr/include/superlu-dist --with-superlu_dist-lib=-lsuperlu_dist SUPERLUDIST64_CONFIG=--with-superlu_dist=1 --with-superlu_dist-include=/usr/include/superlu-dist --with-superlu_dist-lib=-lsuperlu_dist PETSC64_CONFIG=--with-64-bit-indices PETSC64B_CONFIG=--with-64-bit-indices --with-64-bit-blas-indices SUITESPARSE_CONFIG=--with-suitesparse=1 --with-suitesparse-include=/usr/include/suitesparse --with-suitesparse-lib="-lumfpack -lamd -lcholmod -lklu" # SuiteSparse does not support 64-bit indices on 32-bit architectures, so drop it in that case. 32BIT_ARCH_LIST := armel armhf i386 mipsel hppa hurd-i386 m68k powerpc sh4 x32 ifneq (,$(findstring $(space)$(DEB_HOST_ARCH)$(space), $(space)$(32BIT_ARCH_LIST)$(space))) SUITESPARSE64_CONFIG= else SUITESPARSE64_CONFIG=$(SUITESPARSE_CONFIG) endif SUITESPARSE64B_CONFIG= # main packaging script based on dh7 syntax %: dh $@ --with python3,fortran_mod,sphinxdoc override_dh_auto_clean: if [ -d $(PETSC_REAL_DEBUG_BUILD_DIR) -a -f $(PETSC_REAL_DEBUG_BUILD_DIR)/lib/petsc/conf/petscrules ]; then \ dh_auto_clean -p$(PETSC_REAL_DEBUG_PACKAGE) -p$(PETSC_DOC_PACKAGE) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_REAL_DEBUG_BUILD_DIR); \ fi if [ -d $(PETSC_REAL_BUILD_DIR) -a -f $(PETSC_REAL_BUILD_DIR)/lib/petsc/conf/petscrules ]; then \ dh_auto_clean -p$(PETSC_REAL_DEV_PACKAGE) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_REAL_BUILD_DIR); \ fi if [ -d $(PETSC_COMPLEX_BUILD_DIR) -a -f $(PETSC_COMPLEX_BUILD_DIR)/lib/petsc/conf/petscrules ]; then \ dh_auto_clean -p$(PETSC_COMPLEX_DEV_PACKAGE) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_COMPLEX_BUILD_DIR); \ fi if [ -d $(PETSC_COMPLEX_DEBUG_BUILD_DIR) -a -f $(PETSC_COMPLEX_DEBUG_BUILD_DIR)/lib/petsc/conf/petscrules ]; then \ dh_auto_clean -p$(PETSC_COMPLEX_DEBUG_PACKAGE) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_COMPLEX_DEBUG_BUILD_DIR); \ fi if [ -d $(PETSC_REAL_DEBUG_BUILD_DIR) -a -f $(PETSC_REAL_DEBUG_BUILD_DIR)/lib/petsc/conf/petscrules ]; then \ dh_auto_clean -p$(PETSC_REAL_DEBUG_PACKAGE) -p$(PETSC_DOC_PACKAGE) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_REAL_DEBUG_BUILD_DIR); \ fi if [ -d $(PETSC64_REAL_BUILD_DIR) -a -f $(PETSC64_REAL_BUILD_DIR)/lib/petsc/conf/petscrules ]; then \ dh_auto_clean -p$(PETSC64_REAL_DEV_PACKAGE) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_REAL_BUILD_DIR); \ fi if [ -d $(PETSC64_COMPLEX_BUILD_DIR) -a -f $(PETSC64_COMPLEX_BUILD_DIR)/lib/petsc/conf/petscrules ]; then \ dh_auto_clean -p$(PETSC64_COMPLEX_DEV_PACKAGE) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_COMPLEX_BUILD_DIR); \ fi if [ -d $(PETSC64_COMPLEX_DEBUG_BUILD_DIR) -a -f $(PETSC64_COMPLEX_DEBUG_BUILD_DIR)/lib/petsc/conf/petscrules ]; then \ dh_auto_clean -p$(PETSC64_COMPLEX_DEBUG_PACKAGE) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_COMPLEX_DEBUG_BUILD_DIR); \ fi if [ -d $(PETSC64B_REAL_BUILD_DIR) -a -f $(PETSC64B_REAL_BUILD_DIR)/lib/petsc/conf/petscrules ]; then \ dh_auto_clean -p$(PETSC64B_REAL_DEV_PACKAGE) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64B_REAL_BUILD_DIR); \ fi override_dh_clean: override_dh_auto_clean dh_clean rm -f *.log *.log.bkp configtest.mod rm -f src/vec/vec/tests/x.h5 rm -f lib/petsc/conf/petscvariables rm -f reconfigure-*.py find config -name *.pyc | xargs rm -f rm -f CMakeLists.txt rm -rf $(PETSC_REAL_BUILD_DIR) $(PETSC_REAL_DEBUG_BUILD_DIR) $(PETSC_COMPLEX_BUILD_DIR) $(PETSC_COMPLEX_DEBUG_BUILD_DIR) \ $(PETSC64_REAL_BUILD_DIR) $(PETSC64_REAL_DEBUG_BUILD_DIR) $(PETSC64_COMPLEX_BUILD_DIR) $(PETSC64_COMPLEX_DEBUG_BUILD_DIR) \ $(PETSC64B_REAL_BUILD_DIR) override_dh_auto_configure: @echo ===================== $(PETSC_REAL_DEBUG_PACKAGE) ===================== if dh_auto_configure -p$(PETSC_REAL_DEBUG_PACKAGE) -p$(PETSC_DOC_PACKAGE) -- \ --with-debugging=1 \ --shared-library-extension=_real \ $(CONFIGURATION_OPTIONS) \ $(HYPRE_CONFIG) \ $(MUMPS_CONFIG) \ $(SUITESPARSE_CONFIG) \ $(SUPERLU_CONFIG) \ $(SUPERLUDIST_CONFIG) \ $(MKL_OPTIONS) \ $(FFTW_OPTIONS) \ $(CUDA_OPTIONS) \ --prefix=$(PETSC_REAL_DEBUG_DIR_PREFIX) \ --PETSC_ARCH=$(PETSC_REAL_DEBUG_BUILD_DIR) \ CFLAGS="$(CFLAGS_NO_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_NO_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_NO_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_NO_DEBUG_PREFIX_MAP)" \ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" MAKEFLAGS="$(MAKEFLAGS)"; then \ : ; \ else \ cat configure.log; \ false; \ fi @echo ===================== $(PETSC_REAL_DEV_PACKAGE) ===================== if dh_auto_configure -p$(PETSC_REAL_DEV_PACKAGE) -- \ --with-debugging=0 \ --shared-library-extension=_real \ $(CONFIGURATION_OPTIONS) \ $(HYPRE_CONFIG) \ $(MUMPS_CONFIG) \ $(SUITESPARSE_CONFIG) \ $(SUPERLU_CONFIG) \ $(SUPERLUDIST_CONFIG) \ $(MKL_OPTIONS) \ $(FFTW_OPTIONS) \ $(CUDA_OPTIONS) \ --prefix=$(PETSC_REAL_DIR_PREFIX) \ --PETSC_ARCH=$(PETSC_REAL_BUILD_DIR) \ CFLAGS="$(CFLAGS_NO_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_NO_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_NO_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_NO_DEBUG_PREFIX_MAP)" \ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" MAKEFLAGS="$(MAKEFLAGS)"; then \ : ; \ else \ cat configure.log; \ false; \ fi @echo ===================== $(PETSC_COMPLEX_DEV_PACKAGE) ===================== if dh_auto_configure -p$(PETSC_COMPLEX_DEV_PACKAGE) -- \ --with-debugging=0 \ --with-scalar-type=complex --shared-library-extension=_complex \ $(CONFIGURATION_OPTIONS) \ $(MUMPS_CONFIG) \ $(SUITESPARSE_CONFIG) \ $(SUPERLU_CONFIG) \ $(SUPERLUDIST_CONFIG) \ $(MKL_OPTIONS) \ $(FFTW_OPTIONS) \ $(CUDA_OPTIONS) \ --prefix=$(PETSC_COMPLEX_DIR_PREFIX) \ --PETSC_ARCH=$(PETSC_COMPLEX_BUILD_DIR) \ CFLAGS="$(CFLAGS_NO_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_NO_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_NO_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_NO_DEBUG_PREFIX_MAP)" \ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" MAKEFLAGS="$(MAKEFLAGS)"; then \ : ; \ else \ cat configure.log; \ false; \ fi @echo ===================== $(PETSC_COMPLEX_DEBUG_PACKAGE) ===================== if dh_auto_configure -p$(PETSC_COMPLEX_DEBUG_PACKAGE) -- \ --with-debugging=1 \ --with-scalar-type=complex --shared-library-extension=_complex \ $(CONFIGURATION_OPTIONS) \ $(MUMPS_CONFIG) \ $(SUITESPARSE_CONFIG) \ $(SUPERLU_CONFIG) \ $(SUPERLUDIST_CONFIG) \ $(MKL_OPTIONS) \ $(FFTW_OPTIONS) \ $(CUDA_OPTIONS) \ --prefix=$(PETSC_COMPLEX_DEBUG_DIR_PREFIX) \ --PETSC_ARCH=$(PETSC_COMPLEX_DEBUG_BUILD_DIR) \ CFLAGS="$(CFLAGS_NO_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_NO_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_NO_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_NO_DEBUG_PREFIX_MAP)" \ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" MAKEFLAGS="$(MAKEFLAGS)"; then \ : ; \ else \ cat configure.log; \ false; \ fi @echo ===================== $(PETSC64_REAL_DEBUG_PACKAGE) ===================== if dh_auto_configure -p$(PETSC64_REAL_DEBUG_PACKAGE) -- \ $(PETSC64_CONFIG) \ --with-debugging=1 \ --shared-library-extension=64_real \ $(CONFIGURATION_OPTIONS) \ $(HYPRE64_CONFIG) \ $(MUMPS64_CONFIG) \ $(SUITESPARSE64_CONFIG) \ $(SUPERLUDIST_CONFIG) \ $(MKL_OPTIONS) \ $(FFTW_OPTIONS) \ $(CUDA_OPTIONS) \ --prefix=$(PETSC64_REAL_DEBUG_DIR_PREFIX) \ --PETSC_ARCH=$(PETSC64_REAL_DEBUG_BUILD_DIR) \ CFLAGS="$(CFLAGS_NO_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_NO_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_NO_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_NO_DEBUG_PREFIX_MAP)" \ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" MAKEFLAGS="$(MAKEFLAGS)"; then \ : ; \ else \ cat configure.log; \ false; \ fi @echo ===================== $(PETSC64_REAL_DEV_PACKAGE) ===================== if dh_auto_configure -p$(PETSC64_REAL_DEV_PACKAGE) -- \ $(PETSC64_CONFIG) \ --with-debugging=0 \ --shared-library-extension=64_real \ $(CONFIGURATION_OPTIONS) \ $(HYPRE64_CONFIG) \ $(MUMPS64_CONFIG) \ $(SUITESPARSE64_CONFIG) \ $(SUPERLUDIST_CONFIG) \ $(MKL_OPTIONS) \ $(FFTW_OPTIONS) \ $(CUDA_OPTIONS) \ --prefix=$(PETSC64_REAL_DIR_PREFIX) \ --PETSC_ARCH=$(PETSC64_REAL_BUILD_DIR) \ CFLAGS="$(CFLAGS_NO_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_NO_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_NO_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_NO_DEBUG_PREFIX_MAP)" \ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" MAKEFLAGS="$(MAKEFLAGS)"; then \ : ; \ else \ cat configure.log; \ false; \ fi @echo ===================== $(PETSC64_COMPLEX_DEV_PACKAGE) ===================== if dh_auto_configure -p$(PETSC64_COMPLEX_DEV_PACKAGE) -- \ $(PETSC64_CONFIG) \ --with-debugging=0 \ --with-scalar-type=complex --shared-library-extension=64_complex \ $(CONFIGURATION_OPTIONS) \ $(MUMPS64_CONFIG) \ $(SUITESPARSE64_CONFIG) \ $(SUPERLUDIST_CONFIG) \ $(MKL_OPTIONS) \ $(FFTW_OPTIONS) \ $(CUDA_OPTIONS) \ --prefix=$(PETSC64_COMPLEX_DIR_PREFIX) \ --PETSC_ARCH=$(PETSC64_COMPLEX_BUILD_DIR) \ CFLAGS="$(CFLAGS_NO_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_NO_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_NO_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_NO_DEBUG_PREFIX_MAP)" \ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" MAKEFLAGS="$(MAKEFLAGS)"; then \ : ; \ else \ cat configure.log; \ false; \ fi @echo ===================== $(PETSC64_COMPLEX_DEBUG_PACKAGE) ===================== if dh_auto_configure -p$(PETSC64_COMPLEX_DEBUG_PACKAGE) -- \ $(PETSC64_CONFIG) \ --with-debugging=1 \ --with-scalar-type=complex --shared-library-extension=64_complex \ $(CONFIGURATION_OPTIONS) \ $(MUMPS64_CONFIG) \ $(SUITESPARSE64_CONFIG) \ $(SUPERLUDIST_CONFIG) \ $(MKL_OPTIONS) \ $(FFTW_OPTIONS) \ $(CUDA_OPTIONS) \ --prefix=$(PETSC64_COMPLEX_DEBUG_DIR_PREFIX) \ --PETSC_ARCH=$(PETSC64_COMPLEX_DEBUG_BUILD_DIR) \ CFLAGS="$(CFLAGS_NO_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_NO_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_NO_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_NO_DEBUG_PREFIX_MAP)" \ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" MAKEFLAGS="$(MAKEFLAGS)"; then \ : ; \ else \ cat configure.log; \ false; \ fi @echo ===================== $(PETSC64B_REAL_DEV_PACKAGE) ===================== @echo sticazzi9 if dh_auto_configure -p$(PETSC64B_REAL_DEV_PACKAGE) -- \ $(PETSC64B_CONFIG) \ --with-debugging=0 \ --shared-library-extension=64i64b_real \ $(CONFIGURATION_OPTIONS) \ $(SUPERLU64B_CONFIG) \ $(HYPRE64_CONFIG) \ $(MKL64B_OPTIONS) \ --prefix=$(PETSC64B_REAL_DIR_PREFIX) \ --PETSC_ARCH=$(PETSC64B_REAL_BUILD_DIR) \ CFLAGS="$(CFLAGS_NO_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_NO_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_NO_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_NO_DEBUG_PREFIX_MAP)" \ CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" MAKEFLAGS="$(MAKEFLAGS)"; then \ : ; \ else \ cat configure.log; \ false; \ fi override_dh_auto_build: dh_auto_build -p$(PETSC_REAL_DEBUG_PACKAGE) -p$(PETSC_DOC_PACKAGE) -p$(PETSC_DEV_EXAMPLE_PACKAGE) -- V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_REAL_DEBUG_BUILD_DIR) \ CFLAGS="$(CFLAGS_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_DEBUG_PREFIX_MAP)" dh_auto_build -p$(PETSC_REAL_DEV_PACKAGE) -- V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_REAL_BUILD_DIR) \ CFLAGS="$(CFLAGS_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_DEBUG_PREFIX_MAP)" dh_auto_build -p$(PETSC_COMPLEX_DEV_PACKAGE) -- V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_COMPLEX_BUILD_DIR) \ CFLAGS="$(CFLAGS_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_DEBUG_PREFIX_MAP)" dh_auto_build -p$(PETSC_COMPLEX_DEBUG_PACKAGE) -- V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_COMPLEX_DEBUG_BUILD_DIR) \ CFLAGS="$(CFLAGS_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_DEBUG_PREFIX_MAP)" dh_auto_build -p$(PETSC64_REAL_DEBUG_PACKAGE) -- V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_REAL_DEBUG_BUILD_DIR) \ CFLAGS="$(CFLAGS_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_DEBUG_PREFIX_MAP)" dh_auto_build -p$(PETSC64_REAL_DEV_PACKAGE) -- V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_REAL_BUILD_DIR) \ CFLAGS="$(CFLAGS_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_DEBUG_PREFIX_MAP)" dh_auto_build -p$(PETSC64_COMPLEX_DEV_PACKAGE) -- V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_COMPLEX_BUILD_DIR) \ CFLAGS="$(CFLAGS_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_DEBUG_PREFIX_MAP)" dh_auto_build -p$(PETSC64_COMPLEX_DEBUG_PACKAGE) -- V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_COMPLEX_DEBUG_BUILD_DIR) \ CFLAGS="$(CFLAGS_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_DEBUG_PREFIX_MAP)" dh_auto_build -p$(PETSC64B_REAL_DEV_PACKAGE) -- V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64B_REAL_BUILD_DIR) \ CFLAGS="$(CFLAGS_DEBUG_PREFIX_MAP)" CXXFLAGS="$(CXXFLAGS_DEBUG_PREFIX_MAP)" \ FCFLAGS="$(FCFLAGS_DEBUG_PREFIX_MAP)" FFLAGS="$(FFLAGS_DEBUG_PREFIX_MAP)" # these arches started failing to complete tests in PETSc 3.9 # so skip their tests until a workaround or fix is known ARCH_NO_TEST_LIST = armel armhf i386 mips64el hppa ia64 powerpc 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-indep: echo "Tests are run with arch-any builds". override_dh_auto_test-arch: set -e; \ if [ "$(RUNTEST)" = "no" ]; then \ echo Tests have been disabled on $(DEB_HOST_ARCH); \ else make -j$(CPU_COUNT) check_build VERBOSE=1 V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_REAL_DEBUG_BUILD_DIR) \ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(PETSC_REAL_DEBUG_BUILD_DIR)/lib; \ make -j$(CPU_COUNT) check_build VERBOSE=1 V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_REAL_BUILD_DIR) \ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(PETSC_REAL_BUILD_DIR)/lib; \ make -j$(CPU_COUNT) check_build VERBOSE=1 V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_COMPLEX_BUILD_DIR) \ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(PETSC_COMPLEX_BUILD_DIR)/lib; \ make -j$(CPU_COUNT) check_build VERBOSE=1 V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_COMPLEX_DEBUG_BUILD_DIR) \ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(PETSC_COMPLEX_DEBUG_BUILD_DIR)/lib; \ make -j$(CPU_COUNT) check_build VERBOSE=1 V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_REAL_DEBUG_BUILD_DIR) \ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(PETSC64_REAL_DEBUG_BUILD_DIR)/lib; \ make -j$(CPU_COUNT) check_build VERBOSE=1 V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_REAL_BUILD_DIR) \ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(PETSC64_REAL_BUILD_DIR)/lib; \ make -j$(CPU_COUNT) check_build VERBOSE=1 V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_COMPLEX_BUILD_DIR) \ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(PETSC64_COMPLEX_BUILD_DIR)/lib; \ make -j$(CPU_COUNT) check_build VERBOSE=1 V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_COMPLEX_DEBUG_BUILD_DIR) \ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(PETSC64_COMPLEX_DEBUG_BUILD_DIR)/lib; \ make -j$(CPU_COUNT) check_build VERBOSE=1 V=1 \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64B_REAL_BUILD_DIR) \ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(PETSC64B_REAL_BUILD_DIR)/lib; \ fi override_dh_auto_install: dh_auto_install -p$(PETSC_REAL_DEBUG_PACKAGE) -p$(PETSC_DOC_PACKAGE) -p$(PETSC_DEV_EXAMPLE_PACKAGE) --destdir=$(PACKAGE_REAL_DEBUG_INSTALL_DIR) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_REAL_DEBUG_BUILD_DIR) dh_auto_install -p$(PETSC_REAL_DEV_PACKAGE) --destdir=$(PACKAGE_REAL_INSTALL_DIR) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_REAL_BUILD_DIR) dh_auto_install -p$(PETSC_COMPLEX_DEV_PACKAGE) --destdir=$(PACKAGE_COMPLEX_INSTALL_DIR) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_COMPLEX_BUILD_DIR) dh_auto_install -p$(PETSC_COMPLEX_DEBUG_PACKAGE) --destdir=$(PACKAGE_COMPLEX_DEBUG_INSTALL_DIR) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_COMPLEX_DEBUG_BUILD_DIR) dh_auto_install -p$(PETSC64_REAL_DEBUG_PACKAGE) --destdir=$(PACKAGE_64_REAL_DEBUG_INSTALL_DIR) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_REAL_DEBUG_BUILD_DIR) dh_auto_install -p$(PETSC64_REAL_DEV_PACKAGE) --destdir=$(PACKAGE_64_REAL_INSTALL_DIR) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_REAL_BUILD_DIR) dh_auto_install -p$(PETSC64_COMPLEX_DEV_PACKAGE) --destdir=$(PACKAGE_64_COMPLEX_INSTALL_DIR) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_COMPLEX_BUILD_DIR) dh_auto_install -p$(PETSC64_COMPLEX_DEBUG_PACKAGE) --destdir=$(PACKAGE_64_COMPLEX_DEBUG_INSTALL_DIR) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64_COMPLEX_DEBUG_BUILD_DIR) dh_auto_install -p$(PETSC64B_REAL_DEV_PACKAGE) --destdir=$(PACKAGE_64B_REAL_INSTALL_DIR) -- \ PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC64B_REAL_BUILD_DIR) override_dh_install: dh_install -p$(PETSC_REAL_PACKAGE) --sourcedir $(PACKAGE_REAL_INSTALL_DIR) $(PETSC_REAL_DIR_PREFIX)/lib/libpetsc_real.so.$(PETSC_VERSION) usr/lib/$(DEB_HOST_MULTIARCH) dh_install -p$(PETSC_REAL_DEV_PACKAGE) --sourcedir $(PACKAGE_REAL_INSTALL_DIR) --autodest --exclude='include/*.mod' --exclude=*html --exclude=conf/uninstall.py --exclude=libpetsc_real.so.$(PETSC_VERSION) --exclude=share/ --exclude=include/petsc/ --exclude=lib/petsc/bin/ usr dh_install -p$(PETSC_REAL_DEBUG_PACKAGE) --sourcedir $(PACKAGE_REAL_DEBUG_INSTALL_DIR) --autodest --exclude='include/*.mod' --exclude=*html --exclude=conf/uninstall.py --exclude=share/ --exclude=include/petsc/ --exclude=lib/petsc/bin/ usr dh_install -p$(PETSC_COMPLEX_PACKAGE) --sourcedir $(PACKAGE_COMPLEX_INSTALL_DIR) $(PETSC_COMPLEX_DIR_PREFIX)/lib/libpetsc_complex.so.$(PETSC_VERSION) usr/lib/$(DEB_HOST_MULTIARCH) dh_install -p$(PETSC_COMPLEX_DEV_PACKAGE) --sourcedir $(PACKAGE_COMPLEX_INSTALL_DIR) --autodest --exclude='include/*.mod' --exclude=*html --exclude=conf/uninstall.py --exclude=libpetsc_complex.so.$(PETSC_VERSION) --exclude=share/ --exclude=include/petsc/ --exclude=lib/petsc/bin/ usr dh_install -p$(PETSC_COMPLEX_DEBUG_PACKAGE) --sourcedir $(PACKAGE_COMPLEX_DEBUG_INSTALL_DIR) --autodest --exclude='include/*.mod' --exclude=*html --exclude=conf/uninstall.py --exclude=share/ --exclude=include/petsc/ --exclude=lib/petsc/bin/ usr dh_install -p$(PETSC64_REAL_PACKAGE) --sourcedir $(PACKAGE_64_REAL_INSTALL_DIR) $(PETSC64_REAL_DIR_PREFIX)/lib/libpetsc64_real.so.$(PETSC_VERSION) usr/lib/$(DEB_HOST_MULTIARCH) dh_install -p$(PETSC64_REAL_DEV_PACKAGE) --sourcedir $(PACKAGE_64_REAL_INSTALL_DIR) --autodest --exclude='include/*.mod' --exclude=*html --exclude=conf/uninstall.py --exclude=libpetsc64_real.so.$(PETSC_VERSION) --exclude=share/ --exclude=include/petsc/ --exclude=lib/petsc/bin/ usr dh_install -p$(PETSC64_REAL_DEBUG_PACKAGE) --sourcedir $(PACKAGE_64_REAL_DEBUG_INSTALL_DIR) --autodest --exclude='include/*.mod' --exclude=*html --exclude=conf/uninstall.py --exclude=share/ --exclude=include/petsc/ --exclude=lib/petsc/bin/ usr dh_install -p$(PETSC64_COMPLEX_PACKAGE) --sourcedir $(PACKAGE_64_COMPLEX_INSTALL_DIR) $(PETSC64_COMPLEX_DIR_PREFIX)/lib/libpetsc64_complex.so.$(PETSC_VERSION) usr/lib/$(DEB_HOST_MULTIARCH) dh_install -p$(PETSC64_COMPLEX_DEV_PACKAGE) --sourcedir $(PACKAGE_64_COMPLEX_INSTALL_DIR) --autodest --exclude='include/*.mod' --exclude=*html --exclude=conf/uninstall.py --exclude=libpetsc64_complex.so.$(PETSC_VERSION) --exclude=share/ --exclude=include/petsc/ --exclude=lib/petsc/bin/ usr dh_install -p$(PETSC64_COMPLEX_DEBUG_PACKAGE) --sourcedir $(PACKAGE_64_COMPLEX_DEBUG_INSTALL_DIR) --autodest --exclude='include/*.mod' --exclude=*html --exclude=conf/uninstall.py --exclude=share/ --exclude=include/petsc/ --exclude=lib/petsc/bin/ usr dh_install -p$(PETSC64B_REAL_PACKAGE) --sourcedir $(PACKAGE_64B_REAL_INSTALL_DIR) $(PETSC64B_REAL_DIR_PREFIX)/lib/libpetsc64i64b_real.so.$(PETSC_VERSION) usr/lib/$(DEB_HOST_MULTIARCH) dh_install -p$(PETSC64B_REAL_DEV_PACKAGE) --sourcedir $(PACKAGE_64B_REAL_INSTALL_DIR) --autodest --exclude='include/*.mod' --exclude=*html --exclude=conf/uninstall.py --exclude=libpetsc64i64b_real.so.$(PETSC_VERSION) --exclude=share/ --exclude=include/petsc/ --exclude=lib/petsc/bin/ usr dh_install -p$(PETSC_DEV_COMMON_PACKAGE) --sourcedir $(PACKAGE_REAL_DEBUG_INSTALL_DIR)/$(PETSC_REAL_DEBUG_DIR_PREFIX) --exclude=share/petsc/examples/ --exclude=share/petsc/datafiles/ share usr/share/petsc/$(PETSC_SONAME_VERSION) dh_install -p$(PETSC_DEV_COMMON_PACKAGE) --sourcedir $(PACKAGE_REAL_DEBUG_INSTALL_DIR)/$(PETSC_REAL_DEBUG_DIR_PREFIX) --exclude=*html include/petsc usr/share/petsc/$(PETSC_SONAME_VERSION)/include dh_install -p$(PETSC_DEV_COMMON_PACKAGE) --sourcedir $(PACKAGE_REAL_DEBUG_INSTALL_DIR)/$(PETSC_REAL_DEBUG_DIR_PREFIX) lib/petsc/bin usr/share/petsc/$(PETSC_SONAME_VERSION)/lib/petsc dh_install -p$(PETSC_DEV_EXAMPLE_PACKAGE) # use local MathJax.js if [ -d debian/$(PETSC_DEV_EXAMPLE_PACKAGE)/usr/share/petsc/$(PETSC_SONAME_VERSION) ]; then \ find debian/$(PETSC_DEV_EXAMPLE_PACKAGE)/usr/share/petsc/$(PETSC_SONAME_VERSION) -name "*html" | \ xargs sed -i "s|https://cdn.mathjax.org/mathjax/latest/MathJax.js|file:///usr/share/javascript/mathjax/MathJax.js|" ; \ fi override_dh_installdocs-indep: dh_installdocs -i rm -rf ./debian/$(PETSC_DOC_PACKAGE)/usr/share/doc/$(PETSC_DOC_PACKAGE)/docs/sphinx_docs # dh_install can't install .html while preserving directory structure # so first install all include files to docs... dh_install -p$(PETSC_DOC_PACKAGE) --sourcedir $(PACKAGE_REAL_DEBUG_INSTALL_DIR) $(PETSC_REAL_DEBUG_DIR_PREFIX)/include usr/share/doc/$(PETSC_DOC_PACKAGE) # test if header docs were installed (in a binary-only build they won't be) if [ -d ./debian/$(PETSC_DOC_PACKAGE)/usr/share/doc/$(PETSC_DOC_PACKAGE)/include ]; then \ # then remove non-html files \ find ./debian/$(PETSC_DOC_PACKAGE)/usr/share/doc/$(PETSC_DOC_PACKAGE)/include/ -type f -not -name "*.html" -delete ; \ # make header docs "generic" (pointing to headers in preferred alternative /usr/include/petsc) \ for hdoc in `find ./debian/$(PETSC_DOC_PACKAGE)/usr/share/doc/$(PETSC_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/petsc$${hdir}/$${h}\"|" -i $${hdoc}; \ done \ fi override_dh_sphinxdoc-indep: # various js scripts provided with upstream source were built with a different sphinx version not recognized by dh_sphinxdoc dh_sphinxdoc -i -Xjquery -Xsearchtools -Xunderscore -Xdoctools for j in jquery searchtools underscore doctools; do \ rm -rf debian/$(PETSC_DOC_PACKAGE)/usr/share/doc/$(PETSC_DOC_PACKAGE)/html/_static/$${j}.js ; \ ln -s /usr/share/sphinx/themes/basic/static/$${j}.js debian/$(PETSC_DOC_PACKAGE)/usr/share/doc/$(PETSC_DOC_PACKAGE)/html/_static/$${j}.js ; \ done rm -rf debian/$(PETSC_DOC_PACKAGE)/usr/share/doc/$(PETSC_DOC_PACKAGE)/html/_static/jquery-?.?.?.js rm -rf debian/$(PETSC_DOC_PACKAGE)/usr/share/doc/$(PETSC_DOC_PACKAGE)/html/_static/underscore-?.?.?.js # change external references to local js scripts (avoid privacy breaches) for j in contrib/auto-render.min.js katex.min.js katex.min.css; do \ grep -ls "https://cdn.jsdelivr.net/npm/.*/dist/$$j" debian/$(PETSC_DOC_PACKAGE)/usr/share/doc/$(PETSC_DOC_PACKAGE)/* -R \ | xargs sed -i "s|https://cdn.jsdelivr.net/npm/.*/dist/$$j|/usr/share/doc/$(PETSC_DOC_PACKAGE)/html/js/`basename $$j`|g"; \ done if [ -d debian/$(PETSC_DEV_COMMON_PACKAGE)/usr/share/petsc/$(PETSC_SONAME_VERSION)/share/petsc/saws ]; then \ find debian/$(PETSC_DEV_COMMON_PACKAGE)/usr/share/petsc/$(PETSC_SONAME_VERSION)/share/petsc/saws -name "*html" | \ xargs sed -i "s|https://www.mcs.anl.gov/research/projects/saws/js/jquery-.*[^custom].js|file://usr/share/sphinx/themes/basic/static/jquery.js|; \ s|https://www.mcs.anl.gov/research/projects/saws/js/jquery-ui.*.js|file://usr/share/javascript/jquery-ui/jquery-ui.js|; \ s|http://cdn.mathjax.org/mathjax/latest/MathJax.js|file:///usr/share/javascript/mathjax/MathJax.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_fixperms-indep: dh_fixperms chmod a-x debian/$(PETSC_DEV_EXAMPLE_PACKAGE)/usr/share/petsc/$(PETSC_SONAME_VERSION)/share/petsc/datafiles/matrices/* chmod a-x debian/$(PETSC_DEV_EXAMPLE_PACKAGE)/usr/share/petsc/$(PETSC_SONAME_VERSION)/share/petsc/examples/config/example_template.py chmod a+x debian/$(PETSC_DEV_EXAMPLE_PACKAGE)/usr/share/petsc/$(PETSC_SONAME_VERSION)/share/petsc/examples/src/ts/tutorials/hybrid/run.sh # python auxiliary modules and support files need not be executable # let PetscBinaryIO_tests.py remain executable, but add hashbang chmod a-x debian/$(PETSC_DEV_COMMON_PACKAGE)/usr/share/petsc/$(PETSC_SONAME_VERSION)/lib/petsc/bin/petsc_conf.py chmod a-x debian/$(PETSC_DEV_COMMON_PACKAGE)/usr/share/petsc/$(PETSC_SONAME_VERSION)/lib/petsc/bin/PetscBinaryIO.py sed '1 s|^|#!/usr/bin/python3\n|' -i debian/$(PETSC_DEV_COMMON_PACKAGE)/usr/share/petsc/$(PETSC_SONAME_VERSION)/lib/petsc/bin/PetscBinaryIO_tests.py # matlab scripts should not be executable for matlabdir in `find debian/*/usr -name matlab | grep "petsc/matlab" `; do \ find $$matlabdir -name *.m | xargs chmod a-x; \ chmod a-x $$matlabdir/laplacianlicense.txt; \ done override_dh_python3-indep: for p in configureTAS.py extract.py; do chmod a+x debian/$(PETSC_DEV_COMMON_PACKAGE)/usr/share/petsc/$(PETSC_SONAME_VERSION)/lib/petsc/bin/$$p; done dh_python3 -i --shebang=/usr/bin/python3 dh_python3 --shebang=/usr/bin/python3 -p$(PETSC_DEV_COMMON_PACKAGE) /usr/share/petsc/$(PETSC_SONAME_VERSION)/lib/petsc/bin dh_python3 --shebang=/usr/bin/python3 -p$(PETSC_DEV_EXAMPLE_PACKAGE) /usr/share/petsc/$(PETSC_SONAME_VERSION)/share/petsc/examples dh_python3 --shebang=/usr/bin/python3 -p$(PETSC_DEV_EXAMPLE_PACKAGE) /usr/share/petsc/$(PETSC_SONAME_VERSION)/share/petsc/datafiles override_dh_python3-arch: dh_python3 -a --shebang=/usr/bin/python3 override_dh_installdeb: dh_installdeb for pkg in $$(dh_listpackages -a); do \ sed -i -e 's/__PETSC_SONAME_VERSION__/$(PETSC_SONAME_VERSION)/; s/__PETSC_VERSION__/$(PETSC_VERSION)/; s/__DEB_HOST_MULTIARCH__/$(DEB_HOST_MULTIARCH)/' debian/$$pkg/DEBIAN/*; \ done override_dh_gencontrol: dh_gencontrol -- -VMPI:Depends="$(MPI_DEPENDS)" override_dh_strip: dh_strip --dbg-package=$(PETSC_REAL_DEBUG_PACKAGE) dh_strip --dbg-package=$(PETSC_COMPLEX_DEBUG_PACKAGE) dh_strip --dbg-package=$(PETSC64_REAL_DEBUG_PACKAGE) dh_strip --dbg-package=$(PETSC64_COMPLEX_DEBUG_PACKAGE) # a sample binary build is made to build docs, but those binaries are not installed in an arch-indep build override_dh_missing-indep: dh_missing --list-missing USCAN_DESTDIR := $(CURDIR) get-orig-source: uscan --no-conf --download-current-version --repack --compression xz debian/control: Source: petsc Section: devel Priority: optional Maintainer: Debian Science Maintainers <debian-science-maintain...@lists.alioth.debian.org> Uploaders: "Adam C. Powell, IV" <hazel...@debian.org>, Drew Parsons <dpars...@debian.org> Standards-Version: 4.5.1 Build-Depends: debhelper-compat (= 13), python3, gfortran, pkg-config, dh-python, dh-fortran-mod, gdb, mpi-default-dev (>= 1.0.2), ocl-icd-opencl-dev | opencl-dev, libblas-dev | libopenblas-dev | libatlas-base-dev | libblas.so, liblapack-dev | libopenblas-dev | libatlas-base-dev | liblapack.so, libsuitesparse-dev (>= 1:5.6.0), libhypre-dev (>= 2.15.1), libptscotch-dev, libhdf5-mpi-dev (>= 1.10.6+repack-1), libscalapack-mpi-dev, libmumps-dev, libmumps64-dev, libfftw3-dev, libfftw3-mpi-dev, libssl-dev, libsuperlu-dev (>= 5.2.1), libsuperlu-dist-dev (>= 6.1.1), sphinx-common | python3-sphinx | dh-sequence-sphinxdoc Build-Depends-Indep: libjs-mathjax, libjs-jquery, libjs-jquery-ui Vcs-Git: https://salsa.debian.org/science-team/petsc.git Vcs-Browser: https://salsa.debian.org/science-team/petsc Homepage: http://www.mcs.anl.gov/petsc Package: petsc-dev Architecture: all Multi-Arch: foreign Section: libdevel Depends: libpetsc-real-dev, ${misc:Depends} Description: Virtual package depending on latest PETSc development package PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This metapackage installs libpetsc-real-dev, which will always depend on the most recent version of PETSc with real number support. So if you install it then you will get upgrades automatically. Package: libpetsc-real-dev Architecture: all Multi-Arch: foreign Section: libdevel Depends: libpetsc-real3.14-dev, ${misc:Depends} Description: Virtual package depending on latest PETSc development package PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This is a dummy package which depends on the most recent version of libpetsc-realX-dev with real number support (X=version). Package: libpetsc-complex-dev Architecture: all Multi-Arch: foreign Section: libdevel Depends: libpetsc-complex3.14-dev, ${misc:Depends} Description: Virtual package depending on latest PETSc development package PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This is a dummy package which depends on the most recent version of libpetsc-complexX-dev with complex number support (X=version). Package: libpetsc-real3.14-dev Multi-Arch: same Architecture: any Section: libdevel Depends: libpetsc-real3.14 (= ${binary:Version}), libpetsc3.14-dev-common (= ${source:Version}), ${MPI:Depends}, libsuitesparse-dev, libhypre-dev (>= 2.15.1), libptscotch-dev, libscalapack-mpi-dev, libmumps-dev, libfftw3-dev, libfftw3-mpi-dev, libssl-dev, ocl-icd-opencl-dev | opencl-dev, gfortran, libhdf5-mpi-dev (>= 1.8.8), libsuperlu-dev (>= 5.2), libsuperlu-dist-dev, ${misc:Depends}, python3, ${python3:Depends} Conflicts: libpetsc3.6.3-dev (<< 3.6.3.dfsg2-2), libpetsc-complex-3.6.3-dev (<< 3.6.3.dfsg2-2), libpetsc3.6.2-dev (<= 3.6.2.dfsg1-3), libpetsc-complex-3.6.2-dev (<= 3.6.2.dfsg1-3) Recommends: libpetsc3.14-dev-examples, ksh | mksh | pdksh | zsh Suggests: petsc-dev, libpetsc-real3.14-dbg (= ${binary:Version}), petsc3.14-doc, libluminate-dev Description: Static libraries, shared links, header files for PETSc PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package provides the development files for building applications using PETSc 3.14 with real numbers. Package: libpetsc-real3.14 Architecture: any Multi-Arch: same Section: libs Provides: libpetsc3.14 Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Conflicts: libpetsc3.6 (<< 3.6.2.dfsg1-4) Breaks: libpetsc-real3.10, libslepc-real3.10, libpetsc3.10-dev-common, libpetsc3.10-dev-examples Replaces: libpetsc3.6 (<< 3.6.2.dfsg1-4) Description: Shared libraries for version 3.14 of PETSc PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package contains the PETSc 3.14 shared library for real numbers. . It provides soname libpetsc-real3.14 Package: libpetsc3.14-dev-common Architecture: all Multi-Arch: foreign Section: libdevel Depends: libjs-jquery, libjs-jquery-ui, libjs-mathjax, ${misc:Depends}, ${python3:Depends}, ${sphinxdoc:Depends} Recommends: libpetsc-real3.14-dev | libpetsc-complex3.14-dev Description: Common header and support dev files for PETSc PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package provides header and other support files common to the various dev packages (with real or complex number support) for PETSc 3.14. Package: libpetsc3.14-dev-examples Architecture: all Multi-Arch: foreign Section: libdevel Depends: ${misc:Depends}, ${python3:Depends}, libjs-mathjax Recommends: ksh | mksh | pdksh | zsh, libpetsc-real3.14-dev | libpetsc-complex3.14-dev | libpetsc-real3.14-dbg | libpetsc-complex3.14-dbg Suggests: petsc3.14-doc Description: Static libraries, shared links, header files for PETSc PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package provides example, test, and tutorial scripts for PETSc 3.14. Package: libpetsc-real3.14-dbg Architecture: any Multi-Arch: same Section: debug Pre-Depends: ${misc:Pre-Depends} Depends: libpetsc-real3.14-dev (= ${binary:Version}), libpetsc3.14-dev-common (= ${source:Version}), ${misc:Depends}, ${shlibs:Depends}, python3, ${python3:Depends} Recommends: libpetsc3.14-dev-examples, ksh | mksh | pdksh | zsh Provides: petsc3.14-dbg Description: Debugging libraries for PETSc PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package provides the development files and debugging libraries for debugging applications using PETSc 3.14 with real numbers. . Libraries include unstripped symbols, but this package is also built with internal PETSc debugging activated. Package: petsc3.14-doc Architecture: all Multi-Arch: foreign Section: doc Depends: sphinx-common, ${misc:Depends}, ${sphinxdoc:Depends} Suggests: libpetsc-real3.14-dev (= ${binary:Version}), illuminator-doc Description: Documentation and examples for PETSc PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package contains documentation for developing with PETSc 3.14. Package: libpetsc-complex3.14-dev Architecture: any Multi-Arch: same Section: libdevel Depends: libpetsc-complex3.14 (= ${binary:Version}), libpetsc3.14-dev-common (= ${source:Version}), ${MPI:Depends}, libsuitesparse-dev, libptscotch-dev, libscalapack-mpi-dev, libmumps-dev, libfftw3-dev, libfftw3-mpi-dev, libssl-dev, ocl-icd-opencl-dev | opencl-dev, gfortran, libhdf5-mpi-dev (>= 1.8.8), libsuperlu-dev (>= 5.2), libsuperlu-dist-dev, ${misc:Depends}, python3, ${python3:Depends} Conflicts: libpetsc-complex-3.6.3-dev (<< 3.6.3.dfsg2-2), libpetsc3.6.3-dev (<< 3.6.3.dfsg2-2), libpetsc3.6.2-dev (<= 3.6.2.dfsg1-3), libpetsc-complex-3.6.2-dev (<= 3.6.2.dfsg1-3) Recommends: libpetsc3.14-dev-examples, ksh | mksh | pdksh | zsh Suggests: petsc-dev, libpetsc-complex3.14-dbg (= ${binary:Version}), petsc3.14-doc, libluminate-dev Description: Static libraries, shared links, header files for PETSc PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package provides the development files for building applications using PETSc 3.14 with support for complex numbers. . Note HYPRE is not supported with PETSc complex. Package: libpetsc-complex3.14 Architecture: any Multi-Arch: same Section: libs Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Conflicts: libpetsc-complex-3.6 (<< 3.6.2.dfsg1-4) Breaks: libpetsc-complex3.10, libslepc-complex3.10, libpetsc3.10-dev-common, libpetsc3.10-dev-examples Replaces: libpetsc-complex-3.6 (<< 3.6.2.dfsg1-4) Description: Shared libraries for version 3.14 of PETSc with Complex Numbers PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package contains the PETSc 3.14 shared library, supporting complex numbers. . It provides soname libpetsc-complex3.14 Package: libpetsc-complex3.14-dbg Architecture: any Multi-Arch: same Section: debug Pre-Depends: ${misc:Pre-Depends} Depends: libpetsc-complex3.14-dev (= ${binary:Version}), libpetsc3.14-dev-common (= ${source:Version}), ${misc:Depends}, ${shlibs:Depends}, python3, ${python3:Depends} Recommends: libpetsc3.14-dev-examples, ksh | mksh | pdksh | zsh Provides: petsc-complex3.14-dbg Description: Debugging libraries for PETSc PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package provides the development files and debugging libraries for debugging applications using PETSc 3.14 with complex number support. . Libraries include unstripped symbols, but this package is also built with internal PETSc debugging activated. Package: petsc64-dev Architecture: all Multi-Arch: foreign Section: libdevel Depends: libpetsc64-real-dev, ${misc:Depends} Description: Virtual package depending on latest 64-bit PETSc development package PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This metapackage installs libpetsc64-real-dev, which will always depend on the most recent version of PETSc with real number support and 64-bit indexing. So if you install it then you will get upgrades automatically. Package: libpetsc64-real-dev Architecture: all Multi-Arch: foreign Section: libdevel Depends: libpetsc64-real3.14-dev, ${misc:Depends} Description: Virtual package depending on latest 64-bit PETSc development package PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This is a dummy package which depends on the most recent version of libpetsc64-realX-dev with real number support and 64-bit indexing (X=version). Package: libpetsc64-complex-dev Architecture: all Multi-Arch: foreign Section: libdevel Depends: libpetsc64-complex3.14-dev, ${misc:Depends} Description: Latest 64-bit PETSc development package with complex numbers PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This is a dummy package which depends on the most recent version of libpetsc64-complexX-dev with complex number support and 64-bit indexing (X=version). Package: libpetsc64-real3.14-dev Multi-Arch: same Architecture: any Section: libdevel Depends: libpetsc64-real3.14 (= ${binary:Version}), libpetsc3.14-dev-common (= ${source:Version}), ${MPI:Depends}, libsuitesparse-dev, libhypre-dev (>= 2.15.1), libptscotch-dev, libscalapack-mpi-dev, libmumps64-dev, libfftw3-dev, libfftw3-mpi-dev, libssl-dev, ocl-icd-opencl-dev | opencl-dev, gfortran, libhdf5-mpi-dev (>= 1.8.8), libsuperlu-dev (>= 5.2), libsuperlu-dist-dev, ${misc:Depends}, python3, ${python3:Depends} Recommends: libpetsc3.14-dev-examples, ksh | mksh | pdksh | zsh Suggests: petsc64-dev, libpetsc64-real3.14-dbg (= ${binary:Version}), petsc3.14-doc, libluminate-dev Description: Static libraries, shared links, header files for 64-bit PETSc PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package provides the development files for building applications using PETSc 3.14 with real numbers and 64-bit indexing. Package: libpetsc64-real3.14 Architecture: any Multi-Arch: same Section: libs Provides: libpetsc64-3.14 Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Description: Shared libraries for version 3.14 of 64-bit PETSc PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package contains the PETSc 3.14 shared library for real numbers and 64-bit indexing. . It provides soname libpetsc-real3.14 Package: libpetsc64i64b-real3.14-dev Multi-Arch: same Architecture: any Section: libdevel Depends: libpetsc64i64b-real3.14 (= ${binary:Version}), libpetsc3.14-dev-common (= ${source:Version}), ${MPI:Depends}, libptscotch-dev, libscalapack-mpi-dev, libssl-dev, ocl-icd-opencl-dev | opencl-dev, gfortran, libhdf5-mpi-dev (>= 1.8.8), ${misc:Depends}, python3, ${python3:Depends} Recommends: libpetsc3.14-dev-examples, ksh | mksh | pdksh | zsh Suggests: petsc64-dev, petsc3.14-doc, libluminate-dev Description: Static libraries, shared links, header files for 64-bit PETSc PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package provides the development files for building applications using PETSc 3.14 with real numbers, 64-bit indexing, and 64-bit LAPACK/BLAS. Package: libpetsc64i64b-real3.14 Architecture: any Multi-Arch: same Section: libs Provides: libpetsc64i64b-3.14 Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Description: Shared libraries for version 3.14 of 64-bit PETSc PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package contains the PETSc 3.14 shared library for real numbers, 64-bit indexing, and 64-bit LAPACK/BLAS.. . It provides soname libpetsc-real3.14 Package: libpetsc64-real3.14-dbg Architecture: any Multi-Arch: same Section: debug Pre-Depends: ${misc:Pre-Depends} Depends: libpetsc-real3.14-dev (= ${binary:Version}), libpetsc3.14-dev-common (= ${source:Version}), ${misc:Depends}, ${shlibs:Depends}, python3, ${python3:Depends} Recommends: libpetsc3.14-dev-examples, ksh | mksh | pdksh | zsh Provides: petsc64-3.14-dbg Description: Debugging libraries for PETSc PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package provides the development files and debugging libraries for debugging applications using PETSc 3.14 with real numbers and 64-bit indexing. . Libraries include unstripped symbols, but this package is also built with internal PETSc debugging activated. Package: libpetsc64-complex3.14-dev Architecture: any Multi-Arch: same Section: libdevel Depends: libpetsc64-complex3.14 (= ${binary:Version}), libpetsc3.14-dev-common (= ${source:Version}), ${MPI:Depends}, libsuitesparse-dev, libptscotch-dev, libscalapack-mpi-dev, libmumps64-dev, libfftw3-dev, libfftw3-mpi-dev, libssl-dev, ocl-icd-opencl-dev | opencl-dev, gfortran, libhdf5-mpi-dev (>= 1.8.8), libsuperlu-dev (>= 5.2), libsuperlu-dist-dev, ${misc:Depends}, python3, ${python3:Depends} Recommends: libpetsc3.14-dev-examples, ksh | mksh | pdksh | zsh Suggests: petsc64-dev, libpetsc64-complex3.14-dbg (= ${binary:Version}), petsc3.14-doc, libluminate-dev Description: Development files for 64-bit PETSc with complex numbers PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package provides the development files for building applications using PETSc 3.14 with support for complex numbers and 64-bit indexing. . Note HYPRE is not supported with PETSc complex. Package: libpetsc64-complex3.14 Architecture: any Multi-Arch: same Section: libs Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Description: Shared libraries for version 3.14 of 64-bit PETSc with Complex Numbers PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package contains the PETSc 3.14 shared library, supporting complex numbers and 64-bit indexing. . It provides soname libpetsc64-complex3.14 Package: libpetsc64-complex3.14-dbg Architecture: any Multi-Arch: same Section: debug Pre-Depends: ${misc:Pre-Depends} Depends: libpetsc64-complex3.14-dev (= ${binary:Version}), libpetsc3.14-dev-common (= ${source:Version}), ${misc:Depends}, ${shlibs:Depends}, python3, ${python3:Depends} Recommends: libpetsc3.14-dev-examples, ksh | mksh | pdksh | zsh Provides: petsc64-complex3.14-dbg Description: Debugging libraries for 64-bit PETSc with Complex Numbers PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. Several sample scientific applications, as well as various papers and talks, demonstrate the features of the PETSc libraries. . This package provides the development files and debugging libraries for debugging applications using PETSc 3.14 with complex number support and 64-bit indexing. . Libraries include unstripped symbols, but this package is also built with internal PETSc debugging activated. debian/libpetsc64i64b-real3.14-dev.dirs: /usr/share/octave/site/m debian/libpetsc64i64b-real3.14-dev.docs: debian/README.Debian debian/libpetsc64i64b-real3.14-dev.fortran-mod: #! /bin/sh for modpath in debian/tmp/petsc64b-${PETSC_SONAME_VERSION}-real/${PETSC64B_REAL_DIR_PREFIX}/include/*.mod; do modfile=$(basename $modpath) echo ${modpath} ${PETSC64B_REAL_DIR_PREFIX}/include done debian/libpetsc64i64b-real3.14-dev.links: #! /bin/sh echo usr/lib/${DEB_HOST_MULTIARCH}/libpetsc64i64b_real.so.${PETSC_VERSION} ${PETSC64B_REAL_DIR_PREFIX}/lib/libpetsc64i64b_real.so.${PETSC_VERSION} for common in include/petsc lib/petsc/bin share; do echo usr/share/petsc/${PETSC_SONAME_VERSION}/${common} ${PETSC64B_REAL_DIR_PREFIX}/${common} done echo ${PETSC64B_REAL_DIR_PREFIX}/lib/pkgconfig/petsc.pc ${PETSC64B_REAL_DIR_PREFIX}/lib/pkgconfig/petsc64.pc echo ${PETSC64B_REAL_DIR_PREFIX}/lib/pkgconfig/PETSc.pc ${PETSC64B_REAL_DIR_PREFIX}/lib/pkgconfig/PETSc64.pc debian/libpetsc64i64b-real3.14-dev.lintian-overrides: # False positive: the copyright notice is somewhat buried in the upstream text copyright-without-copyright-notice # common arch-indep files are installed in usr/share/petsc breakout-link usr/lib/petscdir/petsc* -> usr/share/petsc/* # link actual libraries in PETSC_DIR to usr/lib/<arch> breakout-link usr/lib/petscdir/petsc* -> usr/lib/* debian/libpetsc64i64b-real3.14-dev.postinst: #!/bin/sh -e DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__ SONAME=__PETSC_SONAME_VERSION__ PETSC_VERSION=__PETSC_VERSION__ PETSC_ARCH=${DEB_HOST_MULTIARCH} PETSC_REAL_ARCH=${PETSC_ARCH}-real PETSC_VERSION_NUMBER=$( echo ${PETSC_VERSION} | sed "s/\.//g" ) PETSC_SONAME_VERSION=__PETSC_SONAME_VERSION__ PETSC64B_NAME=petsc64b-${PETSC_SONAME_VERSION} PETSC64B_DIR_REAL=/usr/lib/petscdir/${PETSC64B_NAME}/${PETSC_REAL_ARCH} # Make alternatives links if [ "$1" = "configure" ]; then # alternative default petsc (e.g. real or complex) update-alternatives --install /usr/lib/petsc64b petsc64b ${PETSC64B_DIR_REAL} ${PETSC_VERSION_NUMBER}75 \ --slave /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc64i64b.so libpetsc64i64b.so /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc64i64b_real.so.${PETSC_VERSION} \ --slave /usr/include/petsc64b petsc64binclude ${PETSC64B_DIR_REAL}/include \ --slave /usr/share/octave/site/m/petsc64b petsc64b-octave ${PETSC64B_DIR_REAL}/share/petsc/matlab # alternative base version of petsc real update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc64i64b_real.so libpetsc64i64b_real.so /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc64i64b_real.so.${PETSC_VERSION} ${PETSC_VERSION_NUMBER}77 \ --slave /usr/lib/petscdir/petsc64b-real petsc64b-real ${PETSC64B_DIR_REAL} # alternative petsc for this X.Y soname (e.g. real or complex) update-alternatives --install /usr/lib/petscdir/64b-${SONAME} petsc64b-${SONAME} ${PETSC64B_DIR_REAL} ${PETSC_VERSION_NUMBER}77 fi #DEBHELPER# debian/libpetsc64i64b-real3.14-dev.prerm: #!/bin/sh -e DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__ SONAME=__PETSC_SONAME_VERSION__ PETSC_VERSION=__PETSC_VERSION__ PETSC_ARCH=${DEB_HOST_MULTIARCH} PETSC_REAL_ARCH=${PETSC_ARCH}-real PETSC_SONAME_VERSION=__PETSC_SONAME_VERSION__ PETSC64B_NAME=petsc64b-${PETSC_SONAME_VERSION} PETSC64B_DIR_REAL=/usr/lib/petscdir/${PETSC64B_NAME}/${PETSC_REAL_ARCH} # Remove alternatives links if [ "$1" = "remove" ]; then update-alternatives --remove petsc64b ${PETSC64B_DIR_REAL} update-alternatives --remove libpetsc64i64b_real.so /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc64i64b_real.so.${PETSC_VERSION} # remove general X.Y soname alternatives update-alternatives --remove petsc64b-${SONAME} ${PETSC64B_DIR_REAL} fi #DEBHELPER# debian/libpetsc64i64b-real3.14.links: #! /bin/sh echo usr/lib/${DEB_HOST_MULTIARCH}/libpetsc64i64b_real.so.${PETSC_VERSION} usr/lib/${DEB_HOST_MULTIARCH}/libpetsc64i64b_real.so.${PETSC_SONAME_VERSION} debian/libpetsc64i64b-real3.14.lintian-overrides: # libpetsc64.so.X.Y soname links are managed by alternatives (libpetc64.so.X.Y) ldconfig-symlink-missing-for-shlib usr/lib/*/libpetsc64i64b.so.* usr/lib/*/libpetsc64i64b-real.so.* libpetsc64i64b.so.* # libpetsc_real.so is handled by alternatives in libpetsc64-realX.Y-dev dev-pkg-without-shlib-symlink usr/lib/*/libpetsc64i64b_real.so.* usr/lib/*/libpetsc64i64b_real.so debian/libpetsc64i64b-real3.14.postinst: #!/bin/sh -e DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__ PETSC_VERSION=__PETSC_VERSION__ PETSC_VERSION_NUMBER=$( echo ${PETSC_VERSION} | sed "s/\.//g" ) SONAME=__PETSC_SONAME_VERSION__ # Make alternatives links if [ "$1" = "configure" ]; then # alternative petsc version (for given soname), real or complex update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc64i64b.so.${SONAME} libpetsc64i64b.so.${SONAME} /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc64i64b_real.so.${PETSC_VERSION} ${PETSC_VERSION_NUMBER}77 fi #DEBHELPER# debian/libpetsc64i64b-real3.14.prerm: #!/bin/sh -e DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__ PETSC_VERSION=__PETSC_VERSION__ SONAME=__PETSC_SONAME_VERSION__ # Remove alternatives links if [ "$1" = "remove" ]; then update-alternatives --remove libpetsc64i64b.so.${SONAME} /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc64i64b_real.so.${PETSC_VERSION} fi #DEBHELPER#