Merge pull request #1175 from davydden/pkg/arpack-3.4.0
Pkg/arpack 3.4.0
This commit is contained in:
commit
6bb31a9a4c
@ -0,0 +1,24 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 607d221..50426c3 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -389,3 +389,19 @@ target_link_libraries(bug_1323 arpack ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
|
||||||
|
add_test(bug_1323 Tests/bug_1323)
|
||||||
|
|
||||||
|
add_dependencies(check dnsimp_test bug_1315_single bug_1315_double bug_1323)
|
||||||
|
+
|
||||||
|
+############################
|
||||||
|
+# install
|
||||||
|
+############################
|
||||||
|
+# 'make install' to the correct location
|
||||||
|
+install(TARGETS arpack
|
||||||
|
+ ARCHIVE DESTINATION lib
|
||||||
|
+ LIBRARY DESTINATION lib
|
||||||
|
+ RUNTIME DESTINATION bin)
|
||||||
|
+
|
||||||
|
+if (MPI)
|
||||||
|
+ install(TARGETS parpack
|
||||||
|
+ ARCHIVE DESTINATION lib
|
||||||
|
+ LIBRARY DESTINATION lib
|
||||||
|
+ RUNTIME DESTINATION bin)
|
||||||
|
+endif ()
|
@ -27,7 +27,8 @@
|
|||||||
|
|
||||||
class ArpackNg(Package):
|
class ArpackNg(Package):
|
||||||
"""
|
"""
|
||||||
ARPACK-NG is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.
|
ARPACK-NG is a collection of Fortran77 subroutines designed to solve large
|
||||||
|
scale eigenvalue problems.
|
||||||
|
|
||||||
Important Features:
|
Important Features:
|
||||||
|
|
||||||
@ -38,43 +39,76 @@ class ArpackNg(Package):
|
|||||||
Generalized Problems.
|
Generalized Problems.
|
||||||
* Routines for Banded Matrices - Standard or Generalized Problems.
|
* Routines for Banded Matrices - Standard or Generalized Problems.
|
||||||
* Routines for The Singular Value Decomposition.
|
* Routines for The Singular Value Decomposition.
|
||||||
* Example driver routines that may be used as templates to implement numerous
|
* Example driver routines that may be used as templates to implement
|
||||||
Shift-Invert strategies for all problem types, data types and precision.
|
numerous Shift-Invert strategies for all problem types, data types and
|
||||||
|
precision.
|
||||||
|
|
||||||
This project is a joint project between Debian, Octave and Scilab in order to
|
This project is a joint project between Debian, Octave and Scilab in order
|
||||||
provide a common and maintained version of arpack.
|
to provide a common and maintained version of arpack.
|
||||||
|
|
||||||
Indeed, no single release has been published by Rice university for the last
|
Indeed, no single release has been published by Rice university for the
|
||||||
few years and since many software (Octave, Scilab, R, Matlab...) forked it and
|
last few years and since many software (Octave, Scilab, R, Matlab...)
|
||||||
implemented their own modifications, arpack-ng aims to tackle this by providing
|
forked it and implemented their own modifications, arpack-ng aims to tackle
|
||||||
a common repository and maintained versions.
|
this by providing a common repository and maintained versions.
|
||||||
|
|
||||||
arpack-ng is replacing arpack almost everywhere.
|
arpack-ng is replacing arpack almost everywhere.
|
||||||
"""
|
"""
|
||||||
homepage = 'https://github.com/opencollab/arpack-ng'
|
homepage = 'https://github.com/opencollab/arpack-ng'
|
||||||
url = 'https://github.com/opencollab/arpack-ng/archive/3.3.0.tar.gz'
|
url = 'https://github.com/opencollab/arpack-ng/archive/3.3.0.tar.gz'
|
||||||
|
|
||||||
|
version('3.4.0', 'ae9ca13f2143a7ea280cb0e2fd4bfae4')
|
||||||
version('3.3.0', 'ed3648a23f0a868a43ef44c97a21bad5')
|
version('3.3.0', 'ed3648a23f0a868a43ef44c97a21bad5')
|
||||||
|
|
||||||
variant('shared', default=True, description='Enables the build of shared libraries')
|
variant('shared', default=True, description='Enables the build of shared libraries')
|
||||||
variant('mpi', default=False, description='Activates MPI support')
|
variant('mpi', default=False, description='Activates MPI support')
|
||||||
|
|
||||||
# The function pdlamch10 does not set the return variable. This is fixed upstream
|
# The function pdlamch10 does not set the return variable.
|
||||||
|
# This is fixed upstream
|
||||||
# see https://github.com/opencollab/arpack-ng/issues/34
|
# see https://github.com/opencollab/arpack-ng/issues/34
|
||||||
patch('pdlamch10.patch', when='@3.3:')
|
patch('pdlamch10.patch', when='@3.3.0')
|
||||||
|
|
||||||
|
patch('make_install.patch', when='@3.4.0')
|
||||||
|
patch('parpack_cmake.patch', when='@3.4.0')
|
||||||
|
|
||||||
depends_on('blas')
|
depends_on('blas')
|
||||||
depends_on('lapack')
|
depends_on('lapack')
|
||||||
depends_on('automake')
|
depends_on('automake', when='@3.3.0')
|
||||||
depends_on('autoconf')
|
depends_on('autoconf', when='@3.3.0')
|
||||||
depends_on('libtool@2.4.2:')
|
depends_on('libtool@2.4.2:', when='@3.3.0')
|
||||||
|
depends_on('cmake@2.8.6:', when='@3.4.0:')
|
||||||
|
|
||||||
depends_on('mpi', when='+mpi')
|
depends_on('mpi', when='+mpi')
|
||||||
|
|
||||||
|
@when('@3.4.0:')
|
||||||
|
def install(self, spec, prefix):
|
||||||
|
|
||||||
|
options = ['-DEXAMPLES=ON']
|
||||||
|
options.extend(std_cmake_args)
|
||||||
|
options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix)
|
||||||
|
|
||||||
|
# TODO:
|
||||||
|
# Arpack calls directly find_package(BLAS REQUIRED) and
|
||||||
|
# find_package(LAPACK REQUIRED). Make sure correct Blas/Lapack are
|
||||||
|
# picked up.
|
||||||
|
|
||||||
|
if '+mpi' in spec:
|
||||||
|
options.append('-DMPI=ON')
|
||||||
|
|
||||||
|
# TODO: -DINTERFACE64=ON
|
||||||
|
|
||||||
|
if '+shared' in spec:
|
||||||
|
options.append('-DBUILD_SHARED_LIBS=ON')
|
||||||
|
|
||||||
|
cmake('.', *options)
|
||||||
|
make()
|
||||||
|
# TODO: make test does not work
|
||||||
|
# make('test')
|
||||||
|
|
||||||
|
make('install')
|
||||||
|
|
||||||
|
@when('@3.3.0')
|
||||||
def install(self, spec, prefix):
|
def install(self, spec, prefix):
|
||||||
# Apparently autotools are not bootstrapped
|
# Apparently autotools are not bootstrapped
|
||||||
# TODO: switch to use the CMake build in the next version
|
|
||||||
# rather than bootstrapping.
|
|
||||||
which('libtoolize')()
|
which('libtoolize')()
|
||||||
bootstrap = Executable('./bootstrap')
|
bootstrap = Executable('./bootstrap')
|
||||||
|
|
||||||
@ -83,7 +117,7 @@ def install(self, spec, prefix):
|
|||||||
if '+mpi' in spec:
|
if '+mpi' in spec:
|
||||||
options.extend([
|
options.extend([
|
||||||
'--enable-mpi',
|
'--enable-mpi',
|
||||||
'F77=mpif77' #FIXME: avoid hardcoding MPI wrapper names
|
'F77=%s' % spec['mpi'].mpif77
|
||||||
])
|
])
|
||||||
|
|
||||||
if '~shared' in spec:
|
if '~shared' in spec:
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 607d221..345b7fc 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -113,11 +113,12 @@ set_target_properties(arpack PROPERTIES OUTPUT_NAME arpack${LIBSUFFIX})
|
||||||
|
|
||||||
|
if (MPI)
|
||||||
|
# add_library(parpack SHARED
|
||||||
|
- add_library(parpack
|
||||||
|
+ add_library(parpack
|
||||||
|
${parpacksrc_STAT_SRCS}
|
||||||
|
${parpackutil_STAT_SRCS})
|
||||||
|
|
||||||
|
target_link_libraries(parpack ${MPI_Fortran_LIBRARIES})
|
||||||
|
+ target_link_libraries(parpack arpack)
|
||||||
|
set_target_properties(parpack PROPERTIES OUTPUT_NAME parpack${LIBSUFFIX})
|
||||||
|
endif ()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user