Package: slepc
Version: 3.2
Severity: normal
It will be very helpfull to have a shared library in dbg package.
See the attached debian/rules to enable the shared lib creation in debug mode.
--- System information. ---
Architecture: amd64
Kernel: Linux 3.2.0-4-amd64
Debian Release: 7.0
500 wheezy neuro.debian.net
500 testing-proposed-updates ftp.fr.debian.org
500 testing security.debian.org
500 testing http.us.debian.org
500 testing ftp.fr.debian.org
500 testing euler.lcmi.local
500 stable dl.google.com
500 squeeze apsy.gse.uni-magdeburg.de
500 intrepid ppa.launchpad.net
500 data neuro.debian.net
500 data apsy.gse.uni-magdeburg.de
--- Package information. ---
Package's Depends field is empty.
Package's Recommends field is empty.
Package's Suggests field is empty.
--
Christophe TROPHIME
Research Engineer
LNCMI
CNRS - LNCMI
25, rue des Martyrs
BP 166
38042 GRENOBLE Cedex 9
FRANCE
CNRS
Tel : +33 (0)4 76 88 90 02
Fax : +33 (0) 4 76 88 10 01
Office U 19
M@il : [email protected]
________________________________________________________________________
#!/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
# SLEPC_VERSION is used for the package names, library sonames, and
# /usr/lib/slepcdir subdirectory names.
SLEPC_VERSION=3.2
# SLEPC_NAME is the install dir under /usr/lib and the base for package names
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 [ -e patch ]; then \
debian/rules unpatch; \
fi
-mv tags thetags
dh_clean
-mv thetags tags
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
patch:
if [ ! -e $@ ]; then \
QUILT_PATCHES=debian/patches quilt push -a || test $$? = 2; \
fi
touch $@
unpatch:
if [ -e patch ]; then \
QUILT_PATCHES=debian/patches quilt pop -a -R || test $$? = 2; \
rm -rf patch .pc; \
fi
build-indep: patch
# We have nothing to do by default.
touch $@
# With debugging=1, only static libraries are generated.
# Build optimized libs second so files are consistent with optimized.
build-arch: 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/private
cp -p include/private/*.h \
debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/include/private
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.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/private
cp -p include/private/*.html \
debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/include/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; \
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.2-doc -empty -type d -print`
-rmdir `find debian/slepc3.2-doc -empty -type d -print`
-rmdir `find debian/slepc3.2-doc -empty -type d -print`
-rmdir `find debian/slepc3.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.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
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.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) --dbg-package=lib$(SLEPC_NAME)-dbg
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
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 --force-download --verbose --check-dirname-level 0 --destdir $(USCAN_DESTDIR) --download-version $(DEB_STRIPPED_UPSTREAM_VERSION) --upstream-version $(DEB_STRIPPED_UPSTREAM_VERSION) ; \
set -ex ;
test -d $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION).orig && rm -rf $(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION).orig ; \
TMPDIR=$(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION).orig; \
mkdir $$TMPDIR; \
cp $(USCAN_DESTDIR)/$(DEB_SOURCE_PACKAGE)_$(DEB_STRIPPED_UPSTREAM_VERSION).orig.tar.gz "$$TMPDIR" ; \
tar -C "$$TMPDIR" --strip-components 1 -xzf "$$TMPDIR"/$(DEB_SOURCE_PACKAGE)_$(DEB_STRIPPED_UPSTREAM_VERSION).orig.tar.gz ; \
rm -f "$$TMPDIR"/$(DEB_SOURCE_PACKAGE)*.tar.gz ; \
rm -f "$$TMPDIR"/docs/slepc.pdf ; \
GZIP=-9 tar -czf \
$(CURDIR)/$(DEB_SOURCE_PACKAGE)_$(DEB_UPSTREAM_VERSION).orig.tar.gz \
$(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION).orig ; \
rm -rf "$$TMPDIR"