From 7502cb255bdbe3c64c07118e57c7351879072134497083adf52a43ffc964e2d7 Mon Sep 17 00:00:00 2001 From: Corot Sebastien Date: Mon, 20 Aug 2012 21:51:31 +0000 Subject: [PATCH] Accepting request 131254 from home:scorot A MUltifrontal Massively Parallel Sparse direct Solver OBS-URL: https://build.opensuse.org/request/show/131254 OBS-URL: https://build.opensuse.org/package/show/science/mumps?expand=0&rev=1 --- .gitattributes | 23 ++ .gitignore | 1 + Makefile.par.inc | 93 +++++ Makefile.ptscotch.inc | 93 +++++ Makefile.scotch.inc | 90 +++++ Makefile.seq.inc | 90 +++++ mumps-4.9.2-debian-ptscotch.patch | 118 ++++++ mumps-4.9.2-debian-scotch.patch | 118 ++++++ mumps-4.9.2-debian-shared-libseq.patch | 37 ++ mumps-4.9.2-debian-shared-mumps.patch | 51 +++ mumps-4.9.2-debian-shared-pord.patch | 69 ++++ mumps-4.9.2-debian-tests-shlibs.patch | 62 ++++ mumps-4.9.2.tar.bz2 | 3 + mumps.changes | 28 ++ mumps.spec | 474 +++++++++++++++++++++++++ 15 files changed, 1350 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 Makefile.par.inc create mode 100644 Makefile.ptscotch.inc create mode 100644 Makefile.scotch.inc create mode 100644 Makefile.seq.inc create mode 100644 mumps-4.9.2-debian-ptscotch.patch create mode 100644 mumps-4.9.2-debian-scotch.patch create mode 100644 mumps-4.9.2-debian-shared-libseq.patch create mode 100644 mumps-4.9.2-debian-shared-mumps.patch create mode 100644 mumps-4.9.2-debian-shared-pord.patch create mode 100644 mumps-4.9.2-debian-tests-shlibs.patch create mode 100644 mumps-4.9.2.tar.bz2 create mode 100644 mumps.changes create mode 100644 mumps.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/Makefile.par.inc b/Makefile.par.inc new file mode 100644 index 0000000..1857f87 --- /dev/null +++ b/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$(PLAT) + +#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 = mpicc +FC = mpif77 +FL = mpif77 +AR = ar vr +#RANLIB = ranlib +RANLIB = echo +SCALAP = -lscalapack -lmpiblacs -lmpiblacsCinit +#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$(PLAT) +#LIBBLAS = -L/usr/lib/xmm/ -lf77blas -latlas +LIBBLAS = -lblas -llapack +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 = diff --git a/Makefile.ptscotch.inc b/Makefile.ptscotch.inc new file mode 100644 index 0000000..ad93235 --- /dev/null +++ b/Makefile.ptscotch.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/usr/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 = -lptesmumps -lptscotch -lptscotcherr -lscotch + + +LPORDDIR = $(topdir)/PORD/lib/ +IPORD = -I$(topdir)/PORD/include/ +LPORD = -L$(LPORDDIR) -lpord$(PLAT) + +#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 -Dpord -Dptscotch +#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 -lmpiblacs -lmpiblacsCinit +#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$(PLAT) +#LIBBLAS = -L/usr/lib/xmm/ -lf77blas -latlas +LIBBLAS = -lblas -llapack +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 = diff --git a/Makefile.scotch.inc b/Makefile.scotch.inc new file mode 100644 index 0000000..57d3bfd --- /dev/null +++ b/Makefile.scotch.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/usr/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 = -lesmumps -lscotch -lscotcherr +#LSCOTCH = -L$(SCOTCHDIR)/lib -lptesmumps -lptscotch -lptscotcherr + + +LPORDDIR = $(topdir)/PORD/lib/ +IPORD = -I$(topdir)/PORD/include/ +LPORD = -L$(LPORDDIR) -lpord$(PLAT) + +#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 -Dpord +#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$(PLAT) +#LIBBLAS = -L/usr/lib/xmm/ -lf77blas -latlas +LIBBLAS = -lblas -llapack +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 diff --git a/Makefile.seq.inc b/Makefile.seq.inc new file mode 100644 index 0000000..f66a772 --- /dev/null +++ b/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$(PLAT) + +#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$(PLAT) +#LIBBLAS = -L/usr/lib/xmm/ -lf77blas -latlas +LIBBLAS = -lblas -llapack +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 diff --git a/mumps-4.9.2-debian-ptscotch.patch b/mumps-4.9.2-debian-ptscotch.patch new file mode 100644 index 0000000..3cc0e3e --- /dev/null +++ b/mumps-4.9.2-debian-ptscotch.patch @@ -0,0 +1,118 @@ +Convert scotch support to ptscotch. + +Index: mumps-4.9.2.dfsg/Makefile +=================================================================== +--- mumps-4.9.2.dfsg.orig/Makefile 2010-04-02 12:18:01.000000000 +0200 ++++ mumps-4.9.2.dfsg/Makefile 2010-04-02 12:18:01.000000000 +0200 +@@ -47,7 +47,7 @@ + zexamples: z + + +-requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord_scotch$(PLAT).a $(libdir)/libpord_scotch$(PLAT).so ++requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord_ptscotch$(PLAT).a $(libdir)/libpord_ptscotch$(PLAT).so + + # dummy MPI library (sequential version) + +@@ -55,21 +55,21 @@ + (cd libseq; $(MAKE)) + cp libseq/lib* $(libdir) + +-# Build the libpord_scotch.a library and copy it into $(topdir)/lib +-$(libdir)/libpord_scotch$(PLAT).a: ++# Build the libpord_ptscotch.a library and copy it into $(topdir)/lib ++$(libdir)/libpord_ptscotch$(PLAT).a: + if [ "$(LPORDDIR)" != "" ] ; then \ + cd $(LPORDDIR); \ + $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" ARFUNCT= RANLIB="$(RANLIB)"; \ + fi; + if [ "$(LPORDDIR)" != "" ] ; then \ +- cp $(LPORDDIR)/libpord_scotch.a $@; \ ++ cp $(LPORDDIR)/libpord_ptscotch.a $@; \ + fi; + +-$(libdir)/libpord_scotch$(PLAT).so: ++$(libdir)/libpord_ptscotch$(PLAT).so: + if [ "$(LPORDDIR)" != "" ] ; then \ +- cd $(LPORDDIR); make CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" ARFUNCT= RANLIB="$(RANLIB)" libpord_scotch.so; fi; ++ cd $(LPORDDIR); make CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" ARFUNCT= RANLIB="$(RANLIB)" libpord_ptscotch.so; fi; + if [ "$(LPORDDIR)" != "" ] ; then \ +- cp -a $(LPORDDIR)/libpord_scotch*.so lib/; fi; ++ cp -a $(LPORDDIR)/libpord_ptscotch*.so lib/; fi; + + clean: + (cd src; $(MAKE) clean) +Index: mumps-4.9.2.dfsg/PORD/lib/Makefile +=================================================================== +--- mumps-4.9.2.dfsg.orig/PORD/lib/Makefile 2010-04-02 12:18:01.000000000 +0200 ++++ mumps-4.9.2.dfsg/PORD/lib/Makefile 2010-04-02 12:18:01.000000000 +0200 +@@ -21,16 +21,16 @@ + .c.o: + $(CC) $(COPTIONS) -c $*.c + +-libpord_scotch.a: $(OBJS) ++libpord_ptscotch.a: $(OBJS) + $(AR) $(ARFUNCT) $@ $(OBJS) + $(RANLIB) $@ + +-libpord_scotch.so: $(OBJS) +- $(CC) -shared $(OBJS) -Wl,-soname,libpord_scotch-4.9.2.so -o libpord_scotch-4.9.2.so +- ln -s libpord_scotch-4.9.2.so $@ ++libpord_ptscotch.so: $(OBJS) ++ $(CC) -shared $(OBJS) -Wl,-soname,libpord_ptscotch-4.9.2.so -o libpord_ptscotch-4.9.2.so ++ ln -s libpord_ptscotch-4.9.2.so $@ + + clean: + rm -f *.o + + realclean: +- rm -f *.o libpord_scotch.a *.so ++ rm -f *.o libpord_ptscotch.a *.so +Index: mumps-4.9.2.dfsg/src/Makefile +=================================================================== +--- mumps-4.9.2.dfsg.orig/src/Makefile 2010-04-02 12:18:01.000000000 +0200 ++++ mumps-4.9.2.dfsg/src/Makefile 2010-04-02 13:27:06.000000000 +0200 +@@ -19,10 +19,10 @@ + + include $(topdir)/Makefile.inc + +-mumps_lib: $(libdir)/libmumps_common_scotch$(PLAT).a \ +- $(libdir)/libmumps_common_scotch$(PLAT).so \ +- $(libdir)/lib$(ARITH)mumps_scotch$(PLAT).a \ +- $(libdir)/lib$(ARITH)mumps_scotch$(PLAT).so ++mumps_lib: $(libdir)/libmumps_common_ptscotch$(PLAT).a \ ++ $(libdir)/libmumps_common_ptscotch$(PLAT).so \ ++ $(libdir)/lib$(ARITH)mumps_ptscotch$(PLAT).a \ ++ $(libdir)/lib$(ARITH)mumps_ptscotch$(PLAT).so + + OBJS_COMMON = \ + mumps_part9.o\ +@@ -53,21 +53,21 @@ + $(ARITH)mumps_struc_def.o + + +-$(libdir)/libmumps_common_scotch$(PLAT).a: $(OBJS_COMMON) ++$(libdir)/libmumps_common_ptscotch$(PLAT).a: $(OBJS_COMMON) + $(AR) $@ $? + $(RANLIB) $@ + +-$(libdir)/libmumps_common_scotch$(PLAT).so: $(OBJS_COMMON) $(topdir)/libseq/libmpiseq.so +- $(FC) -shared $^ -Wl,-soname,libmumps_common_scotch$(PLAT)-4.9.2.so -L$(libdir) -lpord_scotch -lpthread -lmpiseq -o $(libdir)/libmumps_common_scotch$(PLAT)-4.9.2.so +- ln -s libmumps_common_scotch$(PLAT)-4.9.2.so $@ ++$(libdir)/libmumps_common_ptscotch$(PLAT).so: $(OBJS_COMMON) ++ $(FC) -shared $^ -Wl,-soname,libmumps_common_ptscotch$(PLAT)-4.9.2.so -L$(libdir) -lpord_ptscotch -lpthread -o $(libdir)/libmumps_common_ptscotch$(PLAT)-4.9.2.so ++ ln -s libmumps_common_ptscotch$(PLAT)-4.9.2.so $@ + +-$(libdir)/lib$(ARITH)mumps_scotch$(PLAT).a: $(OBJS) ++$(libdir)/lib$(ARITH)mumps_ptscotch$(PLAT).a: $(OBJS) + $(AR) $@ $? + $(RANLIB) $@ + +-$(libdir)/lib$(ARITH)mumps_scotch$(PLAT).so: $(OBJS) +- $(FC) -shared $^ -Wl,-soname,lib$(ARITH)mumps_scotch$(PLAT)-4.9.2.so -L$(libdir) -lmumps_common_scotch -lmpiseq -lblas -o $(libdir)/lib$(ARITH)mumps_scotch$(PLAT)-4.9.2.so +- ln -s lib$(ARITH)mumps_scotch$(PLAT)-4.9.2.so $@ ++$(libdir)/lib$(ARITH)mumps_ptscotch$(PLAT).so: $(OBJS) ++ $(FC) -shared $^ -Wl,-soname,lib$(ARITH)mumps_ptscotch$(PLAT)-4.9.2.so -L$(libdir) -lmumps_common_ptscotch -lblas -lblacs-$(MUMPS_MPI) -lscalapack-$(MUMPS_MPI) -o $(libdir)/lib$(ARITH)mumps_ptscotch$(PLAT)-4.9.2.so ++ ln -s lib$(ARITH)mumps_ptscotch$(PLAT)-4.9.2.so $@ + + $(ARITH)mumps_load.o: $(ARITH)mumps_comm_buffer.o \ + $(ARITH)mumps_struc_def.o diff --git a/mumps-4.9.2-debian-scotch.patch b/mumps-4.9.2-debian-scotch.patch new file mode 100644 index 0000000..ed0e45d --- /dev/null +++ b/mumps-4.9.2-debian-scotch.patch @@ -0,0 +1,118 @@ +Add scotch support with different library names to PORD and MUMPS libraries. + +Index: mumps-4.9.2.dfsg/Makefile +=================================================================== +--- mumps-4.9.2.dfsg.orig/Makefile 2010-04-01 19:03:02.000000000 +0200 ++++ mumps-4.9.2.dfsg/Makefile 2010-04-01 19:04:04.000000000 +0200 +@@ -47,7 +47,7 @@ + zexamples: z + + +-requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord_seq$(PLAT).a $(libdir)/libpord_seq$(PLAT).so ++requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord_scotch$(PLAT).a $(libdir)/libpord_scotch$(PLAT).so + + # dummy MPI library (sequential version) + +@@ -55,21 +55,21 @@ + (cd libseq; $(MAKE)) + cp libseq/lib* $(libdir) + +-# Build the libpord_seq.a library and copy it into $(topdir)/lib +-$(libdir)/libpord_seq$(PLAT).a: ++# Build the libpord_scotch.a library and copy it into $(topdir)/lib ++$(libdir)/libpord_scotch$(PLAT).a: + if [ "$(LPORDDIR)" != "" ] ; then \ + cd $(LPORDDIR); \ + $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" ARFUNCT= RANLIB="$(RANLIB)"; \ + fi; + if [ "$(LPORDDIR)" != "" ] ; then \ +- cp $(LPORDDIR)/libpord_seq.a $@; \ ++ cp $(LPORDDIR)/libpord_scotch.a $@; \ + fi; + +-$(libdir)/libpord_seq$(PLAT).so: ++$(libdir)/libpord_scotch$(PLAT).so: + if [ "$(LPORDDIR)" != "" ] ; then \ +- cd $(LPORDDIR); make CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" ARFUNCT= RANLIB="$(RANLIB)" libpord_seq.so; fi; ++ cd $(LPORDDIR); make CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" ARFUNCT= RANLIB="$(RANLIB)" libpord_scotch.so; fi; + if [ "$(LPORDDIR)" != "" ] ; then \ +- cp -a $(LPORDDIR)/libpord_seq*.so lib/; fi; ++ cp -a $(LPORDDIR)/libpord_scotch*.so lib/; fi; + + clean: + (cd src; $(MAKE) clean) +Index: mumps-4.9.2.dfsg/PORD/lib/Makefile +=================================================================== +--- mumps-4.9.2.dfsg.orig/PORD/lib/Makefile 2010-04-01 19:03:02.000000000 +0200 ++++ mumps-4.9.2.dfsg/PORD/lib/Makefile 2010-04-01 19:03:54.000000000 +0200 +@@ -21,16 +21,16 @@ + .c.o: + $(CC) $(COPTIONS) -c $*.c + +-libpord_seq.a: $(OBJS) ++libpord_scotch.a: $(OBJS) + $(AR) $(ARFUNCT) $@ $(OBJS) + $(RANLIB) $@ + +-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 $@ ++libpord_scotch.so: $(OBJS) ++ $(CC) -shared $(OBJS) -Wl,-soname,libpord_scotch-4.9.2.so -o libpord_scotch-4.9.2.so ++ ln -s libpord_scotch-4.9.2.so $@ + + clean: + rm -f *.o + + realclean: +- rm -f *.o libpord_seq.a *.so ++ rm -f *.o libpord_scotch.a *.so +Index: mumps-4.9.2.dfsg/src/Makefile +=================================================================== +--- mumps-4.9.2.dfsg.orig/src/Makefile 2010-04-01 19:03:02.000000000 +0200 ++++ mumps-4.9.2.dfsg/src/Makefile 2010-04-01 19:03:42.000000000 +0200 +@@ -19,10 +19,10 @@ + + include $(topdir)/Makefile.inc + +-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 ++mumps_lib: $(libdir)/libmumps_common_scotch$(PLAT).a \ ++ $(libdir)/libmumps_common_scotch$(PLAT).so \ ++ $(libdir)/lib$(ARITH)mumps_scotch$(PLAT).a \ ++ $(libdir)/lib$(ARITH)mumps_scotch$(PLAT).so + + OBJS_COMMON = \ + mumps_part9.o\ +@@ -53,21 +53,21 @@ + $(ARITH)mumps_struc_def.o + + +-$(libdir)/libmumps_common_seq$(PLAT).a: $(OBJS_COMMON) ++$(libdir)/libmumps_common_scotch$(PLAT).a: $(OBJS_COMMON) + $(AR) $@ $? + $(RANLIB) $@ + +-$(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)/libmumps_common_scotch$(PLAT).so: $(OBJS_COMMON) $(topdir)/libseq/libmpiseq.so ++ $(FC) -shared $^ -Wl,-soname,libmumps_common_scotch$(PLAT)-4.9.2.so -L$(libdir) -lpord_scotch -lpthread -lmpiseq -o $(libdir)/libmumps_common_scotch$(PLAT)-4.9.2.so ++ ln -s libmumps_common_scotch$(PLAT)-4.9.2.so $@ + +-$(libdir)/lib$(ARITH)mumps_seq$(PLAT).a: $(OBJS) ++$(libdir)/lib$(ARITH)mumps_scotch$(PLAT).a: $(OBJS) + $(AR) $@ $? + $(RANLIB) $@ + +-$(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 $@ ++$(libdir)/lib$(ARITH)mumps_scotch$(PLAT).so: $(OBJS) ++ $(FC) -shared $^ -Wl,-soname,lib$(ARITH)mumps_scotch$(PLAT)-4.9.2.so -L$(libdir) -lmumps_common_scotch -lmpiseq -lblas -o $(libdir)/lib$(ARITH)mumps_scotch$(PLAT)-4.9.2.so ++ ln -s lib$(ARITH)mumps_scotch$(PLAT)-4.9.2.so $@ + + $(ARITH)mumps_load.o: $(ARITH)mumps_comm_buffer.o \ + $(ARITH)mumps_struc_def.o diff --git a/mumps-4.9.2-debian-shared-libseq.patch b/mumps-4.9.2-debian-shared-libseq.patch new file mode 100644 index 0000000..f1b93b8 --- /dev/null +++ b/mumps-4.9.2-debian-shared-libseq.patch @@ -0,0 +1,37 @@ +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).so.4.9.2 -o libmpiseq$(PLAT).so.4.9.2 ++ ln -s libmpiseq$(PLAT).so.4.9.2 $@ + .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/Makefile ++++ mumps-4.9.2.dfsg/Makefile +@@ -57,6 +57,7 @@ + + libseqneeded: + (cd libseq; $(MAKE)) ++ cp libseq/lib* $(libdir) + + # Build the libpord.a library and copy it into $(topdir)/lib + $(libdir)/libpord$(PLAT).a: diff --git a/mumps-4.9.2-debian-shared-mumps.patch b/mumps-4.9.2-debian-shared-mumps.patch new file mode 100644 index 0000000..050e9c7 --- /dev/null +++ b/mumps-4.9.2-debian-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).so.4.9.2 -L$(libdir) $(LORDERINGS) -lpthread $(MUMPS_LIBF77) -o $(libdir)/libmumps_common$(PLAT).so.4.9.2 ++ ln -s libmumps_common$(PLAT).so.4.9.2 $@ ++ + $(libdir)/lib$(ARITH)mumps$(PLAT).a: $(OBJS) + $(AR) $@ $? + $(RANLIB) $@ + ++$(libdir)/lib$(ARITH)mumps$(PLAT).so: $(OBJS) ++ $(FC) -shared $^ -Wl,-soname,lib$(ARITH)mumps$(PLAT).so.4.9.2 -L$(libdir) -lmumps_common$(PLAT) $(LORDERINGS) $(MUMPS_LIBF77) $(LIBBLAS) $(SCALAP) -o $(libdir)/lib$(ARITH)mumps$(PLAT).so.4.9.2 ++ ln -s lib$(ARITH)mumps$(PLAT).so.4.9.2 $@ ++ + $(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: diff --git a/mumps-4.9.2-debian-shared-pord.patch b/mumps-4.9.2-debian-shared-pord.patch new file mode 100644 index 0000000..8b9c19c --- /dev/null +++ b/mumps-4.9.2-debian-shared-pord.patch @@ -0,0 +1,69 @@ +Create a shared version of the PORD library. + +Index: mumps-4.9.2.dfsg/PORD/lib/Makefile +=================================================================== +--- mumps-4.9.2.dfsg.orig/PORD/lib/Makefile 2009-11-05 02:05:08.000000000 -0500 ++++ mumps-4.9.2.dfsg/PORD/lib/Makefile 2010-04-09 15:01:38.000000000 -0400 +@@ -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 \ +@@ -21,12 +21,16 @@ + .c.o: + $(CC) $(COPTIONS) -c $*.c + +-libpord.a: $(OBJS) ++libpord$(PLAT).a: $(OBJS) + $(AR) $(ARFUNCT) $@ $(OBJS) + $(RANLIB) $@ + ++libpord$(PLAT).so: $(OBJS) ++ $(CC) -shared $(OBJS) -Wl,-soname,libpord$(PLAT).so.4.9.2 -o libpord$(PLAT).so.4.9.2 ++ ln -s libpord$(PLAT).so.4.9.2 $@ ++ + clean: + rm -f *.o + + realclean: +- rm -f *.o libpord.a ++ rm -f *.o libpord*.a *.so +Index: mumps-4.9.2.dfsg/Makefile +=================================================================== +--- mumps-4.9.2.dfsg.orig/Makefile 2009-11-05 02:05:08.000000000 -0500 ++++ mumps-4.9.2.dfsg/Makefile 2010-04-09 15:02:14.000000000 -0400 +@@ -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) + +@@ -65,13 +65,19 @@ + $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" ARFUNCT= RANLIB="$(RANLIB)"; \ + fi; + if [ "$(LPORDDIR)" != "" ] ; then \ +- cp $(LPORDDIR)/libpord.a $@; \ ++ cp $(LPORDDIR)/libpord$(PLAT).a $@; \ + fi; + ++$(libdir)/libpord$(PLAT).so: ++ if [ "$(LPORDDIR)" != "" ] ; then \ ++ cd $(LPORDDIR); make CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" ARFUNCT= RANLIB="$(RANLIB)" libpord$(PLAT).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; \ diff --git a/mumps-4.9.2-debian-tests-shlibs.patch b/mumps-4.9.2-debian-tests-shlibs.patch new file mode 100644 index 0000000..da89ba9 --- /dev/null +++ b/mumps-4.9.2-debian-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 + diff --git a/mumps-4.9.2.tar.bz2 b/mumps-4.9.2.tar.bz2 new file mode 100644 index 0000000..5981616 --- /dev/null +++ b/mumps-4.9.2.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b0afaeeca6be7dcc9f2f7d5706960621f686f9d5f4e25c8bf8d49d13b000dd8 +size 1820798 diff --git a/mumps.changes b/mumps.changes new file mode 100644 index 0000000..7b273cc --- /dev/null +++ b/mumps.changes @@ -0,0 +1,28 @@ +------------------------------------------------------------------- +Mon Aug 20 21:08:35 UTC 2012 - scorot@free.fr + +- minor spec file changes + +------------------------------------------------------------------- +Fri Aug 3 21:47:55 UTC 2012 - scorot@free.fr + +- remove atlas deps and link againt ref blas + +------------------------------------------------------------------- +Sun May 13 14:11:40 UTC 2012 - scorot@free.fr + +- fix build on i586 + +------------------------------------------------------------------- +Sun May 13 11:33:35 UTC 2012 - scorot@free.fr + +- spec file cleanup and formating +- remove mpich2 stuff + +------------------------------------------------------------------- +Tue May 8 19:22:00 UTC 2012 - scorot@free.fr + +- specfile cleanup and update with scotch changes +- link with ATLAS shared libs libsatlas.so +- bulid parallel libs for openmpi and mvapich2 + diff --git a/mumps.spec b/mumps.spec new file mode 100644 index 0000000..baf1a18 --- /dev/null +++ b/mumps.spec @@ -0,0 +1,474 @@ +# +# spec file for package mumps +# +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +%if 0%{?sles_version} +%define _mpi openmpi mvapich2 +%else +%define _mpi openmpi +%endif + +Summary: A MUltifrontal Massively Parallel Sparse direct Solver +License: SUSE-Public-Domain +Group: System/Libraries +Name: mumps +Version: 4.9.2 +Release: 0 +Url: http://mumps.enseeiht.fr/ +Source0: %{name}-%{version}.tar.bz2 +Source1: Makefile.ptscotch.inc +Source2: Makefile.scotch.inc +Source3: Makefile.seq.inc +Source4: Makefile.par.inc +Patch0: mumps-4.9.2-debian-shared-libseq.patch +Patch1: mumps-4.9.2-debian-shared-pord.patch +Patch2: mumps-4.9.2-debian-tests-shlibs.patch +Patch3: mumps-4.9.2-debian-shared-mumps.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: blacs-openmpi-devel +BuildRequires: gcc-fortran +BuildRequires: libptscotch-openmpi-devel +BuildRequires: libscotch-devel +BuildRequires: openmpi-devel +BuildRequires: scalapack-openmpi-devel +%if 0%{?sles_version} +BuildRequires: blacs-mvapich2-devel +BuildRequires: libptscotch-mvapich2-devel +BuildRequires: mvapich2-devel +BuildRequires: scalapack-mvapich2-devel +%endif +BuildRequires: blas-devel +BuildRequires: lapack-devel + +%description +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 contains the sequential library. + + +%package scotch +Summary: A MUltifrontal Massively Parallel Sparse direct Solver +Group: System/Libraries +Requires: mumps = %{version} + +%description scotch +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 contains the sequential library with Scotch support enabled. + + +%package devel +Summary: Files needed for developing mumps based applications +Group: Development/Libraries/Other +Requires: blas-devel +Requires: lapack-devel +Requires: mumps = %{version} +Requires: mumps-scotch = %{version} +Requires: scotch-devel + +%description devel +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 openmpi +Summary: A MUltifrontal Massively Parallel Sparse direct Solver +Group: System/Libraries +Requires: mumps = %{version} + +%description openmpi +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 contains the parallel library build with openmpi. + + +%package ptscotch-openmpi +Summary: A MUltifrontal Massively Parallel Sparse direct Solver +Group: System/Libraries +Requires: mumps = %{version} + +%description ptscotch-openmpi +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 contains the parallel library build with openmpi and with +Scotch enabled. + + +%package openmpi-devel +Summary: Files needed for developing mumps based applications +Group: Development/Libraries/Parallel +Requires: blacs-openmpi-devel +Requires: blas-devel +Requires: lapack-devel +Requires: mumps-openmpi = %{version} +Requires: mumps-scotch-openmpi = %{version} +Requires: openmpi-devel +Requires: ptscotch-openmpi-devel +Requires: scalapack-openmpi-devel + +%description openmpi-devel +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 test-openmpi +Summary: Simple test programs and examples for mumps +Group: System/Libraries + +%description test-openmpi +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 packages contains some test and examples programs for mumps. In addition, +matlab and scilab extensions are provided in /usr/share/doc/packages/mumps. + +%if 0%{?sles_version} +%package mvapich2 +Summary: A MUltifrontal Massively Parallel Sparse direct Solver +Group: System/Libraries +Requires: mumps = %{version} + +%description mvapich2 +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 contains the parallel library build with mvapich2. + + +%package ptscotch-mvapich2 +Summary: A MUltifrontal Massively Parallel Sparse direct Solver +Group: System/Libraries +Requires: mumps = %{version} + +%description ptscotch-mvapich2 +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 contains the parallel library build with mvapich2 and with +Scotch enabled. + + +%package mvapich2-devel +Summary: Files needed for developing mumps based applications +Group: Development/Libraries/Parallel +Requires: blacs-mvapich2-devel +Requires: blas-devel +Requires: lapack-devel +Requires: mumps-mvapich2 = %{version} +Requires: mumps-scotch-mvapich2 = %{version} +Requires: mvapich2-devel +Requires: ptscotch-mvapich2-devel +Requires: scalapack-mvapich2-devel + +%description mvapich2-devel +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 test-mvapich2 +Summary: Simple test programs and examples for mumps +Group: System/Libraries + +%description test-mvapich2 +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 packages contains some test and examples programs for mumps. In addition, +matlab and scilab extensions are provided in /usr/share/doc/packages/mumps. +%endif + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 + +%build +export SUSE_ASNEEDED=0 + +# sequential with scotch support enabled +cp -f %{S:2} Makefile.inc +make MUMPS_MPI=openmpi MUMPS_LIBF77="-lmpiseq_scotch" \ + OPTC="$RPM_OPT_FLAGS" \ + PLAT="_scotch" all +cp -a lib libmumps_scotch +cp -af libseq/lib* libmumps_scotch +cp -af PORD/lib/libpord_scotch.so* libmumps_scotch +make clean +rm -f Makefile.inc + +# sequential only +cp -f %{S:3} Makefile.inc +make MUMPS_LIBF77="-lmpiseq_seq" PLAT="_seq" \ + OPTC="$RPM_OPT_FLAGS" all +cp -a lib libmumps_seq +cp -af libseq/lib* libmumps_seq +cp -af PORD/lib/libpord_seq.so* libmumps_seq +make clean +rm -f Makefile.inc + +# ptscotch : parallel with scotch support enabled +%if 0%{?sles_version} +cp -f %{S:1} Makefile.inc +export LD_LIBRARY_PATH=%{_libdir}/mpi/gcc/mvapich2/%_lib +make MUMPS_MPI=mvapich2 \ + FC=%{_libdir}/mpi/gcc/mvapich2/bin/mpif77 \ + MUMPS_LIBF77="-L%{_libdir}/mpi/gcc/mvapich2/%_lib -lfmpich -lmpich" \ + OPTC="$RPM_OPT_FLAGS" \ + INCPAR=-I%{_libdir}/mpi/gcc/mvapich2/include \ + PLAT="_ptscotch" all +# build test programs +cp -a lib libmumps_ptscotch_mvapich2 +cp -af PORD/lib/libpord_ptscotch.so* libmumps_ptscotch_mvapich2/ +make clean +rm -f Makefile.inc +%endif + +cp -f %{S:1} Makefile.inc +export LD_LIBRARY_PATH=%{_libdir}/mpi/gcc/openmpi/%_lib +make MUMPS_MPI=openmpi \ + FC=%{_libdir}/mpi/gcc/openmpi/bin/mpif77 \ + MUMPS_LIBF77="-L%{_libdir}/mpi/gcc/openmpi/%_lib -lmpi_f77 -lmpi" \ + OPTC="$RPM_OPT_FLAGS" \ + INCPAR=-I%{_libdir}/mpi/gcc/openmpi/include \ + PLAT="_ptscotch" all +# build test programs +cp -a lib libmumps_ptscotch_openmpi +cp -af PORD/lib/libpord_ptscotch.so* libmumps_ptscotch_openmpi/ +make clean +rm -f Makefile.inc + +%if 0%{?sles_version} +cp %{S:4} Makefile.inc +export LD_LIBRARY_PATH=%{_libdir}/mpi/gcc/mvapich2/%_lib +make MUMPS_MPI=mvapich2 \ + FC=%{_libdir}/mpi/gcc/mvapich2/bin/mpif77 \ + MUMPS_LIBF77="-L%{_libdir}/mpi/gcc/mvapich2/%_lib -lfmpich -lmpich" \ + OPTC="$RPM_OPT_FLAGS" all +# build test programs +cd examples +make all +cd .. +# +cp -a lib lib_mvapich2 +cp -af PORD/lib/libpord.so* lib_mvapich2 +cp -a examples examples_mvapich2 +make clean +rm -f Makefile.inc +%endif + +cp %{S:4} Makefile.inc +export LD_LIBRARY_PATH=%{_libdir}/mpi/gcc/openmpi/%_lib +make MUMPS_MPI=openmpi \ + FC=%{_libdir}/mpi/gcc/openmpi/bin/mpif77 \ + MUMPS_LIBF77="-L%{_libdir}/mpi/gcc/openmpi/%_lib -lmpi_f77 -lmpi" \ + OPTC="$RPM_OPT_FLAGS" all +# build test programs +cd examples +make all +cd .. +# +cp -a lib lib_openmpi +cp -af PORD/lib/libpord.so* lib_openmpi +cp -a examples examples_openmpi +make clean +rm -f Makefile.inc + +%install +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_includedir}/mumps +mkdir -p %{buildroot}%{_includedir}/pord +mkdir -p %{buildroot}%{_bindir} + +# install sequential libs +cp -P libmumps_seq/lib*.a %{buildroot}%{_libdir} +cp -P libmumps_scotch/*.a %{buildroot}%{_libdir} +cp -P libmumps_seq/lib*.so* %{buildroot}%{_libdir} +cp -P libmumps_scotch/*.so* %{buildroot}%{_libdir} + +cp -P PORD/lib/*.so* %{buildroot}%{_libdir} + +# install parallel libs +for mpi in %_mpi; do + mkdir -p %{buildroot}%{_libdir}/mpi/gcc/$mpi/%_lib + mkdir -p %{buildroot}%{_libdir}/mpi/gcc/$mpi/bin + cp -P lib_$mpi/lib*.a %{buildroot}%{_libdir}/mpi/gcc/$mpi/%_lib + cp -P libmumps_ptscotch_$mpi/*.a %{buildroot}%{_libdir}/mpi/gcc/$mpi/%_lib + cp -P lib_$mpi/lib*.so* %{buildroot}%{_libdir}/mpi/gcc/$mpi/%_lib + cp -P libmumps_ptscotch_$mpi/*.so* %{buildroot}%{_libdir}/mpi/gcc/$mpi/%_lib + install -m 755 examples_$mpi/*simpletest %{buildroot}%{_libdir}/mpi/gcc/$mpi/bin + install -m 755 examples_$mpi/c_example %{buildroot}%{_libdir}/mpi/gcc/$mpi/bin +done + +install -m 644 include/* %{buildroot}%{_includedir}/mumps +install -m 644 PORD/include/* %{buildroot}%{_includedir}/pord + +# Don't want binaries in docdir +rm -rf examples/*.o examples/*simpletest examples/c_example + +# Remove parallel libs in sequential lib directory +rm -f %{buildroot}%{_libdir}/libpord.so* +rm -f %{buildroot}%{_libdir}/libpord_ptscotch.so* + +%clean +rm -rf %{buildroot} + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%post scotch -p /sbin/ldconfig +%postun scotch -p /sbin/ldconfig + +%post openmpi -p /sbin/ldconfig +%postun openmpi -p /sbin/ldconfig + +%post ptscotch-openmpi -p /sbin/ldconfig +%postun ptscotch-openmpi -p /sbin/ldconfig + +%if 0%{?sles_version} +%post mvapich2 -p /sbin/ldconfig +%postun mvapich2 -p /sbin/ldconfig + +%post ptscotch-mvapich2 -p /sbin/ldconfig +%postun ptscotch-mvapich2 -p /sbin/ldconfig +%endif + +%files +%defattr(-,root,root,-) +%doc ChangeLog README LICENSE VERSION doc SCILAB MATLAB +%{_libdir}/libcmumps_seq.so.* +%{_libdir}/libdmumps_seq.so.* +%{_libdir}/libsmumps_seq.so.* +%{_libdir}/libzmumps_seq.so.* +%{_libdir}/libmumps_common_seq.so.* +%{_libdir}/libmpiseq_seq.so.* +%{_libdir}/libpord_seq.so.* + +%files scotch +%defattr(-,root,root,-) +%{_libdir}/libcmumps_scotch.so.* +%{_libdir}/libdmumps_scotch.so.* +%{_libdir}/libsmumps_scotch.so.* +%{_libdir}/libzmumps_scotch.so.* +%{_libdir}/libmumps_common_scotch.so.* +%{_libdir}/libmpiseq_scotch.so.* +%{_libdir}/libpord_scotch.so.* + +%files devel +%defattr(-,root,root,-) +%{_includedir}/mumps +%{_includedir}/pord +%{_libdir}/*.so +%{_libdir}/*.a + +%files openmpi +%defattr(-,root,root,-) +%{_libdir}/mpi/gcc/openmpi/%_lib/libcmumps.so.* +%{_libdir}/mpi/gcc/openmpi/%_lib/libdmumps.so.* +%{_libdir}/mpi/gcc/openmpi/%_lib/libsmumps.so.* +%{_libdir}/mpi/gcc/openmpi/%_lib/libzmumps.so.* +%{_libdir}/mpi/gcc/openmpi/%_lib/libmumps_common.so.* +%{_libdir}/mpi/gcc/openmpi/%_lib/libpord.so.* +%exclude %{_libdir}/mpi/gcc/openmpi/%_lib/lib*seq.* +%exclude %{_libdir}/mpi/gcc/openmpi/%_lib/lib*scotch.* +%exclude %{_libdir}/mpi/gcc/openmpi/%_lib/libmumps_common_*scotch.* + +%files ptscotch-openmpi +%defattr(-,root,root,-) +%{_libdir}/mpi/gcc/openmpi/%_lib/libcmumps_ptscotch.so.* +%{_libdir}/mpi/gcc/openmpi/%_lib/libdmumps_ptscotch.so.* +%{_libdir}/mpi/gcc/openmpi/%_lib/libsmumps_ptscotch.so.* +%{_libdir}/mpi/gcc/openmpi/%_lib/libzmumps_ptscotch.so.* +%{_libdir}/mpi/gcc/openmpi/%_lib/libmumps_common_ptscotch.so.* +%{_libdir}/mpi/gcc/openmpi/%_lib/libpord_ptscotch.so.* +%exclude %{_libdir}/mpi/gcc/openmpi/%_lib/lib*seq.* +%exclude %{_libdir}/mpi/gcc/openmpi/%_lib/lib*mumps_scotch.* +%exclude %{_libdir}/mpi/gcc/openmpi/%_lib/libmumps_common_scotch.* + +%files openmpi-devel +%defattr(-,root,root,-) +%{_libdir}/mpi/gcc/openmpi/%_lib/*.so +%{_libdir}/mpi/gcc/openmpi/%_lib/*.a + +%if 0%{?sles_version} +%files mvapich2 +%defattr(-,root,root,-) +%{_libdir}/mpi/gcc/mvapich2/%_lib/libcmumps.so.* +%{_libdir}/mpi/gcc/mvapich2/%_lib/libdmumps.so.* +%{_libdir}/mpi/gcc/mvapich2/%_lib/libsmumps.so.* +%{_libdir}/mpi/gcc/mvapich2/%_lib/libzmumps.so.* +%{_libdir}/mpi/gcc/mvapich2/%_lib/libmumps_common.so.* +%{_libdir}/mpi/gcc/mvapich2/%_lib/libpord.so.* +%exclude %{_libdir}/mpi/gcc/mvapich2/%_lib/lib*seq.* +%exclude %{_libdir}/mpi/gcc/mvapich2/%_lib/lib*scotch.* +%exclude %{_libdir}/mpi/gcc/mvapich2/%_lib/libmumps_common_*scotch.* + +%files ptscotch-mvapich2 +%defattr(-,root,root,-) +%{_libdir}/mpi/gcc/mvapich2/%_lib/libcmumps_ptscotch.so.* +%{_libdir}/mpi/gcc/mvapich2/%_lib/libdmumps_ptscotch.so.* +%{_libdir}/mpi/gcc/mvapich2/%_lib/libsmumps_ptscotch.so.* +%{_libdir}/mpi/gcc/mvapich2/%_lib/libzmumps_ptscotch.so.* +%{_libdir}/mpi/gcc/mvapich2/%_lib/libmumps_common_ptscotch.so.* +%{_libdir}/mpi/gcc/mvapich2/%_lib/libpord_ptscotch.so.* +%exclude %{_libdir}/mpi/gcc/mvapich2/%_lib/lib*seq.* +%exclude %{_libdir}/mpi/gcc/mvapich2/%_lib/lib*mumps_scotch.* +%exclude %{_libdir}/mpi/gcc/mvapich2/%_lib/libmumps_common_scotch.* + +%files mvapich2-devel +%defattr(-,root,root,-) +%{_libdir}/mpi/gcc/mvapich2/%_lib/*.so +%{_libdir}/mpi/gcc/mvapich2/%_lib/*.a + +%files test-mvapich2 +%defattr(-,root,root,-) +%doc examples +%{_libdir}/mpi/gcc/mvapich2/bin/* +%endif + +%files test-openmpi +%defattr(-,root,root,-) +%doc examples +%{_libdir}/mpi/gcc/openmpi/bin/* + +%changelog