diff options
Diffstat (limited to 'math/superlu')
-rw-r--r-- | math/superlu/Makefile | 131 | ||||
-rw-r--r-- | math/superlu/distinfo | 10 | ||||
-rw-r--r-- | math/superlu/files/patch-SRC+sp_coletree.c | 12 | ||||
-rw-r--r-- | math/superlu/files/patch-SRC-Makefile | 67 | ||||
-rw-r--r-- | math/superlu/files/patch-TESTING_Makefile | 38 | ||||
-rw-r--r-- | math/superlu/files/patch-make.inc | 47 | ||||
-rw-r--r-- | math/superlu/pkg-descr | 38 | ||||
-rw-r--r-- | math/superlu/pkg-plist | 6 |
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 |