You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
mumps: update to 5.9.0
This commit is contained in:
+39
-26
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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:
|
||||
Reference in New Issue
Block a user