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 : christophe.troph...@lncmi.cnrs.fr 
________________________________________________________________________
#!/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"

Reply via email to