Package: petsc Version: 3.2 Severity: normal It will be great to have also a shared library for petsc in dbg package Right now there is only a static library in /usr/lib/petscdir/3.2/linux-c-debug
You can use the attached debian/rules(*) to get it build. Note that we have to touch the shared library in /usr/lib/petscdir/3.2/linux-c-debug to assure it is more recent than the static library. This is required by builtin petsc mechanism (see /usr/lib/petscdir/3.2/conf/rules). If we do not do that any code linked with the shared lib in /usr/lib/petscdir/3.2/linux-c-debug will fail with an message complaining about out of date shared libs. (*) contains also support for fftw3 (see debian/control attached) --- 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 # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # This is the debhelper compatability version to use. #export DH_COMPAT=4 # Deprecated, now provided in file debian/compat # 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. DEB_BUILD_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_SYSTEM) PETSC_ARCH=$(DEB_BUILD_GNU_SYSTEM) # 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_MPI_DIR=/usr/lib/$(PETSC_MPI) # Overriding this with "contrib" attempts to link with parmetis (unimplemented). DEBIAN_DIST=main # PETSC_EXT is non-empty if a non-standard compiler (e.g. Compaq compilers on # alpha), non-standard MPI implementation (e.g. lam), non-standard option (e.g. # complex) or non-standard distribution (e.g. contrib) is being used. PETSC_EXT=$(shell chmod +x debian/petsc-ext && debian/petsc-ext $(PETSC_ARCH) $(PETSC_MPI) $(DEBIAN_DIST) && chmod -x debian/petsc-ext) PETSC_HDF5_FLAGS=$(shell if [ -e /usr/lib/libhdf5.so ]; then echo "--with-hdf5=1 --with-hdf5-dir=/usr"; fi) PETSC_BABEL_FLAGS=$(shell if [ -e /usr/lib/libsidl.so ]; then echo "--with-babel=1 --with-babel-dir=/usr"; fi) # PETSC_VERSION is used for the package names, library sonames, and # /usr/lib/petscdir subdirectory names. PETSC_VERSION=3.2$(PETSC_EXT) # PETSC_NAME is the install dir under /usr/lib and the base for package names PETSC_NAME=petsc$(PETSC_VERSION) # 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$(PETSC_NAME)-dev.docs \ debian/lib$(PETSC_NAME)-dev.postinst debian/lib$(PETSC_NAME)-dev.prerm clean: dh_testdir if [ -f TAGS.backup ]; then mv -f TAGS.backup TAGS; fi dh_quilt_unpatch dh_clean -XTAGS # These are needed for -lam, -dec and -contrib builds -rm -rf debian/lib$(PETSC_NAME) debian/lib$(PETSC_NAME)-dev \ debian/lib$(PETSC_NAME)-dbg -rm -f build* install* debian/*.substvars debian/extemp $(ARCH_GENERATED_FILES) # This is commented because it really doesn't do anything useful for us # (removes example executables, so what?) # make PETSC_ARCH=$(PETSC_ARCH) PETSC_DIR=$(CURDIR) clean # These probably should be removed by `make clean' but aren't -rm -f RDict.log RDict.db configure.log.bkp debian/control.in make.log \ confdefs.h conffix.h conftest.c lib1.so lib2.so CMakeLists.txt -rm -f config/BuildSystem/config/packages/config.* conf/petscvariables -rm -f `find . -name \*.o -print` `find . -name \*.pyc -print` -rm -rf lib $(PETSC_ARCH)-c-debug $(PETSC_ARCH)-c-opt configure.log # PETSc uses the "doctext" program to convert html docs to man pages, which # apparently is open-source and available from # http://www.mcs.anl.gov/~gropp/sowing . When it is Debianized, I'll use it. build-indep: dh_quilt_patch # $(MAKE) -C docs PETSC_ARCH=$(PETSC_ARCH) \ # PETSC_DIR=$(CURDIR)/lib$(PETSC_NAME) manualpages touch $@ # With debugging=1, only static libraries are generated. # Build optimized libs second so files are consistent with optimized. build-arch: dh_quilt_patch echo Using MPI implementation $(PETSC_MPI) in directory $(PETSC_MPI_DIR) cp -fp /usr/share/automake-1.11/config.* config/BuildSystem/config/packages/ if [ ! -f TAGS.backup ]; then cp -a TAGS TAGS.backup; fi PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_ARCH)-c-debug \ ./config/configure.py --with-shared-libraries --with-debugging=1 \ --useThreads 0 --with-clanguage=C++ --with-c-support \ --with-fortran-interfaces=1 \ --with-mpi-dir=$(PETSC_MPI_DIR) \ --with-blas-lib=-lblas --with-lapack-lib=-llapack \ --with-blacs=1 --with-blacs-include=/usr/include \ --with-blacs-lib=[/usr/lib/libblacsCinit-$(PETSC_MPI).so,/usr/lib/libblacs-$(PETSC_MPI).so] \ --with-scalapack=1 --with-scalapack-include=/usr/include \ --with-scalapack-lib=/usr/lib/libscalapack-$(PETSC_MPI).so \ --with-mumps=1 --with-mumps-include=/usr/include \ --with-mumps-lib=[/usr/lib/libdmumps.so,/usr/lib/libzmumps.so,/usr/lib/libsmumps.so,/usr/lib/libcmumps.so,/usr/lib/libmumps_common.so,/usr/lib/libpord.so] \ --with-umfpack=1 --with-umfpack-include=/usr/include/suitesparse \ --with-umfpack-lib=[/usr/lib/libumfpack.so,/usr/lib/libamd.so] \ --with-cholmod=1 --with-cholmod-include=/usr/include/suitesparse \ --with-cholmod-lib=/usr/lib/libcholmod.so \ --with-spooles=1 --with-spooles-include=/usr/include/spooles \ --with-spooles-lib=/usr/lib/libspooles.so \ --with-hypre=1 --with-hypre-dir=/usr \ --with-ptscotch=1 --with-ptscotch-include=/usr/include/scotch \ --with-ptscotch-lib=[/usr/lib/libptesmumps.so,/usr/lib/libptscotch.so,/usr/lib/libptscotcherr.so] \ --with-fftw=1 --with-fftw-include=/usr/include \ --with-fftw-lib=[/usr/lib/$(DEB_HOST_GNU_TYPE)/libfftw3.so,/usr/lib/$(DEB_HOST_GNU_TYPE)/libfftw3_mpi.so] \ --with-pastix=1 --with-pastix-include=/usr/include/pastix \ --with-pastix-lib=[/usr/lib/libpastix.so] \ $(PETSC_HDF5_FLAGS) --CXX_LINKER_FLAGS="-Wl,--no-as-needed" # --with-superlu=1 --with-superlu-include=/usr/include/superlu \ # --with-superlu-lib=/usr/lib/libsuperlu.so \ # --with-sprng=1 --with-sprng-include=/usr/include/sprng \ # --with-sprng-lib=/usr/lib/libsprng.so # $(PETSC_BABEL_FLAGS) $(MAKE) PETSC_ARCH=$(PETSC_ARCH)-c-debug PETSC_DIR=$(CURDIR) \ PETSC_INSTALL_DIR=/usr/lib/petscdir/$(PETSC_VERSION) \ SL_LINKER_SUFFIX_VERSIONED="so.$(PETSC_VERSION)" all-legacy PETSC_DIR=$(CURDIR) PETSC_ARCH=$(PETSC_ARCH)-c-opt \ ./config/configure.py --with-shared-libraries --with-debugging=0 \ --useThreads 0 --with-clanguage=C++ --with-c-support \ --with-fortran-interfaces=1 \ --with-mpi-dir=$(PETSC_MPI_DIR) --with-mpi-shared=1 \ --with-blas-lib=-lblas --with-lapack-lib=-llapack \ --with-blacs=1 --with-blacs-include=/usr/include \ --with-blacs-lib=[/usr/lib/libblacsCinit-$(PETSC_MPI).so,/usr/lib/libblacs-$(PETSC_MPI).so] \ --with-scalapack=1 --with-scalapack-include=/usr/include \ --with-scalapack-lib=/usr/lib/libscalapack-$(PETSC_MPI).so \ --with-mumps=1 --with-mumps-include=/usr/include \ --with-mumps-lib=[/usr/lib/libdmumps.so,/usr/lib/libzmumps.so,/usr/lib/libsmumps.so,/usr/lib/libcmumps.so,/usr/lib/libmumps_common.so,/usr/lib/libpord.so] \ --with-umfpack=1 --with-umfpack-include=/usr/include/suitesparse \ --with-umfpack-lib=[/usr/lib/libumfpack.so,/usr/lib/libamd.so] \ --with-cholmod=1 --with-cholmod-include=/usr/include/suitesparse \ --with-cholmod-lib=/usr/lib/libcholmod.so \ --with-spooles=1 --with-spooles-include=/usr/include/spooles \ --with-spooles-lib=/usr/lib/libspooles.so \ --with-hypre=1 --with-hypre-dir=/usr \ --with-ptscotch=1 --with-ptscotch-include=/usr/include/scotch \ --with-ptscotch-lib=[/usr/lib/libptesmumps.so,/usr/lib/libptscotch.so,/usr/lib/libptscotcherr.so] \ --with-fftw=1 --with-fftw-include=/usr/include \ --with-fftw-lib=[/usr/lib/$(DEB_HOST_GNU_TYPE)/libfftw3.so,/usr/lib/$(DEB_HOST_GNU_TYPE)/libfftw3_mpi.so] \ --with-pastix=1 --with-pastix-include=/usr/include/pastix \ --with-pastix-lib=[/usr/lib/libpastix.so] \ $(PETSC_HDF5_FLAGS) --CXX_LINKER_FLAGS="-Wl,--no-as-needed" # --with-superlu=1 --with-superlu-include=/usr/include/superlu \ # --with-superlu-lib=/usr/lib/libsuperlu.so \ # --with-sprng=1 --with-sprng-include=/usr/include/sprng \ # --with-sprng-lib=/usr/lib/libsprng.so # $(PETSC_BABEL_FLAGS) $(MAKE) PETSC_ARCH=$(PETSC_ARCH)-c-opt PETSC_DIR=$(CURDIR) \ PETSC_INSTALL_DIR=/usr/lib/petscdir/$(PETSC_VERSION) \ SL_LINKER_SUFFIX_VERSIONED="so.$(PETSC_VERSION)" all-legacy touch $@ build: build-arch build-indep touch $@ install-arch: build-arch # Install mpirun.lam and fake petscarch in PETSC_DIR/bin and manpages. # If someone builds with non-standard PETSC_ARCH we want that to be # reflected in the installed script (also removes c-shell dependence). install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/bin cp -p debian/mpirun_lam \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/bin/mpirun_lam chmod +x debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/bin/mpirun_lam echo "#!/bin/sh -e" > \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/bin/petscarch echo "echo $(PETSC_ARCH)-c-opt" >> \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/bin/petscarch chmod +x debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/bin/petscarch # I know bin is an awkward place to put these, but can't think of a # better one... (doc is a symlink in the -doc package) cp -p debian/petscarch.1 debian/mpirun_lam.1 \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/bin gzip --best debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/bin/*.1 # Install conf in PETSC_DIR install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/conf for cfile in `ls conf`; do \ grep -v top_builddir conf/$$cfile | \ sed "s/`echo $(CURDIR) | sed s/\\\\//\\\\\\\\\\\\//g`/\/usr\/lib\/petscdir\/$(PETSC_VERSION)/g" > \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/conf/$$cfile ; \ done # Install PETSC_ARCH/conf and PETSC_ARCH/include files in PETSC_DIR/PETSC_ARCH/; # replace this dir with install dir, and remove top_builddir install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-opt/conf ln -s $(PETSC_ARCH)-c-opt debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-cxx-opt 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\/petscdir\/$(PETSC_VERSION)/g" > \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-opt/conf/$$cfile ; \ done rm -f debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-opt/conf/*.py cp -a $(PETSC_ARCH)-c-opt/include debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-opt/ # Now conf and include for the -dbg package install -d debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/conf ln -s $(PETSC_ARCH)-c-debug debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-cxx-debug 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\/petscdir\/$(PETSC_VERSION)/g" > \ debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/conf/$$cfile ; \ done rm -f debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/conf/*.py cp -a $(PETSC_ARCH)-c-debug/include debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/ # Install headers in PETSC_DIR/include install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/finclude cp -p include/*.h include/*.hh \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include cp -p include/finclude/*.h include/finclude/*.h90 \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/finclude cp -a include/finclude/ftn-auto include/finclude/ftn-custom \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/finclude install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/adic cp -p include/adic/*.h \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/adic install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/sieve cp -a include/sieve/*.hh include/sieve/problem \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/sieve install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/private cp -p include/private/*.h \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/private cd debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include && \ ln -s ../$(PETSC_ARCH)-c-opt/include/*.h . install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/src/mat/impls/aij/mpi sed "s/..\/src/src/" < src/mat/impls/aij/mpi/mpiaij.h > \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/src/mat/impls/aij/mpi/mpiaij.h install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/src/mat/impls/aij/seq cp -p src/mat/impls/aij/seq/aij.h \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/src/mat/impls/aij/seq/aij.h install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/src/mat/impls/dense/mpi sed "s/..\/src/src/" < src/mat/impls/dense/mpi/mpidense.h > \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/src/mat/impls/dense/mpi/mpidense.h install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/src/mat/impls/dense/seq cp -p src/mat/impls/dense/seq/dense.h \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/src/mat/impls/dense/seq/dense.h install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/src/sys cp -p src/sys/ctable.h \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/src/sys/ # Add m4 files, /usr/share/aclocal symlinks will be made by postinst install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/aclocal cp -p debian/petsc.m4 debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/aclocal cp -p debian/math-blaslapack.m4 debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/aclocal # Install libs in PETSC_DIR, move shared libs to /usr/lib and symlink install -d debian/lib$(PETSC_NAME)/usr/lib cp -a $(PETSC_ARCH)-c-opt/lib debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-opt/ cp -a $(PETSC_ARCH)-c-debug/lib debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/ for LIB in `cd $(PETSC_ARCH)-c-opt/lib && ls *.so.*` ; \ do \ mv debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-opt/lib/$$LIB \ debian/lib$(PETSC_NAME)/usr/lib/$$LIB ; \ ln -s ../../../../$$LIB \ debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-opt/lib/$$LIB ; \ done # Make legacy symlinks including C++ install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/lib ln -s ../$(PETSC_ARCH)-c-opt/lib debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/lib/libO ln -s ../$(PETSC_ARCH)-c-opt/lib debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/lib/libO_c++ install -d debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/lib ln -s ../$(PETSC_ARCH)-c-debug/lib debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/lib/libg ln -s ../$(PETSC_ARCH)-c-debug/lib debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/lib/libg_c++ # Legacy symlink so packages for 3.0 can build against 3.2 ln -s variables debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/conf/base # Lintian overrides install -d debian/lib$(PETSC_NAME)/usr/share/lintian/overrides install -d debian/lib$(PETSC_NAME)-dev/usr/share/lintian/overrides install -d debian/lib$(PETSC_NAME)-dbg/usr/share/lintian/overrides sed "s/petsc3.2/$(PETSC_NAME)/" < debian/lib$(PETSC_NAME).overrides > \ debian/lib$(PETSC_NAME)/usr/share/lintian/overrides/lib$(PETSC_NAME) sed "s/petsc3.2/$(PETSC_NAME)/" < debian/lib$(PETSC_NAME)-dev.overrides > \ debian/lib$(PETSC_NAME)-dev/usr/share/lintian/overrides/lib$(PETSC_NAME)-dev sed "s/petsc3.2/$(PETSC_NAME)/" < debian/lib$(PETSC_NAME)-dbg.overrides > \ debian/lib$(PETSC_NAME)-dbg/usr/share/lintian/overrides/lib$(PETSC_NAME)-dbg touch install-arch # Depends on install-arch because it creates PETSC_DIR install-indep: build-indep install-arch ifeq ($(PETSC_VERSION),3.2) # Install header documentation in -doc/include install -d debian/$(PETSC_NAME)-doc/usr/share/doc/$(PETSC_NAME)-doc/include/finclude cp -p include/*.html \ debian/$(PETSC_NAME)-doc/usr/share/doc/$(PETSC_NAME)-doc/include cp -p include/finclude/*.html \ debian/$(PETSC_NAME)-doc/usr/share/doc/$(PETSC_NAME)-doc/include/finclude install -d debian/$(PETSC_NAME)-doc/usr/share/doc/$(PETSC_NAME)-doc/include/adic cp -p include/adic/*.html \ debian/$(PETSC_NAME)-doc/usr/share/doc/$(PETSC_NAME)-doc/include/adic install -d debian/$(PETSC_NAME)-doc/usr/share/doc/$(PETSC_NAME)-doc/include/sieve cp -p include/sieve/*.html \ debian/$(PETSC_NAME)-doc/usr/share/doc/$(PETSC_NAME)-doc/include/sieve install -d debian/$(PETSC_NAME)-doc/usr/share/doc/$(PETSC_NAME)-doc/include/private cp -p include/private/*.html \ debian/$(PETSC_NAME)-doc/usr/share/doc/$(PETSC_NAME)-doc/include/private for HEADERDOC in `cd debian/$(PETSC_NAME)-doc/usr/share/doc/$(PETSC_NAME)-doc/ && find include -name \*.h.html -print | sed s/.h.html/.h/`; \ do \ dh_link -p$(PETSC_NAME)-doc \ usr/lib/petscdir/$(PETSC_VERSION)/$$HEADERDOC \ usr/share/doc/$(PETSC_NAME)-doc/$$HEADERDOC; \ done # Install examples documentation in -doc/src directory for TESTDIR in `find src -name tests -print | sed "s/src\///"` \ `find src -name tutorials -print | sed "s/src\///"` benchmarks \ snes/examples/tutorials/ex10d; \ do \ install -d debian/$(PETSC_NAME)-doc/usr/share/doc/$(PETSC_NAME)-doc/src/$$TESTDIR; \ for TESTDOC in `find src/$$TESTDIR -name \*.html -print`; do \ cp -a $$TESTDOC \ debian/$(PETSC_NAME)-doc/usr/share/doc/$(PETSC_NAME)-doc/src/$$TESTDIR; \ done ; \ done # I don't know of a way to do this "recursively" rmdir `find debian/petsc3.2-doc -empty -type d -print` rmdir `find debian/petsc3.2-doc -empty -type d -print` rmdir `find debian/petsc3.2-doc -empty -type d -print` # Install examples & makefiles into temporary directory debian/extemp for TESTDIR in `find src -name tests -print | sed "s/src\///"` \ `find src -name tutorials -print | sed "s/src\///"` benchmarks; \ 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` # HACK ALERT! This is a very inelegant way to assemble this makefile! rm -f debian/extemp/src/makefile sed "s/inline//" < src/makefile | grep -v include \ > debian/extemp/src/makefile grep -v \$$Id makefile | grep -v DIRS >> debian/extemp/src/makefile install -d debian/extemp/src/$(PETSC_ARCH)-c-opt/conf cp -p debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/conf/petscvariables \ debian/extemp/src/$(PETSC_ARCH)-c-opt/conf/petscvariables # 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/$(PETSC_NAME)-doc/usr/share/doc/$(PETSC_NAME)-doc/src.tar.gz rm -rf debian/extemp # Make links to documentation and examples from PETSC_DIR and docs dh_link -p$(PETSC_NAME)-doc \ usr/share/doc/$(PETSC_NAME)-doc/docs \ usr/lib/petscdir/$(PETSC_VERSION)/docs \ usr/share/doc/$(PETSC_NAME)-doc/docs/index.html \ usr/lib/petscdir/$(PETSC_VERSION)/index.html \ usr/share/doc/$(PETSC_NAME)-doc/makefile.html \ usr/lib/petscdir/$(PETSC_VERSION)/makefile.html \ usr/share/doc/$(PETSC_NAME)-doc/src \ usr/lib/petscdir/$(PETSC_VERSION)/src # Lintian overrides install -d debian/$(PETSC_NAME)-doc/usr/share/lintian/overrides sed "s/petsc3.2/$(PETSC_NAME)/" < debian/petsc3.2-doc.overrides > \ debian/$(PETSC_NAME)-doc/usr/share/lintian/overrides/$(PETSC_NAME)-doc install -d debian/petsc-dev/usr/share/lintian/overrides install -m 644 debian/petsc-dev.overrides \ debian/petsc-dev/usr/share/lintian/overrides/petsc-dev touch install-indep endif install: install-arch install-indep touch install binary-indep: install-indep ifeq ($(PETSC_VERSION),3.2) dh_testdir -i dh_testroot -i dh_installdirs -i dh_installdocs -i # Clean up and finish rm -f `find debian/$(PETSC_NAME)-doc -name ?akefile -print` rm -f `find debian/$(PETSC_NAME)-doc -name *.cit* -print` rm -f `find debian/$(PETSC_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 # Customize control etc. using package names (maybe with -lam or -dec) mv -f debian/control debian/control.in sed "s/3.2/$(PETSC_VERSION)/" < debian/control.in | \ sed "s/$(PETSC_VERSION)-doc/3.2-doc/" | \ sed "s/Provides: $(PETSC_NAME)-dev/Provides: petsc3.2-dev/" | \ sed "s/Provides: $(PETSC_NAME)-dbg/Provides: petsc3.2-dbg/" \ > debian/control if [ "$(DEBIAN_DIST)" = "contrib" ]; then \ sed "s/Section: lib/Section: contrib\/lib/" < debian/control > \ debian/control.contrib ; \ mv -f debian/control.contrib debian/control ; \ fi for ARCHGEN in $(ARCH_GENERATED_FILES); do \ rm -f $$ARCHGEN ; \ sed "s/petsc_arch/$(PETSC_ARCH)-c-opt/" < \ `echo "$$ARCHGEN.in" | sed "s/$(PETSC_NAME)/petsc3.2/"` | \ sed "s/petsc_ver/$(PETSC_VERSION)/" > $$ARCHGEN; \ done # Generate substvars for MPI, linear algebra implementations and dist rm -f debian/*.substvars if [ "$(PETSC_MPI)" = "openmpi" ]; then \ echo "mpi=openmpi-bin" > debian/lib$(PETSC_NAME).substvars; \ echo "mpi-dev=libopenmpi-dev" > debian/lib$(PETSC_NAME)-dev.substvars; \ elif [ "$(PETSC_MPI)" = "mpich" -o "$(PETSC_MPI)" = "mpich-mpd" -o "$(PETSC_MPI)" = "mpich-shmem" ]; then \ echo "mpi=$(PETSC_MPI)-bin (>= 1.2.7)" > debian/lib$(PETSC_NAME).substvars; \ echo "mpi-dev=lib$(PETSC_MPI)1.0-dev (>= 1.2.7)" > debian/lib$(PETSC_NAME)-dev.substvars; \ elif [ "$(PETSC_MPI)" = "mpich2" ]; then \ echo "mpi=mpich2" > debian/lib$(PETSC_NAME).substvars; \ echo "mpi-dev=libmpich2-dev" > debian/lib$(PETSC_NAME)-dev.substvars; \ elif [ "$(PETSC_MPI)" = "lam" ]; then \ echo "mpi=lam-runtime" > debian/lib$(PETSC_NAME).substvars; \ echo "mpi-dev=lam4-dev" > debian/lib$(PETSC_NAME)-dev.substvars; \ else \ echo "Unknown MPI implementation, stopping"; \ exit 1; \ fi if [ -e /usr/lib/libhdf5.so ]; then \ echo "hdf5-dev=libhdf5-mpi-dev" >> debian/lib$(PETSC_NAME)-dev.substvars; \ else \ echo "hdf5-dev=" >> debian/lib$(PETSC_NAME)-dev.substvars; \ fi if [ -e /usr/lib/libsidl.so ]; then \ echo "babel-dev=libsidl-dev" >> debian/lib$(PETSC_NAME)-dev.substvars; \ else \ echo "babel-dev=" >> debian/lib$(PETSC_NAME)-dev.substvars; \ fi if [ "$(PETSC_ARCH)" = "linux_alpha_dec" ]; then \ echo "linear-algebra-dev=cxml" >> debian/lib$(PETSC_NAME)-dev.substvars; \ echo "petsc-compilers=ccc, cfal" >> debian/lib$(PETSC_NAME)-dev.substvars; \ else \ echo "linear-algebra-dev=libblas-dev, liblapack-dev" >> debian/lib$(PETSC_NAME)-dev.substvars; \ echo "petsc-compilers=gfortran, g++" >> debian/lib$(PETSC_NAME)-dev.substvars; \ fi if [ "$(DEBIAN_DIST)" = "main" ]; then \ echo "petsc-extra-dev=" >> debian/lib$(PETSC_NAME)-dev.substvars; \ elif [ "$(DEBIAN_DIST)" = "contrib" ]; then \ echo "petsc-extra-dev=libparmetis-dev" >> debian/lib$(PETSC_NAME)-dev.substvars; \ else \ echo "Unknown Debian distribution, stopping"; \ exit 1; \ fi # The rest is pretty much debhelper boilerplate dh_installdirs -a dh_installdocs -a dh_installchangelogs -a dh_strip -a -Xlibg$(PETSC_BOPT_EXTRA) # # To avoid slepc complaining about shared libs being out of date touch debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/lib/*.so* dh_makeshlibs -a -m$(PETSC_VERSION) dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a # Below here is fairly generic really binary: binary-indep binary-arch .PHONY: binary binary-arch binary-indep clean checkroot get-orig-source: uscan --force-download --verbose
Source: petsc Section: devel Priority: extra Maintainer: Debian Science Maintainers <[email protected]> Uploaders: "Adam C. Powell, IV" <[email protected]> DM-Upload-Allowed: yes Standards-Version: 3.9.2 Build-Depends: debhelper (>= 5.0), quilt, python (>= 2.2), gfortran, automake, libx11-dev, mpi-default-dev, mpi-default-bin, libblas-dev, liblapack-dev, libsuitesparse-dev (>= 3.1.0-2), libspooles-dev (>= 2.2-6), libhypre-dev (>= 2.4.0), libptscotch-dev, libhdf5-mpi-dev (>= 1.8.8), libblacs-mpi-dev, libscalapack-mpi-dev, libmumps-dev, libpastix-dev, libfftw3-dev, libfftw3-mpi-dev Build-Conflicts: libatlas3gf-base, libatlas-base-dev, cmake, lam4-dev Vcs-Git: git://git.debian.org/git/debian-science/packages/petsc.git Vcs-Browser: http://git.debian.org/?p=debian-science/packages/petsc.git Homepage: http://www.mcs.anl.gov/petsc Package: libpetsc3.2-dev Architecture: alpha amd64 armhf hurd-i386 i386 ia64 lpia mips mipsel powerpc s390 s390x sparc Section: libdevel Depends: libpetsc3.2 (= ${binary:Version}), ${mpi-dev}, ${linear-algebra-dev}, ${petsc-compilers}, ${petsc-extra-dev}, libx11-dev, libsuitesparse-dev, libsuperlu3-dev, libspooles-dev, libhypre-dev (>= 2.0.0.dfsg-7), libptscotch-dev, ${babel-dev}, ${misc:Depends}, ${hdf5-dev}, libblacs-mpi-dev, libscalapack-mpi-dev, libmumps-dev, libpastix-dev, libfftw3-dev, libfftw3-mpi-dev Suggests: petsc-dev (= ${binary:Version}), libpetsc3.2-dbg (= ${binary:Version}), petsc3.2-doc (= ${binary:Version}), libluminate-dev Provides: petsc3.2-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. Package: petsc-dev Architecture: all Section: libdevel Depends: libpetsc3.2-dev, ${misc:Depends} Suggests: petsc-dbg Description: Virtual package depending on latest PETSc development package This metapackage will always depend on the most recent version of petscX-dev (X=version), so if you install it then you will get upgrades automatically. Package: libpetsc3.2 Architecture: alpha amd64 armhf hurd-i386 i386 ia64 lpia mips mipsel powerpc s390 s390x sparc Section: libs Depends: ${shlibs:Depends}, ${mpi}, ${misc:Depends} Description: Shared libraries for version 3.2 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. Package: libpetsc3.2-dbg Architecture: alpha amd64 armhf hurd-i386 i386 ia64 lpia mips mipsel powerpc s390 s390x sparc Section: debug Depends: libpetsc3.2-dev (= ${binary:Version}), ${misc:Depends} Suggests: petsc-dbg (= ${binary:Version}) Provides: petsc3.2-dbg Description: Static 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. Package: petsc3.2-doc Architecture: all Section: doc Depends: ${misc:Depends} Suggests: libpetsc3.2-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.

