summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorGregory L. Lee <lee218@llnl.gov>2016-05-13 15:16:07 -0700
committerGregory L. Lee <lee218@llnl.gov>2016-05-13 15:16:07 -0700
commite9b71872a8d590d342e4cfcc78ff9855cff7fc24 (patch)
tree35a3450db7327ed57a97e998d4116af11cb18952 /var
parentb8a91db08948440100a2d4d6a0cad01f1eb9b33a (diff)
downloadspack-e9b71872a8d590d342e4cfcc78ff9855cff7fc24.tar.gz
spack-e9b71872a8d590d342e4cfcc78ff9855cff7fc24.tar.bz2
spack-e9b71872a8d590d342e4cfcc78ff9855cff7fc24.tar.xz
spack-e9b71872a8d590d342e4cfcc78ff9855cff7fc24.zip
addressed PR#946 comments from @adamjstewart
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/daal/package.py2
-rw-r--r--var/spack/repos/builtin/packages/intel-parallel-studio/package.py (renamed from var/spack/repos/builtin/packages/intel-parallelstudio/package.py)36
-rw-r--r--var/spack/repos/builtin/packages/intel/package.py17
3 files changed, 19 insertions, 36 deletions
diff --git a/var/spack/repos/builtin/packages/daal/package.py b/var/spack/repos/builtin/packages/daal/package.py
index 16ae048a4c..9fdbd7bf5e 100644
--- a/var/spack/repos/builtin/packages/daal/package.py
+++ b/var/spack/repos/builtin/packages/daal/package.py
@@ -4,7 +4,7 @@ import sys, os, re
from spack.pkg.builtin.intel import IntelInstaller
class Daal(IntelInstaller):
- """Intel Data Analytics Accesleration Library.
+ """Intel Data Analytics Acceleration Library.
Note: You will have to add the download file to a
mirror so that Spack can find it. For instructions on how to set up a
diff --git a/var/spack/repos/builtin/packages/intel-parallelstudio/package.py b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
index 127a89654d..3a44cb32a3 100644
--- a/var/spack/repos/builtin/packages/intel-parallelstudio/package.py
+++ b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
@@ -1,9 +1,9 @@
from spack import *
import sys, os, re
-from spack.pkg.builtin.intel import IntelInstaller, filter_pick
+from spack.pkg.builtin.intel import IntelInstaller, filter_pick, get_all_components
-class IntelParallelstudio(IntelInstaller):
+class IntelParallelStudio(IntelInstaller):
"""Intel Parallel Studio.
Note: You will have to add the download file to a
@@ -41,12 +41,6 @@ class IntelParallelstudio(IntelInstaller):
def install(self, spec, prefix):
- # remove the installation DB, otherwise it will try to install into location of other Intel builds
- try:
- os.remove(os.path.join(os.environ["HOME"], "intel", "intel_sdp_products.db"))
- except OSError:
- pass # if the file does not exist
-
base_components = "ALL" # when in doubt, install everything
mpi_components = ""
mkl_components = ""
@@ -57,19 +51,13 @@ class IntelParallelstudio(IntelInstaller):
if spec.satisfies('+all'):
base_components = "ALL"
else:
- with open("pset/mediaconfig.xml", "r") as f:
- lines = f.readlines()
- all_components = []
- for line in lines:
- if line.find('<Abbr>') != -1:
- component = line[line.find('<Abbr>') + 6:line.find('</Abbr>')]
- all_components.append(component)
- base_components = filter_pick(all_components, re.compile('(comp|openmp|intel-tbb|icc|ifort|psxe|icsxe-pset)').search)
- mpi_components = filter_pick(all_components, re.compile('(icsxe|imb|mpi|itac|intel-tc|clck)').search)
- mkl_components = filter_pick(all_components, re.compile('(mkl)').search)
- daal_components = filter_pick(all_components, re.compile('(daal)').search)
- ipp_components = filter_pick(all_components, re.compile('(ipp)').search)
- tool_components = filter_pick(all_components, re.compile('(gdb|vtune|inspector|advisor)').search)
+ all_components = get_all_components()
+ base_components = filter_pick(all_components, re.compile('(comp|openmp|intel-tbb|icc|ifort|psxe|icsxe-pset)').search)
+ mpi_components = filter_pick(all_components, re.compile('(icsxe|imb|mpi|itac|intel-tc|clck)').search)
+ mkl_components = filter_pick(all_components, re.compile('(mkl)').search)
+ daal_components = filter_pick(all_components, re.compile('(daal)').search)
+ ipp_components = filter_pick(all_components, re.compile('(ipp)').search)
+ tool_components = filter_pick(all_components, re.compile('(gdb|vtune|inspector|advisor)').search)
components = base_components
if not spec.satisfies('+all'):
@@ -87,10 +75,10 @@ class IntelParallelstudio(IntelInstaller):
self.intel_components = ';'.join(components)
IntelInstaller.install(self, spec, prefix)
- absbindir = os.path.split(os.path.realpath(os.path.join(self.prefix.bin, "icc")))[0]
- abslibdir = os.path.split(os.path.realpath(os.path.join(self.prefix.lib, "intel64", "libimf.a")))[0]
+ absbindir = os.path.dirname(os.path.realpath(os.path.join(self.prefix.bin, "icc")))
+ abslibdir = os.path.dirname(os.path.realpath(os.path.join(self.prefix.lib, "intel64", "libimf.a")))
- # symlink or copy?
+ relbindir = absbindir.strip(os.path.commonprefix([self.prefix, absbindir]))
os.symlink(self.global_license_file, os.path.join(absbindir, "license.lic"))
if spec.satisfies('+tools') and (spec.satisfies('@cluster') or spec.satisfies('@professional')):
os.mkdir(os.path.join(self.prefix, "inspector_xe/licenses"))
diff --git a/var/spack/repos/builtin/packages/intel/package.py b/var/spack/repos/builtin/packages/intel/package.py
index e51cc773af..a547ab56db 100644
--- a/var/spack/repos/builtin/packages/intel/package.py
+++ b/var/spack/repos/builtin/packages/intel/package.py
@@ -2,12 +2,15 @@ from spack import *
import sys, os, re
def filter_pick(input_list, regex_filter):
+ """Returns the items in input_list that are found in the regex_filter"""
return [l for l in input_list for m in (regex_filter(l),) if m]
def unfilter_pick(input_list, regex_filter):
+ """Returns the items in input_list that are not found in the regex_filter"""
return [l for l in input_list for m in (regex_filter(l),) if not m]
def get_all_components():
+ """Returns a list of all the components associated with the downloaded Intel package"""
all_components = []
with open("pset/mediaconfig.xml", "r") as f:
lines = f.readlines()
@@ -39,10 +42,8 @@ class IntelInstaller(Package):
def install(self, spec, prefix):
# remove the installation DB, otherwise it will try to install into location of other Intel builds
- try:
+ if os.path.exists(os.path.join(os.environ["HOME"], "intel", "intel_sdp_products.db")):
os.remove(os.path.join(os.environ["HOME"], "intel", "intel_sdp_products.db"))
- except OSError:
- pass # if the file does not exist
if not hasattr(self, "intel_prefix"):
self.intel_prefix = self.prefix
@@ -90,14 +91,8 @@ class Intel(IntelInstaller):
pass # if the file does not exist
components = []
- with open("pset/mediaconfig.xml", "r") as f:
- lines = f.readlines()
- all_components = []
- for line in lines:
- if line.find('<Abbr>') != -1:
- component = line[line.find('<Abbr>') + 6:line.find('</Abbr>')]
- all_components.append(component)
- components = filter_pick(all_components, re.compile('(comp|openmp|intel-tbb|icc|ifort|psxe|icsxe-pset)').search)
+ all_components = get_all_components()
+ components = filter_pick(all_components, re.compile('(comp|openmp|intel-tbb|icc|ifort|psxe|icsxe-pset)').search)
self.intel_components = ';'.join(components)
IntelInstaller.install(self, spec, prefix)