summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/openssl/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/openssl/package.py')
-rw-r--r--var/spack/repos/builtin/packages/openssl/package.py54
1 files changed, 28 insertions, 26 deletions
diff --git a/var/spack/repos/builtin/packages/openssl/package.py b/var/spack/repos/builtin/packages/openssl/package.py
index f57a65271a..94c1dccf4c 100644
--- a/var/spack/repos/builtin/packages/openssl/package.py
+++ b/var/spack/repos/builtin/packages/openssl/package.py
@@ -91,7 +91,8 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package
'package, symlink system certificates, or none'))
variant('docs', default=False, description='Install docs and manpages')
variant('shared', default=False, description="Build shared library version")
- variant('dynamic', default=False, description="Link with MSVC's dynamic runtime library")
+ with when('platform=windows'):
+ variant('dynamic', default=False, description="Link with MSVC's dynamic runtime library")
depends_on('zlib')
depends_on('perl@5.14.0:', type=('build', 'test'))
@@ -144,25 +145,35 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package
if spec.satisfies('~shared'):
shared_flag = 'no-shared'
+ def configure_args():
+ base_args = ['--prefix=%s' % prefix,
+ '--openssldir=%s'
+ % join_path(prefix, 'etc', 'openssl')]
+ if spec.satisfies('platform=windows'):
+ base_args.extend([
+ 'CC=%s' % os.environ.get('CC'),
+ 'CXX=%s' % os.environ.get('CXX'),
+ '%s' % shared_flag,
+ 'VC-WIN64A',
+ ])
+ base_args.insert(0, 'Configure')
+ else:
+ base_args.extend(
+ [
+ '-I{0}'.format(self.spec['zlib'].prefix.include),
+ '-L{0}'.format(self.spec['zlib'].prefix.lib)
+ ]
+ )
+ base_args.extend(options)
+ return base_args
# On Windows, we use perl for configuration and build through MSVC
# nmake.
if spec.satisfies('platform=windows'):
config = Executable('perl')
- config('Configure',
- '--prefix=%s' % prefix,
- '--openssldir=%s' % join_path(prefix, 'etc', 'openssl'),
- 'CC=\"%s\"' % os.environ.get('SPACK_CC'),
- 'CXX=\"%s\"' % os.environ.get('SPACK_CXX'),
- '%s' % shared_flag,
- 'VC-WIN64A', ignore_quotes=True)
else:
config = Executable('./config')
- config('--prefix=%s' % prefix,
- '--openssldir=%s' % join_path(prefix, 'etc', 'openssl'),
- '-I{0}'.format(self.spec['zlib'].prefix.include),
- '-L{0}'.format(self.spec['zlib'].prefix.lib),
- *options)
+ config(*configure_args())
# Remove non-standard compiler options if present. These options are
# present e.g. on Darwin. They are non-standard, i.e. most compilers
# (e.g. gcc) will not accept them.
@@ -178,26 +189,17 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package
"+dynamic to suppress this warning.")
if spec.satisfies('platform=windows'):
- nmake = Executable('nmake')
- nmake()
+ host_make = nmake
else:
- make()
+ host_make = make
if self.run_tests:
- if spec.satisfies('platform=windows'):
- nmake = Executable('nmake')
- nmake('test', parallel=False)
- else:
- make('test', parallel=False) # 'VERBOSE=1'
+ host_make('test', parallel=False) # 'VERBOSE=1'
install_tgt = 'install' if self.spec.satisfies('+docs') else 'install_sw'
# See https://github.com/openssl/openssl/issues/7466#issuecomment-432148137
- if spec.satisfies('platform=windows'):
- nmake = Executable('nmake')
- nmake(install_tgt, parallel=False)
- else:
- make(install_tgt, parallel=False)
+ host_make(install_tgt, parallel=False)
@run_after('install')
def link_system_certs(self):