Accepting request 672694 from home:eeich:factory_staging

- Update to version 5.1.2
  See Changelog file or http://mumps.enseeiht.fr/index.php?page=dwnld
- Convert to full multibuild support: builds with scotch support
  are separate, now.
- Add HPC support (FATE#324151).
- Move links from the sequential libraries to the MPI library directory
  to a separate package, make this package an optional Recommends:
  of the non-HPC library packages.
- Move documentation to separate package.
- Disable non-HPC builds and some MPI flavors for SLE.

OBS-URL: https://build.opensuse.org/request/show/672694
OBS-URL: https://build.opensuse.org/package/show/science/mumps?expand=0&rev=10
This commit is contained in:
Ana Guerrero 2019-02-08 10:32:58 +00:00 committed by Git OBS Bridge
parent 9343fdb741
commit 2b6a207418
15 changed files with 485 additions and 993 deletions

View File

@ -35,7 +35,7 @@
LPORDDIR = $(topdir)/PORD/lib/ LPORDDIR = $(topdir)/PORD/lib/
IPORD = -I$(topdir)/PORD/include/ IPORD = -I$(topdir)/PORD/include/
LPORD = -L$(LPORDDIR) -lpord$(PLAT) LPORD = -L$(LPORDDIR) -lpord
#LMETISDIR = /local/metis/ #LMETISDIR = /local/metis/
#IMETIS = # Metis doesn't need include files (Fortran interface avail.) #IMETIS = # Metis doesn't need include files (Fortran interface avail.)
@ -52,7 +52,6 @@ LPORD = -L$(LPORDDIR) -lpord$(PLAT)
# The following variables will be used in the compilation process. # The following variables will be used in the compilation process.
# Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively. # Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively.
#ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis #ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis
ORDERINGSF = -Dpord
ORDERINGSC = $(ORDERINGSF) ORDERINGSC = $(ORDERINGSF)
LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH) LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH)
@ -63,28 +62,37 @@ IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH)
######################################################################## ########################################################################
################################################################################ ################################################################################
PLAT = #PLAT =
# Library extension, + C and Fortran "-o" option
# may be different under Windows
LIBEXT = .a
OUTC = -o
OUTF = -o
RM = /bin/rm -f RM = /bin/rm -f
CC = gcc #CC = gcc
FC = gfortran #FC = gfortran
FL = gfortran #FL = gfortran
AR = ar vr # keep a space at the end if options have to be separated from lib name
AR = ar vr
#RANLIB = ranlib #RANLIB = ranlib
RANLIB = echo RANLIB = echo
# See point 17 in the FAQ to have more details on the compilation of mpich with gfortran # See point 17 in the FAQ to have more details on the compilation of mpich with gfortran
INCPAR = -I/usr/include
LIBPAR = $(SCALAP) $(LAPACK) -L/usr/lib -lmpi
INCSEQ = -I$(topdir)/libseq INCSEQ = -I$(topdir)/libseq
LIBSEQ = -L$(topdir)/libseq -lmpiseq$(PLAT) LIBSEQ = $(LAPACK) -L$(topdir)/libseq -lmpiseq$(PLAT)
#LIBBLAS = -L/usr/lib/xmm/ -lf77blas -latlas #LIBBLAS = -L/usr/lib/xmm/ -lf77blas -latlas
LIBBLAS = -lblas -llapack #LIBBLAS = -lblas -llapack
LIBOTHERS = -lpthread LIBOTHERS = -lpthread
#Preprocessor defs for calling Fortran from C (-DAdd_ or -DAdd__ or -DUPPER) #Preprocessor defs for calling Fortran from C (-DAdd_ or -DAdd__ or -DUPPER)
CDEFS = -DAdd_ CDEFS = -DAdd_
#Begin Optimized options #Begin Optimized options
OPTF = -O -Dintel_ -DALLOW_NON_INIT OPTF = -O -fPIC
OPTL = -O OPTL = -O -pie
OPTC = -O OPTC = -O -fPIC
#End Optimized options #End Optimized options
INC = $(INCSEQ) #INCS = $(INCSEQ)
LIB = $(LIBSEQ) #LIBS = $(LIBSEQ)
LIBSEQNEEDED = libseqneeded LIBSEQNEEDED =

View File

@ -1,93 +0,0 @@
#
# 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
#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 =

View File

@ -1,93 +0,0 @@
#
# 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
#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 =

View File

@ -1,90 +0,0 @@
#
# 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

View File

@ -3,4 +3,13 @@
<package>openmpi</package> <package>openmpi</package>
<package>openmpi2</package> <package>openmpi2</package>
<package>mvapich2</package> <package>mvapich2</package>
<package>scotch-serial</package>
<package>scotch-openmpi</package>
<package>scotch-openmpi2</package>
<package>gnu-openmpi-hpc</package>
<package>gnu-openmpi2-hpc</package>
<package>gnu-openmpi3-hpc</package>
<package>gnu-mvapich2-hpc</package>
<package>gnu-mpich-hpc</package>
<!-- <package>scotch-mvapich2</package> -->
</multibuild> </multibuild>

View File

@ -1,118 +0,0 @@
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

View File

@ -1,118 +0,0 @@
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

View File

@ -1,37 +0,0 @@
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:

View File

@ -1,51 +0,0 @@
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:

View File

@ -1,69 +0,0 @@
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; \

View File

@ -1,62 +0,0 @@
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

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7b0afaeeca6be7dcc9f2f7d5706960621f686f9d5f4e25c8bf8d49d13b000dd8
size 1820798

3
mumps-5.1.2.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eb345cda145da9aea01b851d17e54e7eef08e16bfa148100ac1f7f046cd42ae9
size 3351215

View File

@ -1,3 +1,17 @@
-------------------------------------------------------------------
Thu Feb 7 19:51:43 UTC 2019 - eich@suse.com
- Update to version 5.1.2
See Changelog file or http://mumps.enseeiht.fr/index.php?page=dwnld
- Convert to full multibuild support: builds with scotch support
are separate, now.
- Add HPC support (FATE#324151).
- Move links from the sequential libraries to the MPI library directory
to a separate package, make this package an optional Recommends:
of the non-HPC library packages.
- Move documentation to separate package.
- Disable non-HPC builds and some MPI flavors for SLE.
------------------------------------------------------------------- -------------------------------------------------------------------
Sun Jan 20 08:25:43 UTC 2019 - eich@suse.com Sun Jan 20 08:25:43 UTC 2019 - eich@suse.com

View File

@ -16,88 +16,223 @@
# #
%global flavor @BUILD_FLAVOR@ %global flavor @BUILD_FLAVOR@%{nil}
%define pname mumps %define pname mumps
%define ver 5.1.2
%define so_ver 5
%define PNAME %(echo %{pname} | tr [a-z] [A-Z])
%define _ver %(echo %{ver} | tr . _)
%if "%flavor" == "" %if "%flavor" == ""
%define package_name %{pname} %define package_name %{pname}
ExclusiveArch: do_not_build ExclusiveArch: do_not_build
%endif %endif
%if 0%{?is_opensuse} || 0%{?is_backports}
%undefine DisOMPI1
%undefine DisOMPI2
%undefine DisOMPI3
%else
%define DisOMPI1 ExclusiveArch: do_not_build
%undefine DisOMPI2
%define DisOMPI3 ExclusiveArch: do_not_build
%endif
%if "%{flavor}" == "serial" %if "%{flavor}" == "serial"
# Stub MPI library
%define mumps_f77_mpilibs '-lmpiseq'
%bcond_with hpc
%endif
%if "%{flavor}" == "scotch-serial"
# Stub MPI library
%define mumps_f77_mpilibs '-lmpiseq'
%bcond_with hpc
%bcond_without scotch
%endif
%if "%{flavor}" == "openmpi"
%define mpi_family openmpi
%define mumps_f77_mpilibs -lmpi_mpifh -lmpi
%bcond_with hpc
%endif
%if "%{flavor}" == "openmpi2"
%define mpi_family openmpi2
%define mumps_f77_mpilibs -lmpi_mpifh -lmpi
%bcond_with hpc
%endif
%if "%{flavor}" == "mvapich2"
%define mpi_family mvapich2
%define mumps_f77_mpilibs -lfmpich -lmpich
%bcond_with hpc
%endif
%if "%{flavor}" == "scotch-openmpi"
%define mpi_family openmpi
%define mumps_f77_mpilibs -lmpi_mpifh -lmpi
%bcond_with hpc
%bcond_without scotch
%endif
%if "%{flavor}" == "scotch-openmpi2"
%define mpi_family openmpi2
%define mumps_f77_mpilibs -lmpi_mpifh -lmpi
%bcond_with hpc
%bcond_without scotch
%endif
%if "%{flavor}" == "scotch-openmpi3"
%define mpi_family openmpi3
%define mumps_f77_mpilibs -lmpi_mpifh -lmpi
%bcond_with hpc
%bcond_without scotch
%endif
%if "%{flavor}" == "scotch-mvapich2"
%define mpi_family mvapich2
%define mumps_f77_mpilibs -lfmpich -lmpich
%bcond_with hpc
%bcond_without scotch
%endif
%if "%{flavor}" == "gnu-mvapich2-hpc"
%undefine c_f_ver
%global mpi_family mvapich2
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu-mpich-hpc"
%undefine c_f_ver
%global mpi_family mpich
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu-openmpi-hpc"
%{?DisOMPI1}
%undefine c_f_ver
# macro mpi is used by macros for master package
%global mpi_family openmpi
%define mumps_f77_mpilibs -lmpi_mpifh -lmpi
%define mpi_ver 1
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu-openmpi2-hpc"
%{?DisOMPI2}
%undefine c_f_ver
# macro mpi is used by macros for master package
%global mpi_family openmpi
%define mumps_f77_mpilibs -lmpi_mpifh -lmpi
%define mpi_ver 2
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu-openmpi3-hpc"
%{?DisOMPI3}
%undefine c_f_ver
# macro mpi is used by macros for master package
%global mpi_family openmpi
%define mumps_f77_mpilibs -lmpi_mpifh -lmpi
%define mpi_ver 3
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu-mvapich2-hpc"
%undefine c_f_ver
# macro mpi is used by macros for master package
%global mpi_family mvapich2
%define mumps_f77_mpilibs -lfmpich -lmpich
%undefine mpi_ver
%bcond_without hpc
%endif
%ifarch i586 s390 ppc armv7l
ExclusiveArch: do_not_build
%endif
%if !0%{?is_opensuse} && !0%{?with_hpc:1}
ExclusiveArch: do_not_build
%endif
%{?mpi_family:%{bcond_without mpi}}%{!?mpi_family:%{bcond_with mpi}}
%if %{with scotch}
%if %{with mpi}
%define scotch ptscotch
%else
%define scotch scotch
%endif
%endif
%if %{without hpc}
%if %{without mpi}
%define my_prefix %_prefix %define my_prefix %_prefix
%define my_bindir %_bindir %define my_bindir %_bindir
%define my_libdir %_libdir %define my_libdir %_libdir
%define my_incdir %_includedir %define my_incdir %_includedir
%define my_datadir %_datadir %define my_datadir %_datadir
# Stub MPI library %else
%define mumps_f77_mpilibs '-lmpiseq" %define my_suffix -%{mpi_family}%{?mpi_ver}
%endif %define my_prefix %{_libdir}/mpi/gcc/%{mpi_family}
%if "%{flavor}" == "openmpi"
%define my_suffix -openmpi
%define mpi_family openmpi
%define mpiprefix %{_libdir}/mpi/gcc/%{mpi_family}
%define mumps_f77_mpilibs -lmpi_mpifh -lmpi
%endif
%if "%{flavor}" == "openmpi2"
%define my_suffix -openmpi2
%define mpi_family openmpi2
%define mpiprefix %{_libdir}/mpi/gcc/%{mpi_family}
%define mumps_f77_mpilibs -lmpi_mpifh -lmpi
%endif
%if "%{flavor}" == "mvapich2"
%define my_suffix -mvapich2
%define mpi_family mvapich2
%define mpiprefix %{_libdir}/mpi/gcc/%{mpi_family}
%define mumps_f77_mpilibs -lfmpich -lmpich
%endif
%{?mpi_family:%{bcond_without mpi}}%{!?mpi_family:%{bcond_with mpi}}
%if %{with mpi}
%define my_prefix %{mpiprefix}
%define my_bindir %{my_prefix}/bin %define my_bindir %{my_prefix}/bin
%define my_libdir %{my_prefix}/%{_lib}/ %define my_libdir %{my_prefix}/%{_lib}/
%define my_incdir %{my_prefix}/include/ %define my_incdir %{my_prefix}/include/
%define my_datadir %{my_prefix}/share/ %define my_datadir %{my_prefix}/share/
%endif %endif
%define package_name mumps%{?scotch:-%{scotch}}%{?my_suffix}
%define libname(l:s:) %{pname}%{-l*}%{-s*}%{?my_suffix}
%else
%{!?compiler_family:%global compiler_family gnu}
%{?mpi_family:%{bcond_without mpi}}%{!?mpi_family:%{bcond_with mpi}}
%{?with_mpi:%{!?mpi_family:%global mpi_family openmpi}}
%{?hpc_init:%hpc_init -c %compiler_family %{?c_f_ver:-v %{c_f_ver}} %{?with_mpi:-m {%mpi_family}} %{?mpi_ver:-V %{mpi_ver}} %{?ext:-e %{ext}}}
%define my_suffix -%{mpi_family}%{?mpi_ver}
%define my_prefix %{hpc_prefix}
%define my_bindir %{hpc_bindir}
%define my_libdir %{hpc_libdir}
%define my_incdir %{hpc_includedir}
%define my_datadir %{hpc_datadir}
%define package_name %{hpc_package_name %{_ver}}
%define libname(l:s:) %{pname}%{-l*}-%{_ver}%{hpc_package_name_tail %{?_vers}}
%endif
Summary: A MUltifrontal Massively Parallel Sparse direct Solver Summary: A MUltifrontal Massively Parallel Sparse direct Solver
License: SUSE-Public-Domain License: SUSE-Public-Domain
Group: System/Libraries Group: System/Libraries
Name: mumps%{?my_suffix} Name: %{package_name}
Version: 4.9.2 Version: %{ver}
Release: 0 Release: 0
Url: http://mumps.enseeiht.fr/ Url: http://mumps.enseeiht.fr/
Source0: %{pname}-%{version}.tar.bz2 Source0: http://mumps.enseeiht.fr/MUMPS_%{version}.tar.gz#/%{pname}-%{version}.tar.bz2
Source1: Makefile.ptscotch.inc Source1: Makefile.inc
Source2: Makefile.scotch.inc %if %{without hpc}
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: gcc-fortran BuildRequires: gcc-fortran
BuildRequires: scotch-devel BuildRequires: scotch-devel
%if %{with mpi} %if %{with mpi}
Requires: %{pname} = %{version} BuildRequires: libmumps%{?so_ver}
BuildRequires: %{pname}
BuildRequires: %{pname}-devel BuildRequires: %{pname}-devel
BuildRequires: %{pname}-scotch BuildRequires: libmumps-scotch%{?so_ver}
BuildRequires: %{pname}-scotch-devel BuildRequires: %{pname}-scotch-devel
BuildRequires: ptscotch-%{mpi_family}-devel BuildRequires: ptscotch-%{mpi_family}-devel
BuildRequires: %{mpi_family}-devel BuildRequires: %{mpi_family}-devel
BuildRequires: scalapack-%{mpi_family}-devel BuildRequires: scalapack-%{mpi_family}-devel
BuildRequires: libblacs2-%{mpi_family}-devel
%endif %endif
BuildRequires: blas-devel BuildRequires: blas-devel
BuildRequires: lapack-devel BuildRequires: lapack-devel
%else
BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
BuildRequires: %{mpi_family}%{?mpi_ver}-%{compiler_family}%{?c_f_ver}-hpc-macros-devel
BuildRequires: libscalapack2-%{compiler_family}-%{mpi_family}%{?mpi_ver}-hpc-devel
BuildRequires: libblacs2-%{compiler_family}-%{mpi_family}%{?mpi_ver}-hpc-devel
BuildRequires: libgomp1
BuildRequires: suse-hpc
BuildRequires: fdupes
%endif
%description %description
MUMPS implements a direct solver for large sparse linear systems, with a MUMPS implements a direct solver for large sparse linear systems, with a
@ -105,85 +240,98 @@ particular focus on symmetric positive definite matrices. It can
operate on distributed matrices e.g. over a cluster. It has Fortran and operate on distributed matrices e.g. over a cluster. It has Fortran and
C interfaces, and can interface with ordering tools such as Scotch. C interfaces, and can interface with ordering tools such as Scotch.
%if %{!with mpi}
This package contains the sequential library.
%else
This package contains the parallel library build with %{mpi_family}.
%endif
%package -n lib%{libname -s %{so_ver} %{?scotch:-l -%{scotch}}}
%package scotch
Summary: A MUltifrontal Massively Parallel Sparse direct Solver Summary: A MUltifrontal Massively Parallel Sparse direct Solver
Group: System/Libraries Group: System/Libraries
Requires: mumps = %{version} %if %{without hpc}
%{?with_mpi:Recommends: %{name}-%{so_ver}-compat = %{version}}
%else
Requires: libscalapack2-%{compiler_family}-%{mpi_family}%{?mpi_ver}-hpc
%hpc_requires
%endif
%description scotch %description -n lib%{libname -s %{so_ver} %{?scotch:-l -%{scotch}}}
MUMPS implements a direct solver for large sparse linear systems, with a MUMPS implements a direct solver for large sparse linear systems, with a
particular focus on symmetric positive definite matrices. It can particular focus on symmetric positive definite matrices. It can
operate on distributed matrices e.g. over a cluster. It has Fortran and operate on distributed matrices e.g. over a cluster. It has Fortran and
C interfaces, and can interface with ordering tools such as Scotch. C interfaces, and can interface with ordering tools such as Scotch.
This package contains the sequential library with Scotch support enabled. %if %{!with mpi}
This package contains the sequential library%{?scotch: with Scotch support enabled}.
%else
This package contains the parallel library%{?with_mpi: with %{mpi_family}}%{?scotch: with Scotch support enabled}.
%endif
%package %{so_ver}-compat
Summary: A MUltifrontal Massively Parallel Sparse direct Solver
Group: System/Libraries
Requires: lib%{pname}%{?scotch:-scotch}%{so_ver}
%package devel %description %{so_ver}-compat
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 provides links to the serial libraries from the MPI library
directory MUMPS built for %{mpi_family}%{?mpi_ver}.
%package doc
Summary: A MUltifrontal Massively Parallel Sparse direct Solver
Group: Documentation/HTML
BuildArch: noarch
%description doc
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 provides Documentation for %{package_name}.
%if %{!with mpi}
This package contains the sequential library%{?scotch: with Scotch support enabled}.
%else
This package contains the parallel library%{?with_mpi: with %{mpi_family}}%{?scotch: with Scotch support enabled}.
%endif
%package -n %{libname %{?scotch:-l -%{scotch}}}-devel
Summary: Files needed for developing mumps based applications Summary: Files needed for developing mumps based applications
Group: Development/Libraries/Other Group: Development/Libraries/Other
Requires: blas-devel Requires: blas-devel
Requires: lapack-devel Requires: lapack-devel
Requires: %{name} = %{version} Requires: lib%{libname -s %{so_ver} %{?scotch:-l -%{scotch}}} = %version
%if %{with mpi} %if %{without scotch}
Requires: mumps-ptscotch-%{mpi_family} = %{version} %if %{with mpi}
Requires: mumps-devel = %{version} Requires: mumps-devel = %{version}
Requires: mumps-scotch-devel = %{version} Requires: mumps-scotch-devel = %{version}
Requires: %{mpi_family}-devel Requires: %{mpi_family}-devel
Requires: ptscotch-%{mpi_family}-devel Requires: ptscotch-%{mpi_family}-devel
Requires: scalapack-%{mpi_family}-devel Requires: scalapack-%{mpi_family}-devel
%endif
%else
Requires: mumps-devel = %{version}
%endif
%{?with_hpc:%hpc_requires_devel}
%description -n %{libname %{?scotch:-l -%{scotch}}}-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.
%if %{with mpi}
This package contains the parallel library build with %{mpi_family}
%{?scotch:and with %scotch }enabled.
%endif %endif
%description devel %if %{without scotch}
MUMPS implements a direct solver for large sparse linear systems, with a %package test
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 scotch-devel
Summary: Files needed for developing mumps based applications
Group: Development/Libraries/Other
Requires: blas-devel
Requires: lapack-devel
Requires: mumps = %{version}
Requires: mumps-devel = %{version}
Requires: mumps-scotch = %{version}
%description scotch-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 -n %{pname}-ptscotch-%{mpi_family}
Summary: A MUltifrontal Massively Parallel Sparse direct Solver
Group: System/Libraries
Requires: mumps = %{version}
%description -n %{pname}-ptscotch-%{mpi_family}
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 %{mpi_family} and with
PTScotch enabled.
%package -n %{pname}-test-%{mpi_family}
Summary: Simple test programs and examples for mumps Summary: Simple test programs and examples for mumps
Group: System/Libraries Group: System/Libraries
%description -n %{pname}-test-%{mpi_family} %description test
MUMPS implements a direct solver for large sparse linear systems, with a MUMPS implements a direct solver for large sparse linear systems, with a
particular focus on symmetric positive definite matrices. It can particular focus on symmetric positive definite matrices. It can
operate on distributed matrices e.g. over a cluster. It has Fortran and operate on distributed matrices e.g. over a cluster. It has Fortran and
@ -191,203 +339,247 @@ C interfaces, and can interface with ordering tools such as Scotch.
This packages contains some test and examples programs for mumps. In addition, This packages contains some test and examples programs for mumps. In addition,
matlab and scilab extensions are provided in /usr/share/doc/packages/mumps. matlab and scilab extensions are provided in /usr/share/doc/packages/mumps.
%endif #scotch
%if %{with hpc}
%{hpc_master_package -l -L}
%{hpc_master_package -L devel}
%endif
%prep %prep
%setup -q -n %{pname}-%{version} %setup -q -n %{PNAME}_%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build %build
export SUSE_ASNEEDED=0 export SUSE_ASNEEDED=0
%if !%{with mpi} %if %{with hpc}
# sequential with scotch support enabled %hpc_setup
cp -f %{S:2} Makefile.inc module load openblas scalapack
make \ %else
MUMPS_LIBF77="-lmpiseq_scotch" \ %{?with_mpi: source %{my_bindir}/mpivars.sh}
OPTC="$RPM_OPT_FLAGS" \
PLAT="_scotch" all
cp -a lib libmumps_scotch_seq
cp -af libseq/lib* libmumps_scotch_seq
cp -af PORD/lib/libpord_scotch.so* libmumps_scotch_seq
make clean
rm -f Makefile.inc
# sequential without scotch
cp -f %{S:3} Makefile.inc
make \
MUMPS_LIBF77="-lmpiseq_seq" \
OPTC="$RPM_OPT_FLAGS" \
PLAT="_seq" 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
%endif %endif
%define PLAT %{?scotch:_%{scotch}}%{!?scotch:%{!?with_mpi:_seq}}
%if %{without scotch}
%define ORDERINGSF -Dpord
%else # scotch
%if %{with mpi}
%define scotch ptscotch
%define LSCOTCH -lptesmumps -lptscotch -lptscotcherr -lscotch
%define ORDERINGSF -Dscotch -Dpord -Dptscotch
%else # mpi
%define scotch scotch
%define LSCOTCH -lesmumps -lscotch -lscotcherr
%define ISCOTCH -I%_includedir
%define ORDERINGSF -Dscotch -Dpord
%endif
%endif # scotch
%if %{with hpc}
%define LIBBLAS -lopenblas -lscalapack
%define LAPAK -lscalapack
%else # hpc
%define LIBBLAS -lblas -llapack
%define LAPACK -llapack
%endif # hpc
%if %{with mpi} %if %{with mpi}
# Set LD_LIBRARY_PATH and PATH # Set LD_LIBRARY_PATH and PATH
. %{my_bindir}/mpivars.sh %define C_C mpicc
%define F_C mpif77
%define F_L mpif77
%define SCALAP -lscalapack -lblacs
%define MUMPS_MPI %{mpi_family}
%define MUMPS_LIBF77 -L%{my_libdir} %{?mumps_f77_mpilibs}
%define INCPAR -I%{my_incdir}/
%define LIBPAR %{SCALAP} %{MUMPS_LIBF77}
%define INCS \\\$(INCPAR)
%define LIBS \\\$(LIBPAR)
%else # mpi
%define C_C gcc
%define F_C gfortran
%define F_L gfortran
%define LIBSEQNEEDED libseqneeded
%define MUMPS_LIBF77 -lmpiseq%{?PLAT}
%define INCS \\\$(INCSEQ)
%define LIBS \\\$(LIBSEQ)
%endif # mpi
# ptscotch : parallel with scotch support enabled
cp -f %{S:1} Makefile.inc cp -f %{S:1} Makefile.inc
make \ make \
MUMPS_MPI=%{mpi_family} \ %{?C_C:CC="%C_C"} \
FC=%{my_bindir}/mpif77 \ %{?F_C:FC="%F_C"} \
MUMPS_LIBF77="-L%{my_libdir} %{?mumps_f77_mpilibs}" \ %{?F_L:FL="%F_L"} \
OPTC="$RPM_OPT_FLAGS" \ %{?SCALAP:SCALAP="%SCALAP"} \
INCPAR=-I%{my_incdir}/ \ %{?MUMPS_MPI:MUMPS_MPI="%MUMPS_MPI"} \
PLAT="_ptscotch" all %{?INCPAR:INCPAR="%INCPAR"} \
cp -a lib libmumps_ptscotch_%{mpi_family} %{?LIBPAR:LIBPAR="%LIBPAR"} \
cp -af PORD/lib/libpord_ptscotch.so* libmumps_ptscotch_%{mpi_family}/ %{?LIBBLAS:LIBBLAS="%LIBBLAS"} \
make clean %{?INCS:INCS="%INCS"} \
rm -f Makefile.inc %{?LIBS:LIBS="%LIBS"} \
%{?LIBSEQNEEDED:LIBSEQNEEDED="%LIBSEQNEEDED"} \
%{?LSCOTCH:LSCOTCH="%LSCOTCH"} \
%{?ISCOTCH:ISCOTCH="%ISCOTCH"} \
%{?ORDERINGSF:ORDERINGSF="%ORDERINGSF"} \
%{?PLAT:PLAT="%PLAT"} \
OPTC="$RPM_OPT_FLAGS -fPIC" \
all
# parallel without scotch %{!?with_mpi:cp -P libseq/libmpiseq*.a lib/}
cp %{S:4} Makefile.inc
make \ cd lib
MUMPS_MPI=%{mpi_family} \ %define LORDERINGS -lpord%{?PLAT} %{?scotch:-l%{scotch}}
FC=%{my_bindir}/mpif77 \ %if %{without mpi}
MUMPS_LIBF77="-L%{my_libdir} %{?mumps_f77_mpilibs}" \ %F_C -shared libmpiseq%{?PLAT}.a -Wl,-soname,libmpiseq%{?PLAT}.so.%{version} -o libmpiseq%{?PLAT}.so.%{version}
OPTC="$RPM_OPT_FLAGS" \ ln -s libmpiseq%{?PLAT}.so.%{version} libmpiseq%{?PLAT}.so
PLAT="" all %endif
%C_C -shared libpord%{?PLAT}.a -Wl,-soname,libpord%{?PLAT}.so.%{version} -o libpord%{?PLAT}.so.%{version}
ln -s libpord%{?PLAT}.so.%{version} libpord%{?PLAT}.so
%F_C -shared libmumps_common%{?PLAT}.a -Wl,-soname,libmumps_common$%{?PLAT}.so.%{version} -L. %{LORDERINGS} \
-lpthread %{MUMPS_LIBF77} -o libmumps_common%{?PLAT}.so.%{version}
ln -s libmumps_common%{?PLAT}.so.%{version} libmumps_common%{?PLAT}.so
for ARITH in c d s z ; do
%F_C -shared lib${ARITH}mumps%{?PLAT}.a -Wl,-soname,lib${ARITH}mumps%{?PLAT}.so.%{version} -L. -lmumps_common%{?PLAT} \
%{LORDERINGS} %{MUMPS_LIBF77} %{LIBBLAS} %{?SCALAP} -o lib${ARITH}mumps%{?PLAT}.so.%{version}
ln -s lib${ARITH}mumps%{?PLAT}.so.%{version} lib${ARITH}mumps%{?PLAT}.so
done
cd -
# build test programs # build test programs
make -C examples all %{!?with_scotch:make -C examples %{?PLAT:PLAT="%PLAT"} all}
cp -a lib lib_%{mpi_family}
cp -af PORD/lib/libpord.so* lib_%{mpi_family}
cp -a examples examples_%{mpi_family}
make clean
rm -f Makefile.inc
%endif
%install %install
mkdir -p %{buildroot}%{my_bindir} mkdir -p %{buildroot}%{my_bindir}
mkdir -p %{buildroot}%{my_libdir} mkdir -p %{buildroot}%{my_libdir}
cp -P PORD/lib/*.so* %{buildroot}%{my_libdir} # install libs
cp -P lib/lib*.a %{buildroot}%{my_libdir}
%if "%{flavor}" == "serial" cp -P lib/lib*.so* %{buildroot}%{my_libdir}
%if %{without mpi} && %{without scotch}
mkdir -p %{buildroot}%{_includedir}/mumps mkdir -p %{buildroot}%{_includedir}/mumps
mkdir -p %{buildroot}%{_includedir}/pord mkdir -p %{buildroot}%{_includedir}/pord
install -m 644 include/* %{buildroot}%{_includedir}/mumps install -m 644 include/* %{buildroot}%{_includedir}/mumps
install -m 644 libseq/*.h %{buildroot}%{_includedir}/mumps install -m 644 libseq/*.h %{buildroot}%{_includedir}/mumps
install -m 644 PORD/include/* %{buildroot}%{_includedir}/pord install -m 644 PORD/include/* %{buildroot}%{_includedir}/pord
%endif %endif
%if !%{with mpi}
# install sequential libs
cp -P libmumps_seq/lib*.a %{buildroot}%{my_libdir}
cp -P libmumps_seq/lib*.so* %{buildroot}%{my_libdir}
cp -P libmumps_scotch_seq/*.a %{buildroot}%{my_libdir}
cp -P libmumps_scotch_seq/*.so* %{buildroot}%{my_libdir}
%endif
%if %{with mpi} %if %{with mpi}
# install parallel libs install -m 755 examples/*simpletest %{buildroot}%{my_bindir}
cp -P lib_%{mpi_family}/lib*.a %{buildroot}%{my_libdir} install -m 755 examples/c_example %{buildroot}%{my_bindir}
cp -P lib_%{mpi_family}/lib*.so* %{buildroot}%{my_libdir}
cp -P libmumps_ptscotch_%{mpi_family}/*.a %{buildroot}%{my_libdir}
cp -P libmumps_ptscotch_%{mpi_family}/*.so* %{buildroot}%{my_libdir}
install -m 755 examples_%{mpi_family}/*simpletest %{buildroot}%{my_bindir}
install -m 755 examples_%{mpi_family}/c_example %{buildroot}%{my_bindir}
%endif
# Don't want binaries in docdir
rm -rf examples/*.o examples/*simpletest examples/c_example
%if %{without hpc}
# we make a symlink to the serial lib in the parallel lib prefix # we make a symlink to the serial lib in the parallel lib prefix
# because some scientific packages don't manage different directories # because some scientific packages don't manage different directories
# for the serial and parallel libs # for the serial and parallel libs
%if %{with mpi}
for lib in libcmumps libdmumps libsmumps libzmumps libmumps_common libmpiseq libpord ; do for lib in libcmumps libdmumps libsmumps libzmumps libmumps_common libmpiseq libpord ; do
for plat in _seq _scotch ; do for type in .a .so .so.%{version}; do
for type in .a .so .so.%{version}; do name=${lib}_%{!?scotch:seq}%{?scotch:scotch}${type}
name=${lib}${plat}${type} ln -s %{_libdir}/$name %{buildroot}%{my_libdir}/$name
ln -s %{_libdir}/$name %{buildroot}%{my_libdir}/$name done
done
done
done done
%endif # hpc
%endif # mpi
%if %{with hpc}
%hpc_write_modules_files
#%%Module1.0#####################################################################
proc ModulesHelp { } {
puts stderr " "
puts stderr "This module loads the mumps library built with the %{compiler_family} compiler"
puts stderr "toolchain and the %{mpi_family} MPI stack."
puts stderr " "
puts stderr "\nVersion %{version}\n"
}
module-whatis "Name: %{pname} built with %{compiler_family} compiler%{?with_mpi: and %{mpi_family} MPI}"
module-whatis "Version: %{version}"
module-whatis "Category: runtime library"
module-whatis "%{url}"
set version %{version}
depends-on scalapack
prepend-path PATH %{hpc_bindir}
if {[file isdirectory %{hpc_includedir}]} {
prepend-path INCLUDE %{hpc_includedir}
}
prepend-path LD_LIBRARY_PATH %{hpc_libdir}
setenv %{PNAME}_DIR %{hpc_prefix}
setenv %{PNAME}_BIN %{hpc_bindir}
if {[file isdirectory %{hpc_includedir}]} {
setenv %{PNAME}_INC %{hpc_includedir}
}
setenv %{PNAME}_LIB %{hpc_libdir}
EOF
%endif %endif
%clean # Don't want binaries in docdir
rm -rf %{buildroot} rm -rf examples/*.o examples/*simpletest examples/c_example examples/multiple_arithmetics_example
%post -p /sbin/ldconfig %if %{without mpi} || %{with scotch}
%postun -p /sbin/ldconfig rm -rf %{buildroot}/%{my_bindir}
%endif
%if !%{with mpi} %if !%{with mpi}
%post scotch -p /sbin/ldconfig %post -n lib%{libname -s %{so_ver} %{?scotch:-l -%{scotch}}} -p /sbin/ldconfig
%postun scotch -p /sbin/ldconfig %postun -n lib%{libname -s %{so_ver} %{?scotch:-l -%{scotch}}} -p /sbin/ldconfig
%else %else
%post -n %{pname}-ptscotch-%{mpi_family} -p /sbin/ldconfig %post -n lib%{libname -s %{so_ver} %{?scotch:-l -%{scotch}}}
%postun -n %{pname}-ptscotch-%{mpi_family} -p /sbin/ldconfig /sbin/ldconfig -N %{my_libdir}
%postun -n lib%{libname -s %{so_ver} %{?scotch:-l -%{scotch}}}
/sbin/ldconfig -N %{my_libdir}
%{?with_hpc:%{hpc_module_delete_if_default}}
%endif %endif
%if !%{with mpi} %files -n lib%{libname -s %{so_ver} %{?scotch:-l -%{scotch}}}
%files %if %{with hpc}
%{hpc_dirs}
%{hpc_modules_files}
%endif
%license LICENSE %license LICENSE
%doc ChangeLog README VERSION doc SCILAB MATLAB %doc ChangeLog README VERSION CREDITS
%{_libdir}/libcmumps_seq.so.* %{my_libdir}/libcmumps%{?PLAT}.so.*
%{_libdir}/libdmumps_seq.so.* %{my_libdir}/libdmumps%{?PLAT}.so.*
%{_libdir}/libsmumps_seq.so.* %{my_libdir}/libsmumps%{?PLAT}.so.*
%{_libdir}/libzmumps_seq.so.* %{my_libdir}/libzmumps%{?PLAT}.so.*
%{_libdir}/libmumps_common_seq.so.* %{my_libdir}/libmumps_common%{?PLAT}.so.*
%{_libdir}/libmpiseq_seq.so.* %{my_libdir}/libpord%{?PLAT}.so.*
%{_libdir}/libpord_seq.so.* %if %{without mpi}
%{_libdir}/libmpiseq%{?PLAT}.so.*
%files scotch
%{_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
%{_includedir}/mumps
%{_includedir}/pord
%{_libdir}/*_seq.so
%{_libdir}/*_seq.a
%files scotch-devel
%{_libdir}/*_scotch.so
%{_libdir}/*_scotch.a
%endif %endif
%if %{with mpi} %if %{with mpi} && %{without hpc}
%files -n %{pname}-%{mpi_family} %files %{so_ver}-compat
%{my_libdir}/libcmumps.so.* %if %{without scotch}
%{my_libdir}/libdmumps.so.*
%{my_libdir}/libsmumps.so.*
%{my_libdir}/libzmumps.so.*
%{my_libdir}/libmumps_common.so.*
%{my_libdir}/libpord.so.*
# compat symlinks
%{my_libdir}/lib*_seq.so.* %{my_libdir}/lib*_seq.so.*
%else # scotch
%{my_libdir}/lib*_scotch.so.* %{my_libdir}/lib*_scotch.so.*
%endif # scotch
%endif # mpi && !hpc
%files -n %{pname}-ptscotch-%{mpi_family} %if %{with hpc} || ( %{without mpi} && %{without scotch} )
%{my_libdir}/libcmumps_ptscotch.so.* %files doc
%{my_libdir}/libdmumps_ptscotch.so.* %doc doc SCILAB MATLAB
%{my_libdir}/libsmumps_ptscotch.so.* %endif
%{my_libdir}/libzmumps_ptscotch.so.*
%{my_libdir}/libmumps_common_ptscotch.so.*
%{my_libdir}/libpord_ptscotch.so.*
%files -n %{pname}-%{mpi_family}-devel %files -n %{libname %{?scotch:-l -%{scotch}}}-devel
%if %{without scotch} && %{without mpi}
%{my_incdir}/mumps
%{my_incdir}/pord
%endif
%{my_libdir}/*.so %{my_libdir}/*.so
%{my_libdir}/*.a %{my_libdir}/*.a
%files -n %{pname}-test-%{mpi_family} %if %{with mpi} && %{without scotch}
%files test
%doc examples %doc examples
%{my_bindir}/* %{my_bindir}%{!?with_hpc:/*}
%endif %endif
%changelog %changelog