--- mumps-4.9.2.dfsg.orig/debian/libmumps-seq-dev.install +++ mumps-4.9.2.dfsg/debian/libmumps-seq-dev.install @@ -0,0 +1,5 @@ +libmumps_seq/libmumps_common_seq.* usr/lib +libmumps_seq/lib?mumps_seq.* usr/lib +libmumps_seq/libpord_seq.* usr/lib +libmumps_seq/libmpiseq.* usr/lib +libseq/*.h usr/include --- mumps-4.9.2.dfsg.orig/debian/rules +++ mumps-4.9.2.dfsg/debian/rules @@ -0,0 +1,89 @@ +#!/usr/bin/make -f + +MUMPS_MPI=$(shell readlink /etc/alternatives/mpi | sed s/usr//g | sed s/include//g | sed s/lib//g | sed s/\\///g) +ifeq ($(MUMPS_MPI),openmpi) +MUMPS_LIBF77=-L/usr/lib/openmpi/lib -lmpi_f77 +else +ifeq ($(MUMPS_MPI),lam) +MUMPS_LIBF77=-L/usr/lib/lam/lib -llamf77mpi +else +ifeq ($(MUMPS_MPI),mpich) +MUMPS_LIBF77=-L/usr/lib/mpich/lib -lfmpich +else +ifeq ($(MUMPS_MPI),mpich2) +MUMPS_LIBF77=-lfmpich +endif +endif +endif +endif + +clean: unpatch + dh_testdir + dh_clean + cp -f debian/Makefile.seq.inc Makefile.inc + $(MAKE) clean + rm -rf Makefile.inc .pc libmumps_seq + +stamp-patch: + if [ ! -e stamp-patch ]; then \ + QUILT_PATCHES=debian/patches quilt push -a || test $$? = 2; \ + fi + touch $@ + +unpatch: + if [ -e stamp-patch ]; then \ + QUILT_PATCHES=debian/patches quilt pop -a -R || test $$? = 2; \ + rm -f stamp-patch; \ + fi + +build-arch: stamp-patch + cp -f debian/Makefile.seq.inc Makefile.inc + $(MAKE) all + cp -a lib libmumps_seq + cp -af libseq/lib* libmumps_seq + $(MAKE) clean + QUILT_PATCHES=debian/patches quilt pop -R || test $$? = 2 + rm -f Makefile.inc + cp -f debian/Makefile.par.inc Makefile.inc + $(MAKE) MUMPS_MPI=$(MUMPS_MPI) MUMPS_LIBF77="$(MUMPS_LIBF77)" all + touch $@ + +build: build-arch #build-indep + touch $@ + +binary-indep: +# dh_testdir -i +# dh_testroot -i +# dh_installdirs -i +# dh_install -i +# dh_installdocs -i +# dh_installchangelogs -i +# dh_compress -i +# dh_fixperms -i +# dh_installdeb -i +# dh_gencontrol -i +# dh_md5sums -i +# dh_builddeb -i + +binary-arch: + dh_testdir -a + dh_testroot -a + dh_installdirs -a + dh_install -a + dh_installdocs -a + dh_installchangelogs -a + dh_strip -a + dh_makeshlibs -a + 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 --- mumps-4.9.2.dfsg.orig/debian/libmumps-dev.install +++ mumps-4.9.2.dfsg/debian/libmumps-dev.install @@ -0,0 +1,4 @@ +lib/libmumps_common.* usr/lib +lib/lib?mumps.* usr/lib +lib/libpord.* usr/lib +include/*.h usr/include --- mumps-4.9.2.dfsg.orig/debian/README.Debian +++ mumps-4.9.2.dfsg/debian/README.Debian @@ -0,0 +1,14 @@ +Welcome to the MUMPS package. You can find more information about MUMPS at: +http://mumps.enseeiht.fr/ . + +The mumps-test package includes a test of each of the datatypes: +single-precision (s), double-precision (d), complex (c) and complex double (z). +Run the tests as follows: + + cd /usr/lib/mumps + ./ssimpletest < input_simpletest_real + ./dsimpletest < input_simpletest_real + ./csimpletest < input_simpletest_cmplx + ./zsimpletest < input_simpletest_cmplx + +The solution should be something close to 1 2 3 4 5. --- mumps-4.9.2.dfsg.orig/debian/libmumps-seq-4.9.2.install +++ mumps-4.9.2.dfsg/debian/libmumps-seq-4.9.2.install @@ -0,0 +1 @@ +libmumps_seq/lib*-*.so usr/lib --- mumps-4.9.2.dfsg.orig/debian/libmumps-4.9.2.install +++ mumps-4.9.2.dfsg/debian/libmumps-4.9.2.install @@ -0,0 +1 @@ +lib/lib*-*.so usr/lib --- mumps-4.9.2.dfsg.orig/debian/control +++ mumps-4.9.2.dfsg/debian/control @@ -0,0 +1,69 @@ +Source: mumps +Section: devel +Priority: extra +Maintainer: Adam C. Powell, IV +Standards-Version: 3.8.3 +Build-Depends: debhelper (>= 5), quilt, gfortran, libscalapack-mpi-dev, + libblacs-mpi-dev, libblas-dev | libblas-3gf.so, mpi-default-dev +Homepage: http://mumps.enseeiht.fr/ + +Package: libmumps-dev +Architecture: any +Section: libdevel +Depends: libmumps-4.9.2 (= ${binary:Version}), libscalapack-mpi-dev, + mpi-default-dev, ${misc:Depends} +Description: Static libraries, shared links, header files for MUMPS + MUMPS implements a direct solver for large sparse linear systems, with a + particular focus on symmetric positive definite matrices. It can + operate on distributed matrices e.g. over a cluster. It has Fortran and + C interfaces, and can interface with ordering tools such as Scotch. + +Package: libmumps-seq-dev +Architecture: any +Section: libdevel +Depends: libmumps-seq-4.9.2 (= ${binary:Version}), libmumps-dev, ${misc:Depends} +Description: Static libraries, header files for sequential MUMPS + MUMPS implements a direct solver for large sparse linear systems, with a + particular focus on symmetric positive definite matrices. It can + operate on distributed matrices e.g. over a cluster. It has Fortran and + C interfaces, and can interface with ordering tools such as Scotch. + . + This package is built the MUMPS libseq dummy sequential MPI library. + Unless you know that you specifically need this, then you almost + certainly want the libmumps-dev package. + +Package: libmumps-4.9.2 +Architecture: any +Section: libs +Depends: ${shlibs:Depends}, ${misc:Depends} +Suggests: mpi-default-bin +Description: Shared libraries for version 4.9.2 of MUMPS + MUMPS implements a direct solver for large sparse linear systems, with a + particular focus on symmetric positive definite matrices. It can + operate on distributed matrices e.g. over a cluster. It has Fortran and + C interfaces, and can interface with ordering tools such as Scotch. + +Package: libmumps-seq-4.9.2 +Architecture: any +Section: libs +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Shared libraries for version 4.9.2 of sequential MUMPS + MUMPS implements a direct solver for large sparse linear systems, with a + particular focus on symmetric positive definite matrices. It can + operate on distributed matrices e.g. over a cluster. It has Fortran and + C interfaces, and can interface with ordering tools such as Scotch. + . + This package is built the MUMPS libseq dummy sequential MPI library. + Unless you know that you specifically need this, then you almost + certainly want the libmumps-4.9.2 package. + +Package: mumps-test +Architecture: any +Section: math +Depends: ${shlibs:Depends}, ${misc:Depends} +Suggests: mpi-default-bin +Description: Example/test binaries using MUMPS + MUMPS implements a direct solver for large sparse linear systems, with a + particular focus on symmetric positive definite matrices. It can + operate on distributed matrices e.g. over a cluster. It has Fortran and + C interfaces, and can interface with ordering tools such as Scotch. --- mumps-4.9.2.dfsg.orig/debian/compat +++ mumps-4.9.2.dfsg/debian/compat @@ -0,0 +1 @@ +5 --- mumps-4.9.2.dfsg.orig/debian/Makefile.par.inc +++ mumps-4.9.2.dfsg/debian/Makefile.par.inc @@ -0,0 +1,93 @@ +# +# This file is part of MUMPS 4.9.2, built on Thu Nov 5 07:05:08 UTC 2009 +# Adapted by Adam Powell from Make.inc/Makefile.gfortran.par +# +#Begin orderings + +# NOTE that PORD is distributed within MUMPS by default. If you would like to +# use other orderings, you need to obtain the corresponding package and modify +# the variables below accordingly. +# For example, to have Metis available within MUMPS: +# 1/ download Metis and compile it +# 2/ uncomment (suppress # in first column) lines +# starting with LMETISDIR, LMETIS +# 3/ add -Dmetis in line ORDERINGSF +# ORDERINGSF = -Dpord -Dmetis +# 4/ Compile and install MUMPS +# make clean; make (to clean up previous installation) +# +# Metis/ParMetis and SCOTCH/PT-SCOTCH (ver 5.1 and later) orderings are now available for MUMPS. +# + +#SCOTCHDIR = /usr +#ISCOTCH = -I$(SCOTCHDIR)/scotch/include +# You have to choose one among the following two lines depending on +# the type of analysis you want to perform. If you want to perform only +# sequential analysis choose the first (remember to add -Dscotch in the ORDERINGSF +# variable below); for both parallel and sequential analysis choose the second +# line (remember to add -Dptscotch in the ORDERINGSF variable below) + +#LSCOTCH = -L$(SCOTCHDIR)/lib -lesmumps -lscotch -lscotcherr +#LSCOTCH = -L$(SCOTCHDIR)/lib -lptesmumps -lptscotch -lptscotcherr + + +LPORDDIR = $(topdir)/PORD/lib/ +IPORD = -I$(topdir)/PORD/include/ +LPORD = -L$(LPORDDIR) -lpord + +#LMETISDIR = /local/metis/ +#IMETIS = # Metis doesn't need include files (Fortran interface avail.) + +# You have to choose one among the following two lines depending on +# the type of analysis you want to perform. If you want to perform only +# sequential analysis choose the first (remember to add -Dmetis in the ORDERINGSF +# variable below); for both parallel and sequential analysis choose the second +# line (remember to add -Dparmetis in the ORDERINGSF variable below) + +#LMETIS = -L$(LMETISDIR) -lmetis +#LMETIS = -L$(LMETISDIR) -lparmetis -lmetis + +# The following variables will be used in the compilation process. +# Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively. +#ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis +ORDERINGSF = -Dpord +ORDERINGSC = $(ORDERINGSF) + +LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH) +IORDERINGSF = $(ISCOTCH) +IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH) + +#End orderings +######################################################################## +################################################################################ + +PLAT = +RM = /bin/rm -f +CC = gcc +FC = gfortran +FL = gfortran +AR = ar vr +#RANLIB = ranlib +RANLIB = echo +SCALAP = -lscalapack-$(MUMPS_MPI) +#INCPAR = -I/usr/local/include +INCPAR = -I/usr/include/mpi +# LIBPAR = $(SCALAP) -L/usr/local/lib/ -llammpio -llamf77mpi -lmpi -llam -lutil -ldl -lpthread +LIBPAR = $(SCALAP) $(MUMPS_LIBF77) +# See point 17 in the FAQ to have more details on the compilation of mpich with gfortran +INCSEQ = -I$(topdir)/libseq +LIBSEQ = -L$(topdir)/libseq -lmpiseq +#LIBBLAS = -L/usr/lib/xmm/ -lf77blas -latlas +LIBBLAS = -lblas-3gf +LIBOTHERS = -lpthread +#Preprocessor defs for calling Fortran from C (-DAdd_ or -DAdd__ or -DUPPER) +CDEFS = -DAdd_ + +#Begin Optimized options +OPTF = -O -Dintel_ -DALLOW_NON_INIT +OPTL = -O +OPTC = -O +#End Optimized options +INC = $(INCPAR) +LIB = $(LIBPAR) +LIBSEQNEEDED = --- mumps-4.9.2.dfsg.orig/debian/mumps-test.install +++ mumps-4.9.2.dfsg/debian/mumps-test.install @@ -0,0 +1,2 @@ +examples/?simpletest usr/lib/mumps +examples/input_* usr/lib/mumps --- mumps-4.9.2.dfsg.orig/debian/README.source +++ mumps-4.9.2.dfsg/debian/README.source @@ -0,0 +1,8 @@ +This package uses quilt to manage all modifications to the upstream +source. Changes are stored in the source package as diffs in +debian/patches and applied during the build. + +See /usr/share/doc/quilt/README.source for a detailed explanation. + +The upstream doc directory contains only non-free files and is removed +for this DFSG version. --- mumps-4.9.2.dfsg.orig/debian/Makefile.seq.inc +++ mumps-4.9.2.dfsg/debian/Makefile.seq.inc @@ -0,0 +1,90 @@ +# +# This file is part of MUMPS 4.9.2, built on Thu Nov 5 07:05:08 UTC 2009 +# Adapted by Adam Powell from Make.inc/Makefile.gfortran.seq, based on +# Roberto C. Sanchez' adaptation from Make.inc/Makefile.G95.seq, based on +# Adam Powell's adaptation of Make.inc/Makefile.G95.par +# +#Begin orderings + +# NOTE that PORD is distributed within MUMPS by default. If you would like to +# use other orderings, you need to obtain the corresponding package and modify +# the variables below accordingly. +# For example, to have Metis available within MUMPS: +# 1/ download Metis and compile it +# 2/ uncomment (suppress # in first column) lines +# starting with LMETISDIR, LMETIS +# 3/ add -Dmetis in line ORDERINGSF +# ORDERINGSF = -Dpord -Dmetis +# 4/ Compile and install MUMPS +# make clean; make (to clean up previous installation) +# +# Metis/ParMetis and SCOTCH/PT-SCOTCH (ver 5.1 and later) orderings are now available for MUMPS. +# + +#SCOTCHDIR = /usr +#ISCOTCH = -I$(SCOTCHDIR)/scotch/include +# You have to choose one among the following two lines depending on +# the type of analysis you want to perform. If you want to perform only +# sequential analysis choose the first (remember to add -Dscotch in the ORDERINGSF +# variable below); for both parallel and sequential analysis choose the second +# line (remember to add -Dptscotch in the ORDERINGSF variable below) + +#LSCOTCH = -L$(SCOTCHDIR)/lib -lesmumps -lscotch -lscotcherr +#LSCOTCH = -L$(SCOTCHDIR)/lib -lptesmumps -lptscotch -lptscotcherr + + +LPORDDIR = $(topdir)/PORD/lib/ +IPORD = -I$(topdir)/PORD/include/ +LPORD = -L$(LPORDDIR) -lpord + +#LMETISDIR = /local/metis/ +#IMETIS = # Metis doesn't need include files (Fortran interface avail.) + +# You have to choose one among the following two lines depending on +# the type of analysis you want to perform. If you want to perform only +# sequential analysis choose the first (remember to add -Dmetis in the ORDERINGSF +# variable below); for both parallel and sequential analysis choose the second +# line (remember to add -Dparmetis in the ORDERINGSF variable below) + +#LMETIS = -L$(LMETISDIR) -lmetis +#LMETIS = -L$(LMETISDIR) -lparmetis -lmetis + +# The following variables will be used in the compilation process. +# Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively. +#ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis +ORDERINGSF = -Dpord +ORDERINGSC = $(ORDERINGSF) + +LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH) +IORDERINGSF = $(ISCOTCH) +IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH) + +#End orderings +######################################################################## +################################################################################ + +PLAT = +RM = /bin/rm -f +CC = gcc +FC = gfortran +FL = gfortran +AR = ar vr +#RANLIB = ranlib +RANLIB = echo +# See point 17 in the FAQ to have more details on the compilation of mpich with gfortran +INCSEQ = -I$(topdir)/libseq +LIBSEQ = -L$(topdir)/libseq -lmpiseq +#LIBBLAS = -L/usr/lib/xmm/ -lf77blas -latlas +LIBBLAS = -lblas-3gf +LIBOTHERS = -lpthread +#Preprocessor defs for calling Fortran from C (-DAdd_ or -DAdd__ or -DUPPER) +CDEFS = -DAdd_ + +#Begin Optimized options +OPTF = -O -Dintel_ -DALLOW_NON_INIT +OPTL = -O +OPTC = -O +#End Optimized options +INC = $(INCSEQ) +LIB = $(LIBSEQ) +LIBSEQNEEDED = libseqneeded --- mumps-4.9.2.dfsg.orig/debian/mumps-test.docs +++ mumps-4.9.2.dfsg/debian/mumps-test.docs @@ -0,0 +1 @@ +debian/README.Debian --- mumps-4.9.2.dfsg.orig/debian/copyright +++ mumps-4.9.2.dfsg/debian/copyright @@ -0,0 +1,45 @@ +Format-Specification: http://wiki.debian.org/Proposals/CopyrightFormat +Debianized-By: Adam C. Powell, IV +Debianized-Date: Thu, 28 May 2009 11:15:59 -0400 +Upstream-Author: Patrick Amestoy et al. +Original-Source: http://mumps.enseeiht.fr/ + +Files: * +Copyright: None +License: other + This version of MUMPS is provided to you free of charge. It is public + domain, based on public domain software developed during the Esprit IV + European project PARASOL (1996-1999) by CERFACS, ENSEEIHT-IRIT and RAL. + Since this first public domain version in 1999, the developments are + supported by the following institutions: CERFACS, ENSEEIHT-IRIT, and + INRIA. + . + Main contributors are Patrick Amestoy, Iain Duff, Abdou Guermouche, + Jacko Koster, Jean-Yves L'Excellent, and Stephane Pralet. + . + Up-to-date copies of the MUMPS package can be obtained + from the Web pages: http://mumps.enseeiht.fr/ + or http://graal.ens-lyon.fr/MUMPS + . + THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY + EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK. + . + User documentation of any code that uses this software can + include this complete notice. You can acknowledge (using + references [1], [2], and [3]) the contribution of this package + in any scientific publication dependent upon the use of the + package. You shall use reasonable endeavours to notify + the authors of the package of this publication. + . + [1] P. R. Amestoy, I. S. Duff and J.-Y. L'Excellent, + Multifrontal parallel distributed symmetric and unsymmetric solvers, + in Comput. Methods in Appl. Mech. Eng., 184, 501-520 (2000). + . + [2] P. R. Amestoy, I. S. Duff, J. Koster and J.-Y. L'Excellent, + A fully asynchronous multifrontal solver using distributed dynamic + scheduling, SIAM Journal of Matrix Analysis and Applications, + Vol 23, No 1, pp 15-41 (2001). + . + [3] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and + S. Pralet, Hybrid scheduling for the parallel solution of linear + systems. Parallel Computing Vol 32 (2), pp 136-156 (2006). --- mumps-4.9.2.dfsg.orig/debian/libmumps-dev.docs +++ mumps-4.9.2.dfsg/debian/libmumps-dev.docs @@ -0,0 +1 @@ +debian/README.Debian --- mumps-4.9.2.dfsg.orig/debian/changelog +++ mumps-4.9.2.dfsg/debian/changelog @@ -0,0 +1,46 @@ +mumps (4.9.2.dfsg-2) unstable; urgency=low + + * Fixed bad parentheses in rules ifeq lam/mpich lines (closes: #535276). + * Added mpich2 build mechanism. + + -- Adam C. Powell, IV Mon, 04 Jan 2010 13:22:40 -0500 + +mumps (4.9.2.dfsg-1) unstable; urgency=low + + * New upstream release (closes: #554159). + * Changed -lblas to -lblas-3gf in Makefile.*.inc (closes: #557699). + * Linking tests to shared instead of static libs (closes: #555759). + + -- Adam C. Powell, IV Mon, 07 Dec 2009 17:56:51 -0500 + +mumps (4.8.4.dfsg-3) unstable; urgency=low + + [ Roberto C. Sanchez ] + * Build against dummy MPI sequential library in addition to building + against the standard MPI implementations (OpenMPI and LAM MPI). + + Introduce new package: libmumps-seq-4.8.4 + + Introduce new package: libmumps-seq-dev + * Add README.source noting that quilt is used to manage patches + + [ Adam C. Powell, IV ] + * Changed -lmpi_f77 to a variable depending on MPI implementation + (closes: #544752). + * Bumped Standards-Version. + + -- Adam C. Powell, IV Sun, 01 Nov 2009 23:56:58 -0500 + +mumps (4.8.4.dfsg-2) unstable; urgency=low + + * Removed backslash in Build-Depends list (closes: #536917). + * Updated debhelper Build-Depends version. + * Updated Standards-Version. + + -- Adam C. Powell, IV Mon, 20 Jul 2009 09:13:11 -0400 + +mumps (4.8.4.dfsg-1) unstable; urgency=low + + * First package (closes: #491024). + * Removed doc directory because there's no source for the user's guide. + + -- Adam C. Powell, IV Fri, 29 May 2009 12:49:55 -0400 + --- mumps-4.9.2.dfsg.orig/debian/patches/series +++ mumps-4.9.2.dfsg/debian/patches/series @@ -0,0 +1,4 @@ +tests-shlibs.patch +shared-pord.patch +shared-mumps.patch +shared-libseq.patch --- mumps-4.9.2.dfsg.orig/debian/patches/tests-shlibs.patch +++ mumps-4.9.2.dfsg/debian/patches/tests-shlibs.patch @@ -0,0 +1,62 @@ +Have the tests link against the shared libs instead of static ones. + +--- mumps-4.9.2.dfsg/examples/Makefile~ 2009-11-05 02:05:21.000000000 -0500 ++++ mumps-4.9.2.dfsg/examples/Makefile 2009-12-07 17:54:56.000000000 -0500 +@@ -19,28 +19,28 @@ + + include $(topdir)/Makefile.inc + +-LIBMUMPS_COMMON = $(libdir)/libmumps_common$(PLAT).a ++LIBMUMPS_COMMON = $(libdir)/libmumps_common$(PLAT).so + + +-LIBSMUMPS = $(libdir)/libsmumps$(PLAT).a $(LIBMUMPS_COMMON) ++LIBSMUMPS = $(libdir)/libsmumps$(PLAT).so $(LIBMUMPS_COMMON) + + ssimpletest: $(LIBSMUMPS) $$@.o + $(FL) -o $@ $(OPTL) ssimpletest.o $(LIBSMUMPS) $(LORDERINGS) $(LIB) $(LIBBLAS) $(LIBOTHERS) + + +-LIBDMUMPS = $(libdir)/libdmumps$(PLAT).a $(LIBMUMPS_COMMON) ++LIBDMUMPS = $(libdir)/libdmumps$(PLAT).so $(LIBMUMPS_COMMON) + + dsimpletest: $(LIBDMUMPS) $$@.o + $(FL) -o $@ $(OPTL) dsimpletest.o $(LIBDMUMPS) $(LORDERINGS) $(LIB) $(LIBBLAS) $(LIBOTHERS) + + +-LIBCMUMPS = $(libdir)/libcmumps$(PLAT).a $(LIBMUMPS_COMMON) ++LIBCMUMPS = $(libdir)/libcmumps$(PLAT).so $(LIBMUMPS_COMMON) + + csimpletest: $(LIBCMUMPS) $$@.o + $(FL) -o $@ $(OPTL) csimpletest.o $(LIBCMUMPS) $(LORDERINGS) $(LIB) $(LIBBLAS) $(LIBOTHERS) + + +-LIBZMUMPS = $(libdir)/libzmumps$(PLAT).a $(LIBMUMPS_COMMON) ++LIBZMUMPS = $(libdir)/libzmumps$(PLAT).so $(LIBMUMPS_COMMON) + + zsimpletest: $(LIBZMUMPS) $$@.o + $(FL) -o $@ $(OPTL) zsimpletest.o $(LIBZMUMPS) $(LORDERINGS) $(LIB) $(LIBBLAS) $(LIBOTHERS) +@@ -57,19 +57,19 @@ + $(CC) $(OPTC) $(INC) -I. -I$(topdir)/include -c $*.c + + +-$(libdir)/libsmumps$(PLAT).a: ++$(libdir)/libsmumps$(PLAT).so: + @echo 'Error: you should build the library' $@ 'first' + exit -1 + +-$(libdir)/libdmumps$(PLAT).a: ++$(libdir)/libdmumps$(PLAT).so: + @echo 'Error: you should build the library' $@ 'first' + exit -1 + +-$(libdir)/libcmumps$(PLAT).a: ++$(libdir)/libcmumps$(PLAT).so: + @echo 'Error: you should build the library' $@ 'first' + exit -1 + +-$(libdir)/libzmumps$(PLAT).a: ++$(libdir)/libzmumps$(PLAT).so: + @echo 'Error: you should build the library' $@ 'first' + exit -1 + --- mumps-4.9.2.dfsg.orig/debian/patches/shared-mumps.patch +++ mumps-4.9.2.dfsg/debian/patches/shared-mumps.patch @@ -0,0 +1,51 @@ +Create a shared version of the MUMPS library. + +--- mumps-4.9.2.dfsg.orig/src/Makefile ++++ mumps-4.9.2.dfsg/src/Makefile +@@ -20,7 +20,9 @@ + include $(topdir)/Makefile.inc + + mumps_lib: $(libdir)/libmumps_common$(PLAT).a \ +- $(libdir)/lib$(ARITH)mumps$(PLAT).a ++ $(libdir)/libmumps_common$(PLAT).so \ ++ $(libdir)/lib$(ARITH)mumps$(PLAT).a \ ++ $(libdir)/lib$(ARITH)mumps$(PLAT).so + + OBJS_COMMON = \ + mumps_part9.o\ +@@ -55,10 +57,18 @@ + $(AR) $@ $? + $(RANLIB) $@ + ++$(libdir)/libmumps_common$(PLAT).so: $(OBJS_COMMON) ++ $(FC) -shared $^ -Wl,-soname,libmumps_common$(PLAT)-4.9.2.so -L$(libdir) -lpord -lpthread $(MUMPS_LIBF77) -o $(libdir)/libmumps_common$(PLAT)-4.9.2.so ++ ln -s libmumps_common$(PLAT)-4.9.2.so $@ ++ + $(libdir)/lib$(ARITH)mumps$(PLAT).a: $(OBJS) + $(AR) $@ $? + $(RANLIB) $@ + ++$(libdir)/lib$(ARITH)mumps$(PLAT).so: $(OBJS) ++ $(FC) -shared $^ -Wl,-soname,lib$(ARITH)mumps$(PLAT)-4.9.2.so -L$(libdir) -lmumps_common $(MUMPS_LIBF77) -lblas -lblacs-$(MUMPS_MPI) -lscalapack-$(MUMPS_MPI) -o $(libdir)/lib$(ARITH)mumps$(PLAT)-4.9.2.so ++ ln -s lib$(ARITH)mumps$(PLAT)-4.9.2.so $@ ++ + $(ARITH)mumps_load.o: $(ARITH)mumps_comm_buffer.o \ + $(ARITH)mumps_struc_def.o + +@@ -87,13 +97,13 @@ + + .SUFFIXES: .c .F .o + .F.o: +- $(FC) $(OPTF) $(INC) $(IORDERINGSF) $(ORDERINGSF) -I. -I../include -c $*.F ++ $(FC) $(OPTF) $(INC) $(IORDERINGSF) $(ORDERINGSF) -I. -I../include -fPIC -c $*.F + .c.o: +- $(CC) $(OPTC) $(INC) -I../include $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -c $*.c ++ $(CC) $(OPTC) $(INC) -I../include $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -fPIC -c $*.c + + $(ARITH)mumps_c.o: mumps_c.c + $(CC) $(OPTC) $(INC) $(CDEFS) -DMUMPS_ARITH=MUMPS_ARITH_$(ARITH) \ +- $(IORDERINGSC) $(ORDERINGSC) -I../include -c $? -o $@ ++ $(IORDERINGSC) $(ORDERINGSC) -I../include -fPIC -c $? -o $@ + + + clean: --- mumps-4.9.2.dfsg.orig/debian/patches/shared-libseq.patch +++ mumps-4.9.2.dfsg/debian/patches/shared-libseq.patch @@ -0,0 +1,149 @@ +Create a shared version of the sequential library, MUST BE LAST IN SERIES + +--- mumps-4.9.2.dfsg.orig/libseq/Makefile ++++ mumps-4.9.2.dfsg/libseq/Makefile +@@ -7,15 +7,18 @@ + + include ../Makefile.inc + +-libmpiseq: libmpiseq$(PLAT).a ++libmpiseq: libmpiseq$(PLAT).a libmpiseq$(PLAT).so + + libmpiseq$(PLAT).a: mpi.o mpic.o elapse.o + $(AR) $@ mpi.o mpic.o elapse.o + $(RANLIB) $@ ++libmpiseq$(PLAT).so: mpi.o mpic.o elapse.o ++ $(FC) -shared $^ -Wl,-soname,libmpiseq$(PLAT)-4.9.2.so -o libmpiseq$(PLAT)-4.9.2.so ++ ln -s libmpiseq$(PLAT)-4.9.2.so $@ + .f.o: +- $(FC) $(OPTF) -c $*.f ++ $(FC) $(OPTF) -fPIC -c $*.f + .c.o: +- $(CC) $(OPTC) $(CDEFS) -I. -c $*.c ++ $(CC) $(OPTC) $(CDEFS) -I. -fPIC -c $*.c + + clean: +- $(RM) *.o *.a ++ $(RM) *.o *.a *.so +--- mumps-4.9.2.dfsg.orig/src/Makefile ++++ mumps-4.9.2.dfsg/src/Makefile +@@ -19,10 +19,10 @@ + + include $(topdir)/Makefile.inc + +-mumps_lib: $(libdir)/libmumps_common$(PLAT).a \ +- $(libdir)/libmumps_common$(PLAT).so \ +- $(libdir)/lib$(ARITH)mumps$(PLAT).a \ +- $(libdir)/lib$(ARITH)mumps$(PLAT).so ++mumps_lib: $(libdir)/libmumps_common_seq$(PLAT).a \ ++ $(libdir)/libmumps_common_seq$(PLAT).so \ ++ $(libdir)/lib$(ARITH)mumps_seq$(PLAT).a \ ++ $(libdir)/lib$(ARITH)mumps_seq$(PLAT).so + + OBJS_COMMON = \ + mumps_part9.o\ +@@ -53,21 +53,21 @@ + $(ARITH)mumps_struc_def.o + + +-$(libdir)/libmumps_common$(PLAT).a: $(OBJS_COMMON) ++$(libdir)/libmumps_common_seq$(PLAT).a: $(OBJS_COMMON) + $(AR) $@ $? + $(RANLIB) $@ + +-$(libdir)/libmumps_common$(PLAT).so: $(OBJS_COMMON) +- $(FC) -shared $^ -Wl,-soname,libmumps_common$(PLAT)-4.9.2.so -L$(libdir) -lpord -lpthread $(MUMPS_LIBF77) -o $(libdir)/libmumps_common$(PLAT)-4.9.2.so +- ln -s libmumps_common$(PLAT)-4.9.2.so $@ ++$(libdir)/libmumps_common_seq$(PLAT).so: $(OBJS_COMMON) $(topdir)/libseq/libmpiseq.so ++ $(FC) -shared $^ -Wl,-soname,libmumps_common_seq$(PLAT)-4.9.2.so -L$(libdir) -lpord_seq -lpthread -lmpiseq -o $(libdir)/libmumps_common_seq$(PLAT)-4.9.2.so ++ ln -s libmumps_common_seq$(PLAT)-4.9.2.so $@ + +-$(libdir)/lib$(ARITH)mumps$(PLAT).a: $(OBJS) ++$(libdir)/lib$(ARITH)mumps_seq$(PLAT).a: $(OBJS) + $(AR) $@ $? + $(RANLIB) $@ + +-$(libdir)/lib$(ARITH)mumps$(PLAT).so: $(OBJS) +- $(FC) -shared $^ -Wl,-soname,lib$(ARITH)mumps$(PLAT)-4.9.2.so -L$(libdir) -lmumps_common $(MUMPS_LIBF77) -lblas -lblacs-$(MUMPS_MPI) -lscalapack-$(MUMPS_MPI) -o $(libdir)/lib$(ARITH)mumps$(PLAT)-4.9.2.so +- ln -s lib$(ARITH)mumps$(PLAT)-4.9.2.so $@ ++$(libdir)/lib$(ARITH)mumps_seq$(PLAT).so: $(OBJS) ++ $(FC) -shared $^ -Wl,-soname,lib$(ARITH)mumps_seq$(PLAT)-4.9.2.so -L$(libdir) -lmumps_common_seq -lmpiseq -lblas -o $(libdir)/lib$(ARITH)mumps_seq$(PLAT)-4.9.2.so ++ ln -s lib$(ARITH)mumps_seq$(PLAT)-4.9.2.so $@ + + $(ARITH)mumps_load.o: $(ARITH)mumps_comm_buffer.o \ + $(ARITH)mumps_struc_def.o +--- mumps-4.9.2.dfsg.orig/PORD/lib/Makefile ++++ mumps-4.9.2.dfsg/PORD/lib/Makefile +@@ -21,16 +21,16 @@ + .c.o: + $(CC) $(COPTIONS) -c $*.c + +-libpord.a: $(OBJS) ++libpord_seq.a: $(OBJS) + $(AR) $(ARFUNCT) $@ $(OBJS) + $(RANLIB) $@ + +-libpord.so: $(OBJS) +- $(CC) -shared $(OBJS) -Wl,-soname,libpord-4.9.2.so -o libpord-4.9.2.so +- ln -s libpord-4.9.2.so $@ ++libpord_seq.so: $(OBJS) ++ $(CC) -shared $(OBJS) -Wl,-soname,libpord_seq-4.9.2.so -o libpord_seq-4.9.2.so ++ ln -s libpord_seq-4.9.2.so $@ + + clean: + rm -f *.o + + realclean: +- rm -f *.o libpord.a *.so ++ rm -f *.o libpord_seq.a *.so +--- mumps-4.9.2.dfsg.orig/Makefile ++++ mumps-4.9.2.dfsg/Makefile +@@ -39,40 +39,37 @@ + (cd src ; $(MAKE) $(ARITH)) + + sexamples: s +- (cd examples ; $(MAKE) s) + + dexamples: d +- (cd examples ; $(MAKE) d) + + cexamples: c +- (cd examples ; $(MAKE) c) + + zexamples: z +- (cd examples ; $(MAKE) z) + + +-requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord$(PLAT).a $(libdir)/libpord$(PLAT).so ++requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord_seq$(PLAT).a $(libdir)/libpord_seq$(PLAT).so + + # dummy MPI library (sequential version) + + libseqneeded: + (cd libseq; $(MAKE)) ++ cp libseq/lib* $(libdir) + +-# Build the libpord.a library and copy it into $(topdir)/lib +-$(libdir)/libpord$(PLAT).a: ++# Build the libpord_seq.a library and copy it into $(topdir)/lib ++$(libdir)/libpord_seq$(PLAT).a: + if [ "$(LPORDDIR)" != "" ] ; then \ + cd $(LPORDDIR); \ + $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" ARFUNCT= RANLIB="$(RANLIB)"; \ + fi; + if [ "$(LPORDDIR)" != "" ] ; then \ +- cp $(LPORDDIR)/libpord.a $@; \ ++ cp $(LPORDDIR)/libpord_seq.a $@; \ + fi; + +-$(libdir)/libpord$(PLAT).so: ++$(libdir)/libpord_seq$(PLAT).so: + if [ "$(LPORDDIR)" != "" ] ; then \ +- cd $(LPORDDIR); make CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" ARFUNCT= RANLIB="$(RANLIB)" libpord.so; fi; ++ cd $(LPORDDIR); make CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" ARFUNCT= RANLIB="$(RANLIB)" libpord_seq.so; fi; + if [ "$(LPORDDIR)" != "" ] ; then \ +- cp -a $(LPORDDIR)/libpord*.so lib/; fi; ++ cp -a $(LPORDDIR)/libpord_seq*.so lib/; fi; + + clean: + (cd src; $(MAKE) clean) --- mumps-4.9.2.dfsg.orig/debian/patches/shared-pord.patch +++ mumps-4.9.2.dfsg/debian/patches/shared-pord.patch @@ -0,0 +1,56 @@ +Create a shared version of the PORD library. + +--- mumps-4.9.2.dfsg.orig/PORD/lib/Makefile ++++ mumps-4.9.2.dfsg/PORD/lib/Makefile +@@ -8,7 +8,7 @@ + + INCLUDES = -I../include + +-COPTIONS = $(INCLUDES) $(CFLAGS) $(OPTFLAGS) ++COPTIONS = $(INCLUDES) $(CFLAGS) $(OPTFLAGS) -fPIC + + OBJS = graph.o gbipart.o gbisect.o ddcreate.o ddbisect.o nestdiss.o \ + multisector.o gelim.o bucket.o tree.o \ +@@ -25,8 +25,12 @@ + $(AR) $(ARFUNCT) $@ $(OBJS) + $(RANLIB) $@ + ++libpord.so: $(OBJS) ++ $(CC) -shared $(OBJS) -Wl,-soname,libpord-4.9.2.so -o libpord-4.9.2.so ++ ln -s libpord-4.9.2.so $@ ++ + clean: + rm -f *.o + + realclean: +- rm -f *.o libpord.a ++ rm -f *.o libpord.a *.so +--- mumps-4.9.2.dfsg.orig/Makefile ++++ mumps-4.9.2.dfsg/Makefile +@@ -51,7 +51,7 @@ + (cd examples ; $(MAKE) z) + + +-requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord$(PLAT).a ++requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord$(PLAT).a $(libdir)/libpord$(PLAT).so + + # dummy MPI library (sequential version) + +@@ -68,10 +68,16 @@ + cp $(LPORDDIR)/libpord.a $@; \ + fi; + ++$(libdir)/libpord$(PLAT).so: ++ if [ "$(LPORDDIR)" != "" ] ; then \ ++ cd $(LPORDDIR); make CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" ARFUNCT= RANLIB="$(RANLIB)" libpord.so; fi; ++ if [ "$(LPORDDIR)" != "" ] ; then \ ++ cp -a $(LPORDDIR)/libpord*.so lib/; fi; ++ + clean: + (cd src; $(MAKE) clean) + (cd examples; $(MAKE) clean) +- (cd $(libdir); $(RM) *$(PLAT).a) ++ (cd $(libdir); $(RM) *$(PLAT).a *$(PLAT).so) + (cd libseq; $(MAKE) clean) + if [ $(LPORDDIR) != "" ] ; then \ + cd $(LPORDDIR); $(MAKE) realclean; \