[slepc] 02/02: rework build in debian/rules

Drew Parsons dparsons at moszumanska.debian.org
Sun Oct 11 18:13:48 UTC 2015


This is an automated email from the git hooks/post-receive script.

dparsons pushed a commit to branch master
in repository slepc.

commit c3776a5d3583349a3fedbd3205790551c93d7c10
Author: Drew Parsons <dparsons at debian.org>
Date:   Mon Oct 12 02:07:58 2015 +0800

    rework build in debian/rules
    
    SLEPc does not use a SLEPC_ARCH, unlike PETSc with PETSC_ARCH.  It
    therefore doesn't retain context for different configurations, i.e.
    has no mechanism for choosing a preferred installed-x86_64-linux-gnu-*
    directory.
    
    We therefore cannot run configure/build/test/install as separate
    targets.  They have to be done for one configuration all at once.
    
    SLEPc places tests after install (tests fail for configuration with
    complex numbers).
---
 debian/compat                                      |   2 +-
 debian/libslepc-complex-3.6.1-dbg.postinst         |  21 +
 debian/libslepc-complex-3.6.1-dbg.prerm            |  14 +
 debian/libslepc-complex-3.6.1-dev.postinst         |  21 +
 debian/libslepc-complex-3.6.1-dev.prerm            |  14 +
 debian/libslepc-complex-3.6.postinst               |  18 +
 debian/libslepc-complex-3.6.prerm                  |  13 +
 debian/libslepc3.4.2-dev.postinst.in               |  11 -
 debian/libslepc3.4.2-dev.prerm.in                  |   8 -
 debian/libslepc3.6.1-dbg.postinst                  |  21 +
 debian/libslepc3.6.1-dbg.prerm                     |  14 +
 debian/libslepc3.6.1-dev.postinst                  |  21 +
 debian/libslepc3.6.1-dev.prerm                     |  14 +
 debian/libslepc3.6.postinst                        |  18 +
 debian/libslepc3.6.prerm                           |  13 +
 debian/rules                                       | 473 ++++++++++-----------
 .../{slepc3.4.2-doc.docs => slepc3.6.1-doc.docs}   |   0
 debian/source/format                               |   1 +
 debian/source/lintian-overrides                    |   3 +
 19 files changed, 435 insertions(+), 265 deletions(-)

diff --git a/debian/compat b/debian/compat
index 7f8f011..ec63514 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-7
+9
diff --git a/debian/libslepc-complex-3.6.1-dbg.postinst b/debian/libslepc-complex-3.6.1-dbg.postinst
new file mode 100644
index 0000000..75c16bd
--- /dev/null
+++ b/debian/libslepc-complex-3.6.1-dbg.postinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
+
+SLEPC_VERSION=__SLEPC_VERSION__
+SLEPC_ARCH=${DEB_HOST_MULTIARCH}
+SLEPC_DEBUG_ARCH=${SLEPC_ARCH}-complex-debug
+SLEPC_VERSION_NUMBER=$( echo ${SLEPC_VERSION} | sed "s/\.//g" )
+
+# Make alternatives links
+if [ "$1" = "configure" ]; then
+update-alternatives --install /usr/lib/slepc slepc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_DEBUG_ARCH} ${SLEPC_VERSION_NUMBER}33 \
+  --slave /usr/lib/libslepc.so libslepc.so /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_DEBUG_ARCH}/lib/libslepc_complex.so.${SLEPC_VERSION} \
+  --slave /usr/lib/${DEB_HOST_MULTIARCH}/libslepc.so libslepc.so.multiarch /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_DEBUG_ARCH}/lib/libslepc_complex.so.${SLEPC_VERSION} \
+  --slave /usr/include/slepc slepcinclude /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_DEBUG_ARCH}/include \
+  --slave /usr/lib/pkgconfig/SLEPc.pc SLEPc.pc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_DEBUG_ARCH}/lib/pkgconfig/SLEPc.pc \
+  --slave /usr/share/octave/site/m/slepc slepc-octave /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_DEBUG_ARCH}/share/slepc/matlab
+fi
+
+
+#DEBHELPER#
diff --git a/debian/libslepc-complex-3.6.1-dbg.prerm b/debian/libslepc-complex-3.6.1-dbg.prerm
new file mode 100644
index 0000000..14d9826
--- /dev/null
+++ b/debian/libslepc-complex-3.6.1-dbg.prerm
@@ -0,0 +1,14 @@
+#!/bin/sh -e
+
+DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
+
+SLEPC_VERSION=__SLEPC_VERSION__
+SLEPC_ARCH=${DEB_HOST_MULTIARCH}
+SLEPC_DEBUG_ARCH=${SLEPC_ARCH}-complex-debug
+
+# Remove alternatives links
+if [ "$1" = "remove" ]; then
+  update-alternatives --remove slepc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_DEBUG_ARCH}
+fi
+
+#DEBHELPER#
diff --git a/debian/libslepc-complex-3.6.1-dev.postinst b/debian/libslepc-complex-3.6.1-dev.postinst
new file mode 100644
index 0000000..c4285fd
--- /dev/null
+++ b/debian/libslepc-complex-3.6.1-dev.postinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
+
+SLEPC_VERSION=__SLEPC_VERSION__
+SLEPC_ARCH=${DEB_HOST_MULTIARCH}
+SLEPC_COMPLEX_ARCH=${SLEPC_ARCH}-complex
+SLEPC_VERSION_NUMBER=$( echo ${SLEPC_VERSION} | sed "s/\.//g" )
+
+# Make alternatives links
+if [ "$1" = "configure" ]; then
+update-alternatives --install /usr/lib/slepc slepc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_COMPLEX_ARCH} ${SLEPC_VERSION_NUMBER}73 \
+  --slave /usr/lib/libslepc.so libslepc.so /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_complex.so.${SLEPC_VERSION} \
+  --slave /usr/lib/${DEB_HOST_MULTIARCH}/libslepc.so libslepc.so.multiarch /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_complex.so.${SLEPC_VERSION} \
+  --slave /usr/include/slepc slepcinclude /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_COMPLEX_ARCH}/include \
+  --slave /usr/lib/pkgconfig/SLEPc.pc SLEPc.pc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_COMPLEX_ARCH}/lib/pkgconfig/SLEPc.pc \
+  --slave /usr/share/octave/site/m/slepc slepc-octave /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_COMPLEX_ARCH}/share/slepc/matlab
+fi
+
+
+#DEBHELPER#
diff --git a/debian/libslepc-complex-3.6.1-dev.prerm b/debian/libslepc-complex-3.6.1-dev.prerm
new file mode 100644
index 0000000..a573dc1
--- /dev/null
+++ b/debian/libslepc-complex-3.6.1-dev.prerm
@@ -0,0 +1,14 @@
+#!/bin/sh -e
+
+DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
+
+SLEPC_VERSION=__SLEPC_VERSION__
+SLEPC_ARCH=${DEB_HOST_MULTIARCH}
+SLEPC_COMPLEX_ARCH=${SLEPC_ARCH}-complex
+
+# Remove alternatives links
+if [ "$1" = "remove" ]; then
+  update-alternatives --remove slepc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_COMPLEX_ARCH}
+fi
+
+#DEBHELPER#
diff --git a/debian/libslepc-complex-3.6.postinst b/debian/libslepc-complex-3.6.postinst
new file mode 100644
index 0000000..6107f1b
--- /dev/null
+++ b/debian/libslepc-complex-3.6.postinst
@@ -0,0 +1,18 @@
+#!/bin/sh -e
+
+DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
+
+SLEPC_VERSION=__SLEPC_VERSION__
+SLEPC_VERSION_NUMBER=$( echo ${SLEPC_VERSION} | sed "s/\.//g" )
+
+# use only major.minor as general soname (rather than major.minor.patch.build)
+SONAME=$( echo ${SLEPC_VERSION} | awk 'BEGIN { FS="."}; {print $1"."$2 }' )
+
+# Make alternatives links
+if [ "$1" = "configure" ]; then
+  update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libslepc.so.${SONAME} libslepc.so.${SONAME} /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_complex.so.${SLEPC_VERSION_NUMBER} ${SLEPC_VERSION}73 \
+    --slave /usr/lib/${DEB_HOST_MULTIARCH}/libslepc.so.${SLEPC_VERSION} libslepc.so.${SLEPC_VERSION} /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_complex.so.${SLEPC_VERSION}
+fi
+
+
+#DEBHELPER#
diff --git a/debian/libslepc-complex-3.6.prerm b/debian/libslepc-complex-3.6.prerm
new file mode 100644
index 0000000..a12f050
--- /dev/null
+++ b/debian/libslepc-complex-3.6.prerm
@@ -0,0 +1,13 @@
+#!/bin/sh -e
+
+DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
+SLEPC_VERSION=__SLEPC_VERSION__
+# use only major.minor as general soname (rather than major.minor.patch.build)
+SONAME=$( echo ${SLEPC_VERSION} | awk 'BEGIN { FS="."}; {print $1"."$2 }' )
+
+# Remove alternatives links
+if [ "$1" = "remove" ]; then
+  update-alternatives --remove libslepc.so.${SONAME} /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_complex.so.${SLEPC_VERSION}
+fi
+
+#DEBHELPER#
diff --git a/debian/libslepc3.4.2-dev.postinst.in b/debian/libslepc3.4.2-dev.postinst.in
deleted file mode 100644
index 618b75d..0000000
--- a/debian/libslepc3.4.2-dev.postinst.in
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh -e
-
-# Make alternatives links
-if [ "$1" = "configure" ]; then
-update-alternatives --install /usr/lib/slepc slepc /usr/lib/slepcdir/slepc_ver 3420 \
-  --slave /usr/include/slepc slepcinclude /usr/lib/slepcdir/slepc_ver/include \
-  --slave /usr/lib/libslepc.a libslepc.a /usr/lib/slepcdir/slepc_ver/lib/libO/libslepc.a \
-  --slave /usr/lib/libslepc.so libslepc.so /usr/lib/libslepc.so.slepc_ver
-fi
-
-#DEBHELPER#
diff --git a/debian/libslepc3.4.2-dev.prerm.in b/debian/libslepc3.4.2-dev.prerm.in
deleted file mode 100644
index c58baa5..0000000
--- a/debian/libslepc3.4.2-dev.prerm.in
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh -e
-
-# Remove alternatives links
-if [ "$1" = "remove" ]; then
-  update-alternatives --remove slepc /usr/lib/slepcdir/slepc_ver
-fi
-
-#DEBHELPER#
diff --git a/debian/libslepc3.6.1-dbg.postinst b/debian/libslepc3.6.1-dbg.postinst
new file mode 100644
index 0000000..63b9ecf
--- /dev/null
+++ b/debian/libslepc3.6.1-dbg.postinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
+
+SLEPC_VERSION=__SLEPC_VERSION__
+SLEPC_ARCH=${DEB_HOST_MULTIARCH}
+SLEPC_DEBUG_ARCH=${SLEPC_ARCH}-real-debug
+SLEPC_VERSION_NUMBER=$( echo ${SLEPC_VERSION} | sed "s/\.//g" )
+
+# Make alternatives links
+if [ "$1" = "configure" ]; then
+update-alternatives --install /usr/lib/slepc slepc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_DEBUG_ARCH} ${SLEPC_VERSION_NUMBER}37 \
+  --slave /usr/lib/libslepc.so libslepc.so /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_DEBUG_ARCH}/lib/libslepc_real.so.${SLEPC_VERSION} \
+  --slave /usr/lib/${DEB_HOST_MULTIARCH}/libslepc.so libslepc.so.multiarch /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_DEBUG_ARCH}/lib/libslepc_real.so.${SLEPC_VERSION} \
+  --slave /usr/include/slepc slepcinclude /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_DEBUG_ARCH}/include \
+  --slave /usr/lib/pkgconfig/SLEPc.pc SLEPc.pc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_DEBUG_ARCH}/lib/pkgconfig/SLEPc.pc \
+  --slave /usr/share/octave/site/m/slepc slepc-octave /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_DEBUG_ARCH}/share/slepc/matlab
+fi
+
+
+#DEBHELPER#
diff --git a/debian/libslepc3.6.1-dbg.prerm b/debian/libslepc3.6.1-dbg.prerm
new file mode 100644
index 0000000..4a0b9a3
--- /dev/null
+++ b/debian/libslepc3.6.1-dbg.prerm
@@ -0,0 +1,14 @@
+#!/bin/sh -e
+
+DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
+
+SLEPC_VERSION=__SLEPC_VERSION__
+SLEPC_ARCH=${DEB_HOST_MULTIARCH}
+SLEPC_DEBUG_ARCH=${SLEPC_ARCH}-real-debug
+
+# Remove alternatives links
+if [ "$1" = "remove" ]; then
+  update-alternatives --remove slepc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_DEBUG_ARCH}
+fi
+
+#DEBHELPER#
diff --git a/debian/libslepc3.6.1-dev.postinst b/debian/libslepc3.6.1-dev.postinst
new file mode 100644
index 0000000..6822b2f
--- /dev/null
+++ b/debian/libslepc3.6.1-dev.postinst
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
+
+SLEPC_VERSION=__SLEPC_VERSION__
+SLEPC_ARCH=${DEB_HOST_MULTIARCH}
+SLEPC_REAL_ARCH=${SLEPC_ARCH}-real
+SLEPC_VERSION_NUMBER=$( echo ${SLEPC_VERSION} | sed "s/\.//g" )
+
+# Make alternatives links
+if [ "$1" = "configure" ]; then
+update-alternatives --install /usr/lib/slepc slepc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_REAL_ARCH} ${SLEPC_VERSION_NUMBER}77 \
+  --slave /usr/lib/libslepc.so libslepc.so /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_real.so.${SLEPC_VERSION} \
+  --slave /usr/lib/${DEB_HOST_MULTIARCH}/libslepc.so libslepc.so.multiarch /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_real.so.${SLEPC_VERSION} \
+  --slave /usr/include/slepc slepcinclude /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_REAL_ARCH}/include \
+  --slave /usr/lib/pkgconfig/SLEPc.pc SLEPc.pc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_REAL_ARCH}/lib/pkgconfig/SLEPc.pc \
+  --slave /usr/share/octave/site/m/slepc slepc-octave /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_REAL_ARCH}/share/slepc/matlab
+fi
+
+
+#DEBHELPER#
diff --git a/debian/libslepc3.6.1-dev.prerm b/debian/libslepc3.6.1-dev.prerm
new file mode 100644
index 0000000..0e2b604
--- /dev/null
+++ b/debian/libslepc3.6.1-dev.prerm
@@ -0,0 +1,14 @@
+#!/bin/sh -e
+
+DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
+
+SLEPC_VERSION=__SLEPC_VERSION__
+SLEPC_ARCH=${DEB_HOST_MULTIARCH}
+SLEPC_REAL_ARCH=${SLEPC_ARCH}-real
+
+# Remove alternatives links
+if [ "$1" = "remove" ]; then
+  update-alternatives --remove slepc /usr/lib/slepcdir/${SLEPC_VERSION}/${SLEPC_REAL_ARCH}
+fi
+
+#DEBHELPER#
diff --git a/debian/libslepc3.6.postinst b/debian/libslepc3.6.postinst
new file mode 100644
index 0000000..f80a77b
--- /dev/null
+++ b/debian/libslepc3.6.postinst
@@ -0,0 +1,18 @@
+#!/bin/sh -e
+
+DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
+
+SLEPC_VERSION=__SLEPC_VERSION__
+SLEPC_VERSION_NUMBER=$( echo ${SLEPC_VERSION} | sed "s/\.//g" )
+
+# use only major.minor as general soname (rather than major.minor.patch.build)
+SONAME=$( echo ${SLEPC_VERSION} | awk 'BEGIN { FS="."}; {print $1"."$2 }' )
+
+# Make alternatives links
+if [ "$1" = "configure" ]; then
+  update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libslepc.so.${SONAME} libslepc.so.${SONAME} /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_real.so.${SLEPC_VERSION} ${SLEPC_VERSION_NUMBER}77 \
+    --slave /usr/lib/${DEB_HOST_MULTIARCH}/libslepc.so.${SLEPC_VERSION} libslepc.so.${SLEPC_VERSION} /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_real.so.${SLEPC_VERSION}
+fi
+
+
+#DEBHELPER#
diff --git a/debian/libslepc3.6.prerm b/debian/libslepc3.6.prerm
new file mode 100644
index 0000000..86201af
--- /dev/null
+++ b/debian/libslepc3.6.prerm
@@ -0,0 +1,13 @@
+#!/bin/sh -e
+
+DEB_HOST_MULTIARCH=__DEB_HOST_MULTIARCH__
+SLEPC_VERSION=__SLEPC_VERSION__
+# use only major.minor as general soname (rather than major.minor.patch.build)
+SONAME=$( echo ${SLEPC_VERSION} | awk 'BEGIN { FS="."}; {print $1"."$2 }' )
+
+# Remove alternatives links
+if [ "$1" = "remove" ]; then
+  update-alternatives --remove libslepc.so.${SONAME} /usr/lib/${DEB_HOST_MULTIARCH}/libslepc_real.so.${SLEPC_VERSION}
+fi
+
+#DEBHELPER#
diff --git a/debian/rules b/debian/rules
index b58ff6d..88fd2a1 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,261 +1,244 @@
 #!/usr/bin/make -f
-# Sample debian/rules file - for GNU Hello (1.3).
-# Copyright 1994,1995 by Ian Jackson.
-# I hereby give you perpetual unlimited permission to copy,
-# modify and relicense this file, provided that you do not remove
-# my name from the file itself.  (I assert my moral right of
-# paternity under the Copyright, Designs and Patents Act 1988.)
-# This file may have to be extensively modified
-
-# This file is strongly based on debian/rules from the Debian PETSc package
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
+# 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_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
+# On Alpha, override this with debian/rules SLEPC_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)
+SLEPC_ARCH=$(PETSC_ARCH)
+
+# 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 OMPI_MCA_orte_rsh_agent=/bin/false
+
+SLEPC_HDF5_FLAGS=$(shell if [ -e /usr/lib/libhdf5.so ]; then echo "--with-hdf5=1 --with-hdf5-dir=/usr"; fi)
+
+SLEPC_BUILD_DIR=$(SLEPC_ARCH)-real
+SLEPC_DEBUG_BUILD_DIR=$(SLEPC_ARCH)-real-debug
+SLEPC_COMPLEX_BUILD_DIR=$(SLEPC_ARCH)-complex
+SLEPC_COMPLEX_DEBUG_BUILD_DIR=$(SLEPC_ARCH)-complex-debug
 
 # SLEPC_VERSION is used for the package names, library sonames, and
 # /usr/lib/slepcdir subdirectory names.
-SLEPC_VERSION=3.4.2
+SLEPC_VERSION=3.6.1$(SLEPC_EXT)
+# use only major.minor as general soname (rather than major.minor.patch.build)
+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_SONAME=slepc$(SLEPC_SONAME_VERSION)
 SLEPC_NAME=slepc$(SLEPC_VERSION)
-
-# PETSC_ARCH is the architecture that PETSc was configured on.
-PETSC_ARCH=$(DEB_BUILD_GNU_SYSTEM)
-
-# PETSC_DIR is the location of PETSc.
-PETSC_DIR=/usr/lib/petsc
-
-# These files need to be customized based on architecture and/or version.
-# See the binary arch target for how they are generated.
-ARCH_GENERATED_FILES=debian/lib$(SLEPC_NAME)-dev.postinst \
-	debian/lib$(SLEPC_NAME)-dev.prerm
-
-export CPPFLAGS=-I/usr/include/petsc
-
-clean:
-	dh_testdir
-	if [ -f TAGS.backup ]; then mv -f TAGS.backup TAGS; fi
-	dh_quilt_unpatch
-	dh_clean -XTAGS
-	-rm -f build* install* $(ARCH_GENERATED_FILES)
-#	-$(MAKE) PETSC_ARCH=$(PETSC_ARCH)-c-debug PETSC_DIR=$(PETSC_DIR) \
-#	  SLEPC_DIR=$(CURDIR) allclean
-#	-$(MAKE) PETSC_ARCH=$(PETSC_ARCH)-c-opt PETSC_DIR=$(PETSC_DIR) \
-#	  SLEPC_DIR=$(CURDIR) allclean
-# These probably should be removed by `make clean' but aren't
-	-rm -f `find . -name \*.pyc -print`
-	-rm -rf $(PETSC_ARCH)-c-debug $(PETSC_ARCH)-c-opt
-	-rm -rf lib debian/extemp
-
-build-indep: 
-# We have nothing to do by default.
-	dh_quilt_patch
-	touch $@
-
-# With debugging=1, only static libraries are generated.
-# Build optimized libs second so files are consistent with optimized.
-build-arch: 
-	dh_quilt_patch
-	PETSC_ARCH=$(PETSC_ARCH)-c-debug PETSC_DIR=$(PETSC_DIR) \
-	  SLEPC_DIR=$(CURDIR) ./configure --with-arpack-dir=/usr/lib/debug/usr/lib \
-	  --with-arpack-flags=-lparpack,-larpack
-	make PETSC_ARCH=$(PETSC_ARCH)-c-debug PETSC_DIR=$(PETSC_DIR) \
-	  SLEPC_INSTALL_DIR=/usr/lib/slepcdir/$(SLEPC_VERSION) \
-	  SL_LINKER_SUFFIX_VERSIONED="so.$(SLEPC_VERSION)" \
-	  SLEPC_DIR=$(CURDIR)
-	PETSC_ARCH=$(PETSC_ARCH)-c-opt PETSC_DIR=$(PETSC_DIR) \
-	  SLEPC_DIR=$(CURDIR) ./configure --with-arpack-dir=/usr/lib \
-	  --with-arpack-flags=-lparpack,-larpack
-	make PETSC_ARCH=$(PETSC_ARCH)-c-opt PETSC_DIR=$(PETSC_DIR) \
-	  SLEPC_INSTALL_DIR=/usr/lib/slepcdir/$(SLEPC_VERSION) \
-	  SL_LINKER_SUFFIX_VERSIONED="so.$(SLEPC_VERSION)" \
-	  SLEPC_DIR=$(CURDIR)
-	touch $@
-
-build: build-arch build-indep
-	touch $@
-
-install-arch: build-arch
-# Install conf in PETSC_DIR
-	install -d debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/conf
-	for cfile in `ls conf`; do \
-	  grep -v top_builddir conf/$$cfile | \
-	    sed "s/`echo $(CURDIR) | sed s/\\\\//\\\\\\\\\\\\//g`/\/usr\/lib\/slepcdir\/$(SLEPC_VERSION)/g" > \
-	    debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/conf/$$cfile ; \
-	done
-# Install PETSC_ARCH/conf and PETSC_ARCH/include files in SLEPC_DIR/PETSC_ARCH/;
-# replace this dir with install dir, and remove top_builddir
-	install -d debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/conf
-	for cfile in `ls $(PETSC_ARCH)-c-opt/conf`; do \
-	  grep -v top_builddir $(PETSC_ARCH)-c-opt/conf/$$cfile | \
-	    sed "s/`echo $(CURDIR) | sed s/\\\\//\\\\\\\\\\\\//g`/\/usr\/lib\/slepcdir\/$(SLEPC_VERSION)/g" > \
-	    debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/conf/$$cfile ; \
-	done
-	rm -f debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/conf/*.py
-	cp -a $(PETSC_ARCH)-c-opt/include debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/
-# Now conf and include for the -dbg package
-	install -d debian/lib$(SLEPC_NAME)-dbg/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-debug/conf
-	for cfile in `ls $(PETSC_ARCH)-c-debug/conf`; do \
-	  grep -v top_builddir $(PETSC_ARCH)-c-debug/conf/$$cfile | \
-	    sed "s/`echo $(CURDIR) | sed s/\\\\//\\\\\\\\\\\\//g`/\/usr\/lib\/slepcdir\/$(SLEPC_VERSION)/g" > \
-	    debian/lib$(SLEPC_NAME)-dbg/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-debug/conf/$$cfile ; \
-	done
-	rm -f debian/lib$(SLEPC_NAME)-dbg/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-debug/conf/*.py
-	cp -a $(PETSC_ARCH)-c-debug/include debian/lib$(SLEPC_NAME)-dbg/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-debug/
-# Install headers in SLEPC_DIR/include
-	install -d debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/include/finclude
-	cp -p include/*.h \
-	  debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/include
-	cp -p include/finclude/*.h include/finclude/*.h90 \
-	  debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/include/finclude
-	install -d debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/include/slepc-private
-	cp -p include/slepc-private/*.h \
-	  debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/include/slepc-private
-	cd debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/include && \
-	  ln -s ../$(PETSC_ARCH)-c-opt/include/*.h .
-	install -d debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/include/src/eps/impls/blopex
-	sed "s/..\/src/src/" < src/eps/impls/external/blopex/slepc-interface.h > \
-	  debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/include/src/eps/impls/blopex/slepc-interface.h
-	install -d debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/include/src/eps/impls/arpack
-	cp -p src/eps/impls/external/arpack/arpackp.h \
-	  debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/include/src/eps/impls/arpack
-# Install libs in SLEPC_DIR, move shared libs to /usr/lib and symlink
-	install -d debian/lib$(SLEPC_NAME)/usr/lib
-	cp -a $(PETSC_ARCH)-c-opt/lib debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/
-	cp -a $(PETSC_ARCH)-c-debug/lib debian/lib$(SLEPC_NAME)-dbg/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-debug/
-	for LIB in `cd $(PETSC_ARCH)-c-opt/lib && ls *.so.*` ; \
-	do \
-	  mv debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/lib/$$LIB \
-	    debian/lib$(SLEPC_NAME)/usr/lib/$$LIB ; \
-	  ln -s ../../../../$$LIB \
-	    debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/lib/$$LIB ; \
-	done
-# Make legacy symlinks including C++
-	install -d debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/lib
-	ln -s ../$(PETSC_ARCH)-c-opt/lib debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/lib/libO
-	ln -s ../$(PETSC_ARCH)-c-opt/lib debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/lib/libO_c++
-	install -d debian/lib$(SLEPC_NAME)-dbg/usr/lib/slepcdir/$(SLEPC_VERSION)/lib
-	ln -s ../$(PETSC_ARCH)-c-debug/lib debian/lib$(SLEPC_NAME)-dbg/usr/lib/slepcdir/$(SLEPC_VERSION)/lib/libg
-	ln -s ../$(PETSC_ARCH)-c-debug/lib debian/lib$(SLEPC_NAME)-dbg/usr/lib/slepcdir/$(SLEPC_VERSION)/lib/libg_c++
-	touch install-arch
-
-# Depends on install-arch because it creates SLEPC_DIR
-install-indep: build-indep install-arch
-ifeq ($(SLEPC_VERSION),3.4.2)
-# Install header documentation in -doc/include
-	install -d debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/include/finclude
-	cp -p include/*.html \
-	  debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/include
-	cp -p include/finclude/*.html \
-	  debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/include/finclude
-	install -d debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/include/slepc-private
-	cp -p include/slepc-private/*.html \
-	  debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/include/slepc-private
-	for HEADERDOC in `cd debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/ && find include -name \*.h.html -print | sed s/.h.html/.h/`; \
-	do \
-	  dh_link -p$(SLEPC_NAME)-doc \
-            usr/lib/slepcdir/$(SLEPC_VERSION)/$$HEADERDOC \
-	    usr/share/doc/$(SLEPC_NAME)-doc/$$HEADERDOC; \
+SLEPC_COMPLEX_SONAME=slepc-complex-$(SLEPC_SONAME_VERSION)
+SLEPC_COMPLEX_NAME=slepc-complex-$(SLEPC_VERSION)
+
+# debian binary package names
+SLEPC_DEV_PACKAGE=$(SLEPC_NAME)-dev
+SLEPC_VERSIONED_DEV_PACKAGE=lib$(SLEPC_NAME)-dev
+SLEPC_VERSIONED_PACKAGE=lib$(SLEPC_SONAME)
+SLEPC_DEBUG_PACKAGE=lib$(SLEPC_NAME)-dbg
+SLEPC_DOC_PACKAGE=$(SLEPC_NAME)-doc
+SLEPC_COMPLEX_VERSIONED_DEV_PACKAGE=lib$(SLEPC_COMPLEX_NAME)-dev
+SLEPC_COMPLEX_VERSIONED_PACKAGE=lib$(SLEPC_COMPLEX_SONAME)
+SLEPC_COMPLEX_DEBUG_PACKAGE=lib$(SLEPC_COMPLEX_NAME)-dbg
+
+# install into /usr/lib/slepcdir rather than /usr/lib/slepc 
+# to allow /usr/lib/slepc to be configured by alternatives
+SLEPC_DIR_PREFIX=/usr/lib/slepcdir/$(SLEPC_VERSION)/$(SLEPC_ARCH)-real
+SLEPC_DIR_DEBUG_PREFIX=/usr/lib/slepcdir/$(SLEPC_VERSION)/$(SLEPC_ARCH)-real-debug
+SLEPC_COMPLEX_DIR_PREFIX=/usr/lib/slepcdir/$(SLEPC_VERSION)/$(SLEPC_ARCH)-complex
+SLEPC_COMPLEX_DEBUG_DIR_PREFIX=/usr/lib/slepcdir/$(SLEPC_VERSION)/$(SLEPC_ARCH)-complex-debug
+
+PACKAGE_INSTALL_BASEDIR=debian/tmp/$(SLEPC_NAME)-real
+PACKAGE_INSTALL_DIR=$(PACKAGE_INSTALL_BASEDIR)/$(SLEPC_DIR_PREFIX)
+PACKAGE_DEBUG_INSTALL_BASEDIR=debian/tmp/$(SLEPC_NAME)-real-debug
+PACKAGE_DEBUG_INSTALL_DIR=$(PACKAGE_DEBUG_INSTALL_BASEDIR)/$(SLEPC_DIR_DEBUG_PREFIX)
+PACKAGE_COMPLEX_INSTALL_BASEDIR=debian/tmp/$(SLEPC_NAME)-complex
+PACKAGE_COMPLEX_INSTALL_DIR=$(PACKAGE_COMPLEX_INSTALL_BASEDIR)/$(SLEPC_COMPLEX_DIR_PREFIX)
+PACKAGE_COMPLEX_DEBUG_INSTALL_BASEDIR=debian/tmp/$(SLEPC_NAME)-complex-debug
+PACKAGE_COMPLEX_DEBUG_INSTALL_DIR=$(PACKAGE_COMPLEX_DEBUG_INSTALL_BASEDIR)/$(SLEPC_COMPLEX_DEBUG_DIR_PREFIX)
+
+PETSC_VERSION=3.6.2
+PETSC_DIR=/usr/lib/petscdir/$(PETSC_VERSION)
+PETSC_DIR_REAL=$(PETSC_DIR)/$(DEB_HOST_MULTIARCH)-real
+PETSC_DIR_REAL_DEBUG=$(PETSC_DIR)/$(DEB_HOST_MULTIARCH)-real-debug
+PETSC_DIR_COMPLEX=$(PETSC_DIR)/$(DEB_HOST_MULTIARCH)-complex
+PETSC_DIR_COMPLEX_DEBUG=$(PETSC_DIR)/$(DEB_HOST_MULTIARCH)-complex-debug
+
+
+export SLEPC_DIR=$(CURDIR)
+
+# main packaging script based on dh7 syntax
+%:
+	dh $@ --with python2
+
+
+override_dh_auto_clean:
+	if [ -d $(SLEPC_DEBUG_BUILD_DIR) ]; then \
+	  dh_auto_clean -p$(SLEPC_DEBUG_PACKAGE) -- \
+	    SLEPC_DIR=$(CURDIR) SLEPC_ARCH=$(SLEPC_DEBUG_BUILD_DIR); \
+	fi
+	if [ -d $(SLEPC_BUILD_DIR) ]; then \
+	dh_auto_clean -p$(SLEPC_VERSIONED_DEV_PACKAGE) -- \
+	  SLEPC_DIR=$(CURDIR) SLEPC_ARCH=$(SLEPC_BUILD_DIR); \
+	fi
+	if [ -d $(SLEPC_COMPLEX_BUILD_DIR) ]; then \
+	dh_auto_clean -p$(SLEPC_COMPLEX_VERSIONED_DEV_PACKAGE) -- \
+	  SLEPC_DIR=$(CURDIR) SLEPC_ARCH=$(SLEPC_COMPLEX_BUILD_DIR); \
+	fi
+	if [ -d $(SLEPC_COMPLEX_DEBUG_BUILD_DIR) ]; then \
+	dh_auto_clean -p$(SLEPC_COMPLEX_DEBUG_PACKAGE) -- \
+	  SLEPC_DIR=$(CURDIR) SLEPC_ARCH=$(SLEPC_COMPLEX_DEBUG_BUILD_DIR); \
+	fi
+
+
+#SLEPc cannot differentiate different configrations at build time 
+# i.e. there is no SLEPC_ARCH, unlike PETSC_ARCH.
+# So have to configure and build in one step
+# Note SLEPc's ./configure refuses to allow additional (unknown) options
+# so can't use dh_auto_configure
+override_dh_auto_configure:
+
+override_dh_auto_build:
+
+
+override_dh_auto_test:
+#	dh_auto_test -p$(SLEPC_DEBUG_PACKAGE) -- \
+#	  SLEPC_DIR=$(CURDIR) PETSC_ARCH=$(SLEPC_DEBUG_BUILD_DIR) \
+#	  LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(SLEPC_DEBUG_BUILD_DIR)/lib
+#	dh_auto_test -p$(SLEPC_VERSIONED_DEV_PACKAGE) -- \
+#	  SLEPC_DIR=$(CURDIR) PETSC_ARCH=$(SLEPC_BUILD_DIR) \
+#	  LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(SLEPC_BUILD_DIR)/lib
+#	dh_auto_test -p$(SLEPC_COMPLEX_VERSIONED_DEV_PACKAGE) -- \
+#	  SLEPC_DIR=$(CURDIR) PETSC_ARCH=$(SLEPC_COMPLEX_BUILD_DIR) \
+#	  LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(SLEPC_COMPLEX_BUILD_DIR)/lib
+#	dh_auto_test -p$(SLEPC_COMPLEX_DEBUG_PACKAGE) -- \
+#	  SLEPC_DIR=$(CURDIR) PETSC_ARCH=$(SLEPC_COMPLEX_DEBUG_BUILD_DIR) \
+#	  LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(SLEPC_COMPLEX_DEBUG_BUILD_DIR)/lib
+
+
+override_dh_auto_install:
+	PETSC_DIR=$(PETSC_DIR_REAL) \
+          ./configure --prefix=$(SLEPC_DIR_PREFIX)  \
+            --with-arpack=1
+	dh_auto_build -p$(SLEPC_VERSIONED_DEV_PACKAGE) -- \
+            PETSC_DIR=$(PETSC_DIR_REAL)
+	dh_auto_install -p$(SLEPC_VERSIONED_DEV_PACKAGE) --destdir=$(PACKAGE_INSTALL_DIR) --  \
+          SLEPC_DESTDIR=$(PACKAGE_INSTALL_DIR) \
+          PETSC_DIR=$(PETSC_DIR_REAL)
+	echo PACKAGE_INSTALL_DIR=$(PACKAGE_INSTALL_DIR)
+	echo SLEPC_DIR_PREFIX=$(SLEPC_DIR_PREFIX)
+	make SLEPC_DIR=$(CURDIR)/$(PACKAGE_INSTALL_DIR) PETSC_DIR=$(PETSC_DIR_REAL) PETSC_ARCH="" LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(PACKAGE_INSTALL_DIR)/lib test
+	
+	PETSC_DIR=$(PETSC_DIR_REAL_DEBUG) \
+          ./configure --prefix=$(SLEPC_DIR_DEBUG_PREFIX)  \
+          --with-arpack=1 --with-arpack-dir=/usr/lib/debug/usr/lib --with-arpack-flags=-lparpack,-larpack
+	dh_auto_build -p$(SLEPC_DEBUG_PACKAGE) -- \
+          PETSC_DIR=$(PETSC_DIR_REAL_DEBUG)
+	dh_auto_install -p$(SLEPC_DEBUG_PACKAGE) --destdir=$(PACKAGE_DEBUG_INSTALL_DIR) --  \
+          SLEPC_DESTDIR=$(PACKAGE_DEBUG_INSTALL_DIR)  \
+          PETSC_DIR=$(PETSC_DIR_REAL_DEBUG)
+	make SLEPC_DIR=$(CURDIR)/$(PACKAGE_DEBUG_INSTALL_DIR) PETSC_DIR=$(PETSC_DIR_REAL_DEBUG) PETSC_ARCH="" LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(CURDIR)/$(PACKAGE_INSTALL_DIR)/lib test
+	
+	PETSC_DIR=$(PETSC_DIR_COMPLEX) \
+          ./configure --prefix=$(SLEPC_COMPLEX_DIR_PREFIX)  \
+          --with-arpack=1 
+	dh_auto_build -p$(SLEPC_COMPLEX_VERSIONED_DEV_PACKAGE)  --  \
+          PETSC_DIR=$(PETSC_DIR_COMPLEX)
+	dh_auto_install -p$(SLEPC_COMPLEX_VERSIONED_DEV_PACKAGE) --destdir=$(PACKAGE_COMPLEX_INSTALL_DIR) --  \
+          SLEPC_DESTDIR=$(PACKAGE_COMPLEX_INSTALL_DIR) \
+          PETSC_DIR=$(PETSC_DIR_COMPLEX)
+	echo Note: standard SLEPc built-time tests only cover real number configurations, not complex numbers.
+	
+	PETSC_DIR=$(PETSC_DIR_COMPLEX_DEBUG) \
+          ./configure --prefix=$(SLEPC_COMPLEX_DEBUG_DIR_PREFIX)  \
+          --with-arpack=1 --with-arpack-dir=/usr/lib/debug/usr/lib --with-arpack-flags=-lparpack,-larpack
+	dh_auto_build -p$(SLEPC_COMPLEX_DEBUG_PACKAGE)  --  \
+          PETSC_DIR=$(PETSC_DIR_COMPLEX_DEBUG)
+	dh_auto_install -p$(SLEPC_COMPLEX_DEBUG_PACKAGE) --destdir=$(PACKAGE_COMPLEX_DEBUG_INSTALL_DIR) --  \
+          SLEPC_DESTDIR=$(PACKAGE_COMPLEX_DEBUG_INSTALL_DIR) \
+          PETSC_DIR=$(PETSC_DIR_COMPLEX_DEBUG)
+
+
+override_dh_install:
+	dh_install -p$(SLEPC_VERSIONED_PACKAGE) --sourcedir $(PACKAGE_INSTALL_BASEDIR) --exclude=*html  $(SLEPC_DIR_PREFIX)/lib/libslepc_real.so.$(SLEPC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)
+	dh_install -p$(SLEPC_VERSIONED_DEV_PACKAGE) --sourcedir $(PACKAGE_INSTALL_BASEDIR) --autodest --exclude=*html --exclude=libslepc_real.so.$(SLEPC_VERSION)  usr
+	dh_link -p$(SLEPC_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_real.so.$(SLEPC_VERSION)  $(SLEPC_DIR_PREFIX)/lib/libslepc_real.so.$(SLEPC_VERSION)
+	dh_link -p$(SLEPC_VERSIONED_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_real.so.$(SLEPC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_real.so.$(SLEPC_SONAME_VERSION)
+	dh_link -p$(SLEPC_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_real.so.$(SLEPC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_real.so
+	
+	dh_install -p$(SLEPC_DEBUG_PACKAGE) --sourcedir $(PACKAGE_DEBUG_INSTALL_BASEDIR) --autodest --exclude=*html  usr
+	
+	dh_install -p$(SLEPC_COMPLEX_VERSIONED_PACKAGE) --sourcedir $(PACKAGE_COMPLEX_INSTALL_BASEDIR) --exclude=*html  $(SLEPC_COMPLEX_DIR_PREFIX)/lib/libslepc_complex.so.$(SLEPC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)
+	dh_install -p$(SLEPC_COMPLEX_VERSIONED_DEV_PACKAGE) --sourcedir $(PACKAGE_COMPLEX_INSTALL_BASEDIR) --autodest --exclude=*html --exclude=libslepc_complex.so.$(SLEPC_VERSION)  usr
+	dh_link -p$(SLEPC_COMPLEX_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_complex.so.$(SLEPC_VERSION)  $(SLEPC_COMPLEX_DIR_PREFIX)/lib/libslepc_complex.so.$(SLEPC_VERSION)
+	dh_link -p$(SLEPC_COMPLEX_VERSIONED_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_complex.so.$(SLEPC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_complex.so.$(SLEPC_SONAME_VERSION)
+	dh_link -p$(SLEPC_COMPLEX_VERSIONED_DEV_PACKAGE)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_complex.so.$(SLEPC_VERSION)  usr/lib/$(DEB_HOST_MULTIARCH)/libslepc_complex.so
+	
+	dh_install -p$(SLEPC_COMPLEX_DEBUG_PACKAGE) --sourcedir $(PACKAGE_COMPLEX_DEBUG_INSTALL_BASEDIR) --autodest --exclude=*html  usr
+
+
+override_dh_installdocs:
+	dh_installdocs
+	dh_install -p$(SLEPC_DOC_PACKAGE) --sourcedir $(PACKAGE_DEBUG_INSTALL_BASEDIR) --autodest $(SLEPC_DIR_DEBUG_PREFIX)/include/*html
+	dh_install -p$(SLEPC_DOC_PACKAGE) --sourcedir $(PACKAGE_DEBUG_INSTALL_BASEDIR) --autodest $(SLEPC_DIR_DEBUG_PREFIX)/include/slepc/*/*html
+
+
+# dh_installchangelogs can't handle a directory of changelog files, so skip them here
+override_dh_installchangelogs:
+	dh_installchangelogs --exclude=docs/changes
+
+override_dh_python2:
+	dh_python2
+	dh_python2 -p$(SLEPC_VERSIONED_DEV_PACKAGE) $(SLEPC_DIR_PREFIX)/bin
+	dh_python2 -p$(SLEPC_DEBUG_PACKAGE) $(SLEPC_DIR_DEBUG_PREFIX)/bin
+	dh_python2 -p$(SLEPC_COMPLEX_VERSIONED_DEV_PACKAGE) $(SLEPC_COMPLEX_DIR_PREFIX)/bin
+	dh_python2 -p$(SLEPC_COMPLEX_DEBUG_PACKAGE) $(SLEPC_COMPLEX_DEBUG_DIR_PREFIX)/bin
+
+override_dh_installdeb:
+	dh_installdeb
+	for pkg in $$(dh_listpackages -a); do \
+	  sed -i -e 's/__SLEPC_VERSION__/$(SLEPC_VERSION)/; s/__DEB_HOST_MULTIARCH__/$(DEB_HOST_MULTIARCH)/' debian/$$pkg/DEBIAN/*; \
 	done
-# Install examples documentation in -doc/src directory
-	for TESTDIR in `find src -name examples -print | sed "s/src\///"`; \
-	do \
-	  install -d debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/src/$$TESTDIR; \
-	  for TESTDOC in `find src/$$TESTDIR -name \*.html -print`; do \
-	    cp -a $$TESTDOC \
-	      debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/src/$$TESTDIR; \
-	  done ; \
-	done
-# I don't know of a way to do this "recursively"
-	-rmdir `find debian/slepc3.4.2-doc -empty -type d -print`
-	-rmdir `find debian/slepc3.4.2-doc -empty -type d -print`
-	-rmdir `find debian/slepc3.4.2-doc -empty -type d -print`
-	-rmdir `find debian/slepc3.4.2-doc -empty -type d -print`
-# Install examples & makefiles into temporary directory debian/extemp
-	for TESTDIR in `find src -name examples -print | sed "s/src\///"`; \
-	do \
-	  install -d debian/extemp/src/$$TESTDIR; \
-	  cp -a src/$$TESTDIR/* debian/extemp/src/$$TESTDIR; \
-	done
-	for MAKEFILE in `find src -name makefile -print | sed "s/src\///"`; \
-	do \
-	  if [ -d debian/extemp/src/`echo $$MAKEFILE | sed "s/makefile//"` ] ;\
-	  then \
-	    cp -p src/$$MAKEFILE debian/extemp/src/$$MAKEFILE; \
-	  fi; \
-	done
-# Clean up documentation from debian/extemp
-	rm -f `find debian/extemp -name \*.html -print`
-# Pack debian/extemp/src into src.tar.gz and install
-	cd debian/extemp && tar czf src.tar.gz src
-	mv debian/extemp/src.tar.gz \
-	  debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/src.tar.gz
-	rm -rf debian/extemp
-# Make links to documentation and examples from SLEPC_DIR and docs
-	dh_link -p$(SLEPC_NAME)-doc \
-		usr/share/doc/$(SLEPC_NAME)-doc/docs \
-		  usr/lib/slepcdir/$(SLEPC_VERSION)/docs \
-		usr/share/doc/$(SLEPC_NAME)-doc/docs/index.html \
-		  usr/lib/slepcdir/$(SLEPC_VERSION)/index.html \
-		usr/share/doc/$(SLEPC_NAME)-doc/makefile.html \
-		  usr/lib/slepcdir/$(SLEPC_VERSION)/makefile.html \
-		usr/share/doc/$(SLEPC_NAME)-doc/src \
-		  usr/lib/slepcdir/$(SLEPC_VERSION)/src
-	touch install-indep
-endif
-
-install: install-arch install-indep
-	touch install
-
-binary-indep: install-indep
-ifeq ($(SLEPC_VERSION),3.4.2)
-	dh_testdir -i
-	dh_testroot -i
-	dh_installdirs -i
-	dh_installdocs -i
-# Clean up and finish
-	rm -f `find debian/$(SLEPC_NAME)-doc -name ?akefile -print`
-	rm -f `find debian/$(SLEPC_NAME)-doc -name *.cit* -print`
-	rm -f `find debian/$(SLEPC_NAME)-doc -empty -type f -print`
-	dh_installchangelogs -i
-	dh_compress -i -X.xbm -X.pdf
-	dh_fixperms -i
-	dh_installdeb -i
-	dh_gencontrol -i
-	dh_md5sums -i
-	dh_builddeb -i
-endif
-
-binary-arch: install-arch
-	dh_testdir -a
-	dh_testroot -a
-	dh_lintian
-	for ARCHGEN in $(ARCH_GENERATED_FILES); do \
-	  rm -f $$ARCHGEN ; \
-	  sed "s/petsc_arch/$(PETSC_ARCH)-c-opt/" < \
-	    `echo "$$ARCHGEN.in" | sed "s/$(SLEPC_NAME)/slepc3.4.2/"` | \
-	    sed "s/slepc_ver/$(SLEPC_VERSION)/" > $$ARCHGEN; \
-	done
-	dh_installdirs -a
-	dh_installdocs -a
-	dh_installchangelogs -a
-	dh_strip -a -Xlibg$(SLEPC_BOPT_EXTRA)
-	dh_makeshlibs -a -m$(SLEPC_VERSION)
-	dh_compress -a
-	dh_fixperms -a
-	dh_installdeb -a
-	dh_shlibdeps -a
-	dh_gencontrol -a
-	dh_md5sums -a
-	dh_builddeb -a
-
-binary:		binary-indep binary-arch
+
+
+override_dh_strip:
+	dh_strip --dbg-package=$(SLEPC_DEBUG_PACKAGE)
+	dh_strip --dbg-package=$(SLEPC_COMPLEX_DEBUG_PACKAGE)
+
 
 DEB_SOURCE_PACKAGE = slepc
 DEB_UPSTREAM_VERSION = $(shell dpkg-parsechangelog | sed -ne 's/^Version: \(.*\)-.*/\1/p')
 DEB_STRIPPED_UPSTREAM_VERSION = $(shell echo $(DEB_UPSTREAM_VERSION) | sed -n -e 's/\.dfsg.*$$//p')
 USCAN_DESTDIR := $(CURDIR)
 
-.PHONY: binary binary-arch binary-indep clean checkroot get-orig-source
 get-orig-source:
 	uscan --no-conf --download-current-version --repack --compression xz
diff --git a/debian/slepc3.4.2-doc.docs b/debian/slepc3.6.1-doc.docs
similarity index 100%
rename from debian/slepc3.4.2-doc.docs
rename to debian/slepc3.6.1-doc.docs
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides
new file mode 100644
index 0000000..d195edc
--- /dev/null
+++ b/debian/source/lintian-overrides
@@ -0,0 +1,3 @@
+# Lintian thinks uploader Adam Powell's name violates policy
+slepc source: uploader-address-missing "Adam C. Powell
+slepc source: uploader-not-full-name IV"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/slepc.git



More information about the debian-science-commits mailing list