Skip to content
Snippets Groups Projects
Commit 62a68666 authored by Sebastian Achilles's avatar Sebastian Achilles
Browse files

Merge branch 'MUMPS' into '2023'

MUMPS foss other versions will follow

See merge request software-team/easybuild!1640
parents 5ac33a24 be819794
No related branches found
No related tags found
No related merge requests found
name = 'MUMPS'
version = '5.5.1'
versionsuffix = '-metis'
homepage = 'https://graal.ens-lyon.fr/MUMPS/'
description = "A parallel sparse direct solver"
toolchain = {'name': 'foss', 'version': '2022a'}
toolchainopts = {'pic': True, 'usempi': True}
source_urls = ['https://graal.ens-lyon.fr/MUMPS/']
sources = ['%(name)s_%(version)s.tar.gz']
patches = [
'%(name)s-%(version)s_shared-pord.patch', # builds the shared libs of PORD
'%(name)s-%(version)s_shared-mumps.patch', # builds shared libs of MUMPS
]
checksums = [
{'MUMPS_5.5.1.tar.gz': '1abff294fa47ee4cfd50dfd5c595942b72ebfcedce08142a75a99ab35014fa15'},
{'MUMPS-5.5.1_shared-pord.patch': '2f32d928fe21ab918920eaf26e3112e3185f85bb22a4ab494191849af30c4b6e'},
{'MUMPS-5.5.1_shared-mumps.patch': '746b12844120a352902a4420b36dc5babd68d4beaa98263826ef4a7893e14504'},
]
dependencies = [
('SCOTCH', '7.0.1'),
('METIS', '5.1.0'),
]
parallel = 1
# fix 'Type mismatch between actual argument' errors with GCC 10.x
prebuildopts = 'export FFLAGS="$FFLAGS -fallow-argument-mismatch" && '
buildopts = 'all SONAME_VERSION="%(version)s"'
moduleclass = 'math'
Heavily inspired from https://src.fedoraproject.org/rpms/MUMPS//blob/rawhide/f/MUMPS-shared.patch
Author: micketeer@gmail.com
Updatd to version 5.5.0: J. Sassmannshausen/ICL (UK)
Updatd to version 5.5.1: maxim-masterov (SURF)
diff -Nru MUMPS_5.5.1.orig/src/Makefile MUMPS_5.5.1/src/Makefile
--- MUMPS_5.5.1.orig/src/Makefile 2022-08-31 11:57:42.666642000 +0200
+++ MUMPS_5.5.1/src/Makefile 2022-08-31 12:02:01.665935000 +0200
@@ -15,18 +15,23 @@
libcommon: $(incdir)/mumps_int_def.h
$(MAKE) $(libdir)/libmumps_common$(PLAT)$(LIBEXT)
+ $(MAKE) $(libdir)/libmumps_common$(PLAT).so
s: $(incdir)/mumps_int_def.h libcommon
$(MAKE) ARITH=s $(libdir)/libsmumps$(PLAT)$(LIBEXT)
+ $(MAKE) ARITH=s $(libdir)/libsmumps$(PLAT).so
d: $(incdir)/mumps_int_def.h libcommon
$(MAKE) ARITH=d $(libdir)/libdmumps$(PLAT)$(LIBEXT)
+ $(MAKE) ARITH=d $(libdir)/libdmumps$(PLAT).so
c: $(incdir)/mumps_int_def.h libcommon
$(MAKE) ARITH=c $(libdir)/libcmumps$(PLAT)$(LIBEXT)
+ $(MAKE) ARITH=c $(libdir)/libcmumps$(PLAT).so
z: $(incdir)/mumps_int_def.h libcommon
$(MAKE) ARITH=z $(libdir)/libzmumps$(PLAT)$(LIBEXT)
+ $(MAKE) ARITH=z $(libdir)/libzmumps$(PLAT).so
# Rules for shared libraries
@@ -221,6 +226,13 @@
$(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT_SHARED): $(OBJS_MOD) $(OBJS_OTHER) $(libdir)/libmumps_common$(PLAT)$(LIBEXT_SHARED)
$(FC) $(OPTL) -shared $(OBJS_MOD) $(OBJS_OTHER) -L$(libdir) $(LORDERINGS) $(LIBS) $(LIBOTHERS) -lmumps_common$(PLAT) -o $@ $(RPATH_OPT)
+$(libdir)/libmumps_common$(PLAT).so: $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER)
+ $(FC) -shared $^ -Wl,-soname,libmumps_common$(PLAT)-$(SONAME_VERSION).so $(OPTL) -L$(libdir) $(LORDERINGS) -lpthread $(MUMPS_LIBF77) $(MPIFLIB) $(MPICLIB) $(METISLIB) -o $(libdir)/libmumps_common$(PLAT)-$(SONAME_VERSION).so $(OPTL) -Wl,-z,defs
+ ln -fs libmumps_common$(PLAT)-$(SONAME_VERSION).so $@
+
+$(libdir)/lib$(ARITH)mumps$(PLAT).so: $(OBJS_MOD) $(OBJS_OTHER)
+ $(FC) -shared $^ -Wl,-soname,lib$(ARITH)mumps$(PLAT)-$(SONAME_VERSION).so $(OPTL) -L$(libdir) -lmumps_common$(PLAT) -lpthread $(MUMPS_LIBF77) $(LORDERINGS) $(MPIFLIB) $(METISLIB) $(SCALAP) -o $(libdir)/lib$(ARITH)mumps$(PLAT)-$(SONAME_VERSION).so $(OPTL) -Wl,-z,defs
+ ln -fs lib$(ARITH)mumps$(PLAT)-$(SONAME_VERSION).so $@
# Dependencies between modules:
# i) arithmetic-dependent modules:
@@ -435,12 +447,14 @@
.SUFFIXES: .c .F .o
.F.o:
$(FC) $(OPTF) $(FPIC) -I. -I../include $(INCS) $(IORDERINGSF) $(ORDERINGSF) -c $*.F $(OUTF)$*.o
+ $(FC) $(OPTF) -I. -I../include $(INCS) $(IORDERINGSF) $(ORDERINGSF) -fPIC -c $*.F $(OUTF)$*.o
.c.o:
$(CC) $(OPTC) $(FPIC) -I../include $(INCS) $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -c $*.c $(OUTC)$*.o
+ $(CC) $(OPTC) -I../include $(INCS) $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -fPIC -c $*.c $(OUTC)$*.o
$(ARITH)mumps_c.o: mumps_c.c
$(CC) $(OPTC) $(FPIC) -I../include $(INCS) $(CDEFS) -DMUMPS_ARITH=MUMPS_ARITH_$(ARITH) \
- $(IORDERINGSC) $(ORDERINGSC) -c mumps_c.c $(OUTC)$@
+ $(IORDERINGSC) $(ORDERINGSC) -fPIC -c mumps_c.c $(OUTC)$@
clean:
$(RM) *.o *.mod $(incdir)/mumps_int_def.h
Footer
Heavily inspired from https://src.fedoraproject.org/rpms/MUMPS//blob/rawhide/f/MUMPS-shared.patch
Author: micketeer@gmail.com
Updatd to version 5.5.0: J. Sassmannshausen/ICL (UK)
Updatd to version 5.5.1: maxim-masterov (SURF)
diff -Nru MUMPS_5.5.1.orig/Makefile MUMPS_5.5.1/Makefile
--- MUMPS_5.5.1.orig/Makefile 2022-08-31 11:57:42.628161000 +0200
+++ MUMPS_5.5.1/Makefile 2022-08-31 12:06:17.800078000 +0200
@@ -65,7 +65,7 @@
include Makefile.inc
-prerequisites: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord$(PLAT)$(LIBEXT)
+prerequisites: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord$(PLAT)$(LIBEXT) $(libdir)/libpord$(PLAT).so
prerequisitesshared: Makefile.inc $(LIBSEQNEEDED)sharedlibseq $(libdir)/libpord$(PLAT)$(LIBEXT_SHARED)
@@ -103,8 +103,11 @@
cp $(LPORDDIR)/libpord$(LIBEXT_SHARED) $@; \
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)
diff -Nru MUMPS_5.5.1.orig/PORD/lib/Makefile MUMPS_5.5.1/PORD/lib/Makefile
--- MUMPS_5.5.1.orig/PORD/lib/Makefile 2022-08-31 11:57:42.938998000 +0200
+++ MUMPS_5.5.1/PORD/lib/Makefile 2022-08-31 12:06:20.352758000 +0200
@@ -31,6 +31,10 @@
libpord$(PLAT)$(LIBEXT_SHARED):$(OBJS)
$(CC) -shared $(OBJS) -o libpord.so
+libpord$(PLAT).so: $(OBJS)
+ $(CC) -shared $(OBJS) -Wl,-soname,libpord$(PLAT)-$(SONAME_VERSION).so -o libpord$(PLAT)-$(SONAME_VERSION).so $(OPTL) -Wl,-z,defs
+ ln -fs libpord$(PLAT)-$(SONAME_VERSION).so $@
+
clean:
rm -f *.o
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment