mumps: update to 5.9.0

This commit is contained in:
Mohamed Akram
2026-07-05 15:49:43 +04:00
parent a9d0c82023
commit d87f1df7a4
3 changed files with 39 additions and 177 deletions
+39 -26
View File
@@ -8,8 +8,8 @@ PortGroup mpi 1.0
PortGroup muniversal 1.0
name mumps
version 5.7.3
revision 1
version 5.9.0
revision 0
categories math
license CeCILL-C
maintainers {mcalhoun @MarcusCalhoun-Lopez} openmaintainer
@@ -26,12 +26,16 @@ master_sites ${homepage}
distname MUMPS_${version}
checksums rmd160 a11df7b1399aa5ffbc74723c662ef01c0702c2d6 \
sha256 84a47f7c4231b9efdf4d4f631a2cae2bdd9adeaabc088261d15af040143ed112 \
size 4542883
checksums rmd160 59eb8c3c7fb780e88b95461b9ca6c86a35fc18d5 \
sha256 02c6efdb91749ec0f82351d40f3f860547272a1eb1d899126a4265b4d6bcc4ca \
size 4976904
conflicts_build-append ${name}
post-extract {
file copy ${worksrcpath}/Make.inc/Makefile.inc.generic ${worksrcpath}/Makefile.inc
}
mpi.setup require \
require_fortran
@@ -39,22 +43,13 @@ mpi.enforce_variant scalapack
linalg.setup blas_only
patchfiles-append patch-shared.diff \
patch-Makefile.inc.diff
use_parallel_build no
build.target all allshared
build.args-append LIBEXT_SHARED=".dylib"
configure.optflags -O3
configure.cflags-append -fPIC
configure.fflags-append -fPIC
# Xcode clang of 10.7 fails with error: invalid instruction mnemonic 'cvtsi2ssl'
compiler.blacklist-append \
{clang < 500} *gcc-4.* macports-gcc-5 macports-gcc-6
# see https://listes.ens-lyon.fr/sympa/arc/mumps-users/2020-05/msg00000.html
compilers.allow_arguments_mismatch yes
# when using a non-GCC compiler, avoid:
# Undefined symbols for architecture i386:
# "___divmoddi4", referenced from:
@@ -67,10 +62,6 @@ if {(!${universal_possible} || ![variant_isset universal]) && ${build_arch} eq "
configure.fflags-append -fno-expensive-optimizations
}
pre-build {
build.env-append MACPORTS_BLAS=${linalglib}
}
if {!${universal_possible} || ![variant_isset universal]} {
# find correct scotch Fortran header
if {[file exists ${prefix}/include/${build_arch}]} {
@@ -85,14 +76,39 @@ if {!${universal_possible} || ![variant_isset universal]} {
}
}
post-extract {
file copy ${worksrcpath}/Make.inc/Makefile.inc.generic ${worksrcpath}/Makefile.inc
build.target all allshared
build.args-append LIBEXT_SHARED=.dylib SONAME=-install_name \
FL='\$(FC)' \
INCPAR= \
LAPACK= \
LMETIS="-lparmetis -lmetis" \
LSCOTCH="-lptesmumps -lptscotch -lptscotcherr -lscotch" \
OPTC="${configure.cppflags} ${configure.cflags}" \
OPTF="${configure.cppflags} ${configure.fflags}" \
OPTL="${configure.ldflags}" \
ORDERINGSF="-Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis" \
SCALAP='-lscalapack \$(LIBBLAS)'
pre-build {
build.args-append LIBBLAS=${linalglib}
}
destroot {
xinstall -m 644 {*}[glob ${worksrcpath}/include/*.h] ${destroot}${prefix}/include
xinstall -m 644 {*}[glob ${worksrcpath}/lib/*.a] ${destroot}${prefix}/lib
xinstall -m 644 {*}[glob ${worksrcpath}/lib/*.dylib] ${destroot}${prefix}/lib
foreach f [glob -tails -directory ${destroot} ${prefix}/lib/*.dylib] {
system "install_name_tool -id /$f ${destroot}/$f"
}
system "install_name_tool \
-change libpord.dylib ${prefix}/lib/libpord.dylib \
${destroot}${prefix}/lib/libmumps_common.dylib"
foreach f [glob -tails -directory ${destroot} ${prefix}/lib/lib*mumps.dylib] {
system "install_name_tool \
-change libmumps_common.dylib ${prefix}/lib/libmumps_common.dylib \
-change libpord.dylib ${prefix}/lib/libpord.dylib \
${destroot}/$f"
}
}
livecheck.url ${homepage}/index.php?page=dwnld
@@ -111,6 +127,3 @@ post-test {
system -W ${worksrcpath}/examples "${runcmd} ./zsimpletest < input_simpletest_cmplx"
system -W ${worksrcpath}/examples "${runcmd} ./c_example"
}
# see https://listes.ens-lyon.fr/sympa/arc/mumps-users/2020-05/msg00000.html
compilers.allow_arguments_mismatch yes
-117
View File
@@ -1,117 +0,0 @@
diff --git Makefile.inc Makefile.inc
index 1898c03..c7bceef 100644
--- Makefile.inc
+++ Makefile.inc
@@ -40,9 +40,9 @@
# Metis/ParMetis and SCOTCH/PT-SCOTCH (ver 6.0 and later) orderings are recommended.
#
-#SCOTCHDIR = ${HOME}/scotch_6.0
-#ISCOTCH = -I$(SCOTCHDIR)/include
-#
+SCOTCHDIR = $(PREFIX)
+ISCOTCH = -I$(SCOTCHDIR)/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
@@ -50,15 +50,15 @@
# line (remember to add -Dptscotch in the ORDERINGSF variable below)
#LSCOTCH = -L$(SCOTCHDIR)/lib -lesmumps -lscotch -lscotcherr
-#LSCOTCH = -L$(SCOTCHDIR)/lib -lptesmumps -lptscotch -lptscotcherr
+LSCOTCH = -L$(SCOTCHDIR)/lib -lptesmumps -lptscotch -lptscotcherr -lscotch
LPORDDIR = $(topdir)/PORD/lib/
IPORD = -I$(topdir)/PORD/include/
LPORD = -L$(LPORDDIR) -lpord$(PLAT)
-#LMETISDIR = /opt/metis-5.1.0/build/Linux-x86_64/libmetis
-#IMETIS = /opt/metis-5.1.0/include
+LMETISDIR = $(PREFIX)/lib
+IMETIS = -I$(PREFIX)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
@@ -67,14 +67,14 @@ LPORD = -L$(LPORDDIR) -lpord
# line (remember to add -Dparmetis in the ORDERINGSF variable below)
#LMETIS = -L$(LMETISDIR) -lmetis
-#LMETIS = -L$(LMETISDIR) -lparmetis -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.
# If you want to use Metis 4.X or an older version, you should use -Dmetis4 instead of -Dmetis
# or in addition with -Dparmetis (if you are using parmetis 3.X or older).
-#ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis
-ORDERINGSF = -Dpord
+ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis
+# ORDERINGSF = -Dpord
ORDERINGSC = $(ORDERINGSF)
LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH)
@@ -97,31 +97,31 @@ OUTF = -o
# RM : remove files
RM = /bin/rm -f
# CC : C compiler
-CC = cc
+CC = $(CC)
# FC : Fortran 90 compiler
-FC = f90
+FC = $(FC)
# FL : Fortran linker
-FL = f90
+FL = $(FC)
# AR : Archive object in a library
# keep a space at the end if options have to be separated from lib name
-AR = ar vr
+AR = ar cr
# RANLIB : generate index of an archive file
# (optionnal use "RANLIB = echo" in case of problem)
-RANLIB = ranlib
+RANLIB = ranlib -c
#RANLIB = echo
# DEFINE HERE YOUR LAPACK LIBRARY
-LAPACK = -llapack
+LAPACK =
# SCALAP should define the SCALAPACK and BLACS libraries.
-SCALAP = -lscalapack -lblacs
+SCALAP = -lscalapack $(MACPORTS_BLAS) -L$(PREFIX)/lib
# INCLUDE DIRECTORY FOR MPI
-INCPAR = -I/usr/include
+INCPAR =
# LIBRARIES USED BY THE PARALLEL VERSION OF MUMPS: $(SCALAP) and MPI
-LIBPAR = $(SCALAP) $(LAPACK) -L/usr/lib -lmpi
+LIBPAR = $(SCALAP) $(LAPACK)
# The parallel version is not concerned by the next two lines.
# They are related to the sequential library provided by MUMPS,
@@ -131,7 +131,7 @@ LIBSEQ = $(LAPACK) -L$(topdir)/libseq -lmpiseq
# DEFINE HERE YOUR BLAS LIBRARY
-LIBBLAS = -lblas
+LIBBLAS = $(MACPORTS_BLAS)
# DEFINE HERE YOUR PTHREAD LIBRARY
LIBOTHERS = -lpthread
@@ -150,9 +150,9 @@ LIBOTHERS = -lpthread
CDEFS = -DAdd_
#COMPILER OPTIONS
-OPTF = -O
-OPTC = -O -I.
-OPTL = -O
+OPTF = $(CPPFLAGS) $(FFLAGS)
+OPTC = -I. $(CPPFLAGS) $(CFLAGS)
+OPTL = $(LDFLAGS)
# CHOOSE BETWEEN USING THE SEQUENTIAL OR THE PARALLEL VERSION.
-34
View File
@@ -1,34 +0,0 @@
diff --git PORD/lib/Makefile PORD/lib/Makefile
index 1618155..01276e8 100644
--- PORD/lib/Makefile
+++ PORD/lib/Makefile
@@ -29,7 +29,7 @@ libpord$(PLAT)$(LIBEXT):$(OBJS)
$(RANLIB) $@
libpord$(PLAT)$(LIBEXT_SHARED):$(OBJS)
- $(CC) -shared $(OBJS) -o libpord$(PLAT)$(LIBEXT_SHARED)
+ $(CC) -dynamiclib -install_name $(PREFIX)/lib/libpord$(PLAT)$(LIBEXT_SHARED) $(OBJS) -o $@
clean:
rm -f *.o
diff --git src/Makefile src/Makefile
index acf0af6..fb32d2b 100644
--- src/Makefile
+++ src/Makefile
@@ -217,14 +217,14 @@
$(RANLIB) $@
$(libdir)/libmumps_common$(PLAT)$(LIBEXT_SHARED): $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER)
- $(FC) $(OPTL) $(SHARED_OPT) $^ -Wl,$(SONAME),libmumps_common$(PLAT)$(LIBEXT_SHARED) -L$(libdir) $(RPATH_OPT) $(LORDERINGS) $(LIBS) $(LIBOTHERS) -o $@
+ $(FC) $(OPTL) -dynamiclib $^ -install_name $(PREFIX)/lib/libmumps_common$(PLAT)$(LIBEXT_SHARED) -L$(libdir) $(RPATH_OPT) $(LORDERINGS) $(LIBS) $(LIBOTHERS) -o $@
$(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT): $(OBJS_MOD) $(OBJS_OTHER)
$(AR)$@ $?
$(RANLIB) $@
$(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT_SHARED): $(OBJS_MOD) $(OBJS_OTHER) $(libdir)/libmumps_common$(PLAT)$(LIBEXT_SHARED)
- $(FC) $(OPTL) $(SHARED_OPT) $(OBJS_MOD) $(OBJS_OTHER) -L$(libdir) $(LORDERINGS) $(LIBS) $(LIBOTHERS) -lmumps_common$(PLAT) -o $@ $(RPATH_OPT)
+ $(FC) $(OPTL) -shared $(OBJS_MOD) $(OBJS_OTHER) -dynamiclib -install_name $(PREFIX)/lib/lib$(ARITH)mumps$(PLAT)$(LIBEXT_SHARED) -L$(libdir) $(LORDERINGS) $(LIBS) $(LIBOTHERS) -lmumps_common$(PLAT) -o $@ $(RPATH_OPT)
# Dependencies between modules: