Merge pull request #1206 from davydden/pkg/slepc_371_fix

slepc: fix install_name for binaries on macOS for 3.7.1
This commit is contained in:
Todd Gamblin 2016-07-11 09:14:53 -07:00 committed by GitHub
commit 691e628726
2 changed files with 42 additions and 5 deletions

View File

@ -0,0 +1,32 @@
From 7489a3f3d569e2fbf5513ac9dcd769017d9f7eb7 Mon Sep 17 00:00:00 2001
From: Lisandro Dalcin <dalcinl@gmail.com>
Date: Thu, 2 Jun 2016 21:57:38 +0300
Subject: [PATCH] OS X: Fix library path in invocation of install_name_tool
---
config/install.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/config/install.py b/config/install.py
index 09acd03..6ce98ae 100755
--- a/config/install.py
+++ b/config/install.py
@@ -25,6 +25,7 @@ class Installer:
def setupDirectories(self):
self.installDir = self.destDir
+ self.archDir = os.path.join(self.rootDir, self.arch)
self.rootIncludeDir = os.path.join(self.rootDir, 'include')
self.archIncludeDir = os.path.join(self.rootDir, self.arch, 'include')
self.rootConfDir = os.path.join(self.rootDir, 'lib','slepc','conf')
@@ -220,7 +221,7 @@ for dir in dirs:
if os.path.splitext(dst)[1] == '.dylib' and os.path.isfile('/usr/bin/install_name_tool'):
(result, output) = commands.getstatusoutput('otool -D '+src)
oldname = output[output.find("\n")+1:]
- installName = oldname.replace(self.destDir, self.installDir)
+ installName = oldname.replace(self.archDir, self.installDir)
(result, output) = commands.getstatusoutput('/usr/bin/install_name_tool -id ' + installName + ' ' + dst)
# preserve the original timestamps - so that the .a vs .so time order is preserved
shutil.copystat(src,dst)
--
2.7.4.1.g5468f9e

View File

@ -28,7 +28,7 @@
class Slepc(Package):
"""
Scalable Library for Eigenvalue Computations.
Scalable Library for Eigenvalue Problem Computations.
"""
homepage = "http://www.grycap.upv.es/slepc"
@ -45,9 +45,13 @@ class Slepc(Package):
depends_on('arpack-ng~mpi', when='+arpack^petsc~mpi')
depends_on('arpack-ng+mpi', when='+arpack^petsc+mpi')
patch('install_name_371.patch', when='@3.7.1')
def install(self, spec, prefix):
# set SLEPC_DIR for installation
os.environ['SLEPC_DIR'] = self.stage.source_path
# Note that one should set the current (temporary) directory instead
# its symlink in spack/stage/ !
os.environ['SLEPC_DIR'] = os.getcwd()
options = []
@ -67,9 +71,10 @@ def install(self, spec, prefix):
configure('--prefix=%s' % prefix, *options)
make('MAKE_NP=%s' % make_jobs, parallel=False)
# FIXME:
# make('test')
make('install')
if self.run_tests:
make('test', parallel=False)
make('install', parallel=False)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
# set up SLEPC_DIR for everyone using SLEPc package