Index: head/math/superlu_mt/Makefile =================================================================== --- head/math/superlu_mt/Makefile (revision 443734) +++ head/math/superlu_mt/Makefile (revision 443735) @@ -1,125 +1,127 @@ # Created by: Pedro Giffuni # $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} 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 OPTIONS_DEFINE= DOCS .include .if exists(${LOCALBASE}/lib/libgoto2.so) WITH_BLAS?= gotoblas .elif exists(${LOCALBASE}/lib/libatlas.so) WITH_BLAS?= atlas .else WITH_BLAS?= reference .endif .if ${WITH_BLAS} == reference LIB_DEPENDS+= libblas.so:math/blas BLAS= -lblas .elif ${WITH_BLAS} == gotoblas LIB_DEPENDS+= libgoto2.so:math/gotoblas BLAS= -lgoto2p BROKEN= Build stops while testing .elif ${WITH_BLAS} == atlas LIB_DEPENDS+= libatlas.so:math/atlas BLAS= -lptf77blas .endif .if ${ARCH} == "sparc64" || ${ARCH} == "amd64" FPIC= -fPIC .else 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} .endfor ${CP} -r ${WRKSRC} ${WRKSRC_SHARED} @${REINPLACE_CMD} -e 's+%%BLAS%%+-L${LOCALBASE}/lib ${BLAS}+ ; \ s+%%CC%%+${CC}+; s+%%FC%%+${FC}+; \ s+%%CPPFLAGS%%+${CPPFLAGS}+; \ s+%%CFLAGS%%+${CFLAGS}+; \ s+%%FFLAGS%%+${FFLAGS}+; \ s+%%LDFLAGS%%+${LDFLAGS}+; \ s+%%FPIC%%++ ' \ ${WRKSRC}/make.inc @${REINPLACE_CMD} -e 's+%%BLAS%%+-L${LOCALBASE}/lib ${BLAS}+ ; \ s+%%CC%%+${CC}+; s+%%FC%%+${FC}+; \ s+%%CPPFLAGS%%+${CPPFLAGS}+; \ s+%%CFLAGS%%+${CFLAGS} ${FPIC}+; \ s+%%FFLAGS%%+${FFLAGS} ${FPIC}+; \ s+%%LDFLAGS%%+${LDFLAGS}+; \ s+%%FPIC%%+${FPIC}+ ' \ ${WRKSRC_SHARED}/make.inc do-build: cd ${WRKSRC} ; ${MAKE_CMD} LDFLAGS="${LDFLAGS}" cd ${WRKSRC_SHARED} ; ${MAKE_CMD} LDFLAGS="${LDFLAGS}" ${RM} -r ${WRKDIR}/tmp_static ${MKDIR} ${WRKDIR}/tmp_static cd ${WRKDIR}/tmp_static ${FIND} ${WRKSRC} -name "*\.a" -exec ${CP} {} ${WRKDIR}/tmp_static \; ${RM} -r ${WRKDIR}/tmp_shared ${MKDIR} ${WRKDIR}/tmp_shared ${FIND} ${WRKSRC_SHARED} -name "*\.a" -exec ${CP} {} ${WRKDIR}/tmp_shared \; @cd ${WRKDIR}/tmp_shared ; for i in `ls *.a | ${SED} 's/\.a//' `; do \ ${RM} $${i}.so.* $${i}.so ; \ ${FC} ${CFLAGS} ${FPIC} ${LDFLAGS} -shared -o $${i}.so.${SVERSION} \ -Wl,-soname,$${i}.so.${SVERSION} -Wl,--allow-multiple-definition \ -Wl,--whole-archive $${i}.a -Wl,--no-whole-archive -Wl,--as-needed; \ ${LN} -s $${i}.so.${SVERSION} $${i}.so ;\ 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 Index: head/math/superlu_mt/distinfo =================================================================== --- head/math/superlu_mt/distinfo (revision 443734) +++ head/math/superlu_mt/distinfo (revision 443735) @@ -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 Index: head/math/superlu_mt/files/patch-TESTING+pddrive.c =================================================================== --- head/math/superlu_mt/files/patch-TESTING+pddrive.c (revision 443734) +++ head/math/superlu_mt/files/patch-TESTING+pddrive.c (nonexistent) @@ -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[]) - { Property changes on: head/math/superlu_mt/files/patch-TESTING+pddrive.c ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/math/superlu_mt/files/patch-TESTING+pdgssv.c =================================================================== --- head/math/superlu_mt/files/patch-TESTING+pdgssv.c (revision 443734) +++ head/math/superlu_mt/files/patch-TESTING+pdgssv.c (nonexistent) @@ -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 ) Property changes on: head/math/superlu_mt/files/patch-TESTING+pdgssv.c ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/math/superlu_mt/files/patch-TESTING+pdgssvx.c =================================================================== --- head/math/superlu_mt/files/patch-TESTING+pdgssvx.c (revision 443734) +++ head/math/superlu_mt/files/patch-TESTING+pdgssvx.c (nonexistent) @@ -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, Property changes on: head/math/superlu_mt/files/patch-TESTING+pdgssvx.c ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/math/superlu_mt/files/patch-SRC+slu_mt_util.h =================================================================== --- head/math/superlu_mt/files/patch-SRC+slu_mt_util.h (revision 443734) +++ head/math/superlu_mt/files/patch-SRC+slu_mt_util.h (nonexistent) @@ -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 - #include - #include -+#include - - /* Macros */ - #ifndef USER_ABORT Property changes on: head/math/superlu_mt/files/patch-SRC+slu_mt_util.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/math/superlu_mt/files/patch-INSTALL-Makefile =================================================================== --- head/math/superlu_mt/files/patch-INSTALL-Makefile (revision 443734) +++ head/math/superlu_mt/files/patch-INSTALL-Makefile (revision 443735) @@ -1,11 +1,11 @@ ---- 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 $< -superlu_timer.o: superlu_timer.c; $(CC) $(NOOPTS) -c $< +superlu_timer.o: superlu_timer.c; $(CC) $(LDFLAGS) $(NOOPTS) -c $< .c.o: ; $(CC) $(CFLAGS) -c $< Index: head/math/superlu_mt/files/patch-make.inc =================================================================== --- head/math/superlu_mt/files/patch-make.inc (revision 443734) +++ head/math/superlu_mt/files/patch-make.inc (revision 443735) @@ -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%% + + ############################################################################ + # Index: head/math/superlu_mt/pkg-descr =================================================================== --- head/math/superlu_mt/pkg-descr (revision 443734) +++ head/math/superlu_mt/pkg-descr (revision 443735) @@ -1,23 +1,24 @@ - 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). The columns of A may be preordered before factorization; the 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 John R. Gilbert, Xerox Palo Alto Research Center, gilbert@parc.xerox.com NOTE: This library has to be linked with BLAS or a thread safe replacement. WWW: http://crd.lbl.gov/~xiaoye/SuperLU/ Index: head/math/superlu_mt/pkg-plist =================================================================== --- head/math/superlu_mt/pkg-plist (revision 443734) +++ head/math/superlu_mt/pkg-plist (revision 443735) @@ -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