aboutsummaryrefslogtreecommitdiffstats
path: root/math/superlu
diff options
context:
space:
mode:
Diffstat (limited to 'math/superlu')
-rw-r--r--math/superlu/Makefile131
-rw-r--r--math/superlu/distinfo10
-rw-r--r--math/superlu/files/patch-SRC+sp_coletree.c12
-rw-r--r--math/superlu/files/patch-SRC-Makefile67
-rw-r--r--math/superlu/files/patch-TESTING_Makefile38
-rw-r--r--math/superlu/files/patch-make.inc47
-rw-r--r--math/superlu/pkg-descr38
-rw-r--r--math/superlu/pkg-plist6
8 files changed, 76 insertions, 273 deletions
diff --git a/math/superlu/Makefile b/math/superlu/Makefile
index 65830ea4fdbd..11df8f17854f 100644
--- a/math/superlu/Makefile
+++ b/math/superlu/Makefile
@@ -2,95 +2,78 @@
# $FreeBSD$
PORTNAME= superlu
-PORTVERSION= ${P_VERSION}
-PORTREVISION= 3
+PORTVERSION= 5.1.1
CATEGORIES= math
-MASTER_SITES= http://crd.lbl.gov/~xiaoye/SuperLU/ \
- http://crd.lbl.gov/~xiaoye/:doc
-DISTNAME= ${PORTNAME}_${P_VERSION}
+MASTER_SITES= http://crd-legacy.lbl.gov/~xiaoye/SuperLU/ \
+ http://crd-legacy.lbl.gov/~xiaoye/:doc
+DISTNAME= ${PORTNAME}_${PORTVERSION}
DIST_SUBDIR= ${PORTNAME}
-EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= ports@FreeBSD.org
COMMENT= Library of routines for performing sparse factorization
LICENSE= BSD3CLAUSE
-LICENSE_FILE= ${WRKSRC}/README
+LICENSE_FILE= ${WRKDIR}/LICENSE
-USES= fortran
+USES= cmake:outsource fortran
USE_LDCONFIG= yes
-P_VERSION= 4.3
-P_VER= ${P_VERSION:R}
-WRKSRC= ${WRKDIR}/SuperLU_${P_VERSION}
-ALL_TARGET= lib
-PLIST_SUB= P_VERSION=${P_VERSION} P_VER=${P_VER}
-
-ARCH2FIX= SRC/Makefile TESTING/MATGEN/Makefile CBLAS/Makefile make.inc \
- MAKE_INC/make.alpha MAKE_INC/make.inc
-
-MAKE_JOBS_UNSAFE= yes
-
-.include <bsd.port.pre.mk>
-
-.if ${PORT_OPTIONS:MDOCS}
-DISTFILES= ${DISTNAME}${EXTRACT_SUFX} superlu_ug.pdf SLU_general.ps.gz:doc simax95.ps.gz:doc
-.endif
-
-.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:${PORTSDIR}/math/blas
-BLAS= -lblas
-.elif ${WITH_BLAS} == gotoblas
-LIB_DEPENDS+= libgoto2.so:${PORTSDIR}/math/gotoblas
-BLAS= -lgoto2p
-.elif ${WITH_BLAS} == atlas
-LIB_DEPENDS+= libatlas.so:${PORTSDIR}/math/atlas
-BLAS= -lptf77blas
-.endif
-
-pre-build:
- ${REINPLACE_CMD} -e 's+%%BLAS%%+-L${LOCALBASE}/lib ${BLAS}+ ; \
- s+%%CC%%+${CC}+; s+%%FC%%+${FC}+; \
- s+%%WRKSRC%%+${WRKSRC}+; \
- s+%%CFLAGS%%+${CFLAGS}+; \
- s+%%FFLAGS%%+${FFLAGS}+' \
- ${WRKSRC}/make.inc
-.for fmk in ${ARCH2FIX}
- ${REINPLACE_CMD} -e 's|^ARCH *.= ar|ARCMD = ar| ; \
- s|\$$(ARCH)|$$(ARCMD)|' ${WRKSRC}/${fmk}
-.endfor
- ${FIND} ${WRKSRC} -name Makefile | ${XARGS} \
- ${REINPLACE_CMD} -E -e 's|\( cd (.*); \$$\(MAKE\) \)|\$$(MAKE) -C \1|'
-
-do-install:
- ${INSTALL_DATA} ${WRKSRC}/lib/libsuperlu_${P_VERSION}.a \
- ${STAGEDIR}${PREFIX}/lib/libsuperlu.a
- ${INSTALL_LIB} ${WRKSRC}/libsuperlu_${P_VERSION}.so \
+WRKSRC= ${WRKDIR}/SuperLU_${PORTVERSION}
+PLIST_SUB= P_VERSION="${PORTVERSION}" P_VER="${P_VER}"
+
+CMAKE_ARGS= -DUSE_XSDK_DEFAULTS:BOOL=ON \
+ -Denable_examples:BOOL=OFF \
+ -Denable_tests:BOOL=OFF
+
+PORTDOCS= *
+
+OPTIONS_DEFINE= DOCS
+OPTIONS_SINGLE= BLAS
+OPTIONS_SINGLE_BLAS= ATLAS GOTOBLAS REFERENCE
+OPTIONS_DEFAULT= REFERENCE
+
+ATLAS_USES= blaslapack:atlas
+ATLAS_CMAKE_ARGS= -DBLA_VENDOR:STRING="ATLAS"
+DOCS_DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
+ ${SLU_DOCS:S/$/:doc/}
+DOCS_EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
+GOTOBLAS_DESC= GotoBLAS blas implementation
+GOTOBLAS_USES= blaslapack:gotoblas
+GOTOBLAS_CMAKE_ARGS= -DBLA_VENDOR:STRING="Goto"
+REFERENCE_DESC= Reference blas implementation
+REFERENCE_USES= blaslapack
+REFERENCE_CMAKE_ARGS= -DBLA_VENDOR:STRING="Generic"
+
+P_VER= ${PORTVERSION:C/^([[:alnum:]]+).*/\1/}
+SLU_DOCS= SLU_general.ps.gz simax-29176.pdf
+
+post-extract:
+ @${HEAD} -32 ${WRKSRC}/README > ${LICENSE_FILE}
+
+post-patch:
+ @${REINPLACE_CMD} -e \
+ '/CMAKE_C_FLAGS_RELEASE/s|^|#|' ${WRKSRC}/CMakeLists.txt
+ @${REINPLACE_CMD} -e \
+ '/FFLAGS/s|FATAL_ERROR|WARNING|' ${WRKSRC}/XSDKDefaults.cmake
+ @${REINPLACE_CMD} -e \
+ 's|\(/include\)$$|/\1/superlu|' ${WRKSRC}/SRC/CMakeLists.txt
+
+post-install:
+ ${LN} -sf libsuperlu_${PORTVERSION}.so \
${STAGEDIR}${PREFIX}/lib/libsuperlu.so.${P_VER}
- ${LN} -fs libsuperlu.so.${P_VER} \
- ${STAGEDIR}${PREFIX}/lib/libsuperlu_${P_VERSION}.so
- ${LN} -fs libsuperlu_${P_VERSION}.so \
+ ${LN} -sf libsuperlu_${PORTVERSION}.so \
${STAGEDIR}${PREFIX}/lib/libsuperlu.so
- @${MKDIR} ${STAGEDIR}${PREFIX}/include/superlu
- ${INSTALL_DATA} ${WRKSRC}/SRC/*.h ${STAGEDIR}${PREFIX}/include/superlu
-.if ${PORT_OPTIONS:MDOCS}
+
+post-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
- ${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/SLU_general.ps.gz ${STAGEDIR}${DOCSDIR}
- ${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/simax95.ps.gz ${STAGEDIR}${DOCSDIR}
- ${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/superlu_ug.pdf ${STAGEDIR}${DOCSDIR}
-.endif
+ (cd ${DISTDIR}/${DIST_SUBDIR} && ${INSTALL_DATA} ${SLU_DOCS} \
+ ${STAGEDIR}${DOCSDIR})
+ (cd ${WRKSRC}/DOC && ${COPYTREE_SHARE} "html ug.pdf" \
+ ${STAGEDIR}${DOCSDIR})
-regression-test: build
+do-test:
(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} testing )
(cd ${WRKSRC}/TESTING && ${CAT} *.out )
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/math/superlu/distinfo b/math/superlu/distinfo
index 79ffd5f4eb2c..15c7a4d982fd 100644
--- a/math/superlu/distinfo
+++ b/math/superlu/distinfo
@@ -1,8 +1,6 @@
-SHA256 (superlu/superlu_4.3.tar.gz) = 169920322eb9b9c6a334674231479d04df72440257c17870aaa0139d74416781
-SIZE (superlu/superlu_4.3.tar.gz) = 2875951
-SHA256 (superlu/superlu_ug.pdf) = 4657e60fb7832465b60e208613992d29b6bbd8110103bfe0f5cee0ab79b67766
-SIZE (superlu/superlu_ug.pdf) = 458405
+SHA256 (superlu/superlu_5.1.1.tar.gz) = cec5022c8dc16e38e5c8bc92ed196144fe58864bd1c5ad73fb698398308f8065
+SIZE (superlu/superlu_5.1.1.tar.gz) = 2746173
SHA256 (superlu/SLU_general.ps.gz) = 00d00cedfadd96a42014d22b30c0cc451a575d8d309774519068b11d4be1ebe5
SIZE (superlu/SLU_general.ps.gz) = 89463
-SHA256 (superlu/simax95.ps.gz) = b7e7705a280336474a25b0a1aef57226d81ea0dc6f18728b7347cb1726f91d2a
-SIZE (superlu/simax95.ps.gz) = 138096
+SHA256 (superlu/simax-29176.pdf) = 1411a3976b932a834157064dbaf0cdda10763f321bae10eb6f18925432250226
+SIZE (superlu/simax-29176.pdf) = 521916
diff --git a/math/superlu/files/patch-SRC+sp_coletree.c b/math/superlu/files/patch-SRC+sp_coletree.c
deleted file mode 100644
index d5021065ef2c..000000000000
--- a/math/superlu/files/patch-SRC+sp_coletree.c
+++ /dev/null
@@ -1,12 +0,0 @@
---- SRC/sp_coletree.c.orig Fri Sep 26 08:22:05 2003
-+++ SRC/sp_coletree.c Thu Apr 1 20:29:10 2004
-@@ -2,6 +2,9 @@
- /* Elimination tree computation and layout routines */
-
- #include <stdio.h>
-+#ifndef __STDC__
-+#include <malloc.h>
-+#endif
- #include <stdlib.h>
- #include "dsp_defs.h"
-
diff --git a/math/superlu/files/patch-SRC-Makefile b/math/superlu/files/patch-SRC-Makefile
deleted file mode 100644
index 12f12fa0fcc1..000000000000
--- a/math/superlu/files/patch-SRC-Makefile
+++ /dev/null
@@ -1,67 +0,0 @@
---- SRC/Makefile.orig 2011-10-27 21:49:47.000000000 +0200
-+++ SRC/Makefile 2014-08-28 21:11:48.000000000 +0200
-@@ -111,35 +111,43 @@
- ilu_zcolumn_dfs.o ilu_zpanel_dfs.o ilu_zcopy_to_ucol.o \
- ilu_zpivotL.o zdiagonal.o
-
--all: single double complex complex16
-+SINGLE = $(SLUSRC) $(ALLAUX) $(LAAUX) $(SLASRC) $(SCLAUX)
-+DOUBLE = $(DLUSRC) $(ALLAUX) $(LAAUX) $(DLASRC) $(DZLAUX)
-+COMPLEX = $(CLUSRC) $(ALLAUX) $(LAAUX) $(CLASRC) $(SCLAUX)
-+COMPLEX16 = $(ZLUSRC) $(ALLAUX) $(LAAUX) $(ZLASRC) $(DZLAUX)
-+
-+all: static shared
-
- single: $(SLUSRC) $(ALLAUX) $(LAAUX) $(SLASRC) $(SCLAUX)
-- $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) \
-- $(SLUSRC) $(ALLAUX) $(LAAUX) $(SLASRC) $(SCLAUX)
-- $(RANLIB) $(SUPERLULIB)
-
- double: $(DLUSRC) $(ALLAUX) $(LAAUX) $(DLASRC) $(DZLAUX)
-- $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) \
-- $(DLUSRC) $(ALLAUX) $(LAAUX) $(DLASRC) $(DZLAUX)
-- $(RANLIB) $(SUPERLULIB)
-
- complex: $(CLUSRC) $(ALLAUX) $(LAAUX) $(CLASRC) $(SCLAUX)
-- $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) \
-- $(CLUSRC) $(ALLAUX) $(LAAUX) $(CLASRC) $(SCLAUX)
-- $(RANLIB) $(SUPERLULIB)
-
- complex16: $(ZLUSRC) $(ALLAUX) $(LAAUX) $(ZLASRC) $(DZLAUX)
-- $(ARCH) $(ARCHFLAGS) $(SUPERLULIB) \
-- $(ZLUSRC) $(ALLAUX) $(LAAUX) $(ZLASRC) $(DZLAUX)
-+
-+static: single double complex complex16
-+ $(ARCMD) $(ARCHFLAGS) $(SUPERLULIB) $(SINGLE)
-+ $(ARCMD) $(ARCHFLAGS) $(SUPERLULIB) $(DOUBLE)
-+ $(ARCMD) $(ARCHFLAGS) $(SUPERLULIB) $(COMPLEX)
-+ $(ARCMD) $(ARCHFLAGS) $(SUPERLULIB) $(COMPLEX16)
- $(RANLIB) $(SUPERLULIB)
-
-+shared: single double complex complex16
-+ $(CC) -shared -Wl,-soname=$(SUPERLULIB_SHARED) -o ../$(SUPERLULIB_SHARED) \
-+ $(ALLAUX) $(LAAUX) $(SCLAUX) $(DZLAUX) \
-+ $(SLUSRC) $(SLASRC) \
-+ $(DLUSRC) $(DLASRC) \
-+ $(CLUSRC) $(CLASRC) \
-+ $(ZLUSRC) $(ZLASRC)
-+
-
- ##################################
- # Do not optimize these routines #
- ##################################
--slamch.o: slamch.c ; $(CC) -c $(NOOPTS) $(CDEFS) $<
--dlamch.o: dlamch.c ; $(CC) -c $(NOOPTS) $(CDEFS) $<
--superlu_timer.o: superlu_timer.c ; $(CC) -c $(NOOPTS) $<
-+slamch.o: slamch.c ; $(CC) -fpic -c $(NOOPTS) $(CDEFS) $<
-+dlamch.o: dlamch.c ; $(CC) -fpic -c $(NOOPTS) $(CDEFS) $<
-+superlu_timer.o: superlu_timer.c ; $(CC) -fpic -c $(NOOPTS) $<
- ##################################
-
- .c.o:
-@@ -149,4 +157,4 @@
- $(FORTRAN) $(FFLAGS) -c $<
-
- clean:
-- rm -f *.o $(SUPERLULIB)
-+ rm -f *.o $(SUPERLULIB) $(SUPERLULIB_SHARED)
diff --git a/math/superlu/files/patch-TESTING_Makefile b/math/superlu/files/patch-TESTING_Makefile
deleted file mode 100644
index f85e6a1f8414..000000000000
--- a/math/superlu/files/patch-TESTING_Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
---- TESTING/Makefile.orig 2011-10-27 21:49:47.000000000 +0200
-+++ TESTING/Makefile 2014-08-27 19:38:04.000000000 +0200
-@@ -54,7 +54,7 @@
-
- ./stest: $(SLINTST) $(ALINTST) $(SUPERLULIB) $(TMGLIB)
- $(LOADER) $(LOADOPTS) $(SLINTST) $(ALINTST) \
-- $(TMGLIB) $(SUPERLULIB) $(BLASLIB) -lm -o $@
-+ $(TMGLIB) $(SUPERLULIB) $(BLASLIB) ${LDFLAGS} -lm -o $@
-
- stest.out: stest stest.csh
- @echo Testing SINGLE PRECISION linear equation routines
-@@ -64,7 +64,7 @@
-
- ./dtest: $(DLINTST) $(ALINTST) $(SUPERLULIB) $(TMGLIB)
- $(LOADER) $(LOADOPTS) $(DLINTST) $(ALINTST) \
-- $(TMGLIB) $(SUPERLULIB) $(BLASLIB) -lm -o $@
-+ $(TMGLIB) $(SUPERLULIB) $(BLASLIB) ${LDFLAGS} -lm -o $@
-
- dtest.out: dtest dtest.csh
- @echo Testing DOUBLE PRECISION linear equation routines
-@@ -74,7 +74,7 @@
-
- ./ctest: $(CLINTST) $(ALINTST) $(SUPERLULIB) $(TMGLIB)
- $(LOADER) $(LOADOPTS) $(CLINTST) $(ALINTST) \
-- $(TMGLIB) $(SUPERLULIB) $(BLASLIB) -lm -o $@
-+ $(TMGLIB) $(SUPERLULIB) $(BLASLIB) ${LDFLAGS} -lm -o $@
-
- ctest.out: ctest ctest.csh
- @echo Testing SINGLE COMPLEX linear equation routines
-@@ -84,7 +84,7 @@
-
- ./ztest: $(ZLINTST) $(ALINTST) $(SUPERLULIB) $(TMGLIB)
- $(LOADER) $(LOADOPTS) $(ZLINTST) $(ALINTST) \
-- $(TMGLIB) $(SUPERLULIB) $(BLASLIB) -lm -o $@
-+ $(TMGLIB) $(SUPERLULIB) $(BLASLIB) ${LDFLAGS} -lm -o $@
-
- ztest.out: ztest ztest.csh
- @echo Testing DOUBLE COMPLEX linear equation routines
diff --git a/math/superlu/files/patch-make.inc b/math/superlu/files/patch-make.inc
deleted file mode 100644
index 84e01d14120e..000000000000
--- a/math/superlu/files/patch-make.inc
+++ /dev/null
@@ -1,47 +0,0 @@
---- make.inc.orig 2011-12-12 23:34:18.000000000 +0100
-+++ make.inc 2014-08-26 23:26:34.000000000 +0200
-@@ -21,14 +21,15 @@
- #
- # The name of the libraries to be created/linked to
- #
--SuperLUroot = $(HOME)/Codes/SuperLU/SuperLU_4.3
-+SuperLUroot = %%WRKSRC%%
- SUPERLULIB = $(SuperLUroot)/lib/libsuperlu_4.3.a
-+SUPERLULIB_SHARED = libsuperlu_4.3.so
- TMGLIB = libtmglib.a
-
- ## BLASLIB = $(SuperLUroot)/lib/libblas.a
-
- BLASDEF = -DUSE_VENDOR_BLAS
--BLASLIB = -L$(HOME)/lib/GotoBLAS -lgoto
-+BLASLIB = %%BLAS%%
-
- ## ATLAS BLAS causes single-precision to fail
- #BLASLIB = -L/usr/lib/atlas -lblas
-@@ -41,15 +42,14 @@
- # 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
-
--CC = gcc
--CFLAGS = -DPRNTlevel=0 -O3
-+CFLAGS = -DPRNTlevel=0 %%CFLAGS%% -fpic
- NOOPTS =
--FORTRAN = g77
--FFLAGS = -O2
-+FORTRAN = %%FC%%
-+FFLAGS = %%FFLAGS%%
- LOADER = $(CC)
- LOADOPTS =
-
-@@ -61,5 +61,5 @@
- #
- # The directory in which Matlab is installed
- #
--MATLAB = /usr/sww/matlab
-+#MATLAB = /usr/sww/pkg/matlab
-
diff --git a/math/superlu/pkg-descr b/math/superlu/pkg-descr
index 48edb218646f..6cf4c70560ab 100644
--- a/math/superlu/pkg-descr
+++ b/math/superlu/pkg-descr
@@ -1,24 +1,16 @@
- SuperLU (Version 3.0)
- =====================
+SuperLU is a general purpose library for the direct solution of large,
+sparse, nonsymmetric systems of linear equations on high performance
+machines. The library is written in C and is callable from either C or
+Fortran. The library routines will perform an LU decomposition with
+partial pivoting and triangular system solves through forward and back
+substitution. The LU factorization routines can handle non-square
+matrices but the triangular solves are performed only for square
+matrices. The matrix columns may be preordered (before factorization)
+either through library or user supplied routines. This preordering for
+sparsity is completely separate from the factorization. Working
+precision iterative refinement subroutines are provided for improved
+backward stability. Routines are also provided to equilibrate the
+system, estimate the condition number, calculate the relative backward
+error, and estimate error bounds for the refined solutions.
-SuperLU is a general purpose library for the direct solution of large,
-sparse, nonsymmetric systems of linear equations on high performance
-machines. The library is written in C and is callable from either C or
-Fortran. The library routines will perform an LU decomposition with
-partial pivoting and triangular system solves through forward and back
-substitution. The LU factorization routines can handle non-square matrices
-but the triangular solves are performed only for square matrices. The
-matrix columns may be preordered (before factorization) either through
-library or user supplied routines. This preordering for sparsity is
-completely separate from the factorization. Working precision iterative
-refinement subroutines are provided for improved backward stability.
-Routines are also provided to equilibrate the system, estimate the
-condition number, calculate the relative backward error, and estimate
-error bounds for the refined solutions.
-
-WWW: http://crd.lbl.gov/~xiaoye/SuperLU/
-
-Developers: Sherry Li
- Jim Demmel
- John Gilbert
-NOTE: This library has to be linked with BLAS or a compatible library.
+WWW: http://crd-legacy.lbl.gov/~xiaoye/SuperLU/
diff --git a/math/superlu/pkg-plist b/math/superlu/pkg-plist
index 1075a804fa0e..ca855b74812a 100644
--- a/math/superlu/pkg-plist
+++ b/math/superlu/pkg-plist
@@ -1,5 +1,3 @@
-include/superlu/colamd.h
-include/superlu/html_mainpage.h
include/superlu/slu_Cnames.h
include/superlu/slu_cdefs.h
include/superlu/slu_dcomplex.h
@@ -10,10 +8,6 @@ include/superlu/slu_util.h
include/superlu/slu_zdefs.h
include/superlu/superlu_enum_consts.h
include/superlu/supermatrix.h
-lib/libsuperlu.a
lib/libsuperlu.so
lib/libsuperlu.so.%%P_VER%%
lib/libsuperlu_%%P_VERSION%%.so
-%%PORTDOCS%%%%DOCSDIR%%/SLU_general.ps.gz
-%%PORTDOCS%%%%DOCSDIR%%/simax95.ps.gz
-%%PORTDOCS%%%%DOCSDIR%%/superlu_ug.pdf