summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Paul Pelteret <jppelteret@gmail.com>2016-05-02 11:01:14 +0200
committerJean-Paul Pelteret <jppelteret@gmail.com>2016-05-02 11:01:14 +0200
commit5ae727668235f8a226cdac9e714d9daa004af64c (patch)
tree5081069a76f5bce521f96aefb9703c71a8551fb4
parent631e235ef3907916335f965fa179b94455295f31 (diff)
downloadspack-5ae727668235f8a226cdac9e714d9daa004af64c.tar.gz
spack-5ae727668235f8a226cdac9e714d9daa004af64c.tar.bz2
spack-5ae727668235f8a226cdac9e714d9daa004af64c.tar.xz
spack-5ae727668235f8a226cdac9e714d9daa004af64c.zip
Fixes to installation with OpenMP (tested) and execution of test-suite
-rw-r--r--var/spack/repos/builtin/packages/adol-c/openmp_exam.patch13
-rw-r--r--var/spack/repos/builtin/packages/adol-c/package.py33
2 files changed, 35 insertions, 11 deletions
diff --git a/var/spack/repos/builtin/packages/adol-c/openmp_exam.patch b/var/spack/repos/builtin/packages/adol-c/openmp_exam.patch
new file mode 100644
index 0000000000..8e21c72d92
--- /dev/null
+++ b/var/spack/repos/builtin/packages/adol-c/openmp_exam.patch
@@ -0,0 +1,13 @@
+diff --git a/ADOL-C/examples/additional_examples/openmp_exam/liborpar.cpp b/ADOL-C/examples/additional_examples/openmp_exam/liborpar.cpp
+index fc6fc28..14103d2 100644
+--- a/ADOL-C/examples/additional_examples/openmp_exam/liborpar.cpp
++++ b/ADOL-C/examples/additional_examples/openmp_exam/liborpar.cpp
+@@ -27,7 +27,7 @@ using namespace std;
+ #include <ctime>
+ #include <cmath>
+
+-#include "adolc.h"
++#include <adolc/adolc.h>
+
+ #ifdef _OPENMP
+ #include <omp.h>
diff --git a/var/spack/repos/builtin/packages/adol-c/package.py b/var/spack/repos/builtin/packages/adol-c/package.py
index a65ec7dd7c..70933542ca 100644
--- a/var/spack/repos/builtin/packages/adol-c/package.py
+++ b/var/spack/repos/builtin/packages/adol-c/package.py
@@ -13,6 +13,8 @@ class AdolC(Package):
variant('openmp', default=False, description='Enable OpenMP support')
variant('sparse', default=False, description='Enable sparse drivers')
variant('tests', default=True, description='Build all included examples as a test case')
+
+ patch('openmp_exam.patch')
def install(self, spec, prefix):
make_args = ['--prefix=%s' % prefix]
@@ -21,9 +23,12 @@ class AdolC(Package):
# --with-cxxflags=FLAGS use CXXFLAGS=FLAGS (default: -O3 -Wall)
if '+openmp' in spec:
- make_args.extend([
- '--with-openmp-flag=-fopenmp' # FIXME: Is this required? -I <path to omp.h> -L <LLVM OpenMP library path>
- ])
+ if spec.satisfies('%gcc'):
+ make_args.extend([
+ '--with-openmp-flag=-fopenmp' # FIXME: Is this required? -I <path to omp.h> -L <LLVM OpenMP library path>
+ ])
+ else:
+ raise InstallError("OpenMP flags for compilers other than GCC are not implemented.")
if '+sparse' in spec:
make_args.extend([
@@ -48,22 +53,28 @@ class AdolC(Package):
# Copy the config.h file, as some packages might require it
source_directory = self.stage.source_path
- config_h = join_path(source_directory,'ADOL-C/src/config.h')
+ config_h = join_path(source_directory,'ADOL-C','src','config.h')
install(config_h, join_path(prefix.include,'adolc'))
# Install documentation to {prefix}/share
if '+doc' in spec:
- install_tree('ADOL-C/doc',join_path(prefix.share,'doc'))
+ install_tree(join_path('ADOL-C','doc'),
+ join_path(prefix.share,'doc'))
# Install examples to {prefix}/share
if '+tests' in spec:
- install_tree('ADOL-C/examples',join_path(prefix.share,'examples'))
+ install_tree(join_path('ADOL-C','examples'),
+ join_path(prefix.share,'examples'))
# Run some examples that don't require user input
# TODO: Check that bundled examples produce the correct results
- with working_dir(join_path(source_directory,'ADOL-C/examples')):
- Executable('tapeless_scalar')
- Executable('tapeless_vector')
+ with working_dir(join_path(source_directory,'ADOL-C','examples')):
+ Executable('./tapeless_scalar')()
+ Executable('./tapeless_vector')()
- with working_dir(join_path(source_directory,'ADOL-C/examples/additional_examples')):
- Executable('checkpointing/checkpointing')
+ with working_dir(join_path(source_directory,'ADOL-C','examples','additional_examples')):
+ Executable('./checkpointing/checkpointing')()
+
+ if '+openmp' in spec:
+ with working_dir(join_path(source_directory,'ADOL-C','examples','additional_examples')):
+ Executable('./checkpointing/checkpointing')()