aboutsummaryrefslogtreecommitdiffstats
path: root/math/superlu_mt
diff options
context:
space:
mode:
authorthierry <thierry@FreeBSD.org>2017-06-17 16:34:19 +0800
committerthierry <thierry@FreeBSD.org>2017-06-17 16:34:19 +0800
commit2fa463fc4ef613de65b36581926a88f83dc8c819 (patch)
tree09c061c19bf34cd6b3a4d83544d69da5ef0d08b4 /math/superlu_mt
parent9b1156962cd728941220061bc8562cb5e5235dfa (diff)
downloadfreebsd-ports-gnome-2fa463fc4ef613de65b36581926a88f83dc8c819.tar.gz
freebsd-ports-gnome-2fa463fc4ef613de65b36581926a88f83dc8c819.tar.zst
freebsd-ports-gnome-2fa463fc4ef613de65b36581926a88f83dc8c819.zip
Update math/superlu_mt to version 3.1, along with some cleanups.
PR: 219265 Submitted by: pfg
Diffstat (limited to 'math/superlu_mt')
-rw-r--r--math/superlu_mt/Makefile38
-rw-r--r--math/superlu_mt/distinfo5
-rw-r--r--math/superlu_mt/files/patch-INSTALL-Makefile6
-rw-r--r--math/superlu_mt/files/patch-SRC+slu_mt_util.h10
-rw-r--r--math/superlu_mt/files/patch-TESTING+pddrive.c14
-rw-r--r--math/superlu_mt/files/patch-TESTING+pdgssv.c16
-rw-r--r--math/superlu_mt/files/patch-TESTING+pdgssvx.c16
-rw-r--r--math/superlu_mt/files/patch-make.inc103
-rw-r--r--math/superlu_mt/pkg-descr17
-rw-r--r--math/superlu_mt/pkg-plist14
10 files changed, 92 insertions, 147 deletions
diff --git a/math/superlu_mt/Makefile b/math/superlu_mt/Makefile
index 77e545b484d5..38a11e030210 100644
--- a/math/superlu_mt/Makefile
+++ b/math/superlu_mt/Makefile
@@ -2,12 +2,11 @@
# $FreeBSD$
PORTNAME= superlu_mt
-PORTVERSION= 2.0.20080115
-PORTREVISION= 9
+PORTVERSION= 3.1.20160319
CATEGORIES= math
MASTER_SITES= http://crd.lbl.gov/~xiaoye/SuperLU/ \
http://crd.lbl.gov/~xiaoye/:doc
-DISTNAME= ${PORTNAME}_2.0
+DISTNAME= ${PORTNAME}_3.1
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} simax97.ps.gz:doc
DIST_SUBDIR= superlu2
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
@@ -15,7 +14,11 @@ EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= ports@FreeBSD.org
COMMENT= Routines for performing multithreaded sparse factorization
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/License.txt
+
BROKEN_aarch64= fails to build: undefined reference to sbrk
+BROKEN_sparc64= Does not link on sparc64
USES= fortran gmake
@@ -49,21 +52,16 @@ FPIC= -fPIC
FPIC= -fpic
.endif
-.if ${ARCH} == "sparc64"
-BROKEN= Does not link on sparc64
-.endif
-
USE_LDCONFIG= yes
-WRKSRC= ${WRKDIR}/SuperLU_MT_2.0
-WRKSRC_SHARED= ${WRKDIR}/SuperLU_MT_2.0_shared
+WRKSRC= ${WRKDIR}/SuperLU_MT_3.1
+WRKSRC_SHARED= ${WRKDIR}/SuperLU_MT_3.1_shared
ALL_TARGET= lib
-SVERSION= 1
+SVERSION= 3
ARCH2FIX= CBLAS/Makefile MAKE_INC/make.openmp MAKE_INC/make.exemplar \
- MAKE_INC/make.pthreads TESTING/MATGEN/Makefile \
- make.inc SRC/Makefile
+ make.inc SRC/Makefile TESTING/MATGEN/Makefile
-post-patch:
+do-configure:
.for fmk in ${ARCH2FIX}
@${REINPLACE_CMD} -e 's|^ARCH *.= ar|ARCMD = ar| ; \
s|\$$(ARCH)|$$(ARCMD)|' ${WRKSRC}/${fmk}
@@ -106,20 +104,24 @@ do-build:
done
do-install:
- ${INSTALL_DATA} ${WRKDIR}/tmp_static/libsuperlu_mt.a ${STAGEDIR}${PREFIX}/lib
- ${INSTALL_LIB} ${WRKDIR}/tmp_shared/libsuperlu_mt.so.${SVERSION} ${STAGEDIR}${PREFIX}/lib
- cd ${STAGEDIR}${PREFIX}/lib && ${LN} -s -f libsuperlu_mt.so.${SVERSION} libsuperlu_mt.so
+ ${INSTALL_DATA} ${WRKDIR}/tmp_static/libsuperlu_mt_*.a ${STAGEDIR}${PREFIX}/lib
+ ${INSTALL_LIB} ${WRKDIR}/tmp_shared/libsuperlu_mt_*.so.${SVERSION} ${STAGEDIR}${PREFIX}/lib
+ ${RLN} ${STAGEDIR}${PREFIX}/lib/libsuperlu_mt_PTHREAD.so.${SVERSION} \
+ ${STAGEDIR}${PREFIX}/lib/libsuperlu_mt_PTHREAD.so
+ ${RLN} ${STAGEDIR}${PREFIX}/lib/libsuperlu_mt_PTHREAD.so.${SVERSION} \
+ ${STAGEDIR}${PREFIX}/lib/libsuperlu_mt.so
${MKDIR} ${STAGEDIR}${PREFIX}/include/${PORTNAME}
${INSTALL_DATA} ${WRKSRC}/SRC/*.h ${STAGEDIR}${PREFIX}/include/${PORTNAME}
.if ${PORT_OPTIONS:MDOCS}
@${MKDIR} ${STAGEDIR}${DOCSDIR}
-# ${INSTALL_DATA} ${WRKSRC}/INSTALL/*.ps ${STAGEDIR}${DOCSDIR}
-# ${GZIP_CMD} ${STAGEDIR}${DOCSDIR}/*.ps
+ ${INSTALL_DATA} ${WRKSRC}/DOC/*.pdf ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/simax97.ps.gz ${STAGEDIR}${DOCSDIR}
.endif
+.ifdef MAINTAINER_MODE
regression-test: do-build
@(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} testing)
@(cd ${WRKSRC_SHARED} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} testing)
+.endif
.include <bsd.port.post.mk>
diff --git a/math/superlu_mt/distinfo b/math/superlu_mt/distinfo
index c545ae8f82a2..20e005bf9129 100644
--- a/math/superlu_mt/distinfo
+++ b/math/superlu_mt/distinfo
@@ -1,4 +1,5 @@
-SHA256 (superlu2/superlu_mt_2.0.tar.gz) = 76f54f332db22313316798c3983b7bb704c159ce5a404ddda1f04d0fa477aab1
-SIZE (superlu2/superlu_mt_2.0.tar.gz) = 1332773
+TIMESTAMP = 1494706587
+SHA256 (superlu2/superlu_mt_3.1.tar.gz) = 407b544b9a92b2ed536b1e713e80f986824cf3016657a4bfc2f3e7d2a76ecab6
+SIZE (superlu2/superlu_mt_3.1.tar.gz) = 1824440
SHA256 (superlu2/simax97.ps.gz) = 8f8ae10e28dfdeda2fed58b0bcec1bf96f10fa7b1d055aff160d77d7aeb8a983
SIZE (superlu2/simax97.ps.gz) = 158724
diff --git a/math/superlu_mt/files/patch-INSTALL-Makefile b/math/superlu_mt/files/patch-INSTALL-Makefile
index 354a0ce66850..429b7fd6ce24 100644
--- a/math/superlu_mt/files/patch-INSTALL-Makefile
+++ b/math/superlu_mt/files/patch-INSTALL-Makefile
@@ -1,6 +1,6 @@
---- INSTALL/Makefile.orig 2013-11-16 19:14:28.000000000 +0100
-+++ INSTALL/Makefile 2013-11-16 19:14:58.000000000 +0100
-@@ -17,7 +17,7 @@
+--- INSTALL/Makefile.orig 2013-03-19 22:10:40 UTC
++++ INSTALL/Makefile
+@@ -17,7 +17,7 @@ install.out:
slamch.o: slamch.c ; $(CC) $(NOOPTS) -c $<
dlamch.o: dlamch.c ; $(CC) $(NOOPTS) -c $<
diff --git a/math/superlu_mt/files/patch-SRC+slu_mt_util.h b/math/superlu_mt/files/patch-SRC+slu_mt_util.h
deleted file mode 100644
index daf2a8cf9bef..000000000000
--- a/math/superlu_mt/files/patch-SRC+slu_mt_util.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- SRC/slu_mt_util.h~ 2008-01-09 08:28:56.000000000 +0900
-+++ SRC/slu_mt_util.h 2008-07-02 09:54:31.000000000 +0900
-@@ -12,6 +12,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <pthread.h>
-
- /* Macros */
- #ifndef USER_ABORT
diff --git a/math/superlu_mt/files/patch-TESTING+pddrive.c b/math/superlu_mt/files/patch-TESTING+pddrive.c
deleted file mode 100644
index 52f92404b7e0..000000000000
--- a/math/superlu_mt/files/patch-TESTING+pddrive.c
+++ /dev/null
@@ -1,14 +0,0 @@
---- TESTING/pddrive.c.orig 2008-06-18 22:06:40.000000000 -0500
-+++ TESTING/pddrive.c 2008-06-18 22:08:38.000000000 -0500
-@@ -9,6 +9,11 @@
- #define FMT2 "%10s:fact=%d, trans=%d, refact=%d, equed=%d, n=%d, imat=%d, test(%d)=%12.5g\n"
- #define FMT3 "%10s:info=%d, izero=%d, n=%d, nrhs=%d, imat=%d, nfail=%d\n"
-
-+/* SuperLU compatibility */
-+#define DN SLU_DN
-+#define _D SLU_D
-+#define GE SLU_GE
-+#define NC SLU_NC
-
- main(int argc, char *argv[])
- {
diff --git a/math/superlu_mt/files/patch-TESTING+pdgssv.c b/math/superlu_mt/files/patch-TESTING+pdgssv.c
deleted file mode 100644
index 926ed0a98863..000000000000
--- a/math/superlu_mt/files/patch-TESTING+pdgssv.c
+++ /dev/null
@@ -1,16 +0,0 @@
---- TESTING/pdgssv.c.orig 2008-06-18 22:09:01.000000000 -0500
-+++ TESTING/pdgssv.c 2008-06-18 22:10:18.000000000 -0500
-@@ -1,6 +1,13 @@
- #include "pdsp_defs.h"
- #include "util.h"
-
-+/* SuperLU compatibility */
-+#define DN SLU_DN
-+#define _D SLU_D
-+#define GE SLU_GE
-+#define NC SLU_NC
-+#define NR SLU_NR
-+
- void
- pdgssv(int nprocs, SuperMatrix *A, int *perm_c, int *perm_r,
- SuperMatrix *L, SuperMatrix *U, SuperMatrix *B, int *info )
diff --git a/math/superlu_mt/files/patch-TESTING+pdgssvx.c b/math/superlu_mt/files/patch-TESTING+pdgssvx.c
deleted file mode 100644
index 8a09843b89ff..000000000000
--- a/math/superlu_mt/files/patch-TESTING+pdgssvx.c
+++ /dev/null
@@ -1,16 +0,0 @@
---- TESTING/pdgssvx.c.orig 2008-06-18 22:10:35.000000000 -0500
-+++ TESTING/pdgssvx.c 2008-06-18 22:11:10.000000000 -0500
-@@ -1,6 +1,13 @@
- #include "pdsp_defs.h"
- #include "util.h"
-
-+/* SuperLU compatibility */
-+#define DN SLU_DN
-+#define _D SLU_D
-+#define GE SLU_GE
-+#define NC SLU_NC
-+#define NR SLU_NR
-+
- void
- pdgssvx(int nprocs, pdgstrf_options_t *pdgstrf_options, SuperMatrix *A,
- int *perm_c, int *perm_r, equed_t *equed, double *R, double *C,
diff --git a/math/superlu_mt/files/patch-make.inc b/math/superlu_mt/files/patch-make.inc
index 23c7237fc353..9d88f8dfdd6d 100644
--- a/math/superlu_mt/files/patch-make.inc
+++ b/math/superlu_mt/files/patch-make.inc
@@ -1,62 +1,57 @@
---- make.inc.orig 2008-02-22 22:45:36 UTC
+--- make.inc.orig 2015-04-30 00:46:42 UTC
+++ make.inc
-@@ -16,13 +16,13 @@
- #
- # The machine (platform) identifier to append to the library names
- #
--PLAT = _sp
-+PLAT = _PTHREAD
-
- #
- # The name of the libraries to be created/linked to
- #
--TMGLIB = libtmglib.a
--SUPERLULIB = libsuperlu_mt$(PLAT).a
-+TMGLIB = libtmg.a
-+SUPERLULIB = libsuperlu_mt.a
-
- #
- # If you don't have ESSL, you can use the following blaslib instead:
-@@ -30,7 +30,7 @@ SUPERLULIB = libsuperlu_mt$(PLAT).a
- # which may be slower than ESSL
- #
- BLASDEF = -DUSE_VENDOR_BLAS
--BLASLIB = -lessl
-+BLASLIB = %%BLAS%%
- #BLASLIB = ../lib/libblas$(PLAT).a
- MATHLIB = -lm
- MPLIB = -lpthread
-@@ -38,7 +38,7 @@ MPLIB = -lpthread
+@@ -22,7 +22,7 @@ PLAT = _PTHREAD
+ TMGLIB = libtmglib$(PLAT).a
+ SUPERLULIB = libsuperlu_mt$(PLAT).a
+ BLASDEF = -DUSE_VENDOR_BLAS
+-BLASLIB = -L/usr/lib -lf77blas -latlas
++BLASLIB = %%BLAS%%
+ #BLASLIB = ../lib/libblas$(PLAT).a
+ MATHLIB = -lm
+ MPLIB = -lpthread
+@@ -31,7 +31,7 @@ MPLIB = -lpthread
# The archiver and the flag(s) to use when building archive (library)
# If your system has no ranlib, set RANLIB = echo.
#
--ARCH = ar
-+ARCMD = ar
- ARCHFLAGS = cr
- RANLIB = ranlib
+-ARCH = ar
++ARCMD = ar
+ ARCHFLAGS = cr
+ RANLIB = ranlib
-@@ -46,16 +46,17 @@ RANLIB = ranlib
- PREDEFS = -D_PTHREAD
- #
+@@ -40,8 +40,8 @@ RANLIB = ranlib
+ # Definitions used by CPP:
+ PREDEFS = -D__PTHREAD ## -DDEBUGlevel=0 -DPRNTlevel=0
+ #
+-CC = gcc
+-CFLAGS = $(PREDEFS) -g #-O3
++CC = %%CC%%
++CFLAGS = $(PREDEFS) %%CFLAGS%%
+ # Uncomment the following to use 64-bit integer
+ CFLAGS += -D_LONGINT
--CC = xlc_r
--CFLAGS = -qarch=pwr5 -qalias=allptrs $(PREDEFS) -DPRNTlevel=0 -O3
--FORTRAN = xlf
--FFLAGS = -O3 -qarch=pwr5
--LOADER = xlc_r
--LOADOPTS = -bmaxdata:0x80000000
-+CC = %%CC%%
-+CFLAGS = $(PREDEFS) %%CPPFLAGS%% %%CFLAGS%%
-+FORTRAN = %%FC%%
-+FFLAGS = %%FFLAGS%%
-+LOADER = %%CC%%
-+LOADOPTS = %%LDFLAGS%%
-+NOOPTS = %%FPIC%%
- #
- # C preprocessor defs for compilation for the Fortran interface
- # (-DNoChange, -DAdd_, -DAdd__, or -DUpCase)
- #
--CDEFS = -DNoChange
-+CDEFS = -DAdd_
+@@ -49,19 +49,19 @@ CFLAGS += -D_LONGINT
+ # There are a few files that should NOT be optimized, which appear in the
+ # end of SRC/Makefile, taking the flag $(NOOPTS)
+ # NOOPTS should be defined to explicitly turn off any optimization.
+-NOOPTS = -O0
++NOOPTS = -O0 %%FPIC%%
+
+-BLASOPTS =
++BLASOPTS =
+
+ ############################################################################
+-FORTRAN = gfortran
+-FFLAGS = -O -fdefault-integer-8
++FORTRAN = %%FC%%
++FFLAGS = %%FFLAGS%% -fdefault-integer-8
+ ############################################################################
+
+-LOADER = gcc
+-LOADOPTS = -O #-pthread
++LOADER = %%CC%%
++LOADOPTS = -O %%LDFLAGS%%
+
+ ############################################################################
+ #
diff --git a/math/superlu_mt/pkg-descr b/math/superlu_mt/pkg-descr
index f55d8b951990..a0559f7cee48 100644
--- a/math/superlu_mt/pkg-descr
+++ b/math/superlu_mt/pkg-descr
@@ -1,5 +1,5 @@
- SuperLU_MT (version 2.0)
- ========================
+ SuperLU_MT (version 3.1)
+ ========================
SuperLU_MT contains a set of subroutines to solve a sparse linear system
A*X=B. It uses Gaussian elimination with partial pivoting (GEPP).
@@ -8,12 +8,13 @@ preordering for sparsity is completely separate from the factorization.
SuperLU_MT is a parallel extension to the serial SuperLU library.
SuperLU_MT is implemented in ANSI C, with multithreading extension,
-for example, using POSIX threads. Currently, only the LU factorization
-routine, which is the most time-consuming part of the solution process,
-is parallelized on machines with a shared address space. The other
-routines, such as column preordering and the forward and back substitutions
-are performed sequentially. This "alpha" release contains only
-double-precision real data type.
+for example, using POSIX threads or OpenMP. Currently, only the LU
+factorization routine, which is the most time-consuming part of the
+solution process, is parallelized on machines with a shared address space.
+The other routines, such as column preordering and the forward and
+back substitutions are performed sequentially.
+The library provides functionality for both real and complex
+matrices, in both single and double precision.
Xiaoye S. Li, Lawrence Berkeley National Lab, xiaoye@nersc.gov
James Demmel, Univ. of California Berkeley, demmel@cs.berkeley.edu
diff --git a/math/superlu_mt/pkg-plist b/math/superlu_mt/pkg-plist
index 49869c3cb563..98e432091f8a 100644
--- a/math/superlu_mt/pkg-plist
+++ b/math/superlu_mt/pkg-plist
@@ -1,16 +1,18 @@
include/superlu_mt/colamd.h
-include/superlu_mt/pcsp_defs.h
-include/superlu_mt/pdsp_defs.h
-include/superlu_mt/pssp_defs.h
include/superlu_mt/pxgstrf_synch.h
-include/superlu_mt/pzsp_defs.h
include/superlu_mt/slu_dcomplex.h
include/superlu_mt/slu_mt_Cnames.h
+include/superlu_mt/slu_mt_cdefs.h
+include/superlu_mt/slu_mt_ddefs.h
include/superlu_mt/slu_mt_machines.h
+include/superlu_mt/slu_mt_sdefs.h
include/superlu_mt/slu_mt_util.h
+include/superlu_mt/slu_mt_zdefs.h
include/superlu_mt/slu_scomplex.h
include/superlu_mt/supermatrix.h
-lib/libsuperlu_mt.a
lib/libsuperlu_mt.so
-lib/libsuperlu_mt.so.1
+lib/libsuperlu_mt_PTHREAD.a
+lib/libsuperlu_mt_PTHREAD.so
+lib/libsuperlu_mt_PTHREAD.so.3
%%PORTDOCS%%%%DOCSDIR%%/simax97.ps.gz
+%%PORTDOCS%%%%DOCSDIR%%/ug.pdf