summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--math/Makefile1
-rw-r--r--math/slepc/Makefile44
-rw-r--r--math/slepc/distinfo3
-rw-r--r--math/slepc/files/patch-config_install.py19
-rw-r--r--math/slepc/files/patch-makefile11
-rw-r--r--math/slepc/pkg-descr9
-rw-r--r--math/slepc/pkg-plist95
7 files changed, 182 insertions, 0 deletions
diff --git a/math/Makefile b/math/Makefile
index 6ae92fba6b9f..4c9070edefc2 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -777,6 +777,7 @@
SUBDIR += sfst
SUBDIR += simd-viterbi
SUBDIR += slatec
+ SUBDIR += slepc
SUBDIR += slgrace
SUBDIR += snns
SUBDIR += solitaire
diff --git a/math/slepc/Makefile b/math/slepc/Makefile
new file mode 100644
index 000000000000..7127f8cbbde4
--- /dev/null
+++ b/math/slepc/Makefile
@@ -0,0 +1,44 @@
+# $FreeBSD$
+
+PORTNAME= slepc
+DISTVERSION= 3.9.1
+CATEGORIES= math devel
+MASTER_SITES= http://slepc.upv.es/download/distrib/
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Scalable Library for Eigenvalue Problem Computations
+
+LICENSE= BSD2CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+LIB_DEPENDS= libblas.so:math/blas \
+ liblapack.so:math/lapack \
+ libmpich.so:net/mpich2 \
+ libpetsc.so:science/PETSc
+
+USES= gmake fortran python shebangfix
+SHEBANG_FILES= configure
+MAKEFILE= makefile
+MAKE_ENV= PETSC_DIR=${LOCALBASE} PETSC_ARCH="" SLEPC_DIR=${WRKSRC} FREEBSD_STAGEDIR=${STAGEDIR} PYTHON=${PYTHON_CMD}
+USE_XORG= x11 # not really needed, but is inherited from the PETSc setup
+USE_LDCONFIG= yes
+
+OS_VER= ${OPSYS:tl}${OSVERSION:C/(.*)...../\\1/}
+
+BINARY_ALIAS= python=${PYTHON_CMD}
+
+OPTIONS_DEFINE= EXAMPLES
+
+PORTEXAMPLES= *
+
+do-configure:
+ @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ./configure
+ @${REINPLACE_CMD} -e 's|^SLEPC_DESTDIR *=.*|SLEPC_DESTDIR = ${PREFIX}|' \
+ ${WRKSRC}/installed-arch-${OS_VER}-c-debug/lib/slepc/conf/slepcvariables # otherwise it fills a wrong value for some reason
+
+post-install:
+ @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libslepc.so.${PORTVERSION}
+ @${REINPLACE_CMD} -i '' -e 's|#!/usr/bin/env python|#!${PYTHON_CMD}|' \
+ ${STAGEDIR}${PREFIX}/lib/slepc/conf/reconfigure-installed-arch-${OS_VER}-c-debug.py
+
+.include <bsd.port.mk>
diff --git a/math/slepc/distinfo b/math/slepc/distinfo
new file mode 100644
index 000000000000..8625dba98b86
--- /dev/null
+++ b/math/slepc/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1526160243
+SHA256 (slepc-3.9.1.tar.gz) = e174ea7c127d9161eef976b0288f0c56d443a58d6ab2dc8af1e8bd66f156ce17
+SIZE (slepc-3.9.1.tar.gz) = 4477846
diff --git a/math/slepc/files/patch-config_install.py b/math/slepc/files/patch-config_install.py
new file mode 100644
index 000000000000..374309fdd9b0
--- /dev/null
+++ b/math/slepc/files/patch-config_install.py
@@ -0,0 +1,19 @@
+--- config/install.py.orig 2018-06-25 08:07:05 UTC
++++ config/install.py
+@@ -295,11 +295,11 @@ for dir in dirs:
+
+ def installShare(self):
+ self.copies.extend(self.copytree(self.rootShareDir, self.destShareDir))
+- if os.path.exists(os.path.join(self.destShareDir,'slepc','examples')):
+- shutil.rmtree(os.path.join(self.destShareDir,'slepc','examples'))
+- os.mkdir(os.path.join(self.destShareDir,'slepc','examples'))
+- self.copyExamples(self.rootDir,os.path.join(self.destShareDir,'slepc','examples'))
+- self.fixExamplesMakefile(os.path.join(self.destShareDir,'slepc','examples','makefile'))
++ if os.path.exists(os.path.join(self.destShareDir,'examples','slepc')):
++ shutil.rmtree(os.path.join(self.destShareDir,'examples','slepc'))
++ os.mkdir(os.path.join(self.destShareDir,'examples','slepc'))
++ self.copyExamples(self.rootDir,os.path.join(self.destShareDir,'examples','slepc'))
++ self.fixExamplesMakefile(os.path.join(self.destShareDir,'examples','slepc','makefile'))
+ return
+
+ def copyLib(self, src, dst):
diff --git a/math/slepc/files/patch-makefile b/math/slepc/files/patch-makefile
new file mode 100644
index 000000000000..645efb523d7c
--- /dev/null
+++ b/math/slepc/files/patch-makefile
@@ -0,0 +1,11 @@
+--- makefile.orig 2018-05-02 15:18:14 UTC
++++ makefile
+@@ -254,7 +254,7 @@ chk_slepc_dir:
+ # Install relevant files in the prefix directory
+ #
+ install:
+- -@${PYTHON} ./config/install.py ${SLEPC_DIR} ${PETSC_DIR} ${SLEPC_DESTDIR} ${PETSC_ARCH} ${AR_LIB_SUFFIX} ${RANLIB};
++ -@${PYTHON} ./config/install.py ${SLEPC_DIR} ${PETSC_DIR} ${FREEBSD_STAGEDIR}${SLEPC_DESTDIR} ${PETSC_ARCH} ${AR_LIB_SUFFIX} ${RANLIB};
+
+ # ------------------------------------------------------------------
+ #
diff --git a/math/slepc/pkg-descr b/math/slepc/pkg-descr
new file mode 100644
index 000000000000..511dd2c5d48e
--- /dev/null
+++ b/math/slepc/pkg-descr
@@ -0,0 +1,9 @@
+SLEPc is a software library for the solution of large scale sparse eigenvalue
+problems on parallel computers. It is an extension of PETSc and can be used for
+linear eigenvalue problems in either standard or generalized form, with real or
+complex arithmetic. It can also be used for computing a partial SVD of a large,
+sparse, rectangular matrix, and to solve nonlinear eigenvalue problems
+(polynomial or general). Additionally, SLEPc provides solvers for the
+computation of the action of a matrix function on a vector.
+
+WWW: http://slepc.upv.es/
diff --git a/math/slepc/pkg-plist b/math/slepc/pkg-plist
new file mode 100644
index 000000000000..bdfe8b7c5f41
--- /dev/null
+++ b/math/slepc/pkg-plist
@@ -0,0 +1,95 @@
+include/slepc.h
+include/slepc/finclude/slepc.h
+include/slepc/finclude/slepcbv.h
+include/slepc/finclude/slepcds.h
+include/slepc/finclude/slepceps.h
+include/slepc/finclude/slepcfn.h
+include/slepc/finclude/slepclme.h
+include/slepc/finclude/slepcmfn.h
+include/slepc/finclude/slepcnep.h
+include/slepc/finclude/slepcpep.h
+include/slepc/finclude/slepcrg.h
+include/slepc/finclude/slepcst.h
+include/slepc/finclude/slepcsvd.h
+include/slepc/finclude/slepcsys.h
+include/slepc/private/bvimpl.h
+include/slepc/private/dsimpl.h
+include/slepc/private/epsimpl.h
+include/slepc/private/fnimpl.h
+include/slepc/private/lmeimpl.h
+include/slepc/private/mfnimpl.h
+include/slepc/private/nepimpl.h
+include/slepc/private/pepimpl.h
+include/slepc/private/rgimpl.h
+include/slepc/private/slepcimpl.h
+include/slepc/private/stimpl.h
+include/slepc/private/svdimpl.h
+include/slepc/private/vecimplslepc.h
+include/slepcblaslapack.h
+include/slepcblaslapack_mangle.h
+include/slepcblaslapack_stdcall.h
+include/slepcbv.h
+include/slepcbv.mod
+include/slepcbvdef.mod
+include/slepcconf.h
+include/slepcds.h
+include/slepcds.mod
+include/slepcdsdef.mod
+include/slepceps.h
+include/slepceps.mod
+include/slepcepsdef.mod
+include/slepcfn.h
+include/slepcfn.mod
+include/slepcfndef.mod
+include/slepclme.h
+include/slepclme.mod
+include/slepclmedef.mod
+include/slepcmat.h
+include/slepcmath.h
+include/slepcmfn.h
+include/slepcmfn.mod
+include/slepcmfndef.mod
+include/slepcnep.h
+include/slepcnep.mod
+include/slepcnepdef.mod
+include/slepcpep.h
+include/slepcpep.mod
+include/slepcpepdef.mod
+include/slepcrg.h
+include/slepcrg.mod
+include/slepcrgdef.mod
+include/slepcrgtypes.h
+include/slepcsc.h
+include/slepcst.h
+include/slepcst.mod
+include/slepcstdef.mod
+include/slepcsvd.h
+include/slepcsvd.mod
+include/slepcsvddef.mod
+include/slepcsys.h
+include/slepcsys.mod
+include/slepcsysdef.mod
+include/slepcvec.h
+include/slepcversion.h
+lib/libslepc.so
+lib/libslepc.so.3.9
+lib/libslepc.so.3.9.1
+lib/slepc/conf/SLEPcBuildInternal.cmake
+lib/slepc/conf/modules/slepc/3.9.1-installed-arch-%%PYTHON_PLATFORM%%-c-debug
+lib/slepc/conf/reconfigure-installed-arch-%%PYTHON_PLATFORM%%-c-debug.py
+lib/slepc/conf/slepc_common
+lib/slepc/conf/slepc_rules
+lib/slepc/conf/slepc_test
+lib/slepc/conf/slepc_variables
+lib/slepc/conf/slepcrules
+lib/slepc/conf/slepcvariables
+lib/slepc/conf/slepcvariables.bak
+lib/slepc/conf/uninstall.py
+libdata/pkgconfig/SLEPc.pc
+%%DATADIR%%/datafiles/matrices/bfw62a.petsc
+%%DATADIR%%/datafiles/matrices/bfw62b.petsc
+%%DATADIR%%/datafiles/matrices/rdb200.petsc
+%%DATADIR%%/datafiles/matrices/readme
+%%DATADIR%%/datafiles/matrices/speaker107c.petsc
+%%DATADIR%%/datafiles/matrices/speaker107k.petsc
+%%DATADIR%%/datafiles/matrices/speaker107m.petsc